7浏览
查看: 7|回复: 5

[K10教程] 【花雕动手做】K10之全向福来轮语音控制TT马达四驱小车

[复制链接]
【花雕动手做】K10之全向福来轮语音控制TT马达四驱小车图1

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

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


【花雕动手做】K10之全向福来轮语音控制TT马达四驱小车图2

驴友花雕  高级技神
 楼主|

发表于 半小时前

【花雕动手做】K10之全向福来轮语音控制TT马达四驱小车

TT马达四驱全向福来轮小车使用的特色底板、TT电机、全向福来轮与扩展板

【花雕动手做】K10之全向福来轮语音控制TT马达四驱小车图2

【花雕动手做】K10之全向福来轮语音控制TT马达四驱小车图1

【花雕动手做】K10之全向福来轮语音控制TT马达四驱小车图5

【花雕动手做】K10之全向福来轮语音控制TT马达四驱小车图3

【花雕动手做】K10之全向福来轮语音控制TT马达四驱小车图4
回复

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 半小时前

【花雕动手做】K10之全向福来轮语音控制TT马达四驱小车

主打:人工智能模块

【花雕动手做】K10之全向福来轮语音控制TT马达四驱小车图1

语音识别合成相关说明

【花雕动手做】K10之全向福来轮语音控制TT马达四驱小车图3

【花雕动手做】K10之全向福来轮语音控制TT马达四驱小车图2



回复

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 半小时前

【花雕动手做】K10之全向福来轮语音控制TT马达四驱小车

辅助:屏幕显示相关积木

【花雕动手做】K10之全向福来轮语音控制TT马达四驱小车图1

接脚 IO 扩展模块

【花雕动手做】K10之全向福来轮语音控制TT马达四驱小车图4

【花雕动手做】K10之全向福来轮语音控制TT马达四驱小车图3

LED控制模块

【花雕动手做】K10之全向福来轮语音控制TT马达四驱小车图2

回复

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 半小时前

【花雕动手做】K10之全向福来轮语音控制TT马达四驱小车

四驱福来轮(四轮全向轮)控制原理图

【花雕动手做】K10之全向福来轮语音控制TT马达四驱小车图1
回复

使用道具 举报

驴友花雕  高级技神
 楼主|

发表于 12 分钟前

【花雕动手做】K10之全向福来轮语音控制TT马达四驱小车

【花雕动手做】行空板 K10 系列实验之全向福来轮语音控制 TT 马达四驱小车

实验开源代码

  1. // 行空板K10离线语音识别库,提供唤醒词、离线语音指令识别(无需网络)
  2. #include "asr.h"
  3. // 行空板K10硬件底层驱动:屏幕、画布、中英文字体等外设接口
  4. #include "unihiker_k10.h"
  5. // Microbit电机拓展板驱动库,控制M1/M2/M3/M4四路直流电机,适配麦克纳姆轮底盘
  6. #include <Microbit_Motor.h>
  7. // 全局对象实例化
  8. UNIHIKER_K10   k10;         // 行空板主控硬件对象
  9. ASR            asr;          // 离线语音识别对象
  10. uint8_t        screen_dir=2; // 屏幕方向参数2:正向竖屏显示
  11. Microbit_Motor motorbit;     // 四路电机驱动对象
  12. // 上电初始化函数,通电/复位仅执行一次
  13. void setup() {
  14.     // 初始化行空板全部底层硬件驱动
  15.         k10.begin();
  16.     // 初始化离线语音模块
  17.     // CONTINUOUS:持续监听模式;CN_MODE:中文识别;10000:语音会话超时(毫秒)
  18.         asr.asrInit(CONTINUOUS, CN_MODE, 10000);
  19.     // 阻塞等待语音模块初始化完成
  20.     // _asrState == 0 代表模块未就绪,不断延时轮询
  21.         while(asr._asrState == 0){delay(100);}
  22.     // 设置屏幕显示方向
  23.         k10.initScreen(screen_dir);
  24.     // 创建绘图画布,所有文字、图形都需要绘制到画布
  25.         k10.creatCanvas();
  26.     // 注册语音指令:【指令ID,拼音关键词】
  27.     // 规则:识别关键词必须填写拼音,不能直接写中文;ID从1开始,使用n+1写法
  28.         asr.addASRCommand(0+1, "qian jin");  // ID1 前进
  29.         asr.addASRCommand(1+1, "ting che");  // ID2 停车
  30.         asr.addASRCommand(2+1, "hou tui");   // ID3 后退
  31.         asr.addASRCommand(3+1, "you heng");  // ID4 右横走
  32.         asr.addASRCommand(4+1, "zuo heng"); // ID5 左横走
  33.         asr.addASRCommand(5+1, "zhuan quan");//ID6 原地转圈
  34. }
  35. // 主循环,初始化结束后无限循环运行
  36. void loop() {
  37.     // 判断是否识别唤醒词【你好小新】
  38.         if (asr.isWakeUp()) {
  39.         // 唤醒成功,画布第6行打印红色提示
  40.                 k10.canvas->canvasText("已唤醒行空板小车.......", 6, 0xFF0000);
  41.                 k10.canvas->updateCanvas();
  42.         }
  43.         else {
  44.         // 未唤醒待机状态,第4行蓝色文字提示唤醒词
  45.                 k10.canvas->canvasText("唤醒词为“你好小新”", 4, 0x0000FF);
  46.                 k10.canvas->updateCanvas();
  47.         }
  48.     // =====================语音指令分支=====================
  49.     // 识别【前进】
  50.         if (asr.isDetectCmdID(0+1)) {
  51.                 motorbit.motorRun(M1, CW, 200);   // M1正转
  52.                 motorbit.motorRun(M2, CW, 200);   // M2正转
  53.                 motorbit.motorRun(M3, CCW, 200);  // M3反转
  54.                 motorbit.motorRun(M4, CCW, 200);  // M4反转
  55.         // 自由坐标文字:X=0,Y=180,黑色,24号中英文字体,透明度50,开启抗锯齿
  56.                 k10.canvas->canvasText("K10 小车前进", 0, 180, 0x000000, k10.canvas->eCNAndENFont24, 50, true);
  57.                 k10.canvas->updateCanvas();
  58.         }
  59.     // 识别【停车】:停止全部电机
  60.         if (asr.isDetectCmdID(1+1)) {
  61.                 motorbit.motorStop(ALL);
  62.                 k10.canvas->canvasText("K10 小车停止", 0, 180, 0x000000, k10.canvas->eCNAndENFont24, 50, true);
  63.                 k10.canvas->updateCanvas();
  64.         }
  65.     // 识别【后退】
  66.         if (asr.isDetectCmdID(2+1)) {
  67.                 motorbit.motorRun(M1, CCW, 200); // M1反转
  68.                 motorbit.motorRun(M2, CCW, 200); // M2反转
  69.                 motorbit.motorRun(M3, CW, 200);   // M3正转
  70.                 motorbit.motorRun(M4, CW, 200);   // M4正转
  71.                 k10.canvas->canvasText("K10 小车后退", 0, 180, 0x000000, k10.canvas->eCNAndENFont24, 50, true);
  72.                 k10.canvas->updateCanvas();
  73.         }
  74.     // 识别【右横走】
  75.         if (asr.isDetectCmdID(3+1)) {
  76.                 motorbit.motorRun(M2, CCW, 200);
  77.                 motorbit.motorRun(M4, CW, 200);
  78.                 k10.canvas->canvasText("K10 小车右横", 0, 180, 0x000000, k10.canvas->eCNAndENFont24, 50, true);
  79.                 k10.canvas->updateCanvas();
  80.         }
  81.     // 识别【左横走】
  82.         if (asr.isDetectCmdID(4+1)) {
  83.                 motorbit.motorRun(M2, CW, 200);
  84.                 motorbit.motorRun(M4, CCW, 200);
  85.                 k10.canvas->canvasText("K10小车左横", 0, 180, 0x000000, k10.canvas->eCNAndENFont24, 50, true);
  86.                 k10.canvas->updateCanvas();
  87.         }
  88.     // 识别【原地转圈】四个电机全部正转,实现自旋
  89.         if (asr.isDetectCmdID(5+1)) {
  90.                 motorbit.motorRun(M1, CW, 200);
  91.                 motorbit.motorRun(M3, CW, 200);
  92.                 motorbit.motorRun(M2, CW, 200);
  93.                 motorbit.motorRun(M4, CW, 200);
  94.                 k10.canvas->canvasText("K10小车原地转圈", 0, 180, 0x000000, k10.canvas->eCNAndENFont24, 50, true);
  95.                 k10.canvas->updateCanvas();
  96.         }
  97.     // 清空画布第6行文字,防止唤醒提示文字叠加残留
  98.         k10.canvas->canvasClear(6);
  99. }
复制代码


回复

使用道具 举报

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

本版积分规则

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

硬件清单

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

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

mail