钢铁侠
组件和用品
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
必要的工具和机器
| ||||
| ||||
|
应用和在线服务
|
关于这个项目
钢铁侠是漫威漫画公司出版的虚构漫画人物。他的真实身份是商人和亿万富翁托尼斯塔克,他使用高科技盔甲打击犯罪。
材料
- Arduino Uno
- 4 通道中继板
- 超声波模块
- 330 欧姆电阻
- Modulo 迷你 MP3 播放器
- 电缆 p2
步骤
这个项目的目的是让钢铁侠娃娃栩栩如生。我们使用 Ardudino Uno 来控制一切。编程时,我们使用MP3 DFPlayer库,调用函数random()进行钢铁侠音频文件的选择。
音频取自托尼·斯塔克 (Tony Stark) 的悲观电影,并以数字 (001, 002, 003) 重新命名,由 MP3 模块执行。部分音频文件链接:https://github.com/Sandromesquita/audioIronMan
当有人靠近时(约1.3m),超声波模块识别并命令Arduino调用BURF命令(MP3播放命令)。
电路
>
灯电路
代码
- Homem_de_FerroV5.ino
Homem_de_FerroV5.inoArduino
#include#include "Arduino.h"#include "SoftwareSerial.h"#include "DFRobotDFPlayerMini.h"//Inicia a serial por software nos pinos 10 e 11SoftwareSerial mySoftwareSerial(6,7); // RX, TX//对象响应 pela comunicao com o mdulo MP3 (DFPlayer Mini)DFRobotDFPlayerMini myDFPlayer;//varivel responsvel por armazenar os comandos enviados para controlar o playerString buf;//varivel responsvel por est armazenaro player (DFPlayer Mini) tocando; 1:pausado)int pausa =0;//varivel responsvel por armazenar o estado da equalizao//varia de 0 a 5int equalizacao =0;//varivel responsvel por armazenar o total de msicas不提供SD卡.int maxSongs =0;#define Gnd 5 // Preto#define Echo 4 // Laranja com fita preta#define Trig 3 // Preto com fita preta #define Vcc 2 // LaranjaUltrasonic ultra(Trig,Echo);int distancia;/* * Rel 1 Cabea * Rel 2 Peito * Rel 3 Brao esquerdo * Rel 4 Brao direito */ #define Cabeca 13 #define Peito 12 #define Esquerda 11 #define Direito 10 int x=3;void setup() { //Comunicacao serial com o模 mySoftwareSerial.begin(9600); //初始化一个串行做Arduino Serial.begin(115200); //Verifica se o modulo esta respondendo e se o //cartao SD foi encontrado Serial.println(); Serial.println("DFRobot DFPlayer Mini"); Serial.println("Inicializando modulo DFPlayer... (3~5 segundos)"); if (!myDFPlayer.begin(mySoftwareSerial)) { Serial.println("Nao inicializado:"); Serial.println("1.Cheque as conexoes do DFPlayer Mini"); Serial.println("2.Insira um cartao SD");同时(真); Serial.println(); Serial.println("Modulo DFPlayer Mini 初始化!"); //定义 iniciais myDFPlayer.setTimeOut(500); //超时串行500ms myDFPlayer.volume(30); //第10卷 myDFPlayer.EQ(0); //Equalizacao 正常 //recupera o numero de Msicas encontradas no SD。 maxSongs =myDFPlayer.readFileCounts(DFPLAYER_DEVICE_SD); Serial.println(); Serial.print("Numero de arquivos no carato SD:"); Serial.println(maxSongs); pinMode(Cabeca,输出); pinMode(Peito,输出); pinMode(Esquerda,输出); pinMode(Direito,OUTPUT); pinMode(Vcc,OUTPUT); pinMode(Gnd,OUTPUT);数字写入(接地,低);数字写入(Vcc,高);数字写入(Cabeca,高);数字写入(佩托,高);数字写入(埃斯奎达,高);距离=ultra.Ranging(CM);}void loop() { Serial.println(String(ultra.Ranging(CM))+" Lendo fora");距离=ultra.Ranging(CM); if((distancia<=150)&&(x==3)) { buf =random(1, 19);玩();延迟(3000); Serial.println("voltei");延迟(100); while(ultra.Ranging(CM)<=150) { digitalWrite(Esquerda,HIGH); x=2;延迟(1200); } } else { digitalWrite(Direito,LOW); Serial.println("Nd 标识"); x=3; } }void play(){ digitalWrite(Direito,HIGH); Serial.println("POU");延迟(300);数字写入(Direito,低);延迟(300);数字写入(Direito,高); Serial.println("POU");延迟(300);数字写入(Direito,低);延迟(300); //Aguarda a entrada de dados pela serial while (Serial.available()>=0) { //Reproducao if ((buf.toInt()>=1) &&(buf.toInt() <=maxSongs)) { Serial .print("Reproduzindo 音乐:"); Serial.println(buf.toInt());// buf =buf - 48; myDFPlayer.play(buf.toInt()); buf=-1;休息; } }}
示意图
制造工艺