写在前面
为什么要写这样一系列文章,网上很早就有并且还很多此类文章了呀,对于电子相关专业的人分分钟可以搞定的事呀。但,我要写一个和那些文章视角不同的系列,就是我的文章的目标读者是小白人士,可以是各行业对编程和电子硬件都不了解的人,可以是正在小学初中读书的学生。让这些人,通过价格低廉、资料丰富的开源硬件和编程来做一些有意思的事情。
做个什么样的小车
目标是一个小车平台,后续可以基于这个平台做巡线小车、语音小车、监控小车等等有意思的事情。这样的话,我选择了4个轮子车架,空间更大。通过arduino板子控制小车,原因是arduino产品丰富,高中低端都有,可以使用价格很低的arduino的pro mini或nano,便宜的10几块钱就可以搞到。并且arduino的资料是相当丰富了,基于它做小车的教程也好多。通信模块选择zigbee,比蓝牙的障碍物穿透性好,隔一堵墙是没有问题的,正好手里有这样的板子,很容易上手。
Step By Step
最基础的车架,我选择了最常见的亚克力材料树莓派小车车架购买链接(42元购入)。包括了4个直流电机,1个18650电池的3节电池盒。这个小车底盘可以多层,也有安装树莓派的地方,当时就是冲着这些可扩展性买的。提醒一点:这个底盘组装并不容易,安装电机的卡槽不是很吻合,我使了好大力气才完成。
第二层车架,用来安装电池盒、控制器、L298N等。
使用L298N电机驱动板购买链接(7.9元入手)。它有两个作用,一是连接控制器和电机,达到控制器编程控制电机的目的。二是把12V的输入降压为5V输出,用来给控制器Zduino供电。具体硬件连接:OUT1连接左侧两个电机的负极,OUT2连接左侧两个电机的正极。OUT3连接右侧两个电机的正极,OUT4连接右侧两个电机的负极。
L298N本身的供电,它的输入是5V-35V,我选择12V的电源输入。使用3节18650电池购买链接(每节4.9元入手,一节3.7V)串联得到约12V输入。说明:这个电池可以充电,多次使用,绿色环保。相关配套:18650电池充电器购买链接(8.5元),18650电池盒(3节串联,和小车底盘一并购入)购买链接。
控制器选择Zduino pro mini购买链接(28元入,它属于Arduino Pro Mini类型)。这款控制器用来控制电机和控制通信模块,可以对它进行编程。
Zduino本身的供电,它的输入电压是5V,这里使用L298N的5V输出。说一个惨痛经历:在前一天,使用12v电源给Zduino pro mini供电,可以驱动两个电机转动。今天同样连线,通电后电机也转动了一下,然后就不转了,同时闻到焦味,一摸Zduino芯片烫手,看来是板子烧了。然后,尝试使用USB串口写入程序,发现烧录程序失败,看来结果就是这样了。分析原因,第二次使用时,电池是充满了电的,电压达到了12V,之前电池虚电并没有12V那么高。
控制电机使用了引脚5,6,9,10, 它们依次连接L298N的IN1,IN2,IN3,IN4这4个输入,IN1和IN2控制输出OUT1和OUT2,IN3和IN4控制输出OUT3和OUT4。
控制ZigBee模块(下图1),有两点,一是给Zigbee模块供电(Zduino输出电压5V,Zigbee模块输入电压3.3V,故用降压板),二是与Zigbee模块通过串口进行通信。具体连线是:Zduino的VCC,GND,RXI,TXO依次连接Zigbee模块的降压板(下图2)的5V,GND,引脚1,引脚2,降压板的3V3,GND,引脚1,引脚2依次连接Zigbee板的VCC,GND,Tx,Rx。说明一下,串口的连接也就是RXI和TXO,需要对调连接,即RXI连接Tx,TXO连接Rx。这里的名字不太一致,命名规范问题,功能是一样的。
其他硬件还包括杜邦线,小车还是比较紧凑的,不需要太长的杜邦线,否则显得凌乱,10cm以内刚刚好。杜邦线分为公对公,母对母,公对母,每种都采购一些,非常便宜。面包板,有了它,可以把Zduino的引脚扩展出来,可以很方便与其他硬件模块连接,电源的连接也会方便很多,最大的好处,就是让我们的小车显得很清爽,不至于邋遢。
小车最终形象
我又重新按照上面文章的步骤,重新组装了一遍小车,一次成功。
整体原理介绍
L298N用来控制4个电机,比如,向前转、向后转,左侧轮子向前转而右侧向后转,从而实现向右转弯,控制电机转速快慢。但是,光有L298N是完不成这么多复杂动作的,它只是执行具体任务的小兵,还需要一个指挥官来指挥它才行。这个指挥官就是arduino板子,它可以支持编写程序,通过程序来给L298N下发指令,叫它完成响应的动作。arduino板子程序编写完成后,这个指挥官就有了一些控制电机的技能了。但是,我们希望可以再指挥arduino这个指挥官,比如,我说“启动”,它就让小车开动起来;我说“停止”,它就让小车停下来。要想arduino这个指挥官可以随时听从我的指挥,就需要zigbee这个通讯员了,它可以进行无线数据传输,我们就可以把我们的指令通过zigbee告诉给arduino这个指挥官了。
软件编程
本文对应的Arduino代码github地址
以上程序如何烧录到Zduino板子中呢,需要两个工具,一是需要一个硬件USB转串口模块购买地址(25元购入,现在12.5元)。二是需要Arduino的开发工具Arduino IDE下载地址。
USB转串口模块和Zduino的连线方式,该模块的GND,VCC,DTR/RTS,TX,RX依次连接Zduino的GND,VCC,DTR,RXI,TXO。
打开Arduino IDE,点击IDE的菜单:工具(tools)-->开发板(board),选择Arduino Pro or Pro Mini,然后点击这个菜单的下一个:端口(port),选择/dev/ttyUSB0。
把上面的代码粘贴到编辑区,点击菜单:项目-->上传。
电池通电,4个强劲的轮子转起来
在自己初学DIY小车时,由于不了解硬件,着实交了不少学费。所以,本文把需要的每一个组件都详细列出它的购买地址和价格,郑重声明,仅供参考。不是给商家打广告的。
领取专属 10元无门槛券
私享最新 技术干货