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

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

时间:2023-12-28 11:36:51浏览次数:46  
标签:脚位 声源 伺服 arduino 开发板 声控 马达 定位


 效果演示


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


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

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

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

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

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

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

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

 

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

声源核心板

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

麦克风阵列板

 

 SG90伺服马达和云台

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

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

 

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

 

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

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

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

 

 一.声源定位板脚位设置

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

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

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

 

二.arduino脚位设置

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

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

 组装完成:

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

 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指定脚位输入.就可以实现当哪个角度有声源的时候.伺服马达就会向哪个角度转动.是不是很简单?有兴趣可以试试.

标签:脚位,声源,伺服,arduino,开发板,声控,马达,定位
From: https://blog.51cto.com/deyu/9011940

相关文章

  • 迅为RK3588开发板RTMP推流之视频监控之搭建 RTMP 媒流体服务器
    1.安装nginx+rtmp运行所要用到的库和依赖环境apt-getupdateapt-getinstallbuild-essentiallibpcre3libpcre3-devlibssl-devzlib1g-devopenssl2.下载nginx-1.20.2源码(下载地址:http://nginx.org/download/nginx-1.20.2.tar.gz)和nginx-rtmp-module(下载地址:hy......
  • 仿照Arduino的SoftI2C库写一个适合STM32的软件I2C库
    仿照Arduino的SoftI2C库写一个适合STM32的软件I2C库Arduino的SoftI2C库的相关链接:github链接同时我写了一篇关于IIC通信原理的博客,链接:IIC通信的相关知识当使用了Arduino的SoftI2C库后,发现这个库非常好用,用来软件模拟IIC通信。也想要在STM32上使用这个库,所以就有了移植SoftI2C......
  • 【飞凌 OK113i-C 全志T113-i开发板】视频编解码测试
     前言本文测试OK113i-S开发板-视频编解码的功能OK113i-S开发板是支持视频的编解码的,下面是官方介绍的编解码功能T113-i是一种为多媒体解码平台设计的高级应用处理器。T113-i集成了64位玄铁C906RISC-VCPU,双核Cortex-A7CPU和HiFi4DSP,提供高效的计算能力。主要特性支......
  • 【飞凌 OK113i-C 全志T113-i开发板】测试实时系统
    前言OK113i-S开发板上测试实时linux系统的效果Linux下的实时系统有三种方案:这三种方案各有优缺点1.PREEMPT-RT:PREEMPT-RT是一个基于Linux内核的实时补丁,也被称为Real-Time(RT)补丁。它通过增加内核的可抢占性,使得Linux内核能够实现实时性能。PREEMPT-RT补丁提供了可配置的实时选项,可......
  • PSoc62™开发板之按键控制LED
    实验目的使用板子上的用户自定义按键控制LED亮灭,当按键按下时LED亮起来,不按下则不亮电路图按键电路板子有两组按键,分别是系统复位按键和用户自定义按键,这里我们选择控制用户自定义按键,可以看到MCU_USER_BTN是通过上拉电阻接入电源的按键引脚图MCU_USER_BTN对应的是引脚P6.2......
  • 【DIY】自制STM32_Arduino
    【DIY】自制STM32_Arduino电路板前言为了在STM32上使用SimpleFOC,使用SimpleFOC的Arduino驱动板,就有了制作STM32_Arduino电路板的想法。使用STM32F103C8T6作为主控,使用立创EDA专业版软件进行电路板设计。功能需求:电路板外形上与Arduino外形相同。使用STM32的定时器TIM输出引......
  • PSoc62™开发板之点亮LED
    电路图LED电路板子有两个自主控制的LED,为绿色,通过上拉方式接入GPIO按键引脚图MCU_USER_LED1对应P0.0MCU_USER_LED2对应P0.1程序设计以下程序用于循环控制两个LED灯亮灭,延时间隔为500ms#include<rtthread.h>#include<rtdevice.h>#include"drv_gpio.h"#defineLED_P......
  • 【IIC】通过Arduino的SoftI2C库学习IIC通信
    【IIC】通过Arduino的SoftI2C库学习IIC通信SoftIC库SoftI2C库是Arduino的一个第三方库,可以通过软件模拟IIC时序与其他设备进行通信。可以实现与Wire库一样的功能。SoftI2C库的官方链接:https://www.arduino.cc/reference/en/libraries/softi2c/相关的API函数如下所示:IIC基本知......
  • 如果我想把一款芯片做成 arduino开发,应该怎样的步骤
    导入Arduino开发编译器编织指令集需要以下步骤:下载并安装ArduinoIDE。你可以从Arduino官方网站上下载最新版本的ArduinoIDE。打开ArduinoIDE,选择“文件”菜单下的“首选项”。在弹出的窗口中,找到“附加开发板管理器网址”一栏,输入以下网址:https://adafruit.github.io/arduino-bo......
  • 在一块开发板上同时实现大模型语音交互和视觉识别
    开发板简介CSK6视觉语音大模型开发套件同时实现了大模型语音交互和视觉识别。功能概述使用聆思CSK6011A芯片作为主控,板载16MBFlash集成摄像头、麦克风、扬声器、屏幕等丰富外设配件配套多模态应用示例,支持快速上手体验大模型语音交互、智能视觉等AI应用板载DAPLINK调试器,外接......