Innholdsfortegnelse:
Video: Spøkstank: 5 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:23
Dette er et prosjekt jeg gjorde på skolen min, HKU, som krevde at vi skulle lage noe med en Arduino Uno. Jeg ville lage noe som ville gjøre min favoritt ting, få folk til å le. Så bestemte meg for å lage en spøkboks som ville gi deg en spøk, men hvilken spøk det ga deg, ville avhenge av hva et par sensormoduler målte på det bestemte tidspunktet. For å gjøre det mer personlig bestemte jeg meg for å gjøre det til en tank.
Trinn 1: Få delene
Delene du trenger for å gjenskape dette prosjektet vil være
- 1x datamaskin som kan kjøre Arduino IDE
- 1x Arduino Uno
- 1x usb -kontaktkabel for Arduino Uno
- 1x ekkoloddsensor
- 1x høyttaler (helst en av anstendig kvalitet (, jeg brukte en jeg dro ut av en Bluetooth -høyttaler)).
- 1x LM386 forsterkermodul (det er mulig å lage dette selv, men jeg brukte en modul).
- 1x LM393 mikrofon
- 1x LDR
- 1x LED (hvilken som helst farge vil gjøre, men jeg brukte blått).
- 4x 1kΩ motstand
- 1x 2, 7kΩ motstand
- 1x brødbrett
- 1x micro SD -kort (helst lite (1 eller 2 gb)).
- 1x motorbor.
- 1x 16 mm borehode (helst laget for boring av metall).
- 1x 9 mm borehode (også fortrinnsvis laget for boring av metall).
- 1x 1 mm borehode (igjen fortrinnsvis laget for boring av metall).
- 1x modelltank (jeg brukte leopard 2 i skala 1:35, men andre tilfeller burde også være fine).
- Superlim / hotlim
- og ganske mange ledninger helst i forskjellige farger.
- kabelbindere (valgfritt).
Trinn 2: Kabling
Vi må begynne med ledningene, bildet er en teknisk tegning av hvordan det hele skal kobles til. Dette bør tjene som din plan. Merk: Alle Arduino -portene har navnet AP# for hver port. Så den fjerde porten på Arduino er AP4, port A0 er APA0 og port 6 ~ er AP6 ~, etc Alle andre porter er navngitt slik de vises på modulene selv.
Trinn 3: Pre Code Things
Nå, før vi kan begynne å bruke kode, trenger vi litt informasjon. Jeg anbefaler at du følger denne opplæringen fra trinn 2 til 4.
www.electronoobs.com/eng_arduino_tut8.php
Vi kommer imidlertid ikke til å bruke koden hans, ettersom vi kommer til å bruke vår egen Vær oppmerksom på at noen høyttalere bruker forskjellige frekvenser. Min høyttaler brukte 16-biters 32kHz lydfiler. Så hvis talen din bråker, men ikke spiller av filene dine, kan du prøve å spille med frekvensen din.
Trinn 4: Kode
Nå skal vi laste opp koden til arduinoen. Kopier alt dette og legg det inn i Arduino IDE og last det opp til Arduino.
// inkluderer biblioteket for SD -kortleseren.#inkluderer "Wtv020sd16p.h" // inkluderer biblioteket som trengs for sonarsensoren. #include // Angir pinnene for Arduino. int resetPin = 4; int clockPin = 5; int dataPin = 6; int busyPin = 7; int soundDetectedPin = 12; int lightDetectedPin = A0; // Angir pinnene for SD -kortbiblioteket. Wtv020sd16p wtv020sd16p (resetPin, clockPin, dataPin, busyPin); // Angir pinnene for ekkoloddet sensorbibliotek. NewPing -ekkolodd (11, 10); // Setter opp de andre inngangene og angir bithastigheten til programmet. ugyldig oppsett () {wtv020sd16p.reset (); pinMode (lightDetectedPin, INPUT); pinMode (soundDetectedPin, INPUT); Serial.begin (9600); } // Hoveddelen av programmet. void loop () {// Setter intergers int lightDetectedVal = analogRead (lightDetectedPin); int distanceVal = sonar.ping_cm (); int soundDetectedVal = digitalRead (soundDetectedPin); // Forsink så prosjektet prosjektet ikke uendelig vil fortsette å bruke høyttaleren. forsinkelse (30000); // Seriell utskrift og utskriftslinjer slik at du enkelt kan se hvilke verdier sensormodulene tar. Serial.print ("Lydverdi:"); // Flere if -setninger slik at programmet spiller forskjellige lydfiler, avhengig av verdiene, måles av sensormodulene. if (soundDetectedVal == 0) {Serial.println (soundDetectedVal); Serial.print ("Avstand:"); if (distanceVal == 0) {Serial.println (distanceVal); Serial.print ("Light Value:"); if (lightDetectedVal> = 1000) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (1); // Nok en serieutskrift, slik at du kan se hvilken eksakt lydfil som ble spilt. Serial.println ("1 --------"); // Nok en forsinkelse for å la lydfilen spille av full lengde. forsinkelse (5000); } annet hvis (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (2); Serial.println ("2 --------"); forsinkelse (5000); } annet hvis (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (3); Serial.println ("3 --------"); forsinkelse (5000); } annet hvis (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (4); Serial.println ("4 --------"); forsinkelse (5000); } annet hvis (lightDetectedVal> = 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (5); Serial.println ("5 --------"); forsinkelse (5000); } annet hvis (lightDetectedVal> = 500 || lightDetectedVal 0 || distanceVal == NULL) {Serial.println (distanceVal); Serial.print ("Light Value:"); if (lightDetectedVal> = 1000) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (7); Serial.println ("7 --------"); forsinkelse (5000); } annet hvis (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (8); Serial.println ("8 --------"); forsinkelse (8000); } annet hvis (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (9); Serial.println ("9 --------"); forsinkelse (5000); } annet hvis (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (10); Serial.println ("10 -------"); forsinkelse (8000); } annet hvis (lightDetectedVal> = 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (11); Serial.println ("11 -------"); forsinkelse (6000); } annet hvis (lightDetectedVal> = 500 || lightDetectedVal <= 1000) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (13); Serial.println ("13 -------"); forsinkelse (5000); } annet hvis (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (14); Serial.println ("14 -------"); forsinkelse (5000); } annet hvis (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (15); Serial.println ("15 -------"); forsinkelse (5000); } annet hvis (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (16); Serial.println ("16 -------"); forsinkelse (5000); } annet hvis (lightDetectedVal> = 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (17); Serial.println ("17 -------"); forsinkelse (5000); } annet hvis (lightDetectedVal> = 500 || lightDetectedVal 0 || distanceVal == NULL || distanceVal> = 150) {Serial.println (distanceVal); Serial.print ("Light Value:"); if (lightDetectedVal> = 1000) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (19); Serial.println ("19 -------"); forsinkelse (5000); } annet hvis (lightDetectedVal> = 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (20); Serial.println ("20 -------"); forsinkelse (5000); } annet hvis (lightDetectedVal> = 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (21); Serial.println ("21 -------"); forsinkelse (5000); } annet hvis (lightDetectedVal> = 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (22); Serial.println ("22 -------"); forsinkelse (5000); } annet hvis (lightDetectedVal> = 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (23); Serial.println ("23 -------"); forsinkelse (5000); } annet hvis (lightDetectedVal> = 500 || lightDetectedVal << 500) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice (24); Serial.println ("24 -------"); forsinkelse (5000); }}}}
Trinn 5: Saken
Nå kommer den kompliserte delen.
Det kan være litt vanskelig å montere alt i saken, dette avhenger av hvordan du monterte alt på brødbrettet eller hvordan du loddet ting sammen. Men du må lage et par hull for sensorene å stikke godt. Jeg satte mikrofonen (9 mm drill nødvendig) og ekkoloddmodulen (6 mm drill nødvendig) bak og LDR foran på tanken, men du kan sette dem effektivt uansett hvis du har plass.
Sørg for å kutte et hull i modellens kropp for å kunne koble arduinoen din med tilkoblingskabelen.
Jeg vil anbefale å sette høyttaleren i tårnet. som det burde være god plass igjen der.
Det venstre bildet ovenfor er hvordan jeg monterte arduinoen og utskriften jeg loddet inne i Leopard 2. Modellen. Det høyre bildet er et med de fleste ledningene montert.
Det du kan gjøre er å bore små hull i bunnen av modellen for å sikre Arduino med kabelbindere.
Men hvis jeg ikke tar feil, bør du nå være ferdig.
Anbefalt:
Arduino bilvarslingssystem for omvendt parkering - Trinn for trinn: 4 trinn
Arduino Car Reverse Parking Alert System | Trinn for trinn: I dette prosjektet skal jeg designe en enkel Arduino Car Reverse Parking Sensor Circuit ved hjelp av Arduino UNO og HC-SR04 Ultrasonic Sensor. Dette Arduino -baserte bilreverseringssystemet kan brukes til autonom navigasjon, robotavstand og andre områder
Trinn for trinn PC -bygging: 9 trinn
Steg for trinn PC -bygging: Rekvisita: Maskinvare: HovedkortCPU & CPU -kjøler PSU (strømforsyningsenhet) Lagring (HDD/SSD) RAMGPU (ikke nødvendig) CaseTools: Skrutrekker ESD -armbånd/mathermal pasta m/applikator
Tre høyttalerkretser -- Trinn-for-trinn opplæring: 3 trinn
Tre høyttalerkretser || Trinn-for-trinn opplæring: Høyttalerkretsen styrker lydsignalene som mottas fra miljøet til MIC og sender den til høyttaleren der forsterket lyd produseres. Her vil jeg vise deg tre forskjellige måter å lage denne høyttalerkretsen på:
RC -sporet robot ved hjelp av Arduino - Trinn for trinn: 3 trinn
RC -sporet robot ved bruk av Arduino - Steg for trinn: Hei folkens, jeg er tilbake med et annet kult Robot -chassis fra BangGood. Håper du har gått gjennom våre tidligere prosjekter - Spinel Crux V1 - Gesture Controlled Robot, Spinel Crux L2 - Arduino Pick and Place Robot with Robotic Arms og The Badland Braw
Hvordan lage et nettsted (en trinn-for-trinn-guide): 4 trinn
Hvordan lage et nettsted (en trinn-for-trinn-guide): I denne veiledningen vil jeg vise deg hvordan de fleste webutviklere bygger nettstedene sine og hvordan du kan unngå dyre nettstedbyggere som ofte er for begrenset til et større nettsted. hjelpe deg med å unngå noen feil som jeg gjorde da jeg begynte