基于Beetle ESP32-C3的遥控小车设计(一)
本帖最后由 肖申克 于 2023-6-7 20:26 编辑基于Beetle ESP32-C3的遥控小车设计
一、背景与项目概述 在硬件漂流群看到了“Beetle ESP32-C3免费试用活动”,Beetle ESP32-C3是一款基于ESP32-C3 RISC-V 32位单核处理器芯片的主控板,看了介绍的文档,想利用他的蓝牙功能来做个遥控小车,想控制小车行动和机械臂,并且在小车上面安装传感器,实现环境监测反馈。通过遥控器两个摇杆六个自由度控制,oled屏幕显示温度湿度亮度。但是这过程中好多坎坷,最后我放弃了,只做了个遥控车,用摇杆控制移动。二、困难与妥协1.拓展板不适合,只能自制拓展板 申请了两片,很快就收到了。分别是两片Beetle ESP32-C3和拓展版。 拿到之后,首先面对的问题就是拓展版设计不方便。最开始想拓展版焊接母口,单片机焊接公口,然后在拓展版接线。 但是拓展版信号引脚集中在一起,估计是为了减小体积,但是这对接线造成不便。(后续可以考虑改进)。 因为我打算使用小车模块,根据我的需要,我自己用洞洞板做了一个简单的拓展版。左边为接收端拓展版,参考了掌控板系列的排列(GND\VCC\S)方便连接小车模块。右边为发射段拓展版,增加了3v3和GND的引脚。2.编程环境不熟悉,改成图形化编程制作过程中,面临的最大困难就是编程环境的搭建。我打算用Arduino IDE 进行编程,因为示例多,兼容性强。计划使用手势识别采集控制,并使用oled显示状态和回传的温度。根据官方文档的指引,在DFROBOT DFR0868 Beetle ESP32 C3 产品资料 使用教程 的指引下一步一步完成。虽然最后成果搭建并且完成了“blink”。(这一行字花了一个多星期的时间,还用了“技术手段”)但是,还是因为太多的状况,停止了尝试。(比如添加手势识别模块过程中的报错,其他模块也经常发生报错)最后,选择用Mixly(米思齐)进行编程。Mixly(米思齐)是一款图形化编程软件。用户可以通过拼接积木块的方式来编写程序。另外,本来计划使用低功耗蓝牙进行信号传输,由于换了米思齐进行编程,改为使用“广播”进行信号传输,并取消了手势识别和oled,采用最简单的模块实现功能。
三、硬件与设计思路
1.硬件清单
Beetle ESP32-C3 *2
3PA三轮小车套件 *1TB6612FNG微型双路直流电机驱动模块 *1双轴按键遥杆传感器 *1
红黄绿led模块 *1
自制拓展板(洞洞板、排针、自锁开关) *23.7v锂电池 *2
杜邦线若干
2.设计思路因为图形化编程的限制,遥控小车采用“广播”传输信号。在“遥控器”采用遥杆三个自由度采集信号,led模块显示模式。小车根据接收到的信号响应动作。
四、模块调试1.“广播”通讯本项目最核心的内容就是“广播”功能。图形化编程分为:初始化、发送消息、接收信息三种类型。查阅python代码,可以推测这个功能是基于“ESPNow”制作的库。
ESP-NOW 的消息的接收属于无阻塞的接收方式,不受延时函数影响,很适合做遥控器。具体看参考资料因此,我利用两个Beetle ESP32-C3一个作为遥控器发射端,一个作为小车接收端,利用字符串“UP”发射与接收验证“广播”功能。此外,掌控板也有“广播”功能,查看源代码,我估计也是同个协议,也用Mind+做了掌控板的双向验证。具体如下图和演示视频。
https://www.bilibili.com/video/BV1Su411p7sW/
(电脑浏览器可正常观看,手机浏览器切换成”电脑模式“可观看,确实无法观看复制视频地址通过浏览器观看)视频地址:https://www.bilibili.com/video/BV1Su411p7sW/?spm_id_from=333.788&vd_source=70459f7369999ce0e18a8fef6dbab909
2.其他模块解决了无线通讯的问题,其他部分相对比较熟悉,调试过程比较顺利。限于篇幅,下面做简单展示。(1)遥杆模块https://www.bilibili.com/video/BV14M4y1e7TM/?vd_source=70459f7369999ce0e18a8fef6dbab909
视频地址:https://www.bilibili.com/video/BV14M4y1e7TM/?vd_source=70459f7369999ce0e18a8fef6dbab909
(2)温湿度反馈模块https://www.bilibili.com/video/BV1Ys4y1i7QJ/?spm_id_from=333.788&vd_source=70459f7369999ce0e18a8fef6dbab909
视频地址:https://www.bilibili.com/video/BV1Ys4y1i7QJ/?spm_id_from=333.788&vd_source=70459f7369999ce0e18a8fef6dbab909
这个部分的想法是想验证“广播”的双向传输信号,小车端在接收到信号后,完成响应并且向遥控器发送小车端搭载的温湿度传感器采集的数据。但是因为遥控器没有显示功能,最后这个功能探索成功之后没有采用。这也为后面的升级提供了思路。(3)3PA三轮小车模块因为本身工作比较忙,所以采用非常稳定的小车和电机驱动模块,减少工作量,请看参考资料。
五、成品展示1.遥控器将遥杆、led模块、拓展板和电池固定在一块椴木板上(这块板是之前做作品剩下的)。
2.小车将电池、拓展板利用螺丝固定在小车上。
3.装上电池,充电。
4.上电,启动!默认黄色灯正常模式,红色灯运动模式,绿色灯平稳模式。https://www.bilibili.com/video/BV1Z14y1D7NC/?vd_source=70459f7369999ce0e18a8fef6dbab909
视频地址:https://www.bilibili.com/video/BV1Z14y1D7NC/?spm_id_from=pageDriver&vd_source=70459f7369999ce0e18a8fef6dbab909
六、收获与感悟关于这个项目,作为一个业余爱好者,其实有很多想法,但是只停留在想法阶段。有工作的原因,忙碌的工作很难有大块时间学习。另外的一个原因就是技术,很多困难无法逾越,一些想法也就搁浅。本次的使用给了我一个契机,强迫自己做出一个东西,虽然是很普普通通的项目。
关于这块Beetle ESP32-C3,他的通讯功能和自带充电模块、体积小是亮点。如果在拓展板上改进,并且兼容Mind+,会有更多的发展空间。
关于小车,其实还有很多不足,比如两个电机在同个pwm的情况下功率不同,比如还没实现的其他功能。时间关系,先交作业吧。
后面还有很多事情忙,如果有时间会写个(二),把程序过程也来介绍一下。感谢大家阅读。请多多提宝贵意见。
因为预计接下来一个月很忙,所以直接上程序。请各位大佬多多指点;基于Beetle ESP32-C3的遥控小车设计(二) - DF创客社区 - 分享创造的喜悦 (dfrobot.com.cn)
参考资料Beetle ESP32-C3(RISC-V芯片)-Beetle微型控制器-DFRobot创客商城https://www.dfrobot.com.cn/goods-3494.htmlMixly 简介 — Mixly Wikihttps://mixly.readthedocs.io/zh_CN/latest/basic/01Mixly_introduction.htmlESP-NOW:竟然还有如此好用的无线通信方式 | ESP32学习之旅-Arduino版 (zhihu.com) https://www.zhihu.com/tardis/zm/art/344109867?source_id=1005电机驱动、双路直流电机、微型、产品简介、产品参数、使用说明、应用样例 (dfrobot.com.cn)https://www.dfrobot.com.cn/goods-1634.html
视频合集:https://www.bilibili.com/video/BV1Z14y1D7NC/ 有个APP叫蓝牙调试器,效果和Blynk一样,推荐用那个,也省得做遥控器费事。 帅猫 发表于 2023-6-3 21:07
有个APP叫蓝牙调试器,效果和Blynk一样,推荐用那个,也省得做遥控器费事。 ...
嗯嗯,谢谢。 很赞!很赞! 豆爸 发表于 2023-6-7 10:50
很赞!很赞!
感兴趣玩一玩而已。向您学习。 您好,同学,打扰了!您可以提供一下这个mixly的'消息“库文件吗?
页:
[1]