Inhaltsverzeichnis:

Scherzpanzer - Gunook
Scherzpanzer - Gunook

Video: Scherzpanzer - Gunook

Video: Scherzpanzer - Gunook
Video: Schwarzpanzer 58 - НИКОГДА НЕ БЕРИ! ПОЗОРНЫЙ ПРЕМ ТАНК! 2024, November
Anonim
Witziger Panzer
Witziger Panzer

Dies ist ein Projekt, das ich an meiner Schule, der HKU, durchgeführt habe, bei dem wir etwas mit einem Arduino Uno machen mussten. Ich wollte etwas machen, das meine Lieblingsbeschäftigung macht, die Leute zum Lachen bringt. Also beschlossen, eine Witzebox zu machen, die einen Witz machen würde, aber welcher Witz sie gab, hängt davon ab, was ein paar Sensormodule zu diesem bestimmten Zeitpunkt messen. Um es persönlicher zu machen, habe ich beschlossen, es zu einem Panzer zu machen.

Schritt 1: Erhalten der Teile

Die Teile, die Sie benötigen würden, um dieses Projekt neu zu erstellen, wären

  • 1x Computer, der Arduino IDE ausführen kann
  • 1x Arduino Uno
  • 1x USB-Anschlusskabel für Arduino Uno
  • 1x Sonarsensor
  • 1x Lautsprecher (vorzugsweise einer von anständiger Qualität (ich habe einen verwendet, den ich aus einem Bluetooth-Lautsprecher gezogen habe)).
  • 1x LM386 Verstärkermodul (es ist möglich, dies selbst zu machen, aber ich habe ein Modul verwendet).
  • 1x LM393 Mikrofon
  • 1x LDR
  • 1x LED (jede Farbe reicht aus, aber ich habe Blau verwendet).
  • 4x 1kΩ Widerstand
  • 1x 2, 7kΩ Widerstand
  • 1x Steckbrett
  • 1x Micro-SD-Karte (vorzugsweise klein (1 oder 2 GB)).
  • 1x Bohrmaschine.
  • 1x 16mm Bohrkopf (vorzugsweise zum Bohren von Metall).
  • 1x 9mm Bohrkopf (vorzugsweise auch zum Bohren von Metall geeignet).
  • 1x 1mm Bohrkopf (wieder vorzugsweise zum Bohren von Metall).
  • 1x Modellpanzer (ich habe einen Leopard 2 im Maßstab 1:35 verwendet, aber andere Fälle sollten auch in Ordnung sein).
  • Sekundenkleber / Heißkleber
  • und etliche Drähte am liebsten in verschiedenen Farben.
  • Kabelbinder (optional).

Schritt 2: Verkabelung

Verdrahtung
Verdrahtung

Wir müssen mit der Verkabelung beginnen, das Bild ist eine technische Zeichnung, wie alles verkabelt werden sollte. Dies sollte als Ihre Blaupause dienen. Hinweis: Alle Arduino-Ports werden für jeden Port mit AP # bezeichnet Arduino ist AP4, Port A0 ist APA0 und Port 6 ~ ist AP6 ~ usw. Alle anderen Ports werden so benannt, wie sie auf den Modulen selbst erscheinen.

Schritt 3: Pre-Code-Dinge

Bevor wir mit der Verwendung von Code beginnen können, benötigen wir einige Dinge. Ich empfehle Ihnen, diesem Tutorial von Schritt 2 bis 4 zu folgen

www.electronoobs.com/eng_arduino_tut8.php

Wir werden jedoch seinen Code nicht verwenden, da wir unseren eigenen verwenden. Bitte beachten Sie, dass einige Lautsprecher unterschiedliche Frequenzen verwenden. Mein Lautsprecher verwendete 16-Bit-32-kHz-Audiodateien. Wenn Ihr Sprechen also Geräusche macht, aber Ihre Dateien nicht abspielt, versuchen Sie, mit Ihrer Frequenz zu spielen.

Schritt 4: Code

Jetzt werden wir den Code auf das arduino hochladen. Kopieren Sie all dies und fügen Sie es in die Arduino IDE ein und laden Sie es auf Ihr Arduino hoch.

//enthält die Bibliothek für den SD-Kartenleser.#include "Wtv020sd16p.h" //enthält die Bibliothek, die für den Sonarsensor benötigt wird. #include // Setzt die Pins für das Arduino. int resetPin = 4; int clockPin = 5; int dataPin = 6; int busyPin = 7; int soundDetectedPin = 12; int lightDetectedPin = A0; // Setzt die Pins für die SD-Kartenbibliothek. Wtv020sd16p wtv020sd16p(resetPin, clockPin, dataPin, busyPin); // Setzt die Pins für die Sonar-Sensorbibliothek. NeuPing-Sonar(11, 10); // Richtet die anderen Eingänge ein und legt die Bitrate des Programms fest. Void setup () {wtv020sd16p.reset (); pinMode (lightDetectedPin, INPUT); pinMode (soundDetectedPin, INPUT); Serial.begin (9600); } //Hauptteil des Programms. Void loop () {// Setzt die Ganzzahlen Int lightDetectedVal = analogRead (lightDetectedPin); int distanceVal = sonar.ping_cm(); int soundDetectedVal = digitalRead (soundDetectedPin); //Verzögern Sie, damit das Projekt den Lautsprecher nicht endlos weiter verwendet. Verzögerung (30000); // Serieller Druck und Druckzeilen, damit Sie leicht sehen können, welche Werte von den Sensormodulen aufgenommen werden. Serial.print ("Soundwert: "); // Mehrere if-Anweisungen, damit das Programm verschiedene Audiodateien abspielt, je nachdem, welche Werte von den Sensormodulen gemessen werden. if (soundDetectedVal == 0) {Serial.println (soundDetectedVal); Serial.print("Abstand:"); Wenn (Abstandswert == 0) {Serial.println (Abstandswert); Serial.print ("Lichtwert: "); Wenn (lightDetectedVal > = 1000) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice(1); // Ein weiterer Seriendruck, damit Sie sehen können, welche Audiodatei genau abgespielt wurde. Serial.println("1--------"); // Eine weitere Verzögerung, um die Audiodatei in voller Länge abspielen zu lassen. Verzögerung (5000); aufrechtzuerhalten. Sonst wenn (lightDetectedVal >= 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice(2); Serial.println("2--------"); Verzögerung (5000); aufrechtzuerhalten. Sonst wenn (lightDetectedVal >= 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice(3); Serial.println("3--------"); Verzögerung (5000); aufrechtzuerhalten. Sonst wenn (lightDetectedVal >= 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice(4); Serial.println("4--------"); Verzögerung (5000); aufrechtzuerhalten. Sonst wenn (lightDetectedVal >= 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice(5); Serial.println("5--------"); Verzögerung (5000); aufrechtzuerhalten. Sonst wenn (lightDetectedVal >= 500 || lightDetectedVal 0 || DistanceVal == NULL) { Serial.println (distanceVal); Serial.print ("Lichtwert: "); Wenn (lightDetectedVal > = 1000) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice(7); Serial.println("7--------"); Verzögerung (5000); aufrechtzuerhalten. Sonst wenn (lightDetectedVal >= 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice(8); Serial.println("8--------"); Verzögerung (8000); aufrechtzuerhalten. Sonst wenn (lightDetectedVal >= 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice(9); Serial.println("9--------"); Verzögerung (5000); aufrechtzuerhalten. Sonst wenn (lightDetectedVal >= 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice(10); Serial.println("10-------"); Verzögerung (8000); aufrechtzuerhalten. Sonst wenn (lightDetectedVal >= 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice(11); Serial.println("11-------"); Verzögerung (6000); aufrechtzuerhalten. Sonst wenn (lightDetectedVal >= 500 || lightDetectedVal <= 1000) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice(13); Serial.println("13----"); Verzögerung (5000); aufrechtzuerhalten. Sonst wenn (lightDetectedVal >= 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice(14); Serial.println("14----"); Verzögerung (5000); aufrechtzuerhalten. Sonst wenn (lightDetectedVal >= 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice(15); Serial.println("15-------"); Verzögerung (5000); aufrechtzuerhalten. Sonst wenn (lightDetectedVal >= 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice(16); Serial.println("16----"); Verzögerung (5000); aufrechtzuerhalten. Sonst wenn (lightDetectedVal >= 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice(17); Serial.println("17-------"); Verzögerung (5000); aufrechtzuerhalten. Sonst wenn (lightDetectedVal >= 500 || lightDetectedVal 0 || DistanceVal == NULL || DistanceVal >= 150) {Serial.println (distanceVal); Serial.print ("Lichtwert: "); Wenn (lightDetectedVal > = 1000) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice(19); Serial.println("19----"); Verzögerung (5000); aufrechtzuerhalten. Sonst wenn (lightDetectedVal >= 900) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice(20); Serial.println("20-------"); Verzögerung (5000); aufrechtzuerhalten. Sonst wenn (lightDetectedVal >= 800) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice(21); Serial.println("21----"); Verzögerung (5000); aufrechtzuerhalten. Sonst wenn (lightDetectedVal >= 700) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice(22); Serial.println("22----"); Verzögerung (5000); aufrechtzuerhalten. Sonst wenn (lightDetectedVal >= 600) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice(23); Serial.println("23-------"); Verzögerung (5000); aufrechtzuerhalten. Sonst if (lightDetectedVal >= 500 || lightDetectedVal << 500) {Serial.println (lightDetectedVal); wtv020sd16p.playVoice(24); Serial.println("24-------"); Verzögerung (5000); } } } }

Schritt 5: Der Fall

Der Fall
Der Fall
Der Fall
Der Fall

Jetzt kommt der eigentliche komplizierte Teil.

Alles in das Gehäuse einzubauen kann etwas schwierig sein. Dies hängt davon ab, wie Sie alles an Ihr Steckbrett angepasst oder wie Sie die Dinge zusammengelötet haben. Aber Sie müssen ein paar Löcher bohren, damit die Sensoren durchhalten können. Ich habe das Mikrofon (9mm Bohrer benötigt) und das Sonarmodul (6mm Bohrer benötigt) hinten und das LDR vorne am Tank platziert, aber Sie können sie überall effektiv platzieren, wenn Sie den Platz haben.

Stellen Sie sicher, dass Sie ein Loch in den Körper des Modells schneiden, um Ihr Arduino mit dem Anschlusskabel verbinden zu können.

Ich würde empfehlen, den Lautsprecher in den Turm zu stellen. da sollte dort noch viel platz sein.

Das linke Bild oben zeigt, wie ich das Arduino und den Druck eingebaut habe, den ich im Leopard 2-Modell gelötet habe. Das rechte Bild ist eines mit den meisten Kabeln.

Was Sie tun können, ist, kleine Löcher in die Unterseite des Modells zu bohren, um den Arduino mit Kabelbindern zu befestigen.

Aber wenn ich mich nicht irre, sollten Sie jetzt fertig sein.