当前位置:首页|资讯

使用Arduino制作的一个小车(昨天在关于Arduino学习的一些建议中提到的项目)

作者:萧芸凤发布时间:2024-10-03

        昨天发了一个关于Arduino学习的建议的视频,这里面提到了本人在十几年前的一些经历,找了一下之前的资料,在百度网盘里找到了尘封已久的一些资料,当时是按日记的形式记录的,现在仍然安装原来的格式记录。

        以下是原始记录,时间是哪一年的不记得了,记录里只有月日,大概是在2014年。

        看了很多的关于Arduino的文章,也看了不少基于arduino的制作,总有一种自己也动手的欲望,只是一直没有找到合适的项目。重复前人的东西不是不可以,只是觉得没有自己的特色。后来还是觉得制作智能小车了,这个项目可以说和时钟一样是经久不衰的,几经选择然后开始制作。

 

(  5月1日  )电机驱动的选择

 

        关于电机的驱动,现在用的最多的是L298和L293(特别是淘宝上这类模块扩展板很多)。

        使用过298的模块,不是很好用,5V的电机基本上需要7.2V的电压来驱动而且效率不是很高。查阅了资料才发现298的压降太厉害了,上下桥加起来2A时近5V,就是1A也有3V左右的压降,这样算下来几乎一半的电能都用在芯片上了。293没有用过,不过600mA的驱动电流很多的电机被排除了。

        还有一个问题就是很多的驱动板都需要3个端口来控制,两个是电机的方向选择,一个是PWM控制转速。如此一来四个电机需要12个接口,Arduino没有这么多的资源来使用。

        很偶然的一个机会,在逛淘宝时发现了一个I2C的电机驱动板,而且还是扩展板的形式,连接比较方便。最巧的是居然是四电机的驱动板,使用东芝的TB6612FNG H桥电机驱动芯片。这个是MOSFET的结构,不是L298的晶体管,整体压降很少,每路1.2A的驱动能力,3.2A的峰值电流超过了293两倍。

 

(5月12日驱动板到货)电机的选择

 

        驱动板确定了然后就是电机的选择。做小车最通常的是黄色的香蕉电机(130电机),这个在淘宝上一抓一大把。

        以前也是用过,不是很好用。减速比还行吧,好像是1:40,具体的忘记了,有一点就是驱动电流要求大,但是驱动力矩不够。再有一点体积比较大,何其配套的车轮一般较大。电机在运行时抖动比较厉害,之前做的小车只能全速运行,PWM使用时走起来一顿一顿的。

        小型化电机时看到了N20,这个非常满足要求。自带减速机构,而且还是金属的齿轮减速系统。各项参数也很不错,驱动电压3-12V,转速3-1000rpm,驱动力矩7kgcm,外形12*10*25很少小巧,噪声也比香蕉电机小了很多。

        这个电机其实以前使用过,公司的一个电动钟表螺丝批用的就是这个,噪声和震动控制的都很不错。还有在淘宝上发现了它的固定支架,DFROOBT,虽然他家的东西是出了名的贵,性价比严重的不好,可是也只有他们在买啊,而且质量倒是不错的,之前买过的开发板模块什么的就数他们家的做工精良。选择了两对支架,逛店铺的时候发现了配套车轮,42mm直径,也很小巧。同时还带有12齿编码盘,虽然暂时不需要速度带闭环控制,但是车轮有这个也算是不错吧,以后也许可以用上。

 

(5月13日下单,15日LCD、车轮、电机支架到货)方案选择

 

        如此一来一个小车基本上可以做了,驱动、电机、车轮、主控都好了。车架选择上没有采用现有的,主要是自己做车,如果买来现成车架还是自己做吗,那仅仅是组装了。

        底板与车架在亚克力和PCB中选择了PCB,亚克力切割现在没有设备还做不到。

        电机的安装,驱动什么的都是很简单。既然要与众不同,那就要增加一些别人没有的,于是想到了灯光系统。

        第一是方向灯,左右转向用,然后是刹车灯,还有前大灯。直接端口控制又要使用有限的IO了,于是用595来扩展,使用4个接口其他灯四个也可以方便以后增加功能。

        方向灯需要闪烁,如果用595来控制闪烁那就需要不停的写入数据,总觉得有些奇怪。既然这样闪光控制就需要独立出来来,RC电路虽然简单但是不好控制,555的暂稳态电路简单实用。

        闪光频率选在在1秒左右,测试几种组合,还有是电容的体积,闪光效率等,确定使用了现在的这个组合,R1,R2为20K,C1为22uF,周期924ms,占空比67%,实测在1秒。图1

        LED的控制使用与门,555的输出接一端,595的输出接另一个,然后与门输出接LED。74系列选了74HC08,很典型的四与门芯片。图1

(5月15号开始制作)

        四个闪光用了两个控制方向灯,另两个备用,595直接使用2两个控制前后灯,如此还有两个闪光和两个常态可以备用。


(图1)555芯片提供定时闪烁,595用来控制灯光,7408用来控制是否打开闪光灯(转向)

图(2)实际的电路图,忽略手工制版的不客观性。

        输入控制方面预留巡线,避障。巡线最少要三个输入,避障也需要两个。然后用了165扩展了8个输入,这样巡线避障等可以同时连接,需要什么功能可以自行选择。

        使用339是为了有时候需要自制传感器使用,在本项目中未使用,仅焊接插座而未安装芯片。图3


图(3)74165用来控制输入,并行输入串行输出
图(4)焊接的实在不好看

        为了体现PWM控制的特点需要实时的控制电机的加速与减速,这个就需要知道前方的距离了。在现有的可以方便获得的模块中也只有超声波可以得到距离数值,红外什么的只能得到一个数值量,设定的数字。

        连接线路,编写程序,一切都以为结束了。等到都准备好了才发现,电机一运行就会对灯光系统,对超声波系统产生干扰。一开始以为是辐射干扰,使用外置的595模块确实会好许多,然后对比发现了ST需要接下拉电阻。之后在测试还是不行。几经反复发现不只是辐射干扰,最主要的干扰来自马达的输入线路。     


图(5)第一版的小车外观


(5月18号发现问题,22号尝试解决)

        发现了问题然后开始考虑如果来过滤这个干扰。

        首先确认干扰来源,这个网上讲的很是清楚了,马达换相时造成的电压波动。这个是周期性的,应该属于交流信号了吧,考虑各种滤波措施了。RC、LC、RL等各种手段都需要尝试。在不了解各类滤波技术的时候只能先凭经验了。和电机串联的只能是电感和电阻,电容串联相当于断路,毕竟驱动是用的直流电源。电阻也不在选择之列,主要是会影响马达性能。

        如此一来只有LC滤波了,串联了L,画出电路图一看,居然是典型的LC低频滤波电路。

不知道该选择怎样的频率,只好把手头现有的电感和电容进行了组合,计算一下可能的组合,然后看一下各自的频率进行测试。

 

表1


        有不少的组合的滤波频率是重复的,虽然不知道相同的频率不同的电感和电容组合会有什么影响,但是现在就需要测试一下。

        电机的PWM频率是1-1.6KHz的,就在这个附近开始测试。选择了220uH/47uF、100uH/100uF这两个组合(黄色标记)。

        220uH/47uF灯光还是会受到干扰,100uH/100uF 干扰小了许多,有时候没有有时候又有了,但是电机速度受影响比较大,速度下降明显。

        继续测试另一个组合,这次选择小于1.6KHz的,由于手头没有足够的68uF电容,只能先测试220uH/100uF、100uH/220uF这两个组合(青色标记)。

        结果不是很好,干扰现在是否重现不知道,电机基本上是不动了。分析原因可能是低通滤波将1K以上的过滤了,而PWM是用的1.6KHz的。

        知道了原因就测试另一个组合,高于1.6的,先测试100uH/47uF、100uH/33uF、68uH/47uF、68uH/33uF四个组合(绿色标记)。

        100uH/47uF干扰基本解除了,但是马达速度还是受到了影响;100uH/33uF马达速度倒是还好,干扰不是滤除的很好,灯光可以不受干扰,但是超声波还是受到了干扰;68uH/47uF干扰滤除的还可以,偶尔能看到灯光到闪烁;68uH/33uF灯光不受干扰,超神波的影响也没有那么大,但是总觉得没有之前的那些好。

        分析一下,68uH/33uF的频率是3.36KHz的,效果没有前面的好可能的原因是频率高了,一些低于这个频率的信号还是进入了系统。100uH/47uF的最好,100uH/33uF还是会受到影响说明了干扰频率来源在2.32KHz附近。所以其他的两个组合滤除的是高于2.8KHz附近的,一些干扰还是存在的。

        本来还应该测试一下220uH/33uF、68uH/100uF的,这个是低于2K的组合,但是手头的100uF电容和33uF电容数量不足,没办法满足4个电机所需要的8个要求所以没在做测试。

        虽然100uH/47uF这个组合会影响一下马达速度,但是实际测试发现马达的加速和减速效果最好。之前的加速和减速是突然进行的,现在明显的有个过程,显然是在滤波的时候也同时影响到了马达对PWM的响应。这个是什么原理,为什么这样怎样来避免这个不是很清楚,好在这不是个问题,反而是个意外的惊喜。所以说这一次就只是记录了下来,以后如果遇到了在继续研究。

(5月23号)底板的重新规划

    

图(6)

        由于要增加滤波电路,现在的这个底板太小了,考虑到尽可能的减少飞线(杜邦线),在底板上也做了接口。

图(7)
图(8)第2版小车外观

5月29号确认遥控方案,下单)无线控制器控制

        既然是小车,除了能够做常规的避障和巡线外能够遥控操作自然是不错的选择。

遥控方面,通常来说是蓝牙、APC220、24L01几个,Xbee太贵了。蓝牙比较简单,串口透传,安卓有很多的免费软件,就是距离短;APC220号称可以传输1000米,没测试过,仅仅试过几米的,超过5米的时候就经常受到错误的数据,而且控制端要不是电脑要不是另一个控制板;24L01的速度是最快的,现在的库也能保证数据接收,但是要占用4个端口,距离也不咋地,同样需要电脑或另一个控制器。

        闲逛的时候看到了DTMF模块(双频多音),电话拨号时用的数据传输方法,看了一下也挺简单的。芯片MT8870,四个输出Q1~Q4组合成16个数据,STD用来判断是否有数据到达,其他的端口可以默认不需要控制。

        这样一来只需要一个接口接STD来判断数据是否到达,Q接口接165的输入端,音频口直接接手机,如此可以远程控制了,理论上讲距离时无限的,只要电话能够接通。

(6月5号,基本完成了)

现在所有的接口(除了0、1串口)都用上了。

2、3、4用来控制595;5、6、12用来控制165;7用来控制LCD背光;8、9、10、11、13用来控制LCD;

A0接五维按键;

15、16(A1、A2)连接超声波;17(A3)接STD;A4、A5是I2C接口。

至于串口,以后有时间加个蓝牙吧,可能会内存不足,现在已经占用了76%的内存(1516字节),程序大小19546字节(占用60%)。

(现在是6月19日)

        整体样子比较难看,需要优化一下,减少排线。最好是把支架优化一下,现在看起来不像个车的样子。做了四个连接板,595的数据输出,电机的连接线。整理了灯光,现在就是只有595和165的数据线和电源线了,还有超声波的。

(现在是6月24日)

        电源也在优化中,因为要双电源,双口USB移动电源最好,不过现在有两个方案(计划27-28号)。

1.使用双电源升压(购买现成的升压板,3.7V锂电池升压5V),和双电源降压(7805或者降压模块,7.2V锂电池供电)方案。

2.使用单电源升压(购买现成的升压板,3.7V锂电池升压5V),和单电源降压(7805或者降压模块,7.2V锂电池供电)方案,需要测试。现在下班回来时间太少了,只有周末再说了。

        经过测试使用7805效果OK,这样可以随便使用一个7.2V~9V的电池来运行。

做了四个独立的电源,7805额定电流1A。四个电机用一个,不行的话可以并联的;控制器与灯光用一个;留一个备用,打算给树莓派,摄像头使用。

        实测7.2V电池输出空载电压4.97V,带负载(控制器+灯光+LCD)电压4.45V。

为了保证电压足够,7805的地端串联IN4007二极管(压降1V),如此整体电压在5.5V~6V,输出端串联IN5819二极管(压降0.6V),这样既能保证并联时不干扰,又可以确保负载电压在5V左右。

图(9)

图(10)第3版外观
图(11)

(6月30号)

        现在的这个165输入当时做的失误了,最边上的输入脚和螺丝柱子有干涉,今天重新做了一个。339芯片取消了,使用了两片165,级联处理可以得到16个输入数据。595的输出改了一下接口位置,这样两个的接口可以在一起了。红外距离和巡线占用四个,电话遥控占用四个,其他8个保留,也许以后会用到。

        调试阶段用到LCD,以后是不用的。在顶部增加了树莓派,有点突兀,继续改进。

(7月2号)

        优化改进了一下自制的两块板(595和165)。取消了339芯片和改换了接口。

图(12)改进后的输入模块
图(13)输入模块实物
图(14)改进后的输出模块
图(15)输出模块实物

调试阶段用到LCD,以后是不用的。在顶部增加了树莓派,有点突兀,继续改进。

 

(7月 5号)

增加无线遥控模块,使用apc220或者nRF24L01无限模块。控制部分为nano控制器,1602LCD 显示基本信息,四独立案件,joy 方向摇杆(模拟)。带有nokia lcd 屏幕接口,可以直接插入使用。

图(16)遥控部分
图(17)

总体就是这样了,现在只有小车找到了,遥控找不到了,还有程序也没有了,没办法演示了。

说这些的目的就是想说,这些东西做了一个其实也没有什么用处,除了费钱外。


Copyright © 2024 aigcdaily.cn  北京智识时代科技有限公司  版权所有  京ICP备2023006237号-1