Kazalo:

Šaljivi tank: 5 korakov
Šaljivi tank: 5 korakov

Video: Šaljivi tank: 5 korakov

Video: Šaljivi tank: 5 korakov
Video: TANK RUSSIA OR TANK CHINA? #shorts 2024, November
Anonim
Šaljivi tank
Šaljivi tank

To je projekt, ki sem ga naredil na svoji šoli HKU in je od nas zahteval, da naredimo nekaj z Arduino Uno. Želel sem narediti nekaj, kar bi mi prineslo najljubšo stvar, nasmejalo ljudi. Zato sem se odločil, da naredim šaljivo polje, s katerim bi se pošalil, toda kakšen vic bi vam dal, bi bilo odvisno od tega, kaj je v tistem trenutku merilo nekaj senzorskih modulov. Da bi bilo bolj osebno, sem se odločil, da bom naredil tank.

Korak: Pridobite dele

Deli, ki bi jih potrebovali za ponovno ustvarjanje tega projekta, bi bili

  • 1x računalnik, ki lahko poganja Arduino IDE
  • 1x Arduino Uno
  • 1x USB priključni kabel za Arduino Uno
  • 1x senzor sonarja
  • 1x zvočnik (po možnosti tisti, ki je dostojne kakovosti (uporabil sem enega, ki sem ga izvlekel iz zvočnika bluetooth)).
  • 1x ojačevalni modul LM386 (to lahko naredite sami, vendar sem uporabil modul).
  • 1x LM393 mikrofon
  • 1x LDR
  • 1x LED (vsaka barva bo ustrezala, vendar sem uporabil modro).
  • 4x 1kΩ upor
  • 1x 2, 7 kΩ upor
  • 1x deska
  • 1x kartica micro SD (po možnosti majhna (1 ali 2 gb)).
  • 1x električni vrtalnik.
  • 1x 16 mm vrtalna glava (po možnosti izdelana za vrtanje kovine).
  • 1x vrtalna glava 9 mm (po možnosti tudi za vrtanje kovine).
  • 1x 1 mm vrtalna glava (ponovno za vrtanje kovine).
  • 1x model rezervoarja (uporabil sem leopard 2 v merilu 1:35, vendar bi morali biti tudi drugi primeri v redu).
  • Superlepilo / vroče lepilo
  • in kar nekaj žic po možnosti v različnih barvah.
  • kabelske vezice (neobvezno).

2. korak: Ožičenje

Ožičenje
Ožičenje

Začeti moramo z ožičenjem, slika je tehnična risba, kako naj se vse ožiči. To bi moralo služiti kot vaš načrt. Opomba: Vsa vrata Arduino so za vsa vrata imenovana AP#. Torej 4. vrata na Arduino je AP4, vrata A0 so APA0 in vrata 6 ~ so AP6 ~ itd. Vsa druga vrata so poimenovana tako, kot so prikazana na samih modulih.

3. korak: Pred kodiranje stvari

Zdaj, preden lahko začnemo uporabljati kodo, potrebujemo nekaj študentov.

www.electronoobs.com/eng_arduino_tut8.php

Vendar njegove kode ne bomo uporabljali, saj bomo uporabljali svojo. Upoštevajte, da nekateri zvočniki uporabljajo različne frekvence. Moj zvočnik je uporabljal 16-bitne 32kHz zvočne datoteke. Če torej govorite, povzroča hrup, vendar ne predvaja datotek, se poskusite igrati s svojo frekvenco.

4. korak: Koda

Zdaj bomo kodo naložili v arduino, vse to prekopirajte in prenesite v Arduino IDE in naložite v svoj Arduino.

// vključuje knjižnico za bralnik kartic SD.#include "Wtv020sd16p.h" // vključuje knjižnico, potrebno za senzor sonarja. #include // Nastavi zatiče za Arduino. int resetPin = 4; int clockPin = 5; int dataPin = 6; int busyPin = 7; int soundDetectedPin = 12; int lightDetectedPin = A0; // Nastavi zatiče za knjižnico kartic SD. Wtv020sd16p wtv020sd16p (resetPin, clockPin, dataPin, busyPin); // Nastavi zatiče za knjižnico senzorjev Sonar. Sonar NewPing (11, 10); // Nastavi druge vhode in nastavi bitno hitrost programa. void setup () {wtv020sd16p.reset (); pinMode (lightDetectedPin, INPUT); pinMode (soundDetectedPin, INPUT); Serial.begin (9600); } // Glavni del programa. void loop () {// Nastavi vmesna števila int lightDetectedVal = analogRead (lightDetectedPin); int distanceVal = sonar.ping_cm (); int soundDetectedVal = digitalno branje (soundDetectedPin); // Zamuda, da projekt ne bo neskončno uporabljal zvočnika. zamuda (30000); // Serijsko tiskanje in vrstice za tiskanje, tako da lahko preprosto vidite, katere vrednosti vzamejo senzorski moduli. Serial.print ("Zvočna vrednost:"); // Več stavkov if, tako da program predvaja različne zvočne datoteke, odvisno od vrednosti, ki jih merijo senzorski moduli. if (soundDetectedVal == 0) {Serial.println (soundDetectedVal); Serial.print ("Razdalja:"); if (distanceVal == 0) {Serial.println (distanceVal); Serial.print ("Svetlobna vrednost:"); if (lightDetectedVal> = 1000) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (1); // Še en serijski natis, tako da lahko vidite, kakšna zvočna datoteka je bila predvajana. Serial.println ("1 --------"); // Še ena zamuda pri predvajanju zvočne datoteke po polni dolžini. zamuda (5000); } else if (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (2); Serial.println ("2 --------"); zamuda (5000); } else if (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (3); Serial.println ("3 --------"); zamuda (5000); } else if (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (4); Serial.println ("4 --------"); zamuda (5000); } else if (lightDetectedVal> = 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (5); Serial.println ("5 --------"); zamuda (5000); } drugače če (lightDetectedVal> = 500 || lightDetectedVal 0 || distanceVal == NULL) {Serial.println (distanceVal); Serial.print ("Svetlobna vrednost:"); if (lightDetectedVal> = 1000) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (7); Serial.println ("7 --------"); zamuda (5000); } else if (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (8); Serial.println ("8 --------"); zamuda (8000); } else if (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (9); Serial.println ("9 --------"); zamuda (5000); } else if (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (10); Serial.println ("10 -------"); zamuda (8000); } else if (lightDetectedVal> = 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (11); Serial.println ("11 -------"); zamuda (6000); } else if (lightDetectedVal> = 500 || lightDetectedVal <= 1000) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (13); Serial.println ("13 -------"); zamuda (5000); } else if (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (14); Serial.println ("14 -------"); zamuda (5000); } else if (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (15); Serial.println ("15 -------"); zamuda (5000); } else if (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (16); Serial.println ("16 -------"); zamuda (5000); } else if (lightDetectedVal> = 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (17); Serial.println ("17 -------"); zamuda (5000); } drugače če (lightDetectedVal> = 500 || lightDetectedVal 0 || distanceVal == NULL || distanceVal> = 150) {Serial.println (distanceVal); Serial.print ("Svetlobna vrednost:"); if (lightDetectedVal> = 1000) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (19); Serial.println ("19 -------"); zamuda (5000); } else if (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (20); Serial.println ("20 -------"); zamuda (5000); } else if (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (21); Serial.println ("21 -------"); zamuda (5000); } else if (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (22); Serial.println ("22 -------"); zamuda (5000); } else if (lightDetectedVal> = 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (23); Serial.println ("23 -------"); zamuda (5000); } else if (lightDetectedVal> = 500 || lightDetectedVal << 500) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (24); Serial.println ("24 -------"); zamuda (5000); }}}}

5. korak: Primer

Primer
Primer
Primer
Primer

Zdaj pride na vrsto zapleten del.

Namestitev vsega v ohišje je lahko nekoliko zapletena, odvisno od tega, kako ste vse namestili na svojo ploščo ali kako ste spajali stvari skupaj. Vendar boste morali narediti nekaj lukenj, da se senzorji dobro držijo. Mikrofon (potreben je 9 -milimetrski vrtalnik) in modul sonarja (potreben 6 -milimetrski vrtalnik) sem postavil zadaj, LDR pa spredaj, vendar jih lahko učinkovito postavite, če imate prostor.

Ne pozabite izrezati luknje v ohišju modela, da lahko povežete svoj arduino s priključnim kablom.

Priporočam, da govornika postavite v stolp. saj bi moralo biti tam dovolj prostora.

Zgornja leva slika prikazuje, kako sem namestil arduino in tisk, ki sem ga spajkal v modelu Leopard 2. Desna slika je ena z večino ožičenja.

Kar lahko storite, je, da na dnu modela izvrtate majhne luknje, da Arduino pritrdite s kabelskimi vezmi.

Če pa se ne motim, bi to morali storiti.

Priporočena: