Spark Core wpadł mi w ręce już dość dawno. Zbudowałem nawet na nim półautomatykę do akwarium, ale trochę się tam marnował – płytka stworzona jest do dużo wyższych celów, niż decydowanie czy rybki powinny mieć już widno lub pokazywanie jaką mają temperaturę wody poprzez stronę www.
Czy jest Spark Core?
Spark Core to w pełni funkcjonalne środowisko projektowe dla początkujących, jak i zaawansowanych konstruktorów. Projekt rozwinięty został dzięki pomocy Kickstartera, gdzie osiągnął spektakularny sukces.
System jest kompatybilny z Arduino, posiada sieć wifi w standardzie 802.11 b/g, przyjazne API, kompatybilność z płytkami stykowymi i możliwość programowania przez wifi. Ostatnia funkcjonalność jest o tyle ciekawa, że w module można podmieniać program w dowolnej lokalizacji – ważne, żeby był podłączony do internetu.
Parametry techniczne to:
– 32-bitową jednostkę STM32 taktowaną zegarem 72MHz na architekturze ARM Cortex M3
– 128KB pamięci flash i 20KB pamięci RAM
– zintegrowany moduł Texas Instruments SimpleLink CC3000 Wi-Fi
– EEPROM (przeznaczony dla konfiguracji CC3000)
– 2MB zewnętrznej pamięci flash,
– zasilanie 3.3V (wbudowany regulator zasilania)
– typowy pobór prądu na poziomie 50mA
– maksymalny pobór prądu (w peaku) 300mA (np podczas zdarzeń transmisji danych)
– może być programowany i zasilany przez kabel micro USB
– posiada 8 pinów I/O
– posiada 4 kanały (piny) PWM
– posiada 8 pinów I/O analogowych
– obsługuje UART (Serial), SPI i I2C sprzętowo
– zasięg Wi-Fi to 30-100m
Jak zaprogramować Spark Core?
Pierwsze, co jest inne, to że IDE jest w wersji webowej. Trzeba wejść na stronę projektu, zalogować się, wejść w ustawienia i za pierwszym razem skonfigurować połączenie z urządzeniem. W tym momencie niezbędne jest podłączenie fizyczne. Wymaga tego konfiguracja poprzez terminal – trzeba uzyskać token, który następnie dodajemy w IDE oraz skonfigurować sieć (ręcznie podaje się nazwę sieci, kodowanie i hasło). Następnie system się resetuje i to wszystko. Od razu działa.
Jak to jest z kompatybilnością z Arduino?
Podobnie jak w samym Arduino. Niby standard, ale płytki typu Uno, Yun czy Mega średnio do siebie pasują (zgodnością pinów). Biblioteki pod różnymi platformami sprzętowymi nie zawsze w ten sam sposób się zachowują. Podobnie jest w projekcie Energia.no, gdzie głównie chodzi o zachowanie zgodności składni, a nie 100% przenoszalność bibliotek.
Co jeszcze jest w tym ciekawego?
Poza możliwością zdalnego programowania przez sieć i kompaktowości rozwiązania (płytka jest chyba mniejsza niż Arduino mini) wyróżnia się ponadprzeciętna intuicyjność oraz bardzo dobra dokumentacja.
Zbudowana społeczność rośnie, autorzy nie zapomnieli o wzorowym wsparciu w postaci not dokumentacji i narzędzi do komunikacji pomiędzy uczestnikami projektu (forum, etc).
Dodatkowo można kupić shieldy dla Spark Core i w bardzo prosty sposób rozbudować go o kilka przekaźników czy zasilanie bateryjne. Jest też shield shield – płytka, która jest shieldem dla Sparka i Arduino jednocześnie – dzięki niej można wykorzystać już posiadane moduły od 8-bitowego starszego brata (ważne, żeby tylko sprawdzić kompatybilność i wykorzystanie wyprowadzeń).