项目简介
本项目聚焦于探索ESP32微控制器间的无线通信,借助ESP-NOW技术达成从一个微控制器到另一个微控制器的数据流发送。ESP-NOW是一种快速且无连接的通信技术,支持传输最多150字节的小数据包,适用于远程控制设备、传感器等应用场景,能消除便携式和固定设备间的数据电缆需求。
项目的主要特性和功能
- 实现两个ESP32微控制器之间的无线数据传输。
- 可通过无线方式对系统操作进行远程控制。
- 能无线控制多个直流减速电机,适用于移动机器人的差动驱动系统。
- 利用I2C颜色传感器测量物体的RGBC信息。
- 可无线传输传感器相关的数据。
安装使用步骤
硬件准备
- 2个ESP32 DEVKIT-V1开发板
- 2个ESP32扩展板
- 2个模块化无焊面包板
- 2个带编码器的直流减速电机
- MX1508双直流电机驱动器
- 3个5mm LED
- 3个1 kΩ 1/4 W电阻
- 5 kΩ电位器
- 4个常开(NO)按钮
- TCS34725颜色传感器
- 跳线或杜邦线(M-F)用于连接组件
软件准备
- 安装Arduino IDE并配置为ESP32。
- 使用USB - A到USB - micro电缆将ESP32连接到计算机。
- 通过“Tools → Board → esp32”菜单选择“DOIT ESP32 DEVKIT V1”。
- 可选择使用VSCode和PlatformIO IDE进行开发。
构建和上传代码
- 打开Arduino IDE,选择正确的开发板和端口。
- 复制项目仓库并切换到相应的分支(如
exercise1
)。 - 找到并上传
Lab5 - controller.ino
到控制ESP32,上传Lab5 - drive.ino
到驱动ESP32。 - 在控制代码中更新
receiverMacAddress
变量为驱动ESP32的MAC地址,反之亦然。
测试和验证
- 确认内置的“心跳”LED以均匀间隔闪烁。
- 运行程序并观察串行监视器上的输出,确认MAC地址显示正确。
- 按下按钮观察直流电机的响应,验证系统的安全行为。
进一步实验
- 添加电位器控制电机速度。
- 添加按钮控制左右转向。
- 添加颜色传感器检测特定颜色的物体并控制LED。
资源
- Arduino语言参考
- DOIT ESP32 DevKit V1引脚图和Arduino参考
- Arduino-ESP32 GPIO API
- Arduino-ESP32 ESP-NOW API
- LEDC外设参考
- 电阻色码指南
- 电位器数据表—B(线性)斜率
- G12-N20-100直流减速电机
- MX1508双直流电机驱动器
- TCS34725颜色传感器数据表
- Adafruit TCS34725 Arduino库
- 示例视频和其他链接可在OWL上找到。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】