Programmer en CircuitPython sur une carte Adafruit Feather nRF52840

La carte Adafruit Feather nRF52840 est une carte de prototypage au format Feather qui gère le protocole Bluetooth Low Energy grace au composant nRF52840. Il existe deux versions « express » et « sense », c’est presque les mêmes, la différence est que la « sense » embarque plusieurs capteurs (Température, mouvement, etc…)
On peut la programmer en Arduino ou en CircuitPython. Dans cet article nous allons montrer comment la programmer en CircuitPython.
Le langage CircuitPython est un dérivé du MicroPython qui est une version du Python pour microcontrôleur.
Le CircuitPython est idéal pour faire du prototypage. Il y a juste besoin de copier le code dans un fichier et de le copier sur le lecteur USB.

Télécharger la dernière version du CircuitPython (fichier .UF2) pour votre carte.
Pour la Feather nRF52840 Sense :
https://circuitpython.org/board/feather_bluefruit_sense/
Pour la Feather nRF52840 Express :
https://circuitpython.org/board/feather_nrf52840_express/
Brancher la carte avec un câble USB sur le PC.
Attention à ne pas utiliser un câble de charge, mais un vrai câble qui permet de transmettre des données !
Double-cliquer sur le bouton Reset de la carte.

Bouton Reset

La grosse LED NeoPixel RGB doit s’allumer en vert. Si elle s’allume en rouge, vérifier le câble USB ou essayer un autre port USB du PC. La petite LED à côté du connecteur USB doit clignoter en rouge.
Si le double-click ne marche pas la première fois, essayer une autre fois.
Un disque USB va apparaitre sous Windows.

Copier le fichier adafruit-circuitpython-feather_bluefruit_sense-fr-7.0.0.uf2 téléchargé précédemment sur le lecteur USB.
La LED va clignoter, puis the disque FTHRSNSBOOT va disparaître et un nouveau disque va apparaître avec comme nom CIRCUITPY.

On peut voir qu’il y a un fichier en Python code.py, c’est le programme principal de notre carte.
La première fois que l’on installe le CircuitPython, le fichier code.py contient l’instruction :

print("Hello World!")

Vous pouvez écrire du code dans ce fichier, et tout changement dans le contenu du disque CIRCUITPY va initier un reset sur la carte.
Pour observer l’affichage du programme, il faut se connecter avec un programme terminal.
Par exemple Putty https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
Identifier le numéro du port COM de la carte sur le PC.
Aller dans « Gestionnaire périphérique » et noter le numéro.

Ensuite lancer Putty et renseigner « Serial line » et « Speed », puis cliquer sur Open

Le terminal s’affiche, et on peut voir que « Hello world ! » a bien été affiché.

En appuyant sur une touche, le mode REPL va se lancer, et vous pourrez taper directement des commandes Python ou alors appuyer sur CTRL+D pour relancer le programme code.py
Pour finir, on peut remplacer le contenu du fichier code.py sur la carte par ce code, cela va faire clignoter la LED rouge sur la carte.

import board
import digitalio
import time

led = digitalio.DigitalInOut(board.LED)
led.direction = digitalio.Direction.OUTPUT

while True:
    led.value = True
    time.sleep(0.5)
    led.value = False
    time.sleep(0.5)

Voilà, c’est fini pour cette introduction à l’utilisation de CircuitPython sur carte Feather nRF52840. Plus d’info et des exemples de programmes sont disponibles sur les liens suivants :
https://learn.adafruit.com/welcome-to-circuitpython/overview
https://learn.adafruit.com/adafruit-feather-sense/getting-started-with-ble-and-circuitpython
https://learn.adafruit.com/adafruit-feather-sense/circuitpython-on-feather-sense