Cours:VoitureTelecommandee : Différence entre versions

De troyesGEII
Aller à : navigation, rechercher
m ({{Bleu|Saisie schématique}})
m ({{Bleu|Saisie schématique}})
 
Ligne 97 : Ligne 97 :
 
N'oubliez pas de prévoir le connecteur pour le XBee qui a un pas très particulier.
 
N'oubliez pas de prévoir le connecteur pour le XBee qui a un pas très particulier.
  
En ce qui concerne l'ICSP, [http://forum.arduino.cc/index.php?topic=500875.0 le forum Arduino] indique qu'il faut prendre PA4/PA5/PA6 pour MISO/MOSI/SCK sur l'ATTiny841 (il y a deux MISO/MOSI/SCK sur l'ATTiny841 !).
+
En ce qui concerne l'ICSP, [http://forum.arduino.cc/index.php?topic=500875.0 le forum Arduino] indique qu'il faut prendre PA4/PA5/PA6 pour MISO/MOSI/SCK sur l'ATTiny841 ('''ATTENTION''' : il y a deux MISO/MOSI/SCK sur l'ATTiny841 !).
  
 
=={{Bleu|Routage et boards}}==
 
=={{Bleu|Routage et boards}}==

Version actuelle datée du 21 février 2018 à 19:22

Cahier des charges

Présentation du système global

On dispose d'une voiture radiocommandée pour laquelle nous souhaitons remplacer la télécommande. Ceci impose automatiquement de remplacer la partie réception (sauf à faire du reverse ingeenering sur le protocole existant). Il y a ainsi une télécommande à concevoir complètement et une partie réception qui sera destinée à envoyer les ordres reçus à la partie puissance de la voiture.

Le système a concevoir doit permettre de réaliser les fonctions suivantes :

  • Transmettre une consigne de vitesse
  • Transmettre une consigne de direction
  • Calibrer l'axe de direction : il faut qu'un zéro en direction fasse une ligne droite
  • 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 à l'aide de trois leds de couleurs

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 autour du processeur attiny 841 et d'un module xbee.

Présentation de la télécommande

La partie émetteur sera alimentée complètement en 3,3V qui sera réalisée à partie d'une alimentation sur batterie constituée de 4 accumulateurs AA.

Prévoir le connecteur ISP pour la programmation du processeur

Présentation de la partie réception

La partie réception sera alimentée en deux tensions différentes :

  • 3,3V obligatoire pour le module XBee
  • 5V pour le microcontrôleur

Le 5V est tiré de la partie puissance mais le 3,3V devra être réalisé avec un régulateur adapté.

Prévoir le connecteur ISP pour la programmation du processeur. Vous utiliserez, comme Atmel le préconise, le connecteur ISP à 6 broches.

Étude et réalisation du projet Télécommande

Étude

Les études de chacune des fonctions se feront sur plaque à essais. Nous vous présentons l'ensemble des fonctions à réaliser à l'aide d'un schéma de principe.

Telecommande2.png
  • Les commandes manuelles seront réalisées à l'aide d'un joystick analogique :
    • un joystick sera utilisé de droite à gauche pour définir la direction de déplacement
    • un autre joystick sera utilisé d'avant en arrière pour choisir la vitesse de déplacement
  • Une alimentation 3,3V est nécessaire pour le XBee et l'ATtiny841
  • La partie centrale est un ATtiny841 qui sera alimenté en 3,3V
    • Il devra recevoir les informations du joystick et les envoyer au XBee
    • Il devra permettre la calibration de la direction à l'aide du joystick de direction et de la commande manuelle de validation
    • Il élaborera à partir de la tension batterie reçue un affichage sur 3 leds (signaux visuels sur le schéma)

Saisie schématique

Avr isp.jpg

Chaque étude validée sur plaque à essais sera aussitôt traduite en schématique. La réalisation du schéma se fera donc au fur et à mesure de l'avancement de la validation de vos fonctions.

N'oubliez pas de prévoir le connecteur pour le XBee qui a un pas très particulier.

En ce qui concerne l'ICSP, le forum Arduino indique qu'il faut prendre PA4/PA5/PA6 pour MISO/MOSI/SCK sur l'ATTiny841 (ATTENTION : il y a deux MISO/MOSI/SCK sur l'ATTiny841 !).

Routage et boards

Vous avez tout validé, le schéma est terminé, il faut respecter les règles de routage :

  • pistes larges
  • pistes espacées
  • pistes courtes
  • Via : 0.8 pour les trous et 1,25 pour le diamètre externe
  • N'hésitez pas à ajouter du texte sur vos cartes. Le minimum et bien sûr BOT XXX et TOP XXX pour du double face avec XXX remplacé par votre nom.
  • Les connecteurs aussi doivent être renseignés par du texte. Vous devez être capable de réutiliser votre carte dans 6 mois !

Réalisation du calque

Exports sous forme d'images :

  1. fond en blanc : Options -> user interface -> layout
  2. lancer ulp -> drill-aid vous propose Drill center diameter 0,3mm et c'est OK. Le remplissage se fait en couche 116 mais avec des hachures.
  3. Choisir cette couche 116 puis change -> Fillstyle en plein
  4. Choisir les couches Bottom (bleu) Pads vias et la 116
  5. File -> export -> Image donner un nom et choisir 1200 DPI et monochrome
  6. Idem pour Top (rouge) avec pads et vias (et éventuellement la 116)

Étude et réalisation du projet Réception

Étude

Les études de chacune des fonctions se feront sur plaque à essais. Nous vous présentons l'ensemble des fonctions à réaliser à l'aide d'un schéma de principe.

Voiture.png
  • Une alimentation 3,3V est à réaliser à partir du 5V disponible dans la partie puissance
    • Le 3,3V est uniquement destiné au module XBee
  • La partie centrale est un ATtiny841 alimenté en 5V
    • Il devra recevoir les informations du XBee (vitesse et direction) et les envoyer aux parties de puissance correspondantes
    • La vitesse se commande par une Modulation de Largeur d'Impulsion ou MLI (rapport cyclique)
    • La direction est réalisée par un servo, c'est à dire aussi une commande en MLI
  • Adaptation des tensions
    • Le 3,3V du XBee peut être directement relié à l'ATtiny841 (en réception)
    • Le 5V de l'ATtiny841 (en émission) ne peut pas être relié directement au XBee. Pont diviseur ?
    • La mesure de la tension batterie nécessite plus de précaution pour l'adaptation. Vous devez à tout prix regarder le datasheet du ATtiny861 pour connaître sa tension de référence et en déduire l'adaptation

Plus d'explications sur le dernier point

La Conversion Analogique Numérique (CAN) nécessite une tension de référence. Si vous prenez la tension de batterie comme référence et que vous mesurez celle-ci, vous trouverez toujours la même valeur et ce quel que soit l'état de la batterie. Il faut donc une référence de tension, ce que tous les microcontrôleurs proposent. Classiquement on trouve soit 1,1V ou soit 2,56V ou encore les deux ! A chercher dans le datasheet.

Saisie schématique

Avr isp.jpg

Chaque étude validée sur plaque à essais sera aussitôt traduite en schématique. La réalisation du schéma se fera donc au fur et à mesure de l'avancement de la validation de vos fonctions.

N'oubliez pas de prévoir le connecteur pour le XBee qui a un pas très particulier.

En ce qui concerne l'ICSP, le forum Arduino indique qu'il faut prendre PA4/PA5/PA6 pour MISO/MOSI/SCK sur l'ATTiny841 (ATTENTION : il y a deux MISO/MOSI/SCK sur l'ATTiny841 !).

Routage et boards

Vous avez tout validé, le schéma est terminé, il faut respecter les règles de routage :

  • pistes larges
  • pistes espacées
  • pistes courtes
  • Via : 0.8 pour les trous et 1,25 pour le diamètre externe
  • N'hésitez pas à ajouter du texte sur vos cartes. Le minimum et bien sûr BOT XXX et TOP XXX pour du double face avec XXX remplacé par votre nom
  • Les connecteurs aussi doivent être renseignés par du texte. Vous devez être capable de réutiliser votre carte dans 6 mois !

Réalisation du calque

Exports sous forme d'images :

  1. fond en blanc : Options -> user interface -> layout
  2. lancer ulp -> drill-aid vous propose Drill center diameter 0,3mm et c'est OK. Le remplissage se fait en couche 116 mais avec des hachures.
  3. Choisir cette couche 116 puis change -> Fillstyle en plein
  4. Choisir les couches Bottom (bleu) Pads vias et la 116
  5. File -> export -> Image donner un nom et choisir 1200 DPI et monochrome
  6. Idem pour Top (rouge) avec pads et vias (et éventuellement la 116)

Protocole et programmation

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 Atiny841, 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)

Vous avez à programmer une MLI pour votre servomoteur et votre moteur de propulsion qui est un moteur brushless. Sa commande se fait exactement de la même façon que celle des servomoteurs. Il vous est donc possible d'utiliser les fonctions Arduino pour cela. Voir aussi :

Compilation

Vous utiliserez l'IDE eclipse pour réaliser votre programme. L'horloge par défaut de votre µcontrôleur est 1MHz.

Une autre solution est d'utiliser un éditeur de texte quelconque (gedit par ex) pour créer votre programme (fichier test.c par ex). L'étape de compilation s'effectuera en "ligne de commande" de la façon suivante :

avr-gcc -Wall -g -Os -mmcu=attiny841 -o test.o test.c
avr-objcopy -j .text -j .data -O ihex  test.o test.hex
avrdude -c avrisp2 -P usb -p t261 -U flash:w:"test.hex"

Il conviendra bien entendu de remplacer les occurrences "test.*" par le nom de votre programme

Contraintes sur les projets

Planning à respecter

Vous serez évalué tout au long du projet en début de séance. Ce qui vous permettra de terminer en dehors des séances le travail que vous n'aurez pas achevé.

Une chose importante à noter : Il vous revient de saisir au fur et à mesure le schéma des différentes fonctions étudiées dès que possible.

Vous trouverez ci dessous l'avancement attendu des différentes séances. Notons également que vous devrez achever votre travail après les 8 séances si le projet n'est pas terminé.

De plus, le routage devra être fait en bonne partie en dehors des séances.


n° de séance Détail de l'attendu
1 Étude
2 Étude
3 Saisie Étude, validation et saisie
4 Routage Validation du routage et schéma de la carte électronique
5 Fabrication Brasage des composants
6 Vérification Tests et dépannage de la carte
7 Programmation Mesure des performances de la carte réalisée
8 Programmation (suite) Amélioration et finition du programme et rendu de rapport écrit

Évaluation

Vous serez évalué tout au long du projet en début de séance. Ce qui vous permettra de terminer en dehors des séances le travail que vous n'aurez pas achevé.

Comme indiqué dans le tableau du planning vous avez un rapport à rendre qui lui aussi sera évalué.

Composants utilisés

Nom Type Boîtier Librairie Eagle Référence eagle Documentation Fournisseur Référence
ATTINY841 µcontrôleur SOIC14 bt_avr ATTINY 441/841-SSU attiny841.pdf Farnell 2396716
ISP barrette mâle sécable traversant con-lstb MA03-2
XBee traversant adafruit XBEE Xbee et atmega
Connecteur connecteur pour 3 fils traversant con-lstb MA03-1
Joystick Joystick analogique

Liens

PWM et Xbee

CAN et Xbee

Xbee digital IO

Xbee et atmega

Ancien document pour ce projet