实习日记

日志一:

这二个月来,主要学习OpenCV,将以前学习的图像处理都自己在Opencv环境进行实现,发现这个库确实是一个了不起的开源图像处理库。自己无论是对编程还是对图像处理的原理,都在这个过程中加深了理解,这对于后头自己进行图像处理的软件开发打下了一个良好的基础。

下面是主要的工作内容:

1、安装OpenCV和VC6(或者VS2010)并进行正确配置;

2、用OpenCV进行图像的读入、显示、创建、复制和保存等;

3、用OpenCV进行图像的简单绘制,比如直线、三角形、矩形、圆形、椭圆,并能够在图像中添加文本框和给图像上色;

4、用OpenCV进行图像的边缘检测、图像滤波、图像分割、形态学图像处理

日志二:

这一个月来,主要研究了步进电机的工件原理,及单片机控制步进电机的方法。自己编程实现了51单片机控制步进电机,步进电机在生活中的很多地方都有用过,特别是在工业生产过程中,做为一个工科人,这方面的知识也是必须的。刚好步进电机也要和自己的课题相关,所以就在这一个月来,系统学习了步进电机的相关知识。

下面是主要的工作内容:

1、了解步进电机的结果以及工作原理

2、掌握步进电机控制系统的设计方法及其调试方法

3、编写程序实现对步进电机的驱动

4、编写程序实现对步进电机的速度调整

日志三:

这一个月来,主要了解并学习了C++基础编程,并重点学习了串口编程,因为想实现对步进电机的软件控制这方面的知识是不可缺少的。串口编程一个难点,因为还涉及到了多线程、数据发送格式的定义,以及下位机程序的开发,串口通信是Windows应用软件开发的重要环节,除了普通的通信软件外,还在工业控制领域有广泛的用途,因此掌握串口编程是每个程序员的必备技巧。

下面是这主要的工作内容:

1. 研究串口工作原理

2. 利用Microsoft公司提供的ActiveX控件MSCOMM.OCX实现串口编程

3. 自己开发串口编程的API函数库,并封装成一个可复用的类库

在Win32下,可以使用两种编程方式实现串口通信,其一是使用ActiveX控件,这种方法程序简单,但欠灵活。其二是调用Windows的API函数,这种方法可以清楚地掌握串口通信的机制,并且自由灵活。  串口的操作可以有两种操作方式:同步操作方式和重叠操作方式(又称为异步操作方式)。同步操作时,API函数会阻塞直到操作完成以后才能返回(在多线程方式中,虽然不会阻塞主线程,但是仍然会阻塞监听线程);而重叠操作方式,API函数会立即返回,操作在后台进行,避免线程的阻塞。

无论那种操作方式,一般都通过四个步骤来完成:
(1)打开串口
(2)配置串口
(3)读写串口
(4)关闭串口

日志四:

本月在之前学习的基础上,要实现软件控制步进电机的速度、方向。在windows程序设计与开发过程中,特别是涉及到开发嵌入式软硬件系统时,往往会涉及到串口编程。网上以及一些书籍上讲解windows下的串口编程知识也挺多的,但我个人觉得,看完书上的知识点有时依然不知道该如何下手开始自己的程序设计和代码编写,许多知识如果能结合着详细的例子往往能够帮助我们学习得更快,所以,在此,专门为串口编程初学者设计了一个详细的例子,供后面自己编程参考和学习。
自己用C++编写的串口通信的例子,其特点如下:

1、使用了比较规范的软件设计方法,类的设计具有比较好的可扩展性和移植性、代码的注释采用doxgen支持的javaDoc风格。

2、为了能方便初学者更快地了解和入门,几乎每一行代码都加上了详细的注释,

3、本例子设计的串口操作类可以直接移植到其他的工程中去,也可以根据自己的需要添加其他的接口。

4、本例子只实现了串口数据的基本收发功能,其实为了保证串口数据传输的正确性,往往需要设计一些串口通信协议,协议的设计有待自己完成。如果以后有时间,关于本程序的验证方法,可以使用虚拟串口软件VSPM和串口调试助手进行程序的测试与验证.

日志五:

   之前写的程序一直都是控制台程序,不包含界面,在软件开发中,界面是一个很重要的因素,现在电机虽说能实现软件控制,但我们还是少一个比较好看的界面,本着高效高开的原则,在这一月来,系统学习了MFC软件开发,并设计自己的软件界面,将前几个月学习的图像处理编程和电机控制编程都整合在一起,并进行详细的构造

MFC(MicrosoftFoundationClasses)是微软基础类库的简称,是微软公司实现的一个c++类库,主要封装了大部分的windows API函数,vc++是微软公司开发的c/c++的集成开发环境,所谓集成开发环境,就是说利用它你可以编辑,编译,调试,而不是使用多种工具轮换操作,灵活性较大。有时人们说vc呢也指它的内部编译器,集成开发环境必须有一个编译器内核,要不有什么用,例如DevC++其中一个编译器内核就是gcc。 MFC除了是一个类库以外,还是一个框架,你应该试过,在vc++里新建一个MFC的工程,开发环境会自动帮你产生许多文件,同时它使用了mfcxx.dll。xx是版本,它封装了mfc内核,所以你在你的代码看不到原本的SDK编程中的消息循环等等东西,因为MFC框架帮你封装好了,这样你就可以专心的考虑你程序的逻辑,而不是这些每次编程都要重复的东西,但是由于是通用框架,没有最好的针对性,当然也就丧失了一些灵活性和效率但是MFC的封装很浅,所以效率上损失不大。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值