Cours:ModelismeTelecommande
Éléments de correction (accès réservé aux enseignants)
Sommaire
Cahier des charges
Présentation du système
On dispose d'une voiture radiocommandée pour laquelle nous souhaitons remplacer la télécommande.
Le système a concevoir doit permettre de réaliser les fonctions suivantes :
- Transmettre une consigne de vitesse
- Transmettre une consigne de direction
- Calibrer les 2 axes.
- Assurer une sécurité de la voiture en cas de perte du signal de la télécommande
- Visualiser le niveau de charge de la voiture sur la télécommande
La transmission sans fil utilisera des modules Xbee série 1, qu'il conviendra de configurer de façon adaptée.
Les cartes à réaliser s'articuleront au choix sous la forme :
- d'un shield Arduino
- d'une carte µcontrôleur utilisant :
- atmega 328p
- attiny 841
- module xbee seul (plus compliqué mais pas de programmation !)
Dans le cas de l'utilisation d'un µcontrôleur :
- on pourra l'alimenter en 3,3v (même tension que les modules Xbee)
- Il faudra éventuellement ajouter un quartz externe à 16MHz pour le 328p (pour utiliser les fonctions arduino)
- prévoir le connecteur ISP
Description du travail
Vous devrez pour ce projet réaliser 2 cartes :
- soit sous la forme de cartes d'extension arduino.
- soit une carte autonome
Carte d'émission
La première carte doit :
- supporter l'interface avec l'utilisateur (a définir):
- boutons poussoirs
- potentiomètres
- affichage tension batterie ...
- supporter le module Xbee
- Alimenter la "télécommande"
- Permettre la calibration de la voiture (point "0" pour lequel la voiture ne bouge pas et se positionne en ligne droite)
Carte de réception
La deuxième carte doit :
- présenter les connecteurs pour le servo moteur de direction
- présenter les connecteurs pour le variateur
- supporter le module Xbee
- Observer la tension de la batterie
Protocole
Les 2 cartes vont échanger des données par l'intermédiaire d'une liaison série (cf TP liaison série), utilisant les modules Xbee comme support de transmission sans fil.
Vous devrez envoyer sur cette liaison différentes données, et donc il sera nécessaire de définir un protocole cf tp M1103.
Pour transmettre une valeur de MLI pour la vitesse v=10 et une consigne de MLI pour la direction d=102, vous pourrez par exemple envoyer :
- caractère de départ : #
- vitesse : 10
- séparateur : "espace"
- direction : 102
- séparateur : "espace"
- caractère de fin : $
- Trame complète : #10 102 $
Fonctions de programmation
Dans le cas de l'utilisation d'un Atmega328p, vous pouvez utiliser les fonctions arduino pour faire votre programme.
Les fonctions suivantes seront sans doute nécessaires, soit pour l'émetteur (télécommande) soit pour le récepteur (voiture)
- atoi() => récepteur
- Serial.readBytesUntil => récepteur
Planification du travail
Il sera judicieux d'organiser l'avancement du travail de la façon suivante :
- Analyse
- Choix de l'interface utilisateur
- Observation/documentation sur les signaux de commande d'un servomoteur/variateur de modélisme
- Validation
- de l'interface utilisateur
- de l'échange de données par module Xbee
- commande des actionneurs avec la carte µcontroleur/module Xbee
- Transmission
- configuration des modules Xbee
- vérification du fonctionnement
- Fabrication
- Programmation
- mettre en place la protocole
- prévoir la calibration des MLI
- commander les MLI suivant les actions de l'utilisateur
- Validation du fonctionnement
Fabrication
Vous avez tout validé, le schéma est terminé, il faut respecter les règles de routage :
- pistes larges
- pistes espacées
- pistes courtes