Cuprins:

Joker Tank: 5 pași
Joker Tank: 5 pași

Video: Joker Tank: 5 pași

Video: Joker Tank: 5 pași
Video: JOKER Parkour POV Chase in Real Life 2024, Iulie
Anonim
Joke Tank
Joke Tank

Acesta este un proiect pe care l-am făcut la școala mea HKU, care ne-a cerut să facem ceva cu un Arduino Uno. Am vrut să fac ceva care să-mi facă lucrul preferat, să-i facă pe oameni să râdă. Așa că am decis să fac o cutie de glume care să-ți arunce o glumă, dar ce glumă ți-a dat ar depinde de ceea ce măsurau câteva module de senzori în acel moment. Pentru a-l face mai personal, am decis să-l fac un tanc.

Pasul 1: Obținerea pieselor

Părțile de care ar fi nevoie pentru a recrea acest proiect ar fi

  • 1x computer capabil să ruleze Arduino IDE
  • 1x Arduino Uno
  • 1x cablu conector USB pentru Arduino Uno
  • 1x senzor sonar
  • 1x difuzor (de preferat unul de calitate decentă (, am folosit unul pe care l-am scos dintr-un difuzor bluetooth)).
  • 1x modul amplificator LM386 (este posibil să faceți acest lucru singur, dar am folosit un modul).
  • 1x microfon LM393
  • 1x LDR
  • 1x LED (orice culoare va face, dar am folosit albastru).
  • 4x rezistor 1kΩ
  • Rezistor 1x 2, 7kΩ
  • 1x placă de pâine
  • 1x card micro SD (de preferință mic (1 sau 2 gb)).
  • 1x burghiu electric.
  • 1x cap de foraj de 16 mm (de preferință pentru găurirea metalului).
  • 1x cap de foraj de 9 mm (de asemenea, de preferință, realizat pentru găurirea metalului).
  • 1x cap de foraj de 1 mm (din nou, de preferință, realizat pentru găurirea metalului).
  • 1x Model rezervor (am folosit un leopard la scara 1:35 2, dar și alte cazuri ar trebui să fie fine).
  • Superglue / hotglue
  • și destul de multe fire preferabil în culori diferite.
  • legături pentru cablu (opțional).

Pasul 2: Cablare

Cablare
Cablare

Trebuie să începem cu cablarea, imaginea este un desen tehnic al modului în care ar trebui să fie conectat toate acestea. Acest lucru ar trebui să vă servească drept plan. Notă: Toate porturile Arduino sunt numite AP # pentru fiecare port. Arduino este AP4, portul A0 este APA0 și portul 6 ~ este AP6 ~, etc. Toate celelalte porturi sunt denumite așa cum apar pe module.

Pasul 3: Pre-codul lucrurilor

Acum, înainte de a începe să folosim codul, avem nevoie de ceva stuf. Vă recomandăm să urmați acum acest tutorial de la pasul 2 până la 4

www.electronoobs.com/eng_arduino_tut8.php

Cu toate acestea, nu vom folosi codul său, deoarece vom folosi propriul nostru Vă rugăm să rețineți că unele difuzoare folosesc frecvențe diferite. Difuzorul meu a folosit fișiere audio pe 16 biți de 32 kHz. Deci, dacă vorbirea ta face un fel de zgomot, dar nu redă fișierele, încearcă să te joci cu frecvența ta.

Pasul 4: Cod

Acum vom încărca codul pe arduino. Copiați toate acestea și treceți-le în IDE-ul Arduino și încărcați-le pe Arduino.

// include biblioteca pentru cititorul de card SD. # include "Wtv020sd16p.h" // include biblioteca necesară pentru senzorul sonar. #include // Setează pinii pentru Arduino. int resetPin = 4; int clockPin = 5; int dataPin = 6; int busyPin = 7; int soundDetectedPin = 12; int lightDetectedPin = A0; // Setează pinii pentru biblioteca de carduri SD. Wtv020sd16p wtv020sd16p (resetPin, clockPin, dataPin, busyPin); // Setează pinii pentru biblioteca de senzori Sonar. Sonar NewPing (11, 10); // Setează celelalte intrări și setează rata de biți a programului. void setup () {wtv020sd16p.reset (); pinMode (lightDetectedPin, INPUT); pinMode (soundDetectedPin, INPUT); Serial.begin (9600); } // Partea principală a programului. void loop () {// Setează intergerele în lightDetectedVal = analogRead (lightDetectedPin); int distanceVal = sonar.ping_cm (); int soundDetectedVal = digitalRead (soundDetectedPin); // Întârziere, astfel încât proiectul să nu folosească infinit difuzorul. întârziere (30000); // Imprimare în serie și linii de imprimare, astfel încât să puteți vedea cu ușurință ce valori iau modulele senzorilor. Serial.print ("Valoarea sunetului"); // Mai multe instrucțiuni if, astfel încât programul să redea diferite fișiere audio, în funcție de valori, sunt măsurate de modulele senzorului. if (soundDetectedVal == 0) {Serial.println (soundDetectedVal); Serial.print ("Distanță:"); if (distanceVal == 0) {Serial.println (distanceVal); Serial.print ("Valoarea luminii:"); if (lightDetectedVal> = 1000) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (1); // O altă imprimare în serie, astfel încât să puteți vedea ce fișier audio exact a fost redat. Serial.println ("1 --------"); // O altă întârziere pentru a lăsa fișierul audio să fie redat pe toată lungimea. întârziere (5000); } else if (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (2); Serial.println ("2 --------"); întârziere (5000); } else if (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (3); Serial.println ("3 --------"); întârziere (5000); } else if (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (4); Serial.println ("4 --------"); întârziere (5000); } else if (lightDetectedVal> = 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (5); Serial.println ("5 --------"); întârziere (5000); } else if (lightDetectedVal> = 500 || lightDetectedVal 0 || distanceVal == NULL) {Serial.println (distanceVal); Serial.print ("Valoarea luminii:"); if (lightDetectedVal> = 1000) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (7); Serial.println ("7 --------"); întârziere (5000); } else if (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (8); Serial.println ("8 --------"); întârziere (8000); } else if (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (9); Serial.println ("9 --------"); întârziere (5000); } else if (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (10); Serial.println ("10 -------"); întârziere (8000); } else if (lightDetectedVal> = 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (11); Serial.println ("11 -------"); întârziere (6000); } else if (lightDetectedVal> = 500 || lightDetectedVal <= 1000) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (13); Serial.println ("13 -------"); întârziere (5000); } else if (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (14); Serial.println ("14 -------"); întârziere (5000); } else if (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (15); Serial.println ("15 -------"); întârziere (5000); } else if (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (16); Serial.println ("16 -------"); întârziere (5000); } else if (lightDetectedVal> = 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (17); Serial.println ("17 -------"); întârziere (5000); } else if (lightDetectedVal> = 500 || lightDetectedVal 0 || distanceVal == NULL || distanceVal> = 150) {Serial.println (distanceVal); Serial.print ("Valoarea luminii:"); if (lightDetectedVal> = 1000) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (19); Serial.println ("19 -------"); întârziere (5000); } else if (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (20); Serial.println ("20 -------"); întârziere (5000); } else if (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (21); Serial.println ("21 -------"); întârziere (5000); } else if (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (22); Serial.println ("22 -------"); întârziere (5000); } else if (lightDetectedVal> = 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (23); Serial.println ("23 -------"); întârziere (5000); } else if (lightDetectedVal> = 500 || lightDetectedVal << 500) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (24); Serial.println ("24 -------"); întârziere (5000); }}}}

Pasul 5: Cazul

Cazul
Cazul
Cazul
Cazul

Acum vine partea reală complicată.

Montarea tuturor în cazul poate fi un pic dificil, acest lucru depinde de modul în care ați montat totul pe panoul dvs. sau de modul în care ați vândut lucrurile împreună. Dar va trebui să faceți câteva găuri pentru ca senzorii să se lipească. Am pus microfonul (este nevoie de un burghiu de 9 mm) și modulul sonar (este necesar un burghiu de 6 mm) în spate și LDR în partea din față a rezervorului, dar le puteți pune efectiv oricând, dacă aveți spațiu.

Asigurați-vă că tăiați o gaură în corpul modelului pentru a vă putea conecta arduino-ul cu cablul conectorului.

Aș recomanda să puneți difuzorul în turelă. deoarece ar trebui să rămână mult spațiu acolo.

Imaginea din stânga de mai sus este modul în care am montat arduino și imprimarea pe care am lipit-o în interiorul modelului Leopard 2. Imaginea din dreapta este una cu cea mai mare parte a cablajului montat.

Ce puteți face este să găuriți mici găuri în partea de jos a modelului pentru a fixa Arduino cu legături de cablu.

Dar dacă nu mă înșel, acum ar trebui să fi terminat.

Recomandat: