spark core (lepsza wersja arduino z wifi)

spark_io

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

spark core

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.

spark-pinout

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ń).

Jeśli ktoś byłby zainteresowany zakupem, to proszę dać znać (namiar w KONTAKT) – może razem zamówimy i podzielimy koszty transportu po równo.

pocket #2: programowanie MSP430 z Launchpad, AVR (bez IDE) z Arduino, zegarek LED i elektroniczna waga WIFI

Oto kolejna część projektów, które zapisałem w swoim pockecie, jako ciekawe i interesujące. Zgodnie z poprzednim artykułem (Arduino alarm, ne555, Teensy, bsp430, Nanino i Arduino tutorials) postanowiłem się dzielić wybranymi – może ktoś z Was znajdzie dla siebie coś inspirującego.

Linkuję do wpisów na forach, blogach i innych serwisach elektronicznych oraz z zakresu Do It Yourself.

elektronika_hash2

Zaczynam od wpisów starszych (w zasadzie jednych z początkowych na liście), aczkolwiek poniższe opisy uzupełniam o aktualny stan, który się dzieje wokół produktów, oprogramowania czy też projektów.

1) Programowanie mikrokontrolerów Texas Instruments przy pomocy zestawu TI Launchpad MSP430 – w zasadzie jest to dość proste rozwiązanie, ponieważ wszystkie zestawy Launchpad mają wbudowany programator, który można odłączyć (zwykle goldpiny) od reszty zestawu (niestety nie zawsze da się rozdzielić PCB). Niemniej pod powyższym linkiem znajduje się dobrze zrobiony wideo-poradnik dla osób dopiero rozpoczynających przygodę z tymi zestawami.

2) Programowanie AVR przy użyciu Arduino, ale tylko jako programatora (pomijając IDE Arduino przy tworzeniu kodu) – bardzo ciekawy manual (z linkami do wielu źródeł uzupełniających – jak choćby sposobów obliczania fusebit dla AVR) rozpoczęcia przygody z poważnym programowaniem AVR (niektórzy twierdzą, że Arduino jest jak niegdyś bardzo popularny Bascom; osobiście uważam, że jest w tym trochę prawdy, ale z zastrzeżeniem, że popieram – każdy język i środowisko jest dobre, jeśli umie się z niego korzystać).

3) Przenośny zegarek LED (mieszczący się w dłoni) – bardzo dobrze dopracowany projekt oparty o AVR ATmega645P zegarka, który pokazuje czas na 132 diodach LED (60 odpowiedzialnych za minuty, 60 odpowiedzialnych za sekundy i 12 za godziny). Autor udostępnia do projektu na swoim githubie (link w artykule o zegarku) wszystkie źródła – łącznie z projektem obudowy do druku 3D!

zegarek LED

4) Ostatnim ciekawym projektem z mojego pocketu w dzisiejszym wpisie jest elektroniczna waga podpięta poprzez Arduino i WiFi do dokumentów googla. Trochę trudno czyta się kod ze względu na używanie przez autora nazw zmiennych i opisów kodu po włosku. Niemniej projekt wart jest przeanalizowania i wykorzystania we własnych rozwiązaniach.

Miłego kabelkowania!