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

[K10教程] 【花雕动手做】行空板K10之六通道简版蓝牙陀螺双驱小车

[复制链接]
【花雕动手做】行空板K10之六通道简版蓝牙陀螺双驱小车图1

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

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




0-5.jpg

驴友花雕  高级技神
 楼主|

发表于 1 小时前

【花雕动手做】行空板K10之六通道简版蓝牙陀螺双驱小车

小车方案使用的铝制底板、TT电机与扩展板

【花雕动手做】行空板K10之六通道简版蓝牙陀螺双驱小车图1

【花雕动手做】行空板K10之六通道简版蓝牙陀螺双驱小车图2

【花雕动手做】行空板K10之六通道简版蓝牙陀螺双驱小车图3

【花雕动手做】行空板K10之六通道简版蓝牙陀螺双驱小车图5

【花雕动手做】行空板K10之六通道简版蓝牙陀螺双驱小车图4

回复

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 1 小时前

【花雕动手做】行空板K10之六通道简版蓝牙陀螺双驱小车

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

掌控板是国内专为**中小学 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之六通道简版蓝牙陀螺双驱小车图1

回复

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 1 小时前

【花雕动手做】行空板K10之六通道简版蓝牙陀螺双驱小车

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

【花雕动手做】行空板K10之六通道简版蓝牙陀螺双驱小车图3

【花雕动手做】行空板K10之六通道简版蓝牙陀螺双驱小车图4

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

【花雕动手做】行空板K10之六通道简版蓝牙陀螺双驱小车图1

【花雕动手做】行空板K10之六通道简版蓝牙陀螺双驱小车图2

回复

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 1 小时前

【花雕动手做】行空板K10之六通道简版蓝牙陀螺双驱小车

辅助:屏幕显示相关积木

【花雕动手做】行空板K10之六通道简版蓝牙陀螺双驱小车图2

LED控制模块

【花雕动手做】行空板K10之六通道简版蓝牙陀螺双驱小车图1

回复

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 1 小时前

【花雕动手做】行空板K10之六通道简版蓝牙陀螺双驱小车

知识点:无线广播------行空板 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之六通道简版蓝牙陀螺双驱小车图1

回复

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 1 小时前

【花雕动手做】行空板K10之六通道简版蓝牙陀螺双驱小车

本帖最后由 驴友花雕 于 2026-7-31 15:53 编辑

掌控板陀螺仪姿态遥控器发射端

【花雕动手做】行空板 K10 系列实验之六通道简版蓝牙掌控板陀螺仪双驱差速智能小车

实验开源代码

  1. // 引入掌控板底层驱动库,支持屏幕、按键、RGB灯、加速度传感器
  2. #include <MPython.h>
  3. // 导入DFRobot 2.4G无线射频通信库(ESP32Radio,简版蓝牙)
  4. #include <DFRobot_ESP32_Radio.h>
  5. // ==========函数声明==========
  6. // A按键按下触发函数
  7. void onButtonAPressed();
  8. // B按键按下触发函数
  9. void onButtonBPressed();
  10. // ==========创建通信对象==========
  11. DFRobot_ESP32Radio Radio;
  12. // ==========初始化函数(上电运行一次)==========
  13. void setup() {
  14.         // 启动掌控板硬件初始化(屏幕、按键、传感器底层开启)
  15.         mPython.begin();
  16.         
  17.         // 绑定A按键按下的回调函数,按键触发自动执行onButtonAPressed
  18.         buttonA.setPressedCallback(onButtonAPressed);
  19.         // 绑定B按键按下的回调函数
  20.         buttonB.setPressedCallback(onButtonBPressed);
  21.         
  22.         Radio.turnOn();                // 开启2.4G射频无线模块
  23.         Radio.setGroup(13);            // 设置通信分组:收发两端必须同为13组才能通信
  24.         
  25.         rgb.brightness(round(8));      // 设置板载RGB灯带亮度,范围0~255,此处亮度8
  26.         
  27.         // 屏幕第1行文字
  28.         display.setCursorLine(1);
  29.         display.printLine("掌控板陀螺仪发送端");
  30.         // 屏幕第2行文字(注意:程序实际使用2.4G Radio,不是蓝牙)
  31.         display.setCursorLine(2);
  32.         display.printLine("六通道简版蓝牙");
  33.         // 屏幕第4行文字,适配二驱动差速小车
  34.         display.setCursorLine(4);
  35.         display.printLine("二驱动差速小车");
  36. }
  37. // ==========主循环(不断重复执行)==========
  38. void loop() {
  39.         // 判断掌控板向前倾斜姿态
  40.         if ((accelerometer.isGesture(accelerometer.TiltForward))) {
  41.                 Radio.send("qian");                 // 无线发送字符串指令:前进
  42.                 rgb.write(1, 0x00FF00);             // RGB灯设置绿色
  43.                 display.setCursorLine(3);
  44.                 display.printLine("前进");          // 第3行刷新状态文字
  45.         }
  46.         // 判断向后倾斜
  47.         if ((accelerometer.isGesture(accelerometer.TiltBack))) {
  48.                 Radio.send("hou");                  // 发送:后退指令
  49.                 rgb.write(1, 0xFF0000);             // RGB红色
  50.                 display.setCursorLine(3);
  51.                 display.printLine("后退");
  52.         }
  53.         // 判断向左倾斜
  54.         if ((accelerometer.isGesture(accelerometer.TiltLeft))) {
  55.                 Radio.send("zuo");                  // 发送:左转指令
  56.                 rgb.write(1, 0x0000FF);             // RGB蓝色
  57.                 display.setCursorLine(3);
  58.                 display.printLine("左转弯");
  59.         }
  60.         // 判断向右倾斜
  61.         if ((accelerometer.isGesture(accelerometer.TiltRight))) {
  62.                 Radio.send("you");                  // 发送:右转指令
  63.                 rgb.write(1, 0xFF9900);             // RGB橙黄色
  64.                 display.setCursorLine(3);
  65.                 display.printLine("右转弯");
  66.         }
  67. }
  68. // ==========按键A回调函数:开灯指令==========
  69. void onButtonAPressed() {
  70.         Radio.send("deng");                   // 发送开灯指令
  71.         rgb.write(1, 0xFFFFFF);              // RGB白色
  72.         display.setCursorLine(3);
  73.         display.printLine("开灯");
  74. }
  75. // ==========按键B回调函数:停车指令==========
  76. void onButtonBPressed() {
  77.         Radio.send("ting");                   // 发送停车指令
  78.         rgb.write(1, 0x6600CC);               // RGB紫色
  79.         display.setCursorLine(3);
  80.         display.printLine("停车");
  81. }
复制代码


回复

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 1 小时前

【花雕动手做】行空板K10之六通道简版蓝牙陀螺双驱小车

掌控板射频遥控发送端 代码解读

一、项目总览
控制器:掌控板(ESP32)
通信方式:DFRobot_ESP32_Radio 2.4G 射频通信(⚠屏幕文字写 “蓝牙” 属于笔误,并非蓝牙)
用途:作为遥控器,依靠板载加速度传感器识别倾斜姿态,搭配 A/B 按键,向行空板 K10 小车发送控制指令,适配两驱差速小车。
通信配对条件:接收端射频分组必须设置为 13。

二、模块分段解析

1. 头文件与对象定义

  1. #include <MPython.h>               // 掌控板底层驱动:屏幕、RGB灯、按键、加速度传感器
  2. #include <DFRobot_ESP32_Radio.h>   // 2.4G无线射频通信库
  3. void onButtonAPressed();
  4. void onButtonBPressed();
  5. DFRobot_ESP32Radio Radio;         // 创建射频通信对象
复制代码

2. setup () 上电初始化(只运行 1 次)
mPython.begin():初始化掌控板全部外设
setPressedCallback():为 A、B 按键绑定中断回调函数,按键按下立刻触发对应函数,无需轮询检测按键
Radio.turnOn() 开启射频模块;setGroup(13) 设置通信组别
rgb.brightness(8) 设置板载 RGB 灯光亮度
屏幕打印固定标题文本,标识设备功能

3. loop () 主循环(无限循环执行)
核心:轮询加速度传感器姿态手势
TiltForward 向前倾斜 → 发送qian 前进
TiltBack 向后倾斜 → 发送hou 后退
TiltLeft 向左倾斜 → 发送zuo 左转
TiltRight 向右倾斜 → 发送you 右转
每次识别到姿态,同步修改 RGB 灯光颜色,并在屏幕第三行刷新当前运行状态。
逻辑特点:多个独立if判断,允许多个姿态同时识别。

4. 按键回调函数(事件触发)
onButtonAPressed():按下 A 键,发送指令deng,控制小车车灯开启
onButtonBPressed():按下 B 键,发送指令ting,小车停车

三、指令对照表

【花雕动手做】行空板K10之六通道简版蓝牙陀螺双驱小车图1

四、存在的一些实操问题(后附优化方案)
持续倾斜会重复发包
loop 高速循环,保持倾斜姿态时,不断重复发送相同指令,占用通信带宽。
放平掌控板不会自动停车
只有手动按 B 键发送ting,小车才能停下;遥控器恢复水平无任何指令输出。
多姿态可同时触发
例如同时前倾 + 左倾,会连续发送前进、左转两条指令,小车动作冲突失控。
无防抖处理
手部轻微晃动容易导致姿态频繁切换,小车频繁变速。

五、配套硬件 & 软件要求
接收端:行空板 K10,同样导入 ESP32_Radio 库,分组设置 13
Mind + 环境,安装 DFRobot ESP32Radio 库,主板选择掌控板
收发设备必须在近距离(2.4G 射频视距通信)

回复

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 1 小时前

【花雕动手做】行空板K10之六通道简版蓝牙陀螺双驱小车

Mind+图形编程

【花雕动手做】行空板K10之六通道简版蓝牙陀螺双驱小车图1
回复

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 1 小时前

【花雕动手做】行空板K10之六通道简版蓝牙陀螺双驱小车

行空板K10简版蓝牙小车端

【花雕动手做】行空板 K10 系列实验之六通道简版蓝牙掌控板陀螺仪双驱差速智能小车

实验开源代码

  1. // 离线语音合成TTS库,实现语音播报
  2. #include "asr.h"
  3. // 行空板K10底层驱动库:屏幕、RGB灯、按键
  4. #include "unihiker_k10.h"
  5. // Microbit电机驱动库,适配电机拓展板
  6. #include <Microbit_Motor.h>
  7. // DFRobot 2.4G射频通信库,和掌控板遥控器配对通信
  8. #include <DFRobot_ESP32_Radio.h>
  9. // ====================函数声明====================
  10. // 收到指令"qian"触发
  11. void onRadioReceive_0();
  12. // 收到指令"hou"触发
  13. void onRadioReceive_1();
  14. // 收到指令"deng"触发
  15. void onRadioReceive_2();
  16. // 收到指令"zuo"触发
  17. void onRadioReceive_3();
  18. // 收到指令"ting"触发
  19. void onRadioReceive_4();
  20. // ====================创建对象====================
  21. DFRobot_ESP32Radio Radio;    // 2.4G射频通信对象
  22. Microbit_Motor     motorbit; // 电机驱动对象
  23. UNIHIKER_K10       k10;      // 行空板K10主控对象
  24. uint8_t            screen_dir=2; // 屏幕方向参数 2=默认正向
  25. ASR                asr;      // TTS语音播报对象
  26. // ====================初始化函数(上电仅运行一次)====================
  27. void setup() {
  28.         // 绑定射频字符串指令与对应回调函数
  29.         Radio.setCallback("qian", onRadioReceive_0);
  30.         Radio.setCallback("hou", onRadioReceive_1);
  31.         Radio.setCallback("deng", onRadioReceive_2);
  32.         Radio.setCallback("zuo", onRadioReceive_3);
  33.         Radio.setCallback("ting", onRadioReceive_4);
  34.         k10.begin();                         // 初始化行空板所有硬件外设
  35.         k10.initScreen(screen_dir);          // 根据设定方向初始化显示屏
  36.         k10.creatCanvas();                   // 创建画布,用于屏幕文字绘图
  37.        
  38.         asr.setAsrSpeed(2);                  // 设置语音播报语速,数值越大语速越快
  39.        
  40.         Radio.turnOn();                      // 开启2.4G射频模块
  41.         Radio.setGroup(13);                  // 设置通信分组【必须和遥控器Group=13保持一致】
  42.        
  43.         k10.setScreenBackground(0x000000);   // 设置屏幕背景黑色
  44.         // 在画布写入标题文字
  45.         k10.canvas->canvasText("行空板 K10 双驱小车", 5, 0xFFFFFF);
  46.         k10.canvas->updateCanvas();          // 刷新画布,文字显示到屏幕
  47.        
  48.         k10.rgb->brightness(round(6));       // 设置板载RGB亮度
  49.        
  50.         asr.speak("行空板小车准备就绪");      // 上电语音播报提示
  51. }
  52. // ====================主循环====================
  53. // ⚠本程序所有功能依靠射频事件回调实现,loop无业务代码
  54. void loop() {
  55. }
  56. // ====================射频指令回调函数====================
  57. // 指令:qian 前进
  58. void onRadioReceive_0() {
  59.         motorbit.motorRun(M1, CW, 200);      // M1电机顺时针运转,速度200
  60.         motorbit.motorRun(M4, CW, 200);      // M4电机顺时针运转,速度200
  61.         k10.rgb->write(-1, 0x00FF00);        // 全部RGB灯设置绿色
  62. }
  63. // 指令:hou 后退
  64. void onRadioReceive_1() {
  65.         motorbit.motorRun(M1, CCW, 200);     // M1电机逆时针
  66.         motorbit.motorRun(M4, CCW, 200);     // M4电机逆时针
  67.         k10.rgb->write(-1, 0xFF0000);        // RGB红色
  68. }
  69. // 指令:deng 开灯
  70. void onRadioReceive_2() {
  71.         k10.rgb->write(-1, 0xFFFFFF);        // RGB白色常亮
  72.         asr.speak("打开白色灯光");            // 语音播报
  73. }
  74. // 指令:zuo 左转
  75. void onRadioReceive_3() {
  76.         motorbit.motorRun(M1, CW, 200);       // 左轮前进
  77.         motorbit.motorRun(M2, CCW, 200);      // ⚠注意:代码使用M2,硬件接线留意!
  78.         k10.rgb->write(-1, 0x0000FF);         // RGB蓝色
  79. }
  80. // 指令:ting 停车
  81. void onRadioReceive_4() {
  82.         motorbit.motorStop(ALL);              // 停止所有电机
  83.         k10.rgb->write(-1, 0x6600CC);         // RGB紫色
  84.         asr.speak("小车停止");                // 语音播报停止提示
  85. }
复制代码


回复

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 1 小时前

【花雕动手做】行空板K10之六通道简版蓝牙陀螺双驱小车

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

整体概述
硬件:行空板 K10 + microbit 电机驱动板(双驱差速小车)
通信:DFRobot_ESP32_Radio 2.4G 私有射频
工作模式:事件回调机制,配合上一份【掌控板姿态遥控器】使用
功能:接收无线指令,控制小车前进 / 后退 / 左转 / 停车、RGB 灯光、离线 TTS 语音播报
通信硬性规则:收发双方 Radio.setGroup(13) 分组必须一致才能通信。

一、头文件与对象解析

  1. #include "asr.h"                // 离线TTS语音合成库,实现中文播报
  2. #include "unihiker_k10.h"       // 行空板K10底层驱动(屏幕、RGB、外设)
  3. #include <Microbit_Motor.h>     // microbit电机扩展板驱动库
  4. #include <DFRobot_ESP32_Radio.h>// 2.4G无线射频通信库
  5. // 函数声明:收到对应无线指令自动触发的回调函数
  6. void onRadioReceive_0(); //qian
  7. void onRadioReceive_1(); //hou
  8. void onRadioReceive_2(); //deng
  9. void onRadioReceive_3(); //zuo
  10. void onRadioReceive_4(); //ting
  11. // 对象实例
  12. DFRobot_ESP32Radio Radio;    // 射频通信对象
  13. Microbit_Motor     motorbit; // 电机控制对象
  14. UNIHIKER_K10       k10;      // 行空板主控对象
  15. uint8_t            screen_dir=2; //屏幕旋转方向
  16. ASR                asr;      //语音播报对象
复制代码


二、setup () 初始化函数(上电仅运行一次)
Radio.setCallback("指令字符串", 函数名)
射频库功能:监听空中数据包,匹配到指定文本就自动执行绑定函数,不需要在 loop 轮询。
plaintext
"qian" → onRadioReceive_0
"hou"  → onRadioReceive_1
"deng" → onRadioReceive_2
"zuo"  → onRadioReceive_3
"ting" → onRadioReceive_4
k10.begin():初始化行空板全部硬件
initScreen() + creatCanvas():初始化显示屏,创建绘图画布
asr.setAsrSpeed(2):设置语音播报语速
Radio.turnOn(); Radio.setGroup(13):开启射频模块,设置通信组别
屏幕设置黑色背景、显示标题、刷新画布
设置 RGB 灯带亮度
asr.speak("行空板小车准备就绪"):上电语音提示

三、loop () 主循环

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

关键特点:循环为空!
整套程序完全依靠无线事件回调驱动。射频库在后台反文旁虫立监听消息,收到指令自动运行回调函数,无需轮询检测无线数据。


四、回调函数功能对照表

【花雕动手做】行空板K10之六通道简版蓝牙陀螺双驱小车图1

回复

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 1 小时前

【花雕动手做】行空板K10之六通道简版蓝牙陀螺双驱小车

Mind+图形编程

【花雕动手做】行空板K10之六通道简版蓝牙陀螺双驱小车图1
回复

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 半小时前

【花雕动手做】行空板K10之六通道简版蓝牙陀螺双驱小车

实验场景图与视频记录

【花雕动手做】行空板K10之六通道简版蓝牙陀螺双驱小车图1

【花雕动手做】行空板K10之六通道简版蓝牙陀螺双驱小车图2
回复

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 半小时前

【花雕动手做】行空板K10之六通道简版蓝牙陀螺双驱小车

【花雕动手做】行空板K10之六通道简版蓝牙陀螺双驱小车图1

【花雕动手做】行空板K10之六通道简版蓝牙陀螺双驱小车图2


【【花雕动手做】行空板 K10 系列实验之六通道简版蓝牙掌控板陀螺仪双驱差速智能小车 #diy机器人 #手工机器人 #制作小车 #行空板k10 #科技改变生活】

https://www.bilibili.com/video/BV1EJGA63EUK/?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