Kazalo:
- Korak: Pridobite dele
- 2. korak: Ožičenje
- 3. korak: Pred kodiranje stvari
- 4. korak: Koda
- 5. korak: Primer
Video: Šaljivi tank: 5 korakov
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:05
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
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
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:
Kako sestaviti SMARS robota - Arduino Smart Robot Tank Bluetooth: 16 korakov (s slikami)
Kako sestaviti SMARS Robot - Arduino Smart Robot Tank Bluetooth: Ta članek ponosno sponzorira PCBWAY. PCBWAY izdeluje visokokakovostne prototipe PCB -jev za ljudi po vsem svetu. Poskusite sami in dobite 10 PCB -jev za samo 5 USD na PCBWAY z zelo kakovostjo, hvala PCBWAY. Motorni ščit za Arduino Uno
Domači krmilnik kamere Tank Robot: 5 korakov
Tank Robot Homemade Camera Controller: Pozdravljeni, danes bom naredil robotski rezervoar s fotoaparatom, zelo preprosto, samo vzemite ga za roko in izkoristite vse okoli sebe ali pustite, da bo res zanimivo, verjemite mi …… … ZAČNI ZDAJ
CD predvajalnik Fish Tank: 14 korakov
CD predvajalnik Fish Tank: CD predvajalnik v akvariju. Dobrodošli na moji spletni strani za več zabavnih stvariwww.sunnyspeed.comhvala
Raspberry Pi 3 FPV Lego Tank: 5 korakov (s slikami)
Raspberry Pi 3 FPV Lego Tank: Lego je odličen za poučevanje otrok o tem, kako stvari delujejo, hkrati pa jim omogoča zabavo. Vem, da sem vedno užival v " igranju " z legom, ko sem bil še otrok. Ta navodila opisujejo, kako sem iz … izdelal rezervoar FPV (pogled prve osebe)
PiTanq - Robot -tank z Raspberry Pi in Python za učenje AI: 10 korakov
PiTanq-Robot-tank z Raspberry Pi in Python za učenje AI: Pitanq je robot-tank s kamero, ki jo poganja Raspberry Pi. Njegov namen je pomagati pri učenju umetne inteligence samovozečega. AI na rezervoarju podpirata OpenCV in Tensoflow, izdelana posebej za Raspbian Jessie. Na podlagi trdnega aluminija