sobota, 18 listopada 2017

Testy połączeń platformy, o linuxie i trochę konfigurowania stuffu :)

Okej na początek fotka 
Czas na sprawdzenie teorii w praktyce i pierwszy test układu jezdnego
Dla celów testowych umieszczamy nasze podwozie na czymś co spowoduję niestykanie się rolek napędowych z powierzchnią i demontujemy gąsienice.
Na razie przecież nie chcemy, aby nasza platforma odjechała, tym bardziej, że póki co mamy komputer BeagleBone Black podpięty do komputera przez UART.
Później się będę zastanawiał jak rozwiążę zdalne przesyłanie oprogramowania i ewentualnych modyfikacji do platformy. Na razie szczerze mówiąc nie mam pojęcia jak to zrobić - ale nie pali się:)

Dobra czas na kod. Na początek napisałem prosty skrypt "na cztery koła" nazywając go np. test.py - wy możecie sobie go nazwać jak wam się żywnie podoba:

import Adafruit_BBIO.PWM as PWM

import time
pin1 = "P9_14"
pin2 = "P9_16"
pin3 = "P8_19"

pin4 = "P8_13"

PWM.start(pin1,0)
PWM.start(pin2,0)
PWM.start(pin3,0)
PWM.start(pin4,0)
PWM.set_duty_cycle(pin1, 100)
PWM.set_duty_cycle(pin2, 100)
PWM.set_duty_cycle(pin3, 100)
PWM.set_duty_cycle(pin4, 100)
time.sleep(60)
PWM.stop(pin1)
PWM.stop(pin2)
PWM.stop(pin3)
PWM.stop(pin4)
PWM.cleanup()

Jeśli wszystko jest prawidłowo połączone i zasilane, to koła powinny obracać się parami "ku sobie" przez czas jaki założymy w zmiennej time.sleep() w moim przypadku to np. 60, czyli minuta czasu :)
Pliki programów moim zdaniem najlepiej umiejscowić sobie w następującym katalogu:
/var/lib/cloud9/nazwa_katalogu - ta ostatnia to wg życzenia.
Narzędzie Cloud9 będzie wtedy łatwo znajdowało nasze programy i nie trzeba będzie się kopać po plikach i katalogach. Oczywiście, jak kto jest bardziej biegły w temacie to może to sobie zrobić w inny sposób. Ja zrobiłam jak umiałem :)
Oczywiście pliki te warto sobie co jakiś czas kopiować na PC np. za pomocą programu WinScp, aby w razie jakiejś awarii, konieczności instalacji wszystkiego od nowa mieć kopię zapasową swojej pracy:)

Do poprawnej pracy potrzebujemy jeszcze biblioteki Adarfuit PWM, którą można zainstalować stosując instrukcje zamieszczone tutaj:


lub tutaj:


Adafruit BBIO jest to taki zestaw narzędzi napisanych w Pythonie i ciągle aktualizowanych, które służą do obsługi i dostępu do konfiguracji  pinów  GPIO, PWM, ADC oraz UART w tej platformie.
Nie wiem dokładnie jak funkcjonują wszystkie te narzędzia więc proszę, jeśli ktoś to czyta nie pytajcie mnie o to. Generalnie konfiguracja standardowa, powinna się znaleźć w każdym aktualnym obrazie Debiana wspierającym tą platformę.
Ja osobiście zalecam używanie jak najbardziej aktualnego obrazu Debiana dla tej płytki dostępnego na przykład na Beaglebone.org w zakładce "Latest Software Images".
Do tego obrazu zaleca się instalację jądra w wersji 4.14.x, po to aby włączyć kontrolę nad konfiguracją GPIO i PWM z poziomu innego użytkownika niż /root - ot choćby to to aby móc swobodnie korzystać z platformy programistycznej Cloud9 "wszytej" w ten obraz, która korzysta jedynie z uprawnień standardowego usera.
Na dzień dzisiejszy ja osobiście używam takiego kernela:

root@beaglebone:~# uname -a
Linux beaglebone 4.4.91-ti-r136 #1 SMP Thu Nov 2 02:28:07 UTC 2017 armv7l GNU/Linux

Wziętego stąd:


Jakkolwiek Developerzy zalecają na dzień dzisiejszy Debiana w wersji 9,2 "Stretch" iot z (2017-10-29), ja mam wersję z nieco nowszym kernelem i wszystko działa bez zarzutu - przynajmniej na razie :)

Myliłby się jednak ten kto by sądził, że poszło to wszystko tak pięknie, ładnie i zgrabnie. Zanim udało się odpalić ten prosty programik - test, co jest powyżej, dobry miesiąc testowałem razem z developerami wskazane przez nich różne testy, polecenia i konfiguracje obrazów, zanim pojawił się obraz, który działa sensownie i stabilnie.
Nie będę wszystkiego tu opisywał szczegółowo, bo uczciwie mówiąc nie jestem jakimś Linux'owym guru, ale koniec końców udało się i wszystko działa.

W tym miejscu chciałbym podziękować panom z github.com - Drew Fustini'emuRobertowi C Nelson'owi za pomoc i wyjaśnienie zawiłości oraz wskazanie co i jak zrobić :)
Co jeszcze? Aha, nowe wersje Adafruit_BBIO mogą być kompatybilne wstecznie ale, jak ktoś chce to niech testuje już we własnym zakresie:)

Poniżej przedstawiam film z jednego z pierwszych testów platformy:
To tyle na dziś. Trzymta się ludziska :)

Brak komentarzy:

Prześlij komentarz