基于 MicroBlocks 的"双模态"遥控智能小车
一、简介
DIY 一个智能小车,是很多学习硬件编程、创客制作的朋友们,朝思暮想都要去完成的任务。
在这里将介绍如何快速高效做出足够智能的遥控小车。
我们将使用物美价廉的 ESP32 芯片板子,和编译、调试速度飞快的 MicroBlocks 编程环境,结合 BLE 蓝牙模块和红外模块,制作一个具备“双模态”遥控功能的智能小车。
这个小车可以通过红外遥控和蓝牙遥控两种方式进行控制,为 MicroBlocks 爱好者提供了一个交流和学习的案例参考。使用到 MicroBlocks 的库有: BLE Radio 蓝牙广播,IR Remote 红外线等。
二、硬件部分
ESP32 板子:作为小车的核心控制单元,选择掌机型号以便于携带和操作。
TT 电机和轮子:选用两个 TT 电机和相应的轮子,接口为 PH2.0,用于小车的驱动。
电池和升压模块:包括一个 18650 电池座和一个 3.3V 升 5V 的模块,为小车提供稳定电源。
红外接收模块:用于接收红外遥控器的信号,接口包括 G(地)、V(电源)和 O(输出)。
红外遥控器:一个废弃的音响遥控器,用于控制小车。
蓝牙遥控器:使用另一个 ESP32 板子(掌机),通过 MicroBlocks 编写蓝牙广播程序,实现远程控制小车。
三、车子效果
车子早期版本
采用过 86 盒做支撑,由于不好固定 ESP32 板子,行动时会摇摇晃晃,效果不好。也采用过用老旧玩具小车做支撑,增加 ESP32 板子,实现智能小车效果,由于玩具小车重心较高,速度快时容易翻车。
小车新版本
小车采用一块 PCB 板作为支撑,PCB 板轻薄且硬度高,能够承受较大重量。轮子通过螺丝和热封胶固定在板子底部,18650 电池座也固定在底部。ESP32 板子放置在 PCB 板上方。
遥控器
包括红外遥控和蓝牙遥控两种方式。红外遥控使用一个老旧的音响遥控器,蓝牙遥控则使用另一个 ESP32 板(掌机)。
四、软件部分
小车端程序:smart_car.ubp,负责接收和处理遥控信号,控制小车的移动。
遥控端程序:smart_car_control.ubp,负责发送遥控信号,包括红外和蓝牙两种模式。
五、程序说明 car
在 smart_car.ubp 程序中,我们首先初始化 ESP32 板子的 GPIO 引脚,用于电机控制。接着,我们初始化红外接收模块,并设置一个中断服务程序(ISR)来处理红外信号。对于蓝牙部分,我们使用 MicroBlocks 的 BLE Radio 库来广播和接收信号。程序的主要逻辑如下:
初始化 GPIO 引脚和电机驱动模块。
初始化红外接收模块,并设置中断服务程序。
在主循环中,检查红外和蓝牙信号,根据信号控制电机的转动。
实现一个简单的状态机,用于处理不同的遥控命令。
六、程序说明 control
在 smart_car_control.ubp 程序中,我们实现了一个简单的用户界面,用于发送遥控命令。程序的主要逻辑如下:
初始化蓝牙模块,并设置为广播模式。
创建一个用户界面,包括按钮和指示灯,用于发送不同的遥控命令。
根据用户的操作,发送对应的红外或蓝牙信号。
七、参考
1、MicroBlocks 是什么
MicroBlocks 是一个免费的、实时的区块编程系统 对于教育工作者和创客来说,它的目标是成为“物理计算的 Scratch”。 它可以在 micro:bit、Raspberry Pi Pico (RP2040)、Calliope mini、 Adafruit CircuitPlayground Express 和 Bluefruit, ESP8266、ESP32 和许多其他微控制器。
2、智能小车代码如何重构
使用阿里通义灵码进行 MicroBlocks 代码重构:智能小车代码AI辅助重构
八、总结
本项目不仅展示了如何使用 MicroBlocks 和 ESP32 板子制作智能小车,还介绍了如何通过红外和蓝牙两种方式实现遥控功能。通过这个项目,MicroBlocks 爱好者可以学习到硬件选择、电路连接、编程逻辑和遥控技术的应用。希望这个案例能够帮助大家制作出自己的“双模态”遥控智能小车。
版权声明: 本文为 InfoQ 作者【积木思维】的原创文章。
原文链接:【http://xie.infoq.cn/article/679ff23241deec68a179c3baf】。文章转载请联系作者。
评论