本帖最后由 flttxlj 于 2014-5-27 22:41 编辑
一、发帖背景
近期想要找工作,就把大约2年前做的简单的红外小车的制作过程拿出来放到网上。目的一是为了让自己的简历增添一些色彩,第二就是和大家分享一下DIY的经验
二、制作背景
当时是看到二姨家好多同学和网友分享自己做的小车,甚至是自平衡小车,一时手痒,也想自己弄一个尝试一下,毕竟也算是一个小型项目,于是就着手做一个最简单的小车来试试水。
三、整体的项目规划
我前期主要把这个小项目划分为4块去着手:
1、 时间节点
当时主要是想大概用一个月左右的业余时间来做这个事情,但最后到完成,实际上差不多20天就够了
2、 前期调研
主要是想弄明白我做这个事情需要用到哪些知识和材料
3、 小车需要具备的简单功能
⑴红外遥控 ⑵前进、后退 ⑶左转、右转
4、具体制作
硬件电路的焊接和软件的调试、组装
四、 制作过程
具体的制作过程还是有一些东西可以拿出来说的。
前期调研主要就是搜集坛子里红外小车的帖子和资料,然后一个一个去看。当时我们这里是有很多DIY的例子的,看他们制作过程的心得,确实学到不少东西,看了几天初步了解到了我需要准备的一些东西,然后就开始专攻项目中的几个技术重点:硬件控制电路实现方法与软件控制的策略,以下会逐一提到。
1、准备材料
我从淘宝上买来了小车的车架、轮子、马达、红外遥控器、接收头和单片机、电池以及一些电子物料。当时总共花了大概50大洋左右,但是淘宝上卖的红外小车的玩具才20大洋,当时就想如果是真的是做产品,老婆本都得亏没了。下图为当时买回来刚刚拆开的状态,买到手之后很是兴奋,马上就开始装了起来,也没看神马说明书。两个轮子最不好装,因为手头没有工具,只能用手去柠,悲剧的是我手指太粗了,伸不进去,最后只好用镊子来将就着拧,最后终于大功告成。但此时回头发现盒子中还有两个螺丝没有装,我当时那个心情啊,以下为哭诉部分就不提了,最后告诫同学们说明书神马的还是尽量扫一扫,无论简单与否,你总会发现些什么,我就是前车之鉴。
这个小车是3个轮的,后两个为驱动轮,兼转向作用(差速转向),每个轮子上有一个电机;前面的为万向轮,可以随意转动,为从动轮。从电机的极片往外引线的时候要小心,因为极片太脆弱,很容易折断,这折断的不是电机极片,是钱啊。 2、 红外遥控 一提起红外遥控我们就感觉到有些遥远而高深,因为这个东西看不见摸不到,我开始的时候也是这样,在网上疯狂的找资料,各种红外遥控编解码、各种红外遥控器的编码规则,从老T叔那里也要了好多资料。说实话,看了半天确实头大,收效甚微。 遥控器与红外接收头的图片如下:
到这里,告诉大家一个直观的办法去获取遥控器的编码规则:直接用示波器来测量。对,就是用示波器直接来测量遥控器上的每个键位在接收头处获得的波形,这样再结合波形来理解编码规则就好多了,可以直接绕过许多理论的东西来直接获得结果。 以下是测试时拍的:可以根据波形直接读出二进制编码值,留着编程时用。
3、 硬件控制电路的设计 硬件控制电路可以找到好多,最常用的就是利用芯片L298N来搭一个H桥驱动电路, 需要特别注意的是要增加二极管来给电机的线圈续流,来释放能量,其余没有什么高深的。具体电路如下:原文件也奉上。
红外小车DIY-原理图.rar
(20.65 KB)
然后就开始焊接硬件电路了,我记得也焊了一阵,飞了好多线,另外就是那个单片机底座,为了省下1块钱就买了这个底座,真心不好用啊,大家还是买那种绿色带压杆的,方便装卸的那种吧。那个红外接收头用了一个废弃的IC管子来增加高度,挺有意思的。
4、 程序编写这个阶段主要是给51单片机写控制程序。51虽然好多年没用了,感觉还是那么亲切,翻开51的寄存器说明和引脚定义资料的时候,顿时热泪盈眶啊,尼玛啊,我的青春啊,我的大学时光啊,我的学弟学妹啊。 我本人是弄硬件的,所以程序格式不是那么规范,算法和数据结构可能也不是那么合理,代码奉上。我只写了一些基本功能,可以优化很多东西,我就不说了,大家有兴趣可以去弄弄。这时候就用到了之前测试的遥控器各个键位的编码,将它写到程序中就好了。以下为调试时的图片,需要注意的是把控制部分代码放到中断函数里面处理,这样好多了。我先在开发板上调程序,用数码管来模仿小车的各个动作,调通之后再装到板子上。
红外小车DIY-程序.rar
(22.12 KB)
5、 调试、装配 这个阶段是最让人幸福的阶段,因为看到小车走起来的时候,感到好有成就感,测 试就是先测电路的阻抗,看是否短路。然后上电,测试主电源+5V是否正确,然后断电,装上烧好程序的单片机,再上电,逐步测试小车的各个动作。
到此处为止,整个开发流程就介绍完了。 6、 总结 从这个小项目中,我充分体验到了开发产品的那种成就感和满足感,谁做谁知道啊。 |