45浏览
查看: 45|回复: 13

[K10教程] 【花雕动手做】行空板 K10 掌控板 AB 键无线广播遥控小车

[复制链接]
【花雕动手做】行空板 K10 掌控板 AB 键无线广播遥控小车图2

行空板K10是一款专为快速体验物联网和学习人工智能而设计的开发学习板,100%采用国产芯片,知识产权自主可控,符合信息科技课程中编程学习、物联网及人工智能等教学需求。该板集成2.8寸LCD彩屏、WiFi蓝牙、摄像头、麦克风、扬声器、RGB指示灯、多种传感器及丰富的扩展接口。凭借高度集成的板载资源,教学过程中无需额外连接其他设备,便可轻松实现传感器控制、物联网应用以及人脸识别、语音识别、语音合成等AI人工智能项目。

主要特点
集成摄像头&内置算法,可进行离线图像检测
集成麦克风&内置算法,可进行离线语音识别
集成扬声器&内置算法,可进行离线语音合成
2.8寸彩色屏幕,数据展示更清晰
集成度高,利于教学
接口丰富,兼容软件多,扩展性好


【花雕动手做】行空板 K10 掌控板 AB 键无线广播遥控小车图1

驴友花雕  高级技神
 楼主|

发表于 8 小时前

【花雕动手做】行空板K10掌控板AB键无线广播遥控小车

实验扩展板与麦轮小车

【花雕动手做】行空板 K10 掌控板 AB 键无线广播遥控小车图2

【花雕动手做】行空板 K10 掌控板 AB 键无线广播遥控小车图1

回复

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 8 小时前

【花雕动手做】行空板K10掌控板AB键无线广播遥控小车


遥控发射端掌控宝(带锂电池)

掌控板是国内专为**中小学 Python 创客教育**设计的开源微型开发板,搭载 ESP32 主控,自带 WiFi + 蓝牙,是一块 “掌上微型电脑”DFRobot。

一、核心板载硬件(不用外接配件就能玩)

1. **1.3 寸 OLED 显示屏**:128×64 分辨率,显示文字、动画、图片,支持中文;
2. **交互部件**:A/B 物理按键、6 路金手指触摸键、3 颗全彩 RGB 灯、蜂鸣器(播放音乐);
3. **内置传感器**:麦克风(拾音)、光线传感器、三轴加速度 / 磁场传感器(做电子罗盘、计步器);
4. **通信**:WiFi、蓝牙双无线,可联网、两块板子无线互传数据;
5. **拓展**:底部金手指引出全部 IO,能外接舵机、温湿度、电机等模块。

二、两种编程方式,零基础友好

1. **图形化积木编程(mPython/Mind+)**:拖拽模块,小学生也能上手;
2. **MicroPython 代码编程**:直接写 Python 代码,衔接初高中信息技术课程。

三、常见用途

- 课堂教学:编程入门、物联网、STEAM 科创课;
- 趣味制作:电子表、声光小游戏、声控彩灯、便携噪声 / 光照检测仪;
- 物联网:联网看天气、远程控制设备、环境数据上传云端;
- 可穿戴:智能手环、电子徽章、便携小仪器。

四、特点

体积小巧、一体化集成传感器、国产教育硬件、软硬件全开源,不用复杂接线就能快速做出智能小作品。


【花雕动手做】行空板 K10 掌控板 AB 键无线广播遥控小车图1

回复

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 8 小时前

【花雕动手做】行空板K10掌控板AB键无线广播遥控小车

添加通信模块——无线广播

【花雕动手做】行空板 K10 掌控板 AB 键无线广播遥控小车图1

【花雕动手做】行空板 K10 掌控板 AB 键无线广播遥控小车图2


回复

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 8 小时前

【花雕动手做】行空板K10掌控板AB键无线广播遥控小车

板载传感器与小车扩展板相关积木

【花雕动手做】行空板 K10 掌控板 AB 键无线广播遥控小车图3

【花雕动手做】行空板 K10 掌控板 AB 键无线广播遥控小车图1

辅助:屏幕显示相关积木

【花雕动手做】行空板 K10 掌控板 AB 键无线广播遥控小车图4

LED控制模块

【花雕动手做】行空板 K10 掌控板 AB 键无线广播遥控小车图2

回复

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 8 小时前

【花雕动手做】行空板K10掌控板AB键无线广播遥控小车

知识点:无线广播------行空板 K10 BLE、BLE Mesh 广播

一、BLE 普通广播(广播包 Advertising,非连接型)
1. 工作原理
发送板不建立蓝牙配对连接,定时(间隔可设)向外发送短小广播数据包;周围所有开启蓝牙扫描的 K10/ESP32 设备被动抓取数据,属于一对多离线通信,全程不用 WiFi、路由器。
发送端:只发包,不等待应答
接收端:持续扫描,识别目标设备标识后读取内容
2. 核心参数
传输距离:空旷 5–10 米,隔墙大幅衰减
功耗优势:发送、待机电流都很低,电池供电可长时间运行
数据限制:单帧广播载荷很短,一般几十字节以内
拓扑:1 个发射源→N 个接收机,接收机之间互不通信
3. 适用场景
一块主控批量控制多台 LED、蜂鸣器、小电机开关
手环式传感器广播温湿度、按键状态给多块行空板
无网络教室简易一控多教具
4. 短板
不能传长文本、语音、图片、大量数值
无可靠重传机制,干扰环境容易丢包
只能单向发,接收端无法回传数据给发射板

二、BLE Mesh 网格广播组网
1. 工作原理
所有行空板加入同一个 Mesh 网络,节点地位平等:
任意一块板子发送一条消息,全网所有 Mesh 节点同步收到;信号弱的节点还能中继转发消息,扩大覆盖范围,属于多向全网广播。
完全离线运行,不需要 WiFi 路由。
2. 对比普通 BLE 广播优势
信号中继:远距离、隔墙场景靠中间板子接力传递信号
双向互通:每个节点既能发全网广播,也能接收全网消息
分组控制:可划分分组,消息只发给指定分组设备,不用全部设备响应
稳定性高于单纯 Advertising 广播,自带简单纠错
3. 典型应用
教室几十台行空板灯光同步亮灭、抢答同步触发
多房间灯光、智能开关统一控制
分布式传感器,任意节点上报数据全网可见
4. 固有局限
单条消息数据量依旧偏小,依旧无法承载音频、大图
组网设备数量过多时,消息延迟会上升
相比 WiFi UDP,传输速度慢很多

三、两者统一短板汇总
大数据传输能力弱:仅适配开关指令、1–2 组数字、简短标识
高速传输不行:实时音频、大屏多行文字、图像一律不推荐
穿墙能力一般,密集金属遮挡信号暴跌
大量设备同时发包容易产生蓝牙信道冲突丢包

四、行空板 K10 实操区分选择
简单一控多、电池低功耗、距离近 → BLE 普通 Advertising 广播(代码简单、资源占用最小)
多设备互相收发、需要中继扩距离、批量分组控制 → BLE Mesh(组网复杂一点,功能更强)
要传文字、声音、大量数据、距离远、设备多稳定通信 → 优先改用 WiFi UDP 广播

补充简易实操要点
BLE 广播必须设置唯一设备名称 / UUID,接收端过滤识别,避免抓取无关蓝牙设备数据包;
Mesh 组网所有设备必须写入同一组网密钥、同一网络 ID 才能互相通信;
电池供电项目首选 BLE 体系,插电稳定大数据项目优先 WiFi。

【花雕动手做】行空板 K10 掌控板 AB 键无线广播遥控小车图1

回复

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 8 小时前

【花雕动手做】行空板K10掌控板AB键无线广播遥控小车

掌控板无线广播遥控发射端

【花雕动手做】行空板 K10 系列实验之掌控板AB键无线广播通信遥控小车

实验开源代码

  1. // 引入掌控板官方底层驱动库,提供屏幕、按键、RGB灯等板载硬件操作接口
  2. #include <MPython.h>
  3. // 引入DFRobot ESP32无线射频通信库,实现两块掌控板之间2.4G无线收发数据
  4. #include <DFRobot_ESP32_Radio.h>
  5. // 函数声明:提前告诉编译器下面有两个按键按下触发的回调函数
  6. void onButtonAPressed();
  7. void onButtonBPressed();
  8. // 创建无线通信类实例对象Radio,后续通过这个对象调用无线收发功能
  9. DFRobot_ESP32Radio Radio;
  10. // 系统初始化函数,上电/复位只运行一次
  11. void setup() {
  12.     // 初始化掌控板所有硬件:屏幕、按键、灯光、传感器等,必须第一行执行
  13.         mPython.begin();
  14.     // 绑定A按键按下的回调函数:按下A键自动执行onButtonAPressed函数
  15.         buttonA.setPressedCallback(onButtonAPressed);
  16.     // 绑定B按键按下的回调函数:按下B键自动执行onButtonBPressed函数
  17.         buttonB.setPressedCallback(onButtonBPressed);
  18.     // 开启2.4G无线射频模块,初始化无线硬件
  19.         Radio.turnOn();
  20.     // 设置无线通信分组为13,只有收发两端分组号完全一致才能互相通信
  21.         Radio.setGroup(13);
  22.     // 控制第1颗RGB彩灯,设置颜色纯蓝色(0x0000FF 十六进制RGB:绿0 红0 蓝255)
  23.         rgb.write(1, 0x0000FF);
  24.     // 将文字光标移动到屏幕第1行,准备打印文字
  25.         display.setCursorLine(1);
  26.     // 在第1行屏幕打印标题:Mind+小车遥控器
  27.         display.printLine("Mind+小车遥控器");
  28.     // 光标切换到屏幕第2行
  29.         display.setCursorLine(2);
  30.     // 第二行打印操作提示:A开启  B关闭
  31.         display.printLine("A on  B  off");
  32. }
  33. // 主循环函数,setup执行完成后无限循环运行
  34. void loop() {
  35.     // 本程序所有功能依靠按键回调触发,无需在循环内写逻辑,留空即可
  36. }
  37. // A按键按下触发的回调函数
  38. void onButtonAPressed() {
  39.     // 通过无线模块向同分组设备发送字符串 "on"
  40.         Radio.send("on");
  41.     // 第1颗RGB灯切换为绿色(0x00FF00:绿255,红0,蓝0)
  42.         rgb.write(1, 0x00FF00);
  43.     // 光标跳至屏幕第3行
  44.         display.setCursorLine(3);
  45.     // 第三行打印on,表示已发送开启指令
  46.         display.printLine("on");
  47. }
  48. // B按键按下触发的回调函数
  49. void onButtonBPressed() {
  50.     // 无线发送关闭指令字符串 "off"
  51.         Radio.send("off");
  52.     // 第1颗RGB灯切换为红色(0xFF0000:红255,绿0,蓝0)
  53.         rgb.write(1, 0xFF0000);
  54.     // 光标到屏幕第3行
  55.         display.setCursorLine(3);
  56.     // 打印带空格的off,覆盖上一行的on文字,显示关闭状态
  57.         display.printLine("       off");
  58. }
复制代码


回复

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 8 小时前

【花雕动手做】行空板K10掌控板AB键无线广播遥控小车

掌控板无线遥控发送端 代码解读

一、头文件引入区

  1. #include <MPython.h>
  2. #include <DFRobot_ESP32_Radio.h>
复制代码

1. `#include <MPython.h>`
掌控板专属底层库,封装屏幕、按键、RGB 灯、传感器所有板载硬件接口,Mind + 开发掌控板必备,没有它无法操作屏幕、A/B 按键、彩灯。
2. `#include <DFRobot_ESP32_Radio.h>`
DFRobot 官方 2.4G 无线通信库,依托 ESP32 射频实现板间点对点无线收发,**不依赖 WiFi、路由器**,两块掌控板直接通信,适合做小车遥控。

二、函数声明区

  1. void onButtonAPressed();
  2. void onButtonBPressed();
复制代码

C++ 语法规则:如果自定义函数写在主函数下方,编译器提前看不到函数,必须先声明。
两个函数分别对应 A 键、B 键按下后的执行逻辑,属于**按键回调函数**。

三、对象实例化

  1. DFRobot_ESP32Radio Radio;
复制代码

创建无线通信对象 `Radio`,后续所有无线开关、分组、发指令操作,都通过这个对象调用。

四、setup () 初始化函数(上电只执行 1 次)

  1. void setup() {
  2.         mPython.begin();
  3.         buttonA.setPressedCallback(onButtonAPressed);
  4.         buttonB.setPressedCallback(onButtonBPressed);
  5.         Radio.turnOn();
  6.         Radio.setGroup(13);
  7.         rgb.write(1, 0x0000FF);
  8.         display.setCursorLine(1);
  9.         display.printLine("Mind+小车遥控器");
  10.         display.setCursorLine(2);
  11.         display.printLine("A on  B  off");
  12. }
复制代码

逐段拆解:

1. `mPython.begin();`
掌控板硬件总初始化,必须放在 setup 第一行,启动屏幕、按键、灯光驱动。
2. `buttonA.setPressedCallback(onButtonAPressed);`
给 A 按键绑定回调函数:芯片后台自动检测按键,按下瞬间自动运行`onButtonAPressed`,不用在循环反复扫描按键,程序无卡顿。B 按键同理。
3. `Radio.turnOn();` 开启 2.4G 无线射频模块。
4. `Radio.setGroup(13);` 设置通信频道分组 13。
只有收发两块掌控板分组数字完全一致,才能互相接收数据;多台小车同时使用,修改分组数字防止遥控串台干扰。
5. `rgb.write(1, 0x0000FF);`
控制第 1 颗板载 RGB 灯,0x0000FF 是纯蓝色,开机默认蓝色待机灯效。
6. 屏幕打印逻辑
`display.setCursorLine(x)` 切换打印行,`printLine()` 整行刷新文字,覆盖该行原有内容。

- 第 1 行:打印标题「Mind + 小车遥控器」
- 第 2 行:操作提示,告知用户 A 键开、B 键关小车

五、loop () 主循环

  1. void loop() {
  2. }
复制代码

loop 是程序上电后无限循环执行的函数,本程序全程依靠**按键回调事件**触发功能,不需要循环内写检测逻辑,因此留空。

六、按键回调功能函数

### 1. A 键按下函数

  1. void onButtonAPressed() {
  2.         Radio.send("on");
  3.         rgb.write(1, 0x00FF00);
  4.         display.setCursorLine(3);
  5.         display.printLine("on");
  6. }
复制代码

按下 A 键自动执行三件事:

1. 无线发送文本指令 `on`;
2. 第 1 颗 RGB 灯变为绿色,表示发送 “开启小车” 指令成功;
3. 屏幕第三行打印 on,直观显示当前发送指令。

### 2. B 键按下函数

  1. void onButtonBPressed() {
  2.         Radio.send("off");
  3.         rgb.write(1, 0xFF0000);
  4.         display.setCursorLine(3);
  5.         display.printLine("       off");
  6. }
复制代码

按下 B 键自动执行三件事:

1. 无线发送文本指令 `off`;
2. 第 1 颗 RGB 灯变为红色,表示发送 “关闭小车” 指令成功;
3. 第三行打印带前置空格的`off`,利用空格覆盖上一步打印的`on`,避免文字重叠。

# 整体程序功能总结

1. 硬件:掌控板作为无线遥控器发送端;
2. 通信:2.4G 射频,分组 13 频道点对点通信;
3. 交互逻辑:
   - 开机蓝灯,屏幕显示遥控提示;
   - A 键:发 on、绿灯、屏幕显示 on,控制小车启动;
   - B 键:发 off、红灯、屏幕显示 off,控制小车停止;
4. 配套要求:小车端(接收端)掌控板无线分组必须设为 13,接收`on/off`字符串后执行前进 / 停止动作。

# 核心技术点说明

1. 回调机制:异步触发,不占用 loop 循环资源;
2. 私有 2.4G 无线:无需联网,近距离稳定控制;
3. RGB 三色标识状态:蓝 = 待机,绿 = 开,红 = 关;
4. 整行打印覆盖:简易实现屏幕状态刷新,不用清屏函数。

回复

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 8 小时前

【花雕动手做】行空板K10掌控板AB键无线广播遥控小车

Mind+图形编程

【花雕动手做】行空板 K10 掌控板 AB 键无线广播遥控小车图1
回复

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 8 小时前

【花雕动手做】行空板K10掌控板AB键无线广播遥控小车

行空板K10 无线广播小车接收端

【花雕动手做】行空板 K10 系列实验之掌控板AB键无线广播通信遥控小车

实验开源代码

  1. // 引入行空板K10官方驱动库,提供屏幕、RGB灯、画布等板载硬件操作接口
  2. #include "unihiker_k10.h"
  3. // 引入电机驱动库,用于控制microbit电机拓展板/直流减速小车电机
  4. #include <Microbit_Motor.h>
  5. // 引入ESP32 2.4G无线射频通信库,接收遥控器发来的无线指令
  6. #include <DFRobot_ESP32_Radio.h>
  7. // 函数声明:两个无线数据接收回调函数,收到对应字符串自动触发
  8. void onRadioReceive_0();
  9. void onRadioReceive_1();
  10. // 创建2.4G无线通信对象,负责收发无线数据
  11. DFRobot_ESP32Radio Radio;
  12. // 创建电机控制对象,统一操作左右两路电机
  13. Microbit_Motor     motorbit;
  14. // 创建行空板K10主硬件对象,操作屏幕、RGB、画布等外设
  15. UNIHIKER_K10       k10;
  16. // 定义屏幕显示方向变量,数值2代表屏幕默认正向显示
  17. uint8_t            screen_dir=2;
  18. // 上电初始化函数,仅运行一次
  19. void setup() {
  20.     // 绑定无线回调:当收到字符串"on"时,自动执行onRadioReceive_0函数
  21.         Radio.setCallback("on", onRadioReceive_0);
  22.     // 初始化行空板K10底层硬件(串口、IO、灯光驱动等)
  23.         k10.begin();
  24.     // 绑定无线回调:当收到字符串"off"时,自动执行onRadioReceive_1函数
  25.         Radio.setCallback("off", onRadioReceive_1);
  26.     // 根据预设方向初始化屏幕,screen_dir=2为正常正向显示
  27.         k10.initScreen(screen_dir);
  28.     // 创建画布对象,所有文字、图形绘制都要在画布上完成
  29.         k10.creatCanvas();
  30.     // 开启2.4G无线射频模块,准备接收遥控器信号
  31.         Radio.turnOn();
  32.     // 设置无线通信分组为13,必须和发送端掌控板分组完全一致才能通信
  33.         Radio.setGroup(13);
  34.     // 设置屏幕背景色为纯黑色 0x000000
  35.         k10.setScreenBackground(0x000000);
  36.     // 在画布坐标(5,0)位置绘制白色文字:行空板K10 智能小车,字号默认
  37.         k10.canvas->canvasText("行空板K10 智能小车", 5, 0xFFFFFF);
  38.     // 将画布上绘制的内容刷新到实体屏幕,不调用则画面不会更新
  39.         k10.canvas->updateCanvas();
  40.     // 设置板载RGB灯总亮度,round(6)代表亮度等级6(0最暗,255最亮)
  41.         k10.rgb->brightness(round(6));
  42. }
  43. // 主循环,程序初始化完成后无限循环
  44. void loop() {
  45.     // 全部功能依靠无线接收回调触发,循环内无需写任何逻辑,留空
  46. }
  47. // 收到无线字符串"on"时执行的回调函数
  48. void onRadioReceive_0() {
  49.     // ALL代表全部电机,CW=正转,速度200(范围0~255),小车前进
  50.         motorbit.motorRun(ALL, CW, 200);
  51.     // rgb.write(-1)代表控制全部板载RGB灯,设置为绿色0x00FF00
  52.         k10.rgb->write(-1, 0x00FF00);
  53.     // 灯光保持1秒
  54.         delay(1000);
  55.     // 1秒后关闭所有RGB灯(黑色=熄灭)
  56.         k10.rgb->write(-1, 0x000000);
  57. }
  58. // 收到无线字符串"off"时执行的回调函数
  59. void onRadioReceive_1() {
  60.     // 停止所有电机,小车刹车静止
  61.         motorbit.motorStop(ALL);
  62.     // 全部RGB灯点亮红色0xFF0000,代表停止状态
  63.         k10.rgb->write(-1, 0xFF0000);
  64.     // 红灯保持1秒
  65.         delay(1000);
  66.     // 熄灭全部彩灯
  67.         k10.rgb->write(-1, 0x000000);
  68. }
复制代码


回复

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 7 小时前

【花雕动手做】行空板K10掌控板AB键无线广播遥控小车

行空板 K10 小车接收端 代码解读

一、头文件导入区

  1. #include "unihiker_k10.h"
  2. #include <Microbit_Motor.h>
  3. #include <DFRobot_ESP32_Radio.h>
复制代码

1. `unihiker_k10.h`:行空板 K10 官方底层库,操控屏幕、画布、板载 RGB 彩灯
2. `Microbit_Motor.h`:电机驱动库,适配 microbit 电机拓展板,控制小车直流电机启停、正反转、调速
3. `DFRobot_ESP32_Radio.h`:ESP32 专用 2.4G 无线通信库,和之前掌控板遥控器配对通信,不需要 WiFi

二、函数前置声明

  1. void onRadioReceive_0();
  2. void onRadioReceive_1();
复制代码

两个自定义函数放在`loop`下方,C/C++ 规则要求提前声明,告诉编译器存在这两个无线接收回调函数。

- `onRadioReceive_0`:收到无线字符串`on`触发
- `onRadioReceive_1`:收到无线字符串`off`触发

三、对象与全局变量创建

  1. DFRobot_ESP32Radio Radio;
  2. Microbit_Motor     motorbit;
  3. UNIHIKER_K10       k10;
  4. uint8_t            screen_dir=2;
复制代码

1. `Radio`:无线通信实例,所有收发、频道、指令绑定都靠这个对象
2. `motorbit`:电机控制实例,统一管理两路小车电机
3. `k10`:行空板 K10 主设备对象,操作屏幕、灯光、画布
4. `screen_dir=2`:屏幕方向参数,2 代表屏幕正向正常显示

四、setup () 初始化函数(上电仅执行一次)

  1. void setup() {
  2.         Radio.setCallback("on", onRadioReceive_0);
  3.         k10.begin();
  4.         Radio.setCallback("off", onRadioReceive_1);
  5.         k10.initScreen(screen_dir);
  6.         k10.creatCanvas();
  7.         Radio.turnOn();
  8.         Radio.setGroup(13);
  9.         k10.setScreenBackground(0x000000);
  10.         k10.canvas->canvasText("行空板K10 智能小车", 5, 0xFFFFFF);
  11.         k10.canvas->updateCanvas();
  12.         k10.rgb->brightness(round(6));
  13. }
复制代码

逐行拆解:

1. `Radio.setCallback("on", onRadioReceive_0);`
无线指令绑定:当无线模块收到文本`on`,自动执行`onRadioReceive_0`函数,属于事件回调,不用循环反复检测信号。
2. `k10.begin();`
行空板硬件总初始化,启动 IO、屏幕、灯光底层驱动。
3. `Radio.setCallback("off", onRadioReceive_1);`
绑定第二条指令:收到`off`自动执行停止函数。
4. `k10.initScreen(screen_dir);`
根据变量`screen_dir=2`初始化屏幕显示方向。
5. `k10.creatCanvas();`
创建绘图画布,所有文字、图形必须绘制在画布上才能显示。
6. `Radio.turnOn();`
开启 2.4G 无线射频模块,进入接收等待状态。
7. `Radio.setGroup(13);`
设置无线通信频道分组 13,**必须和遥控器掌控板分组号完全一致**,否则无法通信;多台小车同时使用可修改分组避免互相干扰。
8. `k10.setScreenBackground(0x000000);`
设置屏幕背景为纯黑色(RGB 十六进制,00 红 00 绿 00 蓝)。
9. `k10.canvas->canvasText("行空板K10 智能小车", 5, 0xFFFFFF);`
在画布坐标 x=5 位置,打印白色标题文字。
10. `k10.canvas->updateCanvas();`
画布刷新函数,绘图完成后必须调用,画面才会输出到实体屏幕。
11. `k10.rgb->brightness(round(6));`
全局调节板载 RGB 灯亮度,亮度等级 6,数值范围 0~255,数字越大灯越亮。

五、loop () 主循环

  1. void loop() {
  2. }
复制代码

程序初始化完成后会无限执行 loop。本项目所有功能由无线接收事件自动触发,不需要在循环里写检测代码,因此留空不影响运行。

六、无线接收回调函数(核心动作逻辑)

### 1. 收到 "on" 执行前进

  1. void onRadioReceive_0() {
  2.         motorbit.motorRun(ALL, CW, 200);
  3.         k10.rgb->write(-1, 0x00FF00);
  4.         delay(1000);
  5.         k10.rgb->write(-1, 0x000000);
  6. }
复制代码

1. `motorbit.motorRun(ALL, CW, 200);`

- ALL:左右两路电机同时控制
- CW:电机顺时针正转(小车前进)
- 200:电机速度,取值 0~255

2. `k10.rgb->write(-1, 0x00FF00);`
参数`-1`代表控制**全部板载 RGB 灯**,颜色设置绿色,提示小车启动。
3. `delay(1000);` 绿灯保持 1 秒
4. `write(-1, 0x000000)` 全部彩灯熄灭

### 2. 收到 "off" 执行停止

  1. void onRadioReceive_1() {
  2.         motorbit.motorStop(ALL);
  3.         k10.rgb->write(-1, 0xFF0000);
  4.         delay(1000);
  5.         k10.rgb->write(-1, 0x000000);
  6. }
复制代码

1. `motorbit.motorStop(ALL);` 停止全部电机,小车立刻刹车静止
2. 所有 RGB 灯亮红色,代表停止状态
3. 红灯维持 1 秒后熄灭

整体程序完整逻辑

硬件搭配

发送端:掌控板(A 键发 on,B 键发 off)
接收端:行空板 K10 + 电机拓展板 + 小车底盘

完整工作流程

1. 两块设备无线分组都为 13,配对通信;
2. 行空板开机初始化屏幕,显示黑色背景 + 白色标题;
3. 无线模块持续监听遥控器信号;
4. 遥控器按 A 发送`on`:小车前进、全板彩灯亮绿 1 秒;
5. 遥控器按 B 发送`off`:小车停止、全板彩灯亮红 1 秒。

关键知识点总结

1. **无线回调机制**:硬件后台监听数据,匹配指定字符串自动运行对应函数,不占用主循环资源;
2. **画布绘图逻辑**:先创建画布→绘制文字 / 图形→调用`updateCanvas()`刷新屏幕,缺一不可;
3. **RGB 参数规则**:`write(-1, 颜色)`控制所有灯,填写数字 1/2 可单独控制单颗彩灯;`0x000000`等于关灯;
4. **电机参数**:CW 正转、CCW 反转,ALL 代表双电机,速度区间 0~255;
5. 延时`delay(1000)`:每次触发灯光固定亮 1 秒,期间多次遥控不会延长灯光时长。

回复

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 7 小时前

【花雕动手做】行空板K10掌控板AB键无线广播遥控小车

Mind+图形编程

【花雕动手做】行空板 K10 掌控板 AB 键无线广播遥控小车图1
回复

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 7 小时前

【花雕动手做】行空板K10掌控板AB键无线广播遥控小车

实验场景图与视频记录

【花雕动手做】行空板 K10 掌控板 AB 键无线广播遥控小车图2

【花雕动手做】行空板 K10 掌控板 AB 键无线广播遥控小车图3

【花雕动手做】行空板 K10 掌控板 AB 键无线广播遥控小车图1
回复

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 7 小时前

【花雕动手做】行空板K10掌控板AB键无线广播遥控小车

【花雕动手做】行空板K10掌控板AB键无线广播遥控小车


【【花雕动手做】行空板 K10 系列实验之掌控板AB键无线广播通信遥控小车#diy电子爱好者 #单片机diy #手工机械爱好者 #行空板K10 #diy机器人】

https://www.bilibili.com/video/BV1vPK66WEM1/?share_source=copy_web&vd_source=371a292a55e5ca9be994cbb4a86cc987







回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4 备案 沪公网安备31011502402448

© 2013-2026 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail