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/