回到首页 返回首页
回到顶部 回到顶部
返回上一页 返回上一页

行空板K10:声控小车 简单

头像 飞奔的菜鸟 2025.02.08 51 0

一、项目背景

        行空板K10是一款集成了多种传感器和通信模块,如摄像头、麦克风、扬声器、WiFi和蓝牙等,能够实现语音识别、图像检测等功能,具有强大的计算能力和丰富的扩展接口,能够与各种外设进行连接,实现各种创意。对于学生来说,小车普遍非常受欢迎,我们可以尝试制作行空板K10声控小车,它通过编程和硬件的结合,让学生可以学习到人工智能、物联网等前沿技术,激发他们的创造力和实践能力。本文主要实现用声音指令(停止、前进、后退、向左、右转)控制小车的运行,以实例为依托,让学生了解语音识别技术,同时为后续自动避障等其他功能为铺垫。

二、项目硬件

主控板

执行器

小车零部件

电源

扩展板

行空板K10*1

电机*2

车体框架*1

万向轮*1

轮子*2

电池盒*1

IO扩展板*1

image.png 

image.png 

image.png 

image.png 

 image.png

 image.png

image.png

 三、功能介绍

         语音识别与控制:通过语音命令前进、后退、左转、右转、停止控制K10小车。

         视频效果

https://www.bilibili.com/video/BV19nN3edEpd/

 

四、软件设置

1.下载安装Mind+软件

       网页下载(20250103版):点击下载

       mind+ V1.8.1 RC1.0

       百度网盘下载(20250103版): https://pan.baidu.com/s/15ORx5VbobeZjiQvOxar21g?pwd=d2aa 提取码: d2aa

      夸克网盘下载(20250103版):  https://pan.quark.cn/s/db00cf6ae510

      下载后解压到C盘根目录。

2.开始Mind+图形化编程

     点击”扩展“,在扩展页面中,点击”主控板“,选择”行空板K10“,点击”返回“,完成加载

image.png

      使用USB线将行空板K10的Type-C口接到电脑USB口,在mind+中点击“连接设备”,找到对应的K10设备并点击,完成设备连接

 image.png

     选择扩展板

image.png

五、编写程序

image.png
image.png
image.png

 

image.png
image.png
image.png
image.png
image.png

六、Arduino c代码

/*!

 * MindPlus

 * esp32s3bit

 *

 */

#include "asr.h"

#include "unihiker_k10.h"

#include <Microbit_Motor.h>

#include "arduino_image_cache.h"

// 函数声明

void DF_TingZhi();

void DF_QianJin();

void DF_YouZhuan();

void DF_HouTui();

void DF_ZuoZhuan();

// 创建对象

UNIHIKER_K10   k10;

ASR            asr;

uint8_t        screen_dir=2;

Microbit_Motor motorbit;

 

 

// 主程序开始

void setup() {

k10.begin();

asr.asrInit(CONTINUOUS, CN_MODE, 10000);

while(asr._asrState == 0){delay(100);}

k10.initScreen(screen_dir);

k10.creatCanvas();

asr.setAsrSpeed(2);

asr.addASRCommand(0+1, "ting zhi");

asr.addASRCommand(1+1, "qian jin");

asr.addASRCommand(2+1, "hou tui");

asr.addASRCommand(3+1, "zuo zhuan");

asr.addASRCommand(4+1, "you zhuan");

k10.setScreenBackground(0xFFFFFF);

}

void loop() {

if (asr.isWakeUp()) {

k10.canvas->canvasText("小行已唤醒", 1, 0x000000);

k10.canvas->updateCanvas();

if (asr.isDetectCmdID(0+1)) {

DF_TingZhi();

}

if (asr.isDetectCmdID(1+1)) {

DF_QianJin();

}

if (asr.isDetectCmdID(2+1)) {

DF_HouTui();

}

if (asr.isDetectCmdID(3+1)) {

DF_ZuoZhuan();

}

if (asr.isDetectCmdID(4+1)) {

DF_YouZhuan();

}

}

else {

k10.canvas->canvasDrawBitmap(60,40,160,200,image_data1);

k10.canvas->canvasText("请说“你好小行”", 1, 0x000000);

k10.canvas->updateCanvas();

}

}

 

 

// 自定义函数

void DF_TingZhi() {

motorbit.motorStop(M1);

motorbit.motorStop(M4);

k10.canvas->canvasDrawBitmap(70,120,100,100,image_data2);

k10.canvas->canvasText("          已停止", 3, 0x0000FF);

k10.canvas->updateCanvas();

asr.speak("已停止");

}

void DF_QianJin() {

motorbit.motorRun(M1, CW, 80);

motorbit.motorRun(M4, CCW, 80);

k10.canvas->canvasDrawBitmap(70,120,100,100,image_data3);

k10.canvas->canvasText("          已前进", 3, 0x0000FF);

k10.canvas->updateCanvas();

asr.speak("已前进");

}

void DF_YouZhuan() {

motorbit.motorRun(M1, CCW, 80);

motorbit.motorRun(M4, CCW, 80);

k10.canvas->canvasText("          已右转", 3, 0x0000FF);

k10.canvas->canvasDrawBitmap(70,120,100,100,image_data4);

k10.canvas->updateCanvas();

asr.speak("已右转");

}

void DF_HouTui() {

motorbit.motorRun(M1, CCW, 80);

motorbit.motorRun(M4, CW, 80);

k10.canvas->canvasDrawBitmap(70,120,100,100,image_data5);

k10.canvas->canvasText("          已后退", 3, 0x0000FF);

k10.canvas->updateCanvas();

asr.speak("已后退");

}

void DF_ZuoZhuan() {

motorbit.motorRun(M1, CW, 50);

motorbit.motorRun(M4, CW, 50);

k10.canvas->canvasText("          已左转", 3, 0x0000FF);

k10.canvas->canvasDrawBitmap(70,120,100,100,image_data6);

k10.canvas->updateCanvas();

asr.speak("已左转");

}

 

七、项目总结

       通过本项目的学习,学生不仅熟悉了行空板K10的编程过程,体验了语音识别技术的应用,同时还培养了他们的计算思维能力,给后期小车增加其他功能提供了基础。

 

评论

user-avatar