Sommario:

Carro armato scherzoso: 5 passaggi
Carro armato scherzoso: 5 passaggi

Video: Carro armato scherzoso: 5 passaggi

Video: Carro armato scherzoso: 5 passaggi
Video: Come rubare un carro armato da Fort Zancudo su #GTA5 🔫 2024, Dicembre
Anonim
Carro armato scherzoso
Carro armato scherzoso

Questo è un progetto che ho realizzato nella mia scuola, l'HKU, che richiedeva di realizzare qualcosa con un Arduino Uno. Volevo fare qualcosa che facesse la mia cosa preferita, che facesse ridere la gente. Quindi ho deciso di creare una scatola degli scherzi che ti facesse uno scherzo, ma lo scherzo che ti dava dipendeva da ciò che un paio di moduli sensore stavano misurando in quel determinato momento. Per renderlo più personale ho deciso di farne un carro armato.

Passaggio 1: ottenere le parti

Le parti che ti servirebbero per ricreare questo progetto sarebbero

  • 1x computer in grado di eseguire Arduino IDE
  • 1x Arduino Uno
  • 1x cavo connettore USB per Arduino Uno
  • 1x sensore sonar
  • 1x altoparlante (preferibilmente di qualità decente (, ne ho usato uno che ho estratto da un altoparlante bluetooth)).
  • 1x modulo amplificatore LM386 (è possibile farlo da soli ma ho usato un modulo).
  • 1x microfono LM393
  • 1x LDR
  • 1x LED (qualsiasi colore andrà bene, ma ho usato il blu).
  • 4x 1kΩ resistore
  • 1x 2, 7kΩ resistore
  • 1x tagliere
  • 1x scheda micro SD (preferibilmente piccola (1 o 2 GB)).
  • 1x trapano elettrico.
  • 1x punta da 16 mm (preferibilmente realizzata per forare il metallo).
  • 1x punta da 9 mm (preferibilmente realizzata anche per forare il metallo).
  • 1x punta da 1 mm (di nuovo preferibilmente realizzata per la perforazione del metallo).
  • 1x carro armato modello (ho usato un leopardo 2 in scala 1:35 ma anche altri casi dovrebbero andare bene).
  • Supercolla / colla a caldo
  • e parecchi fili preferibilmente in diversi colori.
  • fascette per cavi (opzionale).

Passaggio 2: cablaggio

Cablaggio
Cablaggio

Dobbiamo iniziare con il cablaggio, l'immagine è un disegno tecnico di come dovrebbe essere cablato. Questo dovrebbe servire come progetto. Nota: tutte le porte Arduino sono denominate AP# per ciascuna porta. Quindi la quarta porta sul Arduino è AP4, la porta A0 è APA0 e la porta 6~ è AP6~, ecc. Tutte le altre porte sono denominate come appaiono sui moduli stessi.

Passaggio 3: cose pre-codificate

Ora, prima di poter iniziare a utilizzare il codice, abbiamo bisogno di alcune cose. Ti consiglio di seguire questo tutorial dell'uomo dal passaggio 2 al 4

www.electronobs.com/eng_arduino_tut8.php

Tuttavia, non utilizzeremo il suo codice poiché utilizzeremo il nostro. Si noti che alcuni altoparlanti utilizzano frequenze diverse. Il mio altoparlante utilizzava file audio a 16 bit a 32 kHz. Quindi, se il tuo discorso emette un qualche tipo di rumore ma non riproduce i tuoi file, prova a giocare con la tua frequenza.

Passaggio 4: codice

Ora caricheremo il codice su arduino. Copia tutto questo e incollalo nell'IDE di Arduino e caricalo sul tuo Arduino.

//include la libreria per il lettore di schede SD.#include "Wtv020sd16p.h" //include la libreria necessaria per il sensore sonar. #include //Imposta i pin per Arduino. int resetPin = 4; int clockPin = 5; int dataPin = 6; int occupatoPin = 7; int soundDetectedPin = 12; int lightDetectedPin = A0; //Imposta i pin per la libreria della scheda SD. Wtv020sd16p wtv020sd16p (resetPin, clockPin, dataPin, occupatoPin); //Imposta i pin per la libreria dei sensori Sonar. Sonar NewPing(11, 10); //Imposta gli altri ingressi e imposta il bitrate del programma. void setup() { wtv020sd16p.reset(); pinMode(lightDetectedPin, INPUT); pinMode(soundDetectedPin, INPUT); Serial.begin(9600); } //Parte principale del programma. void loop() { //Imposta gli interi int lightDetectedVal = analogRead(lightDetectedPin); int distanceVal = sonar.ping_cm(); int soundDetectedVal = digitalRead(soundDetectedPin); //Ritarda in modo che il progetto il progetto non continui a utilizzare l'altoparlante all'infinito. ritardo (30000); //Stampa seriale e linee di stampa in modo da poter vedere facilmente quali valori vengono presi dai moduli sensore. Serial.print("Valore sonoro: "); //Dichiarazioni if multiple in modo che il programma riproduca file audio diversi a seconda dei valori misurati dai moduli sensore. if (soundDetectedVal == 0) { Serial.println(soundDetectedVal); Serial.print("Distanza: "); if (distanceVal == 0) { Serial.println(distanceVal); Serial.print("Valore chiaro: "); if (lightDetectedVal >= 1000) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(1); //Un'altra stampa seriale in modo da poter vedere quale file audio esatto è stato riprodotto. Serial.println("1--------"); //Un altro ritardo per far riprodurre il file audio a tutta lunghezza. ritardo (5000); } else if (lightDetectedVal >= 900) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(2); Serial.println("2--------"); ritardo (5000); } else if (lightDetectedVal >= 800) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(3); Serial.println("3--------"); ritardo (5000); } else if (lightDetectedVal >= 700) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(4); Serial.println("4--------"); ritardo (5000); } else if (lightDetectedVal >= 600) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(5); Serial.println("5--------"); ritardo (5000); } else if (lightDetectedVal >= 500 || lightDetectedVal 0 || distanceVal == NULL) { Serial.println(distanceVal); Serial.print("Valore chiaro: "); if (lightDetectedVal >= 1000) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(7); Serial.println("7--------"); ritardo (5000); } else if (lightDetectedVal >= 900) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(8); Serial.println("8--------"); ritardo (8000); } else if (lightDetectedVal >= 800) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(9); Serial.println("9--------"); ritardo (5000); } else if (lightDetectedVal >= 700) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(10); Serial.println("10-------"); ritardo (8000); } else if (lightDetectedVal >= 600) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(11); Serial.println("11-------"); ritardo (6000); } else if (lightDetectedVal >= 500 || lightDetectedVal <= 1000) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(13); Serial.println("13-------"); ritardo (5000); } else if (lightDetectedVal >= 900) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(14); Serial.println("14-------"); ritardo (5000); } else if (lightDetectedVal >= 800) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(15); Serial.println("15-------"); ritardo (5000); } else if (lightDetectedVal >= 700) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(16); Serial.println("16-------"); ritardo (5000); } else if (lightDetectedVal >= 600) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(17); Serial.println("17-------"); ritardo (5000); } else if (lightDetectedVal >= 500 || lightDetectedVal 0 || distanceVal == NULL || distanceVal >= 150) { Serial.println(distanceVal); Serial.print("Valore chiaro: "); if (lightDetectedVal >= 1000) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(19); Serial.println("19-------"); ritardo (5000); } else if (lightDetectedVal >= 900) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(20); Serial.println("20-------"); ritardo (5000); } else if (lightDetectedVal >= 800) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(21); Serial.println("21-------"); ritardo (5000); } else if (lightDetectedVal >= 700) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(22); Serial.println("22-------"); ritardo (5000); } else if (lightDetectedVal >= 600) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(23); Serial.println("23-------"); ritardo (5000); } else if (lightDetectedVal >= 500 || lightDetectedVal << 500) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(24); Serial.println("24-------"); ritardo (5000); } } } }

Passaggio 5: il caso

Il caso
Il caso
Il caso
Il caso

Ora arriva la vera parte complicata.

Montare tutto nella custodia potrebbe essere un po' complicato, questo dipende da come hai montato tutto sulla breadboard o da come hai saldato le cose insieme. Ma dovrai fare un paio di fori per far aderire i sensori. Ho messo il microfono (necessario trapano da 9 mm) e il modulo sonar (necessario trapano da 6 mm) nella parte posteriore e l'LDR nella parte anteriore del serbatoio, ma puoi metterli efficacemente ovunque se hai lo spazio.

Assicurati di praticare un foro nel corpo del modello per poter collegare il tuo arduino con il cavo del connettore.

Consiglierei di mettere l'altoparlante nella torretta. come dovrebbe esserci molto spazio lasciato lì.

L'immagine sopra a sinistra è come ho montato l'arduino e la stampa che ho saldato all'interno del modello Leopard 2. L'immagine a destra è quella con la maggior parte dei cavi montati.

Quello che puoi fare è praticare piccoli fori nella parte inferiore del modello per fissare l'Arduino con delle fascette.

Ma se non mi sbaglio, ora dovresti aver finito.

Consigliato: