Le bouton-poussoir, ou bouton de commande, est un composant couramment utilisé dans la robotique pour diverses fonctions. Son rôle dépend du contexte dans lequel il est intégré et de la manière dont il est programmé. Voici quelques-uns des rôles principaux qu'un bouton-poussoir peut jouer dans la robotique :
Commande de démarrage/arrêt : Un bouton-poussoir peut être utilisé pour démarrer ou arrêter le fonctionnement du robot. C'est une méthode simple et efficace pour activer ou désactiver le robot en toute sécurité.
Sélection de modes : Un robot peut avoir différents modes de fonctionnement (par exemple, mode manuel, mode automatique, mode de maintenance). Un bouton-poussoir peut servir à basculer entre ces modes.
Déclenchement d'actions spécifiques : Dans certaines applications, un bouton-poussoir peut être utilisé pour déclencher des actions spécifiques, telles que la saisie d'un objet, le lancement d'un processus de nettoyage, etc.
Sécurité et arrêt d'urgence : Les boutons-poussoirs d'arrêt d'urgence sont des dispositifs de sécurité cruciaux. Lorsqu'ils sont enfoncés, ils interrompent immédiatement toutes les opérations du robot pour éviter les accidents.
Calibrage et réinitialisation : Les boutons-poussoirs peuvent être utilisés pour des opérations de calibrage ou de réinitialisation du robot, par exemple pour recalibrer les capteurs ou rétablir les paramètres par défaut.
Navigation manuelle : Dans le cas de robots mobiles, un bouton-poussoir peut permettre à un opérateur de prendre le contrôle manuel du robot pour le déplacer ou le guider.
Confirmation d'action : Un bouton-poussoir peut être utilisé pour confirmer une action importante, comme la validation d'un choix ou d'une opération critique.
Les boutons-poussoirs sont généralement associés à des routines de programmation qui déterminent leur comportement, ce qui leur confère une grande polyvalence dans la robotique. Ils peuvent être intégrés dans des panneaux de commande, des consoles d'opérateur ou directement sur le robot lui-même, en fonction des besoins spécifiques de l'application robotique.
Pour contrôler le module LED RGB par les boutons poussoirs vous aurez besoin des composants suivants :
Carte ESP32 :
La carte ESP32 est un microcontrôleur basé sur le système sur puce (SoC) ESP32, développé par Espressif Systems. L'ESP32 est une plate-forme matérielle populaire pour le développement de projets IoT (Internet des objets) en raison de sa puissance de traitement, de sa connectivité sans fil intégrée et de sa polyvalence.
Module LED RGB
Vous aurez besoin d'un module LED RGB. Ces modules sont généralement composés de plusieurs LED (une rouge, une verte et une bleue) intégrées dans un seul boîtier.
bouton-poussoir
Un bouton-poussoir est un composant électromécanique couramment utilisé pour établir ou interrompre un circuit électrique temporairement. Il est composé d'un boîtier, d'un bouton (généralement encastré) et de contacts électriques.
Breadboard (Plaque d'essai) :
Une breadboard est utile pour créer un circuit temporaire et connecter facilement les composants entre eux.
Fils de connexion :
Des fils de connexion sont nécessaires pour relier les différents composants ensemble, tels que la connexion entre la carte ESP32, le module LED RGB et la résistance.
Une fois que vous avez ces composants, vous pouvez connecter le module LED RGB à la carte ESP32 en utilisant la résistance appropriée et programmer la carte pour contrôler le module LED RGB en utilisant les boutons poussoirs.
Voici comment vous pouvez connecter un module LED RGB et les boutons poussoirs à une carte ESP32 :
1- Connectez la carte ESP32 à votre ordinateur à l'aide du câble USB.
2- Prenez le module LED RGB. Il a quatre broches : une pour la masse et trois pour les couleurs rouge, verte et bleue. Les broches peuvent être étiquetées comme R, G, B, et GND . Utilisez les fils de raccordement pour connecter le module LED RGB à la carte ESP32:
- Connectez la broche R (rouge) du module LED RGB à la broche GPIO23 de la carte ESP32.
- Connectez la broche G (verte) du module LED RGB à la broche GPIO21 de la carte ESP32.
- Connectez la broche B (bleue) du module LED RGB à la broche GPIO19 de la carte ESP32.
- Connectez la broche GND du module LED RGB à la broche GND de la carte ESP32.
3- pour les boutons poussoirs
Bouton-poussoir 1 pour la couleur rouge:
- Connectez une patte du bouton-poussoir à la broche GPIO21 de la carte ESP32.
- Connectez une autre patte du bouton-poussoir à la broche GND de la carte ESP32.
Bouton-poussoir 2 pour la couleur verte :
- Connectez une patte du bouton-poussoir à la broche GPIO18 de la carte ESP32.
- Connectez une autre patte du bouton-poussoir à la broche GND de la carte ESP32.
Bouton-poussoir 3 pour la couleur bleue :
- Connectez une patte du bouton-poussoir à la broche GPIO5 de la carte ESP32.
- Connectez une autre patte du bouton-poussoir à la broche GND de la carte ESP32.
Pour programmer un ESP32 en Micropython pour allumer un module LED RGB à l'aide de boutons-poussoirs, vous pouvez suivre ces étapes générales :
1- Configuration matérielle :
- Connectez votre ESP32 à un ordinateur via un câble USB.
- Assurez-vous d'avoir un module LED RGB (par exemple, un module NeoPixel) connecté à l'ESP32.
- Connectez les boutons-poussoirs à des broches GPIO de l'ESP32.
2- Flasher Micropython sur l'ESP32 : Assurez-vous que Micropython est correctement flashé sur votre ESP32. Vous pouvez utiliser l'outil esptool pour le faire. Si vous n'avez pas encore flashé Micropython, consultez la documentation officielle de Micropython pour les instructions.
3- Écrire le code Micropython : Voici un exemple de code Micropython pour contrôler un module LED RGB avec trois boutons-poussoirs. Assurez-vous d'adapter les broches GPIO selon votre configuration matérielle.
1- Importez les modules nécessaires :
1 2 3 |
import machine from machine import Pin import time |
2- Configurez les broches (GPIO) pour les trois boutons poussoirs et les trois broches du module LED RGB :
1 2 3 4 5 6 |
red_led=Pin(23, Pin.OUT) red_button = machine.Pin(22, machine.Pin.IN, machine.Pin.PULL_UP) green_led=Pin(21, Pin.OUT) green_button = machine.Pin(19, machine.Pin.IN, machine.Pin.PULL_UP) blue_led=Pin(18, Pin.OUT) blue_button = machine.Pin(5, machine.Pin.IN, machine.Pin.PULL_UP) |
3- Créer trois variables pour conserver les états de trois couleurs du module LED RGB
1 2 3 |
red_state=0; green_state=0; blue_state=0; |
Créez une boucle pour surveiller l'état des boutons poussoirs et allumer/éteindre les trois LEDs en conséquence :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
while True: red_first = red_button.value() time.sleep(0.01) red_second = red_button.value() if red_first and not red_second: # On appuie sur le bouton print('Button pressed!') if (red_state==0): red_led.value(1) # Allumer LED RGB en rouge red_state=1 else: red_led.value(0) # Eteindre la couleur rouge red_state=0; time.sleep(0.5) elif not red_first and red_second: print('Button released!') #led_rouge.value(0) green_first = green_button.value() time.sleep(0.01) green_second = green_button.value() if green_first and not green_second: # On appuie sur le 2eme bouton print('Button pressed!') if (green_state==0): green_led.value(1) # Allumer LED RGB en verte green_state=1 else: green_led.value(0) # Eteindre la couleur verte green_state=0; time.sleep(0.5) elif not green_first and green_second: print('Button released!') blue_first = blue_button.value() time.sleep(0.01) blue_second = blue_button.value() if blue_first and not blue_second: # On appuie sur le 3eme bouton print('Button pressed!') if (blue_state==0): blue_led.value(1) # Allumer LED RGB en bleue blue_state=1 else: blue_led.value(0) # Eteindre la couleur bleue blue_state=0; time.sleep(0.5) elif not blue_first and blue_second: print('Button released!') |
Ce code crée une boucle infinie qui vérifie en permanence les trois états des boutons poussoirs.
Voici le programme complet en Micropython:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
import machine from machine import Pin import time red_led=Pin(23, Pin.OUT) red_button = machine.Pin(22, machine.Pin.IN, machine.Pin.PULL_UP) red_state=0; green_led=Pin(21, Pin.OUT) green_button = machine.Pin(19, machine.Pin.IN, machine.Pin.PULL_UP) green_state=0; blue_led=Pin(18, Pin.OUT) blue_button = machine.Pin(5, machine.Pin.IN, machine.Pin.PULL_UP) blue_state=0; while True: red_first = red_button.value() time.sleep(0.01) red_second = red_button.value() if red_first and not red_second: print('Button pressed!') if (red_state==0): red_led.value(1) red_state=1 else: red_led.value(0) red_state=0; time.sleep(0.5) elif not red_first and red_second: print('Button released!') #led_rouge.value(0) green_first = green_button.value() time.sleep(0.01) green_second = green_button.value() if green_first and not green_second: print('Button pressed!') if (green_state==0): green_led.value(1) green_state=1 else: green_led.value(0) green_state=0; time.sleep(0.5) elif not green_first and green_second: print('Button released!') blue_first = blue_button.value() time.sleep(0.01) blue_second = blue_button.value() if blue_first and not blue_second: print('Button pressed!') if (blue_state==0): blue_led.value(1) blue_state=1 else: blue_led.value(0) blue_state=0; time.sleep(0.5) elif not blue_first and blue_second: print('Button released!') |
Lorsque le bouton est enfoncé (l'état est bas), le module LED RGB s'allume. Si le bouton est enfoncé une autre fois, le module LED RGB s'éteint. Le délai de 0.5 seconde est utilisé pour éviter le rebond du bouton-poussoir, qui peut provoquer plusieurs activations du bouton en appuyant une seule fois.
4- Flasher le code sur votre carte ESP32.
Ce code simple vous permet de contrôler le module LED RGB à l'aide des boutons poussoirs en utilisant le language de programmation MicroPython sur la carte ESP32.
La robotique éducative joue un rôle important dans l'éducation des enfants et des jeunes en les aidant à acquérir des compétences en science et technologie.
Dans ce cadre notre site web représente une excellente ressource pour les parents, les enseignants et les enfants qui souhaitent découvrir la robotique.
Zaouiet Kontech-Jemmel-Monastir-Tunisie
+216 92 886 231
medaliprof@gmail.com
Site robotique réalisé par Mohamed Ali-Prof Info