|
45| 13
|
[K10教程] 【花雕动手做】行空板 K10 掌控板 AB 键无线广播遥控小车 |
![]() 行空板K10是一款专为快速体验物联网和学习人工智能而设计的开发学习板,100%采用国产芯片,知识产权自主可控,符合信息科技课程中编程学习、物联网及人工智能等教学需求。该板集成2.8寸LCD彩屏、WiFi蓝牙、摄像头、麦克风、扬声器、RGB指示灯、多种传感器及丰富的扩展接口。凭借高度集成的板载资源,教学过程中无需额外连接其他设备,便可轻松实现传感器控制、物联网应用以及人脸识别、语音识别、语音合成等AI人工智能项目。 主要特点 集成摄像头&内置算法,可进行离线图像检测 集成麦克风&内置算法,可进行离线语音识别 集成扬声器&内置算法,可进行离线语音合成 2.8寸彩色屏幕,数据展示更清晰 集成度高,利于教学 接口丰富,兼容软件多,扩展性好 ![]() |
|
遥控发射端掌控宝(带锂电池) 掌控板是国内专为**中小学 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 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. `#include <MPython.h>` 掌控板专属底层库,封装屏幕、按键、RGB 灯、传感器所有板载硬件接口,Mind + 开发掌控板必备,没有它无法操作屏幕、A/B 按键、彩灯。 2. `#include <DFRobot_ESP32_Radio.h>` DFRobot 官方 2.4G 无线通信库,依托 ESP32 射频实现板间点对点无线收发,**不依赖 WiFi、路由器**,两块掌控板直接通信,适合做小车遥控。 二、函数声明区 C++ 语法规则:如果自定义函数写在主函数下方,编译器提前看不到函数,必须先声明。 两个函数分别对应 A 键、B 键按下后的执行逻辑,属于**按键回调函数**。 三、对象实例化 创建无线通信对象 `Radio`,后续所有无线开关、分组、发指令操作,都通过这个对象调用。 四、setup () 初始化函数(上电只执行 1 次) 逐段拆解: 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 () 主循环 loop 是程序上电后无限循环执行的函数,本程序全程依靠**按键回调事件**触发功能,不需要循环内写检测逻辑,因此留空。 六、按键回调功能函数 ### 1. A 键按下函数 按下 A 键自动执行三件事: 1. 无线发送文本指令 `on`; 2. 第 1 颗 RGB 灯变为绿色,表示发送 “开启小车” 指令成功; 3. 屏幕第三行打印 on,直观显示当前发送指令。 ### 2. B 键按下函数 按下 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. 整行打印覆盖:简易实现屏幕状态刷新,不用清屏函数。 |
|
行空板K10 无线广播小车接收端 【花雕动手做】行空板 K10 系列实验之掌控板AB键无线广播通信遥控小车 实验开源代码 |
|
行空板 K10 小车接收端 代码解读 一、头文件导入区 1. `unihiker_k10.h`:行空板 K10 官方底层库,操控屏幕、画布、板载 RGB 彩灯 2. `Microbit_Motor.h`:电机驱动库,适配 microbit 电机拓展板,控制小车直流电机启停、正反转、调速 3. `DFRobot_ESP32_Radio.h`:ESP32 专用 2.4G 无线通信库,和之前掌控板遥控器配对通信,不需要 WiFi 二、函数前置声明 两个自定义函数放在`loop`下方,C/C++ 规则要求提前声明,告诉编译器存在这两个无线接收回调函数。 - `onRadioReceive_0`:收到无线字符串`on`触发 - `onRadioReceive_1`:收到无线字符串`off`触发 三、对象与全局变量创建 1. `Radio`:无线通信实例,所有收发、频道、指令绑定都靠这个对象 2. `motorbit`:电机控制实例,统一管理两路小车电机 3. `k10`:行空板 K10 主设备对象,操作屏幕、灯光、画布 4. `screen_dir=2`:屏幕方向参数,2 代表屏幕正向正常显示 四、setup () 初始化函数(上电仅执行一次) 逐行拆解: 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 () 主循环 程序初始化完成后会无限执行 loop。本项目所有功能由无线接收事件自动触发,不需要在循环里写检测代码,因此留空不影响运行。 六、无线接收回调函数(核心动作逻辑) ### 1. 收到 "on" 执行前进 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. `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 秒,期间多次遥控不会延长灯光时长。 |
沪公网安备31011502402448© 2013-2026 Comsenz Inc. Powered by Discuz! X3.4 Licensed