Rapsberry Pico

1. Allumer une LED avec un poussoir. Faire clignoter une led à une fréquence de 0.5Hz. (matériel aucun). Fonction led = machine.Pin(16, machine.Pin.OUT) fonction button = Pin(14, Pin.IN, Pin.PULL_DOWN) button.value()

2. Utilisation d'un potentiomètre comme bouton analogique :afficher une valeur entre 0 et 100 correspondant à la position du curseur (matériel potentiomètre 10K) fonction machine.ADC(26) , et potentiometre.read_u16()

3. LED + potentiomètre: utiliser le potentiomètre comme réglage d'intensité de la LED en se servant de la persistance rétinienne (matériel potentiomètre 10K) fonction utime.sleep_us

4. Capteur de lumière et photorésistance: avec un montage de type diviseur de tension, calculer les valeurs de la photorésistance pour un éclairage noir , un éclairage ambiant, la lumière flash d'un smartphone situé à une distance d= 5cm, 10cm, 20cm. (matériel photorésistance, R =1K, 10k, 100k)

5. LED + photorésistance: réaliser un montage simulant l'éclairage d'un lampadaire. La LED doit s'allumer si l'éclairage ambiant est inférieur à une valeur seuil qui sera réglable via un potentiomètre. (matériel photorésistance, R pour diviseur de tension, potentiomètre)

6. Mesure de distance. Utiliser le HC SR 04 pour mesurer une distance comprise entre 5 cm et 4m. Concevoir un "radar de recul automobile" qui allume entre 0 et 3 diodes selon la distance (<5 cm, <10cm, <20cm, >20cm et bipe de plus en plus fort. fonction machine.time_pulse_us (matériel HC SR04, 2 résistances R 1K, 1.8K pour Vmax =3.3V)

7. Jeu de rapidité: une LED s'éclaire au bout d'un temps aléatoire compris entre 5 et 10s. Le joueur vainqueur est celui qui appuie le plus tôt possible sur son bouton, à condition que la LED se soit éclairée. Optionnel: incrémenter le score pour permettre d'aller en trois points gagnants.
matériel aucun.

Matériel:
Carte Pico
Câbles courts
EDI MU
un potentiomètre 10 K
des résistances: 1k, 1.8k, 10k, 100k
une photorésistance


compléments:

https://electrotoile.eu/arduino-fabriquer-un-interrupteur-crepusculaire-avec-photoresistance-LDR.php

https://www.freva.com/fr/2019/05/20/capteur-ultrason-hc-sr04-sur-raspberry-pi/

https://arduiblog.com/2021/02/15/raspberry-pico/



Raspberry Pi Pico

Le Raspberry Pico est une carte minuscule, à peu près de la même taille qu'un Arduino Nano. D'un cout très modique (<10E), il n'y a pas de broches d'en-tête fournies avec la carte, vous devrez donc les fournir vous-même. C'est une carte bien faite qui peut aussi être utilisée comme un composant CMS et soudée directement sur un circuit imprimé. Par rapport au Raspberry Pi et ses clônes qui sont de petits ordinateurs complets, il s'agit ici de cartes dotées de puces encore plus légères, bien moins gourmandes en énergie, que l'on peut directement programmer pour effectuer des actions précises. Elles sont aussi plus compactes et moins coûteuses. https://picockpit.com/raspberry-pi/raspberry-pi-pico-and-micropython-on-windows/

Vue du dessus, la Pico ressemble à ceci :

La caractéristique la plus importante de la carte est le connecteur microUSB situé à une extrémité. Il sert à la fois à la communication et à l'alimentation du Pico.

Une LED intégrée est montée à côté du connecteur microUSB. Elle est connectée en interne à la broche GPIO 25. Il est intéressant de noter que c'est la seule LED de toute la carte Pico.

Le bouton poussoir BOOTSEL est monté un peu plus bas que la LED, il vous permet de changer le mode de démarrage du Pico afin de pouvoir y charger MicroPython et effectuer une programmation par glisser-déposer.

En bas de la carte, vous verrez trois connexions, celles-ci sont destinées à une option de débogage série que nous n'explorerons pas aujourd'hui, mais qui intéressera les développeurs avancés. Au centre de la carte se trouve le cerveau de l'ensemble, le RP2040 MCU, dont nous examinerons les caractéristiques.

Broches de terre: Il y a plusieurs connexions de masse sur la carte, huit d'entre elles plus une supplémentaire sur le connecteur Debug à 3 broches. Ces broches sont faciles à repérer, elles sont espacées de manière régulière et sont carrées, contrairement aux autres connexions qui sont arrondies. L'une des connexions de masse, sur la broche 33, est également désignée comme la masse analogique.

Broches d'alimentation: Le Pico est un dispositif logique de 3,3 volts, mais il peut être alimenté par une gamme d'alimentations grâce à un convertisseur et un régulateur de tension intégrés. Toutes les broches liées à l'alimentation sont regroupées dans une section de la carte, près du connecteur microUSB.

VBUS - Il s'agit de l'alimentation du bus microUSB, 5 volts. Si le Pico n'est pas alimenté par le connecteur microUSB, il n'y aura pas de sortie ici.

VSYS - Il s'agit de la tension d'entrée, qui peut être comprise entre 2 et 5 volts. Le convertisseur de tension intégré la transformera en 3,3 volts pour le Pico.

3V3 - Il s'agit d'une sortie de 3,3 volts, provenant du régulateur interne du Pico. Elle peut être utilisée pour alimenter des composants supplémentaires, à condition que la charge soit inférieure à 300 mA.

Il existe également quelques entrées qui vous permettent de contrôler l'alimentation du Pico.

3V3_EN - Vous pouvez utiliser cette entrée pour désactiver le régulateur de tension interne du Pico, ce qui éteindra le Pico et tout composant alimenté par celui-ci.

RUN - Cette ligne peut activer ou désactiver le microcontrôleur RP2040, elle peut également le réinitialiser.

Broches GPIO: Il y a 26 connexions GPIO exposées sur la carte Raspberry Pi Pico. Elles sont disposées dans l'ordre, avec un "vide" entre GPIO 22 et GPIO 26 (ces broches "manquantes" sont utilisées en interne). Presque toutes ces broches ont des fonctions multiples, et vous pouvez configurer jusqu'à 16 d'entre elles pour le PWM. Il y a deux bus I2C, deux UARTs, et deux bus SPI, ceux-ci peuvent être configurés pour utiliser une grande variété de broches GPIO.

Broches analogiques: Le Pico possède trois convertisseurs analogique-numérique, plus un quatrième utilisé en interne pour un capteur de température embarqué.

Les ADC ont une résolution de 12 bits. Vous pouvez également fournir une référence de tension de précision externe sur la broche ADC_VREF. L'une des masses, l'ADC_GND sur la broche 33 est utilisée comme point de masse pour cette référence.

Microcontrôleur RP2040

Le Raspberry Pi Pico est basé sur la nouvelle puce de la Fondation, le microcontrôleur RP2040. Ses spécifications sont impressionnantes :
Double cœur ARM Cortex-M0+ 32 bits
Fonctionne à 48MHz, mais peut être overclocké à 133MHz
30 broches GPIO (26 exposées)
Peut prendre en charge le mode hôte ou dispositif USB
8 machines d'état d'E/S programmables (PIO)
Le RP2040 est capable de prendre en charge jusqu'à 16 Mo de mémoire Flash hors puce.

Le breadboard
Spécialement conçue pour le module Raspberry Pi Pico, cette platine d'extension livrée avec une plaque breadboard, vous permettra de récupérer les GPIO de la Raspberry Pi Pico sur 2 connecteurs mâles au pas de 2,54 mm. Elle est également équipée d'un buzzer, de 4 boutons-poussoirs et de 4 leds.
button = Pin(14, Pin.IN, Pin.PULL_DOWN)


Spécifications Tension de fonctionnement - 5V DC via USB- Interface de communication - Tête GPIO

Dimensions : 85 mm × 133 mm (approx.)

Caractéristiques Quatre LED contrôlées indépendamment, Quatre boutons-poussoirs contrôlés indépendamment, Compatible avec Raspberry Pi Pico
Une planche d'essai demi-taille de 400 points; Buzzer programmable
Broches 5v, 3v3 et Gnd dédiées pour une interface facile.

Applications Prototypes, Mini robots, Jeux , Interaction avec le Raspberry Pi, Exploration des circuits


Programmation du Pico

Vous pouvez commencer à utiliser le Pico en utilisant l'un des deux langages de programmation.
MicroPython - Sous-ensemble de Python, MicroPython est un langage interprété spécialement conçu pour les microcontrôleurs.
C++ - De nombreux utilisateurs de microcontrôleurs sont familiers avec le langage C++, utilisé sur les cartes Arduino et ESP32.

L'IDE Thonny ou Mu editor pour une approche graphique possible.

Démarrage et installation de MicroPython La première chose à faire est d'installer MicroPython sur notre Pico. Branchez le câble microUSB sur votre Pico et préparez-vous à brancher l'autre extrémité sur votre ordinateur. Avant de le brancher, appuyez sur le bouton BOOTSEL du Pico. En maintenant la touche BOOTSEL enfoncée, branchez le Pico sur le port USB de votre ordinateur. Maintenez la touche enfoncée pendant quelques secondes, puis relâchez-la. Vous devriez voir un nouveau lecteur disponible sur votre ordinateur, le message sera différent selon le système d'exploitation que vous avez, mais il sera similaire à celui que vous obtenez lorsque vous branchez une clé USB sur un ordinateur.

Ouvrez le nouveau "lecteur", et vous verrez un dossier nommé "RPI-RP2". Dans ce lecteur, vous verrez quelques fichiers, l'un d'eux étant un document Web index.htm. Cliquez sur ce document Web, votre navigateur s'ouvrira et vous serez redirigé vers la page "Raspberry Pi Pico Getting Started". Cliquez sur l'onglet "Getting Started with MicroPython". Vous verrez un lien pour télécharger un fichier UF2, qui est le fichier MicroPython téléchargeable. Téléchargez ce fichier sur votre ordinateur.
Faites maintenant glisser le fichier que vous avez téléchargé dans le dossier RPI-RP2 du Pico. Une fois que vous l'aurez fait, le dossier disparaîtra et le Pico sera démarré en mode MicroPython.


Configuration de l'IDE Thonny Une fois Thonny ouvert, regardez la barre d'état en bas à droite, elle affichera probablement une version de Python. Cliquez sur ce message et une liste déroulante devrait apparaître, avec d'autres environnements à sélectionner. L'un d'eux devrait être MicroPython (Raspberry Pi Pico). Sélectionnez-le. Vous remarquerez qu'un nouveau shell s'ouvre en bas, et dans ce shell, vous devriez voir un texte indiquant que vous êtes connecté au Pico. Il est temps de commencer à programmer !

Test du shell : Le shell est la "ligne de commande" du Pico, et vous pouvez y exécuter du code directement. Un test simple consiste à taper ce qui suit (c'est aussi un bon moyen de vérifier que vous êtes bien connecté au Pico) et à appuyer sur Entrée :

print("Hello World") Vous devriez être accueilli par l'impression de "Hello World" dans le shell, ce qui est bien sûr ce que vous avez demandé au Pico de faire.

Test du script Bien sûr, vous ne taperez pas vos programmes directement dans l'interpréteur de commandes, d'une part parce qu'une fois exécutés, ils disparaissent et d'autre part parce que c'est peu pratique pour tout programme de taille importante. Vous allez utiliser l'éditeur pour taper vos programmes, qui est la grande zone de texte au-dessus du shell qui domine l'écran de l'IDE Thonny. Allez dans cet éditeur et tapez le même texte que vous avez fait plus tôt, pour saluer le monde avec un bon "bonjour". Cliquez sur le bouton Run (le bouton vert avec la flèche) et vous serez invité à enregistrer votre programme. Vous aurez le choix entre l'enregistrer sur l'ordinateur local ou sur le Pico, essayez de l'enregistrer sur le Pico. Nommez votre programme avec une extension ".py", comme "hello.py". Le programme sera enregistré et exécuté, et vous verrez le message d'accueil "Hello World" dans le shell. Vous pouvez appuyer sur le bouton Run pour le voir encore et encore.



Le contrôle PWM. Nous avons 16 broches qui peuvent créer un signal PWM. Dans le code, nous importons pin et PWM du module machine. J'importe également utime pour créer des délais. J'attache le PWM à la broche 25 qui est la broche de la LED embarquée. Je règle la fréquence à 1000 Hz. Avec while true je crée ma boucle infinie et à l'intérieur de celle-ci je crée deux autres whiles qui vont augmenter et diminuer la valeur de la PWM. Avec pwm.duty j'écris cette valeur sur la broche. Et c'est tout. Je lance ce code et comme vous pouvez le voir, nous pouvons allumer et éteindre la LED. C'est assez facile, non ? Sur l'oscilloscope, nous pouvons voir le signal PWM augmenter et diminuer à une fréquence constante de 1Khz.