Chcesz nauczyć się budować własnego robota? Istnieje wiele różnych typów robotów, które możesz wykonać samodzielnie. Większość ludzi chce zobaczyć robota wykonującego proste zadania przemieszczania się z punktu A do punktu B. Możesz zrobić robota całkowicie z komponentów analogowych lub kupić zestaw startowy od podstaw! Budowanie własnego robota to świetny sposób na naukę zarówno elektroniki jak i programowania.
Kroki
Część 1 z 6: Montaż robota
Krok 1. Zbierz swoje komponenty
Aby zbudować podstawowego robota, potrzebujesz kilku prostych komponentów. Większość, jeśli nie wszystkie, z tych komponentów można znaleźć w lokalnym sklepie z elektroniką lub w kilku sklepach internetowych. Niektóre podstawowe zestawy mogą również zawierać wszystkie te elementy. Ten robot nie wymaga lutowania:
- Arduino Uno (lub inny mikrokontroler)
- 2 serwa o ciągłym obrocie
- 2 koła pasujące do serw
- 1 rolka samonastawna
- 1 mała płytka stykowa bez lutowania (poszukaj płytki stykowej, która ma dwie linie dodatnie i ujemne z każdej strony)
- 1 czujnik odległości (z 4-pinowym kablem połączeniowym)
- 1 mini przełącznik przyciskowy
- 1 rezystor 10kΩ
- 1 kabel USB A do B
- 1 zestaw wybijanych nagłówków
- 1 6 x uchwyt baterii AA z gniazdem zasilania 9 V DC;
- 1 paczka przewodów połączeniowych lub przewód połączeniowy o średnicy 22 mm
- Mocna taśma dwustronna lub klej na gorąco
Krok 2. Odwróć akumulator tak, aby płaski tył był skierowany do góry
Będziesz budować ciało robota, używając zestawu akumulatorów jako podstawy.
Krok 3. Wyrównaj dwa serwa na końcu akumulatora
To powinien być koniec, z którego wychodzi przewód akumulatora. Serwa powinny dotykać dna, a mechanizmy obrotowe każdego z nich powinny być skierowane na zewnątrz boków akumulatora. Serwa muszą być odpowiednio ustawione, aby koła szły prosto. Przewody serw powinny wychodzić z tyłu akumulatora.
Krok 4. Przyklej serwa taśmą lub klejem
Upewnij się, że są solidnie przymocowane do akumulatora. Tyły serw powinny być wyrównane z tylną częścią akumulatora.
Serwa powinny teraz zajmować tylną połowę akumulatora
Krok 5. Przymocuj płytkę stykową prostopadle na otwartej przestrzeni na akumulatorze
Powinien zwisać nieco z przodu akumulatora i wystawać poza każdą stronę. Przed kontynuowaniem upewnij się, że jest dobrze zamocowany. Rząd „A” powinien znajdować się najbliżej serw.
Krok 6. Podłącz mikrokontroler Arduino do szczytów serw
Jeśli prawidłowo przymocowałeś serwa, powinna być płaska przestrzeń po ich zetknięciu się. Przyklej płytkę Arduino do tego płaskiego miejsca, tak aby złącza USB i zasilania Arduino były skierowane do tyłu (z dala od płytki stykowej). Przód Arduino powinien ledwie zachodzić na płytkę stykową.
Krok 7. Załóż koła na serwa
Mocno dociśnij koła do mechanizmu obrotowego serwomechanizmu. Może to wymagać znacznej siły, ponieważ koła są zaprojektowane tak, aby pasowały tak ciasno, jak to możliwe, aby zapewnić najlepszą przyczepność.
Krok 8. Przymocuj kółko do dolnej części płytki stykowej
Jeśli odwrócisz podwozie, powinieneś zobaczyć trochę płytki stykowej wystającej poza akumulator. Przymocuj kółko do tego wysuniętego elementu, używając w razie potrzeby pionów. Kółko działa jak przednie koło, umożliwiając robotowi łatwe skręcanie w dowolnym kierunku.
Jeśli kupiłeś zestaw, kółko mogło mieć kilka podpór, których możesz użyć, aby zapewnić, że kółko dotknie ziemi. i
Część 2 z 6: Okablowanie robota
Krok 1. Oderwij dwa 3-pinowe listwy
Użyjesz ich do podłączenia serw do płytki prototypowej. Wciśnij kołki w dół przez głowicę, tak aby kołki wychodził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 płytki stykowej
Upewnij się, że są dobrze włożone.
Krok 3. Podłącz kable serwa do nagłówków, z czarnym kablem po lewej stronie (piny 1 i 6)
To połączy serwa z płytą stykową. Upewnij się, że lewy serwomechanizm jest podłączony do lewego nagłówka, a prawy serwomechanizm do prawego nagłówka.
Krok 4. Podłącz czerwone przewody połączeniowe ze styków C2 i C7 do czerwonych (dodatnich) styków szyny
Upewnij się, że używasz czerwonej szyny z tyłu płytki stykowej (bliżej reszty obudowy).
Krok 5. Podłącz czarne przewody połączeniowe ze styków B1 i B6 do niebieskich (masowych) styków szyny
Upewnij się, że używasz niebieskiej szyny z tyłu płytki stykowej. Nie podłączaj ich do czerwonych kołków szynowych.
Krok 6. Podłącz białe przewody połączeniowe z pinów 12 i 13 na Arduino do A3 i A8
Dzięki temu Arduino będzie mógł sterować serwomechanizmami i obracać kołami.
Krok 7. Przymocuj czujnik z przodu płytki stykowej
Nie jest podłączany do zewnętrznych szyn zasilających na płytce stykowej, ale do pierwszego rzędu pinów z literami (J). Upewnij się, że umieściłeś go dokładnie pośrodku, z równą liczbą kołków dostępnych po każdej stronie.
Krok 8. Podłącz czarny przewód połączeniowy z pinu I14 do pierwszego dostępnego 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 dostępnego pinu czerwonej szyny po prawej stronie czujnika
To zasili czujnik.
Krok 10. Podłącz białe przewody połączeniowe z pinu I15 do pinu 9 w Arduino i od I16 do pinu 8
To przekaże informacje z czujnika do mikrokontrolera.
Część 3 z 6: Okablowanie zasilania
Krok 1. Odwróć robota na bok, aby widzieć baterie w opakowaniu
Ustaw go tak, aby kabel akumulatora wychodził z lewej strony na dole.
Krok 2. Podłącz czerwony przewód do drugiej sprężyny od lewej na dole
Upewnij się, że akumulator jest prawidłowo ustawiony.
Krok 3. Podłącz czarny drut do ostatniej sprężyny w prawym dolnym rogu
Te dwa kable pomogą zapewnić prawidłowe napięcie do Arduino.
Krok 4. Podłącz czerwone i czarne przewody do skrajnie prawej czerwonej i niebieskiej szpilki z tyłu płytki stykowej
Czarny kabel powinien być podłączony do niebieskiego pinu szyny na pinie 30. Czerwony kabel powinien być podłączony do czerwonego pinu szyny na pinie 30.
Krok 5. Podłącz czarny przewód z pinu GND na Arduino do tylnej niebieskiej szyny
Podłącz go do styku 28 na niebieskiej szynie.
Krok 6. Podłącz czarny przewód z tylnej niebieskiej szyny do przedniej niebieskiej szyny na styku 29 dla każdego
Nie łącz czerwonych szyn, ponieważ prawdopodobnie uszkodzisz Arduino.
Krok 7. Podłącz czerwony przewód z przedniej czerwonej szyny na styku 30 do styku 5 V na Arduino
Zapewni to zasilanie Arduino.
Krok 8. Włóż przełącznik przyciskowy w szczelinę między rzędami na pinach 24-26
Ten przełącznik pozwoli Ci wyłączyć robota bez konieczności odłączania zasilania.
Krok 9. Podłącz czerwony przewód z H24 do czerwonej szyny w następnym dostępnym bolcu po prawej stronie czujnika
To zasili przycisk.
Krok 10. Użyj rezystora, aby podłączyć H26 do niebieskiej szyny
Podłącz go do pinu bezpośrednio obok czarnego przewodu, który podłączyłeś kilka kroków temu.
Krok 11. Podłącz biały przewód z G26 do pinu 2 w Arduino
Umożliwi to Arduino zarejestrowanie przycisku.
Część 4 z 6: Instalowanie oprogramowania Arduino
Krok 1. Pobierz i rozpakuj Arduino IDE
Jest to środowisko programistyczne Arduino, które umożliwia programowanie instrukcji, które następnie można przesłać do mikrokontrolera Arduino. Możesz go pobrać za darmo ze strony arduino.cc/en/main/software. Rozpakuj pobrany plik, klikając go dwukrotnie i przenieś folder do środka do łatwo dostępnej lokalizacji. W rzeczywistości nie będziesz instalować programu. Zamiast tego po prostu uruchomisz go z wyodrębnionego folderu, klikając dwukrotnie arduino.exe.
Krok 2. Podłącz akumulator do Arduino
Podłącz tylne gniazdo baterii do złącza w Arduino, aby zapewnić mu zasilanie.
Krok 3. Podłącz Arduino do komputera przez USB
System Windows prawdopodobnie nie rozpozna urządzenia.
Krok 4. Naciśnij
⊞ Wygraj+R i typ devmgmt.msc.
Spowoduje to uruchomienie Menedżera urządzeń.
Krok 5. Kliknij prawym przyciskiem myszy „Nieznane urządzenie” w sekcji „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 wybranie sterownika dostarczonego z Arduino IDE.
Krok 7. Kliknij „Przeglądaj”, a następnie przejdź do wyodrębnionego wcześniej folderu
W środku znajdziesz folder „sterowniki”.
Krok 8. Wybierz folder „sterowniki” i kliknij „OK
" Potwierdź, że chcesz kontynuować, jeśli pojawi się ostrzeżenie o nieznanym oprogramowaniu.
Część 5 z 6: Programowanie robota
Krok 1. Uruchom Arduino IDE, klikając dwukrotnie plik arduino.exe w folderze IDE
Zostaniesz powitany pustym projektem.
Krok 2. Wklej następujący kod, aby robot działał prosto
Poniższy kod sprawi, że Twoje Arduino będzie stale się rozwijało.
#include // to dodaje bibliotekę "Servo" do programu // to tworzy dwa obiekty serwo Servo leftMotor; Serwo prawosilnik; void setup() { leftMotor.attach(12); // jeśli przypadkowo zmieniłeś numery pinów dla swoich serwomechanizmów, możesz zamienić je tutaj rightMotor.attach(13); } void loop() { leftMotor.write(180); // przy ciągłym obrocie 180 nakazuje serwo poruszać się z pełną prędkością "do przodu". prawosilnik. napisz(0); // jeśli oba są na 180, robot zatoczy koło, ponieważ serwa są odwrócone. „0” mówi mu, aby przesunął się z pełną prędkością „do tyłu”. }
Krok 3. Zbuduj i prześlij program
Kliknij przycisk strzałki w prawo w lewym górnym rogu, aby zbudować 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 awaryjnego
Dodaj następujący kod do sekcji „void loop()” kodu, aby włączyć wyłącznik awaryjny, nad funkcjami „write()”.
if(digitalRead(2) == HIGH) // rejestruje się po naciśnięciu przycisku na pinie 2 Arduino { while(1) { leftMotor.write(90); // "90" to neutralna pozycja dla serwomechanizmów, która mówi im, żeby przestały się obracać rightMotor.write(90); } }
Krok 5. Prześlij i przetestuj swój kod
Po dodaniu kodu wyłącznika awaryjnego możesz przesłać i przetestować robota. Powinien nadal jechać do przodu, aż naciśniesz przełącznik, w którym to momencie przestanie się poruszać. Pełny kod powinien wyglądać tak:
#include // poniższe tworzy dwa obiekty serwo 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); }
Część 6 z 6: Przykład
Krok 1. Postępuj zgodnie z przykładem
Poniższy kod użyje czujnika przymocowanego do robota, aby skręcał w lewo za każdym razem, gdy napotka przeszkodę. Zobacz komentarze w kodzie, aby uzyskać szczegółowe informacje na temat działania każdej części. Poniższy kod to cały program.
#include Servo leftMotor; Serwo prawosilnik; const int serialPeriod = 250; // ogranicza to wyjście do konsoli do raz na 1/4 sekundy unsigned long timeSerialDelay = 0; const int loopPeriod = 20; // to ustawia, jak często czujnik przyjmuje odczyt do 20ms, co jest częstotliwością 50Hz unsigned long timeLoopDelay = 0; // to przypisuje funkcje TRIG i ECHO do pinów Arduino. Dostosuj liczby tutaj, jeśli podłączyłeś inaczej const int ultrasonic2TrigPin = 8; const int ultradźwiękowy2EchoPin = 9; int ultradźwiękowy2Odległość; int ultradźwiękowy2Czas trwania; // definiuje dwa możliwe stany robota: jazda do przodu lub skręcanie w lewo #define DRIVE_FORWARD 0 #define TURN_LEFT 1 int state = DRIVE_FORWARD; // 0 = jedź do przodu (DOMYŚLNE), 1 = skręć w lewo void setup() { Serial.begin(9600); // te konfiguracje pinów czujnika pinMode(ultrasonic2TrigPin, OUTPUT); pinMode (ultrasoniczne2EchoPin, INPUT); // to przypisuje silniki do pinów Arduino leftMotor.attach(12); rightMotor.attach(13); } void loop() { if(digitalRead(2) == HIGH) // to wykrywa wyłącznik awaryjny { while(1) { leftMotor.write(90); prawoMotor.write(90); } } debugOutput(); // wyświetla komunikaty debugowania do konsoli szeregowej if(millis() - timeLoopDelay >= loopPeriod) { readUltrasonicSensors(); // nakazuje czujnikowi odczytywanie i przechowywanie zmierzonych odległości stateMachine(); Opóźnienie Pętli Czasu = mili(); } } void stateMachine() { if(state == DRIVE_FORWARD) // jeśli nie wykryto żadnych przeszkód { 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 { // jedź do przodu 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 być konieczne dostosowanie tego, jeśli twoje koła mają inny rozmiar niż w przykładzie unsigned long turnStartTime = millis(); // zaoszczędź czas, w którym zaczęliśmy skręcać while((millis()-turnStartTime) < timeToTurnLeft) // pozostań w tej pętli, aż upłynie timeToTurnLeft { // skręć w lewo, pamiętaj, że gdy obie są ustawione na "180" obróci się. prawoMotor.write(180); leftMotor.write(180); } stan = DRIVE_FORWARD; } } void readUltrasonicSensors() { // to jest dla ultradźwięków 2. Być może będziesz musiał zmienić te polecenia, jeśli używasz innego czujnika. digitalWrite (ultrasoniczny2TrigPin, WYSOKI); opóźnienieMikrosekund(10); // utrzymuje wysoki pin wyzwalacza 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 = millis(); } }