鉄人
コンポーネントと消耗品
> |
| × | 1 | |||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
必要なツールとマシン
> |
| |||
| ||||
|
アプリとオンラインサービス
> |
|
このプロジェクトについて
アイアンマンは、マーベルコミックスが発行する架空の漫画のキャラクターです。彼の正体は、犯罪との戦いでハイテク鎧を使用するビジネスマンで億万長者のトニースタークのアイデンティティです。
資料
- Arduino Uno
- 4チャンネルリレーボード
- 超音波モジュール
- 330オームの抵抗器
- Modulo miniMP3プレーヤー
- ケーブルp2
手順
このプロジェクトの目的は、アイアンマン人形に命を吹き込むことです。 ArdudinoUnoを使用してすべてを制御します。プログラミング時には、MP3 DFPlayerライブラリを使用し、関数random()を呼び出して、IronManオーディオファイルを選択します。
オーディオはトニースタークの悲観的な映画から取られ、MP3モジュールによって実行されるように番号(001、002、003)に名前が変更されました。一部のauddioファイルのリンク:https://github.com/Sandromesquita/audioIronMan
人が近づくと(約1.3m)、超音波モジュールがArduinoを識別して命令し、BURFコマンド(MP3再生コマンド)を呼び出します。
回路 <図> >
<図> >
<図> >
ランプ回路 <図> >
<図>
コード
- Homem_de_FerroV5.ino
Homem_de_FerroV5.ino Arduino
#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: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 presents 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(){// Communicacao serial com o modulo mySoftwareSerial.begin(9600); //シリアルをInicializaするArduinoSerial.begin(115200); // Verifica se o modulo esta responseendo 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.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); //タイムアウトシリアル500msmyDFPlayer.volume(30); //ボリューム10myDFPlayer.EQ(0); //イコライザーノーマル// recupera o numero de Msicas encontradas noSD。 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);演奏する(); 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;壊す; }}}
回路図
製造プロセス