|
115| 14
|
[K10教程] 【花雕动手做】行空板 K10 之三驱动无刷福来轮语音小车 |
本帖最后由 驴友花雕 于 2026-7-13 14:47 编辑 ![]() 行空板K10是一款专为快速体验物联网和学习人工智能而设计的开发学习板,100%采用国产芯片,知识产权自主可控,符合信息科技课程中编程学习、物联网及人工智能等教学需求。该板集成2.8寸LCD彩屏、WiFi蓝牙、摄像头、麦克风、扬声器、RGB指示灯、多种传感器及丰富的扩展接口。凭借高度集成的板载资源,教学过程中无需额外连接其他设备,便可轻松实现传感器控制、物联网应用以及人脸识别、语音识别、语音合成等AI人工智能项目。 主要特点 集成摄像头&内置算法,可进行离线图像检测 集成麦克风&内置算法,可进行离线语音识别 集成扬声器&内置算法,可进行离线语音合成 2.8寸彩色屏幕,数据展示更清晰 集成度高,利于教学 接口丰富,兼容软件多,扩展性好 ![]() |
|
知识点:三驱福来轮(三轮全向轮)控制原理 一、福来轮(全向 Omni 轮)基础结构与力学特性 福来轮vs麦克纳姆轮对比 1. 轮子结构 福来轮由主驱动轮毂 + 一圈垂直于主轴的被动小滚轮组成: 电机驱动主轮毂旋转,沿轮毂切线方向输出主动推力; 外圈小滚轮与主轴 90° 垂直,可无阻力被动横向滑动; 单个轮子只能输出单方向主动力,垂直主轴方向完全自由滑动。 2. 和麦克纳姆轮核心区别 麦克纳姆轮:斜 45° 辊子,单轮可同时分解横向 + 纵向分力,最少 4 轮底盘; 福来全向轮:辊子垂直主轴,单轮只有单向主动推力,必须 3 轮呈 120° 三角布局,依靠矢量叠加实现全向移动。 二、三轮标准布局(核心硬件前提) 三个福来轮在圆形底盘上均匀正三角分布,两两夹角严格 120°,每个轮子主轴指向底盘几何中心: ![]() 三轮120°布局坐标系 1 号轮(前轮):安装角 90°,主轴沿车身 Y 轴正方向; 2 号轮(左后):安装角 210°; 3 号轮(右后):安装角 330°; 每个轮子独立配 1 个直流减速电机 + 驱动芯片,三路 PWM 独立调速、正反转控制。 关键:三个轮子缺一不可,两轮福来轮无法实现全向平移 / 原地自转。 三、底层力学运动原理(矢量叠加核心) 单个福来轮仅能沿自身主轴方向产生推力,垂直主轴方向可自由滑动,无阻力; 三个轮子的推力矢量在 XY 平面叠加,合成车身X 横向、Y 纵向平移速度 + 绕中心旋转角速度; 通过修改三个电机的转速大小、旋转方向(正负速度),改变三个推力矢量,就能合成平面内任意运动:直行、横移、斜走、原地零半径旋转。 运动学速度换算公式(主控代码核心计算) 设车身目标运动: Vx:车身左右横向速度(右为正) Vy:车身前后纵向速度(前为正) ω:车身原地旋转角速度(顺时针为正) R:底盘中心到任意轮子的距离 三个轮子目标线速度: plaintext V1 = Vy + R·ω V2 = -0.5·Vy - 0.866·Vx + R·ω V3 = -0.5·Vy + 0.866·Vx + R·ω 计算结果正负号 = 电机转向;数值绝对值 = PWM 调速占空比; 主控收到前进 / 横移 / 转圈指令后,先算出 Vx、Vy、ω,再代入公式算出三路电机转速输出。 四、6 种标准运动电机控制逻辑(对应语音遥控场景) 1. 直线向前(Vy>0,Vx=0,ω=0) 目标:仅纵向向前,无横向偏移、不旋转 计算结果: V1 = 正转,V2 = 反转,V3 = 反转,三轮速度绝对值相等 1 号轮向前推,2、3 号轮向后抵消横向分力,合力纯向前。 2. 直线向后(Vy<0,Vx=0,ω=0) 全部转向与前进反向:V1 反转,V2、V3 正转,速度大小一致。 3. 车身整体向右横移(Vx>0,Vy=0,ω=0) V1=0(前轮停机),V2 正转,V3 反转,速度相同; 2、3 轮推力合成纯向右合力,前轮横向自由滑动无阻力。 4. 车身整体向左横移(Vx<0,Vy=0,ω=0) V1 停机,V2 反转,V3 正转,左右合力向左。 5. 原地顺时针转圈(Vx=0,Vy=0,ω>0) V1、V2、V3 全部同向正转,速度大小完全相等; 三轮推力形成环绕中心的旋转力偶,无平移分量,原地自转。 6. 斜向行走(Vx、Vy 同时不为 0,ω=0) 三轮按公式分配不同转速,同时产生纵向 + 横向合力,车身斜向直行。 7. 停车 V1=V2=V3=0,三路电机全部断电刹车。 五、电子控制完整流程(行空板 / ESP32 语音小车适配) 1. 硬件链路 主控(行空板 K10)→ 三路 PWM 引脚 → L298N/L9110S 电机驱动 → 三路 N20 减速电机 → 福来轮 PWM 占空比:0~255 对应速度大小; IO 高低电平控制电机 CW 正转 / CCW 反转; 可选:电机 AB 相编码器,采集脉冲做 PID 速度闭环,修正打滑误差。 2. 软件控制流程(语音小车逻辑) 语音识别模块接收口令(前进 / 右横 / 转圈),解析出目标 Vx、Vy、ω; 主控代入三轮运动学公式,计算 V1/V2/V3 三路电机目标速度; 将速度正负转为电机转向,数值转为 PWM 输出; 循环实时刷新三路电机转速,屏幕同步显示运动状态; 喊 “停车” 时三路电机全部置 0 停机。 六、三轮福来轮 vs 四轮麦克纳姆轮优缺点对比 ![]() 七、典型应用场景 创客教育语音遥控小车(你当前行空板语音项目); 小型桌面巡检机器人、绘图机器人; 狭小空间转运轻型物料 AGV; 云台小型全向移动底座。 |
|
【花雕动手做】行空板 K10 系列实验之3640无刷电机三驱动全向福来轮语音控制智能小车 实验开源代码 |
|
# 代码解读 ## 一、项目整体功能 硬件组合:行空板 K10 + 离线 ASR 语音识别 + IO 电平控制式电机驱动底盘(两轮差速小车) 1. 固定唤醒口令:**你好小新**,唤醒后才能操控小车; 2. 5 条语音拼音指令:启动、停车、前进、后退、原地转圈; 3. 依靠板载 IO (P0/P1)+ 扩展 IO (eP2/eP3/eP4/eP6) 输出高低电平组合,切换电机锁定 / 直行 / 后退 / 自转模式; 4. LCD 屏幕使用 24 号大号字体,实时展示小车当前运行状态。 ## 二、头文件与全局对象解析 1. `asr.h`:离线语音识别库,实现持续收音、唤醒检测、自定义拼音指令识别; 2. `unihiker_k10.h`:行空板底层驱动库,管理屏幕画布、引脚模式配置、IO 电平输出函数。 - `k10`:行空板主控实例,统一管理屏幕、板载 GPIO、底层硬件初始化; - `asr`:语音识别实例,处理麦克风收音与人声解析; - `screen_dir=2`:设置屏幕倒置显示。 ## 三、setup () 上电初始化(开机仅执行一次) 1. `pinMode(P0, OUTPUT); pinMode(P1, OUTPUT);` 将板载 P0、P1 配置为数字输出引脚,作为整机解锁总控信号。 2. `k10.begin();` 初始化行空板全部硬件、I2C / 串口总线、屏幕外设资源。 3. 语音模块初始化 - `CONTINUOUS`:不间断持续收音; - `CN_MODE`:中文识别,仅识别预存拼音口令; - `12000`:抗噪灵敏度,数值越大越不容易误唤醒; 循环阻塞等待语音模型加载完毕,模块就绪才向下执行。 4. 屏幕初始化 按照倒置参数点亮屏幕,创建画布缓存,文字先存入缓存再统一刷新,减少屏幕闪烁。 5. 上电安全默认电平 整机控制引脚上电默认高电平,小车初始锁定刹车,避免开机窜动。 6. 注册语音指令 提前录入 5 条拼音口令,语音模块仅能识别预存指令。 ## 四、loop () 无限主循环,实时监听语音 ### 1. 唤醒状态判断 `asr.isWakeUp()` 检测是否识别唤醒词「你好小新」: - 唤醒成功:屏幕第 6 行红色文字提示 “已唤醒行空板小车”; - 未唤醒待机:屏幕第 4 行蓝色文字提示唤醒口令; `updateCanvas()` 将画布缓存文字一次性刷新到实体屏幕。 ### 2. 各语音指令硬件电平逻辑 #### 1)qi dong 启动(整机解锁) P0、P1 拉低解除整机锁定,小车进入可运动状态。 #### 2)ting che 停车(整机锁定刹车) 总控引脚全部拉高,电机切断动力,小车立刻锁死静止。 #### 3)qian jin 前进(直线直行) 保持解锁状态,eP2、eP4 拉高,输出直行差速电平,两轮同向正转向前。 #### 4)hou tui 后退(直线倒退) 保持解锁,仅 eP2 拉高,电机反向输出,直线向后倒退。 #### 5)zhuan quan 原地转圈 解锁 + 转圈模式,eP3/eP4/eP6 拉高,左右电机反向差速,原地持续自转。 ### 3. 屏幕清理 清空画布第 6 行及下方所有文字,清除上一轮状态,防止新旧文字重叠残影。 ## 五、引脚功能总表 ![]() ## 六、运动动作对照表 表格 ![]() ## 七、完整运行流程 1. 上电配置 P0/P1 为输出引脚,初始化行空板全部硬件; 2. 启动离线语音识别,循环等待语音模型加载完成; 3. 初始化倒置 LCD 屏幕、创建绘图画布; 4. 所有控制引脚默认拉高,上电小车保持锁定刹车; 5. 注册 5 条语音拼音控制指令; 6. 麦克风不间断监听唤醒词 “你好小新”; 7. 唤醒后说出对应口令,多路 IO 输出对应电平驱动电机,屏幕同步显示车辆状态; 8. 循环末尾自动清空屏幕文字,持续等待下一条语音指令。 |
沪公网安备31011502402448© 2013-2026 Comsenz Inc. Powered by Discuz! X3.4 Licensed