Chcesz nauczyć się tworzyć własnego robota? Istnieje wiele różnych typów robotów, które możesz samodzielnie zbudować. Większość ludzi chce zobaczyć robota wykonującego łatwe zadanie przemieszczania się z punktu A do B. Możesz zbudować robota całkowicie z komponentów analogowych lub kupić zestaw startowy. Stworzenie własnego robota to świetny sposób na naukę elektroniki i programowania komputerowego.
Krok
Część 1 z 5: Montaż robota
Krok 1. Złóż swoje komponenty
Aby zbudować podstawowego robota, potrzebujesz kilku prostych komponentów. Większość lub wszystkie te komponenty można znaleźć w lokalnym sklepie hobbystycznym z elektroniką lub w niektórych sklepach internetowych. Niektóre zestawy zawierają wszystkie te elementy. Ten robot nie wymaga lutowania:
- Arduino Uno (lub inny mikrokontroler)
- 2 serwa 360 stopni
- 2 koła pasujące do serwa
- 1 wolne koło
- 1 płytka testowa (płytka prototypowa lub projektowa), która nie została przylutowana (poszukaj płytki testowej, która ma dwa dodatnie i ujemne rzędy z każdej strony)
- 1 czujnik zbliżeniowy (z czteropinowym kablem połączeniowym)
- 1 przełącznik przyciskowy
- 1 rezystor 10kΩ
- 1 kabel USB A do B
- 1 zestaw łamliwych nagłówków
- 1 6 x uchwyt baterii AA z gniazdem zasilania 9 V DC
- 1 opakowanie 22. kable rozruchowe lub pojedynczy kabel
- Izolacja tam iz powrotem (podwójna taśma) lub pistolet do klejenia
Krok 2. Obróć komorę baterii tak, aby jej płaski tył był skierowany do góry
Zbudujesz korpus robota, wykorzystując komorę baterii jako podstawę.
Krok 3. Umieść dwa serwa skierowane w tym samym kierunku na końcu wnęki baterii
Ten koniec to koniec, w którym kabel wychodzi z akumulatora. Serwa powinny dotykać dna, a mechanizm obrotowy każdego serwa powinien być skierowany na zewnątrz z boków komory baterii. Ważne jest, aby te serwa były ustawione prawidłowo, aby koła były proste. Kable do serwomechanizmu muszą wychodzić z tyłu komory baterii.
Krok 4. Przyklej serwa izolacją lub klejem
Upewnij się, że serwo jest mocno przymocowane do komory baterii. Tył serwomechanizmu musi być wyrównany z tylną częścią komory baterii.
Teraz serwa powinny zajmować połowę miejsca z tyłu komory baterii
Krok 5. Przyklej płytkę testową prostopadle do pozostałej przestrzeni w komorze baterii
Ta tablica testowa będzie lekko zwisać z przodu komory baterii i będzie rozciągać się na obie strony. Przed kontynuowaniem upewnij się, że płyta testowa jest szczelna. Rząd „A” powinien znajdować się najbliżej serwomechanizmu.
Krok 6. Podłącz mikrokontroler Arduino do górnej części serwomechanizmu
Jeśli przymocujesz serwo poprawnie, płaska część dwóch serwomechanizmów powinna się stykać. Przyklej płytkę Arduino do tego płaskiego miejsca, tak aby złącza zasilania USB i Arduino były skierowane w dół (z dala od płytki testowej). Przód Arduino będzie nachodził na płytkę testową.
Krok 7. Zainstaluj koła na serwach
Mocno dociśnij koła do obracającego się serwomechanizmu. Może to wymagać znacznej siły, ponieważ koła są zaprojektowane tak, aby miały otwory, które dokładnie pasują do kształtu końcówki serwomechanizmu.
Krok 8. Zainstaluj wolne koło na spodzie płyty testowej
Jeśli odwrócisz robota do góry nogami, zobaczysz małą płytkę testową zwisającą z komory baterii. Przymocuj wolne koło do tej wiszącej części. W razie potrzeby użyj klina. Wolne koło służy jako przednie koło, które pozwala robotowi z łatwością obracać się w dowolnym kierunku.
Jeśli kupiłeś zestaw, wolne koło może mieć kilka klinów, których możesz użyć, aby zapewnić, że koło może swobodnie dotykać podłoża
Część 2 z 5: Okablowanie robota
Krok 1. Wytnij dwie listwy 3-pinowe
Użyjesz tego do podłączenia serwomechanizmu do płytki testowej. Wciśnij kołki w dół przez nagłówki, aby wyszły w równej odległości po obu stronach.
Krok 2. Włóż dwa nagłówki do pinów 1-3 i 6-8 w rzędzie E na płytce testowej
Upewnij się, że są mocno lub mocno włożone.
Krok 3. Połącz przewody serwa z głowicą, z czarnym przewodem po lewej stronie (piny 1 i 6)
To połączy serwo z płytą testową. Upewnij się, że lewy serwomechanizm jest podłączony do lewego nagłówka, a prawy serwomechanizm jest podłączony do prawego nagłówka.
Krok 4. Podłącz czerwony przewód połączeniowy ze styków C2 i C7 do styku czerwonej szyny (dodatni)
Upewnij się, że używasz czerwonej szyny z tyłu płytki testowej (bliżej reszty korpusu robota).
Krok 5. Podłącz czarny przewód połączeniowy ze styków B1 i B6 do niebieskiego styku szyny (masa)
Upewnij się, że używasz niebieskiej szyny z tyłu płytki testowej. Nie podłączaj kabla do czerwonego kołka szyny.
Krok 6. Podłącz białe przewody połączeniowe z pinów 12 i 13 Arduino do A3 i A8
Dzięki temu Arduino będzie mógł sterować serwomechanizmem i obracać kołem.
Krok 7. Przymocuj czujnik z przodu płytki testowej
Czujnik nie jest montowany do zewnętrznej szyny zasilającej na płytce testowej, ale do pierwszych dwóch rzędów pinów z literą (J). Upewnij się, że umieściłeś go dokładnie pośrodku, z równą liczbą pustych szpilek z każdej strony.
Krok 8. Podłącz czarny przewód połączeniowy z pinu I14 do pierwszego pinu niebieskiej szyny po lewej stronie czujnika
To spowoduje uziemienie czujnika.
Krok 9. Podłącz czerwony przewód połączeniowy z pinu I17 do pierwszego pinu czerwonej szyny po prawej stronie czujnika
Zapewni to zasilanie czujnika.
Krok 10. Podłącz białe przewody połączeniowe z pinu I15 do pinu 9 na Arduino, a od I16 do pinu 8
Dostarczy to informacji z czujnika do mikrokontrolera.
Część 3 z 5: Instalacja kabla zasilającego
Krok 1. Odwróć robota, aby zobaczyć komorę baterii w środku
Ułóż komorę baterii tak, aby kabel wychodził przez lewy dolny róg.
Krok 2. Połącz czerwony przewód z drugą sprężyną od lewej na dole
Upewnij się, że komora baterii jest odpowiednio wyrównana lub skierowana we właściwym kierunku.
Krok 3. Połącz czarny drut z ostatnią sprężyną w prawym dolnym rogu
Te dwa przewody pomogą zapewnić odpowiednie napięcie do Arduino.
Krok 4. Podłącz czerwone i czarne przewody do czerwonych i niebieskich pinów, które znajdują się po prawej stronie z tyłu płytki testowej
Czarny przewód powinien iść do niebieskiego pinu szyny na pinie 30. Czerwony przewód powinien iść do czerwonego pinu szyny na pinie 30.
Krok 5. Podłącz czarny przewód z pinu GND na Arduino do tylnej części niebieskiej szyny
Podłącz przewód do styku 28 na niebieskiej szynie.
Krok 6. Podłącz czarny przewód z tyłu niebieskiej szyny do przodu niebieskiej szyny na styku 29 dla obu szyn
Nie podłączaj czerwonej szyny, ponieważ możesz uszkodzić Arduino.
Krok 7. Podłącz czerwony przewód z przodu czerwonej szyny na pinie 30 do pinu 5V w Arduino
Zapewni to zasilanie Arduino.
Krok 8. Włóż przełącznik przyciskowy w przestrzeń między pinami 24-26
Ten przełącznik pozwoli Ci wyłączyć robota bez konieczności wyłączania zasilania.
Krok 9. Podłącz czerwony przewód z H24 do czerwonej szyny na następnym pustym bolcu po prawej stronie czujnika
Zapewni to zasilanie przycisku.
Krok 10. Użyj rezystora, aby podłączyć H26 do niebieskiej szyny
Podłącz go do pinu bezpośrednio obok czarnego przewodu, który właśnie podłączałeś w poprzednich krokach.
Krok 11. Podłącz biały przewód z G26 do pinu 2 w Arduino
Umożliwi to Arduino wykrycie przycisków.
Część 4 z 5: Instalowanie oprogramowania Arduino
Krok 1. Pobierz i rozpakuj Arduino IDE
To tutaj rozwija się Arduino i umożliwia programowanie instrukcji, które następnie można wgrać do mikrokontrolera Arduino. Możesz go pobrać za darmo ze strony arduino.cc/en/main/software. Rozpakuj pobrany plik, klikając go dwukrotnie i przenosząc folder, który zawiera, do łatwo dostępnej lokalizacji. W rzeczywistości nie zainstalujesz programu, zamiast tego po prostu uruchomisz go z folderu, który został wyodrębniony przez dwukrotne kliknięcie arduino.exe.
Krok 2. Podłącz komorę baterii do Arduino
Włóż tylne gniazdo baterii do złącza w Arduino, aby ją zasilić.
Krok 3. Włóż Arduino do komputera przez USB
Możliwe, że system Windows nie rozpozna urządzenia.
Krok 4. Naciśnij
Wygraj+R i typ devmgmt.msc.
To polecenie otworzy Menedżera urządzeń.
Krok 5. Kliknij prawym przyciskiem myszy Nieznane urządzenie w obszarze Inne urządzenia i wybierz Aktualizuj oprogramowanie sterownika
Jeśli nie widzisz tej opcji, kliknij Właściwości, wybierz kartę Sterownik, a następnie kliknij Aktualizuj sterownik.
Krok 6. Wybierz Przeglądaj mój komputer w poszukiwaniu oprogramowania sterownika
Umożliwi to wybór wbudowanych sterowników dostarczonych z Arduino IDE.
Krok 7. Kliknij Przeglądaj, a następnie otwórz wcześniej wyodrębniony folder
Znajdziesz w nim folder sterowników.
Krok 8. Wybierz folder sterowników i kliknij OK
Potwierdź, że chcesz kontynuować, jeśli pojawi się ostrzeżenie o nieznanym oprogramowaniu.
Część 5 z 5: Programowanie robotów
Krok 1. Otwórz Arduino IDE, klikając dwukrotnie plik arduino.exe w folderze IDE
Zostaniesz powitany pustym projektem.
Krok 2. Wklej lub wklej następujący kod, aby Twój robot był zaawansowany
Poniższy kod zapewni działanie Arduino.
#include // dodaje bibliotekę „Servo” do programu // poniższe polecenie tworzy dwa obiekty serwo Servo leftMotor; Serwo prawosilnik; void setup() { leftMotor.attach(12); // jeśli przypadkowo zamieniłeś numery pinów swojego serwa, możesz zamienić je tutaj rightMotor.attach(13); } void loop() { leftMotor.write(180); // przy obrocie 360 stopni (obrót ciągły), liczba 180 instruuje serwo, aby poruszało się „do przodu” z pełną prędkością. prawoMotor.write(0); // jeśli obie wartości wynoszą 180, robot będzie się obracał po okręgu, ponieważ serwo jest odwrócone. „0” mówi robotowi, aby poruszał się „do tyłu” z pełną prędkością. }
Krok 3. Utwórz i prześlij program
Kliknij przycisk strzałki w prawo w lewym górnym rogu, aby utworzyć i wgrać program do podłączonego Arduino.
Możesz podnieść robota z powierzchni, ponieważ po załadowaniu programu będzie on kontynuował ruch do przodu
Krok 4. Dodaj funkcję wyłącznika zatrzymania (wyłącznik awaryjny)
Dodaj następujący kod do sekcji „void loop()” kodu, aby dodać funkcję przełącznika zatrzymania nad funkcją „write()”.
if(digitalRead(2) == HIGH) // to polecenie jest uruchamiane po naciśnięciu przycisku na pinie 2 Arduino { while(1) { leftMotor.write(90); // "90" to neutralna pozycja serwa, która mówi serwo, żeby przestało się obracać rightMotor.write(90); } }
Krok 5. Prześlij i sprawdź swój kod
Po dodaniu kodu wyłącznika możesz przesłać kod i przetestować robota. Robot powinien kontynuować ruch do przodu, aż naciśniesz przycisk wyłącznika, co spowoduje zatrzymanie robota. Pełny kod będzie wyglądał tak:
#include // poniższe polecenie tworzy dwa serwoobiekty Servo leftMotor; Serwo prawosilnik; void setup() { leftMotor.attach(12); rightMotor.attach(13); } void loop() { if(digitalRead(2) == HIGH) { while(1) { leftMotor.write(90); prawoMotor.write(90); } } leftMotor.write(180); prawoMotor.write(0); }
Przykład
Poniższy kod użyje czujników zainstalowanych na robocie, aby skręcał w lewo, gdy robot napotka przeszkodę. Spójrz na komentarze w kodzie, aby dowiedzieć się, jak korzystać z każdej części. Poniższy kod to cały program.
#include Servo leftMotor; Serwo prawosilnik; const int serialPeriod = 250; // ten kod daje opóźnienie czasowe wyjścia konsoli co 1/4 sekundy (250 ms) unsigned long timeSerialDelay = 0; const int loopPeriod = 20; // ten kod ustawia częstotliwość odczytu czujnika na 20 ms, czyli 50 Hz unsigned long timeLoopDelay = 0; // ten kod przypisuje funkcje TRIG i ECHO do pinów w Arduino. Dostosuj liczby tutaj, jeśli łączysz je w inny sposób const int ultrasonic2TrigPin = 8; const int ultradźwiękowy2EchoPin = 9; int ultradźwiękowy2Odległość; int ultradźwiękowy2Czas trwania; // ten kod definiuje dwa możliwe stany robota: kontynuuj do przodu lub skręć w lewo #define DRIVE_FORWARD 0 #define TURN_LEFT 1 int state = DRIVE_FORWARD; // 0 = kontynuuj do przodu (DOMYŚLNE), 1 = skręć w lewo void setup() { Serial.begin(9600); // ten czujnik określa konfigurację pinów pinMode(ultrasonic2TrigPin, OUTPUT); pinMode (ultrasoniczne2EchoPin, INPUT); // to przypisuje silnik do pinów Arduino leftMotor.attach(12); rightMotor.attach(13); } void loop() { if(digitalRead(2) == HIGH) // ten kod wykrywa ''stop'' { while(1) { leftMotor.write(90); prawoMotor.write(90); } } debugOutput(); // ten kod wyświetla komunikaty debugowania do konsoli szeregowej if(millis() - timeLoopDelay >= loopPeriod) { readUltrasonicSensors(); // ten kod nakazuje czujnikowi odczytywanie i przechowywanie danych o zmierzonej odległości stateMachine(); Opóźnienie Pętli Czasu = mili(); } } void stateMachine() { if(state == DRIVE_FORWARD) // jeśli nie wykryto przeszkody { if(ultrasonic2Distance > 6 || ultrasonic2Distance < 0) // jeśli nic nie znajduje się przed robotem. ultrasonicDistance będzie ujemna dla niektórych ultradźwięków, jeśli nie ma przeszkód { // drive forward rightMotor.write(180); leftMotor.write(0); } else // jeśli przed nami znajduje się jakiś obiekt { state = TURN_LEFT; } } else if(state == TURN_LEFT) // jeśli wykryta zostanie przeszkoda, skręć w lewo { unsigned long timeToTurnLeft = 500; // obrót o 90 stopni zajmuje około 0,5 sekundy. Może zajść potrzeba dostosowania tej wartości, jeśli Twoje koła różnią się rozmiarem od rozmiaru w przykładzie unsigned long turnStartTime = millis(); // utrzymuj warunek, gdy robot zaczyna się obracać while((millis()-turnStartTime) < timeToTurnLeft) // utrzymuj ten cykl, aż timeToTurnLeft (500) minie { // skręć w lewo, pamiętaj, że gdy oba są "180", robot się obróci. prawoMotor.write(180); leftMotor.write(180); } stan = DRIVE_FORWARD; } } void readUltrasonicSensors() { // to jest dla ultradźwięków 2. Może zajść potrzeba zmiany tego polecenia, jeśli używasz innego czujnika. digitalWrite (ultrasoniczny2TrigPin, WYSOKI); opóźnienieMikrosekund(10); // wyciągnij pin TRIG wysoko przez co najmniej 10 mikrosekund digitalWrite(ultrasonic2TrigPin, LOW); ultradźwiękowy2Czas trwania = pulseIn (ultradźwiękowy2EchoPin, WYSOKI); ultradźwiękowy2Distance = (ultradźwiękowy2Duration/2)/29; } // poniższe służy do debugowania błędów w konsoli. void debugOutput() { if((millis() - timeSerialDelay) > serialPeriod) { Serial.print("ultrasonic2Distance: "); Serial.print(ultrasonic2Distance); Serial.print("cm"); Serial.println(); OpóźnienieSeryjne-Czasu = milis(); } }