Arduino+声源定位AR1105:语音识别与小智机器人转向

 本文介绍如何使用Arduino和声源定位模组控制SG90伺服马达,通过声源定位核心板的IO信号,实现马达在不同角度的定向转动,程序简单无需复杂算法。

声源定位模组+小智机器人

视频链接:

 利用声源定制追踪制作的一个小玩意.使用arduino开发板做的.程序很简单.没有难度.主要是声源定位模组使用的是全硬件搭建.不需要去做调试和研究算法.

声源定位核心板和测试底座

我使用了声源定位板的测试底座来连接,这样方便很多.这个不是必需要的,有别的支架可以不用这个底座效果也是一样的.我是找不到合适的支架就用这个现成的.还用了两块.

SG90伺服马达和云台

声源定位板和arduino的硬件连接

声源定位核心板把360度的声场平均分为6个角度范围.每个角度为60.核心板上有6个角度的IO.当某个角度追踪到声音的时候.相应的角度IO口会发送高电平指示.非常简单.

.声源定位板脚位设置

 由于伺服马达只能转动180度.所以我在声源定位上取了从0-180度四个脚位的IO分别送入arduino的2.3.4.5号脚位.再把核心板的负极接arduino共地.

.arduino脚位设置

组装完成:

arduino程序:

程序很简单.只要调用arduino的伺服马达库,然后定义0-180度四个脚位2.3.4.5为输入脚.默认舵机控制脚为9.

#include <Servo.h> int i= 0;
Servo myservo;  // create servo object to control a servo // twelve servo objects can be created on most boards int pos = 0;    // variable to store the servo position void setup() {  
pinMode(2,INPUT);//定义0度角度输入脚位pinMode(3,INPUT);//定义60度角度输入脚位pinMode(4,INPUT);//定义120度角度输入脚位pinMode(5,INPUT);//定义180度输入脚位myservo.attach(9);  //定义舵机脚位  attaches the servo on pin 9 to the servo object} 

void loop() {
if (digitalRead(2) ==HIGH)//如果2脚电平为HIGH{     myservo.write(0);      //伺服马达转动到0delay(100);  }      //定义延迟100毫秒if (digitalRead(3) ==HIGH)  //如果3脚电平为HIGH{  myservo.write(60);       //伺服马达转动到60delay(100); }              //延迟100毫秒if (digitalRead(4) ==HIGH)  //如果4脚电平为HIGH{ myservo.write(120);    //伺服马达转动到120delay(100); }          //延迟100毫秒if (digitalRead(5) ==HIGH)   //如果5脚电平为HIGH{   myservo.write(180);       //伺服马达转动到180delay(100); }                //延迟100毫秒}

把以上程序入arduino,声源定位板接入usb电源.就可以进行测试了.

结束语:

这个声源定位板应为是纯硬件搭建..直接就可以进行应用.所以可以为我们省去声音定位软件的研究和调试.而且每个角度给出高电平指示.,编写arduino程序也非常简单.只要先调用自带的伺服马达库.然后根据声源板的每个角度给出的电平让arduino指定脚位输入.就可以实现当哪个角度有声源的时候.伺服马达就会向哪个角度转动.是不是很简单?有兴趣可以试试.

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值