Lilypad Arduino: jak to uruchomić?

Lilypad… fioletowy:) Ale nie tylko o kolor tutaj chodzi. Według swoich twórców, płytkę zaprojektowano specjalnie do zastosowań typu „wearables” – elektroniki „ubieralnej” (?). Kiedyś szczytem tej kategorii były zegarki – zwłaszcza takie z kalkulatorkiem,  pamiętacie? Dzisiaj, za pomocą płytek takich jak Lilypad, możecie wzbogacić swoją odzież o element „smart”. Jak uruchomić taką płytkę?

shot_01

Arduino?

Porównując do pozostałych produktów z serii Arduino, płytka Lilypad ma dość oryginalny kształt: jest okrągła! Wyprowadzenia pinów znajdują się na jej obwodzie w formie dużych pól z oczkami:

shot_01 shot_03

Piny LillyPad (pobrane z forum arduino)

W zamierzeniu twórców oczka mają ułatwić np. przyszycie modułu do odzieży. W sprzedaży widziałem specjalną, przewodzącą prąd nitkę. Dzięki niej można łączyć ze sobą różne elementy kompatybilne z Lilypad (diody, przyciski i podobne). W związku z tym na płytce nie ma już innych otworów mocujących.

W stosunku do Arduino, zawartość płytki mocno zredukowano. Nie ma na niej stabilizatora – zasilanie idzie bezpośrednio na kontroler. Konieczne jest więc podłączenie stabilizowanego źródła 2.7-5.5V.

Nie ma tutaj złącza USB. Fabrycznie wlutowane są tylko piny dla UART. Umożliwiają one programowanie Lilypad. ISP wyprowadzono na płytkę – ale same piny trzeba wlutować samodzielnie.

Z płytek Arduino pozostała więc praktycznie… czerwona LED, tradycyjnie podpięta pod D13, oraz  przycisk reset. No i bootloader – fabrycznie wypalony.

328P? 328V? PV? AU?

W opisie oryginalnego  produktu stoi, że Lilypad może być napędzany przez dwa kontrolery: 168V lub 328V. Wersje „V” to nisko-napięciowe („low-voltage”) wersje czipów 168 i 328. „P” oznacza „picopower”, czyli czipy o zmniejszonym zapotrzebowaniu na moc. Czip może być jednocześnie „P” i „V” – to znaczy istnieją wersje 168, 168P i 168PV. Czipy oznaczone „V” zadowalają się niższym minimalnym napięciem zasilającym:

  • ATmega 168V: dla częstotliwości 0 – 4MHz może pracować od  1.8V, dla 0 – 10MHz: od 2.7V (do  5.5V)
  • ATmega168: dla częstotliwości 0 – 10MHz potrzebuje co najmniej 2.7V, dla 0 – 20MHz – co najmniej 4.5V (do 5.5V)

Różnica jest więc dość znaczna, ale trochę cierpi na tym maksymalna częstotliwość.

Tak było kiedyś. Od kilku lat chipy „V” zostały zastąpione przez produkowane w innej technologii czipy serii A. Stąd nie znajdziecie już 168PV, tylko 168PA. A 328? – po prostu „P”, ale o podobnych właściwościach jak „V”.

Na kontrolerze w moim Lilypad wydrukowano: MEGA328P-AU 1544. A więc jest to AtMega328P w obudowie 32-pinowej typu TQFP (montowanej powierzchniowo, stąd oznaczenie AU).  Spójrzmy na dokumentację:

manual_04Widać stąd, że kontroler przy częstotliwości 1 MHz może działać od napięcia zasilającego na poziomie 1.8V i w stanie aktywnym pobierze trochę ponad 200uA natężenia prądu. Maksymalna częstotliwość przy tym zasilaniu:

manual_05…to 4 MHz. Żeby „wyciągnąć” 10 MHz – potrzebne będzie już co najmniej 2.7V.

Jeżeli nie zależy Wam na prędkości, to dla wewnętrznego oscylatora 128kHz przy zasilaniu 1.8V można zejść do… 0.027mA, czyli 27 uA w stanie aktywnym!

Pozostaje jeszcze tajemnicze „1544”… To data produkcji: 44 tydzień 2015. Całkiem świeży:)

Zasilanie

Lilypad nie ma na sobie żadnego stabilizatora. To do naszych obowiązków należy dostarczenie odpowiedniego zasilania.  Nie ma też żadnych diod zabezpieczających przed odwrotną polaryzacją.

Lilypad może być zasilany napięciem do 5.5V. Przekroczenie tego poziomu (lub odwrócenie biegunów) doprowadzi do uszkodzenia kontrolera.

Ma to jednak swoje dobre strony. Brak bagażu stabilizatora i diod zabezpieczających sprawia, że Lilypad można zasilić np. z dwóch bateryjek AAA. 2.4V powinno starczyć, żeby pracował on z częstotliwością 1MHz. Można też użyć bateryjkę LiPo 1s. Nominalne 3.7V starczy na wiele:) Powiedzmy, że średni pobór prądu dla 1Mhz przy zasilaniu 3v (minimalna wartość dla ogniwa LiPo) to 500uA. 1mAh to będzie 2 godziny pracy. Dla 400mAh LiPo może to oznaczać nawet…  2×400 = 800 godzin pracy – czyli jakiś 30 dni:) Oczywiście szacunki te dotyczą samego kontrolera – jeżeli do Lilypad podłączycie coś więcej, nawet zaczniecie mrugać diodą na płytce – pobór mocy od razu wzrośnie.

Zasilanie należy podłączyć do pinów oznaczonych „+” i „-„.

ISP

Będziecie potrzebowali: Arduino UNO, 5 kabelków zakończonych krokodylkami, 5 kabelków męsko-męskich, kondensator elektrolityczny 10uF (lub podobny).

Chciałbym dowiedzieć się czegoś więcej na temat samego kontrolera. W przypadku „normalngo” Arduino użyłbym programatora ISP. Tutaj jednak odpowiednie piny nagłówka ISP nie są wlutowane:

ISP i pin reset na Lilypad
ISP i pin reset na Lilypad

W roli programatora użyję więc… dodatkowego Arduino UNO:

  1. Na Arduino UNO wypalcie szkic: File -> Examples -> Arduino ISP -> Arduino ISP, odłączcie UNO od komputera,
  2. Podłączcie UNO do Lilypad (przydadzą się przewody męsko-męskie i krokodylki):
    • Piny 13, 12, 11 UNO do takich samych na Lilypad,
    • Pin 10 UNO do RESET na łączu ISP Lilypad – wystarczy wetknąć kabelek męsko-męski do odpowiedniego padu na Lilypad (upewnijcie się, że nie wypadnie),
    • Pin 5V z UNO do „+” na Lilypad,
    • Pin GND z UNO do „-” na Lilypad,
  3. Na UNO: między pin Reset i GND wetknijcie kondensator elektrolityczny, krótszą nóżką („-„) do GND.
  4. Włączcie UNO do komputera; UNO powinno się uruchomić a razem z nim Lilypad.

Wygląda to tak:

shot_04UNO powinno pojawić się jako kolejne urządzenie USB.

Dla Linuksa, zakładając że nowe urządzenie to /dev/ttyACM1, wywołajcie:

Dla Windows, po „-P” powinniście podać port szeregowy, na którym pojawiło się Wasze Arduino, np. „-P COM2”.

Avrdude powinien zwrócić coś jak (część linii usunąłem dla jasności):

Ciekawa jest wartość lfuse=0xFF. Oznacza to, że:

  • Nie ustawiono CKDIV8, czyli częstotliwość zegara nie jest dzielona na 8,
  • Zegar ustawiono na zewnętrzny oscylator 8MHz.

I faktycznie, na schemacie odnajdziemy kwarc:

schmatics_06Przy częstotliwości 8MHz będziecie potrzebowali napięcia zasilającego na poziomie co najmniej 2.7V. Sprawdziłem to w praktyce: podłączyłem Lilypad do zasilacza laboratoryjnego. Dla napięcia zasilania 2.7V, płytka w ogóle nie ruszyła (ograniczenie C.C nie świeci – to odblask z C.V, taki aparat…):

shot_06Dopiero 2.74V ją uruchomiło:

shot_07Jeżeli chcecie ograniczyć pobór prądu – trzeba będzie zmienić wartość lfuse na np. 0x62. Wtedy wykorzystamy wewnętrzny rezonator RC, którego częstotliwość będzie dodatkowo dzielona na 8 – w sumie 1MHz. Do przetestowania:)

Więcej o fusach i programowanie Atmega przez ISP dowiecie się z: Kupione na wyprzedaży… uruchamianie Atmega8.

A IDE?

Będziecie potrzebowali: przejściówka USB2UART, kabelki żeńsko-żeńskie (pasujące do przejściówki i Lilypad).

Mimo że w menu Ardunino IDE można wybrać jako cel płytkę „Lilypad Arduino” – nie udało mi się w ten sposób zaprogramować mojego układu.

shot_00

Zadziałało ustawienie:

  • Płyta: Arduino Mini
  • Procesor: Atmega328
  • Port: port przejściówki USB.

Teraz pozostało połączyć Lilypad z przejściówką:

shot_02Zróbcie to w następujący sposób:

Pin przejściówki  Pin Lilypad
 GND B – 1 od lewej
2 od lewej
VCC 3 od lewej
TX 4 of lewej (RX)
RX 5 od lewej (TX)
RTS G – 6 od lewej

Możecie już pisać programy i wysyłać je na Lilypad.

Podsumowanie

Lilypad to takie kolejne wcielenie Arduino, ale przyciętego do konkretnych zastosowań. Ma sympatyczny kształt a mimo minimalistycznego wyposażenia – nadal do jego programowania można używać Arduino IDE.

Interesujące – a już wkrótce sprawdzę, czy faktycznie praktyczne.

Źródła

Dodaj komentarz