SantyagoSantyago
Avatar

Witaj!
Blog archiwalny. Już niebawem nowy serwis!

YouTube RSS Facebook GitHub

Arduino poradnik

Wstęp

Teoria

Biblioteki

Komponenty

Czujniki i sensory

Rozwiązania i algorytmy

Narzędzia

Mikrokontrolery i Arduino IDE

Arduino i klony

Poradniki wideo

Reklama na Blogu

Najnowsze poradniki

Ostatnie komentarze

Ostatnie fotografie

polskie-gorypolskie-gorypolskie-gorypolskie-gorypolskie-gorypolskie-gorypolskie-gorypolskie-gorypolskie-gorywieliczka-szyb-danilowicza

LinkIt ONE - idealna płytka dla zastosowań IoT

Jeśli szukacie ciekawej platformy do swoich projektów Internetu Rzeczy (IoT) to bez wątpienia powinniście zwrócić swoją uwagę na platformę LinkIt One od Seeedstudio, opracowaną we współpracy z MediaTek.

Bez ogródek można stwierdzić, że jest to wszystko-mająca platforma deweloperska (prawie)zgodna z Arduino, którą dostaniecie w sklepie elty.pl.

Płytka napędzana jest układem MT2502A (Aster, ARM7 EJ-STM), taktowanym częstotliwością 260MHz! Zawiera w sobie wbudowaną kartę Wi-Fi MT5931 pracującą w standardzie b/g/n oraz układ GPS MT3332.  Dodatkowo mamy możliwość skorzystania z sieci GSM we wszystkich częstotliwościach sieci 850/900/1800/1900MHz oraz nawiązywania połączeń internetowych GPRS Class12. Nie zapomniano również o Bluetooth BR/EDR oraz BLE (Dual Mode) oraz czytniku kart pamięci microSD Class10. Do dyspozycji dostajemy również 4MB pamięci RAM oraz 16MB pamięci Flash na której oprócz wsadu programu, możemy przechowywać konwencjonalne pliki.

W zestawie otrzymujemy:

  • Płytkę LinkIt One
  • Baterię Li-Po 3.7V 1000mAh
  • Antenę GPS
  • Antenę GSM
  • Antenę Bluetooth
  • oraz pokaźną mapę wyprowadzeń i przeznaczenia poszczególnych pinów

 

LinkIt One posiada identyczny układ pinów jak w Arduino UNO, więc przesiadka z obecnych przyzwyczajeń nie powinna być specjalnie trudna. Elektrycznie znaczące różnice to: trzy analogowe piny pracujące z napięciem 5V jako wejście lub wyjście oraz obowiązująca logika I/O 3.3V z maksymalnym obciążeniem 1mA na pin.

Nie marudzić w komentrzach, że tylko 1mA :) Tak, tak kochani - czas opanować nieszczęsne tranzystory :) 2N3904 dostaniemy już za 8groszy / sztukę.

Jeśli chodzi o PWM to są dostępne tylko dwa piny.

Na płytce znajdują się trzy przełączniki, których określona pozycja spełnia swoją rolę.

  • Przełącznik MS / UART - wybór pomiędzy trybem pracy USB (UART - tryb programowania, MS - tryb Media Storage, gdzie pamięć Flash będzie wykryta jako nośnik danych). Jeśli przełącznik znajdzie się w pozycji MS, program nie będzie wykonywany.
  • Przełącznik USB / BAT - wybór pomiędzy źródłem zasilania (gniazdo USB lub bateria). Jeśli wybierzemy pozycję USB z podłączoną baterię, będzie ona automatycznie ładowana.
  • Przełącznik SPI / SD - wybór interfejsu pracy SPI, jeśli wybierzemy pierwszą pozycję SPI będzie doprowadzone do pinów D10 - D13. Jeśli wybierzemy pozycję SD, będzie doprowadzony do czytnika kart microSD ulokowanego w slocie combo mSD/SIM.

Sama płytka posiada nieco większe wymiary (83mm x 53mm) niż Arduino UNO (69mm x 53).

Póki co, tylko Windows i MacOS

Na chwilę obecną (mam nadzieję) oprogramowanie SDK dla LinkIt One jest dostępne tylko dla użytkowników systemu Windows i MacOS. Ze strony projektu musimy zatem pobrać LinkItSDK i zainstalować. Aby uzyskać dostęp, musimy się najpierw zarejestrować. Do poprawnej instalacji jest wymagane już zainstalowane Arduino IDE w wersji 1.5.6 lub wyższej. Nie zalecam instalacji 1.6.x ponieważ mogą wystąpić kłopoty z kompilacją szkiców :)

Przez mękę przeprowadzi nas instalator, gdzie musimy podać lokalizację zainstalowanego Arduino IDE. Zainstaluje on odpowiednie dodatki oraz sterowniki USB Mediatek.

Po poprawnej instalacji, system wykryje dwa nowe urządzenia COM:

  • MTK USB Debug Port - służący do programowania płytki
  • MTK USB Modem Port - służący do obsługi monitora szeregowego

Zapamiętajmy jakie posiadają przypisane porty COM, bowiem od nich zależy czy dobrze wybierzemy odpowiendi port podczas programowania lub podglądu konsoli szeregowej.

Możliwe kłopoty, jakie możesz napotkać

Po jakimś czasie, nie wiedzieć czemu, Windows przestał wykrywać LinkIt One. Problemem okazało się urządzenie Alactel Single RNDIS, które na bezczela przejęło władzę nad urządzeniem, instalując swoje sterowniki. Nie przeszkadzało mu nawet, że nawet takiego nie posiadam. Usunięcie urządzenia i sterowników nie przyniesie ulgi, dlatego trzeba to zrobić inaczej:

Prawy klawisz na Alcatel -> Aktualizuj oprogramowanie sterownika -> Przeglądaj mój komputer w poszukiwaniu oprogramowania sterownika -> Pozwól mi wybrać z listy sterowników urządzeń na moim komputerze -> Wybieramy MTK USB Port -> Dalej


Po tym zabiegu wszystko wraca do normy.

Odpalamy Arduino IDE

Po uruchomieniu Arduino IDE mamy już dostępne urządzenie LinkIt One oraz dwa wspomniane porty. Pamiętajmy, programujemy płytkę wybierając ten port komunikacyjny, do którego został przypisany MTK USB Debug Port, monitor szeregowy natomiast do MTK USB Modem Port

Nie zapomniano również o przykładowych programach do obsługi wszystkich bajerów:

Przykładowy programy

Monitor stanu akumulatorka

Serwer Wi-Fi

GPS

GSM

Bluetooth

Drobna pułapka!

Arduino przyzwyczaiło nas do tego, że uruchomienie monitora szeregowego, powoduje restart urządzenia. W ten sposób nie przegapiliśmy istotnych informacji wyrzucanych przez Serial.print.

Tutaj tak nie jest. Po wgraniu programu i restarcie płytki, zanim przełączymy się na port MTK USB Modem Port, wiele się może wydarzyć i w ten sposób możemy przegapić istotne informacje. Dlatego można zastosować sztuczkę, dodając po Serial.Begin() dwie pętle while(), które wstrzymają działanie programu do czasu, kiedy uruchomimy konsolę i wyślemy w niej dowolny znak. Fragment ten widoczny jest na obrazku wyżej, zaznaczony kolorem żółtym.

  1.   while(!Serial.available());
  2.   while(Serial.available())Serial.read();

Pierwsza linia spowoduje oczekiwanie na "coś wpisanego" przez nas w monitor, natomiast druga spwoduje wyczyszczenie bufora, aby to co wpisaliśmy nie przedostało się do dalszej części programu.

Podsumowanie

Zadajmy sobie pytanie, czy warto? Myślę, że zdecydowanie tak!

Na jednej płytce, oprócz szybkiego potworka taktowanego zegarem 260MHz, dostajemy komplet wszystkich popularnych mediów komunikacyjnych BT/GSM/WIFI oraz takich elementów jak GPS oraz czytnik kart microSD.

Arduino UNO przeliczając 1 milion iteracji liczby Pi, uporał się z tym zadaniem w czasie 57 sekund, natomiast LinkIt One w czasie zaledwie 4 sekund. Prędkość portów I/O jest również przyzwoita, wynosząca ~380kHz vs. ~114kHz.

Bardzo spodobała mi się możliwość zasilania z akumulatorka i automatycznego ładowania, bez jej odpinania podczas programowania przez USB.

Do przykładowych programów również nie można się szczególnie "doczepić" - są kompletne i dobrze opisane komentarzami, więc nie powinniśmy mieć z nimi kłopotów.

W przykładach znalazłem również program do odtwarzania plików WAV z pamięci Flash lub karty mikroSD, bezpośrednio do wyjścia zestawu głośnomówiącego, które może posłużyć do wykonywania połączeń telefonicznych.

Jednak wielkim dla mnie minusem jest obecny brak wsparcia dla platformy Linux.

Reklama

Komentarze Komentarze
Avatar 1
mark Windows 7 / Safari 537.36
28 May 2015 - 14:48 Stalowa Wola

Czy tutaj można sterować wszystkimi I/O jak w zwykłym arduino?

Avatar 2
Korneliusz Linux x86_64 / Mozilla Firefox 34.0
04 June 2015 - 13:30 Bytom

Można