Iron Man
Composants et fournitures
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
Outils et machines nécessaires
| ||||
| ||||
|
Applications et services en ligne
|
À propos de ce projet
Iron Man est un personnage de bande dessinée fictif publié par Marvel Comics. Sa véritable identité est celle de l'homme d'affaires et milliardaire Tony Stark, qui utilise une armure de haute technologie pour lutter contre le crime.
Matériel
- Arduino Uno
- Carte relais 4 canaux
- Module à ultrasons
- Résistance de 330 ohms
- Mini lecteur MP3 modulo
- Câble p2
Étapes
Le but de ce projet est de donner vie à une poupée Iron Man. Nous utilisons un Ardudino Uno pour tout contrôler. Lors de la programmation, nous utilisons la bibliothèque MP3 DFPlayer et appelons la fonction random() pour faire les choix des fichiers audio Iron Man.
L'audio a été tiré des films pessimistes de Tony Stark et a été renommé avec des numéros (001, 002, 003) pour être interprété par le module MP3. Lien de quelques fichiers audio :https://github.com/Sandromesquita/audioIronMan
Lorsqu'une personne s'approche (environ 1,3 m), le module à ultrasons identifie et commande à l'Arduino d'appeler une commande BURF (commande de lecture MP3).
Circuit
Circuit de lampe
Code
- 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//Objeto responsvel 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 armazenar o estado do player (0:tocando; 1:pause)int pause =0;//varivel responsvel por armazenar o estado da equalizao//varia de 0 a 5int equalizacao =0;//varivel responsvel por armazenar o total de msicas presentes no SD card.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 modulo mySoftwareSerial.begin(9600); //Inicializa a serial do 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 segments)"); if (!myDFPlayer.begin(mySoftwareSerial)) { Serial.println("Nao inicializado:"); Serial.println("1.Check as conexoes do DFPlayer Mini"); Serial.println("2.Insira um cartao SD"); tandis que (vrai); } Serial.println(); Serial.println ("Modulo DFPlayer Mini inicializado!"); //Definicoes iniciais myDFPlayer.setTimeOut(500); //Timeout série 500ms myDFPlayer.volume(30); //Volume 10 myDFPlayer.EQ(0); //Equalizacao normal //recupera o numero de Msicas encontradas no SD. maxSongs =myDFPlayer.readFileCounts(DFPLAYER_DEVICE_SD); Serial.println(); Serial.print("Numero de arquivos no cartao SD:"); Serial.println(maxSongs); pinMode(Cabeca,SORTIE); pinMode(Peito,SORTIE); pinMode(Esquerda,SORTIE); pinMode (Direito, SORTIE); pinMode(Vcc,SORTIE); pinMode(Gnd,OUTPUT); digitalWrite(Gnd,LOW ); digitalWrite(Vcc,HIGH); digitalWrite (Cabeca, HAUT); écriture numérique (Peito, HAUT); digitalWrite(Esquerda,HIGH); distancia=ultra.Ranging(CM);}void loop() { Serial.println(String(ultra.Ranging(CM))+"Lendo fora"); distance=ultra.Ranging(CM); if((distance<=150)&&(x==3)) { buf =random(1, 19); jouer(); retard (3000); Serial.println("voltei"); retard (100); while(ultra.Ranging(CM)<=150) { digitalWrite(Esquerda,HIGH); x=2 ; retard (1200); } } else { digitalWrite(Direito,LOW); Serial.println("Nd identifié"); x=3 ; } }void play(){ digitalWrite(Direito,HIGH); Serial.println("POU"); retard (300); digitalWrite(Direito,LOW); retard (300); digitalWrite(Direito,HIGH); Serial.println("POU"); retard (300); digitalWrite(Direito,LOW); retard (300); //Aguarda a entrada de dados pela serial while (Serial.available()>=0) { //Reproducao if ((buf.toInt()>=1) &&(buf.toInt() <=maxSongs)) { Serial .print("Reproduzindo musica:"); Serial.println(buf.toInt());// buf =buf - 48; myDFPlayer.play(buf.toInt()); buf=-1; Pause; } }}
Schémas
Processus de fabrication