Arexx RA1-PRO User guide [pl]

Page 1
ROBOT DYDAKTYCZNY
ROBOT ARM PRO V3
INSTRUKCJE MONTAŻU: Model RA1-PRO V3
© AREXX - THE NETHERLANDS V0413
- 1 -
Page 2
Spis treści
1. Opis produktu Ramię Robota 5
2. Wymagane narzędzia 7
3. Lista części 8
4. Instrukcje montażu 10
5. Elementy elektroniczne 14
5.1 Rozpoczęcie pracy z robotem 17
6. Instalacja programu 18
7. Programator i Loader 31
7.1 RobotLoader 32
7.2 Podłączenie USB na Windows 33
7.3 Podłączenie USB na Linux 36
7.4 Test interfejsu USB 37
7.5 Otwieranie portu na Linux 38
7.6 Autotest 39
7.7 Kalibracja 41
7.8 Test klawiatury 43
8. Opragromowanie RACS 44
8.1 RACS - bezprzewodowe 49
9. Programowanie Ramienia Robota 50
xx. DODATEK
A. Schemat elektryczny Ramienia Robota 59 B. Schemat elektryczny układu zasilania 60 C. Schemat elektryczny złączy 61 D. Pomiar aktualnego położenia serwonapędu 62 E. Schemat elektryczny klawiatury 63 F. Schemat płytki PCB 64
AREXX i ROBOT ARM znaki towarowe zastrzeżone AREXX Engineering - HOLLAND.
© Wersja polska 2014: AREXX Engineering (NL).
Wszelkie prawa zastrzeżone. Każda reprodukcja lub adaptacja całości lub części podręcznika wymaga pisemnej zgody ze strony importera europejskiego:
AREXX Engineering - Zwolle (NL).
Producent i dystrybutor nie ponoszą odpowiedzialności za szkody spowodowane niewłaściwym stosowaniem produktu, błędnym montażem lub nieposzanowaniem instrukcji zawartych w tym podręczniku. Producent i dystrybutor zastrzegają sobie prawo do zmiany treści niniejszego podręcznika bez uprzedzenia.
Wsparcie techniczne dostępne na:
WWW.AREXX.COM
Producent: AREXX Engineering ZWOLLE The Netherlands
© AREXX Holland and DAGU China © Wersja polska: AREXX - The Netherlands
WWW.ROBOTERNETZ.DE
- 2 -
Page 3
Impressum
©2007 AREXX Engineering
Nervistraat 16
8013 RS Zwolle The Netherlands
Tel.: +31 (0) 38 454 2028 Fax.: +31 (0) 38 452 4482
E-Mail: Info@arexx.nl
“Robot Arm PRO i -Hobby” to znaki towarowe zastrzeżone przez AREXX Engineering. Wszystkie inne znaki towarowe należą do ich właściciela. Nie ponosimy odpowiedzialności za treści zawarte na zewnętrznych stronach internetowych wspomnianych w tym podręczniku!
Wszelkie prawa zastrzeżone. Każda reprodukcja lub adaptacja całości lub części podręcznika wymaga pisemnej zgody.
Specykacja produktu oraz dostarczane treści mogą podlegać zmianom. Treść podręcznika może ulec zmianie bez wcześniejszego uprzedzenia.
Darmowe aktualizacje tego podręcznika dostępne na:
http://www.arexx.com/
Informacje dotyczące ograniczonej gwarancji oraz odpowiedzialności
Gwarancja udzielona przez AREXX Engineering ogranicza się do wymiany lub naprawy Ramienia Robota oraz jego elementów w okresie trwania gwarancji jeśli usterka dotyczy wad producyjnych takich jak: wadliwe elementy mechaniczne lub brakujący komponent za wyjątkiem elementów bezpośrednio połączonych do gniazdka.
Gwarancja nie obejmuje uszkodzeń dokonanych poprzez brak wiedzy lub ignorowanie ostrzeżeń zawartych w podręczniku!
Gwarancja traci ważność, jeśli użytkownik nie przestrzega zasad z podręcznika! AREXX Enginee-
ring nie
ponosi odpowiedzialności za szkody powstałe wskutek nieprawidłowego użytkowania niezgod­nego z instrukcjami zawartymi w podręczniku. Należy stosować się do wszystkiego, co zawiera sekcja “Zalecenia dotyczące bezpieczeństwa”. Proszę zwrócić uwagę na umowy licencyjne oprogramowania na CD-ROM!
WAŻNE!
Przed pierwszym użyciem ramienia robota całkowicie zapoznaj się z treścią podręcznika! W podręczniku zawarte są informacje na temat odpowiedniego sposobu użycia oraz potencjalnych zagrożeń! Ponadto, zawiera informacje, które mogą być nieoczywiste dla wszyst­kich użytkowników.
Ważne zalecenia dotyczące bezpieczeństwa
Ramię robota jest zaopatrzone w wysoce czułe części. Elementy elektroniczne są wrażliwe na wyładowanie elektrostatyczne. Elementy podnoś delikatnie za boki w bezpiecznych miejscach. Unikaj bezpośredniego kontaktu z elementami na płytce PCB. Nigdy nie przeciążaj serwonapędów!
- 3 -
Page 4
Symbole
W podręczniku użyto następujących symboli:
“Uwaga!” Używany, aby ostrzec lub zwrócić uwagę na ważne szczegóły. Zignorowanie ostrzeżeń może skutkować uszkodzeniem robota i/lub jego części oraz może być szkodliwe dla twojego zdrowia lub zdrowia innych osób!
“Informacja” Symbol wskazuje użyteczne wskazówki lub informacje uzupełniające. Podążanie za wskazówkami nie jest konieczne, ale może ułatwić pracę.
Zalecenia dotyczące bezpieczeństwa
- Sprawdź polaryzację baterii i źródła zasilania.
- Unikaj wilgoci. Jeśli nastąpi kontakt produktu z wodą, należy usunąć baterie lub odłączyć układ od
zasilania.
- Jeśli robot jest nieużywany przez dłuższy czas, odłącz go od zasilania.
- Sprawdź robot i jego kable przed użyciem - to pomoże uniknąć awarii.
- Jeśli uważasz, że praca z urządzeniem nie jest już bezpieczna, odłącz je i upewnij się, że nie zostanie nieświadomie użyte.
- Gdy nie jesteś pewien funkcji, bezpieczeństwa lub połączenia elementu, skonsultuj się ze specjalistą.
- Nie podejmuj pracy z urządzeniem w niekorzystnych miejscach lub warunkach.
- Nie przeciążaj serwomechanizmów.
- Urządzenie zawiera wysoce czułe komponenty, np. elementy elektroniczne są wrażliwe na wyładowanie elektrostatyczne. Elementy podnoś delikatnie za boki w bezpiecznych miejscach. Unikaj bezpośredniego kontaktu z elementami na płytce PCB.
Użytkowanie
Niniejszy projekt został stworzony do celów eksperymentalnych dla każdego zainteresowanego robotyką. Głównym zadaniem jest nauka programowania urządzenia w języku C. Produkt nie jest zabawką; nie jest przeznaczony dla dzieci poniżej 14 roku życia!
Dane ramię robota nie jest również robotem przemysłowym zapewniającym dokładny przemysłowy opis oraz wydajność!
Robot może być użyty jedynie wewnątrz budynku. Produkt nie może zostać zmoczony lub poddany działaniu jakiejkolwiek wilgci. Unikaj skraplania wody na elementach: zachowaj ostrożność po wniesieniu robota z zimnego miejsca. Pozwól elementom dostosować się do nowego środowiska i odczekaj pewien czas zanim rozpoczniesz używanie.
Nie przestrzeganie powyższych zaleceń może doprowadzić do uszkodzenia produktu i może wpłynąć na powstanie dodatkowych zagrożeń takich jak zwarcie, ogień, porażenie prądem itd.
Należy dokładnie zapoznać się z treścią tego podręcznika.
- 4 -
Page 5
1. OPIS PRODUKTU RAMIĘ ROBOTA
Metalowe Ramię robota Robot Arm jest idealym narzędziem do projektów szkolnych i innych celów edukacyjnych, a także do nauki podstaw elektroniki, mechaniki i programowania. Ramię Robota jest sterowane przez mikrokontroler ATMEGA64, który programuje się z poziomu programu narzędzia Open Source w języku C. Użytkownik w łatwy i szybki sposób może wgrać do mikrokontrolera swój własny program poprzez port USB oraz oprogramowanie Uploadera. I/O (wejścia/wyjścia) wraz z elastyczną magistralą I2C pozwalają na dodawanie nadprogramowych modułów, co umożliwia robotowi reakcję na otoczenie.
Zawartość opakowania:
- Pełny zestaw konstrukcyjny Robot Arm (mechanika i elektronika)
- USB z pinem
- CD-ROM zawierający wymagane oprogramowanie i instrukcje
1.2. Specykacja techniczna:
- mikrokontroler ATMEGA64
- wiele I/O Wejść/Wyjść
- magistrala I2C
- chwytak
- 6 serwonapędów (4 szt. S06NF i 2 szt. S05NF)
- metalowa obudowa (przeguby + baza)
- długość ramienia: 390 mm
- wysokość (z bazą): 460 mm
- średnica podłoża: 210 mm
- zasilanie: 9 -14V/3-4A
Ostrzeżenie!
* Prawo do zwrotu przemija w momencie otwarcia plastikowych opakowań elementów. * Przeczytaj uważnie podręcznik zanim zamontujesz wszystkie elementy. * Zachowaj ostrożność podczas pracy z narzędziami. * Nie montuj robota w obecności małych dzieci. Może stać im się krzywda . * Sprawdź, czy baterie zostały umieszczone poprawnie. * Upewnij się, że koszyk bateryjny jest zawsze suchy. Jeśli robot zostanie zamoczony, usuń baterie i bardzo delikatnie osusz elementy.
* Wyjmij baterie jeśli Ramię Robota nie będzie używane dłużej niż tydzień.
- 5 -
Page 6
1.3. Co można zrobić z Ramieniem Robota?
- Przesłać do robota przykładowy lub nowy program.
- Sterować ramię za pomocą klawiatury.
- Sterować i programować Ramię Robota przez program RACS bezprzewodowo.
- Rozszerzać Ramię Robota gotowymi do użycia modułami aby robot mógł reagować na środowisko: widzieć, czuć, słyszeć.
- Tak jak roboty przemysłowe wykonują różne zadania, np. budują samochód, ten robot również może wykonywać dla ciebie pewne prace.
- Ramię Robora może komunikować się ze środowiskiem oraz innymi jednostkami przez magistralę I2C.
- Sztuczna inteligencja: robot automatycznie ulepsza swoje oprogramowanie dzięki swojemu samouczącemu się oprogramowaniu.
- 6 -
Page 7
2. WYMAGANE NARZĘDZIA do własnych
modyfikacji
szczypce półokrągłe
Wkręt samogwintujący (Parker)
Wkręty samogwintujące mają wycięcie na łbie, które ułatwia wwiercanie się w materiał. Aby w szybki sposób wkręcić i poprawnie umocować wkrętwykonaj kroki:
szczypce tnące boczne
zestaw śrubowkrętów
śrubowkręt
Wkręty samogwintujące działają jak wkręty do drewna. Wwiercają się w materiał formując miejsce na gwint wkrętu. Dlatego właśnie ten wkręt ma końcówkę ostrzej zakończoną niż zwykłe wkręty.
1 Wkręć wkręt w matriał 2 Lekko poluzuj wkręt 3 Dokręć ponownie do końca
Dołączony
2
3
1
Jeśli wkręt nie zostanie wkręcony do końca, może się jeszcze bardziej poluzować i stopniowo powiększać otwór sprawiając, że wkręt będzie niedopasowany.
Nakrętka zabezpieczająca
Mocowanie nakrętki
Nie dokręcaj na siłę! Pod wpływem dużej siły plastik może się złamać!
nakrętka
Robot RA1-PRO jest już w pełni zmontowany!
- 7 -
Page 8
3. LISTA CZĘŚCI robot RA1-PRO jest już zmontowany
Serwonapęd
O 6x
Tarcza Dystansowa
O 3x
CD
O 1x
Plastikowa
tarcza do serwomotoru
O 1x
Kabel USB typu A-B
O 1x
Metalowa duża tarcza do serwomotoru typ A
O 1x
Klawiatura
O 1x
Metalowa duża tarcza do serwomotoru typ B
O 1x
Duży orczyk
O 3x
Element dystansowy M3x6
O 4x
Element do montażu serwomotoru
O 1x
Śruba dystansowa M3x16
O 2x
Nadgarstek robota
O 1x
Śruba dystansowa M3x40
O 4x
- 8 -
Kątownik montażowy
O 1x
Spirala
O 1x
Page 9
Część A szczęki chwytaka
szczęki chwytaka
O 1x O 4xO 1x
Szczęka chytakaCzęść B
Podłoże robota Przegub 1
M3 - M4
O 1x
Baza ramienia
O 2x
Płytka PCB
robota
O 1x
Mini wiązar
Mały orczyk
O 1x
Przegub 2 M2 - M3
O 2x
Przewód taśmowy
Taśma do klawiatury
Śruba M3x20
Konwerter USB
Przewód do serwomotorów
O 1 pc.
O 1x
Wkręt samogwintujący M3.2x6
O 1x
O 1x
O 5x
Śruba M3x6
O 2x
Śruba M3x8
O 42x
O 1x
Śruba M3x12
O 9x
- 9 -
O 9x
O 24x
Nakrętka M3
O 4x
Nakrętka zabezpieczająca M2
O 3x
Page 10
4. Konstrukcja mechaniczna
Robot RA1-PRO jest już w pełni zmontowany!
4.1. Konstrukcja mechaniczna głównych części
Baza i podłoże Ramię
Chwytak
- 10 -
Page 11
4.2. Montaż ramienia z serwonapędem:
Wkręt M3.2x8
Ramię
- 11 -
Baza
Page 12
4.3. Montaż i osiowanie chwytaka:
WSKAZÓWKI W MONTAŻU CHWYTAKA
Jeśli mechanizm nie jest odpowiednio zamocowany, może uszkodzić serwomotor!
1. Jeśli szczęka nie porusza się swobodnie, poluzuj odrobinę wewnętrzną śrubę.
2. Jeśli śruby są dokręcone zbyt mocno, blokują one szczęki chwytaka i może uszkodzić serwonapęd nieodwracalnie! Dodaj pierścień dystansowy lub poluzuj trochę śrubę.
3. Jeśli elementy chwytaka nie są umieszczone odpowiednio (np. za bardzo obrócone względem siebie), spróbuj zrobić to jeszcze raz i postaraj się, aby tym razem były zosiowane jak należy - wyprostowane szczęki powinny wyglądać jak na obrazku.
- 12 -
Page 13
GOTOWE!
Selbstzapffendeschraube M2.3x8
- 13 -
Page 14
5. ELEMENTY ELEKTRONICZNE
5.1. Dane techniczne
Ten rozdział zawiera informacje związane z danymi technicznymi robota oraz pewien wstęp do podstawowych zagadnień, które pozwolą ci zaznajomić się z terminologią użytą w tym podręczniku. Większość zagadnień zostanie wyjaśniona w późniejszych rozdziałach.
Cechy elementów i dane techniczne ramienia robota:
● Mikrokontroler o dużej mocy Atmel ATMEGA64 (8-Bitowy)
◊ Szybkość 16 MIPS (=16 milionów instrukcji na sekundę) przy częstotliwości zegara równej 16MHz. ◊ Pamięć: 64KB Flash ROM, 4KB SRAM, 2KB EEPROM. ◊ Programowalny w języku C (z użyciem WinAVR / avr-gcc)!
● Elastyczny system rozszerzeń, oparty na magistrali I²C
◊ Wymagane jedynie dwa sygnały (TWI -> “Two Wire Interface”). ◊ Szybkość przesyłania danych do 400kBit/s. ◊ Tryb Master->Slave (urządzenie Nadrzędne->Podrzędne). ◊ Do magistrali może być podłączonych jednocześnie 127 urządzeń podrzędnych
(Slave).
◊ Bardzo popularny układ z magistralą. Na rynku dostępny jest szereg układów scalonych, czujników i innych elementów, które mogą zostać bezpośrednio podłączone.
● Możliwość dołączenia modułów bezprzewodowych
◊ RP6 WIFI ◊ Bluetooth ◊ APC-220
● USB PC Interface for program uploads from PC to microcontroller
◊ Połączenie kablowe dla maksymalnej prędkości przesyłania danych. Program wysyłany jest z prędkością 500kBaud, wypełniając miejsce w pamięci (30KB, 2KB zarezerwowane dla Bootloadera) w kilka sekund. ◊ Może być użyty do programowania dostępnych modułów rozszerzających dla ramienia robota z mikrokontrelami AVR (moduł RP6-256-WIFI). ◊ Może być użyty do komunikacji między modułami rozszerzającymi. Można zastosować, np. do analizy błędów kodu poprzez wysyłanie do PC wiadomości tekstowych i innych danych. ◊ Dostępny jest również wirtualny port COM (VCP) dla wszystkich popularnych systemów operacyjnych: Windows 2K/XP/Vista, Linux i inne. VCP może być użyty w standardowych programach uruchamianych z terminala lub w spersonalizowanym oprogramowaniu.
- 14 -
Page 15
5.2. Modykacje między PCB wersji RA1 PRO i RA2-HOBBY
- Nowy konwerter TI TPS54332 DC/DC, 3500mA.
- Nowy stabilizator napięcia LDO dla 5-woltowych mikrokontrolerów.
- Dodatkowe złącze zasilające dla VCC i serwonapędu.
- 6 przedwzmacniaczy do pomiaru aktualnego prądu w serwonapędach poprzez rezystor bocznikowy.
- Przełącznik Reset jest teraz przełącznikiem Start/Stop - aby rozpocząć lub zakończyć pracę programu.
- Autostart (czyli automatyczne rozpoczęcie pracy programu po przełączeniu na Start) może zostać przez ciebie skongurowany poprzez Robot Loader.
- Dodatkowe piny wejścia/wyjścia mikrokontrolera ATMEGA64 na rozszerzenia.
- Połączenie magistralą I2C zgodne z modułami rozszerzającymi RP6 XBUS, na przykład moduł RP6-M256 WLAN.
- Gniazdo na zestaw komunikacji radiowej APC220 lub moduł Bluetooh.
- 4 niebieskie diody LED statusu zamiast pary diod: zielonej i czerwonej.
- Bezpiecznik 4A.
- Rezonator kwarcowy 16.000 MHz Crystal zamiast 16.384MHz.
- Rezystor pull-up magistrali I2C ulokowany jest teraz na płytce PCB.
- Przełącznik On/Off odłącza układ logiczny. Mikrokontroler steruje zasilaniem serwonapędu z przetwornicy DC/DC.
- Napięcie wejściowe wynosi 7 - 14 Volt (nieprzekraczalne max. 18 Volt).
ROZSZERZENIA DLA RAMIENIA ROBOTA
- RP6v2-M256-WIFI: moduł do sterowania ramienia bezprzewodowo przez sieć
- ARX-APC220 for RACS 433 MHz: sterowanie bezprzewodowe
- ARX-BT03 dla systemu ANDROID: sterowanie bezprzewodowe bluetooth
Sprawdź też moduły i instrukcje AREXX APC-220, Android i WIFI!
- 15 -
Page 16
5.3. Główna płytka PCB - najważniejsze elementy
Diody LED serwonapędów
Zasilanie serwonapędów
I2C & RP6 X-BUS
LED zasilania
SPI
Boot/ISP Ważne!
Moduł Bluetooth (BT3) APC-220
Serwo 6, 5, 4, 3, 2,1
Start Stop Reset
SW1/SW2 Przełącznik I/O
Sprawdź też stronę 51 aby dowiedzieć się jak podłączyć serwonapędy do PCB!
Dodatkowe Wejścia/ wyjścia
ISP
Podłączenie baterii
Przetwornik napięcia DC
Diody LED 1,2,3,4
Podłączenie klawiatury
Bezpiecznik
4A
Włącznik / Wyłącznik
Programator / UART
5.4. LEDS
W tej sekcji zawarte jest wyjaśnienie niektórych diod LED znajdujących się na PCB. Żółta dioda “MAIN_PWR“ pokazuje, czy przy wyłączonym zasilaniu robota dostarczane jest jakieś zewnętrzne napięcie.
Czerwona dioda “SERVO_PWR” zapala się tylko, gdy przetwornica DC/DC dla zasilania serwonapędu jest włączona, co kontrolowane jest z poziomu oprogramowania.
Na płytce są 4 niebieskie diody LED statusu “SL1-4“ które sterowane są bezpośrednio z mikroprocesora. Można używać tych diod dowolnie przy programowaniu własnych aplikacji.
- 16 -
Page 17
5.5. Rozpoczęcie pracy z Robotem
1. Sprawdź montaż wszystkich elementów mechanicznych oraz elektronicznych robota i podłącz serwonapędy (str. 25 i 51).
2. Podłącz zasilanie 9 do 14V (nie przekraczać 18 V!!).
3. Włącz robot za pomocą przełącznika On/Off.
Źródło napięcia
Zasilacz
Istnieją dwa sposoby na zasilanie robota. Najprostszym z nich jest podłączenie do gniazdka zasilacza, którego napięcie wyjściowe wynosi 9-14V / 3-4 Amps (stałe - DC). W ten sposób sygnał jest podłączony na wejście regula­tora napięcia.
Baterie
Innym sposobem jest podłączenie baterii (9-14V) w odpowiednim miejscu. Jeśli napięcie spadnie poniżej 6.7V, wyświetli się ostrzeżenie.
Ważne!
Zworka “ISP/BOOT” powinna być ustawiona na lewo jak na obrazku poniżej.
Zaciski baterii 9 - 14 Volt
Zaciski DC 9 - 14 Volt
Jeśli robot jest podłączony do zasilania, serwonapędy lekko się poruszą i zapali się żółta dioda LED.
Zatem rozpoczęcie pracy nie jest takie trudne jak się wydaje! Teraz właśnie zac­znie się ta trudniejsza część...!
Ale najpierw należy zainstalować oprogramowanie, co omówiono w rozdziale 6!
- 17 -
Page 18
6. Instalacja oprogramowania
Zajmijmy się instalacją oprogramowania. Prawidłowe zainstalowanie jest bardzo ważne w każdym z następnych rozdziałów.
Zaloguj się w systemie jako administrator, ponieważ będziesz potrzebował jego uprawnień!
Zaleca się najpierw przeczytać cały rozdział, a później ponownie czytać krok po kroku i wykonywać polecenia.
Użytkownik musi znać podstawy obsługi systemu Windows lub Linux i być zaznajomiony z programami takimi jak: manager plików, przeglądarka internetowa, edytor tekstu, program do kompresji plików (WinZip, WinRAR, unzip etc.), powłoka systemowa Linux etc.! Jeśli twoja wiedza na temat komputerów jest dość uboga, poczytaj trochę na temat tych zagadnień zanim zaczniesz używać robota. Ten podręcznik nie jest przeznaczony do nauki podstaw informatyki, co jest pojęciem bardzo obszernym! Celem podręcznika jest ramię robota, potrzebne oprogramowanie i sposób programowania.
The Robot Arm CD-ROM
Już prawdopodobnie umieściłeś płytę w odtwarzaczu - jeśli nie, to zrób to teraz! W systemie Windows menu płyty powinno pojawić się chwilę po tym poprzez autostart. Jeśli nie, możesz to zrobić otwierając plik “start.htm” w przeglądarce internetowej, np. Firefox, w głównym katalogu CD poprzez manager plików. Pliki instalacyjne Firefox znajdują się też na płycie w katalogu:
<CD-ROM drive>:\Software\Firefox
Przeglądarka powinna być zaktualizowana przynajmniej do wersji 1.x (w przypadku Firefox) lub 6 (w przypadku Internet Explorer).
Po wyborze języka w menu CD, poza informacjami zawartymi w podręczniku, znajdziesz instrukcje (datasheet) oraz pomocne obrazki, a także pozycję w menu nazwaną “Software“ (to wszystko jest również do pobrania z naszej strony domowej). Pozycja zawiera wszystkie narzędzia oprogramowania, sterownik USB oraz przykładowe programy z kodem źródłowym dla ramienia robota.
Zależnie od ustawień bezpieczeństwa twojej przeglądarki, możesz rozpocząć instalację programów bezpośrednio z CD!
- 18 -
Page 19
Jeśli ustawienia bezpieczeństwa twojej przeglądarki internetowej nie pozwalają na bezpośrednią instalację z CD-ROM, musisz skopiować najpierw pliki do katalogu na twoim dysku twardym i rozpocznij instalację z tego miejsca. Aby uzyskać więcej szczegółów przeczytaj stronę w menu płyty. Inny sposób: przejdź do napędu CD poprzez manager plików i zainstaluj programy z płyty.
WinAVR - dla systemu Windows
Teraz rozpoczniemy instalację programu WinAVR. WinAVR jest - jak sama nazwa wskazuje - dedykowana jedynie dla systemu Windows!
Użytkownicy Linux mogą opuścić tę część.
WinAVR to zbiór wielu przydatnych i niezbędnych narzędzi do programowania mikrokontrolerów AVR w języku C. Oprócz GCC dla AVR (znane jako “AVR-GCC”, o tym więcej później) WinAVR posiada bardzo wygodny edytor tekstu “Programmers Notepad 2”, którego będziemy używać do programowania ramienia robota.
WinAVR jest dostępny w internecie za darmo. Aktualne wersje programu i dodatkowe informacje na jego temat znajdziesz na:
http://winavr.sourceforge.net/
Wsparcie programowe zapewnia również rma ATMEL z programem AVRStudio wraz z kompilatorem AVRGCC. Jednak uważamy, że Programmers Notepad lepiej odpowiada naszym celom. Plik instalacyjny WinAVR znajduje się na CD w folderze:
<CD-ROM drive>:\Software\AVR-GCC\Windows\WinAVR\
Instalacja WinAVR jest bardzo łatwa. Dla własnego użytku nie potrzebna jest zmiana ustawień, więc wystarczy klikać “Kontynuuj”!
- 19 -
Page 20
Jeśli używasz Windows Vista lub Windows 7, musisz zainstalować najnowszą wersję WinAVR! Powinno również doskonale działać w Windows 2K i XP. Jeśli tak nie jest, spróbuj z jedną ze starszych wersji, które również znajdziesz na CD (zanim zaczniesz nową instalację WinAVR, musisz odinstalować wpierw istniejącą wersję). Ocjalnie wersja systemu Win x64 (64-bitowa) nie jest jeszcze wspierana, ale w razie problemów płyta zawiera łatkę dla systemów Win x64! Więcej informacji na temat oprogramowania znajdziesz w menu płyty.
AVR-GCC, avr-libc uad avr-binutils - dla systemu Linux
(Użytkownicy Windows mogą przejść do następnej sekcji!)
Linux może wymagać większego wysiłku. Niektóre dystrybucje już zawierają wymagane paczki danych, ale to w większości wersje dość przestarzałe, dlatego powinieneś zainstalować nowsze wersje. Dystrybucji Linuxa jest tak wiele, że nie sposób wymienić je wszystkie. Są to m.in. SuSE, Ubuntu, RedHat/Fedora, Debian, Gentoo, Slackware, Mandriva etc., które też mają różne wersje, dlatego poradnik jest napisany bardziej ogólnie.
To samo tyczy się do innych sekcji systemu Linux w tym rozdziale!
Opisana procedura niekoniecznie musi działać dla twojej wersji. Zawsze lepiej więc wspomóc się zasobami internetu np. wyszukując “<LinuxDistribution> avr gcc”. (Spróbuj inne kombinacje). To samo tyczy się do innych sekcji dla systemu Linux - zapewnimy pewne słowa kluczowe, które pomogą szukać! Jeśli napotkasz problemy w instalacji AVR-GCC, możesz zasięgnąć pomocy na naszym forum lub na jednym z licznych forum użytkowników Linux. Pierwszą czynnością jest odinstalowanie tej wersji avr-gcc, avr-binutils oraz avr-libc, które masz na dysku twardym, ponieważ są nieaktualne. Możesz je odnaleźć poprzez package manager lub szukając hasła “avr” i odinstaluj te trzy wcześniej wspomniane komponenty. Czy te pliki istnieją możesz łatwo sprawdzić wpisując w konsolę:
> which avr-gcc
Jeśli ścieżka się wyświetla, wersja jest zainstalowana. Wpisz zatem:
> avr-gcc --version
i sprawdź, jaki komunikat się wyświetli. Jeśli wersja jest starsza niż 3.4.6 (mniejsze cyfry), należy ją odinstalować, bo jest przestarzała.
- 20 -
Page 21
Jeśli dana wersja zawiera się w przedziale 3.4.6 - 4.1.0, spróbuj skompilować programy (w następnym rozdziale). Jeśli nie udało się, zainstaluj nowe narzędzia. W dalszej części instalować będziemy najnowszą wersję 4.1.1 (na marzec 2007) wraz z ważnymi łatkami.
W przypadku, gdy w package manager nie pojawia się ścieżka avr-gcc, wersja została odinstalowana. Należy jeszcze usunąć istotne pliki binarne: wyszukaj w katalogach all/bin, /usr/bin etc. plików zaczynających się na “avr” i usuń je (TYLKO te pliki i nic ponadto!). W końcu katalogi takie jak /usr/avr czy też /usr/local/avr również muszą zostać wyma-
zane.
Ważne: Upewnij się, że narzędzia programistyczne takie jak GCC, make, binutils, libc, etc. są zainstalowane przed kompilacją oraz instalacją narzędzi! Najlepiej zrobić to poprzez package manager twojej dystrybucji. Każda z dystrybucji Linux powinna zawierać wymagane paczki danych z płyty CD lub z internetu, gdzie również są dostępne.
Upewnij się, że program “texinfo” jest zainstalowany. Jeśli nie, zainstaluj wymagane pakiety, bo inaczej nie zadziała.
Po wykonaniu tego kroku, możesz rozpocząć instalację.
Masz teraz trzy wyjścia: zrobić wszystko ręcznie, użyć prostego w obsłudze skryptu instalacyjnego lub użyć skompilowanego już pakietu instalacyjnego o rozszerzeniu .dep.
Zalecamy użyć najpierw skryptu. Jeśli nie zadziała, wciąż możesz zainstalować kompilator ręcznie.
Nowe wersje znajdziesz na http://www.wrightyer.co.uk/avr-gcc/
Uwaga:
Powinieneś mieć wystarczająco wolnego miejsca na dysku twardym! Chwilowo wymagane jest więcej niż 400Mb. Po instalacji wymazane zosta­nie ponad 300Mb, jednak podczas instalowania potrzebne jest nieco więcej miejsca na dane tymczasowe.
- 21 -
Page 22
Wiele z następnych kroków instalacji wymaga spacjalnych praw (ROOT RIGHTS), więc zaloguj się jako użytkownik uprzywilejowany “su” lub wykonaj “sudo” etc. (skrypt instalacyjny, mkdir w katalogu /usr/local i wykonaj instalację).
Zwróć uwagę na nazwy komend i wypisz je DOKŁADNIE tak, jak napisano dalej! Każdy znak jest ważny i nawet, jeśli niektóre komendy wydają ci się dość dziwne, wszystkie są poprawne i upewnij się, że przy przepisywaniu nie popełniłeś błędu! (<CD-ROM-drive> ma być oczywiście zastąpione ścieżką stacji CD-ROM!)
Folder na CD:
<CD-ROM drive>:\Software\avr-gcc\Linux
zawiera wszystkie istotne pliki dla avr-gcc, avr-libc oraz binutils. Najpierw, należy skopiować wszystkie pliki instalacyjne do katalogu na twoim twardym dysku - to się tyczy obu metod instalacji! Użyjemy katalogu domowego (zazwyczaj skrótem do aktualnego katalogu domowego jest tylda: „~“):
> mkdir ~/Robot Arm > cd <CD-ROM drive>/Software/avr-gcc/Linux > cp * ~/Robot Arm
Po udanej instalacji możesz usunąć pliki w celu zaoszczędzenia miejsca!
- 22 -
Page 23
Skrypt automatycznej instalacji
Jeśli raz zrobisz skrypt wykonywalnym za pomocą polecenia chmod, możesz zacząc od razu:
> cd ~/Robot Arm > chmod -x avrgcc_build_and_install.sh > ./avrgcc_build_and_install.sh
Na pytanie czy chcesz zainstalować w tej konguracji odpowiedz wciskając “y”.
UWAGA: Kompilacja i instalacja zajmie trochę czasu czasu (zależy on od mocy obliczeniowej twojego systemu - np. około 15 min. przy dwurdzeniowym procesorze 2GHz Core Duo Notebook. Naturalnie potrwa to dłużej dla wol­niejszych systemów).
Skrypt zawiera również pewne łatki. Są to pliki o rozszerzeniu .diff. Jeśli instalacja zakończyła się sukcesem, wyświetli się następująca wiadomość:
(./avrgcc_build_and_install.sh) (./avrgcc_build_and_install.sh) installation of avr GNU tools complete (./avrgcc_build_and_install.sh) add /usr/local/avr/bin to your path to use the avr GNU tools (./avrgcc_build_and_install.sh) you might want to run the following to save disk space: (./avrgcc_build_and_install.sh)
(./avrgcc_build_and_install.sh) rm -rf /usr/local/avr/source /usr/local/avr/build
Zgodnie z poradami, możesz wykonać
rm -rf /usr/local/avr/source /usr/local/avr/build
Ta instrukcja wymarze wszystkie chwilowe pliki, które nie będą już potrzebne.
Możesz opuścić następny akapit i ustawić ścieżkę narzędzi avr.
Jeśli wykonanie skryptu się nie powiedzie, musisz uważnie przeczytać wiadomość z błędem (jeśli potrzeba, idź w górę okna korzystając z paska przesuwania). Najczęściej jest to kwestia brakującego programu, który powinien być zainstalowany wcześniej (taki jak np. plik texinfo). Zanim kontynuujesz po błędzie, zaleca się wymazać już wygenerowane pliki standardowej instalacji w katalogu “/usr/local/avr“ – najlepiej cały katalog.
- 23 -
Page 24
Jeśli nie wiesz co dokładnie poszło źle, zapisz linie komend w pliku oraz skontaktuj się ze wsparciem technicznym. Prosimy, żeby zawrzeć możliwie jak najwięcej informacji na temat niepowodzenia. W ten sposób łatwiej będzie rozwiązać twój problem.
GCC dla AVR
Kompilator GCC jest “połatany“, skompilowany i zainstalowany trochę jak binutils:
> cd ~/Robot Arm> bunzip2 -c gcc-4.1.1.tar.bz2 | tar xf ­> cd gcc-4.1.1 > patch -p0 < ../gcc-patch-0b-constants.diff > patch -p0 < ../gcc-patch-attribute_alias.diff > patch -p0 < ../gcc-patch-bug25672.diff > patch -p0 < ../gcc-patch-dwarf.diff > patch -p0 < ../gcc-patch-libiberty-Makele.in.diff > patch -p0 < ../gcc-patch-newdevices.diff > patch -p0 < ../gcc-patch-zz-atmega256x.diff > mkdir obj-avr > cd obj-avr > ../congure --prex=$PREFIX --target=avr --enable-languages=c,c++ \
--disable-nls --disable-libssp –with-dwarf2 > make > make install
Po znaku \ wciśnij po prostu Enter i kontynuuj pisanie. W ten sposób komendy są rozszerzone na kilka linijek, ale możesz też o tym zapomnieć.
AVR Libc
I ostatni, ale nie mniej ważny AVR libc:
> cd ~/Robot Arm > bunzip2 -c avr-libc-1.4.5.tar.bz2 | tar xf ­> cd avr-libc-1.4.5 > ./congure --prex=$PREFIX --build=`./cong.guess` --host=avr > make
> make install
- 24 -
Page 25
Ważne: at –build=`./cong.guess` upewnij się, że nie zapomniałeś o znaku ` (na klawiaturze klawisz z tyldą) a nie zamiast niego zwykły znak apostrofu, ponieważ tak napisana instrukcja nie zadziała.
Ustaw ścieżkę
Musisz się upewnić, że katalog /usr/local/avr/bin jest zapisany w zmiennej ścieżce, bo inaczej niemożliwym będzie pobranie avr-gcc z konsoli albo z plików makele. Na koniec musisz wprowadzić ścieżkę /etc/prole lub /etc/environment lub podobną (różne zależne od dystrybucji) – oddzielone dwukropkiem “:” od już istniejących pozycji. W pliku może to wyglądać na przykład tak:
PATH=”/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/usr/local/avr/bin“
Teraz wprowadź w konsoli “avr-gcc -–version“ jak opisano powyżej. Jeśli zadziała, instalacja powiodła się!
NOWSZA WERSJA
W Internecie pojawiają się regularnie nowe wersje oprogramowanie, więc sprawdzaj ich dostępność na bieżąco!
- 25 -
Page 26
Instalacja ręczna
Jeśli wolisz zainstalować kompilator ręcznie lub instalacja za pomocą skryptu nie przebiegła pomyślnie, podążaj na instrukcjami poniżej.
Opis powstał na bazie artykułu dostępnego pod linkiem:
http://www.nongnu.org/avr-libc/user-manual/install_tools.html
Jest on również dostępny na CD w formacie PDF w dokumentacji AVR Libc:
<CD-ROM drive>:\Software\Documentation\avr-libc-user-manual-1.4.5.pdf
Opis w podręczniku jest znacznie krótszy, ale zawiera kilka ważnych łatek, bez których kilka rzeczy może nie działać poprawnie.
Najpierw należy stworzyć katalog, w której zainstalowane zostaną wszystkie narzędzia. Powinien nim być: /usr/local/avr. W konsoli również wprowadź (jako użytkownik uprzywilejowany):
> mkdir /usr/local/avr > mkdir /usr/local/avr/bin
To niekoniecznie musi być właśnie ten katalog. Po prostu należy stworzyć zmienną $PREFIX dla tego katalogu:
> PREFIX=/usr/local/avr > export PREFIX
Musi to zostać dodane do zmiennej ścieżki:
> PATH=$PATH:$PREFIX/bin > export PATH
NOWSZA WERSJA
W Internecie pojawiają się regularnie nowe wersje oprogramowanie, więc sprawdzaj ich dostępność na bieżąco!
- 26 -
Page 27
Binutils dla AVR
Teraz należy wypakować kod źródłowy binutils i dodać kilka łatek. W naszym przykładzie zakładamy, że skopiowałeś wszystko do katalogu domowego ~/Robot Arm:
> cd ~/Robot Arm > bunzip2 -c binutils-2.17.tar.bz2 | tar xf ­> cd binutils-2.17 > patch -p0 < ../binutils-patch-aa.diff > patch -p0 < ../binutils-patch-atmega256x.diff > patch -p0 < ../binutils-patch-coff-avr.diff > patch -p0 < ../binutils-patch-newdevices.diff > patch -p0 < ../binutils-patch-avr-size.diff > mkdir obj-avr
> cd obj-avr
Teraz wykonaj skrypt:
> ../congure --prex=$PREFIX --target=avr --disable-nls
Ten skrypt wykrywa co jest w twoim systemie dostępne i generuje odpowiednie pliki makele. Teraz binutils mogą być skompilowane oraz zainstalowane:
> make > make install
Zależnie od mocy obliczeniowej twojego systemu, może to zająć kilka minut. Tyczy się to również do dwóch kolejnych sekcji, szczególnie do sekcji z GCC!
Java 6
RobotLoader (zobacz Info poniżej) został stworzony dla platformy Java i pasuje na systemy Windows i Linux (teoretycznie również na systemy operacyjne takie jak OS X, ale AREXX Engineering niestety jeszcze ocjalnie nie wspiera innych systemów). Aby działało, należy zainstalować aktualną wersję Java Runtime Environment (JRA). Zazwyczaj jest to już zainstalowane na komputerze, jednak musi być to wersja co najmniej 1.6 (= Java 6)! Jeśli na twoim komputerze nie ma JRE lub JDK, należy zainstalować JRE 1.6 z SUN Microsystems lub zamiennie pobierz nowszą wersję z: http://www.java.com or http://java.sun.com.
- 27 -
Page 28
Windows
JRE 1.6 dla Windows powinien być w poniższym folderze:
<CD-ROM drive>:\Software\Java\JRE6\Windows\
Instalacja Java w systemie Windows jest bardzo łatwa. Należy rozpocząć instalację i wykonywać instrukcje na ekranie - i gotowe. Możesz pominąć kolejny akapit.
Linux
W systemie Linux instalacja nie przysparza dużych problemów, jednak niektóre dystrybucje wymagają odrobiny pracy ręcznej.
W folderze:
<CD-ROM drive>:\Software\Java\JRE6\
znajdziesz JRE 1.6 jak RPM (SuSE, RedHat etc.) i jako samorozpakowujące się archiwum “bin”. Pod systemem Linux lepiej będzie poszukać pakietów Java w package manager twojej dystrybucji (słowa kluczowe np. „java“, „sun“, „jre“, „java6“ ...) i użyć pakietów twojej dystrybucji niż zawartych na CD-ROM! Upewnij się jednak, że zainstalowana jest wersja Java 6 (=1.6) lub nowsza!
Na Ubuntu lub Debian, archiwum RPM nie działa bezpośrednio. Będziesz musiał użyć pakietu package manager swojej dystrybucji, aby znaleźć odpowiedni pakiet instalacyjny. RPM powinien jednak działać dobrze również w innych dystrybucjach, np. RedHat/Fedora i SuSE. Jeśli nie, wciąż możesz rozpakować JRE (np. do /usr/lib/Java6) z archiwum samorozpakowującego się (.bin) i ustawić ręcznie ścieżki do JRE (PATH oraz JAVA_HOME etc.).
Odnieś się do instrukcji instalacyjnych z Sun, które również znajdziesz w wyżej wymienionym katalogu oraz na stronie Java (zobacz powyżej).
- 28 -
Page 29
Możesz sprawdzić czy Java zainstalowała się poprawnie wpisując komendę “java-version” w oknie konsoli. Wiadomość wyjściowa powinna być przybliżona do poniższej:
java version “1.6.0”
Java(TM) SE Runtime Environment (build 1.6.0-b105) Java HotSpot(TM) Client VM (build 1.6.0-b105, mixed mode, sharing)
Jeśli otrzymana wiadomość całkowicie się nie zgadza, być może zainstalowana została nieodpowiednia wersja lub inna JavaVM została już zainstalowana w twoim systemie.
Robot Loader
Robot Loader został przygotowany, aby w szybki i prosty sposób przesyłać nowe programy i wszystkie rozszerzenia do robota (dopóki moduły są kompatybilne z bootloaderem). Zawiera ponadto kilka przydatnych funkcji, np. prosty program terminala.
Instalacja Robot Loadera nie jest konieczna. Po prostu skopiuj program do folderu na dysku twardym.
<CD-ROM drive>:\Software\RobotLoader\RobotLoader.zip
Wypakuj program gdzieś na dysku twardym, np. w nowym folderze C:\Programme\Robot Loader. Folder zawiera plik RobotLoader.exe, który uruchamia się, gdy klikniesz na ikonę dwa razy.
Sam program Robot Loader jest w archiwum Java (JAR) RobotLoader_lib.jar. Zamiennie można rozpocząć poprzez wprowadzenie komendy:
Windows:
java -Djava.library.path=”.\lib” -jar RobotLoader_lib.jar
Linux:
java -Djava.library.path=”./lib” -jar RobotLoader_lib.jar
- 29 -
Page 30
Opcja wywoływana poprzez -D jest konieczna aby pozwolić JVM na znalezienie wszystkich użytych bibliotek. Windows tego nie wymaga i możesz po prostu rozpocząć wybierając plik .exe. Linux żąda skryptu powłoki systemowej ”RobotLoader. sh“. Może to być konieczne, by skrypt dało się wykonać (chmod -x ./RobotLoader.sh). Po tym możesz rozpocząć w konsoli poprzez “./RobotLoader.sh“.
Rozsądnie jest stworzyć skrót na pulpicie lub w menu start, aby uruchamianie Robot Loadera było wygodniejsze. W systemie Windows kliknij prawym przyciskiem myszy na pliku RobotLoader o rozszerzeniu .exe, a następnie kliknij na “Pulpit (utwórz skrót)” w menu “Wyślij do”.
Biblioteka Robot Arm, biblioteka Robot Arm CONTROL oraz przykładowe programy
Biblioteka Robot Arm i związane z nią przykładowe programy są spakowane w archiwum zip na płycie:
<CD-ROM drive>:\Software\Robot Arm Examples\Robot ArmExamples [PRO].zip
Dla swojej wygody po prostu rozpakuj je bezpośrednio do katalogu na dysku twardym. Zaleca się rozpakowanie przykładowych programów do folderu “My les” w podfolderze “Robot Arm\Examples\“, a w systemie Linux w katalogu domowym. Zależy to od ciebie.
W rozdziale dotyczącym programów będą opisane osobno przykładowe programy!
- 30 -
Page 31
7. Programator i Loader
Do wgrania programu HEX z komputera do robota użyty zostanie konwerter USB i nasz program RobotLoader.
Zawarty w zestawie został konwerter USB, który jest elementem pozwalającym na połączenie niezgodnych ze sobą urządzeń. Należy z jednej strony podłączyć go do portu USB w komputerze, a z drugiej strony do portu Prog/UART ramienia robota na płytce PCB.
Aktualnie wgrywany do robota program automatycznie usuwa poprzedni program.
Konwerter USB
Program Robot Loader
- 31 -
Page 32
7.1. Robot Loader
RobotLoader został stworzony, by móc wgrywać nowe programy do ramienia robota i wszystkich innych naszych robotów w bardzo prosty sposób! (pod warunkiem, że bootloader jest kompatybilny).
RobotLoader
Jeśli napięcie spadnie poniżej < 6.7 V, wyświetla się ostrzeżenie.
Wbudowane są pewne dodatkowe funkcje, jak na przykład prosty program terminala.
Okno terminala
Aby Robot Loader pracował nie musi być zainstalowany. Skopiuj jedynie program do nowego folderu na dysku twardym.
- 32 -
Page 33
7.2. Podłączenie interfejsu USB – Windows
Użytkownicy systemu Linux mogą przejść do kolejnej sekcji!
Jest kilka sposobów na zainstalowanie interfejsu USB, lecz najprostszym z nich będzie zainstalować sterownik ZANIM podłączony zostanie sprzęt!
CD zawiera program do instalacji drivera.
Dla wersji 32 i 64 Bit systemów Windows 7, XP, Vista, Server 2003 i 2000:
<CD-ROM drive>:\Software\USB_DRIVER\Win2k_XP\CDM_Setup.exe
Dla systemów Win98SE/Me, tak łatwy sposób niestety nie istnieje. Należy zainstalować sterownik starszej wersji po podłączeniu sprzętu (zobacz poniżej).
Uruchom program instalacyjny. Pojawi się jedynie krótkie potwierdzenie pomyślnej instalacji i to wszystko.
Teraz możesz podłączyć USB do komputera. JESZCZE NIE PODŁĄCZAJ KONWERTERA DO ROBOTA! Podłącz konwerter jedynie do komputera kablem USB. Pamiętaj o bezpiecznym trzymaniu płytki PCB interfejsu USB za brzegi lub za wejście USB (przeczytaj instrukcje bezpieczeństwa dla elementów elektronicznych)! Aby uniknąć wyładowań elektrostatycznych NIE dotykaj żadnych elementów na płytce PCB, miejsc lutu ani złącz standardu IDE jeśli nie jest to absolutnie konieczne!
Sterownik zainstalowany w poprzednim kroku będzie używany automatycznie przez urządzenie bez twojej pomocy. Pod systemem Windows XP/2k pojawią się powiadomienia nad zasobnikiem paska zadań. Ostatnia z wiadomości powinna brzmieć: “The device has been successfully installed and is ready for use!” (urządzenie zostało zainstalowane i jest gotowe do użycia).
Jeśli podłączyłeś interfejs USB przed instalacją (lub pracujesz na systemie Win98/Me) – nie jest to aż tak ważne. Windows sam spyta
o sterownik. Taka metoda instalacji jest możliwa, ponieważ sterownik także znajduje się na CD w nierozpakowanym formacie.
- 33 -
Page 34
W tym przypadku pojawi się dialog (w Windows), aby zainstalować nowy dri­ver. Należy wskazać ścieżkę, w której się driver znajduje. Pod Windows 2k/XP należy najpierw wybrać instalację ręczną. Na CD sterownik znajduje się w katalogu wymienioneym na poprzedniej stronie.
Po prostu wprowadź katalog swojej wersji Windows i być może kilku innych plików, których system sam automatycznie nie odnajdzie (wszystkie są wymienione poniżej!).
W systemie Windows XP i wersjach późniejszych zazwyczaj pojawia się wiadomość o tym, że sterowniki FTDI nie są zwerykowane przez Microsoft. Nie jest to ważne i bez problemu można potwierdzić komunikat.
Obsługa
W systemach 32 i 64 Bit Windows 7/8, XP, Vista, Server 2003 oraz 2000:
<CD-ROM drive>:\Software\USB_DRIVER\Win2k_XP\FTDI_CDM2\
Dla starszych systemów Windows 98SE/Me:
<CD-ROM drive>:\Software\USB_DRIVER\Win98SE_ME\FTDI_D2XX\
Po instalacji sterownika na starszych wersjach systemu Windows (np. Win98SE) może być konieczny restart komputera! UWAGA: pod Win98/Me działa tylko jeden ze sterowników: Virtual Comport lub D2XX dla FTDI! Niestety żaden sterownik nie zapewni pracy ich obu.
Sprawdź połączenie z urządzeniem
Aby sprawdzić czy sterownik został poprawnie zainstalowany możesz użyć Managera urządzeń: kliknij prawym przyciskiem myszy na: Mój Komputer --> Właściwości --> Sprzęt --> Manager urządzeń
LUB zamiennie: Start --> Ustawienia --> Panel sterowania --> Wydajność i konserwacja --> System --> Sprzęt --> Manager urządzeń i sprawdź czy pod “Porty (COM i LPT)” znajduje się “USB-Serial Port (COMX)” - gdzie X odpowiada numerowi portu, lub czy pod “Kontrolery uniwersalnej magistrali szeregowej“ jest rozwinięcie “Konwerter szeregowy USB“ !
- 34 -
Page 35
Jeśli pewnego dnia zechcesz odinstalować sterownik
Jeśli nadarzy się taka sytuacja (nie teraz - to tylko wskazówka na przyszłość): Jeśli użyłeś programu instalacyjnego z CD ROM, możesz odinstalować to bezpośrednio poprzez menu Start --> Ustawienia --> Panel sterowania --> Dodaj lub Usuń programy. Na liście programów odszukaj pozycję “FTDI USB Serial Converter Drivers“ – wybierz i kliknij “odinstaluj”.
Jeśli sterownik został zainstalowany ręcznie, możesz uruchomić program ““FTUNIN.exe” w katalogu poświęconemu sterownikowi USB! Ostrzeżenie: do adaptorów USB-->RS232 z chipem FTDI również często używa się tego sterownika!
- 35 -
Page 36
7.3. Podłączenie interfejsu USB – Linux
Użytkownicy Windows mogą opuścić tę sekcję!
System Linux z jądrem 2.4.20 lub wyższy już zawiera wymagany sterownik (przynajmniej dla poprzedniego kompatybilnego modelu chipu FT232BM naszego modelu interfejsu USB, którym jest FT232R). Sprzęt rozpoznawany jest automatycznie i nie musisz robić nic więcej. W przypadku jakichkolwiek problemów, możesz pobrać sterowniki na system Linux (oraz wsparcie i być może nowsze sterowniki) bezpośrednio ze strony FTDI:
http://www.ftdichip.com/
Jeśli już sprzęt zostanie połączony, możesz to sprawdzić pod systemem Linuxem poprzez:
cat /proc/tty/driver/usbserial
jeśli port szeregowy USB został zainstalowany poprawnie. Zazwyczaj nic więcej nie musisz robić.
Warto wspomnieć, że RobotLoader pod systemem Windows używa sterowników D2XX i pełny opis USB pojawi się w liście portów (np. ”USB0 | Robot USB Interface | serialNumber“). Podczas gdy pod Linuxem opisy wirtualnych comportów pojawiają się jako dev/ttyUSB0, /dev/ttyUSB1 etc.. Zwykłe porty com wyświetlają się tak samo “dev/ttyS0“ etc.. W tym przypadku musisz próbować aż znajdziesz poprawny port.
Niestety Linux nie posiada tak wygodnego sterownika, który robi obie rzeczy. Dlatego też lepiej jest użyć sterowników Virtual Comport, które i tak są już zawarte w jądrze systemu. Instalacja sterownika D2XX może wymagać sporo pracy ręcznej...
Zakończenie instalacji oprogramowania
Instalacja oprogramowania i interfejsów USB jest zakończona! Musisz tylko skopiować najważniejsze pliki z CD na dysk twardy (przede wszystkim cały folder “Documentation” oraz, jeśli do tej pory nie były skopiowane, przykładowe programy). Dzięki temu nie będziesz musiał wciąż sięgać po CD, gdy będziesz potrzebował plików.
Jeśli kiedyś CD się zapodzieje, najważniejsze pliki (jak ten podręcznik, RobotLoader, przykładowe programy) możesz pobrać ze strony domowej AREXX. Możesz tam również odnaleźć linki do paczek innych programów, których będziesz potrzebować.
- 36 -
Page 37
7.4. Test interfejsu USB i uruchamianie RobotLoadera
Następnym krokiem jest test wgranego programu poprzez interfejs USB. Podłącz interfejs USB do PC (zawsze najpierw podłącz stronę PC!), a drugim końcem 10-pinowym kablem taśmowym do modułu “PROG/UART”, który z kolei podłącza się do robota. (Robot Arm MUSI BYĆ WYŁĄCZONY!) Taśma jest mechanicznie zabezpieczona przed odwróceniem polaryzacji. Dopóki nie ma wymuszenia, nie ma możliwości na złe podłączenie kabla.
Następnie włącz RobotLoadera. W zależności od wybranego języka, nazwy menu mogą nieco się różnić. Poprzez menu “Opcje->Preferencje “(“Options-> Preferences“) pod “Language /Sprache“ możesz wybrać język (spośród angielskiego i niemieckiego) i wybór zatwierdź klikając OK.
Once you have selected your language, you have to re-start the Robot Loader to validate the changes!
Open a port - Windows
Wybierz port USB. Dopóki żaden inny konwerter szeregowy USB z chipem FTDI jst podłączony do PC, zobaczysz tylko jedną wybraną pozycję.
eśli pojawia się więcej portów, możesz je zidentykować poprzez nazwę “Robot USB Interface“ (lub „FT232R USB UART“). Za nazwą portu widnieje numer seryjny.
Jeśli żaden z portów się nie wyświetla, należy odświeżyć listę portów klikając w menu “RobotLoader-->Refresh Portlist“ !
UWAGA!
Jeśli napięcie spadnie poniżej < 6,7 V, wyświetla się ostrzeżenie.
- 37 -
Page 38
7.5. Otwieranie portu – Linux
Linux traktuje szeregowy adaptor USB jako zwykły port com. Instalacja sterownika D2XX z FTDI może nie być taka prosta jak instalacja pod Linuxem, a sterowniki normalnych wirtualnych portów com (VCP) i tak są już zawarte w jądrach systemów Linux. Działa to niemal tak samo jak pod Windowsem. Musisz jedynie znaleźć nazwę interfejsu USB ramienia robota i upewnić się, że port nie zostanie odłączony od PC dopóki połączenie nie zostanie otwarte (inaczej będzie trzeba zrestartować RobotLoader i połączyć się ponownie). Pod Linuxem nazwy wirtualnych portów com to “/dev/ttyUSBx“, gdzie x to numer, np. “/dev/ttyUSB0“ lub “/dev/ttyUSB1“. Nazwy zwykłych portów com pod Linuxem nazwane są: “/dev/ttyS0“, „/dev/tty- S1“ itd.. One również pokazują się na liście portów tak długo, jak istnieją.
Jeśli jest kilka portów, RobotLoader zamięta który był używany ostatni i wybiera go automatycznie przy starcie programu (większość ustawień dokonanych w programie jest zachowywana).
Teraz należy kliknąć na przycisk “Connect“ (połącz)! RobotLoader otworzy port i sprawdzi, czy komunikacja z bootloaderem działa poprawnie. Czarne pole u dołu (“Status”) powinno pokazywać wiadomość “Connected to: Robot Arm ...” lub podobną wraz z informacją na temat aktualnie zmierzonego napięcia. Jeśli tak się nie dzieje, spróbuj ponownie! Jeśli jednak dalej nie działa, popełniony został gdzieś po drodze błąd! Natychmiast wyłącz robota i rozpocznij poszukiwanie błędu.
Jeśli napięcie jest za niskie, pojawia się ostrzeżenie. Należy naładować akumulatory (najlepiej zrobić to jeszcze zanim napięcie spadnie poniżej 6,7V)!
UWAGA!
Jeśli napięcie spadnie poniżej < 6,7 V, wyświetla się ostrzeżenie.
- 38 -
Page 39
7.6. AUTOTEST
Żółta dioda LED zapala się, gdy ramię robota jest włączone.
Dioda statusu LED mignie, gdy wgrany zostanie plik HEX. Jeśli zadziała, możesz uruchomić niewielki program autotestu, aby sprawdzić działanie wszystkich układów robota. W tym celu należy kliknąć guzik “Add” u dołu okna RobotLoadera i wybrać plik RobotArmExamples [MINI], „Example_11_Selftest\ RobotArm_Selftest.hex“ w katalogu przykładowych programów. Plik zawiera program autotestu w formacie hexadecymalnym - właśnie dlatego ten typ plików z programem nazywa się “plikiem hex“. Wybrany plik pokaże się później na liście. W ten sposób możesz dodać inne pliki hex programów, które napisałeś sam, a także z programów przykładowych (sprawdź zrzuty ekranu, gdzie dodano już pliki hex). RobotLoader jest w stanie wczytać z kilkoma rodzajami plików hex.
Pomaga to w segregowaniu plików, np. jeśli zamontowane są do robota inne programowalne moduły rozszerzeń, które mogą używać innych wersji programów. Lista zapisuje się automatycznie na końcu programu. Oczywiście zapisują sie jedynie ścieżki do tych plików hex, a nie sam plik hex. Jeśli pracujesz nad programem, plik hex dodajesz i wybierasz tylko raz. Później po każdym re-kompilowaniu możesz załadować nowy program do mikrokontrolera (można również użyć skrótów klawiszowych [STRG+D] lub [STRG+Y], aby rozpocząć program zaraz po przesłaniu go do mikrokontrolera). Nazwy ścieżki są oczywiście zupełnie inne w różnych systemach operacyjnych. Mimo to RobotLoader odpowiada obu systemom, Windows i Linux, bez dokonywania żadnych zmian, ponieważ istnieje osobna lista dla Windowsa i Linuxa.
Możesz teraz kontynuować z innymi przykładowymi (Examples) programami ramienia robota lub rozpocząć programowanie samemu.
UWAGA!
Jeśli napięcie spadnie poniżej < 6,7 V, wyświetla się ostrzeżenie.
- 39 -
Page 40
Należy wybrać z listy plik “RobotArm_Selftest.hex“ i kliknąć na przycisk “Upload!“ (wgraj), który znajdziesz na górze tuż pod paskiem postępu.
Teraz program zostanie wgrany do procesora MEGA64 na płytce PCB ramienia robota. Powinno to zająć nie więcej jak kilka sekund (dla programu autotestu max. 5 sekund).
Przełącz na zakładkę “Terminal” (na dole okienka)! Inny sposób na wybranie terminala: poprzez opcję “View” w menu.
WAŻNE!
Zworka “ISP/BOOT” powinna być ustawiona na lewą stronę jak na obrazku poniżej!
Teraz możesz wykonać autotest oraz kalibrację ramienia robota. Aby rozpocząć program przełącz switch Start/Stop Reset na robocie. Można to zrobić również poprzez menu RobotLoadera --> Start lub kombinację klawiszy [STRG]+[S]. Jednak tym razem sprawdź, czy przełącznik działa poprawnie!
Jeśli w autoteście wystapi błąd, odłącz natychmiast robota i zacznij szukać błędów.
ZALECA SIĘ ROZPOCZĘCIE OD KALIBRACJI RAMIENIA ROBOTA! ZOBACZ NA STRONIE 41.
- 40 -
Page 41
7.7. Kalibracja
Uruchom program do kalibracji, aby skalibrować ramię robota.
W tym celu należy kliknąć przycisk “Add” u dołu okna RobotLoadera i wybrać plik RobotArmExamples [MINI], „Example_11_Selftest\RobotArm_ Selftest.hex“ w katalogu plików przykładowych.
Plik zawiera program autotest w formacie heksadecymalnym. Wybrany plik pojawi się później na liście (jak na zrzucie poniżej).
Wybierz C (C - calibrate) w programie do kalibracji, aby zacząć kalibrację.
Kiedy kalibracja będzie zakończona, robot może rozpocząć wykonywanie autotestu. Wynik kalibracji zapisuje się w mikrokontrolerze.
- 41 -
Ustaw wszystkie serwonapędy w środkowej pozycji tak, aby ro­bot wyglądał jak na stronie 51. Serwomotory od 2 do 6 są w przybliżeniu w pozycji środkowej, a chwytak (serwonapęd nr 1) jest niemal zamknięty.
Page 42
Pozycja do kalibracji
Serwonapęd 1 Zaciski chwytaka
Serwonapęd 2 Obrót chwytaka
Serwonapęd 3 Zginanie nadgarstka
Serwonapęd 4 Zginanie w łokciu
- 42 -
Serwonapęd 5 Zginanie w barku
Serwonapęd 6 Podstawa
Page 43
7.8. Test klawiatury
W zestawie zawarta jest klawiatura, którą można podłączyć doramienia robota. Użyć jej można, aby w łatwy sposób zaprezentować działanie robota, a także, aby poćwiczyć sposób sterowania.
Klawiatura zawiera 6 przycisków do sterowania i 4 specjalne przyciski do późniejszych rozszerzeń.
Aby przetestować ramię robota klawiaturą, należy wgrać odpowiedni plik programu hex do mikroprocesora.
Należy w tym celu kliknąć przycisk “Add” u dołu okna RobotLoadera oraz wybrać plik RobotArmExamples, “RobotArm_Key_Board.hex“.
Wybierz z listy plik „RobotArm_Key_Board.hex“ i przyciśnij przycisk “Upload!“ na górze nad paskiem postępu.
Jeśli i ten krok zostanie wykonany, można już sterować ramieniem robota używając klawiszy klawiatury.
UŻYWAJ POPRAWNEGO OPROGRAMOWANIA
(V3 PRO LUB MINI)!
Płytka PCB
Klawiatura
Podłączenie klawiatury
Test klawiatury można również wykonać programem
AUTOTEST!
- 43 -
Page 44
8.0. Oprogramowanie RACS
RACS (Robot Arm Control Software) to najprostszy sposób na sterowanie oraz programowanie ramienia robota. Do programowania poprzez RACS wymagane jest użycie programu RobotLoadera oraz adaptora USB.
Przed użyciem robota do pamięci Flash procesora należy wgrać program RAC-MINI.hex.
Podłącz przewód z USB do komputera i otwórz program Loadera. Powinno pokazać się następujące okno:
Fig. 1
Jeśli na liście “Step 1: Select a port” (wybór portu) nie pojawia się żaden port, upewnij się, że przewód jest podłączony i sterowniki programera są zainstalowane. Możesz wywołać listę portów jeszcze raz odświeżając ją z menu:
RobotLoader -> Refresh port list.
Wybierz port i kliknij “Connect” (połącz).
Wybierz odpowiedni plik .hex z listy “Step 2” – Kliknij “Add”: RACV3-PRO.HEX
UŻYWAJ POPRAWNEGO OPROGRAMOWANIA
(V3 PRO LUB MINI)!
- 44 -
Page 45
W kroku 3 kliknij przycisk “Upload” (wgraj, załaduj), aby wgrać program.
Jeśli chcesz pracować na ramieniu, odłącz RobotLoader w polu “Step 1” klikając przycisk “Close” (zamknij). Jeśli zamkniesz program, połączenie zostanie przerwane automatycznie.
Upewnij się, że nie ma połączenia między programem Loadera a ramieniem robota, bo inaczej robot nie może być sterowany z programu RACS.
8.1. Instrukcje dla RACS
Ramię robota steruje się łatwo poprzez oprogramowanie RACS. Nawiązywane jest połczenie i silniki ramienia robota zaczynają reagować na zmianę pozycji suwaków, które zmienia się za pomocą myszy. Aktualne pozycje serwonapędów mogą być zapisane, zmieniane i wymazywane z listy w dolnej części interfejsu użykownika. Generuje się lista zawierająca poszczególne pozycje, które mogą zostać zapisane w pliku na komputerze poprzez kliknięcie przycisku “Save”. Lista kroków może zostać wgrana w każdej chwili.
Uwaga! Ważne !!!
Robot monitoruje prąd każdego z serwomotoru z osobna. Jeśli wartość progowa serwonapędu wykracza poza granice, np. podczas kolizji lub przy przeciążeniu ­tekst w oprogramowaniu RACS zaczyna migać. W tym przypadku, robot musi zostać wrócić do swojej poprzedniej pozycji jak najszybciej lub musi zostać odłączone zasilanie dla danego serwonapędu w programie RACS (odznacz pole “servopower”).
Inaczej robot może zostać uszkodzony nieodwracalnie!!!
- 45 -
Page 46
8.2. RACS - Połączenie
1. Po włączeniu programu do sterowania, powinno ukazać się poniższe okno:
Fig. 2
2. W rozwijanym menu wymienione są wszystkie interfejsy szeregowe:
Fig. 3
3. Podłącz wejście programatora USB
4. Kliknij przycisk “Update”. Kiedy spojrzysz na menu rozwijane
ponownie, zobaczysz dodatkowe interfejsy. Interfejs został zainicjalizowany poprzez podłączenie zyczne programera USB.
Uwaga: Nazwy interfejsu dla różnych komputerów różnią się od siebie!
- 46 -
Page 47
5. Wybierz nowy interfejs
Fig. 4
6. Zaznacz pole “Connect”
Fig. 5
7. Zaznacz pole “servo power”
Fig. 6
8. Poruszaj suwakami, aby zmienić pozycje serwonapędów. Jeśli podczas nawiązywania połączenia wystąpił błąd, pojawi się poniższy komunikat. Należy nawiązać połączenie ponownie (powtórz kroki 2-6 i spradź interfejs).
Fig. 7
UŻYJ ODPOWIEDNIEGO OPROGRAMOWANIA
V3 PRO LUB MINI!
- 47 -
Page 48
8.3. RACS – automatyczna kontrola pozycji
W poniższym oknie dostępne są następujące opcje:
Add: ten przycisk dodaje aktualną pozycję suwaka do listy
Replace: wybrany z listy element zostaje zastąpiony przez aktualne
pozycje paska przesuwania
Insert: aktualne pozycje suwaka zostanją umiejscowione pod wybrane elementy listy
Clear: wybrane elementy z listy zostają wymazane
Save: elementy z listy zostają zapisane
Load: elementy z listy zostają wgrane z pliku
(Uwaga, aktualna lista elementów zostaje wymazana!)
Run: Elementy z listy wykonywane są w sekwencji od góry do dołu. Jeśli opcja “Repeat” została zaznaczona, ramię robota będzie wykonywał instrukcje w pętli.
Step Time: Step time to czas w sekundach, który deniuje jak długo robot będzie czekał zanim wykona kolejną instrukcję z listy. Jeśli lista zawiera jedynie krótkie przemieszczenia, wybrany czas może być krótki. Jeśli natomiast zawiera duże przemieszczenia, np. ruchy serwo o 180°, wybrany czas musi być dłuższy, ponieważ robot może nie zdążyć wykonać danego ruchu i w połowie drogi zacząć wykonywać kolejny krok.
Pause: Przerwa w wykonywaniu instrukcji. Stop: Wykonywanie instrukcji jest zatrzymane.
- 48 -
Page 49
8.3.1 RACS – bezprzewodowe
Z oprogramowaniem RACS i zestawem AREXX ARX-APC-220, można sterować ramię robota także bezprzewodowo. Poniżej opisane jest krok po kroku jak to działa:
- Podłącz programator RP6v2 i APC-220 do PC, dokładnie tak, jak opisano to na płycie.
- Podłącz APC do płytki PCB ramienia robota (zobacz na stronie 16).
- Załaduj Wireless Racs HEX plik do procesora ramienia robota.
- Wybierz poprawny port COM w programie RACS.
* Wciśnij przycisk Start (na płytce robota)
* Enable --> Wireless - Connect i Servo Power
Teraz można sterować ramieniem robota bezprzewodowo.
8.3.2 ANDROID – PROGRAM
Nasz zestaw ARX-BT03 umożliwia sterowanie ramienia robota poprzez Bluetooth i aplikację ANDROID.
Podążaj za następującymi instrukcjami:
- Podłącz moduł Bluetooth do płytki PCB ramienia robota (str. 16).
- Załaduj dane z ANDROID HEX do procesora ramienia robota.
- Załaduj dane z ANDROID APK do swojego smartfona lub na tablet. Pliki te możesz znaleźć na CD oraz w Sklepie Google Play.
- 49 -
Page 50
8.0. Programowanie Ramienia Robota
Stopniowo dochodzimy do programowania robota.
Ustawienie edytora tekstu źródłowego
Na początku należy ustawić środowisko do programowania. Tak zwany kod źródłowy dla naszego programu w języku C musi w jakiś sposób znaleźć się w komputerze!
W tym celu z pewnością nie użyjemy programów do edycji tekstu takich jak OpenOfce czy Word! Żart ten wynika z tego, że nie dla wszystkich może to być oczywiste. Tekst źródłowy to czysty tekst bez formatowania. Kompilator nie dba o kolor ani rozmiar czcionki...
Dla człowieka formatowanie ma znaczenie, ponieważ łatwiej mu odnaleźć w tekście kluczowe słowa. Niektóre z tych funkcji i inne są zawarte w edytorze Programmers Notepad 2 (w skrócie “PN2“), który będziemy uzywać (UWAGA: Pod systemem Linux należy użyć innego edytora, który oferuje te same funkcje jak PN2. Zazwyczaj takie narzędzia są już w systemie (np. kate, gedit, exmacs)). Dodatkowo wyróżniane są słowa kluczowe (“podświetlanie składni”), a także oferuje elementarne zarządzanie projektem. Pozwala to na organizowanie kilku plików tekstu źródłowego w jednym projekcie oraz wyśwtetlanie ich w liście, której elementy podpite są do jednej jednostki projektowej. Ponadto, można łatwo naprawić programy takie jak AVR-GCC w PN2 i otrzymać programy skompilowane. Zazwyczaj AVR-GCC to program zawierający szereg linii komend bez żadnego interfejsu gracznego.
Więcej ostatnich wersji programu Programmers Notepad znajdziesz na stronie domowej projektu: http://www.pnotepad.org/
Najnowsze wersje WINAVR już nie wymagają ustawiania elementów menu!
ZAUWAŻ: W tej sekcji nie wyjaśniamy więcej jak należy ustawić elementy menu w PN2, ponieważ nowa wersja WINAVR robi to za ciebie!
UŻYWAJ ODPOWIEDNIEGO OPROGRAMOWANIA
V3 PRO LUB MINI!
- 50 -
Page 51
Zobacz na stronie 47 jak otworzyć i skompilować przykładowy projekt!
Jeśli otworzyłeś przykładowy projekt, powinien on wyglądać mniej więcej jak na tym zrzucie:
Plik “Robot ArmExamples.ppg“
To są grupy projektów dla PN2, w których są wszystkie przykładowe programy oraz Biblioteka Robot Arm są wrzucone w jedną listę projektową (“Projects“).
Po lewej stronie pokazują się przykładowe projekty, a po prawej tekst źródłowy programów (z podświetlaniem skłądni) i na dole narzędzia wejścia (w tym przypadku wejściem jest kompilator). W programie PN2 można znaleźć wiele użytecznych właściwości i funkcji.
- 51 -
Page 52
Otwieranie i kompilowanie przykładowego projektu
Teraz należy sprawdzić czy wszystko działa poprawnie i otworzyć przykładowy
projekt:
Wybierz w menu “File“ opcję “Open Project(s)“.
Pojawi się zwykła sekcja dialogowa. Wyszukaj “Robot Arm_Examples [MINI]\“ w folderze, w którym zapisałeś przykładowe programy.
Otwórz plik “Robot ArmExamples.ppg“. Jest to grupa projektowa dla PN2, która ładuje wszystkie przykładowe programy, tak jak Biblioteka Robot Arm, na listę programu (“Projects“).
Teraz wszystkie przykładowe projekty są na wyciągnięcie ręki, jeśli zechcesz odnieść się do któregoś z nich, np. oglądając na początku przykładowe funkcje w Bibliotece Robot Arm itd.
Otwórz pierwszy z tych programów na górze listy oraz wybierz plik “01_Leds“. Kliknij dwa razy na “01_Leds.c“! Edytor tekstu źródłowego wyświetla się w oknie wewnątrz programu.
Obszar wyjścia powinien pojawić się na dole okna programu PN2. Jeśli tak się nie stanie, należy włączyć ten obszar klikając w menu “View” --> “Enable output” LUB jeśli obszar jest zbyt mały, zwiększ rozmiar okna rozciągając brzegi okienka myszką (po najechaniu na brzeg okna kursor zmienia się w podwójną strzałkę).
Możesz przyjrzeć się programowi, który właśnie został otwarty, ale nie musisz teraz dokładnie rozumieć o co tam chodzi. Jednakże pierwsza wiadomość brzmi: zielony tekst oznacza komentarze, które są tylko informacją dla programisty i nie są naprawdę częścią programu (tzn. kompilator ich nie widzi).
- 52 -
Page 53
Funkcje wyjaśnimy szczegółowo nieco dalej (istnieje również wersja programu BEZ komentarzy, abyś mógł zauważyć jak krótki tak naprawdę ten program jest. Komentarze dodają objętości kodowi, jednak są niezbędne do zrozumienia kodu. Niezakomentowana wersja jest jednak przydatna do skopiowania jako baza dla twoich własnych programów!).
Na początku należy jedynie przetestować odpowiednie działanie kompilatora.
W menu Tools na górze powinny się pojawić świeżo zainstalowane elementy menu (zobacz zrzut).
Kliknij teraz “MAKE ALL“!
PN2 tworzy teraz wyżej wymieniony plik wsadowy “make_all.bat“. Plik ten z kolei będzie tworzył program “make“. Więcej na temat programu “make“ wyjaśnione zostanie później.
Przykładowy program nie skompiluje się. Wygenerowany plik hex zawiera program w wersji przetłumaczonej tak, aby mikrokontroler rozumiał i może być załadowany i później wykonany. Kompilacja to proces, w którym tworzy się wiele tymczasowych plików (np. takie o rozszerzeniach: .o, .lss, .map, .sym, .elf, .dep). Nie są dla ciebie istotne. Nowa opcja “make clean” wszystkie je usunie. Interesuje nas jedynie plik hex, którego funkcja “make clean” nie wymaże.
- 53 -
Page 54
Po aktywowaniu opcji z menu MAKE ALL, powinno wyświetlić się następujące wyjście (poniżej przedstawiona skrócona wersja! Niektóre linie mogą oczywiście wyglądać nieco inaczej):
> “make.exe” all
-------- begin --------
avr-gcc (WinAVR 20100110) 4.3.3 Copyright (C) 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Size before: AVR Memory Usage
----------------
Device: atmega64 Program: 3074 bytes (4.7% Full) (.text + .data + .bootloader) Data: 68 bytes (1.7% Full) (.data + .bss + .noinit) EEPROM: 14 bytes (0.7% Full)
(.eeprom)
Compiling C: Robot Arm_Leds.c avr-gcc -c -mmcu=atmega64 -I.
-gdwarf-2 -DF_CPU=16000000UL -Os -funsigned-char -funsigned-bitelds -fpack­struct -fshort-enums -Wall
-Wstrict-prototypes -Wa,-adhlns=./Robot Arm_Leds.lst -std=gnu99 -MMD -MP -MF .dep/Robot Arm_Leds.o.d Robot Arm_Leds.c -o Caterpillar_Leds.o
Linking: Robot Arm_Leds.elf avr-gcc -mmcu=atmega16 -I. -gdwarf-2 -DF_CPU=16000000UL -Os -funsigned-char -funsigned­bitelds Creating load le for Flash: Robot Arm_Leds.hex Creating load le for EEPROM: Robot Arm_Leds.eep avr-objcopy -j .eeprom --set-section-ags=.eeprom=”alloc,load” \
--change-section-lma .eeprom=0 --no-change-warnings -O ihex Robot Arm_Leds.elf
Robot Arm_Leds.eep || exit 0 Size after:
AVR Memory Usage
----------------
Device: atmega64 Program: 3074 bytes (4.7% Full) (.text + .data + .bootloader) Data: 68 bytes (1.7% Full) (.data + .bss + .noinit)
EEPROM: 14 bytes (0.7% Full) (.eeprom)
-------- end -------->
Process Exit Code: 0 > Time Taken: 00:04
- 54 -
Page 55
Linia “Process Exit Code: 0“ na końcu ma największe znaczenie. Oznacza ona, że nie wystąpił żaden błąd kompilacji. Jeśli pojawia się coś innego, kod źródłowy zawiera błąd, na temat którego kompilator zazwyczaj zwraca wiadomość, aby przybliżyć powód jego pochodzenia. Błąd ten musi zostać znaleziony i poprawiony.
Zauważ jednak, że komunikat “Process Exit Code: 0“ nie zawsze jest gwarancją na całkowicie bezbłędny program! Kompilator nie znajdzie nieprawidowego procesu myślowego, który zaimplementowałeś, np. nie może zapobiec programowi, który sprawi, że robot uderzy w ścianę. ;-)
UWAGA: Ostrzeżenia i inne błędy także możesz znaleźć w logu na dole strony. Nie przejmuj się jednak ostrzeżeniami! PN2 zaznacza błędy i ostrzeżenia innym kolorem, aby łatwiej je było znaleźć. Kompilator pokaże nawet która linijka mu się nie podoba. Jeśli klikniesz na wiadomość błędu, PN2 pokaże ci wadliwą linię kodu.
Wskaz na końcu, czyli “AVR Memory Usage“ również jest przydatny.
----------------
Size after: AVR Memory Usage
----------------
Device: atmega64
Program: 3074 bytes (4.7% Full) (.text + .data + .bootloader)
Data: 68 bytes (1.7% Full) (.data + .bss + .noinit)
Dla procesora Atmega64 oznacza to, że nasz program ma rozmiar 3074 bajtów oraz 68 bajtów pamięci RAM jest zarezerwowane na zmienne statyczne (należy dodać też dynamiczne zakresy stosu, ale to już bardziej zaawansowane... po prostu zawsze staraj się mieć conajmniej kilkaset bajtów wolnej pamięci). Procesor dysponuje 64kb (65536 bajtów) pamięci Flash ROM oraz 2kb (2028 bajtów) pamięci RAM. Wśród 64kb, 2k jest zajęte przez bootloader - więc właściwie można używać tylko 62kb. Zawsze się upewnij, że program mieści się w limicie pamięci, jaki narzuca mikrokontroler (Robot Loader nie prześle za dużego programu!)
- 55 -
Page 56
Oznacza to, że przykładowy program powyżej ma jeszcze zapas 60414 bajtów wolnej pamięci. Stosunkowo krótki program o nazwie Example_01_Leds.c ma taki duży rozmiar, bo zawiera bibliotekę Robot ArmBaseLibrary! Więc nie przejmuj się, jest wystarczająco dużo miejsca na twoje programy, a niewielkie programy zazwyczaj nie wymagają dużo miejsca. Sama biblioteka wymaga zaledwie kilka kb pamięci ash, ale znacznie ułatwia pracę i dzięki niej twoje programy będą znacznie mniejsze w porównaniu do biblioteki Robot ArmBaseLibrary.
Świeżo skompilowany program może być teraz wgrany do robota poprzez RobotLoader. Aby to zrobić, należy dodać wygenerowany plik hex do listy w RobotLoaderze przyciskiem “Add”, wybierz go oraz kliknij na “Upload” dokładnie tak jak przy programie autotestu. Później możesz przełączyć na terminal i spojrzeć co dzieje się na wyjściu programu. Należy oczywiście uruchomić program. Najlepiej poprzez wciśnięcie kombinacji klawiszy [STRG]+[S] w zakładce terminala lub używając menu (lub wpisz “s” - po resecie musisz chwilę poczekać na wiadomość “[READY]” z terminala!). Kombinacja klawiszy [STRG]+ [Y] jest również bardzo wygodna. Jeśli aktualnie wybrany program jest załadowany do ramienia robota, kombinacja sprawia, że program od razu zaczyna bieg. Dzięki temu można uniknąć klikania na zakładkę “Flash Loader” lub używania menu.
Przykładowy program jest bardzo prosty: zapala on jedynie diody LED i wyświetla tekst na wyjściu.
- 56 -
Page 57
W ramach podsumowania
Mamy nadzieję, że nasze roboty wprowadziły cię do świata robotów. Tak jak nasi japońscy przyjaciele wierzymy, że roboty staną się następną rewolucją technologiczną tak jak to było z komputerami i telefonią komórkową! I będzie to rewolucja, która przyniesie nowe ekonomiczne możliwości.
Niestety w tym polu Japonia, inne szybkorozwijające się kraje Dalekiego Wschodu oraz USA znacznie wyprzedzają Europę. W przeciwie do Europy, na Dalekim Wschodzie uczeń rozpoczyna swoją techniczną edukację już w szkole podstawowej, a nauki techniczne odgrywają kluczową rolę w tamtejszych systemach edukacji.
Mamy cel rozwinąć nasze roboty ASURO, YETI, Caterpillar i Ramię Robota, ponieważ:
TRENING CZYNI MISTRZA!
- 57 -
Page 58
DODATEK
- 58 -
Page 59
A. SCHEMAT ELEKTRYCZNY ROBOTA RA1-PRO
8
7
APC220 or Bluetooth M odule expansion
6
5
4
1
2
EXT2
Header 2
SL2
SL3
SL4
1234567
RF_BT_EXT
Header 7
10µF 10V
C26
0805
VCC
GND
PE0/RXD0/PDI
PE1/TXD0/PDO
PD7
10K
R38
0603
VCC
10K
R37
0603
RXD1
TXD1
SCL
SDA
BEEPER
SERVO1
SERVO2
SERVO3
PB0/SS
PB1/SCK
PB2/MOSI
PB3/MISO
10
11
13
PB0 (SS)
PB1 (SCK)
PB2 (MOSI)12PB3 (MISO)
PD4
27
26
25
14
29
28
15
16
17
PB4 (OC0)
PB6 (OC1B)
PB5 (OC1A)
PD0 (SCL/INT0)
PD1 (SDA/INT1)
PB7 (OC2/OC1C)
PD3 (TXD1/INT3)
PD2 (RXD1/INT2)
BLUE
BLUE
1.82k
1.82k
R13
0603
LED4
PD6
PD5
PD7
30
32
PD6 (T1)31PD7 (T2)
PD4 (ICP1)
PD5 (XCK1)
R15
0603
R14
0603
LED2
LED3
VCC
SERVO_CURRENT1
SERVO_CURRENT2
SERVO_CURRENT3
SERVO_CURRENT4
SERVO_CURRENT5
UBAT
EXT_ADC
SERVO_CURRENT6
LED1
61
55
33
57
54
56
PG0 (WR)
PF3 (ADC3)58PF2 (ADC2)59PF1 (ADC1)60PF0 (ADC0)
PF7 (ADC7/TDI)
PF4 (ADC4/TCK)
PF6 (ADC6/TDO)
PF5 (ADC5/TMS)
GND
SL1
BLUE
BLUE
1.82k
1.82k
R16
0603
LED1
10µF 10V
C25
0805
GND
100n
C24
0603
100n
C23
0603
10uH
L2
Inductor 060 3
100n
C22
0603
10n
C21
0603
LED2
LED3
LED4
SERVO_EN
19
34
62
21
52
64
43
VCC
VCC
AREF
AVCC
PG1 (RD)
PG2 (ALE)
PG3/TOSC218PG4/TOSC1
8
AREXX Engineering
Nervistraat 16
8013 RS Zwolle
The Netherland s4
7
2
Revision:
Sheet of
20130214-1 B
Number:
Dominik S. Herwald
22.03.2013
ROBOT ARM v3 - Processor
Date:
Author:
Title
6
5
GND GND
4
XTAL1
SERVO4
470R
GND
SERVO5
SERVO6
PEN
RESET
GND22XTAL2
GND
GND
1
9
20
PE6/INT6
PE7/INT7
GND
VCC
ATmega64A-AU
53
63
24
23
XTAL1
XTAL2
D3
R10
GND
16.000MHz
18p
C19
0603
GNDGND
X1
18p
C18
0603
1 2
MCL4148
MRESET
RESET
ISP_RESET
100n
C20
0603
10K
0603
123
ISP/BOOT
Header 3
D D
3
2
GND
1
IC1
3
2
BEEPER
GND
2
112
SND
PIEZO
1
A A
B B
PA7 (AD7)44PA6 (AD6)45PA5 (AD5)46PA4 (AD4)47PA3 (AD3)48PA2 (AD2)49PA1 (AD1)50PA0 (AD0)
51
PA1/KEY1
PA0/KEY0
PA3/KEY3
PA2/KEY2
PA5/KEY5
PA4/KEY4
PA7/KEY7
PA6/KEY6
1 2
STH Header 2
42
SERVO1_D_POS
SERVO1_U_POS
PE0/RXD0/PDI
PC1
START/STOP_RESET
MRESET
PE1/TXD0/PDO
PC2
PC3
PE2/XCK0/AIN0
START/STOP_RESET
BOARD_ID
R11
0603
100K
R12
0603
BUTTON
GND
C C
PC0
START/STOP
PE0 RXD0/(PDI)2PE1 (TXD0/PDO)3PE2 (XCK0/AIN0)4PE3 (OC3A/AIN1)5PE4 (OC3B/INT4)6PE5 (OC3C/INT5)7PE6 (T3/INT6)8PE7 (ICP3/INT7)
PC0 (A8)35PC1 (A9)36PC2 (A1037PC3 (A11)38PC4 (A12)39PC5 (A13)40PC6 (A14)41PC7 (A15)
- 59 -
Page 60
B. SCHEMAT UKŁADU ZASILANIA ROBOTA RA1-PRO
1
1
2
2
3
3
4
4
5
5
6
6
7
7
8
8
D D
C C
B B
A A
1
AREXX Engineering
Nervistraat 16
8013 RS Zwolle
The Netherlands4
ROBOT ARM v3 - Power Supply
20130214-1 B
14.02.2013
Dominik S. Herwald
Title
Number:
Date:
Author:
Revision:
Sheet of
VIN
2
GND
7
EN
3
COMP
6
PH/OUT
8
VSENSE
5
SS
4
BOOT
1
GND
PAD
IC3 TPS54332
GND
GND
1M
R4*
0603
10n
C7
0603
18p
C9
0603
470pf
C8
0603
24.9k
R5
0603
GND
GND
1.82k
R6
0603
10k
R7
0603
GND
100nF
C10
0603
10k
R3
0603
GND
GND
V_IN
22µF
C11
1206
22µF
C13*
1210
22µF
C12
1206
10µF 25V
C4
1206
SERVO_POWER
10µF 25V
C3*
1206
C15
470µF 25V
1
D1
MBRS330
VCC
IN
3
OUT
2
GND
1
TAB
4
IC2
NCP1117ST50
10µF 10V
C17
0805
GND
GND
2.2µF 25V
C16
0805
C5
470µF 25V
C2
470µF 25V
1
D2
MBRS330
1
2
3
PWR1
DC JACK
GND
F4.0A
F1
FUSE_HOLDER
100k
R1
0603
24.9k
R2
0603
GND
100nF
C6
0603
UBAT
SERVO_EN
SERVO_PWR
RED
1.82k
R8
0603
SERVO_POWER
GND
MAIN_PWR
YELLOW
1.82k
R9
0603
VCC
GND
C1*
470µF 25V
2
3
1
PWR
SW-SPDT
7 - 18V
max. 4A
V_IN_VCC
1
2
PWR2
Header 2
V_IN
GND
1
2
3
PWR3
Header 3
V_IN
GND
4.7µH
L1
Inductor
C43*
470µF 25V
Several optional components, only partiall y assembled
- 60 -
Page 61
C. SCHEMAT ZŁĄCZY ROBOTA RA1-PRO
8
7
8
AREXX Engineering
Nervistraat 16
8013 RS Zwolle
The Netherland s4
7
4
Revision:
Sheet of
20130214-1 B
Number:
Dominik S. Herwald
22.03.2013
ROBOT ARM v3 - Connectors
Date:
Author:
Title
6
MRESET
PE6/INT6
VCC
5
V_IN_VCC
4
VCC
3
2
VCC
1
1356
7
910811
1314
XBUS1
12
SDA
SCL
MOSI
PE0/RXD0/PDI
1 2
3 4
5 6
ISP
PB1/SCK
ISP_RESET
PE1/TXD0/PDO
MISO
TXD1
MRESET
1356
7
PROG/UART
4
2
8
RXD1
GND
4
2
PE7/INT7
GND
GND
910
VCC
PA5/KEY5
PA4/KEY4
PA7/KEY7
PA6/KEY6
4
2
KEYB
135 6
7 8
PA1/KEY1
PA0/KEY0
PA3/KEY3
PA2/KEY2
123
SPWR
Header 3
SERVO_POWER
123
VCC
Header 3
VCC
PC3
SDASCL
EXT_ADC
PE2/XCK0/AIN0
4
2
8
12
IO2
9 10
11
13 14
PC0
GND
135 6
7
PC1 PC2
PE0/RXD0/PDI
PE1/TXD0/PDO
1
2
SW2
Header 2
470R
R35
0603
SERVO1_U_POS
GND
GND
Dual use with Wir eless APC220 SET Pin
PD5
PD7
4
8
12
VCC
SPI/IO1
7
9 10
11
13 14
PB0/SS PB1/SCK
PB2/MOSI PB3/MISO
MRESET PE6/INT6
PD4
PD6
1
2
SW1
Header 2
GND
2
135 6
GND
470R
R36
0603
SERVO1_D_POS
GND
6
5
4
3
2
1
A A
B B
C C
D D
- 61 -
Page 62
D. Pomiar aktualnego położenia serwonapędu V3
8
7
8
AREXX Engineering
Nervistraat 16
8013 RS Zwolle
The Netherland s4
7
3
Revision:
Sheet of
20130214-1 B
Number:
Dominik S. Herwald
22.03.2013
ROBOT ARM v3 - Servos Current Sense
Title
Date:
Author:
6
SERVO_CURRENT1
GND
1
IC4A
100n
C33
0603
4 8
5
4
3
VCC
3
2
4.7k
R17
0603
0.1Ohm
RP1
2512, 2W
SERVO1
100n
C37*
0603
123
S1
Header 3
10µF
C36
0805
SERVO_POWER
GND
SERVO_CURRENT2
150K
R19
0603
TLC27M2CD
VCC
GND
10k
R18
0603
2.2µF 25V
C27
0805
RP2
SERVO2
S2
R22
7
IC4B
TLC27M2CD
4 8
GND
5
6
R21
2.2µF 25V
C28
0805
4.7k
R20
0603
0.1Ohm
2512
100n
C38*
0603
123
Header 3
SERVO_CURRENT3
GND
150K
0603
1
IC5A
100n
C34
0603
4 8
VCC
3
2
10k
0603
4.7k
R23
0603
0.1Ohm
RP3
2512
SERVO3
100n
C39*
0603
123
S3
Header 3
SERVO_CURRENT4
150K
R25
0603
TLC27M2CD
VCC
GND
R24
0603
2.2µF 25V
C29
0805
RP4
SERVO4
S4
R28
7
IC5B
TLC27M2CD
4 8
GND
5
6
10k
R27
2.2µF 25V
C30
0805
4.7k
R26
0603
0.1Ohm
2512
100n
C40*
0603
123
Header 3
SERVO_CURRENT5
GND
150K
0603
1
IC6A
100n
C35
0603
4 8
VCC
3
2
10k
0603
C31
4.7k
R29
0603
0.1Ohm
RP5
2512
SERVO5
100n
C41*
0603
123
S5
Header 3
SERVO_CURRENT6
150K
R31
0603
TLC27M2CD
VCC
GND
5
10k
R30
0603
2.2µF 25V
0805
R32
0.1Ohm
RP6
2512
SERVO6
C42*
123
S6
Header 3
150K
R34
0603
7
IC6B
TLC27M2CD
4 8
GND
6
10k
R33
0603
2.2µF 25V
C32
0805
4.7k
0603
GND
100n
0603
6
5
4
3
2
1
A A
B B
C C
D D
2
1
- 62 -
Page 63
1
2
34
A
B
C
D
4
3
2
1
D
C
B
A
Title
Number RevisionSize
A4
Date: 7-Jun-2010 Sheet of
File: F:\
硬件原理
\mini robot ARM\mini robot.ddbDrawn By:
D1
1N4148
D2
1N4148
SSERVO1_UP
SERVO1_DWN
PA0
PA1
D3
1N4148
D4
1N4148
SSERVO2_UP
SERVO2_DWN
PA2
PA3
PA4
D5
1N4148
D6
1N4148
SSERVO3_UP
SERVO3_DWN
PA0
PA1
D7
1N4148
D8
1N4148
SSERVO4_UP
SERVO4_DWN
PA2
PA3
PA5
D9
1N4148
D10
1N4148
SSERVO5_UP
SERVO5_DWN
PA0
PA1
D11
1N4148
D12
1N4148
SSERVO6_UP
SERVO6_DWN
PA2
PA3
PA6
D13
1N4148
D14
1N4148
TANK_FNT
TANK_BCK
PA0
PA1
D15
1N4148
D16
1N4148
TANK_RIGHT
TANK_LEFT
PA2
PA3
PA7
PA5
PA0
PA1
PA2
PA3
PA6
PA7
PA4
1
2
3
4
5
6
7
8
J1
ext key pad
E. SCHEMAT KLAWIATURY ROBOTA RA1-PRO
- 63 -
Page 64
F. PŁYTKA PCB RAMIENIA ROBOTA RA1-PRO
- 64 -
Loading...