Spisu treści:

Żartujący czołg: 5 kroków
Żartujący czołg: 5 kroków

Wideo: Żartujący czołg: 5 kroków

Wideo: Żartujący czołg: 5 kroków
Wideo: ja nie wjadę?! 2024, Listopad
Anonim
Żartujący czołg
Żartujący czołg

Jest to projekt, który wykonałem w mojej szkole HKU, który wymagał od nas zrobienia czegoś z Arduino Uno. Chciałem zrobić coś, co zrobiłoby moją ulubioną rzecz, rozśmieszyło ludzi. Postanowiłem więc zrobić pudełko z żartami, które rzuci ci żart, ale to, jaki żart ci będzie, zależeć będzie od tego, co kilka modułów czujników mierzy w danym momencie. Aby uczynić go bardziej osobistym, postanowiłem zrobić z niego czołg.

Krok 1: Zdobycie części

Części, które byłyby potrzebne do odtworzenia tego projektu, to

  • 1x komputer obsługujący Arduino IDE
  • 1x Arduino Uno
  • 1x kabel połączeniowy USB dla Arduino Uno
  • 1x czujnik sonaru;
  • 1x Głośnik (najlepiej przyzwoitej jakości (użyłem takiego, który wyciągnąłem z głośnika bluetooth)).
  • 1x moduł wzmacniacza LM386 (można to zrobić samemu, ale użyłem modułu).
  • 1x mikrofon LM393
  • 1x LDR
  • 1x LED (dowolny kolor, ale użyłem niebieskiego).
  • 4x rezystor 1kΩ
  • Rezystor 1x2,7kΩ
  • 1x deska do krojenia chleba
  • 1x karta micro SD (najlepiej mała (1 lub 2 GB)).
  • 1x wiertarka elektryczna.
  • 1x 16mm głowica wiertarska (najlepiej przeznaczona do wiercenia w metalu).
  • Głowica wiertnicza 1x9mm (najlepiej również do wiercenia w metalu).
  • Głowica wiertnicza 1x 1mm (znowu najlepiej wykonana do wiercenia w metalu).
  • 1x Model czołgu (użyłem Leoparda 2 w skali 1:35, ale inne przypadki również powinny być w porządku).
  • Superglue/gorący klej
  • i sporo drutów najlepiej w różnych kolorach.
  • opaski kablowe (opcjonalnie).

Krok 2: Okablowanie

Okablowanie
Okablowanie

Musimy zacząć od okablowania, obraz jest rysunkiem technicznym pokazującym, jak to wszystko powinno być okablowane. Powinno to służyć jako plan. Uwaga: Wszystkie porty Arduino mają nazwy AP # dla każdego portu. Tak więc czwarty port na Arduino to AP4, port A0 to APA0, a port 6~ to AP6~ itd. Wszystkie pozostałe porty są nazywane tak, jak pojawiają się na samych modułach.

Krok 3: Rzeczy przed kodem

Teraz zanim zaczniemy używać kodu, potrzebujemy trochę rzeczy. Polecam teraz postępować zgodnie z tym samouczkiem mans od kroku 2 do 4

www.electronoobs.com/eng_arduino_tut8.php

Jednak nie będziemy używać jego kodu, ponieważ będziemy używać własnego. Pamiętaj, że niektóre głośniki używają różnych częstotliwości. Mój głośnik używał 16-bitowych plików audio 32kHz. Więc jeśli twoja mowa wydaje jakiś hałas, ale nie odtwarza twoich plików, spróbuj grać z twoją częstotliwością.

Krok 4: Kod

Teraz prześlemy kod do arduino. Skopiuj to wszystko i wklej do Arduino IDE i prześlij do Arduino.

//zawiera bibliotekę czytnika kart SD.#include "Wtv020sd16p.h" //zawiera bibliotekę potrzebną dla czujnika sonaru. #include // Ustawia piny dla Arduino. int resetPin = 4; int zegarPin = 5; int danychPin = 6; wewn. Pin zajęty = 7; int soundDetectedPin = 12; int lightDetectedPin = A0; //Ustawia piny biblioteki kart SD. Wtv020sd16p wtv020sd16p(resetPin, clockPin, dataPin, busyPin); //Ustawia piny biblioteki czujników Sonar. sonar NewPing(11, 10); //Konfiguruje inne wejścia i ustawia bitrate programu. void setup() { wtv020sd16p.reset(); pinMode (lightDetectedPin, INPUT); pinMode(soundDetectedPin, INPUT); Serial.początek(9600); } //Główna część programu. void loop() { //Ustawia liczby całkowite int lightDetectedVal = analogRead(lightDetectedPin); int distanceVal = sonar.ping_cm(); int soundDetectedVal = digitalRead(soundDetectedPin); //Opóźnienie, aby projekt nie mógł w nieskończoność korzystać z głośnika. opóźnienie (30000); //Seryjne drukowanie i drukowanie linii, dzięki czemu można łatwo zobaczyć, jakie wartości są pobierane przez moduły czujników. Serial.print("Wartość dźwięku: "); //Wiele instrukcji if, aby program odtwarzał różne pliki audio w zależności od wartości mierzonych przez moduły czujników. if (soundDetectedVal == 0) { Serial.println(soundDetectedVal); Serial.print("Odległość: "); if (distanceVal == 0) { Serial.println(distanceVal); Serial.print("Wartość światła: "); if (lightDetectedVal >= 1000) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(1); //Kolejny wydruk seryjny, aby zobaczyć, jaki dokładnie plik audio został odtworzony. Serial.println("1--------"); //Kolejne opóźnienie umożliwiające odtwarzanie pliku audio w pełnej długości. opóźnienie(5000); } else if (lightDetectedVal >= 900) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(2); Serial.println("2--------"); opóźnienie(5000); } else if (lightDetectedVal >= 800) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(3); Serial.println("3--------"); opóźnienie(5000); } else if (lightDetectedVal >= 700) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(4); Serial.println("4--------"); opóźnienie(5000); } else if (lightDetectedVal >= 600) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(5); Serial.println("5 ---------"); opóźnienie(5000); } else if (lightDetectedVal >= 500 || lightDetectedVal 0 || distanceVal == NULL) { Serial.println(distanceVal); Serial.print("Wartość światła: "); if (lightDetectedVal >= 1000) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(7); Serial.println("7 ---------"); opóźnienie(5000); } else if (lightDetectedVal >= 900) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(8); Serial.println("8 ---------"); opóźnienie(8000); } else if (lightDetectedVal >= 800) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(9); Serial.println("9 ---------"); opóźnienie(5000); } else if (lightDetectedVal >= 700) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(10); Serial.println("10 --------"); opóźnienie(8000); } else if (lightDetectedVal >= 600) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(11); Serial.println("11 --------"); opóźnienie(6000); } else if (lightDetectedVal >= 500 || lightDetectedVal <= 1000) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(13); Serial.println("13 --------"); opóźnienie(5000); } else if (lightDetectedVal >= 900) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(14); Serial.println("14 --------"); opóźnienie(5000); } else if (lightDetectedVal >= 800) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(15); Serial.println("15 --------"); opóźnienie(5000); } else if (lightDetectedVal >= 700) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(16); Serial.println("16 --------"); opóźnienie(5000); } else if (lightDetectedVal >= 600) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(17); Serial.println("17 --------"); opóźnienie(5000); } else if (lightDetectedVal >= 500 || lightDetectedVal 0 || distanceVal == NULL || distanceVal >= 150) { Serial.println(distanceVal); Serial.print("Wartość światła: "); if (lightDetectedVal >= 1000) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(19); Serial.println("19-------"); opóźnienie(5000); } else if (lightDetectedVal >= 900) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(20); Serial.println("20 --------"); opóźnienie(5000); } else if (lightDetectedVal >= 800) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(21); Serial.println("21 --------"); opóźnienie(5000); } else if (lightDetectedVal >= 700) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(22); Serial.println("22 --------"); opóźnienie(5000); } else if (lightDetectedVal >= 600) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(23); Serial.println("23 --------"); opóźnienie(5000); } else if (lightDetectedVal >= 500 || lightDetectedVal << 500) { Serial.println(lightDetectedVal); wtv020sd16p.playVoice(24); Serial.println("24 --------"); opóźnienie(5000); } } } }

Krok 5: Sprawa

Walizka
Walizka
Walizka
Walizka

Teraz nadchodzi właściwa, skomplikowana część.

Dopasowanie wszystkiego do obudowy może być nieco trudne, zależy to od tego, jak wszystko dopasowałeś do swojej płytki stykowej lub jak lutowałeś rzeczy razem. Ale będziesz musiał zrobić kilka otworów, aby czujniki się przykleiły. Umieściłem mikrofon (potrzebne wiertło 9mm) i moduł sonaru (potrzebne wiertło 6mm) z tyłu i LDR z przodu czołgu, ale możesz je skutecznie umieścić w dowolnym miejscu, jeśli masz miejsce.

Pamiętaj, aby wyciąć otwór w korpusie modelu, aby móc podłączyć arduino za pomocą kabla połączeniowego.

Polecam umieścić głośnik w wieżyczce. ponieważ powinno tam pozostać dużo miejsca.

Powyższy obrazek po lewej pokazuje, jak zamontowałem arduino i wydruk, który przylutowałem do modelu Leopard 2. Prawy obraz to taki, w którym zamontowana jest większość okablowania.

To, co możesz zrobić, to wywiercić małe otwory w dolnej części modelu, aby zabezpieczyć Arduino opaskami kablowymi.

Ale jeśli się nie mylę, powinieneś już skończyć.

Zalecana: