| Le schéma : |
 |
Avec : ( environ 80 F )
- Un pic 16f84
- X1 quartz 4Mhz
- C1,C2 2 condensateurs 33pF
- C3 condensateur 100nF
- C4 condensateur 10µF / 16 V
- Des connecteurs pour les 8 servos, les 2 alimentations et la liaison série.
|
| Le principe de fonctionnement. |
Du point de vue électronique, il n'y a pas grand chose a dire. Tout est assemblé
autour d'un pic 16F84 avec son inséparable oscillateur réalisé avec un quartz 4 MHz et
de deux condensateurs 33pF. Les ports RB0 à RB7 sont utilisés en sortie pour générer
les signaux des 8 servomoteurs. RA1 comme entrée série asynchrone venant d'une carte
mère. RA0 est resté libre ce qui permettra ultérieurement, d'adapter à cette interface
un autre protocole série synchrone, comme le fameux I2C. RA2, RA3 et RA4 sont relier au
5V ou a la masse, ce qui permet de donner une adresse au module et ainsi différencier
jusqu'à 8 cartes reliées sur le même port série. Les condensateurs C3 et C4
stabilisent l'alimentation du pic. Certains servomoteurs consommant beaucoup, leur
alimentation électrique a été séparée de celle des composants logiques, ce qui du
même coup les protège des parasites générés.
Toute la puissance de ce montage est dans la programmation du microcontrôleur. Qui
doit lire la liaison série, interpréter le message transmis et le transcrire en signaux
compréhensibles par les servomoteurs.
Nous avons déjà décrit le fonctionnement des servomoteurs dans la page " Pic et servomoteur " de notre base
technique. Ces signaux sont générés les un après les autres et répétés toutes les
20ms. Leurs durées pouvant varier de 0,5 à 2,5ms ce qui correspond à une rotation du
servo d'un peu plus de 180° (codé sur 1 octet )
L'entrée est une liaison série RS232 niveau logique TTL, pouvant être générée
facilement par une carte mère, un autre microcontroleur ou un PC (pour ce dernier, un
adaptateur décrit plus bas est nécessaire).
Le protocole de transmission retenu dans le programme est défini à 2400 bauds, 1 bit
de start, 1 de stop et pas de bit de parité. Pour modifier la position du servo, il
suffira de transférer 4 octets :
- Entête du message (valeur fixée à 255 )
- L'adresse de la carte ( de 0 à 7 ) qui dépend du niveaux logique des ports RA2,RA3 et
RA4.
Adresse carte |
RA4 |
RA3 |
RA2 |
0 |
0V |
0V |
0V |
1 |
0V |
0V |
5V |
2 |
0V |
5V |
0V |
3 |
0V |
5V |
5V |
4 |
5V |
0V |
0V |
5 |
5V |
0V |
5V |
6 |
5V |
5V |
0V |
7 |
5V |
5V |
5V |
- Le numéro du servomoteur ( de 0 à 7 )
- La position du servo
( de 4 à 255 pour un déplacement sur plus de 180° ou 0 pour le désactiver )
Vous trouverez plus de détail sur la gestion de tous ces signaux dans le programme,
que vous pouvez télécharger ici :
Programme carte 8 servomoteur ( 4.5 Ko )
Ce montage comporte peu de composant, il peut facilement être réalisé sur une petit
plaque d'essai. Soudez vos composants en faisant attention au sens du condensateur.
Soudez vos connecteurs. Programmez le pic. Alimenter en 5V les 2 entrées d'alimentations
puis la liaison série. Il ne vous reste plus qu'a envoyer différante consigne pour voir
vos servo bouger.
Pour vérifier votre montage : Mesurez au multimètre la tension aux bornes 4 et 14 du
pic (± 5V ), et la tension sur les sorties vers les servos qui peut varier de 0,12V à
0,63V selon la consigne envoyée au servomoteur ( 0V si désactivé ). Si vous avez la
chance d'avoir un oscilloscope vous pouvez l'utiliser pour vérifier ces signaux.
|
 |
|