|
58| 10
|
[K10教程] 【花雕动手做】行空板K10羽毛球筒麦轮四驱语音识别小车 |
|
知识点:麦克纳姆轮(麦轮) 一、基础结构与核心原理 1. 硬件结构 麦克纳姆轮由轮毂 + 45° 斜向自由辊子两部分组成: 轮毂:电机驱动主轮体; 辊子:环绕轮毂倾斜 45° 安装,可独立自由滚动,与地面接触产生斜向摩擦力CSDN博...。 四轮底盘必须搭配2 个左旋麦轮 + 2 个右旋麦轮,矩形四角对称安装(标准 X 型布局),缺一无法实现全向移动。 2. 力学原理 单个轮子转动时,地面摩擦力会分解为纵向分力(车身前后)、横向分力(车身左右); 通过独立控制四个电机的转向、转速,让四个轮子的分力相互抵消 / 叠加,合成任意平面运动:前后直行、左右横移、原地 360° 旋转、斜向行走抖音。 3. 和普通两轮差速小车核心区别 ![]() 二、四轮布局与电机编号定义 使用Microbit_Motor四路驱动,编号定义: M1:左前轮 M2:右前轮 M3:右后轮 M4:左后轮 转向标识:CW=顺时针正转,CCW=逆时针反转 三、6 种基础运动电机转向对照表 1. 前进 qian jin 逻辑:左前 CW、右后 CCW;四轮纵向分力同向叠加,横向力抵消,车身直线向前。 2. 后退 hou tui 逻辑:与前进转向全部反向,车身直线向后倒退。 3. 右横移 you heng(车身整体向右平移) 逻辑:右前 CCW、左后 CW;纵向分力抵消,横向合力向右,车身横着走。 4. 左横移 zuo heng(车身整体向左平移) 逻辑:右前 CW、左后 CCW,横向合力向左。 5. 原地顺时针转圈 zhuan quan 逻辑:四轮全部同向 CW 旋转;前后左右分力形成旋转力偶,无平移分量,原地持续旋转。 6. 停车 ting che 四路电机全部断电刹车,所有轮子无驱动力,小车立刻静止锁死。 四、适配代码的语音控制整体架构 1、硬件组合 行空板 K10 + ASR 离线语音识别模块 + Microbit 四路电机驱动板 + 麦克纳姆四轮底盘 语音模块:识别唤醒词「你好小新」+6 条拼音口令; Microbit 电机库:封装四路电机motorRun/motorStop,直接控制每轮转向与 PWM 速度; LCD 屏幕:24 号大字实时显示当前运动状态。 2、程序控制流程 上电初始化主板、语音模块、四路电机引脚; 预注册语音指令:前进 / 停车 / 后退 / 右横 / 左横 / 转圈; 麦克风持续监听唤醒词,唤醒后解锁电机控制权限; 识别到语音口令,自动输出对应电机转向组合,屏幕同步提示; 循环清空屏幕文字,持续等待下一条语音指令。 五、麦克纳姆轮优缺点 1·、优点 全向移动:可前后、左右横移、原地自转,狭小室内、仓储机器人首选; 运动灵活,无需预留转弯空间,侧向避障、侧方停靠极强; 运动解耦:平移和旋转互不干扰,可一边横移一边转向; 模块化控制:每路电机独立调速,代码只需要调整转向组合即可切换运动模式。 2、缺点 成本更高,需要 4 套独立电机驱动; 辊子耐磨差,长期重载、粗糙地面容易磨损; 传动效率低于普通橡胶轮,相同电机功率下速度略慢; 安装要求严格,轮子左右不能装反,否则运动错乱、跑偏。 六、典型应用场景 1、教育创客:行空板 / Arduino 语音遥控全向小车; 2、仓储 AGV 物流小车,狭窄货架之间侧向穿梭; 3、工业重载转运平台、机器人比赛底盘; 4、室内巡检机器人、云台全向移动底座。 ![]() |
|
【花雕动手做】行空板 K10 系列实验之胜利牌羽毛球筒麦克纳姆轮四驱语音识别控制小车 实验开源代码 |
|
# 代码解读 ## 一、项目整体简介 硬件搭配:行空板 K10 + 离线 ASR 语音识别模块 + Microbit 四路电机驱动板 + **四轮麦克纳姆轮底盘** 1. 唤醒固定口令:**你好小新**,识别唤醒词后才能操控小车; 2. 共 7 组语音拼音指令:前进、停车、后退、右横移、左横移、原地转圈、斜向行走; 3. 依托麦克纳姆轮 45° 斜辊推力矢量叠加原理,实现直行、横移、零半径自转、斜走全向移动; 4. LCD 屏幕使用 24 号大号字体实时展示小车当前动作,电机统一固定速度 200(调速范围 0~255)。 ## 二、头文件与全局对象解析 1. `asr.h`:离线语音识别库,实现持续收音、唤醒检测、自定义拼音指令识别; 2. `unihiker_k10.h`:行空板底层驱动,管理 LCD 屏幕、画布缓存、主板硬件初始化; 3. `Microbit_Motor.h`:四路直流电机专用驱动库,可单独控制 M1/M2/M3/M4 任意一路电机,适配麦轮底盘。 - `k10`:行空板主控实例,统一管理屏幕、系统通信总线; - `asr`:语音识别实例,负责麦克风收音、人声解析; - `screen_dir=2`:设置屏幕倒置显示; - `motorbit`:四路电机驱动对象,电机编号定义: - M1 = 左前轮 M2 = 右前轮 - M3 = 右后轮 M4 = 左后轮 - CW = 电机顺时针正转,CCW = 电机逆时针反转 ## 三、setup () 上电初始化(开机仅执行 1 次) 初始化行空板全部底层硬件:串口、I2C 总线、屏幕、板载 IO 外设。 语音模块初始化参数说明: - `CONTINUOUS`:持续收音模式,麦克风不间断监听人声; - `CN_MODE`:中文识别模式,仅识别提前注册的拼音口令; - `10000`:收音抗噪灵敏度,数值越大过滤环境杂音、防误唤醒能力越强; 循环阻塞等待语音模型加载完毕,模块就绪才执行后续代码,防止调用报错。 按照倒置参数点亮 LCD 屏幕,创建画布缓存,所有文字先存入缓存再统一刷新,减少屏幕闪烁。 批量录入 7 条离线语音口令,语音模块仅能识别预存指令,无法识别未录入词语。 ## 四、loop () 无限主循环,实时监听语音指令 ### 1. 唤醒状态判断 `asr.isWakeUp()` 检测麦克风是否识别唤醒词「你好小新」: - 唤醒成功:画布第 6 行输出红色文字 `已唤醒行空板小车.......`; - 未唤醒待机:画布第 4 行输出蓝色提示文字 `唤醒词为“你好小新”`; `updateCanvas()` 将缓存文字一次性刷新到实体屏幕。 ### 2. Microbit 电机库核心函数 1. `motorRun(通道, 转向, 速度)` - 通道:`ALL` 四路同时控制 / M1/M2/M3/M4 单路独立控制; - 转向:`CW` 顺时针、`CCW` 逆时针; - 速度区间:0~255,本代码统一 200 中高速; 2. `motorStop(ALL)`:四路电机同时断电锁死,小车立即静止。 ### 3. 每条语音指令麦轮运动逻辑 #### ① qian jin 前进 四轮全部顺时针同步转动,麦轮纵向摩擦力叠加、横向分力抵消,车身直线向前行驶。 #### ② ting che 停车 M1/M2/M3/M4 全部切断动力输出,四轮无驱动力,小车立刻刹车静止。 #### ③ hou tui 后退 四轮全部逆时针反转,与前进转向完全反向,车身直线向后倒退。 #### ④ you heng 右横移 四路电机反向差速配合,前后纵向推力相互抵消,仅保留向右的横向合力,整车整体右移。 #### ⑤ zuo heng 左横移 与右横移转向全部反向,纵向分力抵消,横向合力向左,车身整体左移。 #### ⑥ zhuan quan 原地转圈 对角电机反向转动,形成纯旋转力偶,无前后、左右平移分量,零半径原地持续顺时针自转。 #### ⑦ xie zou 斜着走 仅左前 M1、左后 M4 电机顺时针运转,右前 M2、右后 M3 停机,推力合成左前方斜向直行。 ### 4. 屏幕清理语句 清空画布第 6 行及下方全部文字,清除上一轮动作文字,避免新旧文字重叠出现残影。 ## 五、7 种运动电机配置对照表 ![]() ## 六、完整运行流程 1. 设备上电,初始化行空板硬件、语音识别模块,循环等待语音模型加载完成; 2. 初始化倒置 LCD 屏幕、创建绘图画布,录入 7 条语音控制拼音指令; 3. 麦克风不间断监听唤醒词「你好小新」; 4. 识别唤醒词后屏幕红色文字提示已唤醒,未唤醒则蓝色文字提示唤醒口令; 5. 说出对应语音口令,四路电机按照麦克纳姆矢量差速逻辑运转,屏幕同步打印当前运动状态; 6. 循环末尾自动清空屏幕下方文字,持续等待下一条语音指令。 |
沪公网安备31011502402448© 2013-2026 Comsenz Inc. Powered by Discuz! X3.4 Licensed