自动寻声的伺服马达-利用声源定位模组制作的声控舵机(附arduino开发板程序)

 效果演示

arduino入门- 声源定位模组进行SG90伺服马达方向控

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

声源定位核心板和麦克风阵列板

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

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

 

正面
声源核心板
背面
麦克风阵列板

 

 SG90伺服马达和云台

 

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

 

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

 

 一.声源定位板脚位设置

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

 

二.arduino脚位设置

 

 声源定位板需要单独供电,采用usb直接供电

 组装完成:

 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);      //伺服马达转动到0度
      delay(100);  }      //定义延迟100毫秒
   
     if (digitalRead(3) ==HIGH)  //如果3脚电平为HIGH
     {  myservo.write(60);       //伺服马达转动到60度
      delay(100); }              //延迟100毫秒
    
      if (digitalRead(4) ==HIGH)  //如果4脚电平为HIGH
         { myservo.write(120);    //伺服马达转动到120度
           delay(100); }          //延迟100毫秒
    
      if (digitalRead(5) ==HIGH)   //如果5脚电平为HIGH
     {   myservo.write(180);       //伺服马达转动到180度
      delay(100); }                //延迟100毫秒
  

}

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

结束语:

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

  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值