Jak zbudować robota w domu (ze zdjęciami)

Spisu treści:

Jak zbudować robota w domu (ze zdjęciami)
Jak zbudować robota w domu (ze zdjęciami)

Wideo: Jak zbudować robota w domu (ze zdjęciami)

Wideo: Jak zbudować robota w domu (ze zdjęciami)
Wideo: SketchUp Tips and Tricks: Image, Texture, Matched Photo Import Options 2024, Może
Anonim

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

1123333 1
1123333 1

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
1123333 2
1123333 2

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.

1123333 3
1123333 3

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.

1123333 4
1123333 4

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

1123333 5
1123333 5

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.

1123333 6
1123333 6

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ą.

1123333 7
1123333 7

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ść.

1123333 8
1123333 8

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

1123333 9
1123333 9

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.

1123333 10
1123333 10

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.

1123333 11
1123333 11

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.

1123333 12
1123333 12

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).

1123333 13
1123333 13

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.

1123333 14
1123333 14

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.

1123333 15
1123333 15

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.

1123333 16
1123333 16

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.

1123333 17
1123333 17

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.

1123333 18
1123333 18

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

1123333 19
1123333 19

Krok 1. Odwróć robota na bok, aby widzieć baterie w opakowaniu

Ustaw go tak, aby kabel akumulatora wychodził z lewej strony na dole.

1123333 20
1123333 20

Krok 2. Podłącz czerwony przewód do drugiej sprężyny od lewej na dole

Upewnij się, że akumulator jest prawidłowo ustawiony.

1123333 21
1123333 21

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.

1123333 22
1123333 22

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.

1123333 23
1123333 23

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.

1123333 24
1123333 24

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.

1123333 25
1123333 25

Krok 7. Podłącz czerwony przewód z przedniej czerwonej szyny na styku 30 do styku 5 V na Arduino

Zapewni to zasilanie Arduino.

1123333 26
1123333 26

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.

1123333 27
1123333 27

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.

1123333 28
1123333 28

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.

1123333 29
1123333 29

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

1123333 30
1123333 30

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.

1123333 31
1123333 31

Krok 2. Podłącz akumulator do Arduino

Podłącz tylne gniazdo baterii do złącza w Arduino, aby zapewnić mu zasilanie.

1123333 32
1123333 32

Krok 3. Podłącz Arduino do komputera przez USB

System Windows prawdopodobnie nie rozpozna urządzenia.

1123333 33
1123333 33

Krok 4. Naciśnij

⊞ Wygraj+R i typ devmgmt.msc.

Spowoduje to uruchomienie Menedżera urządzeń.

1123333 34
1123333 34

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”.

1123333 35
1123333 35

Krok 6. Wybierz „Przeglądaj mój komputer w poszukiwaniu oprogramowania sterownika

" Umożliwi to wybranie sterownika dostarczonego z Arduino IDE.

1123333 36
1123333 36

Krok 7. Kliknij „Przeglądaj”, a następnie przejdź do wyodrębnionego wcześniej folderu

W środku znajdziesz folder „sterowniki”.

1123333 37
1123333 37

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

1123333 38
1123333 38

Krok 1. Uruchom Arduino IDE, klikając dwukrotnie plik arduino.exe w folderze IDE

Zostaniesz powitany pustym projektem.

1123333 39
1123333 39

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”. }

1123333 40
1123333 40

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

1123333 41
1123333 41

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); } }

1123333 42
1123333 42

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(); } }

Zalecana: