
Konstruujemy autonomiczną łódź przy użyciu platformy Raspberry Pi
Wprowadzenie: Konstruujemy autonomiczną łódź przy użyciu platformy Raspberry Pi
Fala entuzjazmu dla Raspberry Pi opanowała wielu ludzi, którzy od razu zauważyli możliwości jakie niesie za sobą platforma oraz zdumiewającą łatwość jej obsługi.
FishPi jest projektem, mającym na celu przepłynięcie Oceanu Atlantyckiego przy użyciu łodzi pilotowanej poprzez Raspberry Pi. Pierwszy krok w tym projekcie polega na zaprojektowaniu łodzi zabezpieczonej przed działaniem wody (w skrócie z ang. POCV (z ang. Proof Of Concept Vehicle).
POCV przetestuje podstawowe założenia kontroli nad autonomicznym pojazdem przy pomocy Raspberry Pi. Autor projektu zaprezentował tutaj, jak można wykonać własny pojazd tego typu.







Krok 1: Części









Podstawowe elementy użyte do wykonania FishPi POCV:
*Raspberry Pi Model B
*Karta SD 8GB
*Model wykonany z włókna szklanego
*Modele dysz napędowych
*Raspy Juice
*Flytron Navigatron V2 i2c GPS
*CMPS10 – odporny na przechyły moduł kompasu
* Adafruit 16-Channel 12-bit PWM/Servo Driver - interfejs i²c - PCA9685.
* Mtronics MicroViper Marine10 Electronic Speed Controller (ESC) .
*MFA 919D 540 Motor With Attached Single Ratio Metal Gearbox 2.5:1.
*Raboesch Brass 4 Bladed Kort Propeller.
*Raboesch Waterproof Propshaft.
*Kinobo 5 Megapixel USB Webcam.
*Six 5000mAH 1.2 Volt NiMH SubC cells.
*Flytron 3.3v & 5v Tiny Regulators.
*Digital Temperature Sensor Breakout - TMP102.
Narzędzia:
*Kombinerki, śrubokręty itp. (wszystkie narzędzia obecne w przeciętnym, przydomowym warsztacie)
Krok 2: Kadłub












Kadłub użyty przez autora w projekcie POCV jest oparty na Cyngus Marine DS25 Fishing Boat. Jest on wykonany przez firmę Models By Design, która specjalizuje się w modelach łodzi wykonanych z włókna szklanego. Kadłub kosztował nieco ponad 20 funtów, idealny dla konstrukcji niskobudżetowych.
Na początek, wszystkie podstawowe komponenty, które zostaną umieszczone w kadłubie to: Silnik, Śruba napędowa, wał napędowy, dysza napędowa i serwomechanizm. DS25 nie jest zaprojektowany z myślą o napędzie przy pomocy śruby, jednak to rozwiązanie sprawdza się całkiem dobrze przy niskich obrotach i wysokim momencie obrotowym, autor zdecydował się na wypróbowanie tego systemu sterowania w tym modelu, mając na względzie możliwość użycia go w większych konstrukcjach.
Najpierw należy znaleźć oś symetrii kadłuba. Aby dokonać tego możliwie jak najłatwiej i jak najwygodniej, należy przytrzymać linijkę z jednej strony grzbietu i ostrożnie narysować linię wzdłuż modelu. Procedurę należy powtórzyć, po przeciwnej stronie. Na koniec pozostaje tylko zmierzyć odległość pomiędzy narysowanymi liniami i wyznaczyć pomiędzy nimi środek. Tok postępowania jest pokazany na zdjęciach poniżej.
Aby odpowiednio wykonać dziury do zamocowania dyszy napędowej należy wyznaczyć gdzie będzie najlepsze miejsce do jej usytuowania. Autor projektu wykonał to poprzez oględziny modelu i wykonanie odpowiednich obliczeń.
Wewnątrz kadłuba znajduje się drewniany wspornik. Pełni on funkcje mocowania dla dyszy napędowej oraz serwomechanizmu sterującego płetwą steru. Wspornik jest przymocowany za pomocą żywicy epoksydowej.
Kiedy dysza była już zamocowana, autor użył podobnej metody to ulokowania otworu w kadłubie na wałek napędowy. Otwór ten jest nieznacznie wydłużony, aby umożliwić regulację pozycji wałka w pionie. O ile otwór powinien być wydłużony w pionie, o tyle nie może być żadnego odchylenia w poziomie. Zanim ostatecznie przymocujesz wałek napędowy za pomocą żywicy epoksydowej, upewnij się, że wałek jest usytuowany tak, aby śruba bez problemów mogła się obracać wewnątrz dyszy, nawet wtedy, kiedy będzie ona wysterowana w jakimś kierunku.
Dopiero po trzech próbach umiejscowienia śruby napędowej autor osiągnął dokładność około 0,5 mm.
Krok 3: Silnik






Silnik MFA 919D 540 jest zamontowany razem ze skrzynią biegów o pojedynczym przełożeniu. To podnosi moment obrotowy, jednak zmniejsza liczbę obrotów na minutę. Mimo wszystko, silnik ten nie powinien mieć problemów z poruszaniem 40mm śrubą.
Potrzeba wytrzymałej podstawy, aby zamontować silnik w kadłubie statku. Jej spód jest pochylony pod kątem, aby pasowała ona do kształtu kadłuba. Dodatkowo, wypełnienie od wewnątrz żywicą epoksydową statecznika wzmacnia całą konstrukcję.
Z tyłu dodano wspornik górnego serwomechanizmu. Uniwersalne złączki powinny bez problemu połączyć oś silnika z wałkiem napędowym. Czasem trzeba poświęcić chwilę czasu na ustawienie tych dwóch elementów w osi, zanim bezpowrotnie przytwierdzi się je na swoim miejscu.
Krok 4: Zabezpieczenie konstrukcji przed działaniem wody









Sprzęt elektryczny i elektroniczny nigdy nie będzie pracował dobrze w wodzie. Autor wziął to pod uwagę i rozwiązał problem zamknięcia całej elektroniki w wodoszczelnym pojemniku. Rozważano kilka różnych opcji, jednak ostatecznie zdecydowano się na plastikowe opakowanie do przechowywania żywności.
Dlaczego? Ponieważ jest tanie, kosztuje około 3 funtów, nie potrzeba żadnych śrubek, aby przytwierdzić pokrywę i jest wodoszczelne. To konkretne pudełko, użyte w opisywanym projekcie jest wystarczająco duże, aby pomieścić Raspberry Pi, a cztery zatrzaski, które mają zamykać pokrywę są już na niej zamontowane.
Poprzez zamontowanie elektroniki na pokrywie pudełka i zamontowaniu jej na łodzi wierzchem do dołu można bez problemu otworzyć pojemnik, a następnie zdjąć obudowę, dzięki czemu mamy bardzo łatwy dostęp do całej zamontowanej na statku elektroniki.
Autor wyciął i odpowiednio przygotował płytę ze sklejki, która zostanie zamontowana w wieczku płyty. Wszystko zostało przymocowane do kadłuba za pomocą dwóch wsporników wklejonych w kadłub, do których przykręcono pojemnik. Z dwóch stron wieczka usunięto zatrzaski, dzięki czemu cała konstrukcja mogła zostać zamontowana nieco głębiej w kadłubie. Do sklejkowej płyty autor przykleił kawałek pianki wyciętej z maty, na której docelowo będzie umiejscowiony moduł Raspberry Pi oraz zamocował trzy wsporniki, które będą utrzymywać moduł na swoim miejscu. Z założoną obudową zawartość pojemnika przymocowana na pokrywce jest całkowicie wodoodporna!
Krok 5: Przewody




Początkowy plan zakładał podłączenie POCV do stacji bazowej poprzez złącze nazwane roboczo "pępowiną". Złącze to udostępniałoby połączenie poprzez interfejs USB, HDMI i CAT5e. Ostatecznie znajdowałoby się tam 32 oddzielne przewody dla USB, HDMI i kabli sieciowych. W ten sposób wykorzystano by 32-pinowe złącze w stylu lotniczym i 2 metry kabla.
Przewody powinny prowadzić do modułu Raspberry Pi, przechodzić przez pokrywę wodoszczelnego pojemnika i dochodzić do 32-pinowego złącza. Ostatecznie jednak rozwiązanie to zostało porzucone, ponieważ stwarzałoby zbyt wiele problemów. "Pępowina" została zastąpiona połączeniem WiFi. Szczegóły zostaną opisane w dalszej części artykułu.
Krok 6: Zasilanie







Sześć baterii 1.2v 5000mAh SubC NiMh. Całkiem sporo, wszystkie są bezpiecznie przytwierdzone do kadłuba oraz połączone do kontrolera zasilania.
Kontroler ten pozwala wybrać źródło zasilania pomiędzy bateryjnym, a pobieranym ze złącza DC oraz dostarcza zasilanie do POCV. Poprzez podłączenie ładowarki NiMh do złącza DC i zmianę pozycji przełącznika znajdującego się na kontrolerze na odpowiednią możemy ładować ogniwa, bez potrzeby demontowania ich z kadłuba.
Aby zachować odpowiedni balans kadłuba, dwa ogniwa zostały umiejscowione z tyłu, pod obudową i cztery ogniwa z przodu. Zamocowane są one przy pomocy opasek zaciskowych. Zostało użyte kilkanaście konektorów, dzięki czemu ogniwa mogą zostać zdemontowane w razie potrzeby.
Krok 7: Szyna zasilania









Ogniwa NiMh są połączone szeregowo, co daje 7.2V. Moduł Raspberry Pi pracuje pod napięciem 5V, a szyna i2c wymaga zasilania 3.3V.
Autor zakupił dwa 5-woltowe i jeden 3.3-woltowy stabilizator napięcia LDO. Dodatkowy stabilizator 5V zostanie użyty do innego urządzenia, takiego jak kamera internetowa i Adafruit PWM, które będą wbudowane w POCV.
Stabilizatory LDO przekształcają jakiekolwiek inne napięcie w napięcie żądane (7,2V w 5V, 3.3V). Autor użył radiatorów zdemontowanych ze starej płyty głównej i odpowiednio je zmodyfikował tak, aby pasowały do stabilizatorów. Następnie zamocował układy do radiatorów za pomocą taśmy przewodzącej ciepło. Później zostało to nieco zmodyfikowane, opaski zaciskowe i taśma termoprzewodząca zostały zastąpione klejem przewodzącym ciepło. Trzy stabilizatory zostały przykręcone do mocowań przyklejonych do sklejkowego panelu.
Szyny i2c ostały wykonane z kawałka płytki uniwersalnej. Linie +V, GND, SDA i SLC są połączone z 2.54mm pinami. 3.3V jest pobierane ze stabilizatora LDO 3.3V. Dodatkowo, do szyn i2c zostały dołączone dwa rezystory podciągające po 1,8k każdy.
Widoczny na zdjęciach z przodu moduł zamontowany do sklejki to Mtronics MicroViper Marine10 ESC.
Krok 8: Dodatki








Czujnik temperatury TMP102, Navigatron v2 GPS, kompas CMPS10 oraz Adafruit 16 channel PWM są podłączone do szyny i2c za pomocą 2,54mm pinów. Poprzez zamontowanie złącz DuPont w drewnie, a następnie przyklejeniu ich do sklejki możliwe było zamontowanie urządzeń w obudowie, jednocześnie zachowując możliwość ich demontażu.
Kompas CMPS10 powinien być odsunięty od innych części elektronicznych tak daleko, jak to możliwe. Kompas powinien być zamontowany w plastikowym pudełku, na dziobie, z przodu POCV.
Celem sprawdzenia poprawności działania całego systemu, łódź podłączono do wyświetlacza LCD i włączono.
Krok 9: Szpieg




Główną przyczyną wyboru tej konkretnej kamery (Kinobo Webcam) jest jej mała obudowa, mająca kształt prostopadłościanu.
Jednym z celów autora projektu było to, aby łódź miała możliwość rejestrowania i przekazywania na żywo widoku z łodzi, znajdującej się na środku Atlantyku. O wyposażeniu POCV w kamerę zadecydowano znacznie wcześniej. Fundacja Raspberry Pi dostarcza kamery przeznaczone do pracy z modułem Raspberry Pi, jednak w trakcie tworzenia tego projektu nie były one dostępne.
Krok 10: Malowanie
















Upewnij się, że dokładnie zaizolowałeś wszystkie otwory, plastikowe elementy i wszystkie inne obszary kadłuba, które nie chcesz pomalować. Autor użył w tym celu zwykłej taśmy maskującej.
Model statku na czas malowania został powieszony na zewnątrz na specjalnie do tego celu przystosowanym drucie.
Wszystkie naklejki pochodzą ze sklepu Letraset Transfers. Zostały one umieszczone na kadłubie już po jego pomalowaniu farbą oraz warstwą ochronną lakieru. Na wnętrze kadłuba również została naniesiona błyszcząca warstwa ochronna.
Haczyki znajdujące się na bokach kadłuba są częścią systemu Hook & Eye, dzięki któremu cały model zostanie docelowo przykryty z wierzchu dodatkową materiałową osłoną.
Krok 11: Zebranie wszystkiego w jedną całość








Aby ostatecznie zmontować cały model POCV w całość należało jeszcze przeprowadzić przez drewnianą sklejkę oraz przylutować do złącza 32 oddzielne przewody. Początkowo okazało się, że nie wszystko działa tak jak powinno, autor musiał więc nieco zmodyfikować sposób łączenia kabli. W miejscu lutu zastosowano koszulki termokurczliwe.
Krok 12: Pierwsze modyfikacje




Jak ze wszystkimi prototypami bywa, tak i w tym przypadku nie obyło się bez wprowadzenia modyfikacji do pierwotnego projektu. Pierwszą modyfikacją projektu był Raspy Juice. Stabilizator zasilający Raspberry Pi za pomocą napięcia 5V podczas pracy stawał się bardzo gorący, nawet z zamontowanym radiatorem.
Na szczęście FishPi wysłało dwie wersje testowe modułu Raspy Juice do testów, więc można było bardzo łatwo odłączyć stabilizator LDO i podłączyć Raspy Juice.
Następną modyfikacją był hub USB. Należało pomiędzy POCV, a stacją bazową zainstalować moduł WiFi. Zamontowany na płytce Raspberry Pi interfejs USB nie byłby w stanie dostarczyć wystarczająco energii do zasilenia modułu WiFi Dongle, więc konieczne stało się zamontowanie hub’a USB. Autor wykorzystał stary hub USB, który zmodyfikował tak, aby pobierał napięcie 5V z nieużywanego stabilizatora, który miał służyć do zasilania Raspberry Pi.
Nadal pozostało kilka rzeczy do zmodyfikowania w projekcie POCV, włączając w to moduł komunikacji satelitarnej (RockBLOCK), zostaną one przedstawione w kolejnych artykułach na temat tej łodzi.
Krok 13: Oprogramowanie






Dobre oprogramowanie to duch i życie każdego projektu.
Tak samo jest w przypadku FishPi. Oprogramowanie sterujące, które jest udostępniane dla POCV jest Open Source. Autor projektu zamieścił kopię programu w serwisie GitHub, skąd każdy użytkownik może pobrać je do własnego użytku oraz rozpowszechniać je dalej. Bieżące zmiany i aktualizacje oprogramowania można śledzić na twitterze @TheFishPi_Dev.
Aktualnie kontrola nad POCV jest możliwa poprzez oprogramowanie odpowiedzialne za ręczne sterowanie modelem. Główny programista biorący udział w przedsięwzięciu, Al Gray cały czas pracuje nad modyfikacją systemu, której konieczność nastąpiła w związku z zamontowaniem nowego modułu Wifi.
Ostatecznie jednak, powinien powstać całkowicie kompletny i użyteczny system autonomicznej nawigacji, komunikacji satelitarnej, transmisji wideo na żywo oraz zdalnego sterowania. Program ten powinien sprawdzić się również w innych typach pojazdów, nie tylko w łódkach.
Aby zaczerpnąć więcej informacji na temat FishPi należy udać się na stronę autorów projektu http://www.fishpi.org , dołączyć do forum dyskusyjnego poświęconemu tej konstrukcji lub śledzić profil @TheFishPi na twitterze. Pod adresem http://wiki.fishpi.org/ dostępne jest również wiki, jeśli ktoś potrzebowałby pełnej specyfikacji technicznej.
Wideo:
Źrodło:Link