Quelle fonction permet de déplacer un servomoteur vers un angle spécifique?
Quelle bibliothèque est fréquemment utilisée pour contrôler un servomoteur?
Quels sont les avantages de programmer une machine à états?
Quelle est la différence entre un état et une transition?
Quel protocole montré en classe permet à plusieurs appareils de partager les mêmes fils pour communiquer avec l’Arduino?
Réponses
1. `servo.write(angle)` permet de déplacer le servomoteur vers l'angle voulu.
2. La bibliothèque `Servo.h`.
3. Avantages : meilleure organisation, simplification de la logique complexe, extensibilité du code.
4. Un **état** représente une situation stable, une **transition** est le passage d’un état à un autre basé sur une condition.
5. Le protocole **I2C** (Inter-Integrated Circuit).
Cours 08 : Communication série avancée, POO de base¶
Quelle fonction permet de lire les données entrantes sur le port série?
Quel est l’intérêt de la programmation orientée objet dans un projet Arduino?
Quelle est la différence entre une classe et un objet?
Pourquoi utilise-t-on souvent Serial.available() avant de lire avec Serial.read()?
Quelle est la fonction spéciale d’une classe qui est appelée à sa création?
Réponses
1. `Serial.read()`.
2. Encapsulation du comportement, réutilisabilité du code, meilleure organisation et maintenance.
3. Une **classe** est un modèle, un **objet** est une instance concrète de cette classe.
4. Pour s’assurer qu’il y a des données disponibles dans le tampon avant de lire — éviter les lectures invalides.
5. Le **constructeur** (même nom que la classe, sans type de retour).
Quel composant a-t-on vu qui permet de contrôler la direction et la vitesse d’un moteur DC?
Quelle est la fonction utilisée pour contrôler un moteur avec PWM?
Dans un système à états, pourquoi peut-on vouloir revoir la logique des transitions?
Quelle est la différence principale entre un moteur DC et un moteur pas-à-pas?
Pourquoi est-il recommandé de regrouper les transitions dans une seule fonction?
Réponses
1. Le **L293D**, un double pont en H.
2. `analogWrite(pin, value)`.
3. Pour améliorer la lisibilité, modulariser et faciliter les modifications de comportement.
4. Le moteur DC tourne librement, le **stepper** se déplace par pas contrôlés.
5. Pour centraliser la logique de décision, éviter la duplication de code.
Quel est l'avantage d’utiliser une classe pour piloter un écran?
Comment écrit-on un pixel à l’écran avec la librairie U8g2?
Qu’est-ce que le MAX7219?
Quelle méthode permet de créer une animation avec les fonctions de dessin?
Réponses
1. C’est la réécriture du code pour améliorer sa structure sans changer son comportement.
2. Réutilisabilité, abstraction du matériel, séparation des responsabilités.
3. `u8g2.drawPixel(x, y)`.
4. Un contrôleur de matrice LED 8x8 (et plus) compatible SPI.
5. En combinant une boucle avec un délai (`delay()`, ou mieux `millis()`), et `clearBuffer()` + `sendBuffer()` à chaque cycle.
Quelle bibliothèque est souvent utilisée avec les modules ESP8266 ou ESP32?
Quelle est la différence entre client.publish() et client.subscribe()?
Quel protocole est utilisé pour l’envoi léger de messages sur réseau?
Que signifie QoS dans MQTT?
Pourquoi utilise-t-on un identifiant unique (client ID) pour chaque appareil?
Réponses
1. `WifiEspAT` pour la connexion Wifi et `PubSubClient` pour la communication MQTT.
2. `publish()` envoie un message, `subscribe()` écoute un canal (topic).
3. **MQTT** — Message Queuing Telemetry Transport.
4. Quality of Service — indique la fiabilité de livraison (0, 1 ou 2).
5. Pour éviter les conflits et déconnexions imprévues sur le broker.