® ROBOT ARDUINO AAR INSTRUKCJE: AAR-04 © AREXX Engineering - V1401 -1-
Contents 1. OPIS PRODUKTU AAR 1.1 Rodzina robotów ARDUINO 5 1.2 Specyfikacja techniczna 5 2. OGÓLNY OPIS ARDUINO 7 3. ROBOT ARDUINO 12 3.1. Opis LED robota AAR 12 3.2. Układ płytki PCB robota AAR 13 4. ROBOT ARDUINO (AAR) 16 4.1. Pobranie i instalacja oprogramowania 16 4.2. Język Arduino 16 4.3. Inslatacja sterownika USB 16 4.4 Montaż koszyka bateryjnego 17 4.5 Programowanie z programami Arduino 18 4.6 Wybór programu Arduino 18 4.
Impressum ©2013 AREXX Engineering Nervistraat 16 8013 RS Zwolle The Netherlands Tel.: +31 (0) 38 454 2028 Fax.: +31 (0) 38 452 4482 Wszystkie prawa zastrzeżone. Każda reprodukcja lub adaptacja całości lub części podręcznika wymaga pisemnej zgody. Specyfikacja produktu oraz dostarczane treści mogą podlegać zmianom. Treść podręcznika może ulec zmianie bez wcześniejszego uprzedzenia. Darmowe aktualizacje podręcznika można znaleźć na: http://www.arexx.com/ E-Mail: Info@arexx.
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.
1. OPIS PRODUKTU AAR 1.1. Rodzina robotów ARDUINO Arduino to platforma open source stworzona do budowania prototypów elektronicznych. Umożliwia to mikrokontroler, który zawiera wszystkie dodatkowe interfejsy oraz potrzebne do tego celu oprogramowanie. Koncept Arduino został zaprojektowany aby uczyć nowoczesnej elektroniki dla robotyki, sterowanie oprogramowaniem oraz czujników w najprostszy możliwy sposób. Jako następcę robota ASURO, który można programować w języku C, zaprojektowaliśmy robota Arduino.
1.3. Środki ostrożności 1. Uwaga! Należy przeczytać ten podręcznik przed podłączeniem robota do zasilania! Niepoprawne podłączenie może trwale uszkodzić cały sprzęt lub jego część. 2. Uwaga! Należy obejrzeć dokładnie wszystkie schematy połączeń! Bądź ostrożny w podłączeniach schematów. Błąd w połączeniach może uszkodzić moduły. Pamiętaj o poprawnej polaryzacji baterii (źródła zasilania). Odwrotnie podłączone zasilanie także może uszkodzić sprzęt. 3.
2. Ogólny opis ARDUINO 2.1. Czym i kim jest ARDUINO? Arduino to płytka open source z 8-bitowym mikroprocesorem, która umożliwia łatwe programowanie mikrokontrolera oraz pracę nad projektami z obiektami interaktywnymi dla arytstów, projektantów, hobbystów i innych. Platforma Arduino oparta jest na mikrokontrolerach firmy Atmel ATmega168 lub ATmega328. Układ zapewnia użytkownikom kanały wejść analogowych oraz cyfrowych, które pozwalają na otrzymanie i wysłanie sygnału z/do środowiska.
2.2 Mikrokontrolery 2.2.1. Aplikacje Mikrokontroler (oznaczany często jako µC, uC lub MCU) to mały komputer w małym układzie scalonym, który zawiera rdzeń procesora, pamięć oraz programowalne wejścia/wyjście (I/O). Dodatkowo w układzie znajduje się pamięć programu oraz niewielka ilość pamięci danych (RAM). Mikrokontrolery stosuje się w urządzeniach sterowanych automatycznie, np. samochodowe systemy sterowania silnikiem, piloty, urządzenia biurowe, implanty medyczne, zabawki i inne.
2.3. Pobór mocy oraz prędkość Niektóre mikrokontrolery mogą pracować w niskich częstotliwościach zegara (np. 4 kHz) w celu poboru małej mocy (rzędu milliwatów lub mikrowatów). Będą mogły utrzymać funkcjonalność w momencie oczekiwania na wydarzenie, np. naciśnięcie przycisku; pobór mocy w stanie uśpienia (zegar procesora i inne urządzenia są wyłączone) może być nawet w nanowatach, co umożliwia oszczędność baterii.
Mikrokontrolery na początku były programowane tylko w języku assemblera, ale wiele rodzajów programowalnych językami wysokiego poziomu stały się teraz głównym celem uC. Te języki zostały zaprojektowane specjalnie do wykorzystania ogólnego, np. język C. Sprzedawcy mikrokontrolerów zazwyczaj tworzą narzędzia ogólniedostępne, aby umożliwić łatwiejsze zastosowanie ich sprżętu. Układ Arduino zapewnia nam około 32 kilobajtów pamięci flash na programy, które mogą być programowane w języku C. 2.5.
Dodatkowo, w wielu mikropocesorach znajdują się różne rodzaje timerów. Jednym z najbardziej znanych typów timerów są tzw. PIT (z ang. Programmable Interval Timer). Ten rodzaj timerów liczy od pewnej wartości do 0 i kiedy je osiągnie wysyła do procesora informację o zakończeniu liczenia. Jest to przydatne w urządzeniach takich jak termostaty, które cyklicznie sprawdzają temperaturę otoczenia, aby sprawdzić, czy należy włączyć klimatyzację czy grzejnik.
3. ROBOT ARDUINO Rys.: Płytka PCB AAR 3.1 OPIS LED ROBOTA AAR LED LED LED LED LED LED LED LED LED LED LED LED LED LED LED LED LED LED 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
3.2 UKŁAD PŁYTKI PCB ROBOTA AAR Zobacz numery na Rys.: Płytka PCB AAR 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Wejście na koszyk bateryjny. (Uważaj przy podłączaniu! Sprawdź czy polaryzacja jest poprawna!) Przełącznik On/Off Robota. Dioda statusu: sygnalizuje czy Robot został zasilony ze źródła. Jeśli używasz baterii wielokrotnego ładowania możesz podłączyć to podwójne wejście, który zasili robota poprawnie.
3.3 AAR - DODATKOWE INFORMACJE Dostępny jest interfejs fizyczny do podłączenia USB wraz z chipem FT232 IC. Chip ten przekształca sygnał z USB na sygnał RS232 UART, który później może być już przetworzony przez procesor ATMEGA328P (znajdujący się po prawej stronie na przodzie). Po drugiej stronie umieściliśmy przełącznik ON/OFF, który zawiera złącze JP3 potrzebne do podłączenia zasilania oraz kontroler silnika IC2. Tylna część płytki drukowanej (PCB) zawiera oba silniki oraz czujniki kół.
3.4 OPROGRAMOWANIE ARDUINO - DODATKOWE INFORMACJE Oprogramowanie Arduino to kategoria oprogramowania open source, które jest dostępne uniwersalnie do wszystkiego, np. kody źródłowe są ujawnione do wszystkich platform programistycznych. Platforma programistyczna Arduino została zaopatrzona w edytor tekstu, okno powiadomień oraz konsolę. Platforma może komunikować się bezpośrednio z AAR, co pozwala na łatwe przesyłanie programów do procesora. Programy napisane w języku Arduino nazywane są „sketch” (z ang.
4. ROZPOCZĘCIE PRACY 4.1. Pobranie i instalacja oprogramowania Zainstaluj wersję 1 oprogramowania Arduino z płyty. Później możesz pobrać najnowszą wersję oprogramowania ze strony Arduino. WAŻNE: Użycie różnych wersji oprogramowania Arduino i różnych wersji aplikacji może stworzyć pewne problemy. Bywa, że dla aktualnej wersji oprogramowania należy też zmienić aplikacje, bo bez tego może nie zadziałać! 4.2. Język Arduino Struktura języka Arduino jest dokładnie opisana na oficjalnej stronie Arduino.
4.4 Montaż baterii Projekt robota wymaga czterech baterii “paluszków”, każda po 1,5V. Jeśli wolisz użyć baterii wielokrotnego ładowania, należy zamontować zworkę JP4 jako mostek, aby przygotować system na niższe zasilanie z tych baterii (zobacz Rys. 1, numer 4). UWAGA! Montaż zworki JP4 może wpłynąć na polaryzację baterii. Sprawdź, czy wszystko zostało umieszczone poprawnie. Dla bezpieczeństwa umieszczona została tam też dioda prostownicza.
4.5 Programowanie z programami Arduino Podłącz robot do komputera za pomocą kabla USB. Jeśli układ Arduino jest podłączony do portu USB, robot nie potrzebuje baterii - czerpie zasilanie z komputera. UWAGA: Robot zawsze będzie się aktywował jak tylko podłączony zostanie do komputera. Przełącznik ON/OFF oraz dioda zasilania LED5 będą aktywne tylko w przypadku operacji wykonanych z baterią. Teraz otwórz oprogramowanie Arduino (zobacz Rys. 3a). Rys. 3a Oprogramowanie Arduino. Rys.
Rys. 4a Program Blink. Rys. 4b Wybór płytki. Na tym etapie należy jeszcze wybraź odpowiednią płytkę Arduino w menu: Tools > Board > Arduino Duemilanove LUB Nano w/Atmega328 (jak na Rys. 4b). 4.7 Wybór poprawnego portu COM W następnym kroku należy zdefiniować poprawny port COM dla interfejsu Arduino. Będzie to zapewne COM3 lub wyższy (COM1 i COM2 są już w użyciu). Aby wybrać port COM otwórz menu: Tools > Serial Port > COM x. (zobacz Rys. 5) Rys. 5 Wybór poprawnego portu COM.
4.8 Wgrywanie programu do Robota Arduino Kliknij przycisk, który zaznaczony został czerwoną strzałką (lub zamiennie wybierz z menu: „File > Uploading to I/O board“), aby wgrać wybrany program do podłączonego robota Arduino (Rys. 6a). Okno statusu na bieżąco wyświetla jak przebiega proces kompilacji programu i gdy zakończy się on z sukcesem, rozpocznie się przesyłanie programu do układu. Na koniec wgrywania programu w oknie pojawi się komunikat: „Done uploading“ (jak na Rys.
4.9 Rozwiązywanie problemów NAJPIERW sprawdź czy robot otrzymuje wystarczająco zasilania z portu USB. Da się to sprawdzić usuwając baterie i zamykając zworkę JP4 - powinna zapalić się dioda zasilania. PROBLEM; nie ma połączenia z robotem AAR. Sprawdź czy diody 3 i 4 migają krótko kiedy podłączasz robot do komputera kablem USB. Czy robot jest podłączony z komputerem sprawdź w managerze urządzeń (panel sterowania). Rys. 6c) Manager urządzeń (na zrzucie ekranu duńska wersja WIN7).
4.10 Autotest AAR Z płyty CD otwórz program AAR_selftest i wgraj plik .ino do robota AAR. Aby wgrać wybrany program do podłączonego robota Arduino kliknij opcję, która na Rys. 7 została oznaczona czerwoną strzałką (lub zamiennie wejdź w menu “File > Uploading to I/O” board). Ładowanie bibliotek Ładowanie bibliotek wykonuje się poprzez menu “sketch”> “Library” > SoftPWM oraz TimerOne z CD (przykłady). Rys.6d) biblioteki Otwórz biblioteki (wersja duńska) SV1 serial monitor Rys. 7 Wgrywanie programu.
5 MODUŁY ROZSZERZAJĄCE AAR 5.1 Moduły rozszerzające ASURO dla Robota Arduino Robot AREXX Arduino posiada wiele różnych połączeń dla modułów rozszerzających. Piny złączy AAR są również zgodne z robotem AREXX ASURO (zestaw programowalny w języku C). Oznacza to, że można używać tych samych rozszerzeń zarówno do zestawu AREXX ASURO, jak również i do ninejszego robota Arduino. Na płycie znajduje się kilka przykładowych programów Arduino, abyś mógł rozpocząć pracę z rozszerzeniami od razu.
5.2 Konfiguracje rozszerzeń ASURO ARX-ULT10 AREXX ULTRA SOUND KIT Użyj przykładowego programu Arduino AAR_ULTRA z CD. Z tym programem robot cofa się, gdy napotka przeszkodę. ARX-SNK20 AREXX SNAKE VISION (PYRO) KIT Użyj przykładowego programu Arduino AAR_SNAKE z CD. Z tym programem robot będzie podążał za ciepłym obiektem. ARX-DSP30 AREXX DISPLAY KIT Użyj przykładowego programu Arduino AAR_DISPLAY z CD. Z tym programem na wyświetlaczu pokazuje się tekst, a przyciski można dowolnie zaprogramować.
ARX-MNSP55 AREXX MINE SWEEPER KIT Użyj przykładowego programu Arduino AAR_MINE z CD. Z tym programem robot będzie wykrywał metal. ARX-APC220 AREXX WIRELESS KIT RP6v2 USB Programmer z APC-220 Zobacz program AAR_APC220 spośród przykładowych plików na CD. Użyj przykładowego programu Arduino AAR_SRC. Potrzebny będzie też program Visual Basic na komputerze (AAR_VB). Z zestawem AREXX ARX-APC-220 można sterować robotem AAR bezprzewodowo.
ANDROID – PROGRAM ARX-BT3 AREXX BLUETOOTH KIT Zestaw ARX-BT03 umożliwia ci sterowanie robota AAR poprzez Bluetooth i aplikację na ANDROID. Otwórz plik AAR_Android app z płyty i zainstaluj aplikację BLUETOOTH_AAR.APK na swoim urządzeniu. Z tego samego pliku zainstaluj plik AAR_SRC_Bluetooth na robocie AAR. Podążaj za instrukcjami poniżej: Podłącz moduł Bluetooth do płytki PCB robota. Załaduj dane Bluetooth ANDROID do procesora robota. Załaduj dane ANDROID APK do swojego smartfona lub tabletu.
6. POBOCZNE INFORMACJE NA TEMAT OBWODÓW MOSTKA H Mostek H to obwód elektroniczny, który odwraca polaryzację urządzenia (np. silnika prądu stałego - DC) poprzez sterowanie czterema przełącznikami. Bardzo czesto używa się go w robotyce do sterowania obrotami silnika w dwie przeciwne strony. Nowoczesne systemy używają układów scalonych do sterowania silnikiem, ale aby poznać podstawowe problemy związane z napięciem zasilającym kluczowym może się okazać użycie archaicznego układu do sterowania. 6.
Przyjrzyjmy się silnikowi prądu stałego M. W obwodzie rezystor R14 imituje działanie przedwzmacniacza. Ten rezystor ma później wpływ na wyprowadzenia tranzystorów nazywane bazą, a konkretnie na tranzystory TR6 i TR5, których napięcie bazy będzie równe 0V. Z tego powodu prawa gałąź przewodzi istotne prądy. Tranzystory TR8, TR5 i TR9 przewodzą, a inne są w tym czasie zablokowane. Jak tylko R14 dostanie napięcie dodatnie, prawa gałąź zostanie zablokowana i prąd na silniku zostanie odwrócony.
3-woltowe napięcie zasilające jest idealnym rozwiązaniem dla robota, który swoje napięcie czerpie z tylko dwóch paluszków baterii. Trudno jednak zawrzeć tanzystory PNP w ukadzie scalonym takim jak L293D. Układy scalone (IC - ang. integrated circuit) mają wiele plusów: niezawodność, ochrona przed nieodpowiednim budowaniem obwodów, a także mały rozmiar i waga. Z tego powodu zdecydowaliśmy się użyć chipu L293D z obwodem podwójnego mostka H, aby móc jednocześnie sterować dwoma silnikami prądu stałego. 6.
7. Odometria Ten rozdział poświęcony jest interesującym pomysłom na aplikację dla robota AAR dla osób, które są zainteresowane pogłębieniem tematu projektów związanych z robotyką. 7.1 Reakcja na światło i kolor Sensory światłoczułe pozwolą nam programować robota, aby reagował na linię oraz kolory. W pierwszym z przedstawionych przykładów robot powinien jeździć po torze w kształcie ósemki. Program napisany został w pętli, czyli robot jest zmuszony do nieprzerwanej pracy.
7.3 Złożone roboty typu line follower Roboty, które podążają za światłem lub po torzej krzywej wymagają źródła światła, np. diody lub większej ilości czujników światła. Takie urządzenia pozwalają układowi na identyfikację linii, po której robot ma podążać. Pierwszym krokiem w programie powinny być instrukcje pozwalające robotowi na początkowe odnalezienie linii, która tworzy wzór, po którym robot ma się poruszać. Taki wzór może się składać z instrukcji, gdzie wzorem jest, np.
Doświadczeni programiści zdają sobie sprawę ze złożoności oraz wymogów projektowych programu, który wymaga wielu różnych zależności od kolorów i od dźwięków. Programiści stoją wtedy przed zadaniem stworzenia programu, który opierać się będzie na hierar-chicznie wykonujcych się funkcjach. Stworzenie takiego konceptu pozwala na napisanie złożonego i rzetelnego oprogramowania, które wykonywać będzie konkretne zadanie.
8. Programowanie w Boot-loader UWAGA! Opisane w tym rozdziale opcje wymagają dużego doświadczenia programistycznego. Możesz załadować do mikrokontrolera Arduino-bootloader przy pomocy STK500. Aby wgrać do mikrokontrolera Atmega jakikolwiek program, który został napisany w języku Arduino, procesor Atmega musi być wyposażony w specjalny Arduino-bootloader. Ten boot-loader zadba o poprawną lokalizację wszystkich użytych znaków wewnątrz pamięci Atmega.
DODATEK - 34 -
A. LISTA ELEMENTÓW Element Wartość Pakiet C1 C2 C3 C4 C6 C7 C8 C9 C11 C12 C13 C14 C15 C16 C17 C19 D1 D2 IC1 IC2 IC3 IC4 IC5 JP1 JP2 JP3 JP4 JP5 SV2 T1 T2 T3 T4 U$1 U$2 U$3 U$4 X1 LED1 LED2 LED3 LED4 LED5 LED6 18pF 18pF 0.
Element Wartość Pakiet LED8 LED9 LED10 LED11 LED12 LED13 LED14 LED16 LED17 LED18 Q1 R1 R2 R3 R4 R5 R6 R7 R8 R9 R10 R11 R12 R13 R14 R15 R16 R17 R18 R19 R20 R21 R22 R23 R24 R25 R26 R27 R28 R29/C3 R31 R32 S1 S2 SV1 Rd Rd Rd Rd Gn Rd Bl Rd Rd Rd 16MHz 20k 20k 1k5 220 1k5 1k 680 680 20k 20k 220 220 10k 220 220 220 220 220 220
B.
C.
ATmega328P D.
E.