Components and supplies
Arduino UNO
MP3 MODULE ARDUINO DFPLAYER MIN
4 CHANNEL RELAY
Ultrasonic Sensor - HC-SR04 (Generic)
Jumper wires (generic)
Tools and machines
Hot glue gun (generic)
Soldering iron (generic)
Tip Tinner/Cleaner, Lead-Free
Apps and platforms
Arduino IDE
Project description
Code
Homem_de_FerroV5.ino
arduino
1#include <Ultrasonic.h> 2#include "Arduino.h" 3#include "SoftwareSerial.h" 4#include "DFRobotDFPlayerMini.h" 5 6//Inicia a serial por software nos pinos 10 e 11 7SoftwareSerial mySoftwareSerial(6,7); // RX, TX 8 9//Objeto responsvel pela comunicao com o mdulo MP3 (DFPlayer Mini) 10DFRobotDFPlayerMini myDFPlayer; 11 12//varivel responsvel por armazenar os comandos enviados para controlar o player 13String buf; 14//varivel responsvel por armazenar o estado do player (0: tocando ; 1: pausado) 15int pausa = 0; 16//varivel responsvel por armazenar o estado da equalizao 17//varia de 0 a 5 18int equalizacao = 0; 19//varivel responsvel por armazenar o total de msicas presentes no SD card. 20int maxSongs = 0; 21 22 23 24#define Gnd 5 // Preto 25#define Echo 4 // Laranja com fita preta 26#define Trig 3 // Preto com fita preta 27#define Vcc 2 // Laranja 28 29Ultrasonic ultra(Trig,Echo); 30 31int distancia; 32/* 33 * Rel 1 Cabea 34 * Rel 2 Peito 35 * Rel 3 Brao esquerdo 36 * Rel 4 Brao direito 37 */ 38 #define Cabeca 13 39 #define Peito 12 40 #define Esquerda 11 41 #define Direito 10 42 int x=3; 43void setup() { 44 //Comunicacao serial com o modulo 45 mySoftwareSerial.begin(9600); 46 //Inicializa a serial do Arduino 47 Serial.begin(115200); 48 49 //Verifica se o modulo esta respondendo e se o 50 //cartao SD foi encontrado 51 Serial.println(); 52 Serial.println("DFRobot DFPlayer Mini"); 53 Serial.println("Inicializando modulo DFPlayer... (3~5 segundos)"); 54 if (!myDFPlayer.begin(mySoftwareSerial)) 55 { 56 Serial.println("Nao inicializado:"); 57 Serial.println("1.Cheque as conexoes do DFPlayer Mini"); 58 Serial.println("2.Insira um cartao SD"); 59 while (true); 60 } 61 Serial.println(); 62 Serial.println("Modulo DFPlayer Mini inicializado!"); 63 64 //Definicoes iniciais 65 myDFPlayer.setTimeOut(500); //Timeout serial 500ms 66 myDFPlayer.volume(30); //Volume 10 67 myDFPlayer.EQ(0); //Equalizacao normal 68 69 //recupera o numero de Msicas encontradas no SD. 70 maxSongs = myDFPlayer.readFileCounts(DFPLAYER_DEVICE_SD); 71 Serial.println(); 72 Serial.print("Numero de arquivos no cartao SD: "); 73 Serial.println(maxSongs); 74 75 76 77 78 79 80 pinMode(Cabeca,OUTPUT); 81 pinMode(Peito,OUTPUT); 82 pinMode(Esquerda,OUTPUT); 83 pinMode(Direito,OUTPUT); 84 85 pinMode(Vcc,OUTPUT); 86 pinMode(Gnd,OUTPUT); 87 88 89 digitalWrite(Gnd,LOW ); 90 digitalWrite(Vcc,HIGH); 91 92 digitalWrite(Cabeca,HIGH); 93 digitalWrite(Peito,HIGH); 94 digitalWrite(Esquerda,HIGH); 95 distancia=ultra.Ranging(CM); 96} 97 98void loop() { 99 Serial.println(String(ultra.Ranging(CM))+" Lendo fora"); 100 distancia=ultra.Ranging(CM); 101 102 103 if((distancia<=150)&&(x==3)) 104 { 105 buf = random(1, 19); 106 107 play(); 108 delay(3000); 109 Serial.println("voltei"); 110 delay(100); 111 while(ultra.Ranging(CM)<=150) 112 { 113 digitalWrite(Esquerda,HIGH); 114 x=2; 115 delay(1200); 116 } 117 118 } 119 else 120 { 121 digitalWrite(Direito,LOW); 122 Serial.println("Nd indentificado"); 123 x=3; 124 } 125 126} 127void play() 128{ 129 digitalWrite(Direito,HIGH); 130 Serial.println("POU"); 131 delay(300); 132 133 digitalWrite(Direito,LOW); 134 delay(300); 135 136 digitalWrite(Direito,HIGH); 137 Serial.println("POU"); 138 delay(300); 139 140 digitalWrite(Direito,LOW); 141 delay(300); 142 143 144 //Aguarda a entrada de dados pela serial 145 while (Serial.available() >= 0) 146 { 147 //Reproducao 148 if ((buf.toInt() >= 1) && (buf.toInt() <= maxSongs)) 149 { 150 151 Serial.print("Reproduzindo musica: "); 152 Serial.println(buf.toInt()); 153// buf = buf - 48; 154 myDFPlayer.play(buf.toInt()); 155 buf=-1; 156 break; 157 } 158 } 159} 160
Homem_de_FerroV5.ino
arduino
1#include <Ultrasonic.h> 2#include "Arduino.h" 3#include "SoftwareSerial.h" 4#include 5 "DFRobotDFPlayerMini.h" 6 7//Inicia a serial por software nos pinos 10 e 11 8SoftwareSerial 9 mySoftwareSerial(6,7); // RX, TX 10 11//Objeto responsvel pela comunicao com o 12 mdulo MP3 (DFPlayer Mini) 13DFRobotDFPlayerMini myDFPlayer; 14 15//varivel responsvel 16 por armazenar os comandos enviados para controlar o player 17String buf; 18//varivel 19 responsvel por armazenar o estado do player (0: tocando ; 1: pausado) 20int pausa 21 = 0; 22//varivel responsvel por armazenar o estado da equalizao 23//varia de 0 24 a 5 25int equalizacao = 0; 26//varivel responsvel por armazenar o total de msicas 27 presentes no SD card. 28int maxSongs = 0; 29 30 31 32#define Gnd 5 // Preto 33#define 34 Echo 4 // Laranja com fita preta 35#define Trig 3 // Preto com fita preta 36#define 37 Vcc 2 // Laranja 38 39Ultrasonic ultra(Trig,Echo); 40 41int distancia; 42/* 43 44 * Rel 1 Cabea 45 * Rel 2 Peito 46 * Rel 3 Brao esquerdo 47 * Rel 4 Brao direito 48 49 */ 50 #define Cabeca 13 51 #define Peito 12 52 #define Esquerda 11 53 54 #define Direito 10 55 int x=3; 56void setup() { 57 //Comunicacao serial com 58 o modulo 59 mySoftwareSerial.begin(9600); 60 //Inicializa a serial do Arduino 61 62 Serial.begin(115200); 63 64 //Verifica se o modulo esta respondendo e se o 65 66 //cartao SD foi encontrado 67 Serial.println(); 68 Serial.println("DFRobot 69 DFPlayer Mini"); 70 Serial.println("Inicializando modulo DFPlayer... (3~5 segundos)"); 71 72 if (!myDFPlayer.begin(mySoftwareSerial)) 73 { 74 Serial.println("Nao inicializado:"); 75 76 Serial.println("1.Cheque as conexoes do DFPlayer Mini"); 77 Serial.println("2.Insira 78 um cartao SD"); 79 while (true); 80 } 81 Serial.println(); 82 Serial.println("Modulo 83 DFPlayer Mini inicializado!"); 84 85 //Definicoes iniciais 86 myDFPlayer.setTimeOut(500); 87 //Timeout serial 500ms 88 myDFPlayer.volume(30); //Volume 10 89 myDFPlayer.EQ(0); 90 //Equalizacao normal 91 92 //recupera o numero de Msicas encontradas no SD. 93 94 maxSongs = myDFPlayer.readFileCounts(DFPLAYER_DEVICE_SD); 95 Serial.println(); 96 97 Serial.print("Numero de arquivos no cartao SD: "); 98 Serial.println(maxSongs); 99 100 101 102 103 104 105 106 pinMode(Cabeca,OUTPUT); 107 pinMode(Peito,OUTPUT); 108 109 pinMode(Esquerda,OUTPUT); 110 pinMode(Direito,OUTPUT); 111 112 pinMode(Vcc,OUTPUT); 113 114 pinMode(Gnd,OUTPUT); 115 116 117 digitalWrite(Gnd,LOW ); 118 digitalWrite(Vcc,HIGH); 119 120 121 digitalWrite(Cabeca,HIGH); 122 digitalWrite(Peito,HIGH); 123 digitalWrite(Esquerda,HIGH); 124 125 distancia=ultra.Ranging(CM); 126} 127 128void loop() { 129 Serial.println(String(ultra.Ranging(CM))+" 130 Lendo fora"); 131 distancia=ultra.Ranging(CM); 132 133 134 if((distancia<=150)&&(x==3)) 135 136 { 137 buf = random(1, 19); 138 139 play(); 140 delay(3000); 141 Serial.println("voltei"); 142 143 delay(100); 144 while(ultra.Ranging(CM)<=150) 145 { 146 digitalWrite(Esquerda,HIGH); 147 148 x=2; 149 delay(1200); 150 } 151 152 } 153 else 154 { 155 156 digitalWrite(Direito,LOW); 157 Serial.println("Nd indentificado"); 158 x=3; 159 160 } 161 162} 163void play() 164{ 165 digitalWrite(Direito,HIGH); 166 Serial.println("POU"); 167 168 delay(300); 169 170 digitalWrite(Direito,LOW); 171 delay(300); 172 173 digitalWrite(Direito,HIGH); 174 175 Serial.println("POU"); 176 delay(300); 177 178 digitalWrite(Direito,LOW); 179 180 delay(300); 181 182 183 //Aguarda a entrada de dados pela serial 184 while 185 (Serial.available() >= 0) 186 { 187 //Reproducao 188 if ((buf.toInt() 189 >= 1) && (buf.toInt() <= maxSongs)) 190 { 191 192 Serial.print("Reproduzindo 193 musica: "); 194 Serial.println(buf.toInt()); 195// buf = buf - 48; 196 197 myDFPlayer.play(buf.toInt()); 198 buf=-1; 199 break; 200 } 201 202 } 203} 204
Downloadable files
Mp3 circuit
Mp3 circuit
Mp3 circuit
Mp3 circuit
Comments