探测距离机器人模型:通过超声波测距控制舵机转向,LED灯,语音播放,蜂鸣器(米思齐mixly,arduino)
**
------------探测距离机器人模型:通过超声波测距控制舵机转向,LED灯,语音播放,蜂鸣器(米思齐mixly,arduino)
一、 初始化设置
在初始化这里要先设置波特率。并且把初始超声波测距的初值赋值为0.
之后主要是设置蜂鸣器里面播放的音乐,我设置的是胡夏的“那些年”,有兴趣可以搜个乐谱自己打上去。tonelist为频率,几乎都是一样的,读者可以直接把我的输入在自己的上面。而musiclist为音符,就是我们熟悉的“do re mi fa so la si".而highlist为音高,想了解的可以自己搜一下。最后的rhythmlist为节拍,先看是以几分音符为一拍,比如一个音乐为四分之四拍,每个对应为1拍。(我们知道,音符节奏分为一拍、半拍、1/4拍、1/8拍,我们规定一拍音符的时间为1;半拍为0.5;1/4拍为0.25;1/8拍为0.125……,)几个特殊音符说明如下:
第一,普通音符。如第一个音符3,对应频率350,占1拍。
第二,带下划线音符,表示0.5拍;两个下划线是四分之一拍(0.25)。
第三,有的音符后带一个点,表示多加0.5拍,即1+0.5。
第四,有的音符后带一个“—”,表示多加1拍,即1+1。
读者可以自己搜乐谱来绘制自己的蜂鸣器音乐。
二、设置自己的音乐播放
根据自己想让你的执行蜂鸣器的时候播放到音乐的什么位置而停来设置i从1到某数。
三、主功能控制
我们需要先设置好每一个模块的管脚,注意数字输出和模拟输出的区别,在此程序区别不大,就不加赘述了。然后把它们之间的对应关系整理好,让他们能正常的执行你想要的功能。
在这里我分别把3个LED灯接在面包板上并对应管脚A2,2,12的正极接在S,负极接在G。
把语音模块接在A5上,其中P-L接在S,正极接V,负极接G。
把蜂鸣器和舵机分别用上面接在管脚8的播放程序procedure和管脚4控制。
然后把这些接在arduino板子上。
四,硬件连接
把各个模块按照程序里的管脚连接上去,并且把语音模块的语音录好如果觉得声音较小还可以接一个功放模块,超声波和舵机通过支架接好,LED灯必须接电阻,否则会烧坏。
五、运行上传并执行
看官可以根据自己的喜好设计个外形,把这些模块封装起来。
六、arduino代码
编程能力好的也可以在arduino里用代码写,具体如下:
#include <Servo.h>volatile int juli;
volatile float speed;
volatile long updown;float tonelist[]={1046.5,1174.7,1318.5,1396.9,1568,1760,1975.5};long musiclist[]={0,1,1,2,3,3,3,4,3,3,0,3,2,1,2,2,2,4,3,3,0,2,1,7,1,1,7,1,7,6,5,5,5};long highlist[]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,-1,0,0,-1,0,-1,-1,-1,-1,-1};long rhythmlist[]={8,8,8,8,4,4,4,8,8,2,8,8,8,8,4,4,4,8,8,2,4,4,4,8,8,4,8,4,4,4,8,8,2};void procedure() {for (int i = 1; i <= 30; i = i + (1)) {tone(8,tonelist[(int)(musiclist[(int)(i - 1)] - 1)] * pow(2, highlist[(int)(i - 1)]));delay((2000 / rhythmlist[(int)(i - 1)]));noTone(8);delay(10);}
}float checkdistance_A1_A0() {digitalWrite(A1, LOW);delayMicroseconds(2);digitalWrite(A1, HIGH);delayMicroseconds(10);digitalWrite(A1, LOW);float distance = pulseIn(A0, HIGH) / 58.00;delay(10);return distance;
}Servo servo_4;void setup(){Serial.begin(9600);juli = 0;speed = 120.0;updown = 0;pinMode(8, OUTPUT);pinMode(A1, OUTPUT);pinMode(A0, INPUT);pinMode(12, OUTPUT);servo_4.attach(4);pinMode(2, OUTPUT);
}void loop(){juli = checkdistance_A1_A0();Serial.println(String(juli).toInt());if (juli < 10) {pinMode(A2, OUTPUT);digitalWrite(A2,HIGH);pinMode(A5, OUTPUT);digitalWrite(A5,HIGH);digitalWrite(12,LOW);servo_4.write(90);delay(1000);} else if (juli < 30) {digitalWrite(2,HIGH);digitalWrite(12,LOW);procedure();} else {digitalWrite(12,HIGH);servo_4.write(180);delay(1000);}pinMode(A5, OUTPUT);digitalWrite(A5,LOW);pinMode(A2, OUTPUT);digitalWrite(A2,LOW);digitalWrite(2,LOW);delay(1000);}
感兴趣的朋友可以自己动手试试,欢迎关注后续文章。
欢迎关注公众号,了解更多。
探测距离机器人模型:通过超声波测距控制舵机转向,LED灯,语音播放,蜂鸣器(米思齐mixly,arduino)相关推荐
- 米思齐Mixly图形化编程---按键控制LED灯
文章目录 实验材料与环境 [实验]实现按键控制LED灯 1.软硬件连接 2.图形化编程块 3.代码块 4.实验成果 实验材料与环境 硬件:Arduino.LED 软件:Mixly IDE [实验]实现 ...
- 超声波测距控制蜂鸣器声音
这是我们物联网课程的实验,我就选了个超声波测距控制蜂鸣器声音来做. ** 用到的工具有: ** 开发板.蜂鸣器.导线. 具体接线图: 具体代码如下: const int TrigPin = 2; co ...
- 【Arduino】超声波测距控制步进电机转动
功能实现 超声波测距控制步进电机,当超声波检测距离低于阈值距离,电机转动:反之电机则不转动. 电路连接 接线图 源代码及注释 #include <Stepper.h>// 这里设置步进电机 ...
- 清洁机器人--音频方案之基于国民MCU IO控制的唯创WT588 语音播放方案
清洁机器人–音频方案之基于国民MCU IO控制的唯创WT588 语音播放方案 文章目录 清洁机器人--音频方案之基于国民MCU IO控制的唯创WT588 语音播放方案 1.MCU相关开发环境 1.1 ...
- 用3个IO口控制6个LED灯,怎么做到的?查理复用!
▲ 本文要分析的电路 事情是这样开始的. 买了个电动牙刷,几十块钱那种: 收到的实物长这样: 牙刷手柄上有1个按键和6个LED灯: 拆开看看电路板: 可以看出,电路板上用的单片机,只有8个脚,却要控制 ...
- 单片机两个IO口控制三个LED灯
在项目中经常会遇到单片机IO口资源不够用的情况,那么如何让单片机的IO口利用最大化呢,这里分享一下用单片机两个IO口控制三个LED灯的几种方法. 方法一: S1和S2分别接单片机两个IO口, ...
- 用米思齐mixly和APP INVENTOR 2通过MQTT控制灯亮和熄
用米思齐mixly和APP INVENTOR 2通过MQTT控制灯亮和熄,如下图所示:
- Arduino系列之米思齐旋钮控制LED灯亮度
Arduino系列之旋钮控制LED灯亮度 实验原理 电位器的旋钮旋转时改变电阻从而控制LED灯的亮度! 实验所需材料 arduino开发板,LED灯,电位器,1602液晶显示器,杜班线很多根,公母线很 ...
- 【实战】物联网安防监控项目【4】———从网页上控制A9的LED灯
前言 学习了一个新知识,当然要记录一下啦.这两天学习了boa服务器.cgic标准库和html标签语言,又双叕解锁一个嵌入式的新玩法.cgic库是沟通C语言和html网页编程语言的一座桥梁,通过在lin ...
最新文章
- 云服务优缺点_什么是云服务器,云服务器的优缺点
- DayDayUp:朋友圈有趣的职场跳槽微小说《华为跳阿里→阿里跳腾讯→腾讯跳百度→百度跳华为》
- php 斗鱼人数,斗鱼旭旭宝宝再度登顶指数榜首位 单日弹幕人数高达48万人
- 认识适配器:JSON绑定概述系列
- Git使用手册--超级详细,自己都看哭了
- (转) 基于Arcgis for Js的web GIS数据在线采集简介
- uban服务器系统,Web服务器-并发服务器-Epoll(3.4.5)
- CentOS7 - 给VMwear Workstation 15安装VMwear tools
- oracle structure,oracle memory structure
- matlab2017a安装出现license checkout failed Error-8
- 【Photoshop】滤镜详解
- 【OP-TEE】TA的加载(超详细)
- socket套接字编程 | 粘包现象 | 报头 | struck模块
- 小码哥C++_汇编指令
- 支付宝直付通实现账单结算(分账)功能完整Demo
- ubuntu 批量改名
- 2014522420145238《信息安全系统设计基础》实验一 开发环境的熟悉
- 虚拟机安装Win10纯净版操作系统
- (用函数解决)Python报数游戏,输入有n个人按顺序编号,从第一个人报数,输入报数k,从1到k,报到k的退出游戏,从下一个人继续游戏,并求最后剩下的人编号是几号。
- Go语言:模拟鼠标操作(go-vgo/robotgo)