关键字:ESP32、智能、车、陀螺仪、 蓝牙、ESPNOW
今天介绍遥控器部分
遥控器采用了两种方式,安卓手机端的蓝牙遥控、ESPNOW网络遥控。主要是介始ESPNOW网络遥控,硬件设备清单如下:
- ESP32S3一个
- 陀螺仪一个
- 蜂鸣器一下
- 按键三个(带LED灯)
- 电源开关一个
- 电池一个
- 充放电模块一个
如图:
下一节开始介绍代码部分。
代码部分的主要函数及功能如下:
- 开发工具:VS_CODE + platformio (蚂蚁)
- 整个目录就是所有的源码
- 程序源码全在 src 这个目录中,main.cpp 为主程序,其它的为头文件或库
- 整体思路:
- 设置ESP32各引脚功能,如 电机的,陀螺仪的,超声波的,声音模块的等
- 基础函数:电机驱动函数:正转,反转,快转,慢转,包括电机转动方向设定函数(正转,反转)
- 车子驱动函数:控制四个电机怎么转动,转多快,转多远,停车,刹车,转弯角度设定
- 车子运动过程中的判断函数:前进或后退 是否有障碍物,是否走到了指定的距离,是否转弯转到了指定的角度
- 车子运动修正函数:修正角度,暂未实现
- 相关辅助函数:陀螺仪判断角度,超声波判断距离,磁力计(暂未使用),声音提示函数
- 车子自动退让函数:车子空闲时,如有障碍物接近达到一定程序,车子自动退让
- 蓝牙控制
- ESPNOW 网络控制
- 遥控器部分:安卓手机蓝牙调试器遥控、ESPNOW手势遥控
- 具体实现代码看源码,代码内有详细说明
- 后续计划:
- 网络暂时用WIFI,与手机热点相连,原计划加 4G 模块,但是需要手机卡或流量卡才行;GPS定位功能暂时不加,以后看服务端是怎么控制的再说
- 脚本解析: 在 loop() 中循环查找并执行脚本库里的未执行脚本命令,脚本库命令状态为:待执行,正在执行,执行完毕
- 如果有新的脚本命令过来,则暂停当前脚本执行,用新的脚本命令替换旧的,并继续执行新的脚本命令
- 脚本命令全部执行完毕后,车子处于待命空闲状态