Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Een Arduino Iron Man bouwen: onderdelen, sensoren en stapsgewijze handleiding

Onderdelen en benodigdheden

  • 1x Arduino UNO
  • 1x 4-kanaals relay bord
  • 1x Ultrasonische sensor HC-SR04
  • 1x 330 ohm weerstand
  • 1x MP3 module DFPlayer Mini
  • 1x P2 kabel (audio)

Benodigde tools en machines

  • Lijm pistool
  • Solderbout
  • Tin reiniger, loodvrij

Apps en online diensten

  • Arduino IDE

Over dit project

Iron Man is een fictieve stripfiguur van Marvel Comics. Zijn ware identiteit is multimiljonair Tony Stark, die high-tech pantser gebruikt in de strijd tegen misdaad.

Materiaal

  • Arduino Uno
  • 4-kanaals relay bord
  • Ultrasonische module
  • 330 ohm weerstand
  • MP3 DFPlayer Mini module
  • P2 kabel

Stappen

Doel: een Iron Man pop tot leven wekken. De Arduino Uno regelt alles. Bij programmeren gebruiken we de MP3 DFPlayer bibliotheek en de functie random() om willekeurig audiofragmenten af te spelen.

De audiofragmenten stammen uit Tony Stark-filmen, hernoemd naar nummers (001, 002, 003) voor de MP3-module. Link naar audiobestanden: GitHub

Wanneer een persoon zich nader tot ~1,3 meter, detecteert de ultrasoon-module dit en stuurt de Arduino een MP3-afspeelcommando.

Schema

Een Arduino Iron Man bouwen: onderdelen, sensoren en stapsgewijze handleiding
Een Arduino Iron Man bouwen: onderdelen, sensoren en stapsgewijze handleiding
Een Arduino Iron Man bouwen: onderdelen, sensoren en stapsgewijze handleiding

Lampenschakeling

Een Arduino Iron Man bouwen: onderdelen, sensoren en stapsgewijze handleiding
Een Arduino Iron Man bouwen: onderdelen, sensoren en stapsgewijze handleiding

Code

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

// Software serial op pinnen 6 (RX) en 7 (TX)
SoftwareSerial mySoftwareSerial(6, 7);
DFRobotDFPlayerMini myDFPlayer;

String buf;
int pausa = 0;
int equalizacao = 0;
int maxSongs = 0;

#define Gnd 5
#define Echo 4
#define Trig 3
#define Vcc 2

Ultrasonic ultra(Trig, Echo);
int distancia;

#define Cabeca 13
#define Peito 12
#define Esquerda 11
#define Direito 10

int x = 3;

void setup() {
  mySoftwareSerial.begin(9600);
  Serial.begin(115200);
  Serial.println();
  Serial.println("DFRobot DFPlayer Mini");
  Serial.println("Initialiseren module DFPlayer... (3~5 seconden)");
  if (!myDFPlayer.begin(mySoftwareSerial)) {
    Serial.println("Niet geinitialiseerd:");
    Serial.println("1. Controleer DFPlayer Mini verbindingen");
    Serial.println("2. Plaats een SD-kaart");
    while (true);
  }
  Serial.println();
  Serial.println("DFPlayer Mini module geinitialiseerd!");
  myDFPlayer.setTimeOut(500);
  myDFPlayer.volume(30);
  myDFPlayer.EQ(0);
  maxSongs = myDFPlayer.readFileCounts(DFPLAYER_DEVICE_SD);
  Serial.print("Aantal bestanden op SD-kaart: ");
  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)) + " Lezen buiten");
  distancia = ultra.Ranging(CM);
  if ((distancia <= 150) && (x == 3)) {
    buf = String(random(1, 19));
    play();
    delay(3000);
    Serial.println("terug");
    delay(100);
    while (ultra.Ranging(CM) <= 150) {
      digitalWrite(Esquerda, HIGH);
      x = 2;
      delay(1200);
    }
  } else {
    digitalWrite(Direito, LOW);
    Serial.println("Niet gedetecteerd");
    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);

  while (Serial.available() >= 0) {
    int songNum = buf.toInt();
    if ((songNum >= 1) && (songNum <= maxSongs)) {
      Serial.print("Afspelen nummer: ");
      Serial.println(songNum);
      myDFPlayer.play(songNum);
      buf = "-1";
      break;
    }
  }
}

Schema's

Een Arduino Iron Man bouwen: onderdelen, sensoren en stapsgewijze handleiding

Productieproces

  1. Arduino Digitale Dobbelsteen: Bouw Je Eigen LCD-willekeurige Getalgenerator
  2. Find Me: Slimme Item Locator met Arduino en Bluetooth
  3. Bouw een Functionele, Arduino-aangedreven 3D-geprinte Robotarm – Stap-voor-Stap Handleiding
  4. DIY Arduino Luchtbevochtiger Controller met Relais – Veilige Hoogspanningsopstelling
  5. Contactloze temperatuurgate voor snelle, accurate screening
  6. PiBot: De Arduino-aangedreven pianorobot voor precisiemuziek
  7. NeoPixel Matrix Pong op Arduino Nano: Bouw je eigen neon Pong-spel
  8. Realtime Weerstation met Arduino & ThingSpeak IoT
  9. Bouw een Aangepaste Arduino Joystick Stuurwiel voor Gaming
  10. Bouw een krachtige FM-radio ontvanger met Arduino en TEA5767 module
  11. Arduino 101: Bouw een teller met DHT11 sensor & LCD display