掌控板遥控小车

2022-02-282.6万
AI 快速预览详细 收起
本文介绍了如何使用掌控板来遥控小车。通过编程实现小车的左转、右转和前进功能。项目中使用了DFRobot_ESP32_Radio库进行无线通信,并通过IOBOX_Motor库控制电机。这个项目适合STEM教育场景,能够激发孩子对编程的兴趣。


很多遥控小车都是用PS2手柄,红外遥控器之类的来遥控。我这个程序不一样,他是用掌控板来遥控。
  1. /*!
  2. * MindPlus
  3. * mpython
  4. *
  5. */
  6. #include <MPython.h>
  7. #include <IOBOX_Motor.h>
  8. #include <DFRobot_ESP32_Radio.h>
  9. // 动态变量
  10. volatile float mind_n_Whether_to_start_or_not;
  11. // 函数声明
  12. void onRadioReceive_0();
  13. void onRadioReceive(String message);
  14. // 创建对象
  15. DFRobot_ESP32Radio Radio;
  16. IOBOX_Motor        motor_ib;
  17. // 主程序开始
  18. void setup() {
  19.         Radio.setCallback("OK", onRadioReceive_0);
  20.         mPython.begin();
  21.         Radio.setCallback(onRadioReceive);
  22.         display.fillScreen(0);
  23.         mind_n_Whether_to_start_or_not = 0;
  24.         Radio.turnOn();
  25.         Radio.setGroup(1);
  26.         Radio.send("GO");
  27. }
  28. void loop() {
  29. }
  30. // 事件回调函数
  31. void onRadioReceive_0() {
  32.         mind_n_Whether_to_start_or_not = 1;
  33.         display.setCursorLine(1);
  34.         display.printLine("待命中...");
  35.         display.setCursorLine(2);
  36.         display.printLine("随时准备出发");
  37. }
  38. void onRadioReceive(String message) {
  39.         display.fillScreen(1);
  40.         if ((mind_n_Whether_to_start_or_not==1)) {
  41.                 if (((String(message).length())==2)) {
  42.                         // 左转
  43.                         motor_ib.motorRun(motor_ib.M1, motor_ib.CW, 200);
  44.                         motor_ib.motorRun(motor_ib.M2, motor_ib.CW, 140);
  45.                 }
  46.                 if (((String(message).length())==3)) {
  47.                         // 右转
  48.                         motor_ib.motorRun(motor_ib.M2, motor_ib.CW, 200);
  49.                         motor_ib.motorRun(motor_ib.M1, motor_ib.CW, 140);
  50.                 }
  51.                 if (((String(message).length())==1)) {
  52.                         motor_ib.motorRun(motor_ib.M2, motor_ib.CW, 255);
  53.                         motor_ib.motorRun(motor_ib.M1, motor_ib.CW, 255);
  54.                 }
  55.         }
  56. }
复制代码

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(2)
Mr-k
Mr-k
666厉害厉害
RYAN
RYAN
作者
遥控端的程序想看吗?想看就回复666
算了吧,直接告诉你们吧。
[code]/*!
* MindPlus
* mpython
*
*/
#include
#include
// 函数声明
void onRadioReceive_0();
// 创建对象
DFRobot_ESP32Radio Radio;
// 主程序开始
void setup() {
Radio.setCallback("GO", onRadioReceive_0);
mPython.begin();
Radio.turnOn();
Radio.setGroup(1);
}
void loop() {
}
// 事件回调函数
void onRadioReceive_0() {
Radio.send("OK");
while (1) {
if ((buttonA.isPressed())) {
Radio.send("ZZ");
}
if ((buttonB.isPressed())) {
Radio.send("YZB");
}
if ((buttonAB.isPressed())) {
Radio.send("Z");
}
yield();
}
}
[/code]
rzyzzxw
rzyzzxw回复RYAN
666
- 没有更多了 -