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 deux LEDs par deux 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.
deux LEDs :
Vous aurez besoin d'une LED (Light Emitting Diode) pour afficher la sortie visuelle. Vous pouvez choisir la couleur de votre choix.
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.
Résistance
La résistance électrique, mesurée en ohms (symbole : Ω), est une propriété fondamentale d'un composant électrique ou d'un matériau qui s'oppose au passage du courant électrique à travers lui. En d'autres termes, la résistance électrique mesure la quantité d'opposition qu'un matériau ou un composant offre au flux de courant électrique.
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.
Voici comment vous pouvez connecter deux LEDs et deux boutons poussoirs à la carte ESP32 :
1- Prenez deux LEDs . Utilisez les fils de raccordement pour la connecter à la carte ESP32 :
- Insérez les LEDs dans la breadboard.
- Branchez la patte longue (anode) de la LED rouge à la broche GPIO 23 de la carte ESP32 via une résistance de 220 ohms.
- Branchez la patte longue (anode) de la LED verte à la broche GPIO 21 de la carte ESP32 via une résistance de 220 ohms.
- Connectez la patte courte (cathode) de chaque LED à la masse (GND) de la carte ESP32.
2- Prenez deux boutons poussoirs et utilisez les fils de raccordement pour le à la carte ESP32 :
Pour le premier bouton :
1- Connectez une patte du premier bouton-poussoir à la broche GPIO 22 de la carte ESP32.
2- Connectez une autre patte du premier bouton-poussoir à la broche GND de la carte ESP32.
Pour le deuxième bouton :
1- Connectez une patte du deuxième bouton-poussoir à la broche GPIO 19 de la carte ESP32.
2- Connectez une autre patte du deuxième bouton-poussoir à la broche GND de la carte ESP32.
Pour programmer un ESP32 en MicroPython afin d'allumer deux LEDs avec deux boutons-poussoirs, vous pouvez suivre ces étapes :
1- Importez les modules nécessaires :
1 2 3 |
import machine from machine import Pin import time |
2- Configurez les broches (GPIO) pour le deux boutons poussoirs et les deux LEDs :
1 2 3 4 |
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) |
Assurez-vous de connecter :
- le premier bouton poussoir à la broche GPIO 22 de la carte ESP32.
- le deuxième bouton poussoir à la broche GPIO 19 de la carte ESP32.
- la LED rouge à la broche GPIO 23 de la carte ESP32.
- la LED verte à la broche GPIO 21 de la carte ESP32.
3- Créer deux variables pour conserver les états de deux LEDs (0 si la LED est éteinte et 1 si la LED est allumée)
1 2 |
red_state=0; green_state=0; |
Créez une boucle pour surveiller l'état des boutons poussoirs et allumer/éteindre les deux 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 |
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 rouge red_state=1 else: red_led.value(0) # Eteindre LED 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 vert green_state=1 else: green_led.value(0) # Eteindre LED verte green_state=0; time.sleep(0.5) elif not green_first and green_second: print('Button released!') |
Ce code crée une boucle infinie qui vérifie en permanence les deux é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 |
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; 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!') |
Lorsque le bouton est enfoncé (l'état est bas), la LED s'allume. Si le bouton est enfoncé une autre fois, la LED 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 deux LEDs à l'aide des deux 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