PixelsEscolaSandroMesquitaBianor
Published © GPL3+

Iron Man

In this project, the Iron Man speaks some phrases when you approach.

IntermediateFull instructions provided6,987
Iron Man

Things used in this project

Hardware components

Arduino UNO
Arduino UNO
×1
Jumper wires (generic)
Jumper wires (generic)
×1
Ultrasonic Sensor - HC-SR04 (Generic)
Ultrasonic Sensor - HC-SR04 (Generic)
×1
MP3 MODULE ARDUINO DFPLAYER MIN
×1
4 CHANNEL RELAY
×1

Software apps and online services

Arduino IDE
Arduino IDE

Hand tools and fabrication machines

Hot glue gun (generic)
Hot glue gun (generic)
Soldering iron (generic)
Soldering iron (generic)
Tip Tinner/Cleaner, Lead-Free
Tip Tinner/Cleaner, Lead-Free

Story

Read more

Schematics

Mp3 circuit

Code

Homem_de_FerroV5.ino

Arduino
#include <Ultrasonic.h>
#include "Arduino.h"
#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"

//Inicia a serial por software nos pinos 10 e 11
SoftwareSerial 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 player
String buf;
//varivel responsvel por armazenar o estado do player (0: tocando ; 1: pausado)
int pausa = 0;
//varivel responsvel por armazenar o estado da equalizao
//varia de 0 a 5
int 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 // Laranja

Ultrasonic 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 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");
    while (true);
  }
  Serial.println();
  Serial.println("Modulo DFPlayer Mini inicializado!");

  //Definicoes iniciais
  myDFPlayer.setTimeOut(500); //Timeout serial 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,OUTPUT);
 pinMode(Peito,OUTPUT);
 pinMode(Esquerda,OUTPUT);
 pinMode(Direito,OUTPUT);
 
 pinMode(Vcc,OUTPUT);
 pinMode(Gnd,OUTPUT);

 
 digitalWrite(Gnd,LOW );
 digitalWrite(Vcc,HIGH);
 
 digitalWrite(Cabeca,HIGH);
 digitalWrite(Peito,HIGH);
 digitalWrite(Esquerda,HIGH);
 distancia=ultra.Ranging(CM);
}

void loop() {
  Serial.println(String(ultra.Ranging(CM))+" Lendo fora");
  distancia=ultra.Ranging(CM);
  
 
  if((distancia<=150)&&(x==3))
  {
    buf = random(1, 19);
   
  play();
  delay(3000);
  Serial.println("voltei");
  delay(100);
    while(ultra.Ranging(CM)<=150)
    {
      digitalWrite(Esquerda,HIGH); 
      x=2; 
      delay(1200);
    }
  
  }
  else
  {
  digitalWrite(Direito,LOW);
  Serial.println("Nd indentificado");
  x=3;
  }
  
}
void play()
{
  digitalWrite(Direito,HIGH);
  Serial.println("POU");
  delay(300);
  
  digitalWrite(Direito,LOW);
  delay(300);
  
  digitalWrite(Direito,HIGH);
  Serial.println("POU");
  delay(300);
  
  digitalWrite(Direito,LOW);
  delay(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;
      break;
    }
  }
}

Credits

PixelsEscola

PixelsEscola

14 projects • 69 followers
SandroMesquita

SandroMesquita

14 projects • 113 followers
Professor de robótica com Arduino e Raspberry, estudando e aplicando conhecimentos de I.A. usando a Linguagem Python como base.
Bianor

Bianor

10 projects • 56 followers

Comments