Il est indéniable que le Raspberry Pi Pico a eu un grand impact en 2021. Le microcontrôleur à 4 $ a été rapidement adopté par de nombreuses communautés et groupes de fabricants et l’un d’entre eux était CircuitPython. CircuitPython, un fork de MicroPython qui est une version de Python 3 pour les microcontrôleurs, est soutenu par Adafruit qui est l’un des partenaires qui a lancé sa propre gamme de cartes RP2040. Depuis sa création en 2018, CircuitPython a vu un investissement massif de la communauté, avec de nombreux projets et bibliothèques portés sur le langage.
CircuitPython est le meilleur moyen d’introduire Python sur les microcontrôleurs, car il est facile à utiliser avec des périphériques apparaissant dans le système d’exploitation hôte en tant que clés USB. Nous écrivons notre code dans le code.py fichier et nous pouvons activer des capteurs externes, des écrans et des entrées via un éventail éblouissant de bibliothèques.
Alors, comment pouvons-nous travailler avec le Raspberry Pi Pico et CircuitPython ? En règle générale, nous connectons notre Pico à un PC et commençons à écrire du code, mais nous pouvons également créer des projets avec un Chromebook ou un autre appareil Chrome OS. Avec un langage de programmation facile à utiliser, un microcontrôleur bon marché et un système d’exploitation facile à utiliser, nous avons la plate-forme idéale pour la créativité, peu importe notre âge ou nos capacités.
Dans ce guide, nous vous montrerons comment configurer votre Raspberry Pi Pico pour CircuitPython, installer le logiciel pour écrire du code et communiquer avec votre Pico, et enfin nous allons construire un projet de capteur de température.
Pour ce projet, vous aurez besoin
Installez CircuitPython sur le Raspberry Pi Pico
Le Raspberry Pi Pico peut exécuter plusieurs différentes languesmême une version d’un Langue de plus de 50 ans. Nous nous concentrons sur CircuitPython, et l’installation de CircuitPython sur un Pico est très facile à faire.
1. Téléchargez la dernière version de CircuitPython pour le Raspberry Pi Pico. Au moment de la rédaction, la dernière version était la 7.3.0.
2. Appuyez et maintenez enfoncé le bouton BOOTSEL sur le Raspberry Pi Pico, puis connectez votre Pico au Chromebook via un câble USB.
3. Copiez le fichier UF2 téléchargé depuis Téléchargements vers le lecteur RPI-RP2 dans les fichiers. Le processus prendra moins d’une minute et une fois terminé, un nouveau lecteur CIRCUITPY apparaîtra dans le navigateur de fichiers.
Idéalement, nous aurions une seule application qui pourrait tout faire, mais pour l’instant, hélas, nous devons en installer deux. Le premier est un éditeur de texte, Caret, que nous pouvons utiliser pour écrire du code CircuitPython directement sur le lecteur CIRCUITPY. Le second est Beagle Term, un émulateur de terminal série pour Chrome OS.
1. Installer l’éditeur de texte Caret via le Chrome Web Store.
2. Installer le terme Beagle via le Chrome Web Store.
Écrire notre test CircuitPython Code sur Chromebook
Avant de commencer toute électronique, vérifions que nous pouvons contrôler et communiquer avec le Raspberry Pi Pico. Notre code de démonstration est un simple Hello World qui s’imprime sur le shell Python toutes les secondes.
1. Ouvrez l’éditeur de texte Caret à l’aide de la touche Rechercher (la longue-vue où se trouve normalement le verrouillage des majuscules) et tapez Caret. Appuyez sur Entrée pour ouvrir.
2. Cliquez sur Fichier >> Ouvrir et sélectionnez code.py trouvé sur votre lecteur CIRCUITPY. Ce lecteur est votre Raspberry Pi Pico exécutant CircuitPython.
3. Supprimez tout code dans le fichier.
4. Importez le module de temps. Nous allons l’utiliser pour contrôler la vitesse à laquelle notre code boucle.
import time
5. Créer une boucle while True pour exécuter continuellement le code à l’intérieur.
while True:
6. Utilisez une fonction d’impression pour imprimer « Hello World ». Notez que le code est mis en retrait par une pression sur la touche TAB ou quatre espaces. Ne mélangez pas les tabulations et les espaces car Python générera une erreur. Ceci est un exemple classique de test de code. C’est un moyen simple que nous pouvons utiliser pour confirmer que nous avons le contrôle et la communication avec un appareil.
print(“Hello World”)
sept. Ajouter une pause d’une seconde
Cela nous donne une seconde pour lire le message Hello World.
time.sleep(1)
8. Enregistrez votre code sur code.py. CircuitPython exécutera automatiquement le code à chaque fois que nous enregistrerons.
Liste des codes de test
import time
while True:
print(“Hello World”)
time.sleep(1)
Utilisation de l’émulateur série Beagle Term
Pour voir la sortie de notre code, nous devons exécuter l’émulateur de terminal série Beagle Term. Cette application se connectera à la console Python, s’exécutant via une connexion USB vers série. CircuitPython dispose d’une console Python REPL (Read, Eval, Print, Loop) qui peut être utilisée pour travailler de manière interactive avec la carte et qui peut envoyer des informations directement à la console.
1. Ouvrez l’application Beagle Term à l’aide de la touche Rechercher (la longue-vue où se trouve normalement le verrouillage des majuscules) et tapez Caret. Appuyez sur Entrée pour ouvrir.
2. Définissez votre port sur votre Raspberry Pi Pico. C’est un peu une approche par essais et erreurs car nous ne connaissons pas le nom du port. Lors de nos tests, nous avons vu /dev/ttyACM1 pour notre Raspberry Pi Pico.
3. Réglez le débit binaire sur 9600. C’est la vitesse à laquelle notre appareil Chrome OS et Raspberry Pi Pico communiqueront.
4. Réglez le bit de données sur 8 bits, la parité sur aucune, le bit d’arrêt sur 1 bit, et enfin, définissez le contrôle de flux sur aucun.
5. Cliquez sur Connecter pour démarrer la connexion série à votre Raspberry Pi Pico. Hello World devrait défiler vers le bas de l’écran. Si ce n’est pas le cas, appuyez sur CTRL+C pour arrêter l’exécution du code, puis appuyez sur CTRL+D pour redémarrer le code.
Construire un projet de capteur de température
Le DHT22 a quatre broches, mais nous n’aurons besoin d’en utiliser que trois. Le capteur est relativement facile à utiliser. Il a besoin de 3V pour l’alimenter, et la broche de sortie de données est tirée vers le haut à l’aide d’une résistance de 10K Ohm. En tirant la broche vers le haut, nous nous assurons que les données du capteur sont lues, car la broche est toujours « allumée ».
1. Insérez votre Raspberry Pi Pico dans la planche à pain de sorte que le port microUSB se trouve sur le côté gauche de la carte.
2. Faites passer un fil de liaison de la sortie 3V3 (fil rouge) au rail + de la planche à pain. Cela fournit une connexion à la broche 3,3 V à l’ensemble du rail +. Faites passer un autre fil de la broche GND au rail -.
3. Insérez le DHT22 dans la planche à pain.
4. Connectez 3,3 V (fil rouge) et GND (fil noir) aux broches 1 et 4 du DHT22. Les numéros de broches vont de gauche à droite, lorsque nous faisons face au «cadre» en plastique du capteur.
5. Connectez le rail 3.3V à la broche 2 du DHT22 à l’aide d’une résistance de 10K Ohm. Il s’agit de notre résistance pull-up pour la broche de données.
6. Connectez la broche de données (broche 2) du DHT22 au GP15 du Raspberry Pi Pico. Votre planche à pain devrait ressembler à ceci.
Codage du projet
1. Télécharger le bundle des bibliothèques CircuitPython pour votre version de CircuitPython.
2. Accédez à votre dossier Téléchargements. Faites un clic droit et extrayez le fichier ZIP.
3. Ouvrez le dossier adafruit-circuitpython-bundle et naviguer vers le bibliothèque sous-dossier.
4. Copiez adfafruit_dht.mpy dans le dossier /lib/ de votre lecteur CIRCUITPY. Cette bibliothèque permet à notre Raspberry Pi Pico de fonctionner avec les capteurs DHT11 et DHT22.
5. Ouvrez code.py sur votre Raspberry Pi Pico à l’aide de l’éditeur de texte Caret. Supprimez le code de test du fichier.
6. Importez trois modules pour permettre à notre code d’accéder au GPIO (carte), d’utiliser le capteur de température (adafruit_dht) et de contrôler la vitesse de la boucle (temps).
import board
import adafruit_dht
import time
sept. Créer un objet, dht pour connecter le code au capteur DHT22 connecté en GP15 sur le Raspberry Pi Pico.
dht = adafruit_dht.DHT22(board.GP15)
8. Créez une boucle pour exécuter le code.
while True:
9. Stocke la température actuelle dans une variable appelée temp. La température est enregistrée en degrés Celsius.
temp = dht.temperature
dix. Créer un objet, texte et y stocker une chaîne qui imprimera « La température est Celsius ». Vous remarquerez :>8, il s’agit d’un format de chaîne qui comprendra huit espaces au centre de la phrase. Cela nous donne un espace libre pour placer les données de température.
text = "The temperature is :>8 Celsius."
11. Utilisez la fonction d’impression avec le format de textet pour insérer les données de température dans l’espace.
print(text.format(temp))
12. Ajoutez enfin une pause d’une seconde. Cela permet à la boucle de se répéter lentement.
time.sleep(1)
13. Enregistrez le projet dans code.py sur votre lecteur CIRCUITPY.
14. Terme Beagle ouvert et connecter à votre Raspberry Pi Pico. Vous devriez voir les données de température défiler sur l’écran. Sinon, appuyez sur CTRL + C, puis CTRL + D pour redémarrer le code.
Liste complète des codes
import board
import adafruit_dht
import time
dht = adafruit_dht.DHT22(board.GP15)
while True:
temp = dht.temperature
text = "The temperature is :>8 Celsius."
print(text.format(temp))
time.sleep(1)