Présentation de l’Arduino Nano RP2040 Connect

Cet article sera complété au fur et à mesure de mes investigations.

La dernière version date du 28 mai 2021

Brève présentation

Cette nouvelle carte Arduino au format Nano est basée sur le processeur de la fondation Raspberry Pi : la RP 2040.

Nous avions déjà présenté la Raspberry Pi Pico : c’est ici.

La Rapsberry Pico est une carte, comme l’Arduino, équipé d’un microcontrôleur RP 2040 fabriqué par la fondation Raspberry.

Elle est bien plus chère que la Pico, un trentaine d’euros, mais elle possède plus d’atouts

Tandis que la Pico est une carte tout simple qui ne possède ni capteurs (mais un prix de 5 euris), ni bluetooth ou wifi mais uniquement l’usb pour communiquer, l’Arduino RP2040 possède accéléromètre, gyroscope, WiFi, Bluetooth, détection de mouvement et led RGB.

Éléments en commun avec la Pico

Tout simplement le microprocesseur : RP2040

  • RP2040 : Processeur ARM Cortex M0+ à deux cœurs, cadencé à 133 MHz
  • 264 Ko de SRAM
  • 26 GPIO
  • UARTS (au nombre de 2), SPI(2), I2C, SPI (2),I2C(2), PWM  (16), USB (1)

Si vous n’êtes pas à l’aise avec les notions processeur, double cœurs, SRAM consultez l’article, ou plutôt les articles, à l’adresse suivante : http://www.framboiseetcompagnie.fr/systemes-electroniques-a-base-de-processeurs-partie-1-les-processeurs/

Caractéristiques principales de la carte

  • Microcontrôleur : Raspberry Pi RP2040
  • Processeur : ARM Cortex-M0+ 32-bit Dual Core à 133 MHz
  • Mémoire SRAM: 264 kB
  • Mémoire Flash en QSPI: 16 Mo (au lieu de 2 Mo pour la Pi Pico)
  • LED verte d’alimentation et LED orange utilisateur
  • Interfaces sans fil U-blox NINA W102 :
      • Microprocesseur: Xtensa LX6 32-bit à 240 MHz
      • Mémoire SRAM: 520 ko
      • Mémoire Flash: 16 Mo
      • WiFi: 802.11b/g/n 2,4 GHz
      • Bluetooth Low Energy 4.2
      • LED RGB
  • Module 6 axes LSM6DSOXTR
      • gyroscope: ±2/±4/±8/±16 g
      • accéléromètre: ±125/±250/±500/±1000/±2000 °/sec
  • Micro intégré MP34DT06JTR:
      • rapport signal/bruit: 64 db
      • sensibilité: -26 dBs ± 1 dB
  • 22 interfaces GPIO comprenant:
      • 22 broches d’E/S digitales dont 20 PWM
      • 8 entrées analogiques
      • interface UART, I2C, SPI, I2S tous au nombre de deux
  • Alimentation :
      • 5 Vcc via le port micro-USB
      • 4 à 22 V sur broche Vin
  • Sortie 3,3 Vcc/800 mA
  • Dimensions: 43,2 x 17,8 x 18 mm

Programmation

En Arduino

Arduino — Wikipédia

Étant une Arduino, la carte peut se programmer à l’aide de l’IDE du même nom. Ce qui permet l’utilisation de toutes les bibliothèques disponibles et des exemples qui vont avec.

A noter le formidable travaille qu’a accompli Arduino pour mettre à disposition les bibliothèques et les exemples concernant les capteurs de la gamme Nano et toujours aussi simple à installer, rechercher et utiliser grâce à l’IDE.

En python

Mais ce n’est pas tout, il peut être programmé en python, version circuitpython ! Et là il est possible d’utiliser toutes les bibliothèques python supportés par Adafruit.

Mbed / C++

Mbed est une plateforme collaborative, en ligne, permettant la programmation de cartes à base de processeur mbed en langage C++.

J’ai testé : le programme se compile mais je n’arrive pas à mettre le programme sur la carte. À suivre …

C/C++ SDK

A l’instant de la Raspberry Pi Pico et de toutes les cartes à base de RP2040, il est possible d’utiliser un SDK permettant d’interagir au plus près du microcontrôleur mais en contrepartie, une programmation bien plus difficile qu’avec le langage Arduino.

A tester : https://arduino-pico.readthedocs.io/en/latest/

https://arduino-pico.readthedocs.io/en/latest/

Quels langages, alors ?

Pour mes essais, je débute par le langage Arduino avec notamment les exemples fournis, puis je passe avec circuitpython.

Pourquoi ne pas travailler en python ?

Parce que les codes Arduino sont très bons et directement utilisable tandis qu’avec circuitpython, il faut adapter les exemples donnés d’autant plus que la version officielle et stable ne date que du 25 mai 2021.

Pourquoi ne pas travailler en Arduino ?

Le code python me semble toujours plus simple. En plus, j’ai fait tellement de langage Arduino que je passé et approfondir un autre langage.

D’autres carte de la même famille, la RP2040

D’autres cartes basées sur ce processeur sont ou vont sortir. Il y en a pour tous les goûts, tous formats et tous les bourses.

Voici une liste qui est bien sûr non exhaustive :

Adafruit Feather RP 2040

raspberry pi silicon rp2040 board comparison - adafruit itsybitsy rp2040

Cette carte grâce permet l’utilisation de périphérique qui nécessite beaucoup de courant comme les servos moteurs et les Néopixels

Sparkfun

Sparkfun : Pro Micro RP2040 (9€)

Les spécifications sont assez proches de la pico/

SparkFun Pro Micro - RP2040

https://youtu.be/YGwm-TESdHA

Lien : https://learn.sparkfun.com/tutorials/pro-micro-rp2040-hookup-guide

SparkFun : MicroMod Rp2040 (11€)

sparkfun micromod rp2040

Elle est au format de connecteur de carte mère : M2.

https://learn.sparkfun.com/tutorials/micromod-rp2040-processor-board-hookup-guide/all

pimoroni tiny 2040 (9€)

Dans l’image tout est dit : sa dimension

Lien

https://shop.pimoroni.com/products/tiny-2040

Adafruit Feather RP 2040 (11€)

Carte à base de microcontrôleur de chez Adafruit, appelé Fearther, compatible avec toutes les cartes additionnelles appelé Wing. Cela aurait pu s’appeler Shield, ou Hat mais c’était déjà pris.

Un wing sur un feather :

https://youtu.be/klLD3xMeIG4

Pour aller plus loin :

https://www.cnx-software.com/2021/01/21/third-party-raspberry-pi-rp2040-boards-from-arduino-adafruit-sparkfun-and-pimoroni/

Le circuit LSM6DSOX

Le datasheet se trouve à l’adresse suivante :
Datasheet du LSM6DSOX

https://www.st.com/resource/en/datasheet/lsm6dsox.pdf

Présentation

Le LSM6DSOX est un circuit de type IMU (inertial measurement unit) que l’on traduire par l’unité de mesure inertielle produit par ST Electronics.

Ce capteur possède six axes de liberté :

  • Trois pour l’accélération linéaire
  • Trois autres pour la vitesse angulaire

Les calibres de l’accéléromètre sont +/2, +/-4, +/-8 ou +/-16 g entre une fréquence de 1.6Hz à 6.7kHz suivant la configuration.

Pour le gyroscope, il peut avoir une plage de travail de +/-125, 250, 500 ,1000 ou 2000 dps(degrees per second, degrés par seconde) pour une fréquence entre 12.5 Hz à 6.7 kHZ toujours suivant la configuration.

LSM6DSOX Intégré sur la carte Arduino RP2040

Ce capteur mesurant l’accélération et la vitesse angulaire est intégré sur la carte Arduino RP2040

Composant I2c d’adresse 0x6A, il est branché sur la RP2040 sur les ports I2c SDA/A4 et SCL/A5 :

Notez à droite, le symbole permettant d’identifier les axes x, y et z.

Exemple d’utilisation

Voir l’article correspondant :

Accéléromètre et Gyroscope RP2040
Ou directement un exemple de code

Exemple de code

Leave a Reply