Intel Galileo – konfiguracja, pierwsze testy

Cześć i czołem!

Sprawdzam sobie ostatnio cóż to za prezent Microsoft mi sprawił, możliwości jego są spore,
aczkolwiek nie kosmiczne. Na pierwszy rzut oka widzę większą pamięć, 8MB flash to w porównaniu do
8KB na Atmedze8 to pieruńsko dużo. Połączenie możliwości aplikacji z
Windows API z Arduino też brzmi ciekawie.
Prosy narzekają że ta płytka jest do kitu, że powolna, że 1wire nie działa, łee wolę Malinę co za crap mi przysłali i tego typu historie. Co bardziej cwani zawiedzeni jakością płytki powystawiali je na alleDROgo i pochodne, jak to pisali na wykopach „bo mogą”. Ja uważam że tak nie wypada, nie po to je rozdawali.

Dwa tryby

Z tego co już rozkminiłem, płytka w wersji „od wujka Gates’a” może śmigać w dwóch trybach: jeden pod kontrolą Windowsa, drugi jako emulowane Arduino, gdzie możemy sobie w czystym Arduino na spokojnie działać. Emulator jak to emulator może niedomagać, ale lepszy rydz niż nic.
Przy pierwszym normalnie odpalamy z kartą pamięci w urządzeniu i podpinamy się przez ethernet RJ-45. Przy drugim kartę wyjmujemy przed uruchomieniem i wpinamy się kablem z wtykiem Micro USB pod złącze USB CLIENT w płytce. Sterowniki pod Galileo Arduinowe można znaleźć tutaj: https://communities.intel.com/docs/DOC-22226
Są one w paczce razem ze przygotowanym środowiskiem Arduino, więc nic tylko pobierać i śmigać.
Ucieszył mnie ten drugi tryb, jako że i tak o Arduino miałem zahaczyć ponieważ uważam, że drzemie w tej platformie spory potencjał. Zamówiłem i czekam sobie z tej intencji na prosty shield ze stykówką, będzie nieco wygodniej.

Korzystając z Windowsa na Intel Galileo, możemy zlecać mu rozkazy za pośrednictwem Telnetu. Można skorzystać z tego wbudowanego w windę co pokazuje oficjalny poradnik, ja jednak wolę uniwersalne PuTTY.
Po skończeniu zabawy zalecane jest wyłączenie płytki przez wpisanie komendy:  
shutdown /s /t 0
Z tym zamykaniem przyszedł mi do głowy pewien pomysł, żeby zrobić program śmigający jako proces w tle i mający przycisk podpięty jako przerwanie, pod którym wysyłana jest komenda do wyłączenia urządzenia. Ot taki wyłącznik ażeby mniej maltretować palce wstukując komendę. Niemniej dodatkowy proces w tle korzystający ze strony sprzętu kompletnie ścina odpalany przez nas program który tworzymy, debugujemy i z niego korzystamy. Być może jest to kwestia napisania programu, nie wiem, może ktoś wie? 😉


Pierwsze programy

Stykówka wraca do łask.

 Pierwsza rzecz, która mi przyszła do głowy to zegar. Poszperałem w sieci jak najprościej odczytać z windowsa godzinę, wyszperałem i taki prosty pierwszy przykład powstał.
http://goo.gl/xtFguA <- Link do pliku main (po wejściu można odczytać zawartość w przeglądarce)
Starczy dorzucić libsy od LCD: http://ms-iot.github.io/content/16x2LCD.htm

Dodatkowo, zaczynają się pojawiać kolejne przykłady na oficjalnej stronie: http://ms-iot.github.io/content/SampleApps.htm

Braki
Nie znalazłem ani słowa w dostarczonym od Microsoftu SDK o przerwaniach, prawdopodobnie jeszcze nie zostało to zaimplementowane do bibliotek. Zamiast tego mamy „przepiękne” delay’e na milisekundy i mikrosekundy.
Na standardowym Arduino przerwania są możliwe pinach 2,3. Być może, czy raczej na pewno dałoby się przeportować do Visuala biblioteki od przerwań z Arduino. Niemniej ja nie mam ochoty spędzać kolejne parę wieczorów nad czymś, czego nie jestem pewien że zrobię. Już wolę pobawić się na sprawnym sofcie w czystym Arduino.
Brak możliwości użycia 1wire trochę boli, niemniej jak internety mówią, jest to problem hardware’u a nie softu. Po prostu nie ogarnia tego.

A może jednak Linux?
Działczy

Jest dość szeroki poradnik na temat bawienia się w Galileo na Linuxie. Porzucając memorkę z Windowsem poza tym że ładowany jest emulator Arduino, rusza także zalążek Linuxa wbudowany w płytkę. Domyślnie nie ma z nim kontaktu ani przez ethernet, ani przez USB. Najprostszą drogą do połączenia się z Linuxem jest odpalenie telnetu komendami terminalowymi. Działa, można pokombinować też z Linuxem. Wszystko ładnie zostało opisane tutaj:
https://communities.intel.com/message/208564#208564 
Pobierając obraz linuxa ze tej strony (SD-Card Linux Image) i wrzucając go na kartę można poszerzyć linuxa o te parę dodatkowych komend, szmerów bajerów. Na tej stronie wspominają o możliwości wgrania debiana na Galileo, trzeba wykonać parę gwizdów, ale chyba w tym kierunku będę działał.

Peace