ESP32CAM物联网教学03
物联网小车
小智突发奇想:要是我在点灯物联APP中多增加几个按钮,控制小车的行驶方向,不就可以做成遥控小车了吗?
- 点灯物联控制小车的行驶方向
我们可以重新编辑点灯物联APP中的设备控件界面,如图所示,在界面中增加五个按钮,分别控制着小车的前进、左转、停止、右转、后退,这样是不是能变成遥控小车呢?
(五个方向按钮的键名分别命名为:btn-ff、btn-ll、btn-ss、btn-rr、btn-bb,这些键名在后面的米思齐编程中需要逐一用到; 按钮的类型为按键按钮)
- 拼装物联网遥控小车
遥控小车可以选购现成的小车底座。
当然也可以选用乐高积木,然后自己根据想象进行自由的拼装。下面这些是拼装小车所必须的零部件,可以一一从网上购买(购买这些大约需要100元左右,比起购买现成的小车底座要贵了不少,但是这种自由拼装的方式,可操作性强一些,而且特别适合小孩自己玩)
经过一番折腾,你就能创造出专属于自己的一辆小车了,这两小车也是全网唯一的一辆,拼装完成后,成就感爆棚。特别是到了我们课程的最后,我们会不断地给这两小车增加一些功能,相信这是你拥有的最靓的、最智能的一辆小车了。
- 小车的电路连接
首先,我们通过查阅淘宝上面的商品介绍信息,可以了解到L298n电机驱动板的引脚配置信息,可以看出这块点击驱动板可以同时驱动A、B两个电机,由四个逻辑端口进行驱动。ESP32Cam左侧的端口本来是用于TF存储卡的,因为我们没有用到TF存储卡,所以这几个端口是可以用来作为输入或输出端口使用的。
我们利用杜邦线对小车的各个设备进行连接,接线图如下,2节1860电池差不多可以提供8—9V的电源电压,直接接入L298n,给驱动板和电机供电;这块驱动板自带5V调压芯片,可以输出5V的电源给ESP32Cam使用;ESP32Cam的12、13、15、14这四个端口,分别连接点击驱动板的逻辑控制端口。
- 编写ESP32Cam的小车控制程序
ESP32Cam的控制程序还是用米思齐的积木块编写。
我们在前面的点灯程序基础上,复制了五个按键积木组合,每一个按键积木的组件名称和对应的键名各不相同:组件名称分别用Button1——Button5一一区分。所对应的键名,和前面的手机APP中命名的一致,btn-ff表示小车前进forward;btn-bb表示小车后退back;btn-ss表示小车停止stop;btn-ll表示小车左转left;btn-rr表示小车右转right。
左右两个电机分别由两组逻辑端口控制,左边的电机由ESP32Cam的12、13号端口控制,右边的电机由ESP32Cam的15、14号端口控制。
L298n采用的是H桥放大的工作原理,当12号端口为高,13号端口为低时,对应的左边电机的两个输出端口,一个为高电平,一个为低电平,两个端口的不同电势差,在电机内部形成了正向电流,电机正向转动,小车就前进了。相反,当12号端口为低,13号端口为高时,两个端口的不同电势差正好相反,在电机内部形成了反向电流,电机反向转动,小车就后退了。当12号和13号端口同时为低时(或同时为高),对应的两个端口则同时为低电平(或同时为高电平),两个端口之间没有电势差,电流也无法流过电机内部,电机停止转动,小车就停止了。
根据电机驱动原理,我们简化了按键组件的驱动程序,当用户在手机APP中按动不同方向按键使,让ESP32Cam控制着左右电机的转动方向,让小车动起来。当左右两个电机同时正向转动是,小车就前进;同时反向转动时,小车就倒退;左边正转右边反转时,就是右转;左边反转右边正转时,就是左转了。
温馨提醒:
因为这个电机的转速还是挺高的,所以我们选用点触驱动的方法,即当用户按动一次前进按钮时,我们让电机转动了1秒就停下来,如果需要继续前进,则需要继续按一次按动前进按钮。
因为电机的速度挺高的,如果不是采用这种点触控制,而是采用连续控制的话(比如按动前进按钮,小车就一直前进,在接收到用户的下一个操作命令之前,一直处于前进的状态),这样小车会处于失控的状态的,遥控的效果不好。当然,如果电机的速度慢,则可以使用连续控制了。