0% ont trouvé ce document utile (0 vote)
62 vues12 pages

Cours TP1 Prototypage Rapide

Transféré par

David Danhouegnon
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
62 vues12 pages

Cours TP1 Prototypage Rapide

Transféré par

David Danhouegnon
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Module : Prototypage rapide et fabrication numérique

TP1
Programmation embarquée : Utilisation de la carte
Raspberry

A. Objectifs

1. S’initier à l’utilisation de la carte Raspberry


2. E9ectuer des montages et utiliser des capteurs et actionneurs avec la carte
Raspberry.
B. Quelques consignes :

§ Merci à tous les groupes de venir avec une clé USB pour enregistrer vos
programmes et les bibliothèques nécessaires. Assurez-vous que le code et les
bibliothèques se trouvent dans le même répertoire. Vous pouvez également
utiliser vos comptes OneDrive pour sauvegarder et partager votre travail.

§ Les bibliothèques requises pour vos projets sont disponibles sur Edunao. Veillez
à les télécharger et les organiser correctement avant de commencer.

§ Évitez de nommer vos fichiers avec le même nom que les bibliothèques ; optez
plutôt pour des noms reflétant le contenu ou le nom de l’exercice, afin de faciliter
la gestion et l’identification des fichiers.

§ L’utilisation de ChatGPT ou de toute autre IA générative pour écrire du code est


strictement interdite, car nous souhaitons évaluer vos compétences de
programmation personnelles. Toute violation de cette règle sera sanctionnée.

§ Soyez prêts à expliquer votre démarche et les choix techniques que vous avez faits
lors des séances de présentation.

C. Paramètres utiles

1. Premières configurations
2. Mise à jour du système d’exploitation
3. Installation des logiciels

Une fois votre Raspberry connecté à internet via un câble réseau ou la clé Wifi, vous allez
pouvoir télécharger les logiciels que vous souhaitez. Une règle générale, la commande
sudo depuis le terminal. Dans un premier temps nous installons le logiciel Python.

4. Éteindre correctement le Raspberry

D. Avant de démarrer :

Téléchargez les bibliothèques disponibles sur Edunao (par séance) et enregistrez-les sur
un espace de stockage, comme un drive ou une clé USB. Vous pouvez accéder à Edunao
directement depuis la carte Raspberry connectée à Internet. Une fois les fichiers
téléchargés, placez-les dans le même dossier que celui dans lequel vous mettrez vos
codes. Veillez à ne pas nommer vos fichiers de code avec les mêmes noms que ceux des
bibliothèques.

Une fois le logiciel Python téléchargé et installé, ouvrez-le en suivant les instructions ci-
dessous :

Pour a9icher l’éditeur :

5
E. Programmation Simulée VS Programmation Embarquée

Programmation simulée : Code testé dans un simulateur, sans besoin du matériel


physique. Avantages : développement rapide et sûr, accessible sans matériel.
Inconvénients : peut manquer de précision par rapport aux conditions réelles du matériel.

Programmation embarquée : Code exécuté directement sur le matériel cible. Avantages


: haute-fidélité aux conditions réelles, précision des tests. Inconvénients : tests plus
complexes, risque de dommages au matériel.

Exercice 1 : Simulation du clignotement de la LED (Informatique Générale)


Pour commencer, dans cet exercice, vous allez créer un programme en informatique
générale pour simuler le clignotement d'une LED en utilisant du texte.

Code à réaliser :

1. Écrivez un programme Python qui a9iche alternativement les messages


"LED allumée" et "LED éteinte", avec une pause d'une seconde entre
chaque changement.
2. Utilisez une boucle pour faire clignoter la LED virtuelle (simulée par le texte)
cinq fois.
Dans la suite nous avons-nous intéressé à la programmation embarquée par utilisation
de la carte Raspberry.

Exercice 2 : Contrôle réel de la LED (Informatique Embarquée)

Nous allons maintenant écrire un programme pour communiquer avec des équipements
réels afin de faire clignoter la LED. Pour cela, il est essentiel de comprendre les outils qui
nous permettront de dialoguer avec ce matériel.

Les broches GPIO :


Les broches GPIO (General Purpose Input/Output) de la Raspberry Pi sont des broches
configurables qui permettent de connecter et de contrôler divers périphériques
(capteurs, LED, moteurs, etc.) directement depuis la carte. Voici un aperçu de leur
utilisation et de leur configuration :

Figure 1 : Broches GPIO

Organisation des Broches GPIO

La Raspberry Pi possède généralement 40 broches GPIO (selon les modèles), réparties


en deux rangées de 20 pins. Ces broches sont numérotées de manière logique
(numérotation GPIO) et physique (numérotation PIN). Figure 1
§ Numérotation GPIO : Utilisée dans le code, chaque broche a un numéro logique
unique (par ex., GPIO17).
§ Numérotation physique (PIN) : Numérotation basée sur la position physique de
la broche (par ex., PIN 1, PIN 2, etc.).

Types de Broches GPIO

1. Broches d’alimentation :
§ 5V : Fournissent une alimentation directe de 5 volts.
§ 3.3V : Fournissent une alimentation de 3.3 volts pour des composants
plus sensibles.
§ GND : Broches de mise à la terre (ground).
2. Broches de données (GPIO) :
§ Entrées/Sorties numériques : Utilisées pour envoyer (sortie) ou recevoir
(entrée) des signaux numériques (0 ou 1, LOW ou HIGH).
§ PWM (Pulse Width Modulation) : Certaines broches supportent le PWM,
permettant de contrôler l’intensité (par ex., la luminosité d’une LED) ou
la vitesse (par ex., d’un moteur).
3. Broches de communication :
§ I2C : Broches dédiées à la communication I2C (Inter-Integrated Circuit),
pour communiquer avec des capteurs et modules compatibles I2C.
§ SPI : Broches dédiées au protocole SPI (Serial Peripheral Interface), pour
des communications rapides avec des périphériques.
§ UART (TX/RX) : Broches pour la communication série, souvent utilisées
pour la communication avec d’autres microcontrôleurs.

Utilisation des Broches GPIO

Les broches GPIO de la Raspberry Pi sont programmables en Python (ou autres langages).
Avec la bibliothèque RPi.GPIO ou GPIO Zero, on peut configurer une broche comme
entrée ou sortie et l’utiliser pour interagir avec des composants électroniques.

Exemples d’utilisation :

§ Entrée : Lire l’état d’un bouton poussoir.


§ Sortie : Allumer ou éteindre une LED.
§ PWM : Régler la luminosité d’une LED ou la vitesse d’un moteur.
§ I2C/SPI : Connecter un écran LCD, un capteur de température ou autres
périphériques.

Configuration des entrées-sorties :

Afin d'initialiser une E/S, il su9it de préciser son numéro, fonction de la configuration
précédemment choisie, son paramétrage (entrée ou sortie) et éventuellement son état
initial (pour une sortie).

GPIO.setup(12, GPIO.IN) # broche 12 est une entree numerique


GPIO.setup(12, GPIO.OUT) # broche 12 est une sortie numerique
GPIO.setup(12, GPIO.OUT, initial=GPIO.HIGH) # broche 12 est
une sortie initialement a l'etat haut
Afin de lire l'état d'une entrée, il su9it de préciser le numéro de l'E/S.

GPIO.input(12)

Changer l'état d'une sortie numérique :

Pour définir une sortie à un niveau élevé :


GPIO.output(12, GPIO.HIGH)
# ou
GPIO.output(12, 1)
# ou
GPIO.output(12, True)

Pour définir une sortie à un niveau bas :

GPIO.output(12, GPIO.LOW)
# ou
GPIO.output(12, 0)
# ou
GPIO.output(12, False)
Pour envoyer des sorties à plusieurs canaux en même temps :

chan_list = (11,12)
GPIO.output(chan_list, GPIO.LOW) # all LOW
GPIO.output(chan_list, (GPIO.HIGH,GPIO.LOW)) # first LOW,
second HIGH

Nettoyez à la fin de votre programme.


GPIO.cleanup()

Travail demandé :

Exercice 2 :

1. Réalisez le montage de la LED et de la résistance de la figure 2 sur une planche


de maquettage branchée au GPIO. Le premier montage est pour le test de la
diode.
2. Écrivez un programme simple qui fait clignoter une LED avec une période d’une
seconde.

Figure 2
Exercice 3

Refaites le même programme que celui utilisé pour faire clignoter la LED, mais cette fois
pour que le buzzer émette un son. Figure 3.

Figure 3
Exercice 4 :

Réalisez un montage et écrivez un programme permettant d’allumer une LED, connectée


au GPIO de votre choix, pendant 5 secondes lorsqu'un bouton poussoir, branché au GPIO
12, est pressé.

Exercice 5 :

§ Écrire un programme simple qui simule les feux de circulation en utilisant 3


LED Rouge, Vert et Bleu.
§ Réaliser le montage et écrire le programme approprié.
Figure 4 : feu de circulation

Projet 1 (Évaluation) :

Nous souhaitons développer un programme pour gérer le fonctionnement d’un feu de


circulation, en intégrant la prise en compte de l’appui sur un bouton poussoir par les
piétons. Voici le cahier des charges pour ce projet.

Cahier des charges :

État 1 : Feu vert (voitures passent)


§ Le feu vert est allumé, les feux jaune et rouge sont éteints. Les voitures peuvent
passer.
§ Le bouton poussoir est vérifié pour voir si un piéton souhaite traverser.
§ Si le bouton n’est pas pressé, le feu vert reste allumé pendant 10 secondes.
§ Si le bouton piéton est pressé 5 fois, le feu vert reste allumé pendant 3 secondes
supplémentaires avant de passer au feu jaune qui clignote 4 fois (0,5 seconde
allumé, 0,5 seconde éteint) pour laisser les piétons passer.
§ Le feu vert s’éteint et le feu jaune clignote pour avertir les voitures.
État 2 : Feu rouge (Piétons passent)
§ le feu rouge s’allume.
§ Les voitures s’arrêtent pendant 10 secondes.
§ Les piétons peuvent passer, avant que le feu passe au rouge vert, le un son doit
avertir les piétons de l’approche de passage de voitures. Le buzzer met un son
pendant 3 secondes
Retour à l’État 1 : Feu vert
§ Le feu vert se rallume, et la séquence recommence.

Appelez le professeur encadrant

Exercice 7 : Contrôle d’un servo-moteur

Dans cet exercice, nous allons apprendre à contrôler un servo-moteur à l’aide d’un
Raspberry Pi. Les servo-moteurs sont des dispositifs très utiles dans les projets
robotiques et d’automatisation, car ils permettent de contrôler avec précision la position
d’un objet. Nous utiliserons la modulation de largeur d’impulsion (PWM) pour envoyer des
signaux au servo-moteur, ce qui déterminera son angle de rotation.

Figure 5 : Servomoteur

Modulation de largeur d’impulsion (PWM) :

La PWM est une technique qui permet de contrôler la puissance envoyée à un appareil en
modulant la largeur des impulsions d’un signal électrique. Dans le cas d’un servo-moteur,
la durée de l’impulsion détermine la position de l’arbre du moteur. Par exemple, une
impulsion de 1.5 ms peut positionner le servo à 90 degrés, tandis qu’une impulsion de 1
ms ou 2 ms peut le positionner respectivement à 0 ou 180 degrés. En variant la durée de
l’impulsion, nous pouvons ainsi faire tourner le servo-moteur à di9érents angles.
p = GPIO.PWM(channel, frequence)
p.start(rapport_cyclique) #ici, rapport_cyclique vaut entre
0.0 et 100.0
p.ChangeFrequency(nouvelle_frequence)
p.ChangeDutyCycle(nouveau_rapport_cyclique)
p.stop()

Travail demandé :

1. Réalisez le montage du circuit de la figure 5.


2. Écrivez un programme Python qui utilise la bibliothèque RPi.GPIO pour
contrôler le servo-moteur. Le programme doit faire tourner le servo-moteur à
0, 90, puis 180 degrés, avec une pause de 2 secondes entre chaque position.
Comment allez-vous gérer le signal PWM dans votre code ?

Exercice 8 : Capteur de présence

Dans cet exercice, nous allons découvrir comment utiliser un capteur de présence
(souvent un capteur infrarouge passif, PIR) pour détecter le mouvement ou la présence
d’une personne ou d’un objet dans une zone donnée (Figure 6). Ces capteurs sont
couramment utilisés dans les systèmes d’alarme et d’automatisation pour détecter
l’activité humaine. Le capteur envoie un signal lorsqu’un mouvement est détecté, ce qui
peut être interprété par le Raspberry Pi pour déclencher une action.

Figure 6 : Capteur de présence (Gauche) et son principe de fonctionnement (Droite)

Les capteurs PIR détectent les changements de chaleur infrarouge dans leur champ de
vision. Lorsqu’un objet chaud, comme une personne, passe dans leur champ, le capteur
envoie un signal haut (HIGH). Ce signal peut être lu par le Raspberry Pi, qui peut alors
exécuter des commandes spécifiques, comme allumer une LED ou déclencher une
alarme.

Travail demandé :

1. Réalisez le montage de la figure 7.


2. Écrivez un programme en Python pour surveiller les signaux du capteur de
présence. Lorsque le capteur détecte un mouvement, le programme doit
a9icher un message “Présence détectée”, allumer une LED pendant 5
secondes et émettre un son avec le buzzer.

Figure 7

Vous aimerez peut-être aussi