亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

语音控制机器人

组件和用品

Arduino Nano R3
× 1
L298n 电机驱动器
× 1
HC-05 蓝牙模块
× 1

必要的工具和机器

热胶枪(通用)

应用和在线服务

Arduino IDE

关于这个项目

机器人很酷。有一个可以四处走动的机器人听你的语音命令更酷。用Arduino制作这样一个语音或语音控制的机器人越来越酷了。因为 Arduino 便宜且易于调整。

开始制作吧,也可以看视频教程。

第 1 步:所需零件

机器人基于PCB。我设计用于不同机器人的 PCB。让我们看看我使用了哪些其他组件 -

电子:

  • Arduino Nano - 1x
  • L298n 电机驱动器模块 - 1x
  • Hc05 蓝牙模块 - 1x
  • 直流电机和兼容的车轮 - 2x
  • 多功能机器人 PCB - 1x(链接)
  • 一些男性和女性标题

制作身体:

  • PVC 片材
  • 热胶枪

软件:

  • Arduino.ide
  • 我制作的应用程序

就是这样,现在我们可以开始了。

第 2 步:原则:它将如何运作?

在开始真正搞砸事情之前,清楚地了解你要做什么总是好的。可能你不惹事,但我惹。

因此,Arduino 是一台微型计算机或微控制器。它没有足够的能力或能力来执行语音识别(截至目前)。但对我来说幸运的是,我的 PCB 板上有一个端口可以连接蓝牙模块。意思是,我可以将我们的 Arduino 无线连接到其他设备。我正在利用那件事。因此,我将不得不制作一个可以使用谷歌 API(需要互联网)执行“语音到文本”操作的 Android 应用程序,并且在收到文本后,它将通过蓝牙命令 Arduino。

所以,如果我说“前进”,机器人将得到“F”并向前移动。这就是概念。现在让我们实现它。

第 3 步:制作身体

我用 13 厘米/13.5 厘米的 PVC 板制作了这个机器人的底盘/机身。使用刀片/刀切割更容易,并且也适用于胶水。

正如您在视频中看到的那样,我切割了几块以在电路板区域内安装两个电机和轮子。然后把它们粘起来。

当你制作你的时,你不需要让它看起来完全像这样。你的机器人你的选择。

第 4 步:构建电路还是使用 PCB?

在这里,我们再次指出它完全是您的选择。但是,要制作这样的电路需要大量布线,如果您使用面包板制作它,一个错误的连接就会妨碍整个项目。这就是我喜欢在我的项目中使用 PCB 的原因。

我使用 EasyEDA 设计了这个 PCB,并从 PCBWay.com 订购了它。 PCBWay 以更便宜的价格提供质量。您只需 5 美元即可获得 10 个多层 PCB。他们还赞助我觉得很棒的学生项目。

无论如何,我去了快速订购部分,我需要做的就是上传我的 PCB,系统会自动检测我的电路板的所有参数,我只选择了颜色。黑色是我最喜欢的,看起来它是多么闪亮和酷炫。更好,因为在他们的工程团队检查您的 PCB 之前,他们不会拿钱,很好!

从这里获取 PCB 板。

但是,如果您无法订购或使用此 PCB,则可以在面包板或 vero 板上进行。我已经为你上传了fritzing电路。从下面下载或从这里获取。

语音控制机器人原理图.fzz

第 5 步:连接电子设备

连接是直接的。如电路图中所示连接所有东西。我将从连接电机到电机驱动器开始 -

电机到电机驱动器,

  • 电机 1 线连接到驱动器的一端,
  • Motor2 转到另一端。

为了控制电机,

  • L298n 电机驱动器上的电机 1 引脚连接到 Arduino 2 和 3 引脚(数字)。
  • Motor2 在 4 和 5 上连接

蓝牙模块,

  • Tx 到 Arduino Rx
  • 接收到发送
  • VCC 至 5V/VCC
  • Gnd 到 GND(接地)

电池,

我为电机使用了 7.4V 电池,该电池连接到电机驱动器输入和 Arduino VIN 和接地引脚。需要公共接地连接。

然后我接上电池把所有东西都点亮了。意思是,我没看错。

第 6 步:编程 Arduino

这是一个简单的程序。程序检查字符,如果收到,则从左向右等。列表是 -

  • 'F' - 转发
  • 'B' - 向后
  • 'L' - 左
  • 'R' - 右

蓝牙模块连接在串口上,因此Arduino以9600 bps的速度通过串口进行通信。

我设置部分我定义了引脚和速率 -

void setup(){//initlize pinMode(lm1,OUTPUT);pinMode(lm2,OUTPUT);pinMode(rm1,OUTPUT);pinMode(rm2,OUTPUT);//设置pinMode(lm1,OUTPUT);pinMode(lm2,OUTPUT);pinMode(rm2,OUTPUT);//设置串行通信速率Serial.begin(9600);} 

in mainloop 它检查通过串行接收的数据-

//检查arduino是否正在接收信号while(Serial.available() ==0);val =Serial.read(); //读取signalSerial.print(val); 

然后是主代码,从这里下载。我在下面粘贴了整个代码 -

/**** Arduino Speech/voice Controlled Robot **** by Ashraf Minhaj* 发邮件至 [email protected]* 教程- ashrafminhajfb.blogspot.com*///声明 arduino pinint lm1 =4; //声明第一个电机引脚int lm2 =5;int rm1 =2; //右电机pinsint rm2 =3;char val;void setup(){//初始化pinMode(lm1,OUTPUT);pinMode(lm2,OUTPUT);pinMode(rm1,OUTPUT);pinMode(rm2,OUTPUT) );//设置串口通信速率Serial.begin(9600);}void loop(){//检查arduino是否正在接收信号while(Serial.available() ==0);val =Serial.read(); //读取信号//Serial.print(val);/*********For Forward motion*********/if (val =='F'){//Serial .println("FORWARD");digitalWrite(lm1,HIGH);digitalWrite(rm1,HIGH);digitalWrite(lm2,LOW);digitalWrite(rm2,LOW);}/*********对于向后运动*********/else if(val =='B'){digitalWrite(lm2,HIGH);digitalWrite(rm2,HIGH);digitalWrite(lm1,LOW);digitalWrite(rm1,LOW);} /*********Right************/else if(val =='R'){digitalWrite(lm1,HIGH);digitalWrite(rm2,HIGH);digitalWrite(lm2, LOW);digitalWrite(rm1,LOW);}/*********Left*********/else if(val =='L'){digitalWrite(lm2,HIGH); digitalWrite(rm1,HIGH);digitalWrite(lm1,LOW);digitalWrite(rm2,LOW);}/*********STOP*********/else{digitalWrite(lm1,LOW) );digitalWrite(rm1,LOW);digitalWrite(lm2,LOW);digitalWrite(rm2,LOW);}delay(10);} 

上传代码,然后制作应用程序。

第 7 步:语音到文本的应用程序

我使用麻省理工学院应用程序发明者制作了该应用程序。您可以根据需要编辑和自定义此应用程序。从这里获取 aia fie。

此应用程序使用蓝牙连接来控制机器人。为此,我需要将 HC05 蓝牙模块与我的手机配对。默认密码为 1234 或 0000。

此应用程序使用 google Speech to Text API 将我所说的内容转换为文本形式。然后它把句子变成小写,这样处理起来更容易。并使用 if else 语句进行匹配。如果用户说“转发”,请向 Arduono 发送“F”字母,它会继续前进。就是这样。

构建并保存为 APK 文件,或使用我的安装在您的手机上。

语音控制机器人原理图.fzz

第 8 步:启动机器人,运行应用程序并开始!

现在只需插入电池,即可使用 Android 应用与您的全新机器人玩耍!

感谢您的阅读。查看我最新的项目 -

代码

  • 代码片段 #1
  • 代码片段 #3
代码片段 #1纯文本
void setup(){ //初始化引脚的模式 pinMode(lm1,OUTPUT); pinMode(lm2,输出); pinMode(rm1,输出); pinMode(rm2,输出); //设置串口通信速率Serial.begin(9600);}
代码片段 #3纯文本
/**** Arduino Speech/voice Controlled Robot *** * by Ashraf Minhaj * 发邮件至 [email protected] * 教程- ashrafminhajfb.blogspot.com *///声明 arduino pinint lm1 =4; //声明第一个电机引脚int lm2 =5;int rm1 =2; //右电机pinsint rm2 =3;char val;void setup(){ //初始化pinMode(lm1,OUTPUT); pinMode(lm2,输出); pinMode(rm1,输出); pinMode(rm2,输出); //设置串口通信速率Serial.begin(9600);}void loop(){ //检查arduino是否正在接收信号 while(Serial.available() ==0); val =Serial.read(); //读取信号 //Serial.print(val); /*********对于前进运动*********/ if (val =='F') { //Serial.println("FORWARD");数字写入(lm1,高);数字写入(rm1,高);数字写入(lm2,低);数字写入(rm2,低); } /*********对于向后运动*********/ else if(val =='B') { digitalWrite(lm2,HIGH);数字写入(rm2,高);数字写入(lm1,低);数字写入(rm1,低); } /*********Right*********/ else if(val =='R') { digitalWrite(lm1,HIGH);数字写入(rm2,高);数字写入(lm2,低);数字写入(rm1,低); } /*********左*********/ else if(val =='L') { digitalWrite(lm2,HIGH);数字写入(rm1,高);数字写入(lm1,低);数字写入(rm2,低); } /*********停止*********/ else { digitalWrite(lm1,LOW);数字写入(rm1,低);数字写入(lm2,低);数字写入(rm2,低); } 延迟(10); }
Github
https://github.com/ashraf-minhaj/speech-controlled-robothttps://github.com/ashraf-minhaj/speech-controlled-robot

示意图

语音控制机器人示意图_hUoWKpapKe.fzz

制造工艺

  1. 通过蓝牙控制的树莓派机器人
  2. 使用 Arduino 和 Raspberry Pi 构建您的 Internet 控制的视频流机器人
  3. Windows 10 IoT Core:语音控制机器人
  4. 使用 Raspberry Pi 的 Wifi 控制机器人
  5. 操纵杆控制的遥控车
  6. 线跟随机器人
  7. Nunchuk 控制机械臂(使用 Arduino)
  8. 通过以太网控制的机械臂
  9. MobBob:由 Android 智能手机控制的 DIY Arduino 机器人
  10. Arduino 控制的钢琴机器人:PiBot
  11. 自主家庭助理机器人
  12. 蓝牙控制的避障机器人