Turinys:

Joking Tank: 5 žingsniai
Joking Tank: 5 žingsniai

Video: Joking Tank: 5 žingsniai

Video: Joking Tank: 5 žingsniai
Video: НОЧЬ В СТРАШНОМ ДОМЕ С ДЕМОНОМ / НЕ СТОИЛО СЮДА ПРИХОДИТЬ 2024, Lapkritis
Anonim
Joking Tank
Joking Tank

Tai projektas, kurį aš padariau savo mokykloje, HKU, ir kad mums reikėjo ką nors padaryti su „Arduino Uno“. Norėjau padaryti tai, kas man patiktų, priverstų žmones juoktis. Taigi nusprendžiau sukurti pokštų dėžutę, kuri jums sukeltų pokštą, tačiau kokį pokštą jis suteikė, priklausys nuo to, ką tam tikru laiko momentu matavo pora jutiklių modulių. Kad tai būtų asmeniškiau, nusprendžiau padaryti jį tanku.

1 žingsnis: gaukite dalis

Dalys, kurių jums prireiktų atkurti šį projektą, būtų

  • 1x kompiuteris, galintis paleisti „Arduino IDE“
  • 1x „Arduino Uno“
  • 1x USB jungties kabelis, skirtas „Arduino Uno“
  • 1x sonaro jutiklis
  • 1x garsiakalbis (pageidautina tinkamos kokybės (aš naudojau vieną, kurį ištraukiau iš „Bluetooth“garsiakalbio)).
  • 1x LM386 stiprintuvo modulis (tai galima padaryti ir patiems, bet aš naudojau modulį).
  • 1x LM393 mikrofonas
  • 1x LDR
  • 1x LED (tiks bet kokia spalva, bet aš naudojau mėlyną).
  • 4x 1kΩ rezistorius
  • 1x 2, 7 kΩ rezistorius
  • 1x duonos lenta
  • 1x „micro SD“kortelė (pageidautina maža (1 arba 2 gb)).
  • 1x elektrinis gręžtuvas.
  • 1x 16 mm gręžimo galvutė (geriausia metalui gręžti).
  • 1x 9 mm gręžimo galvutė (taip pat pageidautina metalui gręžti).
  • 1x 1 mm gręžimo galvutė (dar kartą pageidautina gręžti metalą).
  • 1x modelio bakas (aš naudoju 1:35 mastelio leopardą 2, bet kiti atvejai taip pat turėtų būti tinkami).
  • Superklijai / karšti klijai
  • ir nemažai laidų, pageidautina skirtingų spalvų.
  • kabelių jungtys (neprivaloma).

2 žingsnis: laidų prijungimas

Laidai
Laidai

Turime pradėti nuo laidų, vaizdas yra techninis brėžinys, kaip visa tai turėtų būti prijungta. Tai turėtų būti jūsų planas. Pastaba: visi „Arduino“prievadai yra pavadinti AP# kiekvienam prievadui. Taigi 4 -asis prievadas „Arduino“yra AP4, A0 prievadas yra APA0, o 6 ~ yra AP6 ~ ir tt Visi kiti prievadai pavadinami taip, kaip jie rodomi pačiuose moduliuose.

3 žingsnis: iš anksto koduojami dalykai

Dabar, prieš pradėdami naudoti kodą, mums reikia šiek tiek. Aš rekomenduoju jums sekti šį vadovą nuo 2 iki 4 veiksmo

www.electronoobs.com/eng_arduino_tut8.php

Tačiau mes nenaudosime jo kodo, nes naudosime savo. Atminkite, kad kai kurie garsiakalbiai naudoja skirtingus dažnius. Mano garsiakalbis naudojo 16 bitų 32 kHz garso failus. Taigi, jei jūsų kalba sukelia triukšmą, bet neatkuria failų, pabandykite žaisti savo dažniu.

4 žingsnis: kodas

Dabar mes įkeliame kodą į arduino. Nukopijuokite visa tai ir perkelkite į „Arduino IDE“ir įkelkite į „Arduino“.

// apima SD kortelių skaitytuvo biblioteką.#include "Wtv020sd16p.h" // apima biblioteką, reikalingą sonaro jutikliui. #include // Nustato „Arduino“kaiščius. int resetPin = 4; int clockPin = 5; int dataPin = 6; int užimtasPin = 7; int soundDetectedPin = 12; int lightDetectedPin = A0; // Nustato SD kortelių bibliotekos kaiščius. Wtv020sd16p wtv020sd16p (resetPin, clockPin, dataPin, užimtas PIN); // Nustato Sonaro jutiklių bibliotekos kaiščius. „NewPing“sonaras (11, 10); // Nustato kitus įėjimus ir nustato programos pralaidumą. void setup () {wtv020sd16p.reset (); pinMode (lightDetectedPin, INPUT); pinMode (soundDetectedPin, INPUT); Serial.begin (9600); } // Pagrindinė programos dalis. void loop () {// Nustato tarpinius skaičius int lightDetectedVal = analogRead (lightDetectedPin); int distanceVal = sonar.ping_cm (); int soundDetectedVal = digitalRead (soundDetectedPin); // Atidėkite, kad projektas, kurio projektas nesibaigtų, nesinaudos garsiakalbiu. vėlavimas (30000); // Serijinis spausdinimas ir spausdinimo eilutės, kad galėtumėte lengvai pamatyti, kokias vertes priima jutiklio moduliai. Serial.print („Garso vertė:“); // Keli, jei teiginiai, kad programa leistų skirtingus garso failus, priklausomai nuo reikšmių, matuojami jutiklių moduliais. if (soundDetectedVal == 0) {Serial.println (soundDetectedVal); Serial.print („Atstumas:“); if (distanceVal == 0) {Serial.println (distanceVal); Serial.print („Šviesos vertė:“); if (lightDetectedVal> = 1000) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (1); // Kitas serijinis spausdinimas, kad galėtumėte pamatyti, koks tiksliai garso failas buvo paleistas. Serial.println ("1 --------"); // Dar vienas delsimas leisti garso failui paleisti visą jo ilgį. vėlavimas (5000); } else if (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (2); Serial.println ("2 --------"); vėlavimas (5000); } else if (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (3); Serial.println ("3 --------"); vėlavimas (5000); } else if (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (4); Serial.println ("4 --------"); vėlavimas (5000); } else if (lightDetectedVal> = 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (5); Serial.println ("5 --------"); vėlavimas (5000); } else if (lightDetectedVal> = 500 || lightDetectedVal 0 || distanceVal == NULL) {Serial.println (distanceVal); Serial.print („Šviesos vertė:“); if (lightDetectedVal> = 1000) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (7); Serial.println ("7 --------"); vėlavimas (5000); } else if (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (8); Serial.println ("8 --------"); vėlavimas (8000); } else if (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (9); Serial.println ("9 --------"); vėlavimas (5000); } else if (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (10); Serial.println ("10 -------"); vėlavimas (8000); } else if (lightDetectedVal> = 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (11); Serial.println ("11 -------"); vėlavimas (6000); } else if (lightDetectedVal> = 500 || lightDetectedVal <= 1000) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (13); Serial.println ("13 -------"); vėlavimas (5000); } else if (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (14); Serial.println ("14 -------"); vėlavimas (5000); } else if (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (15); Serial.println ("15 -------"); vėlavimas (5000); } else if (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (16); Serial.println ("16 -------"); vėlavimas (5000); } else if (lightDetectedVal> = 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (17); Serial.println ("17 -------"); vėlavimas (5000); } else if (lightDetectedVal> = 500 || lightDetectedVal 0 || distanceVal == NULL || distanceVal> = 150) {Serial.println (distanceVal); Serial.print („Šviesos vertė:“); if (lightDetectedVal> = 1000) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (19); Serial.println ("19 -------"); vėlavimas (5000); } else if (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (20); Serial.println ("20 -------"); vėlavimas (5000); } else if (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (21); Serial.println ("21 -------"); vėlavimas (5000); } else if (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (22); Serial.println ("22 -------"); vėlavimas (5000); } else if (lightDetectedVal> = 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (23); Serial.println ("23 -------"); vėlavimas (5000); } else if (lightDetectedVal> = 500 || lightDetectedVal << 500) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (24); Serial.println ("24 -------"); vėlavimas (5000); }}}}

5 žingsnis: atvejis

Byla
Byla
Byla
Byla

Dabar ateina tikroji sudėtinga dalis.

Viską sumontuoti dėkle gali būti šiek tiek sudėtinga, tai priklauso nuo to, kaip viską sumontavote ant duonos lentos arba kaip lituosite daiktus. Bet jums reikės padaryti keletą skylių, kad jutikliai galėtų prilipti. Aš įdėjau mikrofoną (reikalingas 9 mm gręžtuvas) ir sonaro modulį (reikia 6 mm grąžto) gale, o LDR - bako priekyje, bet jūs galite juos efektyviai įdėti bet kur, jei turite vietos.

Būtinai iškirpkite skylę modelio korpuse, kad galėtumėte prijungti „arduino“prie jungties kabelio.

Aš rekomenduočiau įdėti garsiakalbį į bokštą. nes ten turėtų likti daug vietos.

Kairysis vaizdas aukščiau yra tai, kaip aš sumontavau „arduino“ir spaudinį, kurį lituodavau „Leopard 2“modelyje. Dešinysis vaizdas yra toks, kuriame yra sumontuota dauguma laidų.

Tai, ką galite padaryti, yra gręžti mažas skylutes modelio apačioje, kad „Arduino“būtų pritvirtintas kabeliais.

Bet jei neklystu, dabar turėtumėte tai padaryti.

Rekomenduojamas: