In mei 2021 bracht Arduino de Nano RP2040 Connect uit. Die RP komt van de Raspberry PI-controller op dit board. Dit board werd vooral ontworpen voor IoT (Internet of Things) en ML (Machine Learning) projecten.
Er zijn flink wat gelijkenissen met de Nano 33 BLE Sense. Zo zitten er ook hier al enkele belangrijke sensoren op het board: een micro en een IMU (Inertial Measurement Unit) met een gyroscoop, accelerometer, magnetometer, die erg van pas komen bij ML-projecten en een temperatuursensor. Daarnaast is er ook hier een RGB-led.
Een belangrijk verschil met de Nano 33 BMLE Sense is dat de Arduino Nano RP2040 Connect naast BLE ook over Wifi beschikt.
Verder krijg je bij deze Arduino ook een licensie voor eeen camera bij openMV. OpenMV is een omgeving waar je via MicroPython machine learning projecten met beeldherkenning kan maken.
Omdat deze Arduino nog zo jong is is het wel nog zoeken naar informatie om alles optimaal te laten werken. Op het internet zijn nog niet veel handleidingen te vinden en verschillende libraries zijn nog niet helemaal aangepast. Met deze Arduino werken, wordt dus zeker in het begin wat pionierswerk. Je zal veel meer moeten zoeken en improviseren om alle mogelijkheden te benutten. We proberen hier alvast alle informatie te verzamelen.
De microcontroller van de Arduino NANO 33 BLE Sense werkt op 3,3V! Je mag dus nooit meer dan 3,3V verbinden met de analoge of digitale pins. Anders beschadig je deze Arduino. Sommige sensoren of actuatoren die we gebruiken met een Uno zullen nu dus niet bruikbaar zijn.
De RGB-led is verbonden met de WiFi-module. Om die te gebruiken is het nodig de WiFiNINA library te installeren.
De Nano RP2040 heeft 8 analoge IN pins A0 tot A7.
- Pin A4 en A5 enkel gebruiken voor I2C
- Pin A6 en A7 zijn geen PWM-pins.
Er zijn 14 digitale pins - gebruik best eerst de D2 tot en met D10
Bij seriële communicatie:
SPI (hier worden sinds kort nieuwe namen gebruikt om verwijzingen naar slavernij te vermijden).
C van controller en P van peripheral
CIPO -> D11
COPI -> D12
SCK -> D13
CS/SS -> Elke GPIO pin behalve A6/A7
Om vlot te kunnen werken met de verschillende sensoren gaan we enkele libraries installeren via Hulpmiddelen > biliotheken beheren.
In het zoekvenster daar kan je één na één de bibliotheken ingeven, en daarna op 'installeren' klikken.
- WiFiNINA (WiFi, Bluetooth en de RGB-led)
- Arduino_LSM6DSOX (IMU-module met 3-axis accelerometer en 3-axis gyroscope)
- PDM (microphone) - Deze library maakt deel uit van Arduino Mbed OS Nano Boards core, dus die is normaal al geïnstalleerd.
Een goed startpunt voor dit board is alvast de 'docs' pagina over de Nano RP2040 Connect. Daar vind je ook tips bij problemen met dit board.
Voor je kan gaan programmeren moet je wel nog deze Arduino toevoegen in de Boards Manager:
Hulpmiddelen > Board Beheer > Boards Manager In het venster zoek je dan op Nano RP2040 Connect.
Normaal krijg je dan 'Arduino Mbed OS Nano Boards' als eerste keus (regelmatig verschijnt er nieuwe software met een nieuwe naam voor de nieuwere boards). Je klikt dan op installeren.
Dat kan wel enkele minuten duren.
Hierna kan je je bord vinden bij Mbed OS Nano Boards in het menu onder hulpmiddelen.
Als dat gelukt is, kan je best even kijken of alles werkt zoals het hoort door even de blink-code te testen.
Wanneer je board niet verschijnt (Board not detected) kan het helpen om eerst je board los te koppelen van de USB-kabel en dan de GND pin en de REC pin te verbinden met een jumper wire. Nu kan je je board opnieuw verbinden en zou je board zichtbaar moeten zijn. De jumper wire kan nu weg.
Om de interne microfoon te testen maken we gebruik van de PDM library. Die zit standaard geïnstalleerd bij Arduino Mbed OS Nano Boards, dus die moet niet geïnstalleerd worden.
Je kan de voorbeeldcode hiervoor openen via: Bestand > Voorbeelden > PDM > PDMSerialPlotter
Wanneer je de code hebt doorgestuurd naar de Arduino kan je in 'Hulpmiddelen' de Serial Plotter openen. Je krijgt dan in een grafiek een weergave van de registratie van de microfoon. Probeer hier zeker even een mooie toon te zingen of te fluiten.
De grafiek van een gefloten toon in de seriële plotter.