Sadržaj:

Šaljivi tenk: 5 koraka
Šaljivi tenk: 5 koraka

Video: Šaljivi tenk: 5 koraka

Video: Šaljivi tenk: 5 koraka
Video: ЗАКРИЧАЛ – ПОТЕРЯЛ ₽200.000 / ТРЭШКЭШ: Тишина 2024, Novembar
Anonim
Joking Tank
Joking Tank

Ovo je projekt koji sam radio u svojoj školi HKU, a za koji smo trebali napraviti nešto s Arduino Uno. Htela sam da napravim nešto što bi mi učinilo najdražu stvar, nasmejala ljude. Odlučio sam napraviti šaljivu kutiju koja bi vas bacila na šalu, ali koja će vam to šala ovisiti o tome šta je par senzorskih modula mjerilo u tom određenom trenutku. Da bih bio ličniji, odlučio sam da napravim tenk.

Korak 1: Dobijanje dijelova

Dijelovi koji bi vam bili potrebni za ponovno stvaranje ovog projekta bili bi

  • 1x računar koji može pokrenuti Arduino IDE
  • 1x Arduino Uno
  • 1x USB priključni kabel za Arduino Uno
  • 1x senzor sonara
  • 1x zvučnik (poželjno jedan pristojnog kvaliteta (koristio sam jedan koji sam izvukao iz bluetooth zvučnika)).
  • 1x modul pojačala LM386 (moguće ga je napraviti i sam, ali sam koristio modul).
  • 1x LM393 Mikrofon
  • 1x LDR
  • 1x LED (bilo koja boja će biti dovoljna, ali ja sam koristio plavu).
  • 4x 1kΩ otpornik
  • 1x 2, 7kΩ otpornik
  • 1x Oglasna ploča
  • 1x mikro SD kartica (po mogućnosti mala (1 ili 2 gb)).
  • 1x Električna bušilica.
  • 1x 16 mm bušilica (po mogućnosti za bušenje metala).
  • 1x bušilica od 9 mm (takođe poželjno za bušenje metala).
  • 1x bušilica od 1 mm (ponovo poželjno za bušenje metala).
  • 1x Model tenka (koristio sam leopard 2 u mjerilu 1:35, ali i drugi slučajevi bi trebali biti u redu).
  • Superglue / hotglue
  • i dosta žica po mogućnosti u različitim bojama.
  • kabelske vezice (opcionalno).

Korak 2: Ožičenje

Ožičenje
Ožičenje

Moramo početi s ožičenjem, slika je tehnički crtež kako sve to treba ožičiti. Ovo bi trebalo poslužiti kao vaš nacrt. Napomena: Svi Arduino portovi imaju naziv AP# za svaki port. Dakle, 4. port na Arduino je AP4, port A0 je APA0, a port 6 ~ je AP6 ~ itd. Svi ostali portovi su imenovani onako kako se pojavljuju na samim modulima.

Korak 3: Stvari pred kodiranjem

Prije nego što počnemo koristiti kôd, treba nam nešto. Preporučujem da sada slijedite ovaj vodič za muškarce od koraka 2 do 4

www.electronoobs.com/eng_arduino_tut8.php

Međutim, nećemo koristiti njegov kôd jer ćemo koristiti vlastiti. Imajte na umu da neki zvučnici koriste različite frekvencije. Moj zvučnik je koristio 16-bitne 32kHz audio datoteke. Dakle, ako vaš govor stvara neku vrstu buke, ali ne reproducira vaše datoteke, pokušajte se igrati sa svojom frekvencijom.

Korak 4: Kodirajte

Sada ćemo prenijeti kod na arduino. Kopirajte sve ovo i prebacite ga u Arduino IDE i postavite ga na svoj Arduino.

// uključuje biblioteku za čitač SD kartica.#include "Wtv020sd16p.h" // uključuje biblioteku potrebnu za senzor sonara. #include // Postavlja pinove za Arduino. int resetPin = 4; int clockPin = 5; int dataPin = 6; int busyPin = 7; int soundDetectedPin = 12; int lightDetectedPin = A0; // Postavlja pinove za biblioteku SD kartice. Wtv020sd16p wtv020sd16p (resetPin, clockPin, dataPin, busyPin); // Postavlja pinove za biblioteku sonarskih senzora. Sonar NewPing (11, 10); // Postavlja ostale ulaze i postavlja bitrate programa. void setup () {wtv020sd16p.reset (); pinMode (lightDetectedPin, INPUT); pinMode (soundDetectedPin, INPUT); Serial.begin (9600); } // Glavni dio programa. void loop () {// Postavlja međurede int lightDetectedVal = analogRead (lightDetectedPin); int distanceVal = sonar.ping_cm (); int soundDetectedVal = digitalno čitanje (soundDetectedPin); // Odgoda tako da projekt projekt beskonačno neće nastaviti koristiti zvučnik. kašnjenje (30000); // Serijsko ispisivanje i linije ispisa tako da možete jednostavno vidjeti koje vrijednosti prihvaćaju senzorski moduli. Serial.print ("Zvučna vrijednost:"); // Više if naredbi tako da program reproducira različite audio datoteke ovisno o vrijednostima koje se mjere senzorskim modulima. if (soundDetectedVal == 0) {Serial.println (soundDetectedVal); Serial.print ("Udaljenost:"); if (distanceVal == 0) {Serial.println (distanceVal); Serial.print ("Lagana vrijednost:"); if (lightDetectedVal> = 1000) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (1); // Još jedan serijski ispis tako da možete vidjeti koja je točno audio datoteka reproducirana. Serial.println ("1 --------"); // Još jedno kašnjenje za puštanje audio datoteke pune dužine. kašnjenje (5000); } else if (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (2); Serial.println ("2 --------"); kašnjenje (5000); } else if (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (3); Serial.println ("3 --------"); kašnjenje (5000); } else if (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (4); Serial.println ("4 --------"); kašnjenje (5000); } else if (lightDetectedVal> = 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (5); Serial.println ("5 --------"); kašnjenje (5000); } else if (lightDetectedVal> = 500 || lightDetectedVal 0 || distanceVal == NULL) {Serial.println (distanceVal); Serial.print ("Lagana vrijednost:"); if (lightDetectedVal> = 1000) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (7); Serial.println ("7 --------"); kašnjenje (5000); } else if (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (8); Serial.println ("8 --------"); kašnjenje (8000); } else if (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (9); Serial.println ("9 --------"); kašnjenje (5000); } else if (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (10); Serial.println ("10 -------"); kašnjenje (8000); } else if (lightDetectedVal> = 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (11); Serial.println ("11 -------"); kašnjenje (6000); } else if (lightDetectedVal> = 500 || lightDetectedVal <= 1000) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (13); Serial.println ("13 -------"); kašnjenje (5000); } else if (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (14); Serial.println ("14 -------"); kašnjenje (5000); } else if (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (15); Serial.println ("15 -------"); kašnjenje (5000); } else if (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (16); Serial.println ("16 -------"); kašnjenje (5000); } else if (lightDetectedVal> = 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (17); Serial.println ("17 -------"); kašnjenje (5000); } else if (lightDetectedVal> = 500 || lightDetectedVal 0 || distanceVal == NULL || distanceVal> = 150) {Serial.println (distanceVal); Serial.print ("Lagana vrijednost:"); if (lightDetectedVal> = 1000) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (19); Serial.println ("19 -------"); kašnjenje (5000); } else if (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (20); Serial.println ("20 -------"); kašnjenje (5000); } else if (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (21); Serial.println ("21 -------"); kašnjenje (5000); } else if (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (22); Serial.println ("22 -------"); kašnjenje (5000); } else if (lightDetectedVal> = 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (23); Serial.println ("23 -------"); kašnjenje (5000); } else if (lightDetectedVal> = 500 || lightDetectedVal << 500) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (24); Serial.println ("24 -------"); kašnjenje (5000); }}}}

Korak 5: Slučaj

Slučaj
Slučaj
Slučaj
Slučaj

Sada slijedi stvarni komplicirani dio.

Uklapanje svega u kućište može biti pomalo nezgodno, ovisno o tome kako ste sve uklopili na svoju ploču ili kako ste spajali stvari. Ali morat ćete napraviti nekoliko rupa kako bi se senzori zalijepili. Stavio sam mikrofon (potrebna bušilica od 9 mm) i modul sonara (potrebna bušilica od 6 mm) straga, a LDR ispred prednje strane spremnika, ali možete ih staviti efikasno, ako imate prostora.

Obavezno izrežite rupu na tijelu modela kako biste mogli povezati svoj arduino s priključnim kabelom.

Preporučio bih postavljanje zvučnika u kupolu. jer tamo treba ostaviti dovoljno prostora.

Lijeva gornja slika prikazuje kako sam ugradio arduino i otisak koji sam lemio unutar modela Leopard 2. Desna slika je ona s većinom ožičenja.

Ono što možete učiniti je izbušiti male rupe na dnu modela kako biste Arduino pričvrstili kabelskim vezicama.

Ali ako se ne varam, sada biste trebali učiniti.

Preporučuje se: