|
346| 10
|
[K10教程] 【花雕动手做】K10 系列实验之 UDP 广播遥控板载 LED 彩灯 |
本帖最后由 驴友花雕 于 2026-6-14 18:01 编辑 ![]() 行空板K10是一款专为快速体验物联网和学习人工智能而设计的开发学习板,100%采用国产芯片,知识产权自主可控,符合信息科技课程中编程学习、物联网及人工智能等教学需求。该板集成2.8寸LCD彩屏、WiFi蓝牙、摄像头、麦克风、扬声器、RGB指示灯、多种传感器及丰富的扩展接口。凭借高度集成的板载资源,教学过程中无需额外连接其他设备,便可轻松实现传感器控制、物联网应用以及人脸识别、语音识别、语音合成等AI人工智能项目。 主要特点 集成摄像头&内置算法,可进行离线图像检测 集成麦克风&内置算法,可进行离线语音识别 集成扬声器&内置算法,可进行离线语音合成 2.8寸彩色屏幕,数据展示更清晰 集成度高,利于教学 接口丰富,兼容软件多,扩展性好 ![]() |
|
本帖最后由 驴友花雕 于 2026-6-11 07:14 编辑 知识点:行空板 K10 WiFi 局域网 UDP 广播 一、UDP 基础概念 UDP 全称用户数据报协议,属于 TCP/IP 网络协议,是无连接、广播式、尽力传输的通信方式。 放到行空板场景:所有设备连同一个 WiFi 路由器,组成局域网,依靠 IP + 端口收发数据;支持一台发送、全网所有设备同时接收,也就是 UDP 广播。 和 TCP 最大区别:不用提前握手建立连接,发消息直接抛到局域网里,速度快、代码简单,但不自动重传丢包数据。 二、运行硬性前提(必须满足) 全部通信行空板 K10 连接同一个 WiFi 热点; 设备自动获取同一段内网 IP(常见 192.168.4.xxx、192.168.1.xxx); 通信双方设置完全一致的端口号(截图示例固定 8888); 程序开头必须先执行 WiFi 配网连接,没连上 WiFi,UDP 模块无法启动。 三、相关图形积木功能解析 1. 基础服务端积木 设置 UDP 服务器端口 8888 本机开启 UDP 监听服务,占用 8888 端口,持续等候局域网内所有广播数据包。一块板子可同时做服务端 + 客户端。 当 UDP 服务器收到 广播消息 事件回调块:一旦局域网内有设备发出广播数据,立刻触发内部执行逻辑(点灯、屏幕打印、动作指令)。 UDP 服务器发送消息 "xxx" 向外发送全网广播包,当前 WiFi 局域网里所有开启 UDP 8888 端口的设备全部收到这条内容。 2. 基础客户端积木 设置 UDP 客户端连接到服务器 IP 192.168.4.1 端口 8888 客户端绑定目标服务端的内网 IP 与端口,建立通信目标;广播场景下 IP 可填局域网广播地址,实现一对多群发。 UDP 客户端发送消息 "xxx" 两种用法:①定向发给上面填写的单个服务器 IP;②发送全网广播,所有同端口设备接收。 当 UDP 客户端收到 广播消息 客户端独立监听广播数据包,收到数据后执行内部程序逻辑。 四、两种常用工作模式 模式 1:一对多广播(教学最常用) 1 块主控发送,N 台从板同步接收动作 主控(发送端):WiFi 联网 → UDP 开启 8888 端口 → 按键 / 陀螺仪触发「服务器发送消息」; 所有从板:WiFi 连同一个热点 → UDP 端口 8888 → 绑定「收到广播消息」回调,识别指令点灯、动作; 特点:一块板子下发指令,几十台设备同步响应。 模式 2:点对点双向通信 A 板客户端连 B 板服务端 IP,双向互发消息,适合一问一答、状态回传(比如小车上报速度、传感器数值回传给主控)。 五、完整积木程序标准结构 发送主控模板 【连接 WiFi】填入 WiFi 名称、密码(第一步必加) 【设置 UDP 服务器端口 8888】 循环 / 按键触发:【UDP 服务器发送消息 "hong"】 接收从板模板 【连接 WiFi】同一个 WiFi 账号密码 【设置 UDP 服务器端口 8888】 【当 UDP 服务器收到广播消息】 判断收到文本,匹配hong/bai/qian等指令,执行 RGB 变色、屏幕文字。 六、UDP 核心优缺点 优点 天然一对多广播:一次发送全网同端口设备接收,批量控制效率高; 速度快延迟低:无握手、无校验重传,体感几乎无卡顿; 兼容多设备:行空板、电脑、手机、ESP32 全都能互通; 数据承载量大:相比离线 Radio 射频,UDP 支持长文本、大量传感器数值、中等长度数据流; 覆盖范围广:路由器 WiFi 全屋覆盖,穿墙能力优于 2.4G 私有射频。 缺点 强依赖 WiFi 网络:无路由器、无 WiFi 环境完全无法运行,户外断电场景不能用; 无可靠传输:干扰、信号弱时会丢包,没有自动补发;稳定场景可重复发送 2 次指令; 功耗更高:WiFi 模块持续通电工作,电池续航比离线 Radio 短; 多组隔离麻烦:多小组实验要分不同 WiFi 热点才能互不干扰,不像 Radio 简单改 Group 数字。 七、实操避坑关键点 WiFi 必须一模一样:发送、接收板子 WiFi 名称、密码完全一致,大小写不能错; 端口号统一:所有设备 UDP 端口必须都是 8888,数字不同收不到; 广播无需精准匹配单个 IP:发全网广播时不用填每台从板 IP,局域网全部 8888 端口设备自动接收; 不要超大段文本发送,过长数据包容易分包乱码; 程序逻辑里不要加超长delay(),会阻塞 UDP 消息监听; 路由器 2.4G WiFi 稳定性优于 5G,行空板优先连 2.4G 频段。 ![]() ![]() |
|
这里使用掌控板作为客户端,可以接收到行空板K10作为服务器发来的消息。 【花雕动手做】行空板 K10 系列实验之 UDP 广播遥控板载 WS2812B 彩灯 掌控板实验开源代码(客户端) |
|
代码解读(WiFi 标准 UDP 客户端 + 自建热点模式) 一、头文件与全局声明 二、setup () 开机一次性初始化 初始化整套板载硬件:显示屏、按键、系统时钟、IO 口,是 MPython 框架程序必须第一行执行。 给 UDP 客户端绑定接收消息回调:后台一旦收到服务端发来的 UDP 数据包,自动运行onUdpClientRecvMsg函数,不用在 loop 循环反复查询。 给 A 按键绑定按下触发事件:物理按下 A 键,立刻执行发送 UDP 消息的函数,按键属于中断事件驱动。 开启本机SoftAP 无线热点(板子变身小型路由器): 热点名称:AP 连接密码:88888888 另一块做服务端的行空板,必须连接这个热点才能组网通信。 把屏幕光标定位到第 1 行,打印本机身份标识:当前设备是 UDP 客户端、并且自身开启了 WiFi 热点。 光标切到第 2 行,读取并打印本机热点的固定网关 IP,默认是192.168.4.1。 UDP 客户端主动发起连接: 目标 UDP 服务端 IP 地址:192.168.4.2 统一通信端口:8888 只有服务端连上本热点、被分配 192.168.4.2、且打开 8888 端口监听,两端才能建立 UDP 通信。 三、loop () 主循环 循环完全空置,整套程序纯事件驱动: 按键按下由硬件中断触发回调; UDP 收消息由库后台线程监听触发回调; 不需要在 loop 里轮询检测信号,不占用 CPU 资源。 四、两个核心回调函数 1、A 按键按下回调(发送 UDP 消息) 每按一次 A 键,向服务端 IP:8888 发送一条 UDP 文本数据包:hello,I am client。 2、UDP 接收消息回调(展示服务端回复) 参数message存储服务端传回的完整字符串; 收到回复后,自动在屏幕第 4 行打印对方发来的消息内容。 整体组网逻辑 本机(客户端) 开热点 AP (密码 88888888),IP=192.168.4.1;UDP 客户端连接 192.168.4.2:8888;按键发包。 配对服务端设备 不能开热点,要连接AP这个 WiFi;连上后设备 IP 会被分配为 192.168.4.2;开启 UDP 服务监听 8888 端口,接收客户端消息并可回复消息。 关键协议区分 DFRobot_UDPClient = 标准 TCP/IP 传输层 UDP 协议 和你之前截图里 IP、端口的 UDP 图形积木是同一套 WiFi 网络 UDP,必须依托 WiFi 组网。 和DFRobot_ESP32_Radio(BLE 蓝牙广播)本质区别: 本代码:依赖 WiFi、IP + 端口寻址、标准 UDP 网络协议; BLE Radio:无 WiFi、分组 Group 寻址、底层蓝牙广播,不属于 IP 网络 UDP。 优缺点与注意事项 优点 点对点自建局域网,不用家用路由器,两块板子直接通信; 标准 UDP 双向收发,客户端发、服务端可回复; 传输文本长度远大于 BLE 广播,支持更长指令、数据。 短板 WiFi 功耗比 BLE 高,电池续航更短; UDP 天生不可靠,信号差会丢包,无自动重传; 仅支持 2.4GWiFi,不兼容 5G 频段; 实操避坑 服务端必须连本机的 AP 热点,连别的 WiFi 绝对无法通信; IP 地址 192.168.4.2、端口 8888 两端必须严格统一; 回调函数内禁止使用长时间delay(),会阻塞 UDP 消息接收; 热点覆盖距离有限,两块板子不要隔厚墙体、金属遮挡。 |
|
这里使用行空板K10作为UDP服务器。 【花雕动手做】行空板 K10 系列实验之 UDP 广播遥控板载 WS2812B 彩灯 行空板实验开源代码 |
|
行空板 K10 UDP 服务端代码解读 一、头文件与全局对象定义 二、setup () 上电一次性初始化 初始化全部板载硬件:屏幕、按键、RGB 灯、系统底层总线。 给 UDP 服务端绑定接收回调:只要监听到客户端发来的 UDP 数据包,自动执行onUdpServerRecvMsg。 设置屏幕显示方向;创建画布缓存,文字批量刷新减少闪屏。 绑定 A 按键中断:按下 A 键立刻执行发送消息函数。 屏幕底色设纯白色;第 3 行打印蓝色标题,标记本机是 UDP 服务端;刷新文字到屏幕。 连接客户端板子开出的 WiFi 热点:名称AP、密码88888888; while死阻塞循环:不连上 WiFi,程序不会往下执行,保证网络就绪再开 UDP 服务。 联网成功后,第 5 行红字提示成功;第 7 行打印本机分配到的内网 IP(配对固定为192.168.4.2),刷新屏幕显示。 UDP 服务端开启8888 端口持续监听,等待客户端接入收发数据。 三、loop () 主循环 全程事件驱动,WiFi 连接、UDP 收包、按键检测全部由库后台线程独立运行,不需要在 loop 轮询扫描信号,循环空置不影响通信。 四、两个回调功能函数 1、A 按键按下回调(主动发消息给客户端) 按下 A 键,服务端向局域网内所有 UDP 8888 端口设备广播发送文本:hello,I am server。 2、UDP 收到客户端消息回调 只要收到客户端发送的任意 UDP 消息,立刻触发灯光提示,message 变量里存放客户端发来的完整字符串内容(本段代码没有读取打印 message,只做灯光反馈)。 五、和上一段客户端代码完整配对关系 ![]() 完整交互流程 客户端先上电,生成 WiFi 热点 AP; 服务端上电自动连接 AP,等待联网成功; 客户端 UDP 客户端绑定服务端 IP 端口,建立通信链路; 客户端按 A → 发送 client 文本 → 服务端 RGB 亮蓝灯 2 秒; 服务端按 A → 广播 server 文本 → 客户端屏幕第四行打印收到的文字。 六、协议定性区分 本套 UDPServer/UDPClient = 标准 WiFi 局域网 UDP 严格符合 UDP(User Datagram Protocol)传输层协议,依托 TCP/IP、IP 地址 + 端口寻址,对应你截图里 IP / 端口的 UDP 图形积木;必须依赖 WiFi 网络。 和DFRobot_ESP32_Radio(BLE 蓝牙广播)本质区别 WiFi UDP:需要 WiFi 组网、双向收发、可传输长文本; BLE Radio:离线无 WiFi、Group 分组隔离、以短指令单向下发为主、低功耗电池续航更强。 七、注意点与短板 delay(2000)阻塞问题:亮灯 2 秒期间,如果新的 UDP 消息进来,会暂时延迟响应;进阶优化用毫秒计时器非阻塞写法; UDP 不可靠:无丢包重传,信号弱环境偶尔丢失数据包;稳定场景可以连续发送两次消息提升成功率; 只支持 2.4G WiFi,5G 频段无法连接; 两端热点名称、密码、端口号必须完全一致,大小写、数字不能出错; screen_dir=3仅改变屏幕显示方向,不影响 WiFi 和 UDP 通信逻辑。 |
沪公网安备31011502402448© 2013-2026 Comsenz Inc. Powered by Discuz! X3.4 Licensed