PiTank to zdalnie sterowany czołg, kontrolowany poprzez sieć. Skonstruowany został w ramach szkolnego konkursu robotycznego. Realizacja projektu pochłonęła pięciu osobom około dwa tygodnie. Głównym pociskiem wystrzeliwanym przez działo pojazdu są piłeczki ping-pongowe - jest w stanie wystrzelić do 3 piłeczek naraz. Czołg sterowany jest poprzez interfejs webowy, jest w stanie przekazywać na żywo strumień wideo. Kontrolują go dwa moduły - Raspberry Pi i Arduino - wraz z szeregiem dodatkowych komponentów. Poniżej zaprezentowano dwa filmiki, przedstawiające działanie robota.
Poniższy opis natomiast przedstawia - krok po kroku - jak zbudować podobnego robota we własnym zakresie. Opisano nawet najmniejsze detale projektu. W kwestiach, które nie zostały opisane, można odnieść się do poradników, do których zamieszczono w treści linki.
Krok 1: Potrzebne elementy
Zamieszczona poniżej lista potrzebnych do konstrukcji elementów jest dosyć ogólna i należy ją traktować jako spis najważniejszych elementów. Nie jest to na pewno spis wszystkich potrzebnych do konstrukcji drobiazgów, tym bardziej, że dużą część wykorzystanych materiałów można wymienić na inne, bardziej dostępne w Waszej okolicy.
Elementy do podłączenia do Raspberry Pi:
1 x Moduł Raspberry Pi - dowolna wersja
1 x Kamera do Raspberry Pi
1 x Karta Wifi
1 x Moduł Adafruit Servo
1 x Moduł Bateryjny USB - należy się upewnić, że może dawać 2A prądu na swoim wyjściu
2 lub 3 x Serwomotory - 2 jeśli chcemy tylko obracać i podnosić działo, jeden dodatkowo do mechanizmu przeładowującego działo
1 x Uchwyt pozwalający na przekręcanie w dwóch osiach
Trochę kabelków, aby to wszystko połączyć.
Taśma izolacyjna.
Kable USB
Kabel HDMI
Translator poziomów zasilania - Raspberry Pi wymaga napięcia I/O 3,3 V na swoich cyfrowych GPIO.
Z kolei wraz z Arduino nabyć musimy:
1 x Moduł Arduino Uno
1 x Shield Arduino Motor
1 x Płytka przekaźnikowa
Trochę kabelków do połączenia wszystkiego
Silniki, jeśli nasze podwozie nie jest już w nie wyposażone
1 x Zestaw dwóch baterii AA do zapalarki gazu
1 x Zestaw sześciu baterii AA dla silników
Finalnie, do konstrukcji działa potrzebne nam będą:
Butelka po wodzie
Rura z ABSu lub PVC o średnicy wewnętrznej odrobinę większej niż średnica pocisku.
Trójnik do rur PVC
Zapalarka do gazu
Drewniane patyczki
Finalnie, potrzebne będzie jakieś podwozie. Zastosować można w zasadzie dowolne, ale wskazane jest znalezienie robota z napędem na cztery koła, napęd na dwa spowoduje, że robot będzie wolniejszy.
Dodatkowo potrzebne są następujące narzędzia:
Śrubokręt
Kombinerki
Pistolet z lejem
Super Glue
Lutownica, cyna etc
Wiertarka
Krok 2: Opis systemu
W robocie wyróżnić możemy dwa główne elementy - systemy:
Raspberry pi:
Główny kontroler systemu.
Jest hostem strony WWW służącej do kontroli robota.
Kontroluje kamerę.
Kontroluje serwa.
Komunikuje się z Arduino poprzez interfejs szeregowy.
Arduino
Kontroluje silniki poruszające pojazdem.
Kontroluje przekaźnik i zapalarkę do gazu.
Krok 3: Budowa działa
Działo jest chyba najfajniejszym elementem całej konstrukcji. Wykonane jest ono z twardego, przeźroczystego plastiku (komora) z lufą z rury PVC i kilkoma dodatkowymi elementami zamocowanymi do komory. Zasada działania tej broni jest bardzo prosta - polega na spalaniu w komorze paliwa, co powoduje eksplozję i wyrzut pocisku.
Lufa zamocowana jest do butelki z pomocą kleju, nakładanego na ciepło. Następnie do tej konstrukcji montuje się drewniane elementy, mające umożliwić montaż serwomotora, który obsługuje źródło paliwa, którym jest w tym przypadku dezodorant.
W butelce wykonać trzeba dwa niewielkie otwory, do umieszczenia w środku przewodów zapalnika oraz jeden większy otwór, pozwalający na podawanie do komory spalania paliwa-dezodorantu. Wielkość tego drugiego otworu dobrać należy eksperymentalnie, tak aby uzyskać odpowiednią mieszankę powietrza i paliwa. Źródło paliwa - Axe Bullet - zamontowany został na serwomotorze, jak pokazano na zdjęciu powyżej. Gdy serwomotor zostanie aktywowany wciska on puszkę w komorę spalania działa i rozpyla w jej wnętrzu paliwo.
Trójnik do rury PCV wykorzystany został do skonstruowania prostego magazynka, pokazanego na jednym ze zdjęć. Magazynek pokazany na zdjęciach jest w stanie przechowywać do trzech pocisków. Następnie wkręcamy śrubę w rurę PVC - lufę - co uniemożliwi piłeczce wyturlanie się samemu z komory. Podczas testowania komory (jak i budowy) warto mieć na sobie odpowiednie akcesoria ochronne.
Krok 4: Raspberry Pi i jego podsystemy
Jak wspominano powyżej, RPi odpowiedzialne jest za komunikację z kontrolerem serwomotorów i z Arduino. Jego rolą jest także przechwytywanie obrazów z kamery.
Płytka z serwomotorami
Postępuj zgodnie z instrukcją zamieszczoną tutaj. Upewnij się, że masz podłączone zewnętrzne zasilanie dla serwomotorów. Komunikacja po I?C powinna zająć 4 przewody. Należy się upewnić jaką wersję Raspberry Pi ma się u siebie, gdyż od tego zleży z jakiego portu I?C korzysta się w systemie.
Arduino
Port TX/RX RPi połączony jest z analogicznym portem w module Arduino, co umożliwia im komunikację. Porty połączone są przez translator poziomów, ponieważ wyjścia RPi są w standardzie 3,3 V, a Arduino pracuje z napięciem 5 V. Translator taki można kupić w postaci gotowego modułu, albo zbudować samodzielnie - dokumentacja dostępna jest w internecie.
Kamera
Wystarczy skorzystać z tego tutoriala, i postępować krok po kroku, aby podłączyć dedykowaną kamerę do Raspberry Pi.
Krok 5: Oprogramowanie dla Raspberry Pi
Oprogramowanie dla Raspberry Pi jest odrobinę bardziej skomplikowane niż sprzęt w tym projekcie. Poniżej opisano krok po kroku jak je zrealizować.
Najpierw z GitHuba pobrać należy oprogramowanie napisane przez autora. Znaleźć można je tutaj. System operacyjny Raspbian znajdziemy tutaj i załadujemy go z bootowalnej karty SD. Dalej musimy na systemie włączyć obsługę SSH, co opisano tutaj. Korzystając z Putty logować możemy się poprzez SSH na RPi, a FileZilla pomoże nam przesyłać pliki.
Nasz system musi posiadać statyczne IP w naszej sieci, tak abyśmy za każdym razem mogli łatwo logować się poprzez SSH do RPi. Dzięki wykorzystaniu SSH nie musimy podłączać do komputera klawiatury ani monitora. Tutaj opisano w jaki sposób zrealizować taki system.
Kamerę włączamy w raspi-config, podobnie czynimy z interfejsem I?C. Musimy to zrobić, inaczej system nie będzie działał poprawnie. Kamera wymaga 128 MB pamięci do działania, więc musimy w raspi-config zadedykować co najmniej tyle karcie graficznej Raspberry Pi. Jeśli nie korzystamy z Raspberry Pi 2, to autor doradza podkręcenie naszego komputera co najmniej do poziomu Medium.
Płytka kontrolująca serwomotory
Jeśli wszystko co opisano powyżej działa poprawnie, możemy przejść dalej. Z linka do GitHuba pobrać musimy, z foldery servo, dwa pliki: piservo.py i pimotor.py.
Piservo.py zawiera kod kontrolujący serwomotory poruszające działem czołgu, a pimotor.py zawiera kod kontrolujący silniki poruszające czołgiem i serwo odpowiedzialne za przeładowanie. W plikach można dokonać niewielkich zmian, zależnie od potrzeb. Następnie, zależnie od ustawień portu I?C na naszej maszynie musimy ustawić konfigurację w pliku Adafruit_PWM_Servo_Driver.py:
Folder skopiować należy na Raspberry Pi, można go potem przenieść w inną lokalizację na RPi. Można, korzystając z VI lub Nano, zautomatyzować uruchamianie powyższych programów, dodając w etc/rc.local using VI or Nano następujące linijki:
[code:1]sudo python /your/file/location/piservo.py &
sudo python /your/file/location/pimotor.py &[/code:1]
Arduino
W programie zawartym pimotor.py, otwieramy port komunikacji szeregowej pozwalający na wysyłanie komunikatów pomiędzy RPi a Arduino. Rozmaite komunikaty informują Arduino co powinno się teraz stać .
Kontrola nad strumieniem wideo
Ten etap jest chyba najtrudniejszym do skonfigurowania. Wykorzystano tutaj system opisany tutaj. Instalacja tego oprogramowania jest dosyć prosta. Program ten pozwala na nadawanie strumienia wideo bezpośrednio na stronę WWW. W przypadku tego robota strona ta została rozbudowana o przyciski do kontroli poczynań maszyny. Aby tak zrobić musimy, po kolei:
Wchodzimy w html -> js ->php control scheme
Musimy przeedytować kilka plików w /var/www.
Kopiujemy jquery-2.1.1.min.js, pimotor.js oraz piservo.js so /var/www/js.
Robimy kopię zapasową index.php w /var/www i nadpisujemy go tym, jaki pobraliśmy z GutHuba autora projektu.
Kopiujemy pimotor.php i piservo.php do /var/www/.
Kopiujemy layout.css do /var/ww/css.
Krok 6: Hardware modułu Arduino
Arduino odpowiedzialne jest za kontrolę nad silnikami i przekaźnikami, odpowiedzialnymi za wystrzał piłeczki. Komunikuje się z RPi poprzez translator poziomów.
Silnik
Wystarczy postępować zgodnie z instrukcją postępowania zamontowanego shielda, obsługującego silniki.Trzeba pamiętać, aby dołączyć zewnętrzne zasilanie dla silnika.
Zapalnik i przekaźnik
Spójrzmy na diagram urządzenia. Zapalnik działa po naciśnięciu przycisku. Wewnątrz zapalnika znajdują się dwie baterie AA.
Kro 7: Oprogramowanie dla Arduino
Wystarczy wgrać na Arduino pobrany plik serialwithpi.ino.
Krok 8: Składanie wszystkiego w całość
Montaż całego czołgu najlepiej zrealizować metodą prób i błędów. Zależnie od wykorzystanych elementów dokładna instrukcja montażu będzie inna. Wystarczy spojrzeć na powyższe zdjęcia i wykorzystać je jako sugestię, jak to powinno wyglądać.
Działo przymocowane jest do serwomotora z pomocą drewnianego patyczka i obejmy do rur, RPi zamontowane jest w systemie z pomocą kolejnego patyczka i kleju na gorąco
Krok 9: Testowanie
Jeśli wszystko zostało poprawnie połączone i zaprogramowane powinno móc wpisać adres IP RPi do przeglądarki i zobaczyć stronę WWW z przyciskami kontrolnymi i widokiem z kamery. Oczywiście trzeba uruchomić dwa wymienione powyżej skrypty Pythona. Jeśli chcemy, aby robota można było kontrolować z dowolnego miejsca na świecie, pozostaje nam jedynie ustawić forwardowanie odpowiednich portów na routerze.
Źródło: http://www.instructables.com/id/PiTank-A-web-controlled-tank-with-real-time-video-/?ALLSTEPS
Poniższy opis natomiast przedstawia - krok po kroku - jak zbudować podobnego robota we własnym zakresie. Opisano nawet najmniejsze detale projektu. W kwestiach, które nie zostały opisane, można odnieść się do poradników, do których zamieszczono w treści linki.
Krok 1: Potrzebne elementy
Zamieszczona poniżej lista potrzebnych do konstrukcji elementów jest dosyć ogólna i należy ją traktować jako spis najważniejszych elementów. Nie jest to na pewno spis wszystkich potrzebnych do konstrukcji drobiazgów, tym bardziej, że dużą część wykorzystanych materiałów można wymienić na inne, bardziej dostępne w Waszej okolicy.
Elementy do podłączenia do Raspberry Pi:
1 x Moduł Raspberry Pi - dowolna wersja
1 x Kamera do Raspberry Pi
1 x Karta Wifi
1 x Moduł Adafruit Servo
1 x Moduł Bateryjny USB - należy się upewnić, że może dawać 2A prądu na swoim wyjściu
2 lub 3 x Serwomotory - 2 jeśli chcemy tylko obracać i podnosić działo, jeden dodatkowo do mechanizmu przeładowującego działo
1 x Uchwyt pozwalający na przekręcanie w dwóch osiach
Trochę kabelków, aby to wszystko połączyć.
Taśma izolacyjna.
Kable USB
Kabel HDMI
Translator poziomów zasilania - Raspberry Pi wymaga napięcia I/O 3,3 V na swoich cyfrowych GPIO.
Z kolei wraz z Arduino nabyć musimy:
1 x Moduł Arduino Uno
1 x Shield Arduino Motor
1 x Płytka przekaźnikowa
Trochę kabelków do połączenia wszystkiego
Silniki, jeśli nasze podwozie nie jest już w nie wyposażone
1 x Zestaw dwóch baterii AA do zapalarki gazu
1 x Zestaw sześciu baterii AA dla silników
Finalnie, do konstrukcji działa potrzebne nam będą:
Butelka po wodzie
Rura z ABSu lub PVC o średnicy wewnętrznej odrobinę większej niż średnica pocisku.
Trójnik do rur PVC
Zapalarka do gazu
Drewniane patyczki
Finalnie, potrzebne będzie jakieś podwozie. Zastosować można w zasadzie dowolne, ale wskazane jest znalezienie robota z napędem na cztery koła, napęd na dwa spowoduje, że robot będzie wolniejszy.
Dodatkowo potrzebne są następujące narzędzia:
Śrubokręt
Kombinerki
Pistolet z lejem
Super Glue
Lutownica, cyna etc
Wiertarka
Krok 2: Opis systemu
W robocie wyróżnić możemy dwa główne elementy - systemy:
Raspberry pi:
Główny kontroler systemu.
Jest hostem strony WWW służącej do kontroli robota.
Kontroluje kamerę.
Kontroluje serwa.
Komunikuje się z Arduino poprzez interfejs szeregowy.
Arduino
Kontroluje silniki poruszające pojazdem.
Kontroluje przekaźnik i zapalarkę do gazu.
Krok 3: Budowa działa
Działo jest chyba najfajniejszym elementem całej konstrukcji. Wykonane jest ono z twardego, przeźroczystego plastiku (komora) z lufą z rury PVC i kilkoma dodatkowymi elementami zamocowanymi do komory. Zasada działania tej broni jest bardzo prosta - polega na spalaniu w komorze paliwa, co powoduje eksplozję i wyrzut pocisku.
Lufa zamocowana jest do butelki z pomocą kleju, nakładanego na ciepło. Następnie do tej konstrukcji montuje się drewniane elementy, mające umożliwić montaż serwomotora, który obsługuje źródło paliwa, którym jest w tym przypadku dezodorant.
W butelce wykonać trzeba dwa niewielkie otwory, do umieszczenia w środku przewodów zapalnika oraz jeden większy otwór, pozwalający na podawanie do komory spalania paliwa-dezodorantu. Wielkość tego drugiego otworu dobrać należy eksperymentalnie, tak aby uzyskać odpowiednią mieszankę powietrza i paliwa. Źródło paliwa - Axe Bullet - zamontowany został na serwomotorze, jak pokazano na zdjęciu powyżej. Gdy serwomotor zostanie aktywowany wciska on puszkę w komorę spalania działa i rozpyla w jej wnętrzu paliwo.
Trójnik do rury PCV wykorzystany został do skonstruowania prostego magazynka, pokazanego na jednym ze zdjęć. Magazynek pokazany na zdjęciach jest w stanie przechowywać do trzech pocisków. Następnie wkręcamy śrubę w rurę PVC - lufę - co uniemożliwi piłeczce wyturlanie się samemu z komory. Podczas testowania komory (jak i budowy) warto mieć na sobie odpowiednie akcesoria ochronne.
Krok 4: Raspberry Pi i jego podsystemy
Jak wspominano powyżej, RPi odpowiedzialne jest za komunikację z kontrolerem serwomotorów i z Arduino. Jego rolą jest także przechwytywanie obrazów z kamery.
Płytka z serwomotorami
Postępuj zgodnie z instrukcją zamieszczoną tutaj. Upewnij się, że masz podłączone zewnętrzne zasilanie dla serwomotorów. Komunikacja po I?C powinna zająć 4 przewody. Należy się upewnić jaką wersję Raspberry Pi ma się u siebie, gdyż od tego zleży z jakiego portu I?C korzysta się w systemie.
Arduino
Port TX/RX RPi połączony jest z analogicznym portem w module Arduino, co umożliwia im komunikację. Porty połączone są przez translator poziomów, ponieważ wyjścia RPi są w standardzie 3,3 V, a Arduino pracuje z napięciem 5 V. Translator taki można kupić w postaci gotowego modułu, albo zbudować samodzielnie - dokumentacja dostępna jest w internecie.
Kamera
Wystarczy skorzystać z tego tutoriala, i postępować krok po kroku, aby podłączyć dedykowaną kamerę do Raspberry Pi.
Krok 5: Oprogramowanie dla Raspberry Pi
Oprogramowanie dla Raspberry Pi jest odrobinę bardziej skomplikowane niż sprzęt w tym projekcie. Poniżej opisano krok po kroku jak je zrealizować.
Najpierw z GitHuba pobrać należy oprogramowanie napisane przez autora. Znaleźć można je tutaj. System operacyjny Raspbian znajdziemy tutaj i załadujemy go z bootowalnej karty SD. Dalej musimy na systemie włączyć obsługę SSH, co opisano tutaj. Korzystając z Putty logować możemy się poprzez SSH na RPi, a FileZilla pomoże nam przesyłać pliki.
Nasz system musi posiadać statyczne IP w naszej sieci, tak abyśmy za każdym razem mogli łatwo logować się poprzez SSH do RPi. Dzięki wykorzystaniu SSH nie musimy podłączać do komputera klawiatury ani monitora. Tutaj opisano w jaki sposób zrealizować taki system.
Kamerę włączamy w raspi-config, podobnie czynimy z interfejsem I?C. Musimy to zrobić, inaczej system nie będzie działał poprawnie. Kamera wymaga 128 MB pamięci do działania, więc musimy w raspi-config zadedykować co najmniej tyle karcie graficznej Raspberry Pi. Jeśli nie korzystamy z Raspberry Pi 2, to autor doradza podkręcenie naszego komputera co najmniej do poziomu Medium.
Płytka kontrolująca serwomotory
Jeśli wszystko co opisano powyżej działa poprawnie, możemy przejść dalej. Z linka do GitHuba pobrać musimy, z foldery servo, dwa pliki: piservo.py i pimotor.py.
Piservo.py zawiera kod kontrolujący serwomotory poruszające działem czołgu, a pimotor.py zawiera kod kontrolujący silniki poruszające czołgiem i serwo odpowiedzialne za przeładowanie. W plikach można dokonać niewielkich zmian, zależnie od potrzeb. Następnie, zależnie od ustawień portu I?C na naszej maszynie musimy ustawić konfigurację w pliku Adafruit_PWM_Servo_Driver.py:
Code: python
Folder skopiować należy na Raspberry Pi, można go potem przenieść w inną lokalizację na RPi. Można, korzystając z VI lub Nano, zautomatyzować uruchamianie powyższych programów, dodając w etc/rc.local using VI or Nano następujące linijki:
[code:1]sudo python /your/file/location/piservo.py &
sudo python /your/file/location/pimotor.py &[/code:1]
Arduino
W programie zawartym pimotor.py, otwieramy port komunikacji szeregowej pozwalający na wysyłanie komunikatów pomiędzy RPi a Arduino. Rozmaite komunikaty informują Arduino co powinno się teraz stać .
Kontrola nad strumieniem wideo
Ten etap jest chyba najtrudniejszym do skonfigurowania. Wykorzystano tutaj system opisany tutaj. Instalacja tego oprogramowania jest dosyć prosta. Program ten pozwala na nadawanie strumienia wideo bezpośrednio na stronę WWW. W przypadku tego robota strona ta została rozbudowana o przyciski do kontroli poczynań maszyny. Aby tak zrobić musimy, po kolei:
Wchodzimy w html -> js ->php control scheme
Musimy przeedytować kilka plików w /var/www.
Kopiujemy jquery-2.1.1.min.js, pimotor.js oraz piservo.js so /var/www/js.
Robimy kopię zapasową index.php w /var/www i nadpisujemy go tym, jaki pobraliśmy z GutHuba autora projektu.
Kopiujemy pimotor.php i piservo.php do /var/www/.
Kopiujemy layout.css do /var/ww/css.
Krok 6: Hardware modułu Arduino
Arduino odpowiedzialne jest za kontrolę nad silnikami i przekaźnikami, odpowiedzialnymi za wystrzał piłeczki. Komunikuje się z RPi poprzez translator poziomów.
Silnik
Wystarczy postępować zgodnie z instrukcją postępowania zamontowanego shielda, obsługującego silniki.Trzeba pamiętać, aby dołączyć zewnętrzne zasilanie dla silnika.
Zapalnik i przekaźnik
Spójrzmy na diagram urządzenia. Zapalnik działa po naciśnięciu przycisku. Wewnątrz zapalnika znajdują się dwie baterie AA.
Kro 7: Oprogramowanie dla Arduino
Wystarczy wgrać na Arduino pobrany plik serialwithpi.ino.
Krok 8: Składanie wszystkiego w całość
Montaż całego czołgu najlepiej zrealizować metodą prób i błędów. Zależnie od wykorzystanych elementów dokładna instrukcja montażu będzie inna. Wystarczy spojrzeć na powyższe zdjęcia i wykorzystać je jako sugestię, jak to powinno wyglądać.
Działo przymocowane jest do serwomotora z pomocą drewnianego patyczka i obejmy do rur, RPi zamontowane jest w systemie z pomocą kolejnego patyczka i kleju na gorąco
Krok 9: Testowanie
Jeśli wszystko zostało poprawnie połączone i zaprogramowane powinno móc wpisać adres IP RPi do przeglądarki i zobaczyć stronę WWW z przyciskami kontrolnymi i widokiem z kamery. Oczywiście trzeba uruchomić dwa wymienione powyżej skrypty Pythona. Jeśli chcemy, aby robota można było kontrolować z dowolnego miejsca na świecie, pozostaje nam jedynie ustawić forwardowanie odpowiednich portów na routerze.
Źródło: http://www.instructables.com/id/PiTank-A-web-controlled-tank-with-real-time-video-/?ALLSTEPS
Cool? Ranking DIY