Elektroda.pl
Elektroda.pl
X
Computer Controls
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Arduino NANO 33 IoT, recenzja, uruchomienie, testy

TechEkspert 24 Wrz 2019 18:50 2469 14
  • Arduino NANO 33 IoT, recenzja, uruchomienie, testy
    Arduino NANO 33 IoT to nowa wersja modułu NANO z poziomami logicznymi 3.3V (uwaga na moduły rozszerzeń z 5V I/O), mikrokontrolerem ARM SAMD21G18A, łącznością WiFi i Bluetooth NINA W102, oraz 6 osiowym IMU LSM6DS3. Na PCB znajduje się bezpieczny magazyn kluczy ATECC608A wykorzystywany w bezpiecznej komunikacji z chmurą Arduino IoT. Płytka pozwala na montaż powierzchniowy SMT, lub wlutowanie i wykorzystanie złącz szpilkowych goldpin. Mikrokontroler taktowany jest zegarem do 48MHz, wyposażony jest w pamięć flash 256KB, oraz 32KB RAM. Poza wyjściami PWM dostępne są także wyjście 10b DAC. Przetworniki ADC dysponują rozdzielczością 12b. Do prób z modułem została wykorzysta wersja 1.8.9 środowiska Arduino.

    Arduino NANO 33 IoT, recenzja, uruchomienie, testy
    Arduino NANO 33 IoT, recenzja, uruchomienie, testy

    Antena modułu WiFi/BT wykonana jest w postaci metalowej kształtki, zabezpieczonej przed drganiami kroplą kleju termicznego:
    Arduino NANO 33 IoT, recenzja, uruchomienie, testy

    Dodajemy płytkę "nano 33" Narzędzia -> Płytka -> menadżer płytek:
    Arduino NANO 33 IoT, recenzja, uruchomienie, testy

    Wybieramy płytkę i port:
    Arduino NANO 33 IoT, recenzja, uruchomienie, testy

    Jeżeli będziemy chcieli korzystać z IMU dodajemy bibliotekę LSM6DS3:
    Arduino NANO 33 IoT, recenzja, uruchomienie, testy

    Akcelerometr lub żyroskop może przydać się przy sterowaniu pojazdami np. dwukołowym pojazdem balansującym, ew. stabilizacją/pozycjonowaniem kamery, lub umożliwi wykrywanie ruchu i wybudzanie urządzenia, być może w aplikacjach fitnes da się zliczać ilość kroków lub rodzaj aktywności?

    Przetestujmy funkcjonalność chmury Arduino IoT.
    Zakładamy konto: https://www.arduino.cc/en/IoT/HomePage
    po założeniu konta klikamy "NEW THING" na: https://create.arduino.cc/iot/

    Wybieramy model płytki Nano 33 IoT:
    Arduino NANO 33 IoT, recenzja, uruchomienie, testy

    Aby konfigurować płytkę z poziomu przeglądarki Chrome lub Firefox pobieramy i instalujemy wtyczkę 'Arduino Create'. Po poprawnym zainstalowaniu wtyczki zostanie ona wykryta w przeglądarce, oraz pojawi się ikona w zasobniku systemowym.
    Konsola debug dostępna jest pod adresem http://127.0.0.1:8991/
    Do testów wykorzystałem przeglądarkę Firefox.
    Arduino NANO 33 IoT, recenzja, uruchomienie, testy

    Podłączamy płytkę do USB, gdy zostanie wykryta nadajemy jej nazwę.
    Przechodzimy do konfiguracji płytki, pierwszy etap to automatyczna konfiguracja układu kryptograficznego.
    Otrzymujemy startowy kod do wgrania na płytkę, oraz możliwość podania hasła i nazwy punktu dostępowego WiFi 2.4GHz:
    Arduino NANO 33 IoT, recenzja, uruchomienie, testy

    Dodane urządzenie znajdziemy tutaj: https://create.arduino.cc/devices/

    Dodajemy możliwość sterowania LED na płytce:
    https://create.arduino.cc/iot/things

    Arduino NANO 33 IoT, recenzja, uruchomienie, testy

    Arduino NANO 33 IoT, recenzja, uruchomienie, testy

    oraz przechodzimy do edycji kodu online:
    https://create.arduino.cc/editor

    Arduino NANO 33 IoT, recenzja, uruchomienie, testy

    Kod: c
    Zaloguj się, aby zobaczyć kod


    w funkcji:
    void onLedChange() {
    // Do something
    digitalWrite(13, led);
    }

    dodajemy linijkę:
    digitalWrite(13, led);
    co pozwoli na sterowanie LED na płytce z wykorzystaniem chmury Arduino.
    W sekcji setup dodajemy także konfigurację wyjścia 13: pinMode(13, OUTPUT);

    Kompilujemy i wysyłamy na płytkę, wracamy do IoT cloud.

    Możemy sterować zmienną led, a następnie świeceniem LED na płytce z wykorzystaniem przeglądarki:
    Arduino NANO 33 IoT, recenzja, uruchomienie, testy

    Interfejs web edytora oraz IoT cloud działa dość ospale, a czasami pojawiają się błędy, ale w łatwy sposób możemy przetestować właściwości urządzeń IoT.

    Spróbujmy odczytać wartości z akcelerometru na PCB i przesłać je do chmury.

    Dodajemy możliwość odczytu jednej z 3 wartości przyspieszenia wysyłanych przez akcelerometr:
    Arduino NANO 33 IoT, recenzja, uruchomienie, testy

    Modyfikujemy kod w edytorze online:
    Kod: c
    Zaloguj się, aby zobaczyć kod


    Możemy obserwować w przeglądarce zmiany wartości wysyłane przez IMU:
    Arduino NANO 33 IoT, recenzja, uruchomienie, testy

    Bezpłatny, a także płatny dostęp do edytora online i chmury ma swoje ograniczenia:
    Arduino NANO 33 IoT, recenzja, uruchomienie, testy



    Odpocznijmy na chwilę od chmury i wracamy do edytora offline bez ograniczeń, spróbujmy wykorzystać 12b przetworniki ADC oraz 10b przetwornik DAC.

    Jako przykład uruchomimy elektroniczne obciążenie o regulowanej mocy. Zwykle w takich układach mamy regulowany stały prąd wymuszany przez sztuczne obciążenie, tym razem spróbujemy wymuszać stałą moc.
    Napięcie na wyjściu DAC0 (pin 4) po wzmocnieniu 3-4x wysteruje bramkę tranzystora MOSFET (wzmocnienie dobrać tak aby wykorzystać cały zakres DAC oraz zapewnić odpowiednie napięcie na bramce tranzystora).
    Na wejście ADC A1 (pin 5) podamy napięcie wejściowe z obciążanego układu podane przez dzielnik 1:10, napięcie wejściowe 0-20V będzie odpowiadało 0-2V.
    Na wejście ADC A2 (pin 6) podamy wzmocnione napięcie na rezystorze 0.1om, który służy do pomiaru prądu płynącego w układzie. Wzmocnienie 10X zapewni napięcia 0-2V dla prądów 0-2A.
    Na wejście ADC A3 (pin 7) podamy napięcie ustawiane potencjometrem, będą to nastawy mocy jaką obciążymy podłączone źródło zasilania.
    Na konsoli szeregowej będziemy obserwowali ustawioną moc, napięcie i prąd oraz traconą moc.

    Arduino NANO 33 IoT, recenzja, uruchomienie, testy

    Napięcie i prąd wyjściowy pozwoli na obliczenie mocy P=U*I, natomiast sterowanie napięciem bramki tranzystora MOSFET pozwoli na regulację prądu.

    Zmieniając algorytm sterujący można uzyskać sztuczne obciążenie o stałej rezystancji, lub o stałym prądzie, jednak stałoprądowe elektroniczne obciążenie można zbudować w oparciu o pojedynczy wzmacniacz operacyjny.

    Do sterowania można wykorzystać regulator PID jednak dla uproszczenia wykorzystamy tylko blok I. Czas odpowiedzi będzie dość długi, ale układ będzie dążył do ciągłej minimalizacji błędu.

    Tak wygląda prymitywny układ testowy:
    Arduino NANO 33 IoT, recenzja, uruchomienie, testy

    Kod testowy:
    Kod: c
    Zaloguj się, aby zobaczyć kod


    W konsoli szeregowej można obserwować działanie układu:

    Arduino NANO 33 IoT, recenzja, uruchomienie, testy

    Rezultaty są średnie, występuje zauważalny błąd pomiaru napięcia, układ ma dość długi czas odpowiedzi (przypomina nieco ręczne kręcenie gałką przyrządu), ale stara się utrzymywać stałą moc niezależnie od zmian napięcia podłączonego zasilacza. Może to być wstęp do eksperymentów tego typu, zarówno z kodem jak i z częścią układową (oba warto rozbudować).

    Arduino NANO 33 IoT jest dwukrotnie droższe od poprzednio testowanego Arduino NANO Every i jest wyposażone w mikrokontroler o większych zasobach i bogatszych peryferiach. Większa rozdzielczość ADC i obecność DAC może przydać się w projektach z sygnałami analogowymi. Płytka pracuje z napięciami 3.3V. Moduł posiada układ IMU oraz łączność WiFi i BT, układ kryptograficzny, a także wsparcie dla chmury IoT Arduino. Zaskoczyły mnie ograniczenia kompilatora online od Arduino, oraz ograniczenia chmury IoT zarówno w wersji bezpłatnej i płatnej.

    Jakie macie pomysły na wykorzystanie Arduino NANO 33 IoT, co myślicie o narzędziach online i chmurze IoT od Arduino?


    Arduino NANO 33 IoT, recenzja, uruchomienie, testy

    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
    O autorze
    TechEkspert
    Redaktor
    Offline 
    W moich materiałach znajdziecie testy i prezentacje sprzętu elektronicznego, modułów, sprzętu pomiarowego, eksperymenty. Interesuje mnie elektronika cyfrowa, cyfrowe przetwarzanie sygnałów, transmisje cyfrowe przewodowe i bezprzewodowe, kryptografia, IT a szczególnie LAN/WAN i systemy przechowywania i przetwarzania danych.
    Specjalizuje się w: elektronika, mikrokontrolery, rozwiązania it
    TechEkspert napisał 2727 postów o ocenie 1817, pomógł 6 razy. Jest z nami od 2014 roku.
  • Computer Controls
  • #2
    khoam
    Poziom 34  
    Dodam jedynie, że Arduino NANO 33 IoT wspierane jest przez PlatformIO (link), również w zakresie debugowania (Atmel-ICE, Black Magic Probe lub J-LINK) programów napisanych z użyciem Arduino HAL.

    Dodano po 4 [minuty]:

    Arduino HAL w wersji dla tej płytki oparte jest na Mbed RTOS - można jednocześnie korzystać z MBed API.
  • Computer Controls
  • #3
    TechEkspert
    Redaktor
    Dzięki za podpowiedź, nie znam tego jak to działa? np. J-LINK trzeba się podłączyć na jakieś określone piny, czy jest to właściwość mikrokontrolera udostępniana np. po USB na płytce.
  • #4
    khoam
    Poziom 34  
    TechEkspert napisał:
    J-LINK trzeba się podłączyć na jakieś określone piny

    Tutaj znajdziesz odpowiedź:
    https://medium.com/@manuel.bl/arduino-in-circuit-debugging-with-platformio-9f699da57ddc
  • #5
    TechEkspert
    Redaktor
    OK, rozumiem, można się wlutować, ale wygodniejsze byłoby złącze z tzw. "pogo pins".
  • #6
    khoam
    Poziom 34  
    Pewnie tak, ale ta płytka jest przeznaczona przede wszystkim do instalacji w płytce stykowej (po wlutowaniu pinów) - ilu "arduinowców" używa debuggera? ;)
  • #8
    khoam
    Poziom 34  
    krzbor napisał:
    Ten układ kosztuje ponad 100zł, czyli niemal tyle ile Raspberry pi 3!

    Faktycznie jest to cena "kolekcjonerska". Z drugiej strony, ludzie nadal kupują za 90+ PLN poczciwe, oryginale Uno, więc czemu się dziwić.

    krzbor napisał:
    ja nie widzę wielkiej przewagi tego układu nad ESP32.

    Nie widzę w ogóle jakiejkolwiek przewagi nad ESP32, bo NINA W102 na tej płytce to właśnie ESP32 :)
  • #10
    khoam
    Poziom 34  
    ditomek napisał:
    A możne już coś takiego jest?

    Był Arduino Leonardo Ethernet, ale już jest wycofany ze sprzedaży.

    Natomiast Esspresif sprzedaje ESP32-Ethernet-Kit, ale to już kosztuje 60+ USD.
    https://docs.espressif.com/projects/esp-idf/e...st/hw-reference/get-started-ethernet-kit.html
  • #11
    Pantera33
    Poziom 11  
    Ja może dodam ze swej strony, że bluetooth to BLE. Nie ma profilu serial. Dodatkowo ta antenka to jakieś nieporozumienie jest - urwałem toto w 5min. po wyjęciu z pudełka. Klej tego w ogóle nie trzyma - strasznie delikatne to. Na szczęście dało się z powrotem przylutować - tym razem klej porządnie podgrzałem. Z BLE są problemy, bo apki ze sklepu nie czytają - mało jest przykładów - tylko nRF Connect mi działa poprawnie...
  • #14
    TechEkspert
    Redaktor
    To nieliczny przedstawiciel modułu z ethernet,
    można też zrobić "na piechotę" ESP32 + układ ethernet (w oryginale LAN8710A).
  • #15
    khoam
    Poziom 34  
    ditomek napisał:
    ideałem byłoby połączenie wydajności ESP, fizycznego portu ETH, pinów w pokaźnej ilości i łatwości programowania

    Stosunkowo łatwo można wykonać sobie taki "supermoduł" z dwóch innych tak, jak to opisano tutaj:
    https://sautter.com/blog/ethernet-on-esp32-using-lan8720/
    Moduł LAN8720 jest na ali tani, jak barszcz: 2$ z wysyłką. Przejściowka dla ESP32 w podobnej cenie (bez samego ESP32). Wszystko łącznie nie powinno przekroczyć 10$.