niedziela, 22 lutego 2015

Intel Edison pierwsza odsłona - obudowa i wyprowadzenia

Postanowiłem obudzić blog bo zaopatrzyłem się w nową zabawkę. Intel Edison zaskakuje wielkością i możliwościami. Ponieważ nie mam za sobą doświadczeń z Arduino, wybrałem wersję z Intel Edison breakout board. Wersja Board for Arduino nie ma głównej zalety - miniaturowego rozmiaru.

Nie będę wszystkiego opisywać od początku. Bardzo dobry opis na początek zamieścił Sidwarkd.
Poniżej moja implementacja. 

Intel Edison breakout board battery

Na początku trochę mi nie szło. Długo szukałem odpowiedniej obudowy. W sprzedaży nic ciekawego nie ma, ale przypadkiem znalazłem stare opakowanie od spinaczy :) Okazało się idealne :)

Obudowa Intel Edison breakout, case 1 Obudowa Intel Edison breakout, case 2 Obudowa Intel Edison breakout, case 3

Moja lutownica odmówiła mi posłuszeństwa i musiałem wspomóc się wsparciem zewnętrznym, ale w końcu udało się też wyprowadzić wyjścia Expansion Header na gildpin-y. Najlepiej wyciąć 2 kawałki 2x14 z prostej listwy 2x40. 

Intel Edison breakout header goldpins

I ostatnie. Dodałem małą bateryjkę 140mAh. Wytrzymuje około 1,5 godziny, idealnie by móc przenieść instalację w inne miejsce bez konieczności wyłączania. Trzeba ją podłączyć do J2 (czerwony kabelek od zewnętrznej strony).

Może komuś się przyda zestawienie wyjść z mini breakout board. Niestety oryginalna dokumentacja Intela zawiera błędy. Chwilę mi zajęło dojście gdzie co jest wyprowadzone. 

Intel Edison breakout header pins 1 Intel Edison breakout header pins 1



sobota, 14 grudnia 2013

Sterowanie

Odkryłem właśnie system MIT App Inventor 2. Po zainstalowaniu na androidzie aplikacji z PlayStore o nazwie "MIT AI2 Companion" i wejściu na stronę projektu można myszką zaprogramować proste aplikacje. Łączność z Raspberry Pi może być przez wspólny AP WiFi (przez odwołania do http) lub przez Bluetoot (są moduły server/client).
Aplikacji dopiero zacząłem pisać (a może klikać :). Poniżej aktualny stan. Znalazłem ciekawy opis po polsku na forbot.pl, ale jeszcze nie przeczytałem.



Do czasu ukończenia aplikacji, używam sterowania przez klawiaturę radiową.

Zastanawiałem się jeszcze nad sterowaniem na podczerwień. Dowolny pilot i czujka TSOP4838, ale to daje dużo mniejsze możliwości niż android.

Silniczki dc, servo

Najważniejsze by wał silniczka był zakończony ośką lego oraz by łatwo go było przymocować do innych klocków. Pierwsze osiągnąłem przyklejając klejem z cyanopanem nawiercony i lekko przycięty "Axle Pin Tan (nr 3749)" lub bezpośrednio najmniejszą zębatkę (nr 3647)
Drugie zadanie osiągnąłem przyklejając od spodu jakiś płaski klocek Lego.
Chwilowo eksperymentuję i jeszcze nie wybrałem które silniczki będą najlepsze i które sposoby mocowania są najlepsze. Poniżej aktualne próby:
Testuję:
Mini silnik mt64 (Botland)
Silnik dc katowy z przekładnią 1:120 (Botland)
Przekladnia Tamiya (Botland)
Servo Redox s90 (Botland)
Małe silniczki wymontowane z zepsutych zabawek (najczęściej wiatraczków z cukierkami)

Oczywiście każdy rodzaj silniczka musi być odpowiednio podpięty do RPi i często zabezpieczony. Sposoby podpięcia są dobrze opisane na Adafruit. Tu podaję linki: servo i silnik DC. Z krokowego chwilowo zrezygnowałem bo potrzebuje zbyt wielu pinów GPIO. Posiadam L293D. Pozwala obsłużyć 2 silniczki DC. Silniczek servo nie potrzebuje zabezpieczenia.

Zostaje kabelek. Nie wybrałem jeszcze jakie będzie złącze. Może goldpin?

Wyświetlacz LCD

Posiadam wyświetlacz LCD pracujący z RPi przez SPI. Na rynku są dostępne różne, ale jeden jest do kupienia na allegro i jest stosunkowo tani. Znajdziecie go wpisując " ST7735" z właczonym wyszukiwaniem w treści ogłoszeń. Jego cena to około 30-35pln i jego sercem jest kontroler ST7735. Rozdzielczość 160x128 wystarczy by wyświetlić konsolę i zrobić proste czynność  (np. wyświetlenie IP) lub wyświetlać graficzne informacje potrzebne do interaktywnych zabaw. Instrukcja dodania obsługi ST7735 do Raspbiana jest tutaj. Do programowania interfejsu graficznego użyłem PyGames.

Zasilanie

Posiadam PowerBank 10A z wyjściami USB 2A i 1A. Pozwala on całkiem długo pracować, ale jest stosunkowo ciężki. Na początek do testów wystarczy.



Docelowo przygotowuję drugie zasilanie na sześć baterii AA ze stabilizatorem napięcia. Posiadam moduł zasilania AMS1117-5V, kupiony kiedyś na Allegro, który zamienia 6-12V na 5V, ale nie wiem czy da wystarczające natężenie (zdaje się, że obcina do 800mA). Będę eksperymentować.


piątek, 13 grudnia 2013

Serce projektu - Raspberry Pi

Rasberry Pi oczywiście w obudowie z klocków. Trochę ma mało wyjść GPIO, ale chwilowo udało mi się rozplanować podłączenia i wystarczyło dla modułów które chcę podłączyć. Gdy zabraknie portów zostanie podłączenie expandera GPIO - MCP23017-E/SP lub przejście na BeagleBone Black.


Jeszcze robię schemat podłączeń. Poniżej aktualna wersja. Jeszcze nie testowana. Sprawdzałem każdy z modułów oddzielnie ale nie jako całość.


Na początku zrobię tymczasowy "multikabel" ;) czyli pęk kabelków zakończonych goldpinowymi wtykami, który łączy testowane przeze mnie elementy.

Docelowo zrobię płytkę rozszerzeń w oparciu o RPi Proto Board lub rozbuduję płytkę, którą zrobiłem wcześniej do sensorów I2C.



Początek projektu: Robot Lego - po mojemu

Moje dziecko właśnie dorosło do klocków Lego (wiek 4+). Ciocia kupiła pierwszy zestaw klocków i tak się zaczęło. Budowanie domków ale też samochodów, robotów. Oczywiście z przyjemnością dałem się wciągnąć do zabawy. Aż się prosi by konstrukcje zaczęły się ruszać. Jednak elementy ożywiające Lego dostępne na rynku, mają dość małe możliwości w stosunku do ceny. A może chciało mi się po prostu pobawić w zrobienie czegoś z niczego. W każdym razie tak narodził się pomysł zbudowania własnego zbioru elementów, pozwalających ożywić zabawki Lego. Nie jestem elektronikiem, a wszystko co opisałem poniżej traktuję jako zabawę. Może jednak komuś przydadzą się moje doświadczenia, dlatego postanowiłem je opisać. Jeśli masz pomysł jak to zrobić lepiej, daj znać na email.
Wspomnę jeszcze o inspiracjach. najpierw trafiłem na youtube na filmiki J. Mantzel. Pokazał jak z prawie z niczego zbudować ruszające się Lego.Gdy sam zbudowałem podobne stwierdziłem jednak że klej będzie lepszy niż gumki recepturki i oczywiście dodałem Raspberry Pi, bo już sie nim wcześniej trochę bawiłem. Wiele rozwiązań z RPi jest opisanych na learn.adafruit.com. Ciekawy projekt jest na picoboard.pl o nazwie SPiBot. 
Mój projekt jest oczywiście w fazie koncepcyjnej i tylko część rzeczy jest już wykonanych. Opis będzie się rozwijał w miarę postępu prac. 

Założenia:

  1. stworzone elementy mają być modułowe i pozwalać łatwo tworzyć nowe konstrukcje z klocków
  2. sercem na początek będzie Raspberry Pi, choć zastanawiam się też nad Beaglebone Black ze względu na ilość wyprowadzeń GPIO
  3. główne elementy/moduły:
    • jednostka centralna Raspberry Pi,
    • zasilanie 6xAA lub PowerBank,
    • wyświetlacz LCD na interfejsie SPI (1.8" 160×96 pixeli)
    • silnik servo,
    • silniki dc,
    • kamera,
    • głośniczek,
    • czujniki i2c (accelerometr, kompas, barometr itd.),
    • czujniki 1Wire (termometr, IR resiver),
    • inne: czujnik zbliżeniowy, czujnik ruchu itd.
    • sterowanie: aplikacja na smartfon napisana w MIT App Inventor 2 (BT lub WiFi)
    • sterowanie: klawiatura radiowa