Indholdsfortegnelse:

Spøgstank: 5 trin
Spøgstank: 5 trin

Video: Spøgstank: 5 trin

Video: Spøgstank: 5 trin
Video: НАША ЖИЗНЬ ИЗМЕНИЛАСЬ ПОСЛЕ ПОЯВЛЕНИЯ ............ 2024, November
Anonim
Spøgstank
Spøgstank

Dette er et projekt, jeg lavede på min skole HKU, der krævede for os at lave noget med en Arduino Uno. Jeg ville lave noget, der ville gøre min yndlings ting, få folk til at grine. Så besluttede mig for at lave en vittighedskasse, der ville kaste dig en vittighed, men hvilken vittighed den gav dig, ville afhænge af, hvad et par sensormoduler målte på det bestemte tidspunkt. For at gøre det mere personligt besluttede jeg at gøre det til en tank.

Trin 1: Få delene

De dele, du ville have brug for for at genskabe dette projekt, ville være

  • 1x computer i stand til at køre Arduino IDE
  • 1x Arduino Uno
  • 1x usb -stik til Arduino Uno
  • 1x ekkolodssensor
  • 1x højttaler (helst en af anstændig kvalitet (, jeg brugte en, jeg trak ud af en bluetooth højttaler)).
  • 1x LM386 forstærkermodul (det er muligt at lave dette selv, men jeg brugte et modul).
  • 1x LM393 mikrofon
  • 1x LDR
  • 1x LED (enhver farve vil gøre, men jeg brugte blå).
  • 4x 1kΩ modstand
  • 1x 2, 7kΩ modstand
  • 1x brødbræt
  • 1x micro SD -kort (helst lille (1 eller 2 gb)).
  • 1x motorboremaskine.
  • 1x 16 mm borhoved (helst lavet til boring af metal).
  • 1x 9 mm borhoved (også fortrinsvis lavet til boring af metal).
  • 1x 1 mm borhoved (igen helst foretaget til boring af metal).
  • 1x Model tank (jeg brugte en leopard 2 i skala 1:35, men andre tilfælde burde også være fine).
  • Superlim / hotlim
  • og ganske nogle ledninger helst i forskellige farver.
  • kabelbindere (valgfrit).

Trin 2: Ledningsføring

Ledninger
Ledninger

Vi skal starte med ledningerne, billedet er en teknisk tegning af, hvordan det hele skal forbindes. Dette skal tjene som din blueprint. Bemærk: Alle Arduino -portene hedder AP# for hver port. Så den 4. port på Arduino er AP4, port A0 er APA0 og port 6 ~ er AP6 ~ osv. Alle de andre porte navngives, som de vises på modulerne selv.

Trin 3: Forkod ting

Nu, før vi kan begynde at bruge kode, har vi brug for noget stuf. Jeg anbefaler, at du nu følger denne mans tutorial fra trin 2 til 4

www.electronoobs.com/eng_arduino_tut8.php

Men vi kommer ikke til at bruge hans kode, da vi kommer til at bruge vores egen Bemærk venligst, at nogle højttalere bruger forskellige frekvenser. Min højttaler brugte 16-bit 32kHz lydfiler. Så hvis din tale støjer, men ikke afspiller dine filer, så prøv at spille med din frekvens.

Trin 4: Kode

Nu vil vi uploade koden til arduinoen. Kopier alt dette og forbi det i Arduino IDE og upload det til din Arduino.

// inkluderer biblioteket til SD -kortlæseren.#inkluderer "Wtv020sd16p.h" // inkluderer det bibliotek, der er nødvendigt til ekkolodssensoren. #include // Indstiller benene til Arduino. int resetPin = 4; int clockPin = 5; int dataPin = 6; int busyPin = 7; int soundDetectedPin = 12; int lightDetectedPin = A0; // Indstiller benene til SD -kortbiblioteket. Wtv020sd16p wtv020sd16p (resetPin, clockPin, dataPin, busyPin); // Indstiller benene til ekkolodssensorbiblioteket. NewPing -ekkolod (11, 10); // Konfigurerer de andre input og indstiller programmets bitrate. ugyldig opsætning () {wtv020sd16p.reset (); pinMode (lightDetectedPin, INPUT); pinMode (soundDetectedPin, INPUT); Serial.begin (9600); } // Hoveddelen af programmet. void loop () {// Indstiller intergers int lightDetectedVal = analogRead (lightDetectedPin); int distanceVal = sonar.ping_cm (); int soundDetectedVal = digitalRead (soundDetectedPin); // Forsink, så projektet ikke uendeligt bliver ved med at bruge højttaleren. forsinkelse (30000); // Seriel udskrivning og udskrivning af linjer, så du let kan se, hvilke værdier sensormodulerne tager. Serial.print ("Lydværdi:"); // Flere if -sætninger, så programmet afspiller forskellige lydfiler afhængigt af værdierne måles af sensormodulerne. hvis (soundDetectedVal == 0) {Serial.println (soundDetectedVal); Serial.print ("Distance:"); hvis (distanceVal == 0) {Serial.println (distanceVal); Serial.print ("Lysværdi:"); hvis (lightDetectedVal> = 1000) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (1); // Endnu en serieudskrivning, så du kan se, hvilken præcis lydfil der blev afspillet. Serial.println ("1 --------"); // Endnu en forsinkelse for at lade lydfilen afspille sin fulde længde. forsinkelse (5000); } ellers hvis (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (2); Serial.println ("2 --------"); forsinkelse (5000); } ellers hvis (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (3); Serial.println ("3 --------"); forsinkelse (5000); } ellers hvis (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (4); Serial.println ("4 --------"); forsinkelse (5000); } ellers hvis (lightDetectedVal> = 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (5); Serial.println ("5 --------"); forsinkelse (5000); } ellers hvis (lightDetectedVal> = 500 || lightDetectedVal 0 || distanceVal == NULL) {Serial.println (distanceVal); Serial.print ("Lysværdi:"); hvis (lightDetectedVal> = 1000) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (7); Serial.println ("7 --------"); forsinkelse (5000); } ellers hvis (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (8); Serial.println ("8 --------"); forsinkelse (8000); } ellers hvis (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (9); Serial.println ("9 --------"); forsinkelse (5000); } ellers hvis (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (10); Serial.println ("10 -------"); forsinkelse (8000); } ellers hvis (lightDetectedVal> = 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (11); Serial.println ("11 -------"); forsinkelse (6000); } ellers hvis (lightDetectedVal> = 500 || lightDetectedVal <= 1000) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (13); Serial.println ("13 -------"); forsinkelse (5000); } ellers hvis (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (14); Serial.println ("14 -------"); forsinkelse (5000); } ellers hvis (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (15); Serial.println ("15 -------"); forsinkelse (5000); } ellers hvis (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (16); Serial.println ("16 -------"); forsinkelse (5000); } ellers hvis (lightDetectedVal> = 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (17); Serial.println ("17 -------"); forsinkelse (5000); } ellers hvis (lightDetectedVal> = 500 || lightDetectedVal 0 || distanceVal == NULL || distanceVal> = 150) {Serial.println (distanceVal); Serial.print ("Lysværdi:"); hvis (lightDetectedVal> = 1000) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (19); Serial.println ("19 -------"); forsinkelse (5000); } ellers hvis (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (20); Serial.println ("20 -------"); forsinkelse (5000); } ellers hvis (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (21); Serial.println ("21 -------"); forsinkelse (5000); } ellers hvis (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (22); Serial.println ("22 -------"); forsinkelse (5000); } ellers hvis (lightDetectedVal> = 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (23); Serial.println ("23 -------"); forsinkelse (5000); } ellers hvis (lightDetectedVal> = 500 || lightDetectedVal << 500) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (24); Serial.println ("24 -------"); forsinkelse (5000); }}}}

Trin 5: Sagen

Sagen
Sagen
Sagen
Sagen

Nu kommer den egentlige komplicerede del.

Montering af det hele i sagen kan være lidt vanskelig, det afhænger af, hvordan du monterede alt på dit brødbræt, eller hvordan du lodde ting sammen. Men du bliver nødt til at lave et par huller, så sensorerne kan stikke godt igennem. Jeg satte mikrofonen (nødvendig 9 mm boremaskine) og ekkolodsmodul (6 mm boremaskine nødvendig) bagpå og LDR foran på tanken, men du kan sætte dem effektivt uanset hvis du har plads.

Sørg for at skære et hul i modellens krop for at kunne forbinde din arduino med stikket.

Jeg vil anbefale at sætte højttaleren i tårnet. da der burde være masser af plads tilbage der.

Det venstre billede ovenfor er, hvordan jeg monterede arduinoen og det tryk, jeg lod lod inde i Leopard 2 -modellen. Det højre billede er et med de fleste ledninger monteret.

Hvad du kan gøre er at bore små huller i bunden af modellen for at sikre Arduino med kabelbindere.

Men hvis jeg ikke tager fejl, skal du nu være færdig.

Anbefalede: