![]() |
Złożony robot |
![]() |
Robot będzie się poruszał w kierunku światła |
Tak czy inaczej, pozostajemy przy naszej otwartoźródłowej platformie Arduino, która ułatwi nam zadanie. Jak okaże się za chwilę, cała procedura budowy urządzenia ma w sobie tylko kilka trudnych punktów.
Zacznijmy od rzeczy, które wypadałoby mieć, aby stworzyć nasz pojazd. Wiele z nich można zamienić na inne, gdyż bynajmniej nie trzeba się sztywno trzymać tej instrukcji. Bez kilku elementów się jednak nie obejdziemy:
![]() |
Najważniejsze części robota |
- Arduino - właściwie dowolna wersja (na zdjęciach jest to edycja Boraduino)
- 2 serwomechanizmy - najlepiej nie za mocne, by nie obciążały za bardzo płytki (niezbyt profesjonalnie podłączymy całość bez tranzystorów i przekaźników), ale też powinny "udźwignąć" robota, co szczególnie trudne nie będzie.
- 2 fotorezystory - niezbyt wyszukany element dyskretny, łatwy do zdobycia i tani.
- 2 rezystory - zależnie od specyfikacji fotorezystorów (najczęściej 10k omów)
- Bateria - najlepiej jedna 9V, bądź kilka połączonych.
![]() |
Serwomechanizmy podłączone do Arduino |
Ktoś może też słusznie zauważyć, że prawie 200 zł to dość spora suma jak na coś co tylko jeździ za światłem. Przypominam jednak, że jest to najprostszy robot oparty o Arduino jaki można sobie wyobrazić, a jego możliwości nie kończą się nawet po podłączeniu do telefonu z Androidem. O tym jednak przy innej okazji. Chciałem tylko zasygnalizować, że po części próbujemy strzelać do muchy z armaty, jednak jest to konieczne by dowiedzieć się jak w ogóle obsługiwać armatę.
![]() |
Arduino na płytce przymocowanej do serwomechanizmów |
![]() |
Widok na płytkę z drugiej strony |
- Koła - prozaiczna sprawa, a jednak sprawia wiele problemów. Najlepiej oczywiście kupić gotowe, które można przykręcić do serwomechanizmów. Nic się jednak nie stanie jeśli zamiast tego wytniemy je na przykład z tektury a na końcu owiniemy jakąś gumą - wiadomo, zimą mogą się ślizgać.
- Płytka stykowa - niby nie konieczna, jednak skręcanie kabelków ręcznie, czy ich lutowanie nie jest najwygodniejsze dla początkujących. Z pewnością jest to dobra inwestycja dla osób, które dużo eksperymentują ze swoimi układami.
- Kable, druciki i trochę śmieci - nie bójmy się tego przyznać. Nie mamy w domu laserowych wycinarek (przynajmniej ja nie mam), więc przy tworzeniu obudowy i łączeniu całości trzeba użyć nieco wrodzonej fantazji i poeksperymentować.
![]() |
Rozmontowany serwomechanizm |
Nie ma co ukrywać, że proces przerabiania serwomechanizmu jest zdecydowanie najtrudniejszym ze wszystkich operacji jakie wykonujemy podczas budowy robota. Na szczęście w "czasie życia" serwomechanizmu, operacji takiej dokonujemy tylko raz, a przerobiony silniczek i jego sterownik możemy używać w wielu konstrukcjach.
![]() |
Dolutowane do kabelków serwomechanizmu oporniki |
Biorąc pod uwagę, że całą operację przeprowadzamy w elemencie, który ma około 2 centymetry, przydadzą się manualne sprawności. Nie ma też jednak co przesadzać - powoli zrobi to niemal każdy. W internecie sporo jest instrukcji na ten temat, można skorzystać na przykład z tej.
Łączymy elementy z Arduino
![]() |
Widok na złożonego robota od dołu. |
Fotorezystory podłączamy do pinów analogowych 0 i 1 (szczegółowa procedura podłączania fotorezystora do Arduino), natomiast serwomechanizmy wczepiamy w piny 9 i 10.
Szczegółami serwomechanizmów zajmiemy się wkrótce, jednak ich podłączanie sprowadza się do wpięcia brązowego pinu (-) do "uziemienia", czerwonego (+) do +5V i pomarańczowego do wspomnianych wcześniej pinów 9 lub 10. Przy okazji warto pamiętać, że jeśli nasz serwomechanizm nie jest jednym z najmniejszych, warto sprawdzić jaki prąd pobiera z Arduino. Jeśli jest to więcej niż 40 mA (graniczne dla jednego wyjścia w Arduino), należy zastosować dodatkowy układ z tranzystorem, bądź w skrajnych wypadkach z przekaźnikiem.
Kod programu
![]() |
Gotowy robot |
#include "Servo.h"
Servo leftServo;
Servo rightServo;
int leftValue = 0;
int rightValue = 0;
void setup() {
leftServo.attach(10);
rightServo.attach(9);
}
void loop() {
// wartości z sensora między 50 - 900
leftValue = (analogRead(0) - 50) / 50;
rightValue = (analogRead(1) - 50) / 50;
leftServo.write(89 + rightValue);
rightServo.write(89 - leftValue);
delay(10);
}
Działa i co dalej?
Teraz już właściwie powinno pójść z górki. Cała podstawowa platforma jest już przecież gotowa. Na początek można poeksperymentować z kodem, później można się pobawić z dodatkowymi sensorami. Najciekawszy jest oczywiście czujnik odległości. Tymi ciekawostkami zajmiemy się w przyszłości.
fot: tinkerlog.com
Tagi: arduino, budujemy robota, newsy, robot