SantyagoSantyago
YouTube RSS Google+ Facebook GitHub

Kategorie wpisów

Reklama na Blogu

Najnowsze poradniki

Ostatnie komentarze

Popularne wpisy

Facebook

Google+

Ostatnie fotografie

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

Geolokalizacja

Nie odnaleziono Twojego adresu IP w bazie danych TrackIP. Jeśli chcesz pomóc w rozwoju projektu - zarejestruj swój adres.

Natrafiłem dziś na bardzo interesującą płytkę o nazwie NanoPi z układem ARM Samsung S3C2451 taktowany zegarem 400MHz oraz wyposażoną w 64MB pamięci RAM DDR2 133Mhz. Wymiary tego maleństwa to zaledwie 75mm x 30mm.

W cenie 16$ dostajemy również:

  • zintegrowany moduł WiFi oraz Bluetooth (układ AP6210)
  • port USB Host 1.1 (Typ A)
  • port microUSB, który może posłużyć do zasilania jak i do transmisji danych (również jako Ethernet)
  • port Serial Debug
  • slot kart pamięci microSD
  • złącze interfejsu LCD o rastrze 0.5mm z obsługą RGB 8-8-8
  • złącze kamer DVP o rastrze 0.5mm z obsługą ITU-R BT 601/656 8-bit, I2C, I/O
  • 40-pinowe złącze GPIO o rastrze 2.54mm zgodne z Raspberry Pi (UART, SPI, I2c, I/O)
  • dodatkowe 12-pinowe złącze GPIO (I2S, I2c, UART)

Płytka obsługuje u-Boot, a także posiada wsparcie dla dystrybucji Debian oraz Linux-4.1+Qt.

Zastanawia mnie jedynie w jaki sposób rozwiązano obsługę kamer, ponieważ zastosowany tutaj układ Samsunga, który akurat nie wspiera kompresji wideo. Tak czy inaczej pozycja ta wydaje się bardzo ciekawa i może znaleźć sporą ilość zastosowań. 

Więcej informacji znajdziecie na stronie producenta: http://nanopi.org

Reklama

W poprzednim tygodniu opisywałem świetną płytkę NodeMCU v2 opartą na układzie ESP8266. Oprócz podstawowych zagadnień, pokazywałem również jak wgrać nowy firmware w postaci binarnej jaki przygotowali twórcy. Najnowsza dostępna wersja w dniu tego wpisu to NodeMCU 0.9.6 datowana na 2015/02/16. Możemy jednak wgrać nowszy build, a nawet skorzystać z rozwojowego drzewa dev120.

Wszystko czego będziemy potrzebowali to Linuksa, trochę czasu i odrobinę miejsca na dysku twardym (około 4GB)

ESP Open SDK

W pierwszej kolejności sklonujmy repozytorium ESP Open SDK i przygotujmy zestaw odpowiednich narzędzi:

  1. cd ~
  2. mkdir nodemcu
  3. cd nodemcu/
  4. git clone https://github.com/pfalcon/esp-open-sdk.git
  5. cd esp-open-sdk/
  6. make STANDALONE=y

W zależności od posiadanego sprzętu i prędkości sieci, proces ten może zając od kilku do kilkunastu minut. Po tym czasie powinien wyświetlić się komunikat o pomyślnym wykonaniu zadania z prośbą o modyfikację zmiennej środowiskowej PATH. W moim przypadku będzie to:

  1. export PATH=/home/korneliusz/nodemcu/esp-open-sdk/xtensa-lx106-elf/bin:$PATH

Sprawdźmy jeszcze, czy wszystko jest poprawnie, wydając poniższe polecenie:

  1. xtensa-lx106-elf-gcc -v

Using built-in specs.
COLLECT_GCC=xtensa-lx106-elf-gcc
COLLECT_LTO_WRAPPER=/home/korneliusz/nodemcu/esp-open-sdk/xtensa-lx106-elf/libexec/gcc/xtensa-lx106-elf/4.8.2/lto-wrapper
Target: xtensa-lx106-elf
Configured with: /home/korneliusz/nodemcu/esp-open-sdk/crosstool-NG/.build/src/gcc-4.8.2/configure --build=x86_64-build_unknown-linux-gnu --host=x86_64-build_unknown-linux-gnu --target=xtensa-lx106-elf --prefix=/home/korneliusz/nodemcu/esp-open-sdk/xtensa-lx106-elf --with-local-prefix=/home/korneliusz/nodemcu/esp-open-sdk/xtensa-lx106-elf/xtensa-lx106-elf/sysroot --disable-libmudflap --with-sysroot=/home/korneliusz/nodemcu/esp-open-sdk/xtensa-lx106-elf/xtensa-lx106-elf/sysroot --with-newlib --enable-threads=no --disable-shared --with-pkgversion='crosstool-NG 1.20.0' --disable-__cxa_atexit --with-gmp=/home/korneliusz/nodemcu/esp-open-sdk/crosstool-NG/.build/xtensa-lx106-elf/buildtools --with-mpfr=/home/korneliusz/nodemcu/esp-open-sdk/crosstool-NG/.build/xtensa-lx106-elf/buildtools --with-mpc=/home/korneliusz/nodemcu/esp-open-sdk/crosstool-NG/.build/xtensa-lx106-elf/buildtools --with-isl=/home/korneliusz/nodemcu/esp-open-sdk/crosstool-NG/.build/xtensa-lx106-elf/buildtools --with-cloog=/home/korneliusz/nodemcu/esp-open-sdk/crosstool-NG/.build/xtensa-lx106-elf/buildtools --with-libelf=/home/korneliusz/nodemcu/esp-open-sdk/crosstool-NG/.build/xtensa-lx106-elf/buildtools --enable-lto --enable-target-optspace --disable-libgomp --disable-libmudflap --disable-nls --disable-multilib --enable-languages=c,c++
Thread model: single
gcc version 4.8.2 (crosstool-NG 1.20.0):

Możemy przystąpić do budowania firmware

Ponownie klonujemy repozytorium - tym razem zawierające firmware:

  1. cd ~/nodemcu/
  2. git clone https://github.com/nodemcu/nodemcu-firmware.git
  3. cd nodemcu-firmware.git/

Na tym etapie musimy zdecydować, czy interesuje nas gałąź master (obecnie z wersją 0.9.6), czy może chcemy spróbować deweloperskiej wersji 1.2.0. Jeśli tak, wybieramy gałąź dev120. Jeśli nie, pomijamy poniższe polecenie:

  1. git checkout dev120

Na koniec nie pozostaje nam już nic innego, jak wydanie polecenia kompilacji:

  1. make

Kiedy kompilacja dobiegnie końca, możemy przygotować nasz firmware i wgrać go NodeMCU v2 (oczywiście podłączająć go do USB):

  1. tools/esptool.py elf2image app/.output/eagle/debug/image/eagle.app.v6.out
  1. tools/esptool.py write_flash -fm dio -fs 32m -ff 40m 0x00000 app/.output/eagle/debug/image/eagle.app.v6.out-0x00000.bin 0x10000 app/.output/eagle/debug/image/eagle.app.v6.out-0x10000.bin

I praktycznie tyle. Sprawdźmy jeszcze za pomocą minicoma, czy rezultat jest zgodny z oczekiwaniami:

  1. minicom -D /dev/ttyUSB0 -b 9600

Po restarcie powinniśmy ujrzeć świeży firmware:

Custom firmware

Przed kompilacją i wgraniem, możemy zmodyfikować konfigurację naszego firmwareu edytując plik app/include/user_modules.h.

Właśnie tutaj zdecydujemy o dostępności poszczególnych modułów, oszczędzając tym samym cenne kilobajty.

Hardkernel ostatnio nie zasypuje gruszek w popiele i uchylił rąbka tajemnicy o poprawionej wersji płytki ODROID-C1+, którą obecną wersję miałem już okazję testować jakiś czas temu. W moim osobistym przekonaniu, ta kosztująca zaledwie 35$ płytka wykorzystująca czterordzeniowy układ SoC Amlogic S805 stała się realnym konkurentem dla Raspberry Pi 2.

Argumentem koronnym obozu przeciwnego wyższości "maliny" nad konkurentem były problemy obsługi CEC przez ODROIDa. Tym razem, będzie trzeba będzie znaleźć inne przeszkody, ponieważ poprawiona rewizja C+ już tego problemu nie posiada.

W dalszym ciągu wykorzystuje ona ten sam układ SoC i poasiada identyczną ilość pamięci RAM (1GB). Jednak poprawna obsługa CEC to nie wszystkie usprawnienia. Wymieniono złącze HDMI, zastępując micro HDMI standardowym gniazdem Typu A. Poprawiono równiez kompatybilność z kartami SD oraz umożliwiono zasilanie płytki z gniazda USB OTG.


Czy tym razem ODROID-C1+ zaskarbi sobie serca "malinowców"? Nie wiadomo. Za społecznością Raspberry Pi stoi wielka społeczność i ogromne zasoby finansowe, które Hardkernel stara się nadgonić z co raz lepszym rezultatem. Trzymam kciuki!.

Jeśli interesujecie się wyświetlaczami TFT wykorzystującymi kontrolery FTDI Chip FT800/FT801, to bez wątpienia powinniście zwrócić uwagę na propozycję firmy Riverdi. Dzięki ogromnej uprzejmości firmy UNISYSTEM z Gdańska, otrzymałem do testów kilka wyświetlaczy wykorzystujące kontrolery FT800 jak i FT801.  Oba układy należą do grupy kontrolerów określanych mianem EVE (Embedded Video Engine), czyli z wbudowanym silnikiem wideo, znacząco przyśpieszającym działanie standardowych wyświetlaczy TFT z mniej wydajnymi MCU.

NodeMCU v2 jest płytką, która wykorzystuje cieszący się zasłużoną sławą układ ESP8266. Jeśli przyjrzymy się mu bliżej zauważymy, że wykorzystuje on najnowszą jego wersję w postaci 22 pinowego moduł ESP12E z wbudowanym 32-bitowym układem RISC taktowanym zegarem 80MHz. W odróżnieniu od standardowej wersji ESP12 wyróżnia się 10 portami GPIO, 2 portami UART oraz jednym 10-bitowym wejściem ADC. Każdy z portów GPIO może być wykorzystany jako PWM, I2c, SPI lub 1-Wire. NodeMCU v2 który otrzymałem do testów dzięki uprzejmości sklepu elty.pl można kupić za cenę 60 zł.