Imię i nazwisko studenta: Dawid Jaworski Nr albumu: 149781 Studia pierwszego stopnia Forma studiów: stacjonarne Kierunek studiów: Automatyka i Robotyk...
18 downloads
20 Views
3MB Size
Imię i nazwisko studenta: Dawid Jaworski Nr albumu: 149781 Studia pierwszego stopnia Forma studiów: stacjonarne Kierunek studiów: Automatyka i Robotyka Specjalność/profil: Robotyka i Systemy Mechatroniki Imię i nazwisko studenta: Dariusz Jaroś Nr albumu: 149778 Studia pierwszego stopnia Forma studiów: stacjonarne Kierunek studiów: Automatyka i Robotyka Specjalność/profil: Robotyka i Systemy Mechatroniki
PRACA DYPLOMOWA INŻYNIERSKA
Tytuł pracy w języku polskim: Projekt i realizacja robota inspekcyjnego do przewodów wentylacyjnych. Tytuł pracy w języku angielskim: Design and realization of an inspection robot for ventilation ducts.
Potwierdzenie przyjęcia pracy
Opiekun pracy
Kierownik Katedry/Zakładu
podpis
podpis
dr inż. Mariusz Dąbkowski Data oddania pracy do dziekanatu:
OŚWIADCZENIE Imię i nazwisko: Dawid Jaworski Data i miejsce urodzenia: 14.12.1994, Słupsk Nr albumu: 149781 Wydział: Wydział Elektrotechniki i Automatyki Kierunek: automatyka i robotyka Poziom studiów: I stopnia - inżynierskie Forma studiów: stacjonarne Ja, niżej podpisany(a), wyrażam zgodę/nie wyrażam zgody* na korzystanie z mojej pracy dyplomowej zatytułowanej: Projekt i realizacja robot inspekcyjnego do przewodów wentylacyjnych. do celów naukowych lub dydaktycznych. 1 Gdańsk, dnia ..................................
..................................................... podpis studenta
Świadomy(a) odpowiedzialności karnej z tytułu naruszenia przepisów ustawy z dnia 4 lutego 1994 r. o prawie autorskim i prawach pokrewnych (Dz. U. z 2006 r., nr 90, poz. 631) i konsekwencji dyscyplinarnych określonych w ustawie Prawo o szkolnictwie wyższym (Dz. U. z 2012 r., poz. 572 z późn. zm.),2 a także odpowiedzialności cywilno-prawnej oświadczam, że przedkładana praca dyplomowa została opracowana przeze mnie samodzielnie. Niniejsza(y) praca dyplomowa nie była wcześniej podstawą żadnej innej urzędowej procedury związanej z nadaniem tytułu zawodowego. Wszystkie informacje umieszczone w ww. pracy dyplomowej, uzyskane ze źródeł pisanych i elektronicznych, zostały udokumentowane w wykazie literatury odpowiednimi odnośnikami zgodnie z art. 34 ustawy o prawie autorskim i prawach pokrewnych. Potwierdzam zgodność niniejszej wersji pracy dyplomowej z załączoną wersją elektroniczną. Gdańsk, dnia ..................................
..................................................... podpis studenta
Upoważniam Politechnikę Gdańską do umieszczenia ww. pracy dyplomowej w wersji elektronicznej w otwartym, cyfrowym repozytorium instytucjonalnym Politechniki Gdańskiej oraz poddawania jej procesom weryfikacji i ochrony przed przywłaszczaniem jej autorstwa. Gdańsk, dnia ..................................
..................................................... podpis studenta
*) niepotrzebne skreślić
2
OŚWIADCZENIE Imię i nazwisko: Dariusz Jaroś Data i miejsce urodzenia: 12.11.1994, Wejherowo Nr albumu: 149778 Wydział: Wydział Elektrotechniki i Automatyki Kierunek: automatyka i robotyka Poziom studiów: I stopnia - inżynierskie Forma studiów: stacjonarne Ja, niżej podpisany(a), wyrażam zgodę/nie wyrażam zgody* na korzystanie z mojej pracy dyplomowej zatytułowanej: Projekt i realizacja robot inspekcyjnego do przewodów wentylacyjnych. do celów naukowych lub dydaktycznych. 1 Gdańsk, dnia ..................................
..................................................... podpis studenta
Świadomy(a) odpowiedzialności karnej z tytułu naruszenia przepisów ustawy z dnia 4 lutego 1994 r. o prawie autorskim i prawach pokrewnych (Dz. U. z 2006 r., nr 90, poz. 631) i konsekwencji dyscyplinarnych określonych w ustawie Prawo o szkolnictwie wyższym (Dz. U. z 2012 r., poz. 572 z późn. zm.), 2 a także odpowiedzialności cywilno-prawnej oświadczam, że przedkładana praca dyplomowa została opracowana przeze mnie samodzielnie. Niniejsza(y) praca dyplomowa nie była wcześniej podstawą żadnej innej urzędowej procedury związanej z nadaniem tytułu zawodowego. Wszystkie informacje umieszczone w ww. pracy dyplomowej, uzyskane ze źródeł pisanych i elektronicznych, zostały udokumentowane w wykazie literatury odpowiednimi odnośnikami zgodnie z art. 34 ustawy o prawie autorskim i prawach pokrewnych. Potwierdzam zgodność niniejszej wersji pracy dyplomowej z załączoną wersją elektroniczną. Gdańsk, dnia ..................................
..................................................... podpis studenta
Upoważniam Politechnikę Gdańską do umieszczenia ww. pracy dyplomowej w wersji elektronicznej w otwartym, cyfrowym repozytorium instytucjonalnym Politechniki Gdańskiej oraz poddawania jej procesom weryfikacji i ochrony przed przywłaszczaniem jej autorstwa. Gdańsk, dnia ..................................
..................................................... podpis studenta
*) niepotrzebne skreślić
3
STRESZCZENIE Celem pracy inżynierskiej było zaprojektowanie oraz wykonanie robota inspekcyjnego szybów wentylacyjnych. Jego zadaniem jest sprawne poruszanie się we wnętrzu szybu oraz przekazywanie rejestrowanego obrazu do kontrolującego go operatora. Za część mechaniczną projektu odpowiadał Dawid Jaworski. W tej części pracy zaprojektowano bryły robota, opracowano sposób jego działania oraz wykonano wszystkie potrzebne elementy konstrukcyjne. Część elektryczno-programową opracował Dariusz Jaroś. Jego zadaniem było odpowiednie dobranie elementów elektronicznych spełniających założenia funkcjonalności robota oraz zaprojektowanie interfejsu sterowania konstrukcją. Praca została podzielona na kilka rozdziałów. Rozdział 2 poświęcony został części projektowej, w której opisano wszystkie założenia przyjęte w celu realizacji projektu. Przemyślano sposób poruszania się robota, jego funkcje oraz sposób wykonania części konstrukcyjnych. Dodatkowo
przedstawiono
oraz
uzasadniono
dobór
wszystkich
elementów
elektronicznych, a także opisano sposób ich połączenia oraz ich funkcjonalność. W rozdziale tym została opisana również część programistyczna projektu. Przedstawiono rozwiązania umożliwiające sterowanie robotem oraz jego funkcjami. Rozdział 3 i rozdział 4 poświęcono opisowi procesu realizacji części praktycznej pracy. Opisano czynności prowadzące do skonstruowania bryły robota oraz połączenia wszystkich zaprojektowanych elementów. Szczegółowo opisano przebieg testów całej konstrukcji. Przebadano możliwości motoryczne robota oraz działanie jego poszczególnych modułów. Zakończenie pracy zawiera podsumowanie i najważniejsze wnioski powstałe w trakcie realizacji tematu pracy. Słowa kluczowe: robot mobilny, robot inspekcyjny, magnesy neodymowe, Raspberry PI, instalacje wentylacyjne, zdalne sterowanie, system wizyjny
Abstract The aim of the engineering work was to design and execution of robot inspection shafts. Its mission is to efficiently move inside the shaft and transfer the recorded image to the operator controlling it. For the mechanical part of the project was responsible Dawid Jaworski. In this part of the project robot body is designed, a method of its operation and designed all the necessary components. The electro-software part was developed by Dariusz Jaroś. His task was to choose the appropriate electronic components that meet the assumptions of functionality and design a robot control interface. The work was divided into several chapters. Chapter 2 is devoted to the design part, which describes all the assumptions used in order to accomplish the project. Reconsidered the way of robot movement, its functions and how to make structural parts. Additionally we presented and justified the selection of all electronic components, and also described their connection method and functionality. This chapter has described the part of the software development project. Presented solutions for control of the robot and its functions. Chapter 3 and Chapter 4 is devoted to the description of the implementation of the practical part of the work. Describes the steps leading to construct the robot body and connect all designed elements. It describes in detail the course of the testing of the entire structure. Examined the robot motor possibilities and the way of operation of the individual modules. Completion of work and provides a summary of the most important conclusions arisen during the implementation of the subject of work.
Keywords: mobile robot, neodymium magnets, Raspberry PI, ventilation ducts, remote control, vision system
5
Wykaz ważniejszych oznaczeń i skrótów ...........................................................................7 1 2
3
WSTĘP I CEL PRACY.......................................................................................................8 PROJEKT .........................................................................................................................9 2.1
Założenia projektowe i obliczenia (Dawid Jaworski) ...................................................9
2.2
Projekt części mechanicznej (Dawid Jaworski) ......................................................... 21
2.3
Projekt i dobór układu elektrycznego i elektronicznego (Dariusz Jaroś) .................... 25
2.4
Opracowanie części programistycznej (Dariusz Jaroś) ............................................. 35
2.4.1
Konfiguracja Raspberry Pi ................................................................................ 35
2.4.2
Realizacja strony www ..................................................................................... 41
REALIZACJA PRAKTYCZNA. ......................................................................................... 44 3.1
Realizacja części mechanicznej (Dawid Jaworski).................................................... 44
3.2
Realizacja części elektronicznej (Dariusz Jaroś) ...................................................... 49
4
WERYFIKACJA (Dawid Jaworski, Dariusz Jaroś) ............................................................ 51
5
PODSUMOWANIE I WNIOSKI KOŃCOWE (Dawid Jaworski, Dariusz Jaroś) .................. 55
WYKAZ LITERATURY ............................................................................................................ 57 WYKAZ RYSUNKÓW ............................................................................................................. 59 WYKAZ TABEL ....................................................................................................................... 61
6
WYKAZ WAŻNIEJSZYCH OZNACZEŃ I SKRÓTÓW FDM
–
Fused Deposition Modeling
ABS
–
kopolimer Akrylonitrylo-Butadieno-Styrenowy
STL
–
STereoLitography
GPIO
–
General Purpose input/output
PWM
–
Pulse-Width Modulation
–
Inter-Integrated Circuit
2
IC
UART – SPI
–
WWW –
Universal asynchronous receiver/transmitter Serial Peripheral Interface Dokument hipertekstowy, utworzony w języku HTML
URL
–
ang. Uniform Resource Locator. Ujednolicony format adresowania zasobów.
CAD
–
Computer-Aided Design
7
1
WSTĘP I CEL PRACY Tematem niniejszej pracy inżynierskiej jest zaprojektowanie oraz budowa robota mobilnego
w celu inspekcji wnętrza przewodów wentylacyjnych. Celem pracy było również stworzenie oprogramowania umożliwiającego jego kontrolę. Głównym założeniem działania robota jest możliwość jego swobodnego poruszania się oraz zapewnienie operatorowi podglądu wnętrza instalacji wentylacyjnych za pomocą kamery. Zadaniem robota jest ułatwienie oraz usprawnienie wykrywania defektów, bądź usterek znajdujących się we wnętrzu przewodów wentylacyjnych. Jest to rozwiązanie ściśle dedykowane dla stalowych przewodów wentylacyjnych o minimalnym przekroju: 400 mm · 300 mm. W wypadku użycia robota w przewodach nie ferromagnetycznych, np. aluminiowych, robot może nie być w stanie dostać się we wszystkie rejony przewodów. Praca zawiera pełen opis projektu z zakresu konstrukcji mechanicznej, układu elektrycznego oraz oprogramowania sterującego. Robot posiada napęd kołowy oparty o dwóch silnikach prądu stałego z zintegrowanymi enkoderami położenia kątowego do kontroli prędkości. Układ sterowania oparto na interfejsie Raspberry PI w wersji B. Służy ona do komunikacji robot-operator, sterowaniem pracą silników oraz rejestracją i przekazaniem obrazu z kamery. W celu umożliwienia robotowi pokonywania przeszkód terenowych w postaci szybów pionowych, bądź szybów o dużym kącie nachylenia, wyposażono robota w szereg magnesów neodymowych, które umieszczono na jego kołach. W ramach pracy Dawid Jaworski zrealizował część projektu i budowy konstrukcji mechanicznej korpusu robota wraz z wymaganymi elementami pomocniczymi. Dariusz Jaroś wykonał część elektroniczną robota oraz zaprojektował i zaprogramował oprogramowanie sterujące wraz z interfejsem. W rozdziale drugim skupiono się na określeniu złożeń i wymagań dotyczących części mechanicznej projektu oraz jej realizacji. Przedstawiono w nim oprogramowanie sterujące robotem oraz projekt elektryczny. W rozdziale trzecim opisano proces konstruowania zaprojektowanego urządzenia. Przedstawiono wszystkie etapy tworzenia urządzenia wraz z opisem graficznym poszczególnych części. Rozdział czwarty poświęcono weryfikacji technicznej urządzenia. Zawiera on opisy testów oprogramowania i sprawności poruszania się robota. Całość projektu została podsumowana w rozdziale piątym. Zawarto w nim wszelkie spostrzeżenia oraz wyciągnięte na ich podstawie wnioski.
8
2 2.1
PROJEKT Założenia projektowe i obliczenia
W trakcie planowania funkcji oraz możliwości robota wyodrębniono poszczególne założenia
narzucające
ograniczenia
w
kwestii
struktury
i
mechanizmów
robota.
Pierwszym ważnym ograniczeniem były wymiary przestrzeni roboczej. Na podstawie normy PN-EN 1505:2001 (tabela 2.1) określono maksymalne wymiary urządzenia, biorąc pod uwagę rozmiary silników. Grupą docelową rozwiązania są szyby wentylacyjne z przekrojem poprzecznym o rozmiarach powyżej: 400 mm · 300 mm, które oznaczono kolorem czerwonym. Tabela 2.1 Zestawienie wymiarów szybów wentylacyjnych zgodnych z normą PN-EN 1505:2001 [1]
𝐴𝑐 – pole przekroju poprzecznego, 𝑑ℎ – średnica hydrauliczna – w odniesieniu do przewodu o przekroju prostokątnym, średnica przewodu o przekroju kołowym, przy której występuje taki sam spadek ci śnienia przy jednakowych wartościach prędkości przepływu i współczynnika tarcia, 𝑑𝑒 – średnica równoważna – w odniesieniu do przewodu o przekroju prostokątnym średnica przewodu o przekroju kołowym, przy której występuje taki sam spadek ciśnienia przy jednakowych wartościach strumienia przepływu powietrza i współczynnika tarcia, 𝐴𝑖 – pole powierzchni przewodu – iloczyn obwodu wewnętrznego i długości przewodu
9
Wszystkie elementy konstrukcyjne postanowiono wykonać metodą druku 3D. Jest to metoda druku przestrzennego polegająca na wytwarzaniu obiektów na podstawie modelu komputerowego. Urządzenie drukujące wykorzystuje specjalny materiał – filament i nakłada go warstwa po warstwie według danego modelu graficznego. Udostępnione urządzenie Zortrax M200 przedstawione na rys 2.1 wykorzystuje technikę FDM (ang. Fused Deposition Modeling). Polega ona na wyciskaniu rozgrzanego termoplastycznego materiału przez dysze na specjalną rozgrzaną płytę [2]. Rozwiązanie to umożliwiło grupie szybkie prototypowanie elementów robota oraz ich testowanie.
Rys. 2.1 Drukarka 3D – Zortrax M200
Kolejnym założeniem konstrukcji robota jest możliwość poruszania się po powierzchniach płaskich oraz pionowych szybu wentylacyjnego. Standardowym materiałem, z którego wykonana jest konstrukcja szybu to stal, najczęściej ocynkowana, rzadziej aluminium. W związku z tym postanowiono zainstalować szereg magnesów neodymowych, których zadaniem było zapewnienie dodatkowej przyczepności umożliwiającej poruszanie się na dowolnej ze ścian. Takie rozwiązanie eliminuje możliwość eksploatacji urządzenia w szybach aluminiowych. Równolegle należało opracować sposób przemieszczania się robota, który umożliwiałby zmianę płaszczyzn oraz nie powodował utraty przyczepności i stabilności robota. Z tego tytułu wyeliminowano wszystkie rozwiązania napędu kroczącego, ze względu na skomplikowaną budowę, aplikację, a co za tym idzie stabilność systemu oraz implementację oprogramowania sterującego.
10
W związku z tym zastosowano napęd kołowy z wykorzystaniem 3 kół. Dwa z nich to koła napędowe znajdujące się z przodu korpusu i sztywno zamontowane na osiach silników prądu stałego. Trzecie koło zostało dodane, jako koło podporowe z możliwością obrotu o 360° wzdłuż osi normalnej względem podłoża. Takie rozwiązanie konstrukcyjne umożliwia sterowanie różnicowe prędkości robota. Tego typu sterowanie zapewnia praktycznie zerowy promień skrętu, a co za tym idzie, upraszcza konstrukcję i zmniejsza ilość wymaganej przez urządzenie przestrzeni operacyjnej. Dla zapewnienia przyczepności wybrano magnesy neodymowe ze względu na niską cenę, łatwą implementację oraz fakt, iż są to najsilniejsze magnesy trwałe dostępne na rynku. Rozważano również opcję użycia przyssawek. Niestety wiązałoby się to z montażem pompy na pokładzie robota, bądź poprowadzenie dodatkowego przewodu pneumatycznego do stacji sprężającej powietrze. Zarówno jedno, jak i drugie wyjście zostało odrzucone. Montaż pompy na pokładzie robota zwiększyłoby masę oraz zajętą przestrzeń. Do tego dochodzi kwestia zasilania. Poprowadzenie przewodu pneumatycznego również zostało odrzucone ze względu na ryzyko rozszczelnienia, bądź przerwania przewodu. Magnesy neodymowe rozmieszczono na całym obwodzie kół (rys 2.2). Eliminuje to ryzyko utraty przyczepności ze względu na nierówność/załamanie powierzchni. Rozwiązuje to również problem najazdu na ścianę prostopadłą do płaszczyzny poziomej, po której przemieszcza się robot.
Rys. 2.2 Koło z oznaczonymi kolorem czerwonym miejscami osadzenia magnesów neodymowych
Przy doborze magnesów posłużono się aplikacją zamieszczoną na stronie internetowej firmy „K&J Magnetics” [3]. Umożliwia ona oszacowanie sił oddziaływujących na:
magnes umieszczony na stalowej płycie,
magnes pomiędzy dwoma stalowymi płytami,
dwa identyczne magnesy zestawione ze sobą (zgodnie i przeciwstawnie biegunowo). 11
Za pomocą tej aplikacji można również oszacować siłę pola magnetycznego w danym punkcie przestrzeni względem środka płaszczyzny magnesu oraz wpływ grubości płyty stalowej na siłę przyciągania magnesu. Materiał wykonania magnesu w dużej mierze wpływa na natężenie pola magnetycznego danego magnesu. Aby określić potrzebną siłę magnetyczną oszacowano masę wszystkich komponentów oraz korpusu robota. Najcięższymi elementami są silniki prądu stałego ważące po 215 g każdy. Uwzględniając wszystkie elementy konstrukcyjne masa robota wyniosła niecałe 1900 g. Poszczególne podzespoły i ich masy zostały umieszczone w tabeli 2.2. Tabela 2.2 Wstępne zestawienie masy poszczególnych elementów.
Element
Masa [g]
Silniki DC
430
Elementy elektroniczne
160
Magnesy neodymowe
970
Korpus urządzenia
330
Łącznie:
1890
Na tej podstawie założono masę maksymalną 2 kg, a następnie dobrano rodzaj i wielkość magnesów z nadmiarowym marginesem udźwigu. Wybrano magnesy neodymowe typu N38 o wymiarach 12 mm · 7 mm · 2 mm z kierunkiem magnesowania wzdłuż ostatniego wymiaru. Pojedyncza sztuka ma udźwig 1.133 kg przy bezpośrednim umieszczeniu na płycie stalowej. W celu wyeliminowania możliwości utraty przyczepności na suficie (przypadek o najmniejszej przyczepności) na korpusie urządzenia również mogą zostać umieszczone dodatkowe magnesy pomocnicze. W tym celu zaprojektowano specjalny panel z umieszczonymi otworami umożliwiającymi montaż dodatkowych 45 magnesów. Ich liczba oraz rozmieszczenie zostanie ustalone w fazie testów gotowej konstrukcji. Kolejnym krokiem było rozmieszczenie magnesów o określonych rozmiarach na obwodzie koła. W tym celu na podstawie schematu przedstawionego na rys. 2.3, opracowano wzór uzależniający liczbę magnesów od odstępów między nimi.
12
Rys. 2.3 Schemat obliczeniowy rozmieszczenia magnesów neodymowych, gdzie: R – promień koła, a – szerokość magnesu, d – odległość między magnesami
Kolorem zielonym oznaczono magnesy neodymowe. Cięciwy AB i CD reprezentują płaszczyznę zewnętrzną magnesów w przekroju bocznym. Ich długość oznaczono literą a i jest ona równa 7 mm. Literą d oznaczono odległość pomiędzy krawędziami płaszczyzn sąsiednich magnesów. Po połączeniu punktów tworzących odcinki a i d ze środkiem koła otrzymano trójkąty równoramienne współdzielące ze sobą jedno z ramion. Długość ramion R jest równe promieniowi koła, którego długość wynosi 50 mm. Kąty α i φ można wyznaczyć z relacji trygonometrycznych (2.1) i (2.2) [4]. 𝑑 ) 2𝑅 𝑎 𝛼 = 2 arcsin ( ) 2𝑅
𝜑 = 2 arcsin (
(2.1) (2.2)
Pomiędzy dwoma sąsiednimi magnesami zawsze jest zachowany dystans d, co oznacza, że na kole zawsze będą występować pary trójkątów o kątach 𝛼 i 𝜑. Wiedząc, że kąt wewnętrzny koła wynosi 360° = 2𝜋, będzie on równy całkowitej wielokrotności N sumy kątów 𝛼 i 𝜑 (2.3).
2𝜋 = 𝑁(𝛼 + 𝜑)
13
(2.3)
Wartość N odpowiada łącznej liczbie magnesów.
𝑁(𝑑) =
𝜋 𝑑 𝑎 𝑎𝑟𝑐𝑠𝑖𝑛 ( ) + arcsin ( ) 2𝑅 2𝑅
(2.4)
Na podstawie równania (2.4) sporządzono wykres i przedstawiono go na rys. 2.4. Wykorzystując poniższe dane przyjęto, że liczba magnesów na kole wynosi 36. Dystans d pomiędzy nimi jest równy 1.7 mm. Magnesy zostały rozłożone na obwodzie koła co 10°.
46
N - Liczba magnesów
44 42
40 38 36
34 32 30 0
0,2
0,4
0,6
0,8
1
1,2
1,4
1,6
1,8
2
2,2
2,4
2,6
2,8
3
d [mm] Rys. 2.4 Wyznaczenie ilości magnesów względem wartości d
Nastęnie należało określić siłę przyciągania magnesów. Na podstawie źródła [5] i [6] stwierdzono, że dokładne obliczenie sił oddziaływujących na magnesy jest trudne do realizacji ze względu za złożoną struturę dipolową sztabki magnesu. Brak danych o dokładnej strukturze domenowej umiemożliwia wykonanie stosownych obliczeń. Wymagałoby to przyjęcia uproszczeń wprowadzających błedy. Ze względu na czas i środki wymagane do przeprowadzenia takic obliczeń zdecydowano się oszacować siłę przyciągania pojedynczego koła do powierzchni szybu. W tym celu rozpatrzono dwa skrajne przypadki, o najlepszym i o najgorszym ustawieniu względem podłoża. Jako pierwszy rozpatrzono przypadek o najlepszj orientacji koła. Sytuację przedstawiono na rys. 2.5.
14
Rys. 2.5 Schemat obliczeniowy dla przypadku pierwszego
Kolorem czerwonym oznaczono magnesy neodymowe o szerokości a wynoszącej 7 mm. Kolorem niebieskim oznaczono środkowe powierzchni magnesów przecinajace się z osią koła. Promień R koła wynosi 50 mm. Długość H jest długością środkowej magnesu pomiędzy środkiem koła, a płaszczyzą zewnętrzną magnesu.Kąt α pomiędzy środkowymi magnesów jest równy 10°. Kolorem żółtym oznaczono przedłużenia środkowych magnesów i nazwano je w zależności od powiązanych z nimi magnesów 𝑥0 , 𝑥1 , 𝑥2 . W
celu
oszacowania
siły
przyciągania
magnesów
wykorzystano
długości
odcinków 𝑥0, 𝑥1 , 𝑥2 . Jako, że powierzchnia magnesów nie jest styczna z krzywizną koła, długość odcinka 𝑥𝑛 (2.14) składa się odległość 𝑘𝑛 krzywizny koła od powierzchni wzdłuż środkowej magnesu oraz dystans S pomiędzy jego powierzchnią i krzywizną koła. Położenie składowych długości 𝑥𝑛 przedstawiono na rys. 2.6.
𝑥𝑛 = 𝑆 + 𝑘𝑛
15
(2.5)
Rys. 2.6 Odległość powierzchni magnesu od podłoża
Aby wynaczyć wzór na długość odcinka 𝑥𝑛 wykorzystano trójkąt prostokątny złożony z
promienia
koła
ustawionego
prostopadle
do
podłoża,
środkowej
magnesu
wraz
z przedłużeniem, jako przeciwprostokątej trójkąta oraz części prostej reprezentujacej podłoże łączącej promień z końcem przedłużenia środkowej magnesu. Wzorem wyjściowym jest zależność trygonometryczna kąta pomiędzy promieniem koła oraz przeciwprostokątną trójkąta (2.6).
cos(𝑛 ∙ 𝛼) =
𝑅 𝐻 + 𝑥𝑛
(2.6)
gdzie: n – liczba porządkowa magnesu Po podstawieniu wzoru (2.5) za 𝑥𝑛 otrzymano poniższą zależność.
cos(𝑛 ∙ 𝛼) =
𝑅 𝐻 + 𝑆 + 𝑘𝑛
(2.7)
Na podstawie rys. 2.6 zastąpiono sumę H + S promieniem R (2.8). cos(𝑛 ∙ 𝛼) =
𝑅 𝑅 + 𝑘𝑛
(2.8)
Po kolejnych przekształceniach otrzymano wzór ogólny na długość odcinka 𝑘𝑛 (2.9). 𝑘𝑛 =
𝑅(1 − 𝑐𝑜𝑠(𝑛 ∙ 𝛼)) 𝑐𝑜𝑠(𝑛 ∙ 𝛼)
(2.9)
Na podstawie rys. 2.4 oraz rys. 2.6 wyznaczono wzór na długość odcinka S korzystając z twierdzenia Pitagorasa (2.10).
16
1 2 𝐻 2 + ( 𝑎) = 𝑅2 2
(2.10)
Po przekształceniu powyższego wzoru do postaci (2.11), podstawiono go do równania (2.12). W ten sposób otrzymano wzór na długość odcinka S (2.13).
1 𝐻 = √𝑅 2 − 𝑎 2 4
(2.11)
𝑅 =𝐻+𝑆
(2.12)
1 𝑆 = 𝑅 − √𝑅 2 − 𝑎 2 4
(2.13)
Ostatnim krokiem było podstawienie zależności (2.9) i (2.13) do wzoru (2.5). W ten sposób otrzymano wzór ogólny na odległość pomiędzy magnesem i płaszczyzną podłoża uzależnioną tylko od promienia koła, szerokości magnesów i kąta pomiędzy nimi.
𝑥𝑛 =
𝑅(1 − 𝑐𝑜𝑠(𝑛 ∙ 𝛼)) 1 + 𝑅 − √𝑅 2 − 𝑎 2 𝑐𝑜𝑠(𝑛 ∙ 𝛼) 4
(2.14)
Ze względu na kształt charakterystyki umieszczonej na rys. 2.7 założono, że na siłę przyciągania koła do powierzchni szybu maja wpływ tylko magnesy o odległości 𝑥𝑛 mniejszej niż 3 mm. Następnie odczytano siłę udźwigu magnesu oddalonego od powierzchni dla wyliczonych
Udźwig [kg]
wartości 𝑥0 , 𝑥1 , 𝑥2 .
1,20 1,10 1,00 0,90 0,80 0,70 0,60 0,50 0,40 0,30 0,20 0,10 0,00
Odległość [mm] Rys. 2.7 Wykres zależności masy, jaki może utrzymać magnes znajdujący się w danej odległości od stalowej płyty [3]
17
Aby oszacować rzeczywisty udźwig koła, udźwig magnesu odczytany z wykresu przedstawionego na rys. 2.7 należało uzależnić od wartości kąta nachylenia magnesów względem podłoża. Zauważono, że nawet małe odchylenie magnesu od płaszczyzny przyciąganej powoduje duży spadek jego siły przyciagania. Ze względu na to, że nie znaleziono literatury nawiązującej do wpływu orientacji magnesów stałych na ich siłę, postanowiono uwzględnić kąt nachylenia magnesu za pomocą równania (2.15). Funkcja ta pozwala na dowolne kszałtowanie krywej za pomocą parametru C. 𝛽
𝑚𝑛 = 𝑚(𝑥𝑛 ) ∙ (1 − (1 − 𝑒 − 𝐶 ))
(2.15)
gdzie: 𝑚𝑛 – oszacowany udźwig magnesu 𝑚(𝑥𝑛 ) – udźwig odczytany z rys. 2.7 na podstawie odległości 𝑥𝑛 Na podstawie doswiadczeń empirycznych przyjęto kształt krzywej funkcji przedstawionej na rys. 2.8 dla m(xn ) = 1 i β ∈ < 0; 1 >. Argumentem funkcji jest kąt nachylenia 𝛽 = 𝑛 ∙ 𝛼. Jej maksimum określa odczytany udźwig magnesu 𝑚(𝑥𝑛 ). Parametr C definiuje prędkość spadku wartości funkcji 𝑚𝑛 i jest on równy 0.03. Wartość tą zdefiniowano na podstawie doświadczeń empirycznych z robotem poruszajacym się po „suficie” szybu.
1 0,9
0,8 0,7
Udźwig [kg]
0,6 0,5 0,4 0,3 0,2 0,1 0 0
0,1
0,2
0,3
0,4
0,5
β [rad] Rys. 2.8 Przebieg wartości funkcji (2.15)
18
0,6
0,7
0,8
0,9
1
Wyniki kolejnych obliczeń zestawiono w tabeli 2.3. Oszacowany udźwig jenego koła dla najlepszego przypadku jest równy 1.02 kg. Całkowity udźwig robota wynosi 3.07 kg. Tabela 2.3 Wyniki szacowania udźwigu pojedynczego koła dla najlepszego przypadku
n
β [°]
𝑥𝑛 [mm]
𝑚(𝑥𝑛 ) [kg]
𝑚𝑛 (𝑥𝑛 ) [kg]
0
0
0.122
0.890
0.890
1
10
0.893
0.422
0.066
2
20
3.306
--
--
Schemat sytuacji dla której koło ma minimalną siłę przyciągania przedstawiono na rys. 2.9.
Rys. 2.9 Schemat obliczeniowy przypadku drugiego
Aktualnie rozpatrywany przypadek wykorzystuje te same założenia, co w sytuacji poprzedniej. Jako, że orientacja koła względem podłoża obróciła się o połowę kąta α, równanie (2.9) zmieniono tak, aby ten obrót uwzględnić (2.16). Odległość S (2.17) pomiędzy powierzchnią magnesów a powierzchnią koła nie zmieniła się.
19
𝛼 𝑅 (1 − 𝑐𝑜𝑠 ( + 𝑛 ∙ 𝛼)) 2 𝑘𝑛 = 𝛼 𝑐𝑜𝑠 ( + 𝑛 ∙ 𝛼) 2
(2.16)
, stąd:
𝑥𝑛 =
𝛼 𝑅 (1 − 𝑐𝑜𝑠 ( + 𝑛 ∙ 𝛼)) 1 2 + 𝑅 − √𝑅 2 − 𝑎 2 𝛼 4 𝑐𝑜𝑠 ( + 𝑛 ∙ 𝛼) 2
(2.17)
W celu uwzględnienia kąta nachylenia magnesów użyto poprzedniej zależności (2.15), 𝛼
dla 𝛽 = + 𝑛 ∙ 𝛼. W tabeli 2.4 zamieszczono wyniki kolejnych obliczeń. Oszacowany udźwig 2
jenego koła dla najgorszego przypadku jest równy 0.59 kg. Całkowity udźwig robota wynosi 1.76 kg. Tabela 2.4 Wyniki szacowania udźwigu pojedynczego koła dla najlepszego przypadku
β [°]
𝑥𝑛 [mm]
𝑚(𝑥𝑛 ) [kg]
𝑚𝑛 (𝑥𝑛 ) [kg]
0
5
0.310
0.708
0.281
1
15
1.886
0.213
0.013
2
25
5.267
--
--
n
Różnica w wartościach obu przypadków stanowi 43% maksymalnego udźwigu, co może spowodować oderwanie się robota od powierzchni ruchu („sufitu”). W rzeczywistości bardzo żadko będzie występowało ustawienie z przypadku pierwszego, bądź drugiego dla wszystkich trzech kół. Należy spodziewać się, że udźwig rzeczywisty podczas ruchu robota będzie miał wartość bliską wartości środkowej przedziału 〈1.76; 3.07〉 kg. Na podstawie powyższych oszacowań, łączna siła zamontowanych magnesów neodymowych jest niewystarczająca do spełnienia założonych funkcji mobilnych robota. Rozwiązanie problemu opisano w kolejnym rozdziale.
20
2.2
Projekt części mechanicznej
Do zaprojektowania i zamodelowania robota mobilnego wykorzystano oprogramowanie Inventor firmy Autodesk. Projekt urządzenia rozpoczęto od bryły korpusu. Wyznacznikami wymiarów były dwa silniki prądu stałego o długości 73 mm i średnicy 36,8 mm. Na podstawie rysunku technicznego silników
wykonano jego przybliżony model. Najważniejsze były jego maksymalne wymiary,
pozycjonowanie oraz średnica otworów mocujących i budowa wału. Pozostałe szczegóły pominięto ze względu na ich brak użyteczności. Model silnika znajduje się na rys. 2.10.
Rys. 2.10 Silnik prądu stałego - widok z przodu
Korpus wykonano w formie klatki, aby zredukować masę oraz zużycie materiału termolpastycznego. Głównym problemem napotkanym na tym etapie był maksymalny rozmiar obsługiwany przez drukarkę 3D. Z tego powodu bryła korpusu została podzielona na dwie osobne części. Przednią część korpusu przedstawiono na rys. 2.11. Posiada ona 8 bolców mocujących o przekroju kwadratu, o wymiarach 2 mm × 2 mm umieszczonych na tylnej płaszczyźnie.
Rys. 2.11 Korpus, część przednia – widok od przodu
21
Silniki prądu stałego są montowane do obręczy odpowiednimi 15 mm śrubami M3. W dolnej części elementu (rys 2.12) umieszczono płytę z miejscami na umieszczenie dodatkowych magnesów neodymowych zwięszających siłę przyciągania do powierzchni szybu. Razem można umieścić 45 dodatkowych magnesów neodmowych. Wykorzystując dane zawarte na rys. 2.7 stwierdzono, że przy dystansie wynoszącym 2 mm udźwig jednego magnesu wynosi 0.2 kg. Uwzględniając maksymalną liczbę magnesów możliwą do zamontowania, obliczono maksymalny dodatkowy udźwig wynoszący w przybliżeniu 9 kg.
Rys. 2.12 Korpus, część przednia - widok od dołu
Platforma ta umożliwia elastyczne dostosowanie dodatkowej siły przyciągania, ponieważ należy pamiętać o przybliżeniach, jakich użyto do oszacowania siły przyciągania magnesów. Tylna część korpusu jest znacznie bardziej skomplikowana. Również ta część korpusu jest wykonana na wzór klatki. Na przedniej płaszczyźnie obiektu umieszczono 8 otworów montażowych dla odpowiadających im bolców mocujących przednią część korpusu. Model przedstawiono na rys. 2.13.
Rys. 2.13 Tylna część korpusu - widok z przodu
22
Tylna część korpusu zawiera w sobie mechanizm obrotowy dla tylniego koła. Wymaga on możliwości swobodnego pełnego obrotu wokół osi normalnej do płaszczyzny podłoża. Został zaprojektowany z myślą o druku przestrzennym. W szynie znajdującej się w pierścieniu korpusu został osadzony mniejszy pierścień. Omawiany element przedstawiono na rys. 2.14. Spasowanie elementów jest luźne ze względu na poziom dokładności druku przestrzennego oraz ze względu na konieczność zapewnienia pierścieniowi możliwości swobodnego obrotu. Pierścień posiada dwa otwory w celu zamontowania wału tynego koła o średnicy 5 mm.
Rys. 2.14 Pierścień obrotowy
Cały mechanizm obrotu robota został zamknięty nakładką. Posiada ona 6 bolców o średnicy 3 mm i głębokości 2 mm. Będą one zapobiegały niepożądanemu otwarciu się mechanizmu. W nakładce znajduje się identyczna szyna jak w tylnej części korpusu i pełni tę samą funkcję. Obraz modelu umieszczono na rys. 2.15.
Rys. 2.15 Nakładka na mechanizm obrotu koła tylnego - widok od dołu
23
Wszystkie powyższe elementy są ściśle powiązane z budową koła. Przyjęto, że ma ono 100 mm średnicy. Wymiar ten wynika z wysokości kurpusu wynoszącej 78 mm. Szerokość wynosi 14 mm. Na obwodzie umieszczono 36 otworów przeznaczonych do umieszczenia magnesów neodymowych. Koło zostało zaprojektowane z myślą o bezpośrednim mocowaniu do wału silnika, stąd otwór centralny ma kształt odpowiadający kształtowi przekroju wału. Model przedstawiono na rys. 2.16.
Rys. 2.16 Model koła
Cała konstrukcja mieści się w prostopadłościanie o wymiarach: 269 mm × 100 mm × 202 mm. Obraz zmontowanego modelu robota zamieszczono na rys. 2.17.
Rys. 2.17 Model końcowy konstrukcji
24
2.3
Projekt i dobór układu elektrycznego i elektronicznego Pełen schemat układu zasilania i sterowania znajduje się w dodatku A do pracy
dyplomowej. Schemat blokowy układu sterowania został przedstawiony na rys 2.18
Rys. 2.18 Schemat blokowy układu sterowania
Głównym elementem sterującym jest mikrokomputer Raspberry Pi, który posiada wyjścia GPIO, służące do kontrolowania sterownikami silników oraz odczytywaniu sygnałów z enkoderów. Wyjścia te również służą, jako magistrale komunikacyjne protokołów:
I2C – dwukierunkowa, szeregowa magistrala do transferu danych,
UART – do asynchronicznego przekazywania i odbierania informacji poprzez port szeregowy,
SPI – szeregowy interfejs urządzeń peryferyjnych.
Sterowanie robotem odbywa się przy pomocy strony www wyświetlanej po stronie klienta. Serwerem lokalnym strony www jest mikrokomputer Raspberry Pi, którego zdjęcie wraz z rozpisanymi wyjściami i wejściami zostało umieszczone poniżej na rys. 2.19. Komputer ten wysyła sygnały bezpośrednio do pozostałych układów sterowania, tak jak to zostało przedstawione na schemacie w dodatku A.
25
Rys. 2.19 Mikrokomputer Raspberry Pi B z podpisanymi złączami [7]
Mikrokomputer Raspberry Pi został wybrany, jako główna jednostka sterowania ze względu na swoje możliwości. Posiada on procesor o częstotliwości taktowania 700 MHz wspomaganych przez 512 MB pamięci RAM. Równie istotną zaletą są niewielkie rozmiary tego układu. Wykorzystanymi w pracy robota złączami są:
złącze CSI złącze do dedykowanej kamery
złącze RJ45 do podłączenia się z komputerem sterującym
26 portów GPIO mogące pracować, jako wyjścia PWM o częstotliwości 100 Hz oraz pełniących role wyjść do protokołu komunikacyjnego takiego jak UART czy I 2C. Główny sposób sterowania robotem odbywa się przez operatora w sposób zdalny
z komputera podłączonego do mikrokomputera poprzez kabel ethernetowy. Aby umożliwić operatorowi diagnozę przewodów wentylacyjnych umieszczono w robocie kamerę dedykowaną do Raspberry Pi przedstawionej na rys. 2.20. Do podłączenia kamery do Raspberry Pi wykorzystywane jest złącze CSI. Specyfikacje kamery zostały przedstawione poniżej [8]:
matryca: OV5647,
rozdzielczość: 5 MPix,
maksymalna prędkość: 90 fps,
format: 1/2,7''.
26
Rys. 2.20 Kamera do Raspberry Pi [8]
Podczas projektowania pojazdu zdecydowano się na użycie silników firmy Pololulu z uwagi na ich cenę oraz dostępność. Głównym czynnikiem decydującym o doborze silnika był moment siły napędowej potrzebnej do pokonania oporów ruchu. Do obliczeń potrzebnego momentu napędowego
silnika
posłużono
się
podstawowymi
wzorami
fizycznymi.
Obliczenia
przeprowadzono według zasady nadmiarowej i według następujących założeń:
masa pojazdu na podstawie tabeli 2.2 𝑚1 = 2 kg,
współczynnik tarcia pomiędzy metalową blachą, a kołem z tworzywa sztucznego w najgorszym przypadku tarcia statycznego odczytano z tabeli zawartej w [9], który jest równa 𝑓𝑠 = 0.4,
promień koła 𝑟 = 0.05 m,
masa udźwigu magnesów w kołach pojazdu na podstawie tabeli 2.4 𝑚2 = 2.27 kg.
27
Kierunek rozpoczęcia jazdy
Ft
Ft
Ft
Rys. 2.21 Główne siły oporu działające na robota: Ft – siła tarcia o podłoże
Rys. 2.22 Główne siły działające na koło z silnikiem: ω – prędkość kątowa, Mn – moment siły napędowej, Mo –moment siły oporowej
28
Aby obliczyć moment siły napędowej posłużono się równaniem (2.18), które pokazuje niezbędną zależność pomiędzy siłami działającymi na układ. Zależność pomiędzy momentem siły oporowej, a momentem siły napędowej.
⃗⃗⃗⃗⃗ 𝑀𝑛 > ⃗⃗⃗⃗⃗ 𝑀𝑜
(2.18)
Gdzie: ⃗⃗⃗⃗⃗ 𝑀𝑛 – Wektor momentu siły napędowej [Nm], ⃗⃗⃗⃗⃗ 𝑀𝑜 – Wektor momentu siły oporowej [Nm], Następnie
skorzystano
z
definicji
momentu
siły
napędowej.
Pokazano
to
w równaniu (2.19).
⃗⃗⃗⃗⃗ 𝑀𝑜 = 𝐹 × 𝑟
(2.19)
Gdzie: ⃗⃗⃗ 𝐹 – Wektor siły wypadkowej [N]. 𝑟⃗⃗ – Wektor przesunięcia między środkiem okręgu, a punktem przyłożenia siły wypadkowej [m]. Następnie wykorzystano równanie na siłę tarcia (2.20), które zostało przyjęte dla najgorszego przypadku, gdy pojazd startuje z dolnej części przewodu. Rozważano ten przypadek z dwóch powodów. Po pierwsze rozpoczęcie ruchu wymaga użycia większej siły z uwagi na to, że współczynnik tarcia statycznego jest wyższy od współczynnika tarcia statycznego. Drugim powodem jest to, że w takiej pozycji robot ma największą masę dociskającą go do podłoża.
⃗⃗⃗ 𝐹𝑡 = (𝑚1 + 𝑚2 ) ∙ 𝑔 ⃗ ∙ 𝑓s
(2.20)
Gdzie: ⃗⃗ ∙ – Wektor przyciągania ziemskiego. 𝒈
W równaniu (2.2) podstawiono do równania (2.19) wszystkie zależności od (2.18)(2.19) do Error! Reference source not found..
⃗⃗⃗⃗⃗𝑜 = (𝑚1 + 𝑚2) ∙ 𝑓s ∙ 𝑔 × 𝑟 𝑀
(2.22)
Następnie policzono wartość momentu oporowego ⃗⃗⃗⃗⃗ 𝑀𝑜 = (2 + 2.27) ∙ 9.81 ∙ 0.4 ∙ 0.05 = 0.877 [𝑁𝑚]
(2.23)
Na podstawie przedstawionego wyniku równania (2.23) dobrano dwa silniki firmy Pololulu, każdy na jedno koło napędowe z przekładnią 37Dx73L 131:1 12V 80RPM z enkoderem 29
CPR 64.Dobrane silniki są dużo mocniejsze ze względu na fakt, że przyczepność magnesów była bardzo trudna do oszacowania, przez co obarczona dużym błędem. Silniki zastosowane w robocie posiadały wspólne wyprowadzenie na sześć pinów, z czego dwa służą do zasilania cewek silnika powodując ruch obrotowy wału silnika. Cztery pozostałe służą do zasilania, jak i odczytywania danych z enkoderów magnetycznych [10]. Silnik przedstawiono na rys. 2.23.
Rys. 2.23 Silnik wraz z enkoderem
Każdy silnik posiada sześć wyprowadzeń::
czerwony - zasilania silnika
czarny - zasilanie silnika
zielony - potencjał masy enkodera
niebieski - zasilanie enkodera (3,5 V - 20 V)
żółty - wyjście A enkodera
biały - wyjście B enkodera
Enkoder zbudowany jest z układu elektronicznego, magnesu stałego oraz z tarczy kodowej. Układ elektroniczny znajduje się za tarczą kodową zbudowaną z izolatora pola magnetycznego. W tarczy kodowej znajdują się otwory umieszczone w sposób pokazany na rys. 2.24 a). W momencie, kiedy jeden z dwóch czujników pola magnetycznego znajdzie się za szczeliną w tarczy kodowej, układ elektroniczny wytwarza sygnał elektryczny na odpowiednim z przewodów. W enkoderze zamontowano dwa czujniki pola magnetycznego. Rozmieszczenie czujników pokazano na rys. 2.24 b). Czujniki te odsunięte są od siebie o 1/4 szerokości szczeliny by można było określić kierunek obrotu wału silnika. Sposób określenia kierunku obrotu polega na stwierdzeniu, na którym z czujników wcześniej odczytano stan wysoki, jeżeli był to czujnik znajdujący się bardziej po prawej to ruch odbywa się w prawo, jeżeli na lewym to ruch odbywa się w lewo można to zaobserwować na rys. 2.25.
30
Rys. 2.24 Budowa poszczególnych komponętów enkodera. a) tarcza kodowa enkodera b) ułożenie czujników pola magnetycznego w enkoderze[11]
Rys. 2.25 Sposoby zaliczeń impulsów na enkoderze magnetyczny[12]
Jak wynika z rys. 2.25, impulsy zliczane musiałyby być na zboczu narastającym, jak i opadającym w obydwu kanałach. Jednak przy programowaniu robota wykorzystano wyłącznie zbocze narastające w kanale A enkodera zmniejszając tym jego dokładność. Zdecydowano się skorzystać z tej metody, aby zmniejszyć obciążenie procesora. Generowanie impulsu na każdym zboczu tworzyłoby, co sekundę ponad 11 tys. przerwań przez każdy silnik, co znacznie obciążyłoby procesor. Z uwagi na różnice pomiędzy napięciem odczytu Raspberry Pi, a napięciem, jakie generuje enkoder zasilany z przetwornika napięć, zastosowano elektroniczne konwertery napięć. Zadaniem konwertera jest przetwarzanie stanu wysoki o napięciu 5 V z enkodera na logiczny 31
stan wysoki Raspberry Pi 3.3 V. Uzyskano ten efekt poprzez tranzystor bipolarny PNP, który zaznaczono na rys. 2.26. Podobny efekt można byłoby uzyskać stosując dzielniki rezystancyjne, lecz zdecydowano się na konwertery z uwagi na ich mniejszy rozmiar oraz mniejszą liczbę potrzebnych połączeń.
Rys. 2.26 Zdjęcie konwertera napięć z zaznaczonymi sterownikami napięcia[13]
Kolejnym elementem niezbędnym do sterowania robotem są sterowniki silników DC oparte na układzie scalonym L298N. Każdy układ służy do sterowania dwoma silnikami poprzez dwa kanały. Maksymalny prąd to 2.5 A przy zasilaniu 12 V oraz pracy poniżej 80% czasu cyklu PWM. Czas obciążania takim prądem nie powinien przekraczać 10ms [14]. Silnika robota wykorzystują prąd nawet 5 A, aby zapewnić taki prąd z mostkowaną ze sobą oba kanały jednego sterownika. Mostek ten jest wyposażony we własny stabilizator napięcia dla układu logicznego. Stabilizator aktywowany jest poprzez zworkę zaznaczoną, jako 5V enable. Wygląd modułu z podpisanymi złączami został przedstawiony na rys. 2.27. Schemat układu logicznego na rys. 2.28.
32
Rys. 2.27 Wygląd i rozmieszczenie złączy w mostku H [15]
Rys. 2.28 Diagram przedstawiający budowę układu cyfrowego mostka H w układzie L298N [14]
Mostek ten sterowany jest przy pomocy sześciu wejść: In1, In2, In3, In4, EnA, EnB. Aby z mostkować oba kanały sterownika trzeba podłączyć ze sobą In1 - In4, In2 - In4, EnA - EnB OUT1 - OUT3 a OUT2 - OUT4. Kanały z początkiem oznaczenia In sterują kierunkiem obrotu silnika. Wejścia enable łączą się z wejściami In za pomocą bramek logicznych AND wyprowadzających na wyjście stan wysoki tylko w monecie dwóch stanów wysokich na wejście. Następnie bramki AND sterują otwarciem tranzystora podłączonego do 12 V pomiędzy emiterami, a kolektorem.
33
Do prawidłowej pracy układu elektronicznego niezbędne było zapewnienie trzech różnych rodzajów napięć:
12 V(silniki, pasek diod LED),
5 V (Raspberry Pi, enkodery, mostki H),
3.3 V (Raspberry Pi, konwerter logiczny). Schematyczny układ zasilania został przedstawiony na rys. 2.29
Rys. 2.29 Schemat zasilania robota
Głównym elementem zasilającym jest stabilizowany, impulsowy, zasilacz firmy Kemot T-180W-12V o parametrach U = 12 V, I = 15 A, który został przedstawiony na rys. 2.31 [16].
34
Rys. 2.30 Zasilacz impulsowy firmy Kemot
Do zasilania elementów o Uzn = 5 V zastosowano przetwornik DC/DC obniżający napięcie pracujący na układzie LM2596, którego zdjęcie przedstawiono poniżej na rys. 2.31.
Rys. 2.31 Przetwornik dc/dc obniżający napięcie [17]
Zasilanie mikrokomputera Raspberry Pi odbywa się za pomocą 2 wyjść GPIO oznaczonych na schemacie podłączeń całego układu w załączniku. Do zasilania urządzeń o napięciu znamionowym 3.3 V wykorzystano wbudowany stabilizator w mikrokomputer.
2.4 2.4.1
Opracowanie części programistycznej Konfiguracja Raspberry Pi Celem części programowej robota było umożliwienie sterowania robotem operatorowi za
pomocą strony www. W tym celu należało opracować stronę www oraz uruchomić ją na serwerze znajdującym się na mikrokomputerze Raspberry Pi. Z uwagi na fakt, że Raspberry Pi jest mikrokomputerem, a nie mikrokontrolerem niezbędne jest zainstalowanie na nim systemu operacyjnego. Najbardziej wspomaganym 35
i najprostszym systemem operacyjnym jest system operacyjny Raspbian, będący modyfikacją systemu Debian w wersji Jessie. Debian jest darmową dystrybucją systemu na jądrze Linuxa. Konfigurację systemu operacyjnego należy zacząć od zainstalowania systemu operacyjnego na karcie SD podłączanej do komputera. W tym celu należy postępować zgodnie z instrukcją zamieszczoną na stronie producenta [18]. Kroki instalacji przedstawiono poniżej:
pobierz obraz płyty ze strony organizacji odpowiedzialnej za niego oraz program Win32DiskImager,
wypakuj pliki z archiwum ściągniętego, jako Win32DiskImager,
włóż czystą sformatowaną kartę SD do komputera,
uruchom program Win32DiskImager, jako administrator ,
wybierz odpowiednie ścieżkę źródłową jak i docelową i naciśnij przycisk „Write”,
wyciągnij gotową kartę z systemem operacyjnym. Następnie podłączono do komputera kartę SD, monitor poprzez złącze HDMI (High
Definition Multimedia Interface), kartę Wi-Fi oraz klawiaturę, myszkę komputerową poprzez koncentrator
USB,
kabel
ethernetowy
do
podłączenia
się
bezpośrednio
z komputerem [19].Domyślna nazwa użytkownika podczas pierwszego logowania to pi a hasło raspberry. Po zalogowaniu się można nadać urządzeniu statyczny adres IP podłączając się poprzez moduł Wi-Fi oraz postępując zgodnie z instrukcją na stronie [19]. Za pomocą funkcji „ipconfig” wpisanej do konsoli można sprawdzić adres IP komputera. Kolejnym sposobem na sprawdzenie adresu IP jest w graficznym interfejsie użytkownika uruchamianego poprzez komendę „startx”. Następnie najechanie kursorem myszy na symbol dwóch monitorów znajdujący się w górnym prawym rogu. Odczytany adres pokazuję się jak na rys. 2.32 ukośnik w adresie IP oznacza że dwie ostatnie cyfry można stosować zamiennie.
36
Rys. 2.32 Zdjęcie odczytanego adresu IP Raspberry PI
Mimo informowania, że połączenie to jest niezidentyfikowane w systemie Windows, komputery powinny łączyć się ze sobą. Sposobem, aby sprawdzić poprawność połączenia jest wpisanie polecenia „ping adres_ip” w terminal. Po podłączeniu Raspberry do Internetu można zrezygnować z podłączania do niej myszy klawiatury oraz monitora. Wystarczy już w tym momencie podłączony komputer w tej samej sieci lokalnej oraz program „Putty”, który emuluje terminal na drugim komputerze poprzez protokół SSH [15]. Drugim niezbędnym programem, którego użyto to „filzilla”. Służy on do odczytu i zapisu plików zdalnie z drugiego komputera. Kolejnym krokiem podczas konfiguracji mikrokomputera jest instalacja biblioteki o4vl odpowiedzialnej za strumieniowanie obrazu z kamery do sieci lokalnej. Jakość obrazu była dobra, a latencja poniżej 0,5 s co zostało przedstawione na filmie w załączniku. Procedura instalacji tego oprogramowania została według poniższych kroków [21]:
wpisano w terminalu komendę „sudo
raspi-config”.
Po wyświetleniu się okna
przedstawionego na rys. 2.33 wybrano z listy opcję nr. 1: „Expend file system”. Funkcja ta powiększa ilość maksymalnego miejsca zajmowanego przez system operacyjny na karcie SD. Następnie włączono obsługę kamery poprzez wybranie opcji „enable camera” .
37
Rys. 2.33 Okno pojawiające się po wpisaniu komendy „sudo raspi-config”
później uruchomiono ponownie urządzenie poprzez wpisanie „sudo reboot”.
następnie wpisano następującą funkcję odpowiedzialną za pobranie programu:
wget http://www.linux-projects.org/listing/uv4l_repo/lrkey.asc && sudo apt key add ./lrkey.asc
Po czym dodano do pliku otwartego za pomocą komendy:
sudo nano /etc/apt/sources.list następującą linijkę: deb http://www.linux-projects.org/listing/uv4l_repo/raspbian/ jessie main
Następnie wpisano następujące komendy:
sudo apt-get update sudo apt-get upgrade sudo apt-get install uv4l uv4l-raspicam sudo apt-get install uv4l-raspicam-extras sudo apt-get install uv4l-server sudo apt-get install uv4l-uvc sudo apt-get install uv4l-xscreen sudo apt-get install uv4l-mjpegstream sudo reboot Teraz pojawiła się możliwość odtworzenia strumienia obrazu na komputerze nadrzędnym po wpisaniu komendy: sudo uv4l -nopreview --auto-video_nr --driver raspicam --encoding mjpeg -width 640 --height 480 --framerate 20 --server-option '--port=8080' --serveroption '--max-queued-connections=30' I otworzeniu w przeglądarce internetowej adresu „http://169.254.40.11:8080”. 38
Po wejściu na stronę można zaobserwować kilka przycisków. Przedstawiono je na rys. 2.34.
Rys. 2.34 Strona główna programu uv4l
Po wejściu na podstronę: „http://169.254.40.11/streaming” uzyskano dostęp zdalny do kamery. Kolejnym krokiem była instalacja biblioteki „wiringpi” języka C++ służącej do obsługi GPIO. Biblioteka ta jest dobrze udokumentowana na stronie producenta i postępując zgodnie z instrukcją zamieszczoną na tej stronie zainstalowano ją używając następujących komend [21]:
sudo apt-get purge wiringpi sudo apt-get install git-core sudo apt-get update sudo apt-get upgrade cd git clone git://git.drogon.net/wiringPi cd ~/wiringPi git pull origin cd ~/wiringPi ./build
39
Po zainstalowaniu pozostałych programów i bibliotek należało jeszcze zainstalować serwer obsługujący język skryptowy PHP. Wystarczy do tego jedna komenda [22]. sudo apt-get install apache2 php5
Po
zakończonej
instalacji,
otworzono
stronę
o
adresie:
„http://169.254.40.11”
zamieszczoną na rys. 2.35.
Rys. 2.35 Domyślna strona serwera Apache2,
Następnym krokiem była konfiguracja serwera www poprzez komende :sudo nano /etc/apache2/apache2.conf. W pliku tym należało znaleźć linię z napisem i zamienić ją na linię . Zmiana tej linii zmieniła miejsce znajdowania się plików ze stroną www.
40
2.4.2
Realizacja strony www
Stronę, którą utworzono na potrzeby tej pracy inżynierskiej można zaobserwować na rysunku 2.36.
Commented [DJ1]: Wstawie później zdjęcie z filmu Commented [S2R1]:
Rys. 2.36 Wygląd gotowej strony www
Do wykonania tej strony posłużono się językami:
HTML (ang. HyperText Markup Language) język znaczników zawierający główną cześć strony internetowej
CSS, (ang. Cascading Style Sheets,) język służący do opisu wizualnych aspektów strony
JavaScript. język skryptowy przeznaczony do programowania reakcji strony na zadania użytkownika
PHP interpretowany skryptowy język programowania
C++ język ten służacy do sterowania wyjściami GPIO Poprzez użycie technologii AJAX (ang. Asynchronous JavaScript and XML) uzyskano
możliwość ciągłego odświeżania danych bez konieczności odświeżania całej strony. Wykorzystano tę technikę z uwagi na generowanie mniejszego ruchu sieciowego, co jest konieczne, aby uzyskiwać sprawną reakcje na polecenia operatora, jak i wiarygodny rzeczywisty obraz z kamery. Strona ta została podzielona na 3 klasyczne struktury: nagłówek, część główną oraz stopkę. Stopka jak i nagłówek są częścią statyczną tej strony i informują o autorach, jak i celu strony. Głównym elementem znajdującym się po lewej jest strumień obrazu z mikrokomputer, który składa się z wyłącznie z przekierowania ze strony programu uv4l przy pomocy funkcji: .
41
Kolejnym elementem znajdującym się po prawej stronie jest suwak służący do nastawienia dopuszczalnej prędkości w zakresie od 0 do 80%. Maksymalne ograniczenie wynika z faktu, iż mostki H mogą wyłącznie przez taki czas przekroczyć prąd 4 A. Wartość ta może być wprowadzana na dwa różne sposoby: poprzez suwak lub wpisani wartości w pole tekstowe wartości. Po każdej zmianie są do siebie wpisywane. Do uzyskania takiego efektu użyto skryptu napisanego w języku javascrypt znajdującego się poniże [23]: function przenies(slider, textbox) { var x = document.getElementById(textbox); var y = document.getElementById(slider); x.value = y.value; } Skrypt ten również sprawdza poprawność wpisanych danych przez użytkownika, jeżeli wartość ta nie będzie możliwa do wprowadzenia na suwaku wartość wróci do poprzedniej. Kolejnym elementem są przyciski sterowania robotem pozwalające na ruch z prędkością zadaną w punkcie wyżej. Po wciśnięciu przycisku i nie zjechaniu z niego kursorem myszy, robot będzie wykonywał ciągły ruch do przodu lub tyłu. Przyciski lewo i prawo działają na jednokrotne wciśnięcie, wykonując jednorazowo obrót o 90° w lewo lub w prawo. Informacje wysyłane są za pomocą funkcji języka javascript przedstawionej poniżej [23]:
function send (url){ var xhttp=new XMLHttpRequest(); var y= document.getElementById(velocity); xhttp.open(”post”,”startc1.php” ,true); xhttp.send('url=' + url + '&PWM=' + y.value”); } Funkcja ta tworzy paczkę danych do wysłania z zmiennymi url, velocity. Url jest zmienną ścieżki pliku wykonywalnego powstałego na podstawie języka c++. Velocity jest to prędkość ustawiona za pomocą suwaka. Następnie tworzy połączenie HTTP miedzy przeglądarką internetową a serwerem poprzez strukturę XMLHttpRequest(). Pierwszym parametrem funkcji open jest metoda wysyłania zapytań. Dwie najbardziej typowe metody wysłania danych to post lub get. Zdecydowano się użyć metody post z uwagi na jej większe bezpieczeństwo. Metoda get wysyła odpowiednie informacje razem z adresem url, przez co łatwo nimi manipulować, a przy wysyłaniu metodą post dane te są bezpieczniejsze. Drugim parametrem funkcji XMLHttpRequest() jest informacja o otwieranym adresie programu, który ma się wykonać. Trzecią zmienną jest informacja o trybie przysyłania danych synchronicznie lub asynchronicznie. Kolejna linia kodu wysyła zapytania z odpowiednimi danymi wejściowymi.
42
Program startc1.php posiada bardzo prostą budowę służącą wyłącznie uruchomienia pliku w odpowiedni sposób. Plik ten przedstawiono poniżej [24].
$handle = popen($url." ".$PWM, 'r'); pclose($handle); ?> Program ten pobiera dane mu nadesłane, po czym uruchamia program w c poprzez polecenie popen. Następny moduł stronny internetowej znajdujące się w tej sekcji są to dane odczytane z plików tekstowych. Odpowiedzialne za sterowani wyjściami GPIO mikrokomputer jest biblioteka wcześniej zainstalowana w tym celu. Każdy program napisany w tej bibliotece musi posiadać inicjalizację wejść oraz wyjść. Przykładowa inicjalizacja wejść została przedstawiona poniżej [25]: wiringPiSetup () pinMode(PWMR, OUTPUT); softPwmCreate(PWMR,0,100); Dopiero po wykonaniu funkcji wiringPiSetup można sterować wyjściami. Funkcja pinMode() jako pierwszy parametr przyjmuje numer wyjścia GPIO. Kolejny parametr dotyczy informacji o trybie danego wyjścia. Następną funkcją jest softPwmCreate(), która ponownie, jako pierwszy parametr przyjmuje informacje o numerze wyjścia. Następne parametry to zakres wypełnienia funkcji PWM. Ważnym elementem programów języka c++ jest komunikacja z pozostałymi aplikacjami stronny www. W tym celu posłużono się funkcją main przyjmującą na wejście odpowiednie parametry. Poniżej przedstawiono fragment programu umożliwiający ruch: int main(int argc, char** argv){ int PWM = (int)*argv[1]; Program ten przyjmowane parametry wejściowe podczas uruchamiania zapisuje w wskaźniku wskaźnika zmiennej znakowej char, oznacza to zapisuje wskaźnik do początku łańcucha znaków. Po czym zapisuje wartość z tego łańcucha jako zmienną całkowitą. Do kompilacji programów napisanych w języku C++ posłużono się wbudowanym w system Raspbian kompilatorem GCC (GNU Compiler Collection) używając komendy:
g++ plik.cpp -o plik.cgi–lwiring Pi
43
3 3.1
REALIZACJA PRAKTYCZNA. Realizacja części mechanicznej W celu wykonania elementów konstrukcyjnych przedstawionych w rozdziale 2 użyto
materiału Z-ABS wyprodukowanego specjalnie do wybranej drukarki przestrzennej Zotrax M200. Jest to wszechstronny materiał o średnich parametrach wytrzymałościowych. Jego główną zaletą jest stosunek wytrzymałości co ceny. W celu wydrukowania elementów zaprojektowanych w programie Autodeks Inventor należało przekonwertować modele z formatu domyślnego wyżej wymienionego programu na uniwersalny format STL. Format STL (eng. ”STereoLitography”) [26] jest domyślnym formatem stosowanym w stereolitografii. Modele zapisane w tym formacie są przedstawione za pomocą trójkątów. Każdy z tych trójkątów istnieje w pliku jako jeden obiekt ze zdefiniowanymi współrzędnymi wierzchołków w przestrzeni 3D. Różnicę pomiędzy projektem CAD, a projektem STL przedstawiono na rys. 3.1.
Rys. 3.1 Różnica pomiędzy formatem CAD i STL [26]
Środowisko Autodesk Inventor posiada wbudowany moduł przeznaczony do obsługi wybranych drukarek przestrzennych. Niestety moduł ten nie obsługuje drukarki Zotrax M200. Jednak za jego pomocą dokonano konwersji plików CAD na pliki w formacie STL. Wykonane elementy przedstawiono na rys. 4.2. Dokładność wykonania wynosiła 0.1 mm, natomiast wypełnienie geometrii ustawiono na 80%. Przy większym współczynniku wypenienia istnieje ryzyko zniekształcenia brył podczas produkcji. Z drugiej strony zbyt mały współczynnik wypełnienia skutkowałby osłabieniem konstrukcji.
44
Rys. 3.2 Zestawienie wykonanych elementów
Montaż robota rozpoczęto od zamontowania magnesów neodymowych we wnękach umieszczonych na obwodzie koła. W celu ścisłego dopasowania wnęki należało je doszlifować ze względu na poziom dokładności wydruku. Rozwiązaniem zabezpieczającym magnesy przed niepożądanym ich wypadnięciem jest pas taśmy gumowej naciągniętej na obwód koła. W przypadku montażu koła tylnego mechanizmu obrotowego w otwór środkowy wsunięto wał obrotowy. Całość jest widoczna na rys. 3.3.
Rys. 3.3 Zmontowane koło tylnego mechanizmu obrotowego
45
Tylny mechanizm obrotowy składa się dodatkowo z pierścienia łożyska, łoża mechanizmu wbudowanego w tylną część korpusu oraz nakładki na komorę łożyska. Na kolejnych rysunkach (rys. 3.4, rys. 3.5, rys. 3.6) przedstawiono proces montażu tylnej części korpusu. Gotowe koło obrotowe wraz z zamontowanym wałem należało umieścić w pierścieniu łożyska ślizgowego. W tym celu dopasowano średnicę otworów w pierścieniu do średnicy wału tak, aby wał mógł się swobodnie obracać. Otwory ostrożnie rozwiercono i wsunięto wał w pierścień. Ostatnim krokiem było rozwiercenie i dopasowanie otworów w tylnej części korpusu do bolców mocujących nakładkę całego mechanizmu.
Rys. 3.4 Tylna część korpusu
Rys. 3.5 Tylni mechanizm obrotowy bez obudowy(magnesy jeszcze nie są zamontowane)
46
W celu zapewnienia jak najlepszej sprawności mechanizmu, w rynnę łożyska wprowadzono olej silikonowy. Jest to olej przeznaczony do smarowania łożysk i przekładni z tworzyw sztucznych. Nie wchodzi on w reakcję z tworzywami sztucznymi. Cały mechanizm zaprojektowano z myślą o możliwości konserwacji mechanizmu. Obudowa jest montowana ściskowo i dzięki temu nie może się odłączyć bez podważenia elementu. Pozwala to na jej zdjęcie i nasmarowanie mechanizmu obrotowego.
Rys. 3.6 Zmontowana tylna część korpusu
Do przedniej części obudowy (rys. 3.8) należało przykręcić dwa silniki prądu stałego. Do montażu posłużono się 10 mm ocynkowanymi śrubami o średnicy M3. Przy skręcaniu elementów należało zachować szczególną ostrożność ze względu na możliwość zespawania się gwintu śruby z gwintem otworu montażowego silnika.
Rys. 3.7 Przednia część korpusu
47
Na rysunku rys. 3.8 przedstawiono gotowy szkielet robota. Z przodu urządzenia znajdują się dwa silniki napędowe. Za nimi pozostawiono pustą przestrzeń w celu zamontowania układu elektrycznego, który jest tematem rozdziału 3.2.
Rys. 3.8 Szkielet robota.
48
3.2
Realizacja części elektronicznej
Realizacja części elektronicznej rozpoczęła się od przylutowania płytki z odpowiednim ułożeniem oraz połączeniem niej. Płytka ta miała za zadanie łączyć wszystkie komponenty ze sobą przy pomocy listew kołkowych przylutowanych do płytki uniwersalnej przedstawionej na rys. 3.9. Schemat płytki użytej w robocie przedstawione na rys. 3.10.
Rys. 3.9 Płytka uniwersalna
Rys. 3.10 Schemat lutowania płytki
Płytka ta posiada wiele złączy kołkowych połączonych ze sobą w celu z mostkowania tych sygnałów i ułatwienia podłączenia do nich przewodów. Płytka ta została podzielona na oddzielne sekcje łącznie z sekcją zasilania 5V tak jak to pokazano na rys. 3.10.
49
Wszystkie elementy, poza zasilaczem, które zostały wykorzystane w projekcie są przedstawione na rysunku 3.11. Do połączenia wszystkich elementów zostały użyte przewody z wtyczką kołkową żeńsko-żeńską. Dodatkowym przyłączem wykorzystanym w robocie było przyłącze śrubowe. Użyto go w celu oddzielenia układu zasilania robota od przewodu zasilającego, by umożliwić jego prostą wymianę w razie potrzeby zwiększenia jego długości. Gotowe zdjęcie robota ze wszystkimi połączeniami oraz układami elektronicznymi przedstawiono na rys. 3.12.
Rys. 3.11 Zdjęcie wszystkich elementów elektronicznych użytych w projekcie
Rys. 3.12 Zdjęcie gotowego robota
50
4
WERYFIKACJA Zmontowaną konstrukcję poddano testom mającym zweryfikować jej funkcjonalność.
Jako pierwszą sprawdzono mobilność robota. Używa on dwóch silników prądu stałego, jako napędu. W celu ich sprawdzenia połączono się ze sterownikiem urządzenia i za pomocą konsoli podano sygnał sterujący na wejścia silników. Zgodnie z oczekiwaniami silniki zareagowały w zadany sposób, co zostało potwierdzone na filmie „TEST1”. Test ten potwierdził również poprawność połączeń elektrycznych robota, jak i podstawowe oprogramowanie sterujące. Następnie podłączono układ pomiarowy robota. Składający się z enkoderów magnetycznych wbudowanych w silnik oraz kamery. Podczas tej części testu układu sterowania doszło do uszkodzenia stabilizatora napięć. Sprawdzając poszczególne elementy podłączane podczas tego testu stwierdzono, że uszkodzenie powstało w wyniku poboru zbyt dużej ilości energii przez enkodery. Powód takiego wyniku jest nieznany. Możliwe jest uszkodzenie mechaniczne enkodera. Kolejnym test przeprowadzony w ramach sprawdzenia systemu sterowania pojazdu polegał na weryfikacji strony www z interfejsem użytkownika. Test ten nie udał się z nieznanych powodów. Pomimo wysyłania prawidłowych danych do testowanych wcześniej programów mikrokomputer nie podawał na wyjścia GPIO odpowiednich sygnałów napięciowych. Błąd ten wyniknął z powodu nieprawidłowego działania funkcji popen w języku php lub jej nieprawidłowego użycia powstałego na podstawie źródła [24]. Z uwagi na złe działanie strony www zdecydowano się na używanie poleceń z konsoli, których działanie potwierdzono w poprzednich testach. Według kolejnych założeń robot powinien być w stanie utrzymać się na suficie szybu wentylacyjnego i poruszać się po jego płaszczyźnie. W tym celu skonstruowano pętlę ze stalowej blachy o grubości 1 mm, aby sprawdzić, czy magnesy utrzymają całą konstrukcję. W trakcie testów robot stracił przyczepności poprzez ugięcie się materiału. Świadczy to o tym, że oszacowanie w rozdziale 2 udźwigu robota jest zbliżone do jego rzeczywistej wartości. Problem ten rozwiązano w następujący sposób: Po pierwsze – zamontowano 9 dodatkowych magnesów na dolnym panelu robota (opisanym w rozdziale 2.2 pracy) widocznych na rys. 4.1. Magnesy rozmieszczono w taki sposób, aby równomiernie rozłożyć ich siłę. Już 3 sztuki powstrzymały odpadanie robota z „sufitu” Uwzględniając oszacowania przedstawione w rozdziale 2.1 udźwig robota dla przypadku o najmniejszej sile przyczepności zwiększył się do 2.36 kg. Liczbę magnesów zwiększono do 9, aby zapewnić dodatkowy margines siły przyczepności. Łącznie dodane magnesy zapewniły 1.8 kg dodatkowego udźwigu robota. Na koniec zabezpieczono je przed wypadnięciem z panelu za pomocą taśmy - tak jak w przypadku kół.
51
Rys. 4.1 Widok dolnego panelu robota
Dodatkowo usztywniono konstrukcję testową. Polegało to na dodaniu drewnianych wzmocnień niwelujących wpływ wagi robota na kształt blachy. Wzmocnienia wykonano w taki sposób, aby nie ograniczyć przestrzeni manewrowej robota. Gotowe rozwiązanie przedstawiono na rys. 4.2.
Rys. 4.2 Konstrukcja testowa – cylinder z blachy stalowej
Test powtórzono, a jego wyniki zamieszczono na filmie „TEST1”. Zadaniem robota był przejazd po wewnętrznej płaszczyźnie blaszanego cylindra (rys. 4.2). Miał on na celu
52
zasymulowanie sytuacji, w której robot przemieszcza się po płaszczyźnie nachylonej pod różnymi kątami. Podczas przebiegu testu nie zauważono żadnych problemów. Kolejny test wyglądał podobnie do poprzedniego, jednak zmieniono płaszczyznę cylindra prostopadle do podłoża. Jego wyniki zamieszczono na filmie „TEST2”. Ruch robota przebiegł podobnie jak w teście poprzednim. Siła przyciągania robota do stalowej blachy oraz tarcie pomiędzy gumową taśmą kół zapobiegły zsuwaniu się robota. Nie zaobserwowano żadnych problemów.
Rys. 4.3 Schemat testu najazdu na ścianę
Następnym
testem
przyczepności
był
najazd
na
pionową
ścianę
względem
podłoża (rys. 4.3). Jest to najważniejszy test ze względu na charakterystykę budowy szybów wentylacyjnych. W większości przypadków występują tam krawędzie proste. Przebieg testu zamieszczono na filmie „TEST3”. W trakcie ruchu po blaszanym podłożu robot poruszał się płynnie pomimo zwiększonej przyczepności. W momencie zmiany płaszczyzny ruchu robot wyhamował uderzając w ścianę. Następnie bez poślizgu najechał na ścianę przednimi kołami. Robot zatrzymał się na ścianie. Mimo braku zasilania silników, siłą grawitacji była zbyt mała, aby spowodować staczanie się urządzenia. Stwierdzono, że robot się nie zsunął ze względu na zintegrowaną przekładnię silnika. Ostatnim testem przyczepności robota był zjazd ze ściany pionowej na płaszczyznę podłoża. Na filmie „TEST4” przedstawiono jego przebieg. Przebieg testu przedstawiono na rys. 4.4. Ze względu na budowę robota nie jest on w stanie wykonać tego manewru poruszając się w tył. Pierścień mechanizmu obrotu tylnego koła uniemożliwia kontakt koła z podłożem. Przy zjeździe robota przodem, wyhamował on uderzając w podłoże, a następnie na nie wjechał.
53
Rys. 4.4 Schemat testu zjazdu ze ściany
Ostatnim przeprowadzonym testem był test funkcjonalności realizowanej strony internetowej. Test ten się nie powiódł, ponieważ pomimo prawidłowo wysłanych informacji, co zostało sprawdzone, wyjścia GPIO mikrokomputera nie dawały odpowiednich napięć. Błąd ten wynikał prawdopodobnie z nieprawidłowego działania gotowej funkcji lub jej nieodpowiedniego użycia. Z uwagi na niedziałającą stronę internetową zdecydowano się na sterowanie robotem poprzez zdalną konsole. Nagranie z przebiegu tego testu umieszczono na filmie „TEST5”. Na filmie nagrano reakcje robota na polecenia z konsoli oraz prawidłowe działanie kamery. Podczas testów nie użyto jednak enkoderów ze względu na wysoki pobór energii powodujący uszkodzenie stabilizatora napięcia. Prawdopodobnym powodem takiego zachowania się enkoderów jest pole magnetyczne o dużym natężeniu pochodzące z kół robota. Problem ten można by było wyeliminować stosując enkodery optyczne zamiast magnetycznych.
54
5
PODSUMOWANIE I WNIOSKI KOŃCOWE Celem projektu było stworzenie robota inspekcyjnego posiadającego możliwość
swobodnego poruszania się we wnętrzu instalacji wentylacyjnych. Rozwiązania dostępne na rynku oferują zwykle możliwość wprowadzenia robota do poziomych odcinków instalacji. Naszym celem było rozszerzenie możliwości użycia robota do dowolnie zorientowanych elementów szybu. W celu zrealizowania tematu pracy Dawid Jaworski zaprojektował konstrukcję mechaniczną urządzenia. Zaprojektowano konstrukcję robota trójkołowego z napędem na przednie dwa koła. Trzecie koło posiada możliwość swobodnego obrotu. Jako napęd użyto dwóch silników prądu stałego. W celu zapewnienia robotowi wymaganej mobilności użyto magnesów neodymowych, które zostały zainstalowane na obwodzie kół, jak i u spodu korpusu robota. Aby zrealizować funkcje inspekcyjne Dariusz Jaroś dobrał elementy wykonawcze robota. Zamontowano kamerę z przodu pojazdu oraz diody LED. Jako jednostkę sterującą wykorzystano moduł Raspberry PI w wersji B. Całość zasilana jest za pomocą przewodu zasilającego, a komunikację ze stacją operatora zapewnia połączenie urządzenia kablem ethernetowym. W trakcie weryfikacji możliwości urządzenia system sterowania operator-robot został zrealizowany poprzez program napisany w programie c++ zainstalowany na mikrokomputerze. Dostęp zdalny do konsoli realizowany jest przez program „Putty” obsługujący połączenie miedzy komputerem a Raspberry Pi. Przy pomocy tego sterowania przetestowano przyczepność robota w różnych warunkach. Robot spełnił wszystkie założenia dotyczące jego mobilności. Niestety nie zdołano przetestować robota w rzeczywistej instalacji wentylacyjnej. Byłby to ostateczny test funkcjonalności robota. Zasięg robota przewidziano, na co najmniej 20 m. Zasięg maksymalny jest zależny głównie od masy kabli ciągniętych za robotem oraz ich ułożenia podczas przeprowadzania inspekcji instalacji wentylacyjnej. Środowisko, w którym może operować robot nie jest ograniczone jedynie do instalacji o konstrukcji stalowej. Jednak decydując się na jego użycie w innych środowiskach, nie tylko w instalacjach wentylacyjnych, należy wziąć pod uwagę częściową utratę mobilności. W trakcie realizacji tematu pracy posłużono się technologia druku przestrzennego. Jest to bardzo efektywny sposób prototypowania elementów, jednak nie jest w stanie zapewnić wysokiej, jakości wykonania. Udostępnia możliwość szybkiego wprowadzania zmian w projekcie kosztem jakości elementów. Po pomyślnym przetestowaniu prototypu należałoby wykonać elementy konstrukcyjne w konwencjonalny sposób zależny od wybranego materiału. Przy doborze wielkości i parametrów magnesów natrafiono na trudność z obliczeniem sił oddziaływujących pomiędzy magnesem, a stalową płytą. Problem polega na trudnej do analizy strukturze domenowej magnesów stałych. Próby przybliżenia modelem idealnym dają niezadowalające wyniki. Ostateczne posłużono się danymi zebranymi empirycznie przez firmę zajmującą się produkcją magnesów neodymowych i na ich podstawie oszacowano udźwig robota. Główną zaletą robota jest jego mobilność. Niestety ogranicza się ona jedynie do instalacji opartej na elementach stalowych. Mobilność ograniczają także przewody: zasilający
55
i komunikacyjny. Przy pokonywaniu dużych odległości mogą skutecznie uniemożliwić dalszą jazdę. Niewielkie rozmiary robota pozwalają na użycie go w większości instalacji przemysłowych. W celu modernizacji urządzenia powinna zostać zrewidowana konstrukcja korpusu. Należałoby zoptymalizować przestrzeń dostępną do montażu podzespołów elektronicznych. Wymagana byłaby również zmiana technologii wykonania oraz materiału. Kolejną modyfikacją byłaby
zmiana
systemu
komunikacji.
Zastosowanoby
komunikację
bezprzewodową.
Wyeliminowałaby ona wpływ masy kabli na ruch robota. Należałoby jednak sprawdzić, jak robot zachowywałby się we wnętrzu instalacji i czy nie traciłby połączenia ze stacją operatorską.
56
WYKAZ LITERATURY 1. Przewody prostokątne - norma – ZUT, www.filem.zut.edu.pl/dydaktyka/proc_dyn/pliki/1505.pdf, (data dostępu 25.11.2016 r.). 2. Improved mechanical properties of 3D-printed parts by fused deposition modeling processed under the exclusion of oxygen, http://link.springer.com/article/10.1007%2Fs40964-016-0010-y, (data dostępu 24.11.2016 r.). 3. K&J Magnet Calculator, http://www.kjmagnetics.com/thickness.calculator.asp?calcType=block, (data dostępu 20.11.2016 r.). 4. Szymczyk T., Rabiej S., Pelesz A., Desselberger J., Tablice, Bielsko-Biała 2003. 5. Szewczyk A., Wiśniewski A, Puźniak R, Szymczak H.: Magnetyzm i nadprzewodnictwo, 2012 Warszawa, Polska, s.119-125. 6. Holiday D., Resnick R.: Fizyka 2, PWN, Warszawa 1984, s. 284 – 302. 7. Siong Boon L. raspberry_pi_circuit.jpg (575×428) [Internet]. [cytowane 15 grudzień 2016]. Dostępne na: http://www.siongboon.com/projects/2013-0708_raspberry_pi/images/raspberry_pi_circuit.jpg 8. Raspberry Pi Camera HD - kamera dla Raspberry Pi - BOTLAND.com.pl - Sklep dla robotyków [Internet]. [cytowane 15 grudzień 2016]. Dostępne na: https://botland.com.pl/kamery-do-raspberry-pi-32b/1613-raspberry-pi-camera-hd-kameradla-raspberry-pi.html 9. Coefficient of friction, Rolling resistance, Air resistance, Aerodynamics [Internet]. [cytowane 15 grudzień 2016]. Dostępne na: http://www.tribology-abc.com/abc/cof.htm 10. Silnik z przekładnią 37Dx73L 131:1 12V 80RPM + enkoder CPR 64 - BOTLAND.com.pl Sklep dla robotyków [cytowane 15 grudzień 2016]. Dostępne na: https://botland.com.pl/silniki-dc-z-przekladnia-i-enkoderami/5114-silnik-z-przekladnia37dx73l-1311-enkoder-cpr-64.html 11. Rys. 1. Budowa enkodera kwadraturowego: a) tarcza... - | elektro.info.pl - elektrotechnika i elektryka [Internet]. [cytowane 16 grudzień 2016]. Dostępne na: http://www.elektro.info.pl/artykul-galeria/id6389,enkodery-liniowe-i-obrotowe-wybranerozwiazania?gal=1&zdjecie=6822 12. Świsulski D., Rafińskis L.: SENSORYKA ROBOTÓW Laboratorium, Wydawnictwo Politechniki Gdańskiej, Gdańsk 2007, s.24 13. 4-kanałowy konwerter poziomów logicznych 3,3-5V (6617820898) - Allegro.pl Więcej niż aukcje. [Internet]. [cytowane 16 grudzień 2016]. Dostępne na http://allegro.pl/4kanalowy-konwerter-poziomow-logicznych-3-3-5v-i6617820898.html 14. L298N.pdf [Internet]. [cytowane 16 grudzień 2016]. Dostępne na: http://www.tech.dmu.ac.uk/~mgongora/Resources/L298N.pdf 15. Moduł sterownika do silników DC oraz silników krokowych na L298N [Internet]. [cytowane 16 grudzień 2016]. Dostępne na: http://abc-rc.pl/L298N-sterownik 16. Zasilacz montażowy T-180W-12V do taśm i pasków LED 12V / 15A / 180W BOTLAND.com.pl - Sklep dla robotyków [Internet]. [cytowane 15 grudzień 2016]. Dostępne na: https://botland.com.pl/zasilacze-montazowe/6677-zasilacz-montazowy-t-180w-12v-dotasm-i-paskow-led-12v-15a-180w.html 17. Sklep ElectroPark.pl - Przetwornica napięcia DC-DC LM2596 (step-down) [Internet]. [cytowane 16 grudzień 2016]. Dostępne na: http://electropark.pl/moduly-zasilania/2941przetwornica-napiecia-dc-dc-lm2596-step-down.html 18. Installing operating system images using Windows - Raspberry Pi Documentation [Internet]. [cytowane 16 grudzień 2016]. Dostępne na: https://www.raspberrypi.org/documentation/installation/installing-images/windows.md 19. Jak ustawić statyczne IP w Raspberry Pi - BOTLAND.com.pl - Sklep dla robotyków [Internet]. [cytowane 15 grudzień 2016]. Dostępne na: https://botland.com.pl/content/71-jakustawic-statyczne-ip-w-raspberry-pi 20. Raspberry Pi Video Streaming – All [cytowane 15 grudzień 2016]. ]. Dostępne na: http://www.instructables.com/id/Raspberry-Pi-Video-Streaming/?ALLSTEPS 21. GPIO Library for the Raspberry Pi [Internet]. [cytowane 15 grudzień 2016]. Dostępne na: http://wiringpi.com/
57
22. Upton E, Halfacree G, Upton E, Wydawnictwo Helion. Raspberry Pi: przewodnik użytkownika. Gliwice: Helion; 2013. 23. JavaScript Tutorial [cytowane 15 grudzień 2016]. ]. Dostępne na: http://www.w3schools.com/js/ 24. HP i C++ razem? A dlaczego nie? | lukasz-socha.pl - blog programisty i web developera Dostępne na: http://lukasz-socha.pl/php/php-i-c-razem-a-dlaczego-nie 25. Blink | Wiring Pi [cytowane 15 grudzień 2016]. ]. Dostępne na: http://wiringpi.com/examples/blink/ 26. STL (file format), https://en.wikipedia.org/wiki/STL_(file_format), (data dostępu 29.11.2016 r.).
58
WYKAZ RYSUNKÓW Rys. 2.1 Drukarka 3D – Zortrax M200 ........................................................................... 10 Rys. 2.2 Koło z oznaczonymi kolorem czerwonym miejscami osadzenia magnesów neodymowych ................................................................................................................. 11 Rys. 2.3 Schemat obliczeniowy rozmieszczenia magnesów neodymowych, gdzie: R – promień koła, a – szerokość magnesu, d – odległość między magnesami .................... 13 Rys. 2.4 Wyznaczenie ilości magnesów względem wartości d ...................................... 14 Rys. 2.5 Schemat obliczeniowy dla przypadku pierwszego ........................................... 15 Rys. 2.6 Odległość powierzchni magnesu od podłoża ................................................... 16 Rys. 2.7 Wykres zależności masy, jaki może utrzymać magnes znajdujący się w danej odległości od stalowej płyty [3] ...................................................................................... 17 Rys. 2.8 Przebieg wartości funkcji (2.15) ....................................................................... 18 Rys. 2.9 Schemat obliczeniowy przypadku drugiego ..................................................... 19 Rys. 2.10 Silnik prądu stałego - widok z przodu ............................................................ 21 Rys. 2.11 Korpus, część przednia – widok od przodu .................................................... 21 Rys. 2.12 Korpus, część przednia - widok od dołu......................................................... 22 Rys. 2.13 Tylna część korpusu - widok z przodu ........................................................... 22 Rys. 2.14 Pierścień obrotowy ......................................................................................... 23 Rys. 2.15 Nakładka na mechanizm obrotu koła tylnego - widok od dołu ...................... 23 Rys. 2.16 Model koła ...................................................................................................... 24 Rys. 2.17 Model końcowy konstrukcji ........................................................................... 24 Rys. 2.18 Schemat blokowy układu sterowania ............................................................. 25 Rys. 2.19 Mikrokomputer Raspberry Pi B z podpisanymi złączami [7] ........................ 26 Rys. 2.20 Kamera do Raspberry Pi [8] ........................................................................... 27 Rys. 2.21 Główne siły oporu działające na robota: Ft – siła tarcia o podłoże................. 28 Rys. 2.22 Główne siły działające na koło z silnikiem: ω – prędkość kątowa, Mn – moment siły napędowej, Mo –moment siły oporowej ................................................................... 28 Rys. 2.23 Silnik wraz z enkoderem ................................................................................ 30 Rys. 2.24 Budowa poszczególnych komponętów enkodera. a) tarcza kodowa enkodera b) ułożenie czujników pola magnetycznego w enkoderze[11] ........................................... 31 Rys. 2.25 Sposoby zaliczeń impulsów na enkoderze magnetyczny[12] ........................ 31 Rys. 2.26 Zdjęcie konwertera napięć z zaznaczonymi sterownikami napięcia[13] ....... 32 Rys. 2.27 Wygląd i rozmieszczenie złączy w mostku H [15] ........................................ 33 59
Rys. 2.28 Diagram przedstawiający budowę układu cyfrowego mostka H w układzie L298N [14] ..................................................................................................................... 33 Rys. 2.29 Schemat zasilania robota ................................................................................ 34 Rys. 2.30 Zasilacz impulsowy firmy Kemot .................................................................. 35 Rys. 2.31 Przetwornik dc/dc obniżający napięcie [17] ................................................... 35 Rys. 2.32 Zdjęcie odczytanego adresu IP Raspberry PI ................................................. 37 Rys. 2.33 Okno pojawiające się po wpisaniu komendy „sudo raspi-config” ........ 38 Rys. 2.34 Strona główna programu uv4l ........................................................................ 39 Rys. 2.35 Domyślna strona serwera Apache2, ............................................................... 40 Rys. 2.36 Wygląd gotowej strony www wraz z opisem ................................................. 41 Rys. 3.1 Różnica pomiędzy formatem CAD i STL ........................................................ 44 Rys. 3.2 Zestawienie wykonanych elementów ............................................................... 45 Rys. 3.3 Zmontowane koło tylnego mechanizmu obrotowego ...................................... 45 Rys. 3.4 Tylna część korpusu ......................................................................................... 46 Rys. 3.5 Tylni mechanizm obrotowy bez obudowy(magnesy jeszcze nie są zamontowane) ........................................................................................................................................ 46 Rys. 3.6 Zmontowana tylna część korpusu ..................................................................... 47 Rys. 3.7 Przednia część korpusu ..................................................................................... 47 Rys. 3.8 Szkielet robota. ................................................................................................. 48 Rys. 3.9 Płytka uniwersalna ............................................................................................ 49 Rys. 3.10 Schemat lutowania płytki ............................................................................... 49 Rys. 3.11 Zdjęcie wszystkich elementów elektronicznych użytych w projekcie ........... 50 Rys. 3.12 Zdjęcie gotowego robota ................................................................................ 50 Rys. 4.1 Widok dolnego panelu robota........................................................................... 52 Rys. 4.2 Konstrukcja testowa – cylinder z blachy stalowej............................................ 52 Rys. 4.3 Schemat testu najazdu na ścianę ....................................................................... 53 Rys. 4.4 Schemat testu zjazdu ze ściany ......................................................................... 54
60
WYKAZ TABEL Tabela 2.1 Zestawienie wymiarów szybów wentylacyjnych zgodnych z normą PN-EN 1505:2001 [1] .................................................................................................................... 9 Tabela 2.2 Wstępne zestawienie masy poszczególnych elementów. ............................ 12 Tabela 2.3 Wyniki szacowania udźwigu pojedynczego koła dla najlepszego przypadku ........................................................................................................................................ 19 Tabela 2.4 Wyniki szacowania udźwigu pojedynczego koła dla najlepszego przypadku ........................................................................................................................................ 20
61
Dodatek A Schemat ideowy połącz
Dodatek B Rysunek wykonawczy przedniej części korpusu
Dodatek C Rysunek wykonawczy tylnej części korpusu
Dodatek D Rysunek wykonawczy koła
Dodatek E Rysunek wykonawczy tylnego łożyska
Dodatek F Rysunek wykonawczy nakładki
Dodatek G Rysunek wykonawczy wału