Inhoudsopgave:

Grapjestank - Ajarnpa
Grapjestank - Ajarnpa

Video: Grapjestank - Ajarnpa

Video: Grapjestank - Ajarnpa
Video: Convenience items needed in the family 2024, November
Anonim
Grapje Tank
Grapje Tank

Dit is een project dat ik deed op mijn school, de HKU, waarvoor we iets moesten maken met een Arduino Uno. Ik wilde iets maken dat mijn favoriete ding zou doen, mensen aan het lachen maken. Dus besloten om een grappendoos te maken waarmee je een grap zou maken, maar welke grap het je zou opleveren, zou afhangen van wat een paar sensormodules op dat bepaalde moment in de tijd aan het meten waren. Om het persoonlijker te maken besloot ik er een tank van te maken.

Stap 1: De onderdelen ophalen

De onderdelen die je nodig hebt om dit project opnieuw te maken, zijn:

  • 1x computer waarop Arduino IDE kan draaien
  • 1x Arduino Uno
  • 1x usb-aansluitkabel voor Arduino Uno
  • 1x Sonar-sensor
  • 1x luidspreker (bij voorkeur een van behoorlijke kwaliteit (ik heb er een gebruikt die ik uit een bluetooth-luidspreker heb gehaald)).
  • 1x LM386 Versterker module (het is mogelijk om deze zelf te maken maar ik heb een module gebruikt).
  • 1x LM393 microfoon
  • 1x LDR
  • 1x LED (elke kleur is voldoende, maar ik gebruikte blauw).
  • 4x 1kΩ weerstand
  • 1x 2, 7kΩ weerstand
  • 1x Broodplank
  • 1x micro SD-kaart (bij voorkeur klein (1 of 2 gb)).
  • 1x Boormachine.
  • 1x 16mm boorkop (bij voorkeur gemaakt voor het boren van metaal).
  • 1x 9mm boorkop (bij voorkeur ook gemaakt voor het boren van metaal).
  • 1x 1mm boorkop (weer bij voorkeur gemaakt voor het boren van metaal).
  • 1x Model tank (ik gebruikte een 1:35 schaal luipaard 2 maar andere gevallen zouden ook goed moeten zijn).
  • Superlijm / hotglue
  • en heel wat draden bij voorkeur in verschillende kleuren.
  • kabelbinders (optioneel).

Stap 2: Bedrading

Bedrading
Bedrading

We moeten beginnen met de bedrading, de afbeelding is een technische tekening van hoe het allemaal moet worden aangesloten. Dit zou moeten dienen als uw blauwdruk. Opmerking: alle Arduino-poorten hebben de naam AP # voor elke poort. Dus de 4e poort op de Arduino is AP4, poort A0 is APA0 en poort 6~ is AP6~, enz. Alle andere poorten worden genoemd zoals ze op de modules zelf verschijnen.

Stap 3: Pre-code dingen

Voordat we code kunnen gaan gebruiken, hebben we wat dingen nodig. Ik raad je aan nu deze handleiding van de man te volgen van stap 2 tot 4

www.electronoobs.com/eng_arduino_tut8.php

We gaan zijn code echter niet gebruiken omdat we onze eigen code gaan gebruiken. Houd er rekening mee dat sommige luidsprekers verschillende frequenties gebruiken. Mijn luidspreker gebruikte 16-bit 32 kHz audiobestanden. Dus als je spraak een soort geluid maakt maar je bestanden niet afspeelt, probeer dan met je frequentie te spelen.

Stap 4: Coderen

Nu gaan we de code uploaden naar de Arduino. Kopieer dit alles en plak het in de Arduino IDE en upload het naar je Arduino.

//omvat de bibliotheek voor de SD-kaartlezer.#include "Wtv020sd16p.h" //omvat de bibliotheek die nodig is voor de sonarsensor. #include // Stelt de pinnen voor de Arduino in. int resetPin = 4; int klokPin = 5; int dataPin = 6; int busyPin = 7; int soundDetectedPin = 12; int lightDetectedPin = A0; // Stelt de pinnen in voor de SD-kaartbibliotheek. Wtv020sd16p wtv020sd16p (resetPin, clockPin, dataPin, busyPin); // Stelt de pinnen in voor de Sonar-sensorbibliotheek. NewPing-sonar (11, 10); // Stelt de andere ingangen in en stelt de bitsnelheid van het programma in. void setup() { wtv020sd16p.reset(); pinMode(lightDetectedPin, INPUT); pinMode (geluid gedetecteerdPin, INPUT); Serieel.begin(9600); } //Hoofdstuk van het programma. void loop () {// Stelt de intergers in int lightDetectedVal = analogRead (lightDetectedPin); int distanceVal = sonar.ping_cm(); int soundDetectedVal = digitalRead (soundDetectedPin); // Vertraging zodat het project het project niet oneindig de luidspreker blijft gebruiken. vertraging (30000); //Seriële print en printlijnen zodat u gemakkelijk kunt zien welke waarden door de sensormodules worden genomen. Serial.print("Geluidswaarde: "); // Meerdere if-statements zodat het programma verschillende audiobestanden afspeelt, afhankelijk van de waarden die door de sensormodules worden gemeten. if (soundDetectedVal == 0) { Serial.println (soundDetectedVal); Serial.print("Afstand: "); if (distanceVal == 0) { Serial.println(distanceVal); Serial.print("Lichtwaarde: "); if (lightDetectedVal >= 1000) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(1); //Nog een seriële afdruk zodat u kunt zien welk audiobestand precies is afgespeeld. Serial.println("1--------"); //Nog een vertraging om het audiobestand de volledige lengte te laten spelen. vertraging (5000); } else if (lightDetectedVal >= 900) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(2); Serial.println("2--------"); vertraging (5000); } else if (lightDetectedVal >= 800) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(3); Serial.println("3--------"); vertraging (5000); } else if (lightDetectedVal >= 700) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(4); Serial.println("4--------"); vertraging (5000); } else if (lightDetectedVal >= 600) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(5); Serial.println("5--------"); vertraging (5000); } else if (lightDetectedVal >= 500 || lightDetectedVal 0 || distanceVal == NULL) { Serial.println(distanceVal); Serial.print("Lichtwaarde: "); if (lightDetectedVal >= 1000) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(7); Serial.println("7--------"); vertraging (5000); } else if (lightDetectedVal >= 900) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(8); Serial.println("8--------"); vertraging (8000); } else if (lightDetectedVal >= 800) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice (9); Serial.println("9--------"); vertraging (5000); } else if (lightDetectedVal >= 700) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(10); Serial.println("10-------"); vertraging (8000); } else if (lightDetectedVal >= 600) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice (11); Serial.println("11-------"); vertraging (6000); } else if (lightDetectedVal >= 500 || lightDetectedVal <= 1000) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(13); Serial.println("13-------"); vertraging (5000); } else if (lightDetectedVal >= 900) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice (14); Serial.println("14-------"); vertraging (5000); } else if (lightDetectedVal >= 800) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice (15); Serial.println("15-------"); vertraging (5000); } else if (lightDetectedVal >= 700) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice (16); Serial.println("16-------"); vertraging (5000); } else if (lightDetectedVal >= 600) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice (17); Serial.println("17-------"); vertraging (5000); } else if (lightDetectedVal >= 500 || lightDetectedVal 0 || distanceVal == NULL || distanceVal >= 150) { Serial.println(distanceVal); Serial.print("Lichtwaarde: "); if (lightDetectedVal >= 1000) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(19); Serial.println("19-------"); vertraging (5000); } else if (lightDetectedVal >= 900) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice (20); Serial.println("20-------"); vertraging (5000); } else if (lightDetectedVal >= 800) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(21); Serial.println("21-------"); vertraging (5000); } else if (lightDetectedVal >= 700) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(22); Serial.println("22-------"); vertraging (5000); } else if (lightDetectedVal >= 600) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(23); Serial.println("23-------"); vertraging (5000); } else if (lightDetectedVal >= 500 || lightDetectedVal << 500) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(24); Serial.println("24-------"); vertraging (5000); } } } }

Stap 5: De zaak

De zaak
De zaak
De zaak
De zaak

Nu komt het eigenlijke gecompliceerde deel.

Alles in de hoes passen kan een beetje lastig zijn, dit hangt af van hoe je alles op je breadboard hebt gemonteerd of hoe je dingen aan elkaar hebt gesoldeerd. Maar je zult een paar gaten moeten maken om de sensoren erin te laten steken. Ik heb de microfoon (9 mm boor nodig) en sonarmodule (6 mm boor nodig) aan de achterkant en de LDR aan de voorkant van de tank geplaatst, maar je kunt ze overal effectief plaatsen als je de ruimte hebt.

Zorg ervoor dat je een gat in de body van het model snijdt om je arduino te kunnen aansluiten met de connectorkabel.

Ik zou aanraden om de luidspreker in de toren te plaatsen. want daar moet voldoende ruimte over zijn.

De linker afbeelding hierboven is hoe ik de arduino heb gemonteerd en de print die ik in het Leopard 2-model heb gesoldeerd. De rechter afbeelding is er een met de meeste bedrading gemonteerd.

Wat je wel kunt doen, is kleine gaatjes in de onderkant van het model boren om de Arduino met kabelbinders vast te zetten.

Maar als ik me niet vergis, zou je nu klaar moeten zijn.