Robot „Orangutan” – budowa krok po kroku

Wgrywanie oprogramowania

Jeśli nasz kod jest już gotowy, to musimy go skompilować. W środowisku Atmel Studio 6 dokonuje się tego wybierając zakładkę Build -> Build Solution lub naciskajac przycisk F7. Na dole okna zaczną pojawiać się komunikaty. Jeśli na końcu kompilacji wyświetli nam się informacja
========== Build: 1 succeeded or up-to-date, 0 failed, 0 skipped ==========”, to wszystko jest w porządku. W przeciwnym wypadku musimy prześledzić wyświetlone błędy, poprawić je i spróbować ponownie.

Podczas kompilacji tworzy się specjalny plik, który możemy wgrać do naszego mikrokontrolera. Aby to zrobić, potrzebujemy zaopatrzeć się w urządzenie zwane programatorem. Istnieją różne rodzaje, kilka z nich podałem na początku artykułu. Każdy posiada nieco inne ustawienia – jedne są obsługiwane bezpośrednio z Atmel Studio 6, inne wymagają dodatkowej aplikacji – szczegóły można znaleźć w instrukcjach producentów. Po skonfigurowaniu programatora, wgrywamy plik, który tworzy się w katalogu Debug naszego projektu i ma rozszerzenie .hex. Sposób podłączenia programatora do płytki sterownika wyjaśnia poniższy rysunek:

Budowa robotów dla wielu osób może się wydawać czynnością rodem z opowiadać SF – kojarzyć się ze sterylnym laboratorium, specjalistycznymi narzędziami i kadrą światowej klasy naukowców, głowiącymi się nad skomplikowanymi równaniami.

 

Należy pamiętać, że robot musi być włączony w trakcie programowania – włącza się go jednym z przycisków pod wyświetlaczem. Jeśli wcześniej wgrywaliśmy jakiś kod, to warto ustawić podwozie na jakiejś podpórce – na wypadek, gdyby silniki zaczęły się obracać.

Po poprawnym skompilowaniu i wgraniu oprogramowania, robot powinien jechać przed siebie, próbować ominąć przeszkodę w dużej odległości, a w przypadku gdyby nie zdążył – zatrzymać się, rozejrzeć i wybrać bezkolizyjną trasę. Podany wwcześniej program jest odpowiedzialny za zachowanie widoczne w filmie, na początku artykułu. Gdy już nasza konstrukcja zacznie się poruszać i zachowywać w przewidziany sposób, nic nie stoi na przeszkodzie, by napisać program od zera, wprowadzić własne poprawki lub kompletnie zmienić koncepcję i np. wprowadzić czynnik losowy (np. wykorzystując funkcję rand() przy podejmowaniu decyzji). Można także wykorzystać zintegrowany ze sterownikiem buzzer i funkcję play_note(), dając robotowi opcję „komunikacji” werbanej, np. w sposób podobny do R2D2 z filmu „Gwiezdne Wojny”. Możliwości jest wiele, na pewno po ukończeniu budowy każdy będzie miał własne pomysły. Powodzenia!

Do pobrania

O autorze