ngxxczlwh 发表于 2020-2-29 20:36:58

玩转Nano之智能小车GoGoGo

本帖最后由 ngxxczlwh 于 2020-2-29 22:49 编辑

刚接触创客不仅,准备做一辆智能小车。
原计划是准备用microbit板子做主控板的,后来发现还是用nano板子做主控板好。个人认为,相比microbit用Nano做主控板有如下优点:
1.成本小(万一烧了也不会:'()
2.引脚多。方便接更多的传感器(虽然microbit也有许多引脚,但许多都被诸如Led占用了)
3.传感器加载方便。用microbit外接传感器时,有时要加载外部的扩展包,在haohaodada的在线编程里,使用外接传感器真的很方便。
一、硬件采购
那么要用Nano玩转一辆智能小车需要哪些硬件呢?
其实我也是第一玩,没经验,我估摸了一下至少应该有如下硬件:
1.主控板(Nano)
2.小号面包板(原计划用Nano的扩展板的,也不贵,但手头正好有一块小面包板。面包板插起来方便,背面的双面胶固定起来也很方便)
3.小车底盘
4.电机驱动模块(我买的是双驱的底盘:两个电机+万向轮,所以配一块L298N足矣)
5.锂电池和电池盒
6.传感器、执行器(红外遥控、舵机、超声波传感器,玩过micrbit套件的,这些传感器肯定都有的)

二、硬件组装:
1.小车底盘安装,这个不在话下。
2.安装固定电池盒和L298N驱动模块。小车上的安装面积有限,可能要安装的传感器等硬件却很多,所以要规划好每个硬件的安装位置。
我的小车是这样固定的,上图仅供参考:

3.接线。
L298N除了要驱动两个直流电机,还要给Nano供电。这里要注意两点:
a.Nano的5v硬件接至L298N的5v供电。
b.Nano要和L298N共地。

安装L298N小车就可以驱动了,其他的传感器,稍后慢慢添加。

三、编程
编程我是循着由简到难、层层推进的策略一步步推进的。首先,要让小车能通电直行;其次,添加红外遥控模块,使小车按安装遥控器的指令前进后退左转右转等待等等;再次,添加超声波测距模块实现自动避障;再后,添加寻迹模块,使小车能巡线行走……
循着这个路径,本帖先说说前两个目标的实现,后续的功能另开贴说明。
1、小车走起来
小车的直流电机驱动起来很简单,比如IN1和IN2是驱动马达A的,假如IN1高电平IN2低电平,马达A正转,那么IN1低电平IN2高电平则马达A反转,IN1和IN2同时低电平或是同为高电平则不转。
我将IN1、IN2、IN3、IN4分别接至Nano板子的D2、D3、D4、D5引脚,则让小车前进可如下编程即可:

至于小车后退、左转右转则同理,只需控制相应引脚的输出电平即可。
2、红外遥控
(1)硬件模块
红外遥控所需的红外发射、接收硬件模块如下:

开源硬件,好买便宜。将接收模块的vcc接到Nano的3.3v,gnd接到nano的gnd,DO接Nano的D6,完毕。接下来就是测试各个按键的键值。
(2)测试遥控器键值
Nano虽然没有自带显示屏,但其usb键盘发送功能在调试程序时却是很方便。为了测试红外遥控器的各键值,我编了如下程序:

运行时,只需打开记事本程序,按一次遥控器的键,笔记本上就会记录下一个键值。记录下各键值,后期编程要用。
(3)编程实现红外遥控小车
知道了遥控器各按键的键值,编程相对就简单了。这里建议将各个功能的实现分别写成独立的函数,方便后期调用。如将小车前进单独写成一个前进的函数如下:

遥控小车完整的积木如下:

ngxxczlwh 发表于 2020-2-29 22:52:26

很少发帖子,给自己鼓励一下:D

zly188 发表于 2020-3-1 19:01:11

ngxxczlwh 发表于 2020-2-29 22:52
很少发帖子,给自己鼓励一下

写得很不错多多发贴和分享,可以把这个项目做下去。

ngxxczlwh 发表于 2020-3-1 19:47:25

zly188 发表于 2020-3-1 19:01
写得很不错多多发贴和分享,可以把这个项目做下去。

谢谢祝老师的鼓励!
页: [1]
查看完整版本: 玩转Nano之智能小车GoGoGo