ID.nl logo
Arduino Nano RP2040 Connect review - Ontwikkelbordje voor IoT
© Reshift Digital
Huis

Arduino Nano RP2040 Connect review - Ontwikkelbordje voor IoT

De Arduino Nano RP2040 Connect is een krachtig microcontrollerbordje met wifi en bluetooth low energy, gebaseerd op de RP2040-microcontroller van de Raspberry Pi Foundation. Het bordje programmeren doe je in het Arduino-ecosysteem of met CircuitPython of MicroPython. Voor deze Arduino Nano RP2040 Connect review gingen we ermee aan de slag.

De Arduino Nano RP2040 Connect kost 29 euro en is het eerste microcontrollerbordje met de door de Raspberry Pi zelf ontwikkelde microchip RP2040. Deze vormt het hart van de eerder dit jaar geïntroduceerde Raspberry Pi Pico. Maar de chip bevat geen wifi of bluetooth, en de Raspberry Pi Pico is dan ook een ontwikkelbordje dat je kunt vergelijken met een klassieke Arduino van voor de tijd dat IoT doorbrak.

De makers van de Arduino hebben nu een eigen bordje rond de RP2040 gebouwd en daar een u-blox NINA-W102 wifi- en bluetooth-radiomodule aan toegevoegd: de Arduino Nano RP2040 Connect. Er zit ook een bewegingssensor in, een microfoon en een RGB-led.

En natuurlijk heb je nog altijd toegang tot vele gpio-pinnen, waardoor je er allerlei externe componenten op kunt aansluiten. Het bordje heeft het Arduino Nano-formaat en is dus relatief smal, waardoor er op een standaard breadboard aan de ene kant nog twee en aan de andere kant zelfs drie rijen plaats is.

Compatible met Arduino IDE

Uiteraard ondersteunt de Arduino IDE het nieuwe bordje. We probeerden dit uit in versie 2.0 bèta 7. Je dient eerst de Arduino Mbed OS Nano Boards-core te installeren. Het is wel te zien dat het bordje nog nieuw is, want niet alle documentatie is compleet. Aanvankelijk slaagden we er niet in om een sketch naar de Arduino Nano RP2040 Connect te uploaden, omdat de IDE het bordje niet detecteerde.

Na wat zoekwerk ontdekten we op het Arduino-forum dat je eenmalig een script moet uitvoeren. 

Onder Windows is dat:

%APPDATA%\Arduino15\packages\arduino\hardware\mbed_nano\2.1.0\post_install.bat

Onder Linux:

~/.arduino15/packages/arduino/hardware/mbed_nano/2.1.0/post_install.sh

En onder macOS:

~/Library/Arduino15/packages/arduino/hardware/mbed_nano/2.1.0/post_install.sh

Nadat we dat uitgevoerd hadden, lukte het uploaden wel.

Uf2-bootloader

Net zoals de Raspberry Pi Pico heeft de Arduino Nano RP2040 Connect een bootloader in het ROM van de RP2040 die uf2-images (USB Flashing Format) voor firmware ondersteunt. Dat is ook de reden waarom je tijdens het uploaden van je code in de Arduino IDE enkele seconden het apparaatje zich als een opslagapparaat ziet aankoppelen. Na het uploaden ontkoppelt het opslagapparaat zich weer.

Uf2 is een handige en veilige manier om firmware naar de Arduino Nano RP2040 Connect te schrijven zonder dat je daarvoor ontwikkeltools zoals de Arduino IDE nodig hebt. Koppel daarvoor de usb-aansluiting van het bordje af, verbind de GND- en REC-pinnen (onder het Arduino-logo aan de onderkant van het bordje) met een jumperdraad en verbind je bordje weer via usb met je computer.

De interne opslag wordt nu aangekoppeld. Dat werkt zowel onder Windows als Linux en macOS. Verwijder de jumperdraad. Je kunt nu eenvoudigweg een uf2-bestand naar de aangekoppelde opslag slepen, waarna de firmware wordt geïnstalleerd. Op deze manier kun je de uf2-versie van een Arduino-sketch uploaden, maar ook images van bijvoorbeeld MicroPython of CircuitPython.

©PXimport

Arduino IoT Cloud

Arduino focust zich met dit nieuwe bordje op IoT, en uiteraard is de integratie met de Arduino IoT Cloud dan ook belangrijk. We creëerden daarom in deze clouddienst van de Arduino-makers een Thing, en daar werd het bordje onmiddellijk gedetecteerd. Na het te selecteren als apparaat, schreef Arduino IoT Cloud de juiste firmware naar het bordje om veilig met de clouddienst te kunnen communiceren.

Daarna definieerden we in de Arduino IoT Cloud variabelen en voegden aan de aangemaakte sketch code toe om de bewegingssensor uit te lezen en de led aan te sturen. Nadat we deze sketch succesvol hadden geüpload, konden we ook boodschappen op de seriële monitor bekijken. Dit allemaal werkte heel eenvoudig in de webbrowser.

Arduino Nano RP2040 Connect specificaties

  • Processor: dual-core ARM Cortex-M0+ 133 MHz
  • Werkgeheugen: 264 KB SRAM
  • Flashgeheugen: 16 MB
  • Wifi: 802.11b/g/n
  • Bluetooth: BLE 4.2
  • GPIO’s: 22 (20 met PWM en 8 analoge)
  • Usb: micro-usb
  • Secure element: ATECC608A-MAHDA-T Crypto IC
  • Bewegingssensor: LSM6DSOXTR (6-assige IMU)
  • Microfoon: MP34DT05
  • Afmetingen: 18 x 45 mm
  • Gewicht: 6 g

Arduino-bibliotheken

De hardware van het bordje wordt goed ondersteund door allerlei Arduino-bibliotheken. Met de bibliotheek SM6DSOX kun je de bewegingssensor uitlezen, zowel de accelerometer voor de positie of beweging van het bordje als de gyroscoop waarmee je rotaties detecteert. De mems-microfoon lees je uit met de bibliotheek PDM, die automatisch wordt geïnstalleerd met de Arduino Mbed OS Nano Boards-core.

Voor wifi maak je gebruik van de bibliotheek WiFiNINA en voor bluetooth low energy van ArduinoBLE. Dit zijn allemaal bibliotheken die ook andere Arduino-bordjes met de juiste hardware ondersteunen, dus veel van je programmeerkennis van andere Arduino-bordjes kun je hergebruiken voor de Arduino Nano RP2040 Connect. Uiteraard zijn ook standaardbibliotheken zoals SPI, Wire (voor I²C) en Serial (voor UART) ondersteund, zodat je allerlei externe componenten op je bordje kunt aansluiten.

©PXimport

MicroPython en CircuitPython

Je kunt de Arduino Nano RP2040 Connect ook beschouwen als een Raspberry Pi Pico met extra hardware, en dan is MicroPython een populaire optie. Op het moment van schrijven is er helaas nog geen officieel MicroPython-image voor het bordje, maar wel een van het daarvan afgeleide CircuitPython.

We installeerden CircuitPython 6.3.0 op het bordje, en daarna koppelde zich een opslagapparaat met de naam CIRCUITPY aan, waarin het bestand code.py te vinden is met een programma dat “Hello world” toont. We startten daarna de Python-editor Mu in de CircuitPython-modus. Een eenvoudig CircuitPython-script dat de ingebouwde led doet knipperen konden we gewoon in code.py op het opslagapparaat opslaan, waarna de led van de Arduino Nano RP2040 Connect begon te knipperen.

CircuitPython ondersteunt ook de Programmable IO’s (PIO) van de RP2040, een subsysteem waarmee je kleine programma’s kunt schrijven voor snelle dataoverdracht. Na het kopiëren van de bibliotheek adafruit_pioasm.mpy van de Adafruit CircuitPython-bundel met bibliotheken naar de directory lib in het opslagapparaat, konden we Adafruits tutorial over RP2040 PIO met CircuitPython op het bordje uitvoeren om de ingebouwde led aan te sturen. Iets gelijkaardigs kun je ook voor NeoPixels doen.

Al met al is de Arduino Nano RP2040 Connect dus een veelzijdig ontwikkelbordje voor IoT-toepassingen. Met dank aan Elektronicavoorjou.nl voor het beschikbaar stellen van een review-exemplaar!

Fantastisch
Plus- en minpunten
  • Arduino-ecosysteem
  • Uitgebreide tutorials
  • CircuitPython met PIO
  • Onvolledige documentatie
  • Geen officiële MicroPython
  • Prijs
▼ Volgende artikel
Waarom je tv-beeld onnatuurlijk oogt (en hoe je dat oplost)
© DC Studio
Huis

Waarom je tv-beeld onnatuurlijk oogt (en hoe je dat oplost)

Je hebt net een klein fortuin uitgegeven aan een gloednieuwe 4K- of zelfs 8K-televisie. Je installeert hem, start je favoriete filmklassieker en zakt onderuit op de bank. Maar in plaats van een bioscoopervaring bekruipt je het gevoel dat je naar een goedkope soapserie of een homevideo zit te kijken. De acteurs bewegen vreemd soepel, de actiescènes lijken versneld en de magie is ver te zoeken. Geen zorgen, je televisie is niet stuk. Hij doet eigenlijk iets te goed zijn best.

Dit fenomeen is zo wijdverspreid dat er een officiële term voor is: het 'soap opera effect'. In technische kringen wordt dit ook wel bewegingsinterpolatie of 'motion smoothing' genoemd. Hoewel fabrikanten deze functie met de beste bedoelingen in hun televisies bouwen, is het voor filmfanaten vaak een doorn in het oog. Gelukkig is het eenvoudig op te lossen... als je tenminste weet waar je moet zoeken.

Nooit meer te veel betalen? Check
Kieskeurig.nl/prijsdalers!

Wat is het 'soap opera effect' precies?

Om te begrijpen wat er misgaat, moeten we kijken naar hoe films worden gemaakt. De meeste bioscoopfilms en veel dramaseries worden opgenomen met 24 beelden per seconde. Die snelheid geeft films hun karakteristieke, dromerige uitstraling. Een beetje bewegingsonscherpte hoort daarbij; dat is wat onze hersenen associëren met 'cinema'. Moderne televisies verversen hun beeld echter veel vaker: meestal 60 of zelfs 120 keer per seconde.

Om dat verschil te overbruggen, verzint je slimme televisie er zelf beelden bij. De software kijkt naar beeld A en beeld B, en berekent vervolgens hoe een tussenliggend beeld eruit zou moeten zien. Dit voegt de tv toe aan de stroom. Het resultaat is een supervloeiend beeld waarin elke hapering is gladgestreken.

Voor een voetbalwedstrijd of een live-uitzending is dat geweldig, omdat je de bal en spelers scherper kunt volgen. Maar bij een film zorgt die kunstmatige soepelheid ervoor dat het lijkt alsof je naar een achter de schermen-video zit te kijken, of dus naar een soapserie zoals Goede Tijden, Slechte Tijden, die traditioneel met een hogere beeldsnelheid werd opgenomen. De filmische illusie wordt hierdoor verbroken.

©ER | ID.nl

De winkelmodus is ook een boosdoener

Naast beweging is er nog een reden waarom het beeld er thuis soms onnatuurlijk uitziet: de beeldinstellingen staan nog op standje zonnebank. Veel televisies staan standaard in een modus die 'Levendig' of 'Dynamisch' heet. Deze stand is ontworpen om in een felverlichte winkel de aandacht te trekken met knallende, bijna neon-achtige kleuren en een extreem hoge helderheid. Bovendien is de kleurtemperatuur vaak nogal koel en blauw, omdat dat witter en frisser oogt onder tl-licht. In je sfeervol verlichte woonkamer zorgt dat echter voor een onrustig beeld waarbij huidtinten er onnatuurlijk uitzien en details in felle vlakken verloren gaan.

Hoe krijg je de magie terug?

Het goede nieuws is dat je deze 'verbeteringen' gewoon kunt uitzetten. De snelste manier om van het soap opera effect en de neonkleuren af te komen, is door in het menu van je televisie de beeldmodus te wijzigen. Zoek naar een instelling die Film, Movie, Cinema of Bioscoop heet. In deze modus worden de meeste kunstmatige bewerkingen, zoals bewegingsinterpolatie en overdreven kleurversterking, direct uitgeschakeld of geminimaliseerd. Het beeld wordt misschien iets donkerder en warmer van kleur, maar dat is veel dichter bij wat de regisseur voor ogen had.

Sinds kort hebben veel moderne televisies ook de zogeheten Filmmaker-modus. Dat is de heilige graal voor puristen. Als je deze modus activeert, zet de tv met één druk op de knop alle onnodige nabewerkingen uit en respecteert hij de originele beeldsnelheid, kleuren en beeldverhouding van de film.

Wil je de beeldmodus niet volledig veranderen, maar alleen dat vreemde, soepele effect kwijt? Dan moet je in de geavanceerde instellingen duiken. Elke fabrikant geeft het beestje een andere naam. Bij Samsung zoek je naar Auto Motion Plus of Picture Clarity, bij LG-televisies ga je naar TruMotion, bij Sony naar Motionflow en bij Philips naar Perfect Natural Motion. Door deze functies uit te schakelen of op de laagste stand te zetten, verdwijnt het goedkope video-effect en krijgt je film zijn bioscoopwaardige uitstraling weer terug.

▼ Volgende artikel
Chrome Remote Desktop: ideaal voor ondersteuning op afstand
© ER | ID.nl
Huis

Chrome Remote Desktop: ideaal voor ondersteuning op afstand

Een apparaat op afstand bedienen hoeft geen geld te kosten en is verrassend eenvoudig. Of je nu bestanden wilt openen, technische problemen wilt oplossen of meerdere toestellen wilt beheren: met Chrome Remote Desktop kan het allemaal, gratis en zonder gedoe.

De helper begint

Een groot voordeel van Chrome Remote Desktop is de brede compatibiliteit: het werkt met Windows, macOS, Linux en ChromeOS. Bovendien is het veilig – verbindingen worden versleuteld – en je hebt alleen een Chrome-browser nodig. We beginnen aan de kant van degene die op afstand toegang wilt tot een andere computer, degene die ondersteuning biedt vanaf computer A. Op computer A opent de gebruiker Chrome en surft naar https://remotedesktop.google.com. Daar verschijnen twee opties: Dit scherm delen en Verbinding maken met een andere computer. Omdat computer A support wil geven aan een extern apparaat, kiest de gebruiker voor de tweede optie. In dat scherm verschijnt een veld om een toegangscode in te geven, de code volgt zo meteen.

Degene die support geeft, gebruikt het onderste vak.

Acties voor de hulpvrager

Op computer B, de computer die toegang zal verlenen, moet de gebruiker ook in Chrome surfen naar dezelfde website. Daar kiest hij voor de optie Dit scherm delen. Voordat dat mogelijk is, moet Chrome Remote Desktop eerst worden gedownload en geïnstalleerd. De gebruiker klikt daarvoor op de ronde blauwe knop met het witte downloadpijltje. Hiermee wordt een Chrome-extensie geïnstalleerd. Na de installatie verschijnt in het vak Dit scherm delen een blauwe knop met de tekst Code genereren. Wanneer de gebruiker daarop klikt, wordt een toegangscode van 12 cijfers aangemaakt. Die code geeft hij of zij door aan gebruiker A.

Wie support krijgt, moet de code via een berichtje of telefoontje doorgeven.

Scherm delen

Op computer A geeft de gebruiker de code op in Chrome Remote Desktop. Vervolgens wacht hij tot gebruiker B bevestigt dat A toegang mag krijgen tot zijn scherm. Zodra dat is gebeurd, verschijnt het volledige bureaublad van computer B in een nieuw Chrome-venster op computer A. Door dit venster schermvullend weer te geven, kan A probleemloos handelingen uitvoeren op de pc van B. Voor de veiligheid beschikken beide gebruikers over een knop om de sessie op elk moment te beëindigen. Uiteraard is een stabiele internetverbinding noodzakelijk. Daarnaast krijgen beide partijen de melding dat ze klembordsynchronisatie kunnen inschakelen. Hiermee wordt het mogelijk om eenvoudig tekst of bestanden te kopiëren en te plakken tussen beide apparaten.

Gebruiker A krijgt het volledige scherm van B in een Chrome-venster te zien.