来源于:冰雪网络科技
小这样的场景:一个电脑天才做在电脑旁,在黑色的背景下输入绿色的字符:"open the door",房间的门就自动打开了;若是输入"Lighten the light",屋内的灯便会自动打开。。。这一切对于我来说太神奇了,自己也做一个全数字化控制的房间也成了我儿时的梦想。上个学期学完了数电,模电,这 个学期又上了单片机,终于对于电子知识有了个大概的了解,于是又重新拾起儿时的梦想。可是,具体做点什么呢?电脑控制的灯泡?RS232 + MCU51 + 继电器 就行了,可是感觉好像不怎么好玩,于是最终思考下来,选择了做一个电脑控制的小车。
正文(写在车子成功运行的激动时刻):
流程图:
VB程序界面:
附上小车的玉照:
侧视图:
前视图:
电机+轮子:
两个L298:
串口通讯及LED:
注:
1。由于我以前购买过一套51学习板,故51主板,MAX232,LED均采用现成模块。
2。此车为有线版,我计划有时间的话将其改为无线版,拟采用NRF401。
3。本VB程序不能正确地接收单片机返回的数据(已经确定单片机能够正确的反馈数据);另外,本VB程序存在间歇性无法正确关闭串口的问题。期待高手指点。
4。希望高手能够给与指点,也希望我的文章能够给一些新手带来一些帮助。欢迎拍砖。
附:做车子的坎坷经历
当 主题选定后,我想怎样对小车进行精确的控制呢?这时我想到了用继电器来控制直流电机的正转反转,可是我猜想延时应该会有些大。当然后来我才知道有 PWM(Pulse Width Modulation脉冲宽度调节)这个东西,呵呵。这个时候有个同学告诉了我有一种电机叫做步进电机,可以精确控制,每给一个脉冲它才走一步。之后我便 上网查找了些步进电机的资料,基本上搞清楚了步进电机的工作原理。
在这里我必须向大家推荐两个网页,他们对于我了解步进电机起到了极大的帮助:
在选择步进电机的功率放大芯片时,因为据说用三极管等便宜器件进行放大时由于相同器件的个体差异比较大,容易造成不稳定,最终选择了用L298作为步进电机的功率放大芯片。
PC 的数据发送由于不要求速率,但要求通讯的距离,于是便选择了串口。串口的编程的问题我想了几种方法,一个是自己编写API,另一个是调用 MicroSoft的MSComm组件,或是干脆练习一下这个学期微机原理学过的汇编语言,用MASM写算了。后来还是决定用最容易实现的方法,调用 MSComm组件。在编写这个VB程序的时候,我参考了叶帆源码,在此以示感谢。
构思完成后便是去买器件了,这期间可是问题多多。首先是找遍了西安终于在电子大楼找到了一个有卖步进电机的地方,傻傻的认为0.1kg.cm的力矩能够带的动车子。
电机如图:
自己做的轮子由两部分组成,第一部分,一个四驱车的轮子:
第二部分,在模型店买到的专业飞机模型用轮(中间部分被我挖去,用以装入四驱车的轮子):
两者结合起来构成最终的轮子:
当时想采用电脑机箱上的泡沫作为车体,如图:
电机在车体上放置的位置,如图:
把轮子安装到车子上后,如图:
后来发现这个设计问题多多:
1。泡沫车体的刚度太差,加上负重后车轮会歪曲;
2。电机的扭矩不够,想找齿轮组却找了很久也找不到
后 来事实证明上图那个25BY步进电机的扭矩实在太小,于是便想找减速的步进电机,可是无奈找了很久也没有找到便宜的。无奈之下,还是只好去邮购了两个马力 稍微大一点的步进电机,加上轮子(自己做实在太麻烦)一共还是花了100元(在西安买的话可能得200呢),心疼啊。。。不过这样一来,自己就可以不用再 去找轮子和齿轮组了,的确简单了不少。(当初我还不知道有PWM这个东西,并且认为减速电机的惯性会很大不能精确控制,但后面我才知道这个观点是错误的。 呵呵,早知道,买几个减速电机来做可能就节约money了。而且不会出现在车子马力不足的问题)
电机和轮子买完以后我便开始思考如何固定的问题,这时候我想到了用自己以前买的51学习套件上的一块大板子来当车体(后来才知道这东西就是专门用来当机器人底板的),如图:
固定电机的时候,我想用我曾经见过的一种有侧孔的铜柱,可是又是找遍西安没有找到(有个老板告诉我如果我要1000个以上可以为我订做,呵呵)。正当我为如何固定电机感到烦恼的时候,突然想到了用尼龙扎带试试,结果一试,效果还真不错。如图:
后来发现加上电机以后板子前后方向有些弯曲,于是又再加了一根前后方向铜柱固定板子,如图:
做到这个程度,我找了不知道多久的万向轮也突然跳进了我的视野,原来西安西门附近的机械产品市场有卖(本来我都打算用两个轴承自己来做一个万向轮的了)。把万向轮固定在车板上后,如图:
这些东西都做好后的小车底部图:
至此,车子的机械部分已经完全做完,我也舒了一口气。回想起做机械部分的经历,真是太痛苦了,为了买点东西,不知道跑了多少地方。。。我想我是学电子的,应该把主要的精力放在研究电路、程序上啊。呵呵。
其 后便是做电路了,由于电路较为简单,并且我已经有了一个51试验板,故只买了一个面包板将两个L298焊了上去。当然最关键的是程序了,这一部分我到没有 感觉到多少困难,很快就做完了。只是直到现在我的VB程序还是有在上面提到的反馈信息接收的问题(SendData总等于1),我也找不到错误在哪,并且 串口的关闭也间歇性的出现问题,再次希望高人帮我指点一下。 并且,新买的步进电机动力还是有些偏小,整车我用的铜柱固定,也加大了车子的重量(早知道就用铝柱了)。
此车我计划改成无线版,以后我还想加入寻迹功能(用红外传感器)。其实我最想做的是无线视频车,在车子上放一个摄像头,高速的无线传过来,我在PC上控制,呵呵。不过这些东西我现在都不太懂,而且我猜东西也应该挺贵。我想我等1月份考研以后来做吧。。
这 就是我的PC串口控制的小车的全部了,呵呵,我的处女电子制作。就我自己而言,我现在觉得亲手做点东西确实能够极大的提高自己的综合水平,无论是动手能力 还是理论水准。在校的电子类大学生确实应该做点东西。还有就是如果有示波器和车床那将会是多么完美的事情啊,呵呵。。。
|