Composants du robot
My Robot
Régulateur de tension
78Lxx
L indique une intensité max de 100 ma en sortie,
XX indique le volage en sortie
Le voltage en entrée doit être supérieur d'au moins 2 volts à celui en sortie
78L05:
5v out
9v in
100 ma max en sortie
Ces régulateurs fixes positifs sont sans doute les plus utilisés. Ils disposent tous d'une limitation interne du courant et d'une protection thermique. Seule contrainte: la tension d'entrée minimale Vin min doit être égale ou supérieure à (Vout + 2 V).
2 condensateurs de 330nf et 100 nf en entrée et en sortie pour supprimer les parasites comme indiqué dans le datasheet du composant.
LCD
LCD configuré en 4 bits afin d’économiser les ports. Connecté aux pins 1 à 7 du port D. Ce port D est configuré en E/S standard. Pas besoin du mode esclave également disponible sur le port D.
Le pin DB7 du LCD est également utilisé en entrée comme Busy flag.
Le pin 3 est à la masse car on ne gère pas le rétro-éclairage ;
MAX232 pour Bootloader
MAX232 connecté sur pin RD0 configuré en E/S standard.
Un seul des 2 blocs du MAX232 est utilisé T1 et R1.
Le signal RTS est connecté à la pin MCLR. Les signaux DTR, DSR, CTS ne sont pas gérés.
En sortie du MAX232, une broche DB9 est montée afin de permettre la connexion à un cable Série relié à un PC. Le logiciel bootloader BIGOPIC de Bigonoff peut alors charger des programmes dans le PIC sans déconnecter le PIC de ses autres interfaces. En effet, un programme de gestion de l’écriture de l’EEPROM programme a été initialement chargé en fin d’EEPROM programme avec le programmateur de PIC. BIGOPIC communique avec ce dernier afin de charger en EEPROM programme le code des programmes ‘applicatifs’.
MAX232 pour RS232
MAX232 connecté sur pin RC6/TX et RC7/RX pour utiliser le module USART en mode synchrone pour RS232. Pour la transmission et la réception, un seul des 2 blocs du MAX232 est utilisé T1 et R1. Les signaux DTR, DSR, RTS, CTS ne sont pas gérés.
En sortie du MAX232, une broche DB9 est montée afin de permettre la connexion à un cable Série relié à un PC. Les fonctions standard Hyperterminal Windows permettent alors de communiquer à condition de configurer le débit et la parité comme sur le PIC.
Servomoteur
Servomoteur connecté sur le pin RC0 configurée en E/S standard. Pas besoin du mode Timer1 oscillator de ce pin.
Un signal de type PWM est généré manuellement sur ce pin car les 2 PWM intégrés au PIC sont dédiés au control des 2 moteurs. Il s’agit de 20 impulsions
Télémètres infra-rouge
Un GP2D12 connecté sur entrée AN0 du convertisseur analogique toujours dirigé vers l’avant pour mesurer la distance devant le robot.
Un GP2D12 connecté sur entrée AN1 du convertisseur analogique et monté sur le servomoteur pour mesurer les distances sur les cotés afin de prévoir les changements de direction.
L293D
L293D est un pont en H pour commander 2 moteurs d’une consommation maxi de 600mA. Pour des moteurs plus puissant, il faut voir le L298 ou le LMD18200. D signifie qu’il a des diodes de protection intégrées. Il a également un coupe-circuit thermique mais il ne dispose pas comme le LMD18200 de pin en sortie indiquant une surchauffe ou bien le courant délivré dans les moteurs (pour gérer un asservissement PID)
Chaque moteur est commandé par 2 pins pour le sens et le stop et une pin Enable pour go/stop.
Les 2*2 pins sens sont gérés par les pins RA2, RA5, RE0 et RE1 configurées en E/S standard (au détriment convertisseur analogique et mode esclave). A noter que le pin RA4 n’est pas utilisé car il est particulier (drain ouvert).
Les 2 pins Enable sont gérées par les pins RC2/CCP1 et RC1/CCP2 afin de bénéficier des 2 fonctions PWM intégrées au PIC pour contrôler la vitesse des moteur.
Moteurs
Motors sont connectés au L293D. Ceux sont des motoreducteurs MRA200 , c'est-à-dire qu’ils intègrent une réduction de vitesse.
Compas CMPS03
Le pin 7est non connecté afin d’avoir une fréquence de conversion du champs magnétique la plus rapide : 60 HZ
Le compas est piloté via une interface I2C sur les pins 2 et 3 (PWM est également disponible mais I2C est plus efficace).
Le compas est prévu pour fonctionner à 100 KHZ, par conséquent le bus I2C est configuré à 100KHZ => on prend des résistances de 1K8 pour le pull-up du bus.
Son adresse est OxC0. Le registre 0 indique le numéro de version, le 1 la position sur un octet (le cercle est divisé en 256). On pourrait utiliser les registres 2 et 3 fin d’avoir une position plus précise sur 2 octets (cercle divisé en 3600).
Les autres registres servent au calibrage la première fois.
Si on tourne 90° à droite => position augmente de 64 (+0x40)
Si on tourne 45° à droite => position augmente de 32 (+0x20)
Si on tourne 45° à gauche => position diminue de 32 (-0x20)
Si on tourne 90° à gauche => position diminue de 64 (-0x40)