Spisu treści:
Wideo: Żartujący czołg: 5 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:31
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
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
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:
Drukowany w 3D czołg sterowany RC !!: 8 kroków (ze zdjęciami)
3d Printed RC Controlled Tank!!: Czy kiedykolwiek chciałeś mieć zdalnie sterowany pojazd, który może zjechać z drogi i który możesz nawet zobaczyć z kamery z widokiem z pierwszej osoby, to ten czołg jest dla ciebie niesamowity. Gąsienice na zbiorniku zapewniają doskonałą przyczepność podczas jazdy po terenach takich jak brud i
Czołg RC z ruchomą kamerą FPV: 9 kroków (ze zdjęciami)
Czołg RC z ruchomą kamerą FPV: Witam. W tej instrukcji pokażę, jak zbudować zdalnie sterowany czołg z kamerą FPV. Na początku buduję tylko czołg RC bez kamery FPV, ale kiedy jeździłem nim w domu, nie widziałem, gdzie on jest. Więc wymyśliłem, że dodam do
Czołg Halo Scorpion: 5 kroków
Halo Scorpion Tank: Ta instrukcja została stworzona w celu spełnienia wymagań projektowych kursu Makecourse na Uniwersytecie Południowej Florydy (www.makecourse.com). To jest mój krok po kroku proces projektowania i tworzenia w pełni funkcjonalnego czołgu Halo Scorpion. Link
Jak zbudować potężny metalowy czołg robota RC: 6 kroków (ze zdjęciami)
Jak zbudować potężny metalowy czołg robota RC: Dobrzy przyjaciele! Pomyślałem więc o rodzaju projektu, który byłby interesujący i postanowiłem zbudować czołg (kosmiczny pełzający) na znaku oczywiście zbudowanym w całości z metalu. 100% Moja konstrukcja jest wysokiej jakości i dokładności, większość części ta
PiTanq - robot-czołg z Raspberry Pi i Pythonem do nauki AI: 10 kroków
PiTanq - robot-czołg z Raspberry Pi i Pythonem do nauki AI: Pitanq to robot-czołg z kamerą zasilaną przez Raspberry Pi. Jego celem jest pomoc w nauce sztucznej inteligencji samodzielnej jazdy. Sztuczna inteligencja w zbiorniku jest wspierana przez OpenCV i Tensoflow zbudowane specjalnie dla Raspbian Jessie. W oparciu o solidne aluminium