3.2.2坐标点参数的计算
将画笔的位置定为整个物体的中心位置,设定物体位置的初值坐标为(X,Y),当前电机A的长度L1=
(X?15)2?(115?Y)2,当前电机B的长度
L2=(95?X)2?(115?Y)2,根据电机收放线,计算出电机长度的改变量change,再由电机转动一步所对应走线的长度(其值为0.077cm),求出电机走微小步时需要时钟脉冲的个数(即为步数)pulse=(int)(change/0.03+0.5);(四舍五入后取整)。 3.2.3直线的计算
从图7我们可以看到假设原点坐标X0,Y0,要达到的坐标点X1,Y1
Y(x1,y1)L的直线(x0,y0) 图3 直线算法图
x
那么到坐标点的距离L L=
(x1?x0)2?(y1?y0)2
L 0.5我们没有采用Y=KX+B的直线方程,而是把L的长度分为COUNT_L等分 即 COUNT_L=
我们计算出每一个增量INC_X,INC_Y INC_X=
X1?X0
COUNT_LY1?Y0
COUNT_LINC_Y=
我们假设一个变量i,i的范围从1----COUNT_L
5
所以每走一步的坐标值 XX =i*INC_X+X0 YY =i*INC_Y+Y0
3.3 系统单元电路设计 3.3.1 红外传感器连接电路
图 4 红外传感器连接电路
此电路简单可行,干扰小,检测效果好。 3.3.2 步进电机驱动电路
图5 步进电机驱动电路
用L297_L298芯片作为步进电机的驱动,其转速可调、抗干扰能力强、具有续
6
流保护和过电流保护、可控制两相步进电机,电机电压直流5V~30V(12V最佳)。 3.3.3 画笔设计
用八个传感器,形成一个八边形以细化物体运动方向,能更好的检测黑色曲线,不至于跑出黑线。
3.4 系统软、硬调试过程 3.4.1 画直线功能测试 序号 设置终点(cm) LCD显示 测量值(cm) 时间(S) 3.4.2 画圆功能测试 序号 设置圆心(cm) LCD显示 测量值(cm) 时间(S) 3.4.3 循迹功能测试
能按照预定坐标到达循迹点,画笔能根据检测到的黑线运动,并且误差很小,在断点的地方也能正常运动,耗时短。 3.4.4 自由运动功能测试
我们设计的图形是写信工两个字和画五角星,画笔能按照我们设计的轨迹收放、画图,画出的图形也比较完整。
7
1 (40,40) (40,40) 2 (60,30) (60,30) 3 (30,60) (30,60) (40,40.2) (59.8,29.7) (30,59.8) 13 1 (40,50) (40,50) 17 2 (40,30) (40,30) 18 3 (40,40) (40,40) (40.2,50.3) (39.8,28,7) (40,39.8) 47 43 45
4 总结
此次题目初拿到手中时感觉有些棘手,因为相较之前的循迹小车而言,悬挂系统所用到的步进电机以及算法都要难上一个档次。我们在做好驱动电路后便马上开始了调试工作,可是在直线行走时始终走不到目标地点。在检查程序无误后我们对两个电机进行单独检查,发现左边电机需要1000拍左右才能转一圈,而右边是正常的800。于是我们据此对程序进行了修改,将误差缩小到了5cm以内。但还是不能达到要求。再经过我们仔细检查,发现左边的电机转圈过多是由于细绳不在滑轮上而产生了较大摩擦力造成,发现这一点后,我们终于使滑块走出比较精确的直线,误差控制在1cm以内。
另外通过这次的制作,可以知道我们的硬件制作的工作量不大,作为一个写程序的人员,我认识到一个好的算法可以省去大量的硬件设备,同时,我也认识到了自己在编程方面还有着很多需要学习的地方,在今后的学习中,我会更加努力,争取在今年胡省赛中能取得一个好的成绩。
这次实验感谢李川香老师以及何为老师的指导,从实验中,无论在硬件设计还是软件编程,我们都收获了丰富的实践经验,为知识的应用与扩展打下了坚实基础。
8
参考文献
[1] 童诗白,华成英 .模拟电子基础.高等教育出版社.2012.
[2] 谢自美 .电子线路设计·实验·测试 .武汉:华中科技大学出版社.2012. [4] 沈建华,杨艳琴 .MSP430系列超低功耗单片机原理与实践 .北京:航空航天大学出版社.2012.
[5] 曹磊 .MSP430单片机C程序设计与实践. 北京:航空航天大学出版社.2012.
9