Praca Dyplomowa

Transkrypt

Praca Dyplomowa
POLITECHNIKA KRAKOWSKA
Wydział Mechaniczny
Instytut Technologii Maszyn i Automatyzacji Produkcji
rok akademicki 2002/2003
PRACA DYPLOMOWA
MAGISTERSKA
.................................
(symbol pracy)
Temat pracy:
Modelowy system do testowania procedur sterowania
rozproszonego
Autor: Tomasz Więk
Kierownik pracy: dr inż. Jerzy Zając
Ocena pracy
Data
Podpis Kierownika pracy
-2-
Symbol pracy:
POLITECHNIKA KRAKOWSKA
Wydział Mechaniczny
Instytut Technologii Maszyn i
Automatyzacji Produkcji
Autor:
Tomasz Więk
Katedra Systemów Wytwarzania
Kierownik pracy: dr inż. Jerzy Zając
Data wydania tematu: 12.11.2002
Rok akademicki 2002/2003
sem. 10
Data przyjęcia pracy:
Temat:
Modelowy system do testowania procedur sterowania rozproszonego
Kierownik pracy:
dr inż. Jerzy Zając
Dyrektor Instytutu:
prof. dr hab. in ż. Jerzy Cyklis
Wytyczne dla wykonania pracy:
1. Opracowanie koncepcji budowy minirobota mobilnego sterowanego
komputerowo.
2. Opracowanie projektu minirobota.
3. Wykonanie i testowanie czterech minirobotów oraz oprogramowania
sterującego.
.......................................
Podpis Kierownika pracy
-3-
Lp.
Treść konsultacji
Data
1
Wydanie tematu pracy.
2
Dyskusja możliwych koncepcji wykonania minirobotów. 22.11.2002
3
Przyjęcie schematu kinematycznego
08.01.2003
4
Omówienie koncepcji komunikacji radiowej.
24.01.2003
5
Prezentacja pierwszego prototypu. Weryfikacja ze
względu na małą prędkość i duże rozmiary.
12.11.2002
20.02.2003
6
Prezentacja nowego systemu napędowego.
11.03.2003
7
Omówienie systemy zasilającego.
27.03.2003
8
Dyskusja nad systemem wykrywania przeszkód.
09.04.2003
9
Prezentacja drugiego prototypu. Weryfikacja
przedstawionego systemu sensorycznego.
06.05.2003
10
Dyskusja nad czujnikami zderzakowymi.
21.05.2003
11
Prezentacja trzeciego prototypu.
04.06.2003
12
Omówienie i przyjęcie poleceń minirobotów.
10.06.2003
13
Prezentacja i zatwierdzenie ostatecznej wersji
urządzenia.
Podpis
16.06.2003
14
Konsultacja treści pracy
06.08.2003
15
Poprawa treści pracy
29.08.2003
16
Końcowa weryfikacja treści pracy
04.09.2003
17
Oddanie pracy
Opinia o pracy i ocena:
Kierownik pracy:
Dyrektor instytutu:
-4-
-5-
Składam
serdeczne
podziękowania
Promotorowi
dr inż. Jerzemu Zającowi, którego cenne uwagi inspirowały
mnie podczas realizacji tej pracy, a życzliwa pomoc przyczyniła
się do ostatecznego jej kształtu.
Pragnę
również
gorąco
podziękować
Dyrektorowi
Instytutu Technologii Maszyn i Automatyzacji Produkcji
Prof. dr hab. inż. Jerzemu Cyklisowi za finansowe wsparcie,
bez którego nie byłoby możliwe wykonanie pracy.
-6-
Spis treści
1.
WSTĘP. ...............................................................................................................7
2.
CEL I ZAKRES PRACY. ...................................................................................9
3.
MINIROBOTY..................................................................................................10
4.
OPIS PRZYJĘTEGO ROZWIĄZANIA. .........................................................16
5.
4.1.
OKREŚLENIE MODELU KINEMATYCZNEGO......................................................16
4.2.
KONSTRUKCJA MECHANICZNA. .....................................................................19
4.3.
UKŁAD NAPĘDOWY.......................................................................................23
4.4.
SYSTEM STEROWANIA...................................................................................30
4.5.
SYSTEM KOMUNIKACJI RADIOWEJ. ................................................................35
4.6.
SYSTEM SENSORYCZNY.................................................................................39
4.7.
SYSTEM ZASILANIA.......................................................................................47
OPROGRAMOWANIE STERUJĄCE. ...........................................................52
5.1.
POLECENIA MINIROBOTA ...............................................................................52
5.2.
OPROGRAMOWANIE WEWNĘTRZNE................................................................57
5.3.
OPROGRAMOWANIE ZEWNĘTRZNE.................................................................64
6.
MINIROBOT JAKO ELEMENT SYSTEMU ROZPROSZONEGO.............67
7.
KOŃCOWE UWAGI I SPOSTRZEŻENIA. ...................................................71
8.
DODATEK A – PARAMETRY MINIROBOTA.............................................76
9.
DODATEK B – ELEMENTY SKŁADOWE PRACY. ....................................77
-7-
1. Wstęp.
„Obserwując trendy rozwojowe współczesnych urządzeń wytwórczych można
zauważyć, że dążenie do zwiększania ich funkcjonalności odbywa się zarówno poprzez
stosowanie
nowych
rozwiązań
konstrukcyjnych
i
technologicznych,
jak
i
implementowanie coraz bardziej uniwersalnych otwartych układów sterowania,
opartych na rozwiązaniach znanych z komputerów osobistych. Można więc sobie
wyobrazić zbiór inteligentnych urządzeń wytwórczych, takich jak: obrabiarki, roboty,
wózki czy magazyny, wyposażonych w uniwersalne, konfigurowalne systemy
sterowania, które – wykorzystując wspólną magistralę komunikacyjną – tworzą system
wytwarzania o charakterze samoorganizującym według technologii włącz i działaj (ang.
plug and play). Tego typu rozwiązania wykorzystywane są z powodzeniem od kilku lat
w procesie konfigurowania komputerów osobistych.
Ważnym elementem systemów wytwarzania nowej generacji są ich rozproszone
systemy sterowania. W systemach sterowania o strukturze rozproszonej opracować
należy jedynie podstawowe (bazowe) reguły działania (indywidualnego i grupowego)
elementarnych modułów tworzących skład systemu, a system sterowania – dzięki
samoorganizacji – zapewni dostosowanie się do zaistniałej sytuacji. Podstawową zaletą
podejścia zdecentralizowanego jest fakt, że skład systemu tworzą autonomiczne
elementy, wyposażone w własne sterowniki i mogące wykonywać określony zbiór
działań samodzielnie lub we współdziałaniu z innymi elementami. Współczesnym
sterownikom
urządzeń
wytwórczych
brak
jest
jednak
cech
„społecznych”
przejawiających się zdolnością do realizacji nadrzędnych celów o charakterze
systemowym, a wymagających współdziałania czy też samoorganizacji elementów
tworzących skład systemu.”[14].
Można spodziewać się wiec, że w przyszłości powstaną fabryki, w których produkcję
będą realizowały rozproszone i samoorganizujące się systemy. Dzięki bezprzewodowej
komunikacji wszystkie elementy takiej fabryki zostaną ze sobą zintegrowane i
traktowane jako jeden "organizm". Obrabiarki wymieniały będą między sobą
informacje o aktualnym programie pracy, wydajności, stanie narzędzi, a ponadto
rozdzielą między siebie poszczególne zadania tak aby maksymalnie wykorzystać ich
moce produkcyjne. W skład systemu transportowego wchodzić będą autonomiczne
wózki samojezdne. Każdy wyposażony w zaawansowany system sterowania
-8-
zawierający algorytmy planowania, przeciwdziałania blokadom i współdziałania,
system nawigacji oraz niezliczone ilości różnych sensorów. Będą one, niczym mrówki,
transportować przedmioty między poszczególnymi etapami procesu technologicznego.
Bez ryzyka kolizji z innym elementem systemu, z dużymi prędkościami
przemieszczając się po hali produkcyjnej. Dzięki algorytmom pracy zespołowej będą
mogły wykonywać wspólnie zadania, których nie są w stanie wykonać w pojedynkę.
Taki system produkcyjny cechuje się wysokimi wskaźnikami niezawodności,
maksymalnym wykorzystaniem mocy produkcyjnej, a co za tym idzie niskim kosztem
wytwarzania.
Dodatkowo
bardzo
duża
elastyczność
technologiczna
oraz
samoorganizacja takiego systemu sprawia, ze zarówno nagła zmiana produkcji jak i
niespodziewane awarie nie są czynnikami krytycznymi, uniemożliwiającymi działanie
systemu.
Przedstawione powyżej rozważania można na razie traktować jedynie jako
wizje. Warto jednak podkreślić, ze obecny stan techniki umożliwia już teraz podjecie
badań nad realizacja takiej wizji. Do weryfikacji tego typu wizji wykorzystuje się
symulacje komputerową. Pozwala ona "w wirtualnym świecie" poznać problemy
mogące powstać w trakcie pracy takich systemów, a także zweryfikować nowe
koncepcje i pomysły. Symulacja komputerowa jest bardzo użytecznym narzędziem, nie
dostarcza jednak wszystkich informacji na temat mogących się pojawić problemów.
Bardzo dużo brakujących informacji można uzyskać budując i testując rzeczywiste
modele (prototypy) elementów danego sytemu.
Stąd w pracy podjęto się zaprojektowania i zbudowania fizycznych elementów
(minirobotów mobilnych) dających pewną możliwość weryfikacji rożnych koncepcji
sterowania rozproszonego.
-9-
2. Cel i zakres pracy.
Celem pracy jest opracowanie koncepcji budowy minirobotów mobilnych oraz
wykonanie kilku egzemplarzy takich robotów, które mogą posłużyć do prezentacji i
testowania procedur sterowania rozproszonego.
Zakres pracy obejmuje wykonanie 4 jednakowych minirobotów mobilnych
wyposażonych w zdolność komunikacji bezprzewodowej, system sensoryczny,
wewnętrzny układ sterujący, oraz niezależne źródło zasilania. W celu skonstruowania
takich minirobotów należało:
1. Wybrać model kinematyczny minirobota.
2. Opracować i wykonać konstrukcję mechaniczną minirobota.
3. Opracować i wykonać obudowę.
4. Opracować i wykonać system napędowy.
5. Opracować i wykonać mikroprocesorowy system sterujący.
6. Opracować i wykonać system komunikacji bezprzewodowej.
7. Opracować i wykonać system sensoryczny.
8. Opracować i wykonać system zasilania.
Ponadto, ze względu na fakt, że miniroboty mają być zdalnie sterowane przy użyciu
komputera, należało również:
1. Opracować listę poleceń sterujących.
2. Zaimplementować tą listę do wewnętrznego układu sterującego.
3. Opracować i wykonać urządzenie komunikacyjne dla komputera sterującego
4. Napisać oprogramowanie sterujące na komputer pracujący w systemie
Windows.
- 10 -
3. Miniroboty.
Robot mobilny jest to robot obdarzony możliwościami lokomocyjnymi. Mogą one
być realizowane w różny sposób: przy pomocy kół, gąsienic czy odnóży.
Autonomiczny robot mobilny, w odróżnieniu od robota mobilnego posiada zdolność
wykonania ruchu w nieznanym środowisku bez zewnętrznego wsparcia. Jest
wyposażony w odpowiednie algorytmy sterowania, które na podstawie informacji z
układu sensorycznego umożliwiają dotarcie do miejsca przeznaczenia. W przypadku
braku
w robocie
mobilnym
lub
autonomicznym
robocie
mobilnym
części
manipulacyjnej nazywamy go platformą mobilną lub analogicznie autonomiczną
platformą mobilną. Roboty mobilne są jednym z najbardziej dynamicznie rozwijających
się kierunków współczesnej robotyki [13].
Prace związane z robotyką mobilną prowadzone są przez wiele instytucji
naukowych i komercyjnych oraz niezliczone rzesze hobbystów indywidualnych oraz
zrzeszonych w różnych klubach na całym świecie. Postępująca miniaturyzacja robotów
mobilnych spowodowała pojawienie się nowego określenia tych urządzeń. Nazywa się
je minirobotami mobilnymi lub coraz częściej po prostu minirobotami.
Miniroboty mogą być wykorzystywane do najróżniejszych celów. Gromada takich
minirobotów może przemierzać pola minowe w celu neutralizacji min. Mogą wędrować
w przewodach wentylacyjnych i alarmować o niebezpiecznych środkach chemicznych
czy biologicznych. Mogą zostać wykorzystane do lokalizacji ludzi uwięzionych pod
gruzami budynku. Posłużyć do eksploracji miejsc niebezpiecznych dla zdrowia i życia
ludzi. Znakomicie się nadają do prowadzenia wielu prac badawczych jak na przykład
badania nad zaawansowanymi systemami sterowania, nad sztuczną inteligencją, czy
algorytmami ewolucyjnymi. Mogą być wykorzystywane w edukacji i rozrywce.
Miniroboty są urządzeniami mechatronicznymi, oznacza to, że ich budowa
wymaga integracji następujących dziedzin:
-
mechaniki (mechanika techniczna, budowa maszyn, mechanika precyzyjna),
-
elektroniki
(mikroelektronikę,
elektronikę
siłową,
technikę
pomiarów,
aktorykę),
-
przetwarzania informacji (teorię systemów, przetwarzanie danych procesowych,
sztuczną inteligencję).[5]
- 11 -
Rys. 1. Części składowe mechatroniki [4].
Obecny stan techniczny pozwala na wytwarzanie miniaturowych podzespołów
mechanicznych i elektronicznych niezbędnych do budowy minirobotów mobilnych.
Dlatego instytucje naukowe i komercyjne koncentrują swe wysiłki głównie nad
rozwojem zaawansowanych algorytmów i systemów sterowania. Ma to na celu
umożliwienie robotowi poruszanie się oraz lokalizacje w rzeczywistym środowisku.
Prace nad tymi algorytmami przyspiesza niewątpliwie zapoczątkowany w 1998
roku międzynarodowy projekt o nazwie RoboCup. Zakłada on, że do 2050 roku
powstanie drużyna humanoidalnych robotów będących w stanie wygrać mecz piłki
nożnej z drużyną mistrzów świata. Aby to było możliwe trzeba rozwiązać wiele
problemów związanych z konstrukcją oraz sterowaniem robota. Musi on posiadać
sztuczną inteligencję umożliwiającą pracę zespołową, podejmowanie decyzji w czasie
rzeczywistym, czy wybór strategii. Ponadto musi mieć możliwość szybkiego poruszania
się w zmieniającym się równie szybko środowisku.
Organizowane corocznie rozgrywki są ogromną możliwością dla naukowców z
różnych stron świata do wymiany doświadczeń, spostrzeżeń czy informacji
technicznych. Przez rywalizację w zawodach motywują konstruktorów i programistów
do opracowania coraz to nowszych, lepszych rozwiązań. Jednocześnie są szansa do
edukowania jak również zainteresowania publiczności. Halę na której odbywały się
rozgrywki RoboCup 2002 odwiedziło 117 tysięcy osób, co jest oznaką ogromnego
zainteresowania.
- 12 -
Zawody rozgrywane są w kilku kategoriach:
-
simulation – mecze rozgrywane są na wirtualnych stadionach symulowanych
przez RoboCup Soccer Server Simulator. Roboty – programy komputerowe
grają dwie polowy po 5 minut każda.
-
small size – przewidziana dla drużyn liczących po 5 robotów sterowanych przez
zewnętrzny komputer. Grają one na boisku o wymiarach stołu pingpongowego,
nad którym zawieszona jest kamera monitorująca rozmieszczenie zawodników.
Wysokość robotów nie przekracza 22,5cm, a średnica podstawy 18cm.
Rozgrywana połówka meczu trwa 10min.
-
middle size – przewidziana dla drużyn liczących do czterech autonomicznych
robotów o średnicy do 50cm. Rozgrywki odbywają się na obszarze 9 razy
większym niż w lidze małych robotów.
-
4-legged – biorą w niej udział roboty, produkowane przez firmę SONY, które
przypominają swoim wyglądem pieski.
-
humanoid – biorą w niej udział roboty humanoidalne takie jak ASIMO firmy
HONDA czy SDR-4X firmy SONY.
-
RoboCup
Junior
–
przeznaczona
jest
dla
autonomicznych
robotów
konstruowanych z klocków LEGO MINDSTORMS i programowanych przez
dzieci.
-
RoboCupRescue – w ramach tej ligi budowane są roboty przeznaczone do
wspomagania akcji ratowniczych.
Rys. 2. Zwycięzcy RoboCup 2002 w kategorii "small size".
- 13 -
Aktualny stan miniaturyzacji doskonale odzwierciedla minirobot skonstruowany przez
Sandia National Laboratory. Rozmiar tego minirobota wynosi ok. 4cm3. Przy jego
budowie
zastosowano
dwie
bardzo
zaawansowane
technologie
wytwarzania.
Konstrukcja mechaniczna została wykonana przy użyciu techniki rapid prototyping,
natomiast elektroniczny układ sterowania został zbudowany na szklanym podłożu przy
użyciu nieobudowanych elementów półprzewodnikowych.
Rys. 3. Najmniejszy minirobot.
Posiada procesor zawierający 8kB pamięci, czujnik temperatury, dwa miniaturowe
silniczki oraz źródło zasilania. Prowadzone są prace nad wyposażeniem go w kamerę,
mikrofon, system komunikacji radiowej oraz mikroczujniki chemiczne.
Minirobot Alice - skonstruowany przez Swiss Federal Institute of Technology
Lausanne, Institute of Robotic Systems.
Rys. 4. Minirobot "Alice"
- 14 -
Pierwszy minirobot Alice zbudowany został w 1995 roku, od tego czasu powstało wiele
jego wersji, różniących się złożonością konstrukcji oraz wyposażeniem. Do napędu
wykorzystano dwa silniczki z zegarków. Rozmiary Alice to 22 x 20 x 19mm.
Rys. 5. Labirynt z minirobotami Alice znajdujący się w Lausanne.
Wykorzystywany jest do prac nad rozwojem algorytmów nawigacji, oraz badań
zbiorowych zachowań minirobotów. W szwajcarskim muzeum techniki w Lausanne
pracuje system, który umożliwia zdalne kierowanie pięcioma minirobotami
znajdującymi się w labiryncie Rys. 5. Poprzez stronę RobOnWeb.Verkehrshaus.org
można wyznaczyć miejsce do którego ma dojechać minirobot i obserwować jego ruchy
na obrazie z kamery umieszczonej nad labiryntem. Dzięki zastosowanym algorytmom
nawigacyjnym bez problemu podąża najkrótszą drogą.
Miniroboty Alice przy zastosowaniu identycznych środków sprzętowych co w
powyższym przypadku można wykorzystać do badań nad algorytmami pracy
zespołowej. Rysunek 6 przedstawia miniroboty Alice grające w piłkę.
- 15 -
Rys. 6. Miniroboty Alice grające w piłkę.
- 16 -
4. Opis przyjętego rozwiązania.
4.1. Określenie modelu kinematycznego.
W ramach pracy rozważono wykonanie minirobotów w postaci 4-kołowych,
3-kołowych lub 2-kołowych wózków. Układ jezdny 4-kołowej platformy mobilnej
odpowiada układowi jezdnemu samochodu, czyli 2 koła skrętne oraz 2 napędzające
poprzez mechanizm różnicowy. Układ jezdny 3-kołowej platformy mobilnej składa się
z jednego koła skrętnego oraz dwóch kół napędzających, tak jak w platformie
4-kołowej. Stosowanie któregokolwiek z dwóch powyższych modeli kinematyki
stwarza trudności związane z realizacją układu kierującego. Należałoby skonstruować
bardzo dokładny mechanizm pozycjonowania koła skrętnego, tak aby w czasie jazdy na
wprost jego oś była idealnie równoległa do osi kół napędzających. W przypadku
nierównoległości będzie następowało zbaczanie z toru prostoliniowego.
koła kierujące
koło
samonastawne
Rys. 7. Podstawowe modele kinematyczne wózków kołowych
(4-kołowy, 3-kołowy i 2-kołowy).
Układ jezdny w przypadku 2-kołowego robota mobilnego składa się 2 kół
niezależnie napędzanych. Zmiana toru jazdy odbywa się poprzez zmianę prędkości i
kierunku obracania się kół. Ponieważ minirobot na dwóch kołach nie będzie mógł
utrzymać równowagi bez dodatkowego wsparcia, stosuje się różne rozwiązania.
W przypadku gdy minirobot będzie się poruszał po gładkiej powierzchni można
zastosować podpórki ślizgowe. Gdy powierzchnia jest różna, dobrym rozwiązaniem jest
stosowanie dodatkowego, samonastawnego koła, które ustawia się zgodnie z
kierunkiem jazdy. Prowadzone są badania nad dynamicznym utrzymywaniem
równowagi, czego przykładem jest na przykład robot „nBot” skonstruowany przez
Davida P. Andersona, pracownika Southern Methodist University [19].
- 17 -
Rys. 8. Dwukołowy robot mobilny nBot.
Robot ten w sposób dynamiczny, poprzez balansowanie, utrzymuje równowagę.
Na płycie dołączonej do pracy znajduje się filmik przedstawiający nBot’a podczas jazdy
po nierównym terenie. Jednak dwukołowe platformy mobilne to nie tylko badania,
dzięki amerykańskiemu wynalazcy Dean’owi Kamen’owi to gotowy produkt, który
każdy może posiadać. Skonstruował on urządzenie o nazwie Ginger, które ma służyć do
przemieszczania się osób. Umożliwia podróżowanie z prędkością 27km/h. Energia
zgromadzona w akumulatorach podczas ładowania wystarcza na dwugodzinną jazdę.
Rys. 9. Skuter Ginger
- 18 -
W minirobotach, będących przedmiotem niniejszej pracy, mając na uwadze
trudności z pozycjonowaniem koła kierującego zdecydowano się na zastosowanie
modelu 2-kołowego z podpierającym kołem samonastawnym.
Rys. 10. Widok opracowanego minirobota.
Rys. 11. Widok od spodu minirobota.
- 19 -
4.2. Konstrukcja mechaniczna.
Podstawę konstrukcji mechanicznej zaprojektowanego minirobota mobilnego
stanowi rama wykonana ze sklejki modelarskiej. Sklejka ma 5mm grubości i jest
klejona z 10 warstw. Zdecydowano się na zastosowanie takiego materiału ze względu
na niewielki ciężar, dużą wytrzymałość mechaniczną oraz łatwość obróbki. Do ramy
przymocowane są wszystkie elementy minirobota.
W trakcie pracy nad minirobotem wykonano kilka wersji ramy, jednak dopiero po
ostatecznym doborze układu napędowego, sterującego oraz zasilającego ustalono
minimalne rozmiary robota. Wynikały one w głównej mierze z:
a) zastosowanych napędów — większe zbliżenie do siebie silników, a co za tym
idzie
zmniejszenie
szerokości
minirobota,
powodowało
osłabienie
wytrzymałości mechanicznej ramy.
b) układu sterującego — fizyczne ograniczenia występujące przy „ręcznym”
wykonywaniu
obwodów
elektronicznych
nie
pozwalają
na
uzyskanie
mniejszych rozmiarów układu sterowania. Przy zastosowaniu automatów
montażowych, elementów montowanych powierzchniowo tzw. SMD i
wielowarstwowego druku jest możliwe zmniejszenie nawet ponad 50%.
Rozmiary podane na rysunku uznano za optymalne.
Rys. 12.Wymiary ramy minirobota.
Podczas projektowania ramy minirobota używano programu PRO/ENGINEER oraz
CATIA.
- 20 -
W celu mechanicznego zabezpieczenia układu sterującego, połączeń miedzy
układami wewnętrznymi oraz nadania minirobotowi funkcji estetycznej pojawiła się
konieczność zaopatrzenia go w obudowę.
Nietypowy kształt minirobota nie pozwalał na wykorzystanie obudowy od
innego urządzenia. Zdecydowano się na wykonanie jej z laminatu. Laminat jest to kilka
warstw nośnika, w tym przypadku tkaniny szklanej, spojonych ze sobą żywicą
epoksydową. Rozważano wykładanie laminatu w formie lub nakładanie go na model.
Po przeprowadzeniu kilku prób okazało się, że wykładanie warstw laminatu w formie
jest trudniejsze i bardziej czasochłonne jednak jakość powierzchni zewnętrznej
gotowego laminatu jest dużo lepsza. Przy idealnym wykonaniu formy na przykład
metodami CAD/CAM powierzchnia laminatu nie wymagałaby żadnej dodatkowej
obróbki.
Z powodu braku dostępu do odpowiednich systemów CAD/CAM formę
należało wykonać ręcznie. W tym celu został wykonany rzeczywistych rozmiarów
model obudowy. Wykonano go z masy plastycznej, za którą posłużyła zwykła
plastelina, powszechnie dostępna na rynku. Następnie wykonano gipsowy odcisk
modelu tworząc w ten sposób formę. Użycie plasteliny umożliwiło łatwe
zamodelowanie kształtu obudowy oraz bezproblemowe wydobycie jej z gipsu.
Przedstawiony sposób jest procesem bardzo czasochłonnym, a do osiągnięcia
zadowalających efektów, wymagającym niesłychanej precyzji. Dlatego należało znaleźć
sposób na uniemożliwienie przyklejenia się żywicy do powierzchni formy, co
powodowałoby jej zniszczenie.
Rys. 13. Gipsowa forma.
- 21 -
Po przeprowadzeniu kilku prób z różnymi środkami okazało się, że najlepiej
sprawdza się wosk ze świeczek. Forma została pokryta woskiem w taki sposób, że
zniwelował on niewielkie nierówności wynikające z niedokładności wykonania modelu.
W tak przygotowanej formie wyłożono 2 warstwy laminatu, które następnie
wzmocniono dwoma dodatkowymi pasami tkaniny szklanej. Pasy są ułożone na krzyż,
tak że z przodu, tyłu i boków są po 3, a z góry 4 warstwy laminatu.
Rys. 14. Laminat z widocznymi pasami wzmacniającymi.
Na górnej powierzchni obudowy zamocowano 5 nagwintowanych łączników
umożliwiających zamocowanie dodatkowego wyposażenia.
Rys. 15. Łączniki.
- 22 -
Prawy dolny łącznik pełni dodatkowo funkcję złącza antenki. Zamocowano
również gniazdko służące do podłączenia dodatkowych czujników oraz 3 diody
sygnalizacyjne. Opis złącza i diod podano w dalszej części pracy.
Rys. 16. Gotowa obudowa.
- 23 -
4.3. Układ napędowy.
Prawidłowo dobrany układ napędowy stanowi kluczowy element systemu
mobilnego, ponieważ to on determinuje jego parametry jezdne.
Założono, że układ napędowy jednego koła projektowanego minirobota powinien:
-
posiadać niewielkie rozmiary;
-
pracować przy napięciu nie większym niż 6V;
-
posiadać przekładnie redukującą wysokie obroty silnika;
-
posiadać
enkoder
umożliwiający
realizacje
przekładnia
enkoder
położeniowego
sprzężenia
zwrotnego.
koło
silnik
Rys. 17. Schemat napędu.
Przystąpiono do wstępnego poszukiwania rozwiązania spełniającego podane
założenia. Okazało się, że żadne z powszechnie dostępnych na rynku polskim układów
napędowych nie spełniają w zadowalający sposób przyjętych założeń.
Kontynuując poszukiwania zapoznano się z ofertami czołowych producentów
systemów napędowych takich jak Bühler, Faulhaber i Maxon motor.
W ofercie pierwszej z firm nie znaleziono odpowiednich napędów.
Pozostałe firmy mają bardzo duże osiągnięcia w dziedzinie produkcji miniaturowych
systemów napędowych. Firma Faulhaber skonstruowała i prowadzi produkcję
najmniejszego na świecie systemu napędowego. Składa się on z bezszczotkowego
silniczka i przekładni planetarnej, jego średnica wynosi 1,9mm a długość 9,58mm.
Rys. 18. Najmniejszy produkowany seryjnie silniczek (skala 1:1)
Firma Maxon natomiast może poszczycić się tym, że 11 ich silników było
wykorzystanych w pojeździe Sojourner wysłanym na Marsa podczas misji MARS
Pathfinder w 1996 roku.
- 24 -
Rys. 19. Pojazd Sojourner i silniki Maxon.
Po zapoznaniu się z cenami miniaturowych napędów, ze względu na ich duży koszt
zdecydowano się na poszukiwanie innego rozwiązania.
Ostatecznie najlepszym rozwiązaniem ze względu na cenę, możliwości, rozmiary i
powszechność dostępu okazało się zastosowanie serwomechanizmów modelarskich
HS-322HD firmy HITEC.
Rys. 20. Serwomechanizm HS-322HD firmy HITEC.
Serwomechanizmy, potocznie nazywane serwami, wyposażone są w silniczek,
przekładnię zębatą, elektroniczny układ sterujący. Umożliwiają ruch obrotowy w
przedziale kątowym od 0 do 180º. Posiadają one mechaniczne ograniczenie w celu
ochrony potencjometru służącego do realizacji sprzężenia zwrotnego.
- 25 -
Aby serwomechanizm mógł być zastosowany w minirobocie należało po pierwsze
usunąć to ograniczenie, a po drugie wyposażyć go w enkoder umożliwiający realizację
sprzężenia zwrotnego.
W celu umożliwienia swobodnych obrotów usunięto ogranicznik z ostatniego, piątego
koła przekładni.
ogranicznik obrotów
Rys. 21. Widok przekładni serwomechanizmu.
Konstrukcja przekładni serwomechanizmu umożliwia wyposażenie go w prosty
enkoder inkrementalny. W tym celu na drugim kole (współpracującym z kołem na
wałku silnika) zamocowano tarczę z naniesionymi ciemnymi i jasnymi polami.
Bezpośrednio pod kołem umieszczono fotoprzerywacz odbiciowy SG-2BC firmy
KODENSHI. Jest to dioda wysyłająca światło w zakresie podczerwieni i fototranzystor
zatopione w jednej obudowie.
SG-2BC
Rys. 22. Elementy składowe enkodera.
- 26 -
Miniaturowe rozmiary tego fotoprzerywacza (średnica – 4mm i wysokość 3mm)
umożliwiły bezproblemowe umieszczenie go w obudowie serwomechanizmu. Dioda
oświetla tarcze impulsową, a fototranzystor jest sterowany światłem odbitym. Kiedy
nad fotoprzerywaczem znajduje się jasne pole tarczy to fototranzystor przewodzi i
napięcie na kolektorze spada prawie do 0V, gdy znajduje się pole ciemne, nie
przewodzi i napięcie osiąga 5V w pozostałych przypadkach napięcie jest zawarte w
przedziale 0-5V. Aby uniknąć nieprawidłowości w interpretacji sygnału zastosowano
inwerter z przerzutnikiem Shmitta. Powoduje on ze na wyjściu IMP w zależności od
ustawienia tarczy pojawia się sygnał wysoki (5V) albo niski (0V).
Rys. 23. Obudowa bez fotoprzerywacza (po lewej) i z fotoprzerywaczem (po prawej).
Rys. 24. Schemat elektroniczny enkodera.
Rys. 25. Schemat przekładni serwomechanizmu.
- 27 -
Na rysunku Rys. 25 przedstawiony jest schemat przekładni serwomechanizmu. Przy
odpowiednich kołach podano liczbę ich zębów. Policzono przełożenie między kołem
K5, na którym będzie zamocowane koło minirobota, a kołem K2 na którym będzie
tarcza enkodera.
41
35
50
; i 4 , 3 = ; i 3, 2 =
17
10
10
= i5, 4 × i 4,3 × i3, 2 = 42,2058823523412
i 5, 4 =
i 5, 2
Ponieważ tarcza enkodera może posiadać tylko całkowitą liczbę pól, a przełożenie
okazało się nie być liczbą całkowitą postanowiono sprawdzić jaki jest wpływ ilości pół
tarczy na błąd odczytu enkodera. W tym celu przeprowadzono symulację w programie
Microsoft Excel.
Tabela 1. Wpływ ilości pól enkodera na błąd popełniany przy jednym obrocie.
ilość pól
tarczy
kodowej
rzeczywista ilość
impulsów na obrót
mierzona ilość
impulsów na obrót
popełniany błąd przy
jednym obrocie
popełniany błąd na 5 metrach
przy średnicy koła D=45mm
1
42,20588235
42
-0,20588235
-7,281598704
2
84,41176471
84
-0,41176471
-14,56319741
3
126,61764706
127
0,38235294
13,52296902
4
168,82352941
169
0,17647059
6,241370317
5
211,02941176
211
-0,02941176
-1,040228386
6
253,23529412
253
-0,23529412
-8,32182709
7
295,44117647
295
-0,44117647
-15,60342579
8
337,64705882
338
0,35294118
12,48274063
Okazało się, że przy tarczy posiadającej 5 pól błąd popełniany przez enkoder
będzie najmniejszy. Przy drodze długości 5000 mm błąd popełniany przez enkoder
spowoduje ze minirobot zatrzyma się o 1 mm wcześniej niż powinien. Ponieważ jest to
błąd systematyczny można zastosować korekcję programową.
Ostatecznie zdecydowano się na wykonanie tarczy enkodera posiadającej 5 pól.
- 28 -
Rys. 26. Widok koła z tarczą enkodera.
Tak zmodyfikowane serwomechanizm można już nazywać serwonapędem i zastosować
do napędu projektowanego minirobota mobilnego.
Rys. 27. Układ napędowy zamocowany na ramie.
Za koła minirobota posłużyły kółeczka modelarskie o średnicy 45 mm. W celu
zamocowania ich na czopach serwonapędów wykorzystano połączenie kształtowe
służące do łączenia serwomechanizmów z dźwigienkami. Jest to połączenie kształtowe
- 29 -
wielowypustowe (wielokarbowe). Do piasty koła przyklejono piastę powstałą przez
obcięcie ramienia dźwigni. Następnie piasta dźwigni jest nasadzana na czop
serwonapędu i dodatkowo skręcana śrubką.
Parametry napędu:
Napięcie pracy – 1,2 – 6 V
Prędkość obrotowa – 52,63 obr/min (4,8V)
Moment obrotowy – 294,3mNm (4,8V)
Enkoder – 211 imp/obr
Na płycie dołączonej do pracy znajduje się filmik wygenerowany w programie CATIA.
Przedstawia on model serwomechanizmu, widać pracę poszczególnych kół przekładni
oraz ogranicznik obrotów.
- 30 -
4.4. System sterowania.
System sterowania jest najbardziej złożonym elementem składowym minirobota.
Integruje wszystkie jego elementy, a na podstawie zebranych z różnych źródeł
informacji kieruje zachowaniem minirobota.
silnik lewy
enkoder
sterownik
silników
silnik prawy
enkoder
moduł komunikacji
radiowej
czujnik na
podczerwień
Mikrokontroler
czujnik stanu
zasilania
5 dwustanowych
lini wejściowych
czujniki na
zderzakach
Rys. 28. Schemat układu sterowania.
Sercem zaprojektowanego układu sterowania jest 8 bitowy mikrokontroler AT89C2051
firmy ATMEL. Według definicji podanej w [11] można go nazywać mikrokomputerem
jednoukładowym, ponieważ w swojej strukturze zawiera procesor, pamięć danych,
pamięć programu oraz układy peryferyjne.
Mikrokomputer może być taktowany zegarem o częstotliwości do 24MHz i jest
całkowicie zgodny ze standardem MCS-51, posiada:
-
2KB programowalnej pamięci programu (pamięć FLASH),
-
128 bajtów pamięci danych (pamięć RAM),
-
15 lini wejścia/wyjścia
-
dwa 16 bitowe liczniki
-
programowalny interfejs szeregowy
-
analogowy komparator
-
6 źródeł przerwań
Rys. 29. Mikrokomputer AT89C2051.
- 31 -
W przypadku gdyby się okazało, że pamięć programu jest niewystarczająca można bez
wprowadzania żadnych zmian zastosować mikrokomputer AT89C4051, który posiada
4kB pamięci i jest całkowicie zgodny z AT89C2051.
Rys. 30. Budowa wewnętrzna AT89C2051.
Mikrokomputer steruje pracą silników za pośrednictwem układu L293D. Układ
ten składa się z 4 pół-mostków tranzystorowych typu H i umożliwia równoczesne
sterowanie jednokierunkową pracą 4 silników, bądź tak jak to wykorzystano w
niniejszej pracy, sterowanie dwukierunkową pracą 2 silników. Dzięki temu, że posiada
wbudowane diody zabezpieczające tranzystory mocy nie wymaga stosowania żadnych
dodatkowych elementów. Sprzyja to minimalizacji rozmiarów układu sterującego.
- 32 -
Rys. 31. Mostek tranzystorowy typu H (z lewej) układ L293D (z prawej).
Silnik lewy podpięto do lini OUT1 i OUT2, natomiast prawy do OUT3 i OUT4.
Linie ENABLE1 i ENABLE2, służące do uaktywniania pół-mostków zostały na stałe
ustawione na stan wysoki. Używanie tych lini umożliwiałoby wykonywanie
swobodnego zatrzymania silników (bez hamowania). Jest to niekorzystne, dlatego
zrezygnowano z używania tych lini, co pozwoliło zaoszczędzić 2 linie mikrokontrolera.
Pozostałe linie sterujące: IN1, IN2, IN3, IN4 zostały połączone kolejno z liniami
mikrokontrolera P1.4, P1.6, P1.5, P1.7. Silnik lewy sterowany jest przez P1.4 i P1.6, a
prawy przez P1.5 i P1.7. Zaburzenie logicznej kolejności może być przyczyną pewnej
niewygody dla piszącego oprogramowanie sterujące. Ułatwiło to jednak fizyczne
wykonanie obwodu drukowanego przez zmniejszenie ilości przecinających się ścieżek,
które musiały być realizowane za pomocą kawałków izolowanego przewodu.
W poniższej tabeli podano wpływ sygnałów P1.4,P1.6, P1.5, P1.7 na pracę silników.
Tabela 2. Sygnały sterujące silnikami.
Praca silników
lewy
P1.4
P1.6
P1.5
P1.7
tył
0
1
-
-
przód
1
0
-
-
0
0
-
-
1
1
-
-
przód
-
-
0
1
tył
-
-
1
0
-
-
0
0
-
-
1
1
stop
prawy
stop
- 33 -
Sygnały z enkoderów zostały podpięte do lini P3.2 i P3.3.
Do obsługi modułu radiowego zostały wykorzystane linie programowanego interfejsu
szeregowego P3.0 – odbiór danych i P3.1 – nadawanie danych oraz dodatkowo jedna
linia P3.7, która służy do przełączania trybu pracy modułu radiowego.
Do ustawiania prędkości transmisji interfejsu szeregowego używany jest licznik T1.
Aby prędkość odpowiadała jednej ze standardowo przyjętych ( np.: ..., 4800, 9600,
19200, ...) należy taktować mikrokontroler odpowiednimi częstotliwościami. W danym
przypadku użyto maksymalnej możliwej częstotliwości wynoszącej 22,1184MHz.
Do obsługi czujnika podczerwieni wykorzystano linie P1.2 – sterowanie lewą diodą,
P1.3 – sterowanie prawą diodą oraz linię P1.1 do sprawdzania sygnału z odbiornika
podczerwieni.
Pozostające 3 wolne linie wejścia/wyjścia zdecydowano się zamienić na 8 lini
wejściowych. Zastosowano w tym celu układ 74HC165. Jest to 8 bitowy rejestr
przesuwający z wejściami równoległymi i wyjściem szeregowym.
Rys. 32. Budowa układu 74HC165.
Wspomniane 3 wolne linie wykorzystano do obsługi tego układu. Gdy na lini P3.5
(SH/LD) jest stan 0 do rejestrów układu 74HC165 ładowane są równocześnie wszystkie
stany logiczne z wejść A, B, C, D, E, F, G i H. Zmiana stanu lini P3.5 (SH/LD) na
wysoki powoduje przesuwanie w takt sygnału lini P3.4 (CLK) stanów zawartych w
rejestrach w kierunku wyjścia QH, do którego podpięta jest ostatnia wolna linia
mikrokontrolera P1.0.
- 34 -
Poniższa tabela przedstawia sygnały podpięte na poszczególnych liniach równoległych
układu 74HC165.
Tabela 3. Opis wejść układu 74HC165.
Linia wejściowa
Funkcja
A
Czujnik napięcia
B
Lewy mikrowłącznik zderzaka
C
Prawy mikrowłącznik zderzaka
D
Linia nr 5 na złączu obudowy
E
Linia nr 4 na złączu obudowy
F
Linia nr 3 na złączu obudowy
G
Linia nr 2 na złączu obudowy
H
Linia nr 1 na złączu obudowy
Na górnej powierzchni obudowy zostały umieszczone 3 diody LED. Służą one do
sygnalizacji pracy minirobota. Pierwsza z nich, zielona, informuje o włączonym
zasilaniu. Druga, czerwona, jest używana jako wskaźnik „rezerwy” zasilania. Trzecia
natomiast jest to dioda dwukolorowa i dostarcza informacji o komunikacji radiowej.
Gdy robot odbiera dane świeci na zielono, a gdy nadaje świeci na czerwono.
- 35 -
4.5. System komunikacji radiowej.
Projektowany minirobot miałby bardzo ograniczone możliwości gdyby nie
posiadał zdolności do bezprzewodowej komunikacji. Dlatego przeanalizowano
dostępne systemy komunikacji bezprzewodowej pod kątem zasięgu, prędkości przesyłu,
rozmiarów i ceny. Najlepszym rozwiązaniem ze względu na podane kryteria okazało się
zastosowanie transcieverów BK17 włoskiej firmy STE. Są to moduły zawierające
kompletne układy nadajnika i odbiornika o rozmiarach 34x73x6 mm. Pracują na
częstotliwości 433,92 MHz i umożliwiają wymianę danych z maksymalną prędkością
38400 bit/s.
Rys. 33. Transciever BK17.
Przy odpowiednich warunkach i wyregulowaniu czułości modułu na otwartej
przestrzeni można prawidłowo przesyłać dane na odległość do 500m. Moduły
sprzedawane przez polskiego dystrybutora nie posiadają anten, dlatego też należało
zasięgnąć informacji u producenta i wykonać je samemu. Ze względu na pewne
niedokładności wykonania należy liczyć się ze zmniejszeniem odległości przesyłu.
Ponadto należy mieć świadomość, że fale na jakich pracuje ten moduł (czyli 433,92
MHz) znajdują się w zakresie mikrofal, podlegają więc rządzącym nimi prawom.
Ponieważ mikrofale rozchodzą się w sposób zbliżony do promieni świetlnych, ulegają
zjawiskom optyki geometrycznej [15]. W przypadku natrafienia na różnorodne
przeszkody ulegają odbiciu, załamaniu i rozproszeniu. Co może powodować:
- 36 -
-
zjawisko tzw. cienia radiowego – występowanie obszarów o pogorszonych
warunkach propagacji;
-
zaniki Rayleigha, - spowodowane nakładaniem się na siebie fal o różnej fazie,
występują w stałych odstępach równych połowie długości fali nośnej;
-
zaniki chwilowe – spowodowane krótkotrwałymi zakłóceniami
elektromagnetycznymi bądź też poruszeniem się ludzi lub przedmiotów;
-
dyspersję sygnału – spowodowaną odbiciami od dalekich przeszkód ;
Poza tym w komunikacji ruchomej istnieje jeszcze problem wielodrogowości sygnału,
który ma bardzo negatywny wpływ na moc odbieranego sygnału.
Jak podano w [12], moc sygnału odebrana przez odbiornik w przypadku propagacji
sygnału w wolnej przestrzeni jest odwrotnie proporcjonalna do kwadratu odległości od
nadajnik
droga bezpośrednia
odbiornik
droga z odbiciem
Rys. 34. Zjawisko wielodrogowości sygnału radiowego.
nadajnika. W przypadku wystąpienia drugiej drogi, tak jak na powyższym rysunku, moc
odebrana jest odwrotnie proporcjonalna do czwartej potęgi odległości. W praktyce
mamy do czynienia z większą liczbą dróg powstałych w wyniku konkretnego
ukształtowania środowiska.
Projektowany minirobot mobilny ma z założenia pracować w pomieszczeniach
zamkniętych, nietrudno więc sobie wyobrazić skalę zjawiska wielodrogowości.
Nadawany sygnał będzie docierał co najmniej 7 drogami, bezpośrednio oraz po odbiciu
od ścian, sufitu i podłogi.
W
celu
minimalizacji
skutków
straty
sygnału
spowodowanemu
propagacją
wielodrogową w module BK17 została zastosowana zaawansowana metoda modulacji
sygnału. Posiada on również możliwość regulacji czułości, dzięki czemu możliwe jest
- 37 -
takie „zestrojenie” modułów, aby zapewnić poprawną komunikację na obszarze pracy
minirobotów.
Czas przełączenia trybu pracy modułu z nadawania na odbiór i odwrotnie nie
przekracza 1ms, co należało uwzględnić podczas pisania programu układu sterującego
minirobotem.
Rys. 35. Schemat transcievera BK17.
Moduł
BK17
nadaje
się
do
bezpośredniego
zastosowania
w
systemach
mikroprocesorowych, aby umożliwić podłączenie go do portu szeregowego komputera
zaprojektowano i wykonano układ pośredniczący. Standard portu szeregowego RS232
ustalony przez EIA (Electronics Industry Association) sygnałowi logicznemu „1”
przyporządkowuje przedział napięć -3V ÷ -25V, a sygnałowi „0” przedział
+3V ÷ +25V. Moduł używa stanów logicznych zgodnych ze standardem TTL, czyli
stanowi niskiemu odpowiada napięcie bliskie 0V, a stanowi wysokiemu bliskie 5V. W
celu dostosowania napięć do stanów logicznych zastosowano układ scalony MAX232.
Do zapewnienia komunikacji wykorzystano 3 linie portu szeregowego:
-
RD (recieve data) – odbiór danych;
-
TD (transmit data) – dane nadawane;
-
RTS (request to send) – żądanie nadawania;
Sygnał RTS służy do przełączania trybu pracy modułu. Gdy RTS jest w stanie wysokim
moduł przechodzi w stan odbioru, gdy RTS jest w stanie niskim moduł pracuje jako
nadajnik.
- 38 -
Rys. 36. Schemat modułu komunikacyjnego do komputera.
Dążono do tego, aby wyeliminować konieczność używania zewnętrznego źródła
zasilania. Pierwotnie planowano zasilić moduł bezpośrednio z poru szeregowego,
jednak okazało się to niemożliwe z powodu zbyt niskiej wydajności prądowej tego
portu. Ostatecznie zdecydowano się na zasilenie modułu z portu USB. Pobór prądu
przez moduł w trakcie nadawania, kiedy jest on największy, nie przekracza 40 mA, co
stanowi ułamek wydajności prądowej portu USB wynoszącej 500 mA.
Układ dopasowujący oraz moduł BK17 zamknięto w niewielkiej plastikowej obudowie.
Poniższy rysunek przedstawia gotowy moduł komunikacyjny.
Rys. 37. Moduł komunikacyjny do komputera.
- 39 -
4.6. System sensoryczny.
System czujników dostarcza informacji o stanie minirobota oraz jego otoczenia.
Informacje te są niezbędne do prawidłowej pracy urządzenia oraz podejmowania
procesu decyzyjnego.
Czujniki zastosowane w minirobocie można podzielić na dwie zasadnicze grupy [6]:
a) Sensory wewnętrzne – służące do pomiaru parametrów ruchu oraz stanu
minirobota
b) Sensory zewnętrzne – służące do śledzenia interakcji robota z otoczeniem
W pierwszej grupie znajdą się opisane już w systemie napędowym enkodery
inkrementalne oraz czujnik poziomu naładowania akumulatorków. W drugiej natomiast
znajdą się czujniki stykowe na zderzakach oraz czujnik zbliżeniowy na podczerwień.
Czujnik naładowania akumulatorków.
Do pracy systemu sterowania wymagane jest napięcie zasilania nie mniejsze niż 4,5V.
Gdy napięcie spadnie poniżej tej wartości mogą pojawić się nieprawidłowości w
funkcjonowaniu minirobota. Z tego powodu, celowym jest wyposażenie go w czujnik
sygnalizujący niski stan napięcia.
Rys. 38. Schemat elektroniczny czujnika napięcia.
Zaprojektowano taki czujnik, poczym po zbudowaniu i przeprowadzeniu pozytywnie
zakończonych testów zastosowano w minirobotach. Gdy napięcie zasilania spadnie
- 40 -
poniżej wartości progowej nastawianej na potencjometrze R10, tranzystor przestaje
przewodzić. Powoduje to zmianę stanu sygnału imp, kierowanego do układu sterowania
oraz zapalenie się diody kontrolnej umieszczonej na obudowie (środkowa dioda).
O niskim stanie napięcia akumulatorków można się dowiedzieć na dwa sposoby.
Pierwszy, za pomocą wspomnianej diody. Drugi natomiast, za pośrednictwem jednego z
poleceń opisanych w rozdziale dotyczącym oprogramowania sterującego.
Wyposażenie minirobota w czujniki umożliwiające wykrycie przeszkody zanim
się z nią zderzy niewątpliwie zwiększy jego funkcjonalność. Podjęto starania w celu
skonstruowania takiego czujnika.
Czujnik stykowy (drucikowy).
W ramach poszukiwań odpowiedniego rozwiązania skonstruowano dwa czujniki
stykowe wyglądem i funkcją przypominające czułki owadów.
Rys. 39. Konstrukcja czujnika stykowego (drucikowego).
Czujnik taki wykonany był z mosiężnej rureczki o średnicy 2mm i długości 25mm, w
której współosiowo umieszczony był stalowy drucik o średnicy 0,3mm i długości
100mm. Do utwierdzenia pozycji drucika wykorzystano spoiwo nieprzewodzące prądu
elektrycznego (klej distal). Przewody łączące przylutowano do rurki i drucika w
miejscu łączenia i zgrzano w rurce termokurczliwej. Gotowy czujnik wygląda jak
pokazano na zdjęciu poniżej.
Rys. 40. Czujnik stykowy (drucikowy).
- 41 -
Gdy drucik się ugnie, styka się z krawędzią rurki zamykając w ten sposób obwód, co z
kolei jest interpretowane przez układ sterujący jako natrafienie na przeszkodę.
Do celów prób skonstruowano prostą platformę mobilną i wyposażono ją w dwa takie
czujniki ułożone w kształt litery V. Układ sterujący posiadał bardzo prosty algorytm
pracy realizujący ruch do przodu w przypadku braku sygnałów z czujników. Pojawienie
się sygnału z któregoś czujnika powodowało obracanie się w kierunku przeciwnym niż
była przeszkoda do czasu zaniknięcia sygnału. Na dołączonej do pracy płycie CD
znajduje się film zrealizowany podczas prób.
Rys. 41. Prototyp minirobota z zamocowanymi czujnikami drucikowymi.
W trakcie testów okazało się, że czujnik podczas skrętu w lewo bądź prawo ma
tendencje do wpadania w drgania spowodowane nagłą zmianą kierunku jazdy.
Powodowało to generowanie fałszywych sygnałów o wystąpieniu przeszkody na co z
kolei reagował układ sterowania wykonując kolejny skręt, który podtrzymywał
rezonans. Można było zmienić częstotliwość drgań własnych czujnika przez zmianę
jego parametrów fizycznych, zastosować jakąś formę filtrowania sygnału, bądź
wprowadzić korekty w programie sterującym. Zrezygnowano jednak ze stosowania tego
rozwiązania głównie z powodu małej trwałości mechanicznej. Wystające „czułki”
mogły w łatwy sposób zostać uszkodzone, co wpłynęłoby negatywnie na prace
minirobotów, a wręcz mogłoby ją uniemożliwić.
- 42 -
Mając na uwadze niedoskonałości, wynikające ze stosowania powyższych czujników
skoncentrowano się na poszukiwaniu rozwiązania, które umożliwiłoby wykrywanie
przeszkód z pewnej odległości i nie posiadało wspomnianych wad.
Odpowiednim rozwiązaniem okazało się zastosowanie czujników na podczerwień.
Czujniki na podczerwień.
Na stronie www.lynxmotion.com znaleziono projekt odpowiedniego czujnika.
Zaczerpnięto z niego idee działania i na tej podstawie skonstruowano czujniki
wykorzystane w minirobocie.
Schemat elektroniczny czujnika przedstawia rysunek 42.
Czujnik składa się z dwóch diod LED emitujących promieniowanie podczerwone,
generatora i odbiornika podczerwieni. Generator służy to wytwarzania częstotliwości
nośnej zgodnej z częstotliwością pracy odbiornika wynoszącą 36kHz.
Rys. 42. Schemat elektroniczny czujnika na podczerwień.
Ponieważ rozwiązanie to sprzętowo jest bardo proste wymaga pewnych zabiegów
programowych. Układ sterujący musi sekwencyjnie sterować diodami nadawczymi i
sprawdzać odpowiedz z odbiornika.
Załóżmy ze dioda D1 jest odpowiedzialna za lewą stronę a dioda D2 za prawą.
Aby sprawdzić czy nie ma przeszkody po lewej stronie minirobota układ sterujący
ustawia na lini ID1 stan wysoki. Powoduje to za pośrednictwem bramki IC4A
- 43 -
włączenie diody D1, która mruga z częstotliwością nastawioną na generatorze. W tym
samym momencie układ sterujący musi kontrolować linie SGN.
Rys. 43. Działanie czujników na podczerwień.
Zmiana stanu logicznego z 1 na 0 oznacza, że do odbiornika dociera promieniowanie
podczerwone, co świadczy o istnieniu przeszkody odbijającej promieniowanie
emitowane przez diodę. Aby sprawdzić prawą stronę układ sterowania wykonuje
identyczną operację zapalając tym razem diodę D2.
Odbiornik podczerwieni TSOP1736 jest zaprojektowany do wykorzystywania w
systemach zdalnego sterowania stosowanych na przykład w sprzęcie RTV. Posiada
cechę, która z punktu widzenia systemów zdalnego sterowania jest zaletą. Tutaj nie tyle
jest wadą, co sprawiła pewne trudności. Układ posiada szereg zabezpieczeń przed
zakłóceniami. Powodują one, że sygnał ciągły, dłuższy niż 1,8ms jest traktowany jako
szum otoczenia i wygaszany. Ma to na celu znieczulić układ na różne zakłócenia, takie
jak na przykład pochodzące od oświetlenia jarzeniowego. Po sygnale trwającym 1,8ms
konieczna jest przerwa wynosząca przynajmniej taki sam czas.
Sposób rozwiązania tego problemu podano w części pracy dotyczącej oprogramowania
minirobota.
Układ sterujący zbiera informacje z czujnika około 15 razy na sekundę.
Potencjometr R10 umożliwia regulację czułości czujnika.
- 44 -
Po zbudowaniu i oprogramowaniu czujnika zamocowano go na prototypie minirobota i
zbadano strefę czułości. Do wyznaczenia jej posłużono się przeszkodą w kształcie
walca o średnicy 8mm pokrytą białą, matową powłoką.
Rys. 44. Strefa czułości skonstruowanego czujnika.
Specyficzny kształt tej strefy wynika z iloczynu dwóch obszarów: strefy czułości
odbiornika i powierzchni oświetlanej przez diody. Natomiast wielkość jest zależna od
nastawionej czułości oraz w dużo większym stopniu od rodzaju powierzchni
przeszkody. Dioda oprócz wiązki głównej emituje wiązkę boczną.
Rys. 45. Strefa czułości odbiornika (z lewej), wiązka główna i boczna wysyłana przez
diodę (z prawej).
Czujniki zderzakowe.
Minirobot został wyposażony w zderzak, powodujący jego zatrzymanie w razie
kontaktu z przeszkodą. W pierwszej wersji zderzak wykonano z drutu miedzianego o
- 45 -
średnicy 2mm. Zdecydowano się na zastosowanie takiego materiału z powodu dużej
łatwości obróbki. W trakcie pierwszych prób oprócz ustalenia wstępnego kształtu
zderzaka okazało się ze miedziany drut pomimo dużej średnicy łatwo może ulec
wygięciu.
Rys. 46. Prototyp czujnika zderzakowego.
W następnej wersji zastosowano drut stalowy o średnicy 1,5mm oraz zmodyfikowano
kształt zderzaka. Nowy kształt, dzięki dodatkowemu wygięciu, zabezpiecza
mikrowłączniki przed nadmiernym obciążeniem w trakcie najechania na przeszkodę.
Rys. 47. Ostateczna wersja czujnika zderzakowego.
Czujniki dodatkowe.
Za pośrednictwem złącza, znajdującego się na obudowie, wyprowadzone jest na
zewnątrz 5 dwustanowych linii wejściowych. Takie rozwiązanie zwiększa w znaczny
sposób
funkcjonalność
minirobota,
gdyż
umożliwia
jego
łatwą
rozbudowę.
- 46 -
Wykorzystanie tych linii będzie wynikało z konkretnego zapotrzebowania powstałego
w trakcie użytkowania minirobota. Ponieważ jego konstrukcja umożliwia przewożenie
niewielkich przedmiotów, jedną z tych lini można wykorzystać do zrealizowania
czujnika informującego o znajdującym się ładunku.
Tabela 4. Opis złącza na dodatkowe czujniki.
Numer
1
2
3
4
5
6
7
Rys. 48. Opis złącza na dodatkowe czujniki.
Opis
+5V
GND
Linia wejściowa 1
Linia wejściowa 2
Linia wejściowa 3
Linia wejściowa 4
Linia wejściowa 5
- 47 -
4.7. System zasilania.
Dobierając źródło zasilania należało rozważyć kilka kwestii z nim związanych,
a mianowicie: napięcie, pojemność, koszt, rozmiary i żywotność.
Zastosowane układy elektroniczne wchodzące w skład sytemu sterowania pracują
poprawnie w przedziale napiec 4,5V do 6V, co pokrywa się napięciem wymaganym
przez silnik. Tak więc napięcie jakie musi zapewnić źródło zasilania musi być w
okolicy górnej granicy wspomnianego przedziału. W czasie pracy minirobota, kiedy
pracują silniki, pobór prądu wynosi ok. 300mA. Źródło zasilania powinno posiadać na
tyle dużą pojemność, aby zapewnić racjonalny czas pracy minirobota. Przy założeniu,
że robot będzie wykorzystywany w trakcie zajęć dydaktycznych trwających 90min
pojemność powinna wynosić ponad 450mAh. Po tym czasie należałoby wymienić
źródło w przypadku stosowania zwykłych, jednorazowych baterii bądź naładować w
przypadku stosowania akumulatorków. Tutaj dochodzimy do kryterium kosztów
zasilania. Okazuje się, że stosowanie akumulatorków jest dużo tańsze niż zwykłych
baterii. Obecnie produkowane akumulatorki mają żywotność nawet do 1000 cykli
ładowania i rozładowania, co sprawia ze koszt zakupu akumulatorków i ładowarki jest
bez porównania mniejszy niż stosowania zwykłych baterii.
Po przejrzeniu dostępnych na rynku źródeł zasilania i uwzględnieniu
powyższych kryteriów zdecydowano się na zastosowanie akumulatorków NiMH
(niklowo-wodorkowych) firmy GP. Są to akumulatorki o oznaczeniu 210AAHC,
rozmiarami odpowiadają zwykłym bateriom potocznie nazywanymi „paluszkami”.
Rys. 49. Akumulatorki GP 210AAHC.
- 48 -
Napięcie nominalne wynosi 1,2V, jednak jak podaje producent można je bez obawy
utraty żywotności naładować nawet do 1,4 – 1,5V. Łącząc szeregowo 4 takie
akumulatorki otrzymujemy napięcie nie przekraczające 6V. Pojemność, jaką posiadają
była największą pojemnością dostępną w tej klasie produktów i wynosiła 2100mAh.
Umożliwia to ciągłą pracę minirobota przez ok. 6 godzin, co w znacznym stopniu
podnosi wygodę stosowania i funkcjonalność. W dziedzinie produkcji akumulatorków
jest bardzo duży postęp, napędzany głównie przez potrzeby telefonii komórkowej.
Kilka tygodni po zakupie wspomnianych akumulatorków ten sam producent wypuścił
na rynek akumulatorki o pojemności 2200mAh.
Aby podnieść wygodę użytkowania minirobotów wyeliminowano konieczność
wyjmowania akumulatorków w celu ich naładowania. Rozwiązanie to pozwoliło na
zmniejszenie rozmiarów minirobota, gdyż można było zrezygnować ze stosowania
specjalnych uchwytów na baterie. Akumulatorki zostały połączone szeregowo i
zabezpieczone mechanicznie przy użyciu rurki termokurczliwej tworząc w ten sposób
niewielkie, zwarte źródło zasilania.
Rys. 50. Pakiet czterech akumulatorków.
Zastosowanie takiego rozwiązania wymagało zaprojektowania i wykonania specjalnej
ładowarki.
Wszystkie dostępne na rynku ładowarki na 4 akumulatorki ładują je pojedynczo
albo w parach. Wydaje się to racjonalne gdyż ładowarka lądująca w parach wymaga
minimum 2 akumulatorków, co pokrywa się z zapotrzebowaniem większości urządzeń
- 49 -
takich jak aparaty fotograficzne, czy walkmany. Lepszą ładowarką jest ta, która ładuje
pojedynczo, gdyż nie narzuca minimalnej ilości ładowanych ogniw.
W celu zaprojektowania ładowarki zapoznano się z notami katalogowymi
udostępnionymi przez producenta. Wyszczególnione są tam dwa sposoby ładowania:
szybkie i standardowe. Ze względu na konieczność pomiaru temperatury ładowanych
ogniw zrezygnowano z trybu szybkiego ładowania „fast charge” i przyjęto tryb
ładowania standardowego. Polega ono na ładowaniu akumulatorków stałym prądem
wynoszącym 200mA przez czas 16 godzin.
W trakcie ładowania akumulatorków wzrasta ich opór, co powoduje obniżanie wartości
płynącego przez nie prądu. Aby temu zapobiegać i utrzymać prąd na zadanym poziomie
należy podnosić napięcie ładowania. Do tego celu wykorzystano układ LM317, który w
zależności od konfiguracji elementów zewnętrznych może być regulatorem napięcia
0-30V bądź regulatorem prądu do wartości 1,5A.
Rys. 51. Regulator prądu.
Przy takiej konfiguracji zmieniając wartość opornika R1 można regulować prąd
wg wzoru:
I=
1,2
[A]
R
W przyjętym rozwiązaniu zastosowano opornik o wartości 6Ω co powoduje
utrzymywanie przez regulator stałego prądu o wartości 200mA.
Prąd o takiej wartości niema negatywnego wpływu na ładowane akumulatorki nawet,
jeśli czas ładowania będzie dużo dłuższy niż wymagane 16 godzin. W notach
katalogowych producent podaje ze akumulatorki wytrzymują roczne ładowanie takim
prądem.
- 50 -
W ładowarce zastosowano układy przerywające ładowanie w przypadku, gdy:
-
upłynie czas ładowania (16 godzin),
-
napięcie ładowania będzie się zbliżało do wartości max czyli 1,5V na ogniwo
Role układu czasowego pełni układ scalony CD4060. Jest to 14 bitowy licznik z
wbudowanym oscylatorem. Wartość elementów RC współpracujących z oscylatorem
tak została dobrana, aby licznik w czasie 16 godzin zliczył 8192 impulsów. Odpowiada
to pojawieniu się na wyjściu Q14 (2^13=8192) stanu wysokiego, który powoduje
przerwanie ładowania.
Do kontroli napięcia ładowania został użyty komparator napięcia TLC272. Porównuje
on napięcie przypadające na jedno ogniwo z napięciem granicznym. W przypadku
zrównania się tych napięć na wyjściu komparatora pojawia się stan wysoki, który
powoduje przerwanie ładowania.
Rys. 52. Schemat elektroniczny ładowarki.
Po załączeniu zasilania ładowarki i podłączeniu minirobota dioda kontrolna D2 zapala
się na zielono, co potwierdza poprawność połączenia. Aby rozpocząć ładowanie należy
przycisnąć przycisk (przyciski S1 i S2 są połączone w jednym), który resetuje układ
- 51 -
czasowy oraz wyłącza triak. Ładowanie jest sygnalizowane przez czerwony kolor diody
D2. Po zakończeniu ładowania dioda ponownie zmienia kolor na zielony.
Do podłączenia ładowarki z minirobotem wykorzystano gniazdo i wtyk
tzw. „mały jack”. Elementy te nie są przeznaczone do tego celu, ale ze względu na brak
dostępu do innych oraz niewielkie rozmiary zostały zastosowane. Ponieważ konstrukcja
wtyczki i gniazda nie uniemożliwia powstania krótkotrwałego zwarcia, podłączanie jak
i rozłącznie powinno odbywać się szybkim, zdecydowanym ruchem.
Rys. 53. Gotowa ładowarka.
- 52 -
5. Oprogramowanie sterujące.
Oprogramowanie sterujące pracą minirobotów będących przedmiotem niniejszej
pracy można podzielić na dwie części. Pierwsza część jest to oprogramowanie
znajdujące się w pamięci mikrokontrolera sterującego podstawowymi funkcjami
minirobota, które będzie nazywane oprogramowaniem wewnętrznym. Drugą częścią
jest oprogramowanie komputera, który będzie służył do zadawania poleceń
minirobotowi oraz nadzorowania jego pracy, oprogramowanie zewnętrzne. Obie części
oprogramowania są połączone ze sobą „mostem”, którym jest zastosowany system
komunikacji radiowej, oraz specjalnym zestawem poleceń zrozumiałym dla obu części
oprogramowania.
Oprogramowanie
zewnętrzne
System komunikacji
radiowej
Oprogramowanie
wewnętrzne
Rys. 54. Połączenie między oprogramowaniami sterującymi.
5.1. Polecenia minirobota.
W minirobocie została zaimplementowana następująca lista ośmiu poleceń:
1. Jazda do przodu o dana ilość impulsów
2. Jazda do tyłu o daną ilość impulsów
3. Obrót w lewo o daną ilość impulsów
4. Obrót w prawo o daną ilość impulsów
5. Zapytanie o stan
6. Ustawianie wartości licznika enkodera lewego
7. Ustawianie wartości licznika enkodera prawego
8. Włącza i wyłącza zatrzymywanie się robota, gdy wystąpi sygnał z czujników IR
Z uwagi na możliwość wystąpienia zakłóceń transmisji istniało ryzyko wystąpienia
przekłamania, które mogłoby przez minirobota zostać potraktowane jako polecenie.
Taka sytuacja mogłaby doprowadzić do zaburzeń pracy minirobota oraz w skrajnych
- 53 -
przypadkach nawet jego uszkodzenia. Aby zapobiec takim zdarzeniom należało
zastosować mechanizm kontroli poprawności transmitowanych danych.
Zdecydowano się na stosowanie sum kontrolnych dołączanych do poleceń i wysyłanych
razem z nimi. Za zastosowaniem tego sposobu przemawiały:
-
duża prędkość generowani tej sumy;
-
niewielki rozmiar kodu;
-
wystarczające zabezpieczenie przed błędami przesyłu;
Ramka polecenia wysyłanego do minirobota wygląda następująco:
Tabela 5. Ramka polecenia minirobota.
rozmiar
PREAMBUŁA
≥4 bajty
(170)
Adresat
1 bajt
Nadawca
1 bajt
Polecenie
1 bajt
Argument
Suma
Kontrolna
Koniec (170)
2 bajty
2 bajty
1 bajt
Opis pól ramki:
Preambuła
– pole służy do przygotowania się mikrokontrolera do odbierania
danych. Pole to jest wypełnione, co najmniej czterema bajtami o
wartości dziesiętnej 170.
Adresat
– pole wskazujące adresata polecenia. Wartość tego pola jest równa
numerowi minirobota, do którego jest kierowane polecenie.
Nadawca
– pole wskazuje nadawcę polecenia, aktualnie nie jest używane.
Zostało wprowadzone w celu ułatwienia późniejszych modyfikacji.
Polecenie
– pole zawiera numer polecenia.
Argument
– pole zawiera argument polecenia.
Suma kontrolna
– służy do sprawdzania poprawności transmisji. Jest wyliczana na
podstawie pięciu poprzedzających ją bajtów. Argument jest
rozdzielony na 2 jednobajtowe liczby.
Koniec
– wskazuje koniec polecenia. Wartość tego pola odpowiada wartości
dziesiętnej 170.
- 54 -
Opis poszczególnych poleceń.
Jazda do przodu.
Polecenie wywołuje ruch minirobota do przodu na zadaną odległość równą podanej
w polu argument. Odległość jest odmierzana w impulsach generowanych przez enkoder
systemu napędowego.
Numer polecenia: 1
Jazda do tyłu.
Polecenie wywołuje ruch minirobota do tyłu na zadaną odległość równą podanej w
polu argument. Odległość jest odmierzana w impulsach generowanych przez enkoder
systemu napędowego.
Numer polecenia: 2
Przykład:
170 170 170 170
1
0
1
155
0
157
0
170
Wysłanie powyższej ramki spowoduje, że minirobot numer 1 wykona ruch do przodu o
155 impulsów, co odpowiada (przy średnicy kół 45mm) drodze 100mm.
Jazda w lewo.
Polecenie wywołuje obrót minirobota w lewo o zadaną ilość impulsów podaną w
polu argument.
Numer polecenia: 3
Jazda w prawo.
Polecenie wywołuje obrót minirobota w prawo o zadaną ilość impulsów podaną w
polu argument.
Numer polecenia: 4
- 55 -
Przykład:
170 170 170 170
3
0
4
134
0
141
0
170
Wysłanie powyższej ramki spowoduje, że minirobot numer 4 wykona obrót w prawo o
134 impulsy, co odpowiada (przy średnicy kół 45mm i rozstawie kół 110mm) kątowi
90º.
Zapytanie o stan.
Polecenie powoduje ze minirobot będący adresatem tego polecenia odeśle ramkę
opisującą jego stan.
Numer polecenia: 6
Tabela 6. Ramka odpowiedzi na "zapytanie o stan".
rozmiar
PREAMBUŁA
(170)
Stan IR
Stan 74HC165
Stan lewego
licznika
Stan prawego
licznika
Suma
Kontrolna
2 bajty
Koniec (170)
2 bajty
2 bajty
1 bajt
1 bajt
2 bajty
2 bajty
Gdzie znaczenie pól jest następujące:
Preambuła – sygnalizacja początku nadawania
Stan IR – pole dotyczy czujników IR, poszczególne bity oznaczają:
Bit 0 – sygnalizuje wykrycie przeszkody z prawej strony:
Bit 0 =1 droga wolna, Bit 0= 0 wykryto przeszkodę;
Bit 1 – sygnalizuje wykrycie przeszkody z lewej strony:
Bit 1 =1 droga wolna, Bit 1= 0 wykryto przeszkodę;
Bit 2 ÷ 6 – wykorzystane jako flagi wewnętrzne, nieistotne z punktu
widzenia oprogramowania zewnętrznego;
- 56 -
Bit 7 – sygnalizuje, że robot w przypadku wykrycia przeszkody czujnikami
IR zatrzyma się w identyczny sposób jak w przypadku zderzaków.
Bit 7 =1 zatrzyma się, Bit 7= 0 zignoruje
Stan 74HC165 – pole odpowiada wartościom lini wejściowych układu 74HC165,
poszczególne bity oznaczają:
Bit 0 – sygnalizuje stan naładowania akumulatorków
Bit 0 = 0 – słabe, Bit 0 = 1 – dobre
Bit 1 – sygnalizuje lewostronny kontakt zderzaka z przeszkodą
Bit 1 = 1 wystąpił kontakt, Bit 1 = 0 nie wystąpił
Bit 2 – sygnalizuje prawostronny kontakt zderzaka z przeszkodą
Bit 2 = 1 wystąpił kontakt, Bit 2 = 0 nie wystąpił
Bit 3 – sygnalizuje stan lini wejściowej nr 5 dostępnej na złączu obudowy
Bit 4 – sygnalizuje stan lini wejściowej nr 4 dostępnej na złączu obudowy
Bit 5 – sygnalizuje stan lini wejściowej nr 3 dostępnej na złączu obudowy
Bit 6 – sygnalizuje stan lini wejściowej nr 2 dostępnej na złączu obudowy
Bit 7 – sygnalizuje stan lini wejściowej nr 1 dostępnej na złączu obudowy
Stan lewego licznika – wartość tego pola odpowiada liczbie impulsów zliczonych
przez licznik lewego koła.
Stan prawego licznika – wartość tego pola odpowiada liczbie impulsów zliczonych
przez licznik prawego koła.
Suma kontrolna – suma kontrolna służąca do kontroli poprawności przesyłu. Jest
liczona na podstawie 6 poprzedzających ją bajtów. Pola
reprezentujące
stany
liczników
rozłożone
są
na
wartości
jednobajtowe.
Ustawienie wartości lewego licznika.
Polecenie powoduje ustawienie wartości licznika lewego na wartość podaną w polu
argument.
Numer polecenia: 7
- 57 -
Ustawienie wartości prawego licznika.
Polecenie powoduje ustawienie wartości licznika prawego na wartość podaną w
polu argument.
Numer polecenia: 8
Przykład:
170 170 170 170
2
0
7
1
1
11
0
170
Wysłanie powyższej ramki spowoduje, że minirobot numer 2 zmieni wartość lewego
licznika z aktualnej na 257.
Włączenie/wyłączenie zatrzymania na sygnał z czujników IR.
Polecenie powoduje włączenie lub wyłączenie zatrzymywania się minirobota w
przypadku wykrycia przeszkody czujnikami IR. Gdy w polu argument znajduje się
wartość 0 następuje wyłączenie, dla każdej innej wartości włączenie.
Numer polecenia: 9
5.2. Oprogramowanie wewnętrzne.
Oprogramowanie to zostało napisane przy użyciu programu BASCOM 8051 (wersja:
2.0.11.0) firmy MCS Electronics. Jest to kompilator bazujący na poleceniach języka
BASIC,
umożliwia
napisanie
programu,
jego
symulacje
oraz
przy
użyciu
odpowiedniego programatora zapisanie kodu wynikowego w pamięci programu
mikrokontrolera. Posiada również możliwość pisania bloków programu w języku
asembler. Pisanie programu w języku asembler nie należy do łatwych i przyjemnych
jednak warte jest poświęcenia czasu i wysiłku, gdyż umożliwia znaczne przyspieszenie
pracy mikrokontrolera oraz duże oszczędności pamięci. W trakcie pisania kodu
kładziono duży nacisk na jego optymalizacje, w tym celu sprawdzano pisane procedury
pod kontem zajmowanego miejsca i czasu wykonania.
Na przykład procedura obsługi układu 74HC165:
- 58 -
Tabela 7. Porównanie czasów odczytu danych z układu 74HC165.
BASIC
ASEMBLER
Rozmiar w pamięci
175b
176b
Czas wykonania
677μs
64μs
Wyraźnie widać dysproporcje czasu wykonania, która uzasadnia celowość stosowania
wstawek asemblerowych, zwłaszcza w przypadku newralgicznych procedur programu
jak na przykład obsługa komunikacji radiowej.
Kod źródłowy programu wewnętrznego zajmuje ok. 12 stron, dlatego ograniczono się
do przedstawienia tylko algorytmu działania, który ujmuje całą istotę działania
programu. Kod źródłowy znajduje się na dołączonym nośniku CD.
Po włączeniu zasilania mikrokontroler wykonuje poniższy algorytm:
START
Czyszczenie pamięci
Ustawienie parametrów pracy
układów wewnętrznych
Czy
odebrano
polecenie?
T
Wykonanie polecenia
N
Rys. 55. Główna pętla programu.
W przypadku wystąpienia przerwania spowodowanego aktywnością interfejsu
szeregowego mikrokontrolera przystępuje on do wykonania programu obsługi tego
przerwania. Może ono być wywołane zarówno odebraniem jak i wysłaniem znaku.
Program obsługi pracuje według algorytmu przedstawionego na następnej stronie.
- 59 Przerwanie portu
szeregowego
Wpisanie znaku z SBUF do
miejsca w pamięci wskazanego
przez wskaźnik bufora odbioru
Czy
ustawiona
flaga
nadawania?
Przerwanie
wywołane
odbiorem?
T
N
Inkrementacja wskaźnika
bufora odbioru
SBUF=170
?
T
Wpisanie do SBUF znaku wskazanego
przez wskaźnik bufora nadawania
N
T
Inkrementacja licznika
preambuły
Licznik
preambuły
>3?
Zerowanie licznika
preambuły
Inkrementacja wskaźnika
bufora nadawania
N
T
Czy
wskaźnik
buf. Nad. >
max
T
Zerowanie wskaźnika
bufora odbioru
N
Ustawienie wskaźnika bufora nad.
na wartość początkową
Wyłączenie flagi nadawania
wskaźnik
bufora
odbioru >
max ?
T
Przejście w stan odbioru
Wskaźnik bufora
odbioru = min
N
Czy w polu
koniec jest
170 ?
N
T
N
N
czy pole
adresat =
nr_robota ?
T
- 60 -
Liczenie sumy
kontrolnej
czy sumy
się
zgadzają?
N
T
Odczyt polecenia i
ustawienie flagi odbioru
koniec
Rys. 56. Algorytm obsługi interfejsu szeregowego.
Sygnały z enkoderów powodują generowanie przerwań INT0 oraz INT1. Dążąc do
minimalizacji kodu napisano procedury obsługi przerwań pracujące wg poniższego
algorytmu.
Przerwanie INT0
Czy koło
obraca się
w przód?
N
T
Inkrementacja licznika
obrotów koła lewego
Dekrementacja licznika
obrotów koła lewego
Koniec INT0
Rys. 57. Algorytm obsługi przerwania INT0 (wersja 1).
W trakcie pierwszych prób stwierdzono, że taki algorytm jednak nie nadaje się do
zastosowania w minirobocie. Powstająca (w czasie wysyłania, z minirobota informacji)
- 61 -
fala elektromagnetyczna powodowała zakłócenia interpretowane jako sygnał z
enkodera. Dochodziło do sytuacji, że minirobot odpytywany o stan, za każdym razem
zmniejszał wartość licznika.
Przerwanie INT0
Czy koło
obraca się
w przód?
N
Czy koło
obraca się
w tył?
T
Inkrementacja licznika
obrotów koła lewego
N
T
Dekrementacja licznika
obrotów koła lewego
Inkrementacja
zmiennej TEMP1
Koniec INT0
Rys. 58. Algorytm obsługi przerwania INT0 (wersja 2).
Oprócz wprowadzenia dodatkowego warunku, który wyeliminował wpływ zakłóceń
dodano inkrementację zmiennej pomocniczej TEMP. Cel zastosowania tej zmiennej
będzie opisany w dalszej części pracy. Program obsługi przerwania INT1 jest
analogiczny do INT0 z tym, że dotyczy prawego koła oraz wykorzystuje zmienną
TEMP2.
Oprócz już wspomnianych istnieje jeszcze jedno, bardzo ważne źródło przerwań. Jest
nim licznik T0. Wykorzystany jest do obsługi czujników podczerwieni oraz układu
74HC165 (zwiększającego liczbę lini wejściowych). Program obsługi tego przerwania
jest wykonywany przy przepełnieniu licznika, wygląda następująco:
Tmr0_int:
If Zmienna_timera = 0 Then Set P1.3
If Zmienna_timera = 1 Then Ir_d_l = P1.1
If Zmienna_timera = 2 Then Reset P1.3
If Zmienna_timera = 5 Then Set P1.2
If Zmienna_timera = 6 Then Ir_d_p = P1.1
If Zmienna_timera = 7 Then Reset P1.2
If Zmienna_timera = 10 Then Call Odczyt74165
;zapala lewą diodę
;pobiera sygnał z odbiornika
;gasi lewą diodę
;zapala prawą diodę
;pobiera sygnał z odbiornika
;gasi prawą diodę
;pobiera dane z 74HC165
- 62 -
Incr Zmienna_timera
;zwiększa zmienną
If Zmienna_timera > 15 Then Zmienna_timera = 0 ;zeruje zmienną
Return
Licznik T0 może pracować jako: 16 bitowy, 13 bitowy, 8 bitowy z automatycznym
przeładowaniem, lub jako 2 liczniki 8 bitowe. Oznacza to, że przy zastosowanym
zegarze taktującym procesor (22,1184MHz) przepełnienie licznika, a zatem i
wykonanie powyższego programu wystąpi co:
Tryb pracy
16 bitów
13 bitów
8 bitów
Czas
35 ms
4,4 ms
138,8 μs
Wynika to z następującego wzoru:
T = 2x
12
[s]
f osc
gdzie: x- liczba bitów licznika, fosc – częstotliwość zegara taktującego.
Jak już wspomniano wcześniej sygnał ciągły dłuższy niż 1,8ms traktowany
przez jest odbiornik jako szum i podlega filtracji. Zastosowanie licznika 16 bitowego
powoduje, że minimalna długość świecenia diody nadawczej wynosi ok. 35ms. Jest to
prawie 20-krotnie więcej niż podają zalecenia w dokumentacji odbiornika.
Zastosowanie 8 bitowego licznika sprawia, że program obsługi przerwania jest
wykonywany co 138,8 μs. Tak krótki czas powoduje bardzo poważne zaburzenia w
działaniu komunikacji radiowej. Mikrokontroler praktycznie nie jest wstanie zająć się
wykonywaniem innego programu. Jedynym wyjściem okazało się zastosowanie licznika
13 bitowego. Po przeprowadzeniu prób okazało się, czas wynoszący 4,4 ms, choć nie
spełnia warunków zawartych w dokumentacji odbiornika, to jednak umożliwia
poprawną pracę czujnika podczerwieni. Prędkość odświeżania danych wynosi ok.
15Hz.
Obracające się koła, pomimo zastosowania identycznych silników, mogą
posiadać różne prędkości. Objawem czego jest niemożność utrzymania prostoliniowego
toru. W celu zrównania prędkości zastosowano programowe sprzęgniecie obu kół.
Wykorzystano do tego celu wspomniane już wcześniej zmienne TEMP1 i TEMP2.
- 63 -
Przed przystąpieniem do wykonywania polecenia np. jazdy do przodu, zmienne te są
zerowane. Gdy podczas ruchu któraś z nich będzie większa, następuje zatrzymanie koła
którego ona dotyczy. Po zrównaniu się wartości, koło jest ponownie uruchamiane.
Algorytm ten wykonywany jest w czasie ok. 77μs, co sprawia, że zatrzymanie koła nie
jest zauważalne ani wyczuwalne.
Masa minirobota jak i moment bezwładności silnika powodowały, że miał on
tendencje do „przejeżdżania” miejsca, w którym powinien się zatrzymać. Problem ten
rozwiązano przez zmniejszenie prędkości tuż przed miejscem zatrzymania. Algorytm
jazdy na wprost wygląda następująco.
Start
Zerowanie zmiennych
TEMP1 i TEMP2
TEMP1
=
TEMP2 ?
T
Oba silniki do
przodu
N
T
silniki lewy do
przodu
silnik prawy stop
TEMP1
<
TEMP2 ?
N
silnik lewy stop
silnik prawy do
przodu
argument –
TEMP1
< 20 ?
N
N
T
Opóźnienie
zmniejszające prędkość
TEMP1=
argument
?
T
STOP
Rys. 59. Algorytm programu do jazdy na wprost.
- 64 -
Podobny algorytm służy do wykonaywania pozosyałych poleceń jazdy (do tyłu, obrotu
w lewo i obrotu w prawo).
W przypadku polecenia „zapytanie o stan”, program wypełnia bufor nadawania
danymi przedstawionymi w tabeli 6 (strona 55). Następnie ustawia wskaźnik bufora
nadawania na wartość początkową, włącza flagę nadawania i inicjuje przerwanie
interfejsu szeregowego. Zadanie wysłania danych z bufora przejmuje wtedy program
obsługi przerwania interfejsu szeregowego.
Przy wywołaniu poleceń „ustawienie wartości licznika lewego” bądź „ustawienie
wartości licznika prawego”, programy obsłuygi tych poleceń wpisują wartość podaną w
polu argument (polecenia) bezpośrednio do zmiennych reprezentujących stan
odpowiedniego licznika.
5.3. Oprogramowanie zewnętrzne.
Dla celów zaprezentowania możliwości minirobotów zostały napisane dwa
programy sterujące. Pierwszy jest dość prostym programem. Jego działanie sprowadza
do generowania i transmisji poleceń sterujących minirobotami na podstawie danych
zawartych w pliku wsadowym. Przyjęto, że będzie to plik tekstowy, jednak dla
odróżnienia będzie posiadał rozszerzenie .rob. W jednej lini pliku znajduje się tylko
jedno polecenie o następującej składni:
numer minirobota, numer polecenia, argumentu [imp], opóźnienie [ms]
Zawartość przykładowego pliku:
1,1,80,1000
2,1,80,1000
3,1,80,1000
4,1,80,1000
- 65 -
Rys. 60. Okno programu sterującego z pliku.
Po załadowaniu takiego pliku i naciśnięciu przycisku START program spowoduje
wysłanie w sekundowych odstępach następujących ramek:
170 170 170 170
1
0
1
80
0
82
0
170
170 170 170 170
2
0
1
80
0
83
0
170
170 170 170 170
3
0
1
80
0
84
0
170
170 170 170 170
4
0
1
80
0
85
0
170
Drugi program jest dużo bardziej złożony. Umożliwia pojedyncze sterowanie
wszystkimi funkcjami każdego z czterech minirobotów. Argumenty poszczególnych
poleceń mogą być podawane w milimetrach i stopniach bądź impulsach. Program
umożliwia wysłanie wszystkich ośmiu poleceń. Po wysłaniu polecenia „zapytanie o
stan” (polecenie nr 6) nasłuchuje odpowiedzi i sprawdza ją pod kątem zgodności sumy
kontrolnej. Gdy zgodność wystąpi, następuje zmiana koloru kontrolki „aktualizacja”, a
program
prezentuje
odebrane
informacje
w
sposób
graficzny
na
rysunku
przedstawiającym sylwetkę minirobota, oraz zaznaczając odpowiednie pola pod
rysunkiem.
- 66 -
Rys. 61. Okno programu sterującego pojedynczą pracą.
Programy zostały napisane w języku Visual Basic 6.0. Kody źródłowe znajdują się na
płycie dołączonej do pracy. Umożliwi to ich dostosowanie do wymagań powstałych w
trakcie użytkowania minirobotów lub wykorzystanie opracowanych i zawartych w nich
procedur do napisania nowego programu.
- 67 -
6. Minirobot jako element systemu rozproszonego.
Budowa autonomicznych robotów mobilnych, zdolnych do prawidłowego
funkcjonowania w rzeczywistym środowisku wymaga bardzo dużych nakładów pracy.
Roboty takie powinny być wyposażone między innymi w systemy nawigacyjne,
zaawansowane algorytmy sterowania w tym podejmowania decyzji i planowania
trajektorii ruchu, oraz powinny posiadać zaawansowane systemy czujników
zbierających informację o otoczeniu. Miniroboty będące przedmiotem pracy pomimo,
że nie posiadają wspomnianych systemów, to nadają się do budowy modelu sterowania
rozproszonego.
Prostym przykładem może być wspólne realizowanie zadanego ruchu.
W celu prezentacji możliwości minirobotów opracowano następującą sekwencje
ruchów. Ustawione są one w szeregu wykonują obroty wokół swoich osi. Następnie
ustawiają się w „gęsiego” i jadą do przodu. Zatrzymują się na krawędzi
wyimaginowanego kwadratu. Następnie zaczynają jeździć po jego obwodzie. Po
zrobieniu jednego pełnego cyklu zatrzymują się w szeregu na jednej z krawędzi
kwadratu. Poniższy rysunek przedstawia poszczególne etapy ruchu.
Rys. 62. Poszczególne etapy ruchu minirobotów.
- 68 -
Przy użyciu dodatkowych środków miniroboty mogą stać się częścią bardziej
złożonego modelu rozproszonego systemu produkcyjnego. Te dodatkowe środki mają
na celu uzyskanie autonomiczności minirobotów, oraz symulacje środowiska pracy.
Przykładowy system produkcyjny może się składać z:
-
3 obrabiarek sterowanych numerycznie (OBR1, OBR2, OBR3);
-
3 robotów obsługujących obrabiarki (R1, R2, R3);
-
magazynu półproduktów (MPP);
-
magazynu gotowych elementów (MGP);
-
4 autonomicznych robotów mobilnych (ARM1, ARM2, ARM3, ARM4);
-
stacji ładowania akumulatorów robotów mobilnych (SŁA).
MPP
OBR3
R3
ARM2
MGP
OBR2
ARM1
R2
ARM4
SŁA
ARM3
OBR1
R1
Rys. 63. Przykład rozproszonego systemu produkcyjnego.
Załóżmy, że proces technologiczny wymaga, aby półprodukt przeszedł obróbkę kolejno
na wszystkich obrabiarkach. Obrabiarki są wyposażone w systemy komunikacji
radiowej przy pomocy, których informują autonomiczne roboty mobilne ARM o
konieczności dostarczenia lub odebrania półproduktu. Po odebraniu informacji ARM
ustalają między sobą, który z nich wykona zadanie. Wyboru mogą podejmować według
różnych kryteriów jednym z nich może być na przykład odległość. Przypuśćmy, że w
układzie jak przedstawiono na rysunku, OBR1 ogłasza, że potrzebuje półprodukt. ARM
po przeprowadzeniu negocjacji ustalają, że zadanie wykona ARM2 z uwagi na to, że
znajduje się najbliżej MPP. Gdyby natomiast ogłosiła konieczność odebrania
półproduktu wykonaniu zadania podejmie się ARM4. Istnieje wiele możliwych
- 69 -
przypadków zachowania się takiego systemu. Dużą zaletą takiego rozwiązania jest, przy
pewnej nadmiarowości autonomicznych robotów mobilnych, odporność na ich awarię
czy unieruchomienie na czas ładowania akumulatorów.
Model przedstawionego powyżej systemu może wyglądać następująco.
Komputer
1
Komputer
2
Komputer
3
Komputer
4
Moduł
komunikacyjny
Kamera
Komputer
bramowy
4
Komputer
systemu
wizyjnego
obszar pracy minirobotów
1
2
3
Komputer
symulac.
Rys. 64. Model rozproszonego systemu produkcyjnego.
Zachowaniem każdego z minirobotów znajdujących się w obszarze pracy odpowiada
jeden komputer. Rozwiązanie takie można potraktować jako podział autonomicznego
robota mobilnego na część wykonawczą oraz część sterującą. Części wykonawczej
odpowiada minirobot, natomiast części sterującej oprogramowanie zawarte w
odpowiednim komputerze. Zaletą tego rozwiązania jest niewątpliwie duża łatwość i
szybkość wprowadzania zmian i modyfikacji zachowania się minirobota.
- 70 -
Proponowany model systemu składa się z:
a) Systemu analizy obrazu, składającego się z kamery oraz komputera
z odpowiednim oprogramowaniem. Odpowiedzialny jest za „wydobywanie”
z przechwyconego obrazu współrzędnych położenia i orientacji każdego
z minirobotów, oraz wysyłanie tych informacji do odpowiednich komputerów
sterujących. Aby umożliwić systemowi wizyjnemu identyfikacje minirobotów
umieszczone są nich znaczniki. Mogą one być wykonane w postaci kolorowych
okręgów lub różnych figur geometrycznych.
b) Komputera symulacyjnego. Na komputerze tym pracuje oprogramowanie
symulujące pracę obrabiarek. Jego zadaniem jest wysyłanie do wszystkich
komputerów sterujących informacji ogłaszanych przez obrabiarki.
c) Komputera bramowego. Komputer ten odpowiada za przeprowadzanie
transmisji radiowej do i od minirobota. Pośredniczy w przekazywaniu
informacji między minirobotami, a komputerami sterującymi. Łączy niejako
sieć lokalną z systemem komunikacji radiowej.
d) Czterech komputerów sterujących odpowiedzialnych za zachowanie się
minirobotów. Nasłuchują ogłoszeń pochodzących od obrabiarek, negocjują
który z minirobotów powinien wykonać zadanie. Bazując na danych
otrzymanych z systemu wizyjnego wyznaczają trajektorie ruchu i wysyłają do
komputera bramowego sekwencje sterujące.
Oczywiście nie jest konieczne wykorzystanie, aż siedmiu komputerów. Zadania
wykonywane przez poszczególne komputery można powierzyć jednemu, pod
warunkiem, że będzie dysponował on odpowiednią mocą obliczeniową.
Innym sposobem wykorzystania minirobotów do testowania procedur sterowania
rozproszonego może być pomysł zaczerpnięty z rozgrywek RoboCup. Do tego celu z
powyższego modelu należy usunąć komputer symulacyjny oraz obszar pracy zamienić
na boisko. Miniroboty można podzielić na dwie drużyny mające za zadanie
przemieszczać piłeczkę. Taki model umożliwi dodatkowo prowadzenie prac nad
algorytmami pracy zespołowej, co być może w niedalekiej przyszłości zaowocuje
wystartowaniem drużyny Politechniki Krakowskiej w rozgrywkach RoboCup.
- 71 -
7. Końcowe uwagi i spostrzeżenia.
Zdobyta podczas wykonywania tej pracy wiedza praktyczna oraz dokonane
spostrzeżenia mogą stać się nieocenionymi wskazówkami przy projektowaniu i
budowie kolejnych, dużo bardziej złożonych minirobotów mobilnych.
Dużo czasu poświęcono na poszukiwanie odpowiedniego napędu (silnika z przekładnią
i enkoderem) minirobota. W pierwszej kolejności przeszukano sklepy elektroniczne i
elektrotechniczne. Okazało się, że dostępne tam napędy są za duże. Następnie
skierowano poszukiwania w stronę serwisów różnego sprzętu przenośnego jak
discmany,
walkmany,
kamery,
aparaty,
itp..
Pomimo
potencjalnie
dużego
prawdopodobieństwa znalezienia tam odpowiedniego napędu okazało się, że jest to
daremny trud. Głownie z tego powodu, że żywotność systemów napędowych we
wspomnianym sprzęcie przewyższa znacznie czas życia tych urządzeń. Serwisy
oferowały możliwość sprowadzenia napędów jednak cena okazywała się porównywalna
z kupnem urządzenia, w którym taki napęd się znajduje. Bardzo dobre systemy
napędowe znaleziono w ofertach firmy Maxon motor i Faulhaber jednak ze względu na
duże koszty zrezygnowano z ich zastosowania. Silniczek o średnicy 10 mm z
przekładnią oraz enkoderem kosztował ok. 300zł. Skierowano następnie poszukiwania
w kierunku sklepów modelarskich. Tam były dostępnie miniaturowe silniczki, jednak
bez
przekładni
i
enkoderów.
W
silniczek
i
przekładnie
wyposażone
są
serwomechanizmy modelarskie. Ze względu na stosunkowo niewielki koszt i małą masę
oraz duży moment obrotowy uznano je za potencjalny napęd do minirobotów. Kupiono
wstępnie jeden serwomechanizm i przeanalizowano jego budowę pod kontem
umieszczenia w jego wnętrzu prostego enkodera. Aby uzyskać jak największą
rozdzielczość enkodera należało zamocować go jak najbliżej silnika. Okazało się, że
koło zębate, współpracujące z kołem silnika znajduje się ok. 0,5 mm nad powierzchnią
obudowy serwomechanizmu. Ponieważ było to jedyne możliwe miejsce na
umieszczenie enkodera należało rozwiązać problem jego budowy. Po zbudowaniu
takiego enkodera (budowa opisana jest na stronie 25) i przeprowadzeniu pozytywnie
zakończonych pierwszych prób uznano taki napęd za dobre rozwiązanie. Po niedługim
jednak czasie okazało się, że enkoder posiada wadę. Objawiała się ona
nierównomiernością obracania się kół. Po wstępnym przeanalizowaniu powstałego
problemu stwierdzono, że przyczyna leży w zliczaniu impulsów. Po dokładnym
- 72 -
przyjrzeniu się enkoderom zlokalizowano przyczynę nieprawidłowego działania. Tarcza
enkodera, która była wykonana z papieru, podczas pracy przekładni została
zatłuszczona smarem. Zatłuszczenie spowodowało zmianę właściwości optycznych
papieru, który słabiej odbijał promieniowanie emitowane przez diodę fotoprzerywacza.
Powodowało to, że enkoder niejako „przestawał widzieć” białe pola tarczy impulsowej,
co uniemożliwiało jego pracę. Problem jednak szybko rozwiązano przez zwiększenie
czułości enkodera.
Zaproponowany układ napędowy jest stosunkowo niedrogim rozwiązaniem, razem z
enkoderem koszt napędu wynosi ok. 55zł. Zaletą są niewielkie rozmiary, powszechna
dostępność, duży moment (ok. 300mNm), łatwość wyposażenia go w enkoder oraz
niskie napięcie pracy. Pomimo wady jaką może być mała prędkość obrotowa
wynosząca ok. 52obr/min jest to dobre rozwiązanie.
Następny problem dotyczący układu napędowego związany jest z kołami
minirobotów. W trakcie pierwszych prób jazdy minirobotów okazało się, że mają one
problemy z utrzymaniem prostoliniowego toru jazdy. Po przeanalizowaniu i
sprawdzeniu możliwych przyczyn tej nieprawidłowości stwierdzono, że zakupione
kółeczka posiadają niewielkie różnice w średnicach. Poradzono sobie z tym problemem
poprzez łączenie w pary kółek o najmniejszych różnicach średnic. Inną zaobserwowaną
przyczyną zbaczania minirobota z prostoliniowego toru okazało się występowanie
niewielkiej niewspółosiowości między osią koła, a osią napędu.
Reasumując, należy zwrócić uwagę na średnice kół oraz na dokładność wykonania
połączenia ich z silnikami.
W przyjętym rozwiązaniu prędkość minirobota ściśle zależy od napięcia
naładowania akumulatorków. Aby tego uniknąć w dalszych pracach z tego zakresu
należałoby zastosować regulator napięcia. Będzie on utrzymywał je na stałym poziomie
np. 4,5V. Co prawda minirobot będzie jechał troszkę wolniej, jednak jego prędkość
będzie niezależna od stanu naładowania akumulatorka. Umożliwi to precyzyjne
wyliczenie czasu potrzebnego na wykonanie ruchu. Dodatkowo należy zastosować
czujnik prądu pobieranego przez silniczki. Prąd ten jest zależny od prędkości obrotowej
silnika, a więc i od oporów ruchu. Czujnik taki dostarcza wielu informacji dotyczących
ruchu. Inny prąd będzie płyną, kiedy koła minirobota nie będą miały kontaktu z
- 73 -
podłożem, inny podczas jazdy po płaskim lub nachylonym terenie. Nagły wzrost prądu
może świadczyć o kontakcie minirobota z przeszkodą.
Wykonanie obudowy minirobotów było bardzo czasochłonnym zajęciem.
Ponadto jakość otrzymanej powierzchni posiada wiele mankamentów wynikających z
niedokładności ręcznego wykonania formy. Zastosowanie technik CAD/CAM
spowodowałoby kilkukrotne skrócenie czasu wykonania formy oraz spowodowałoby,
że jakość powierzchni otrzymanego laminatu, nie wymagałby żadnej dodatkowej
obróbki, poza malowaniem. W tym celu na przykład w programie CATIA można by
zamodelować kształt obudowy a następnie wygenerowany program obróbki przesłać na
frezarkę ARROW 500.
System zasilania minirobota składa się z ładowarki oraz umieszczonych w jego
wnętrzu akumulatorków. W następnych pracach można śmiało wykorzystać to
rozwiązanie, a nawet pójść krok dalej i opracować taką konstrukcję minirobota oraz
złącza ładowania aby mógł on podjechać i samodzielnie podpiąć się do ładowarki.
Będzie to krok w kierunku zwiększenia autonomiczności minirobota.
Następnym spostrzeżeniem, a raczej ostrzeżeniem wynikającym z prac nad
przedstawionymi minirobotami jest niekompetencja oraz nieuwaga sprzedawców.
W pierwszym przypadku, podczas zakupu podzespołów do skonstruowania ładowarki,
okazało się, że niema w sklepie odpowiedniego elementu. Po zapewnieniach
sprzedawcy o identyczności parametrów kupiono odpowiednik brakującego układu.
Podczas pierwszego uruchamiania ładowarki okazało się, że działa ona nieprawidłowo.
Po kilku godzinach poszukiwań przyczyny, okazało się, że odpowiednik jednak nie jest
odpowiednikiem. Wprowadzenie w błąd przez sprzedawcę spowodowało opóźnienie
prac nad ładowarką oraz pociągnęło za sobą dodatkowe koszty. W drugim przypadku
sprzedawca pomylił tranzystory, zamiast dać BC547 dał BC557. Błąd wyszedł na jaw
dopiero podczas zauważenia nieprawidłowości pracy czujnika napięcia. Spowodowało
to również spore opóźnienia. Aby uniknąć takich sytuacji, należy przede wszystkim
ograniczyć zaufanie do sprzedawcy, to że sprzedaje wcale nie oznacza, że wie co
sprzedaje. Przed kupnem odpowiednika elementu należy dokładnie porównać jego
parametry z parametrami oryginału.
- 74 -
Należy również pamiętać, aby w trakcie pisania oprogramowania sterującego pracą
minirobota nie stosować zbytnich uproszczeń, które mogą stać się w późniejszym czasie
przyczynami problemów. Stało się tak w trakcie pisania programu obsługi przerwania
pochodzącego od enkoderów. Poczyniono założenie, teoretycznie słuszne, że
przerwanie może wystąpić tylko w przypadku obrotu koła do przodu bądź do tyłu.
Napisano algorytm przedstawiony na Rys. 57. Doświadczenie jednak szybko pokazało,
że poczynione założenie jest błędne. Powstająca w trakcie nadawania fala
elektromagnetyczna powodowała zakłócenia, interpretowane jako pojawienie się
impulsu z enkodera. Wprowadzono poprawki, które uniemożliwiły błędną interpretację
przerwania (Rys. 58)
Skonstruowany minirobot posiada dwa stopnie swobody: przemieszczenie
liniowe oraz obrót wokół swojej osi. Rozwiązanie takie sprawia trudności podczas
wprowadzania korekty położenia. Gdy, z powodu niedokładności wykonania, albo
nieprzewidzianych zakłóceń ruchu, minirobot zatrzyma się w innym miejscu niż
powinien skorygowanie jego położenia wymagać będzie wykonania 3 poleceń. Obrotu,
w celu wykonania przemieszczenia w kierunku miejsca docelowego, przemieszczenia
liniowego oraz ponownego obrotu, w celu uzyskania pierwotnej orientacji. Dużo lepsze
możliwości zapewnia robot posiadający 3 stopnie swobody: dwa przemieszczenia
liniowe w kierunkach prostopadłych oraz obrót wokół osi. Do skorygowania położenia
wystarczy tylko jedno polecenie. Ponadto, miniroboty posiadające zdolność wykonania
ruchy w kierunkach prostopadłych dają większe możliwości manewrowania. Bez
praktycznie żadnych dodatkowych elementów można łączyć je „wirtualnymi więzami” i
wykorzystywać do transportu dużych przedmiotów.
W trakcie wykonywania niniejszej pracy zbadano możliwości wykorzystania
języka Visual Basic pod kątem pisania programów na poszczególne komputery
wchodzące w skład modelu. Przy użyciu kontrolek ActiveX napisano program, który
przechwytywał obraz z kamery a następnie wysyłał go do innego komputera w sieci. Na
podstawie przeprowadzonych prób, stwierdzono że nie istnieją fizyczne przeszkody
uniemożliwiające zastosowanie tego języka. W miarę wzrostu skomplikowania
algorytmów sterujących pracą minirobotów pojawi się na pewno konieczność
- 75 -
zastosowania bardziej wydajnego języka programowania, niemniej jednak do
pierwszych prób dobrze się on nadaje.
Miniroboty zbudowane w ramach niniejszej pracy, oprócz celu, w jakim są
skonstruowane mogą przyczynić się do uatrakcyjnienia wielu zajęć prowadzonych ze
studentami automatyki i robotyki. Mogą być wykorzystane między innymi na zajęciach
z języków programowania, komunikacji komputerowej, symulacji komputerowej,
inteligentnych systemów wytwarzania czy techniki mikroprocesorowej.
- 76 -
8. Dodatek A – parametry minirobota.
rozmiar
szerokość
115 mm
długość
125 mm
wysokość
65 mm + 33 mm (ant.)
masa
330 g
prędkość max
84 mm/s
przemieszczenie min.
~ 0,66 mm
obrót min.
~ 0,69 º
średnica kół
45 mm
rozstaw kół
110 mm
zasilanie
4 x 1.2V 2100mAh
procesor
AT89C2051 22,11MHz
prędkość trans. radiowej
19,2kbps (max 34,8kbps)
- 77 -
9. Dodatek B – elementy składowe pracy.
Elementy wchodzące w skład pracy:
-
4 miniroboty mobilne,
-
ładowarka,
-
moduł komunikacyjny do komputera.
Zawartość płyty CD:
-
tekst pracy w formacie pdf,
-
kody źródłowe wszystkich programów,
-
noty katalogowe użytych elementów elektronicznych,
-
filmy i zdjęcia powstałe podczas prac nad minirobotami.
- 78 -
Literatura
[1]
Dąbrowski K.: Amatorska komunikacja cyfrowa, PWN, Warszawa 1994.
[2]
Dulęba I.: Metody i algorytmy planowania ruchu robotów mobilnych i
manipulatorów. Akademicka Oficyna Wydawnicza EXIT, Warszawa 2001.
[3]
Gawrysiak M.: Mechatronika i projektowanie mechatroniczne. Wydawnictwa
Politechniki Białostockiej, Białystok 1997.
[4]
Giergiel M., Hendzel Z., Żylski W.: Modelowanie i sterowanie mobilnych
robotów kołowych, PWN, Warszawa 2002.
[5]
Heimann B, Gerth W, Popp K.: Mechatronika. Komponenty, metody, przykłady.
PWN, Warszawa 2001.
[6]
Kost G. G.: Podstawy budowy robotów, Wydawnictwo Politechniki Śląskiej,
Gliwice 1996.
[7]
Łakomy M., Zabrodzki J.: Cyfrowe układy scalone TTL, PWN, Warszawa 1974.
[8]
Pieńkoś J., Moszczyński S., Pluta A.: Układy mikroprocesorowe 8080/8085 w
modułowych systemach sterowania. Wydawnictwa Komunikacji i Łączności,
Warszawa 1988.
[9]
Rydzewski A.: Mikrokomputery jednoukładowe rodziny MCS-51, WNT,
Warszawa 1995.
[10] Tchoń K., Mazur A., Dulęba I., Hossa R., Muszyński R.: Manipulatory i roboty
mobilne. Modele, planowanie ruchu, sterowanie. Akademicka Oficyna
Wydawnicza PLJ, Warszawa 2000.
[11] Tietze U., Shenk Ch.: Układy półprzewodnikowe, WNT, Warszawa 1996.
[12] Wesołowski
K.:
System
radiokomunikacji
ruchomej,
Wydawnictwa
Komunikacji i Łączności, Warszawa 1999.
[13] Woźniak A.: Autonomiczne roboty mobilne. Laboratorium., Wydawnictwo
Politechniki Poznańskiej, Poznań 1994.
[14] Zając J.: Rozproszone sterowania zautomatyzowanymi systemami wytwarzania,
Monografia 288. Wydawnictwa Politechniki Krakowskiej, Kraków 2003.
[15] Zieliński B.: Bezprzewodowe sieci komputerowe, Wydawnictwo Helion,
Gliwice 2000.
[16] http://dmtwww.epfl.ch/isr/asl
[17] www.lynxmotion.com
- 79 -
[18] www.robocup.org
[19] http://www.geology.smu.edu/~dpa-www/robo/nbot/

Podobne dokumenty