Indholdsfortegnelse:
Video: Spøgstank: 5 trin
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:28
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
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
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:
Arduino bil omvendt parkering alarmsystem - Trin for trin: 4 trin
Arduino bil omvendt parkering alarmsystem. Trin for trin: I dette projekt vil jeg designe en simpel Arduino bil omvendt parkeringssensorkreds ved hjælp af Arduino UNO og HC-SR04 ultralydssensor. Dette Arduino -baserede bilomvendt alarmsystem kan bruges til en autonom navigation, robotafstand og andre rækkevidde
Trin for trin pc -bygning: 9 trin
Trin for trin PC Building: Supplies: Hardware: MotherboardCPU & CPU -køler PSU (strømforsyningsenhed) Opbevaring (HDD/SSD) RAMGPU (ikke påkrævet) CaseTools: Skruetrækker ESD -armbånd/mathermal pasta m/applikator
Tre højttalerkredsløb -- Trin-for-trin vejledning: 3 trin
Tre højttalerkredsløb || Trin-for-trin vejledning: Højttalerkredsløb styrker lydsignalerne, der modtages fra miljøet til MIC og sender det til højttaleren, hvorfra forstærket lyd produceres. Her vil jeg vise dig tre forskellige måder at lave dette højttalerkredsløb på:
Trin-for-trin uddannelse i robotik med et sæt: 6 trin
Trin-for-trin uddannelse i robotteknologi med et kit: Efter ganske få måneder med at bygge min egen robot (se alle disse), og efter at jeg to gange havde dele mislykkedes, besluttede jeg at tage et skridt tilbage og tænke min strategi og retning. De flere måneders erfaring var til tider meget givende, og
Akustisk levitation med Arduino Uno trin for trin (8 trin): 8 trin
Akustisk levitation med Arduino Uno Step-by Step (8-trin): ultralyds lydtransducere L298N Dc kvindelig adapter strømforsyning med en han-DC-pin Arduino UNOBreadboard Sådan fungerer det: Først uploader du kode til Arduino Uno (det er en mikrokontroller udstyret med digital og analoge porte til konvertering af kode (C ++)