0

Présentation du bus I2C

I2clogo

Cet article n’a pas la prétention de faire un cours sur l’I2C mais juste de poser les points essentiels de ce protocole histoire du bien savoir de quoi on parle. Vous pouvez regardez la documentation de PHILIS ici .

Définition : I²C (pour Inter Integrated Circuit Bus) est le nom du bus historique, développé par Philips pour les applications de domotique et d’électronique domestique au début des années 1980, notamment pour permettre de relier facilement à un microprocesseur les différents circuits d’une télévision moderne. Ce bus porte parfois le nom de TWI

Ce bus est constitué de trois câbles:
- la masse (Vss)
- l’horloge (CLK)
- les données (SDA)

Il permet de commander de nombreux appareils avec un nombre réduit de câbles. Nous pouvons retrouver des commandes d’entrée sortie, des mémoires vives et morte, des commandes d’actionneur. Le tableau ci-dessous liste les composants sortis à ce jour permettant de nombreuses applications faciles à mettre en place.

référence description boitier dimension datasheet prix
PCF8574 Module d’entrées sorties 8bits DIL 20 19,50 x 8,25 mm

PCF8574 datasheet

3,50 euro
ISS Synthétiseur vocal DIL 40 52,50 x 15,80 mm

ISS datasheet

___
SD20 Commande de 20 servomoteur DIL 40 52,50 x 15,80 mm SD20 datasheet 19,50 euro
SD21 Commande de 21 servomoteur sur une carte déjà préparée avec une alimentation, l’environnement de fonctionnement du microcontroleur, et des broches pour venir connecter les servomoteurs dessus. carte électrique ___ SD21 datasheet 49,90 euro
D2000 Carte à puce au format ISO. C’est une carte comprennant de l’EEPROM non-crypté de chez PHILIPS. Elle contient de 2kbits à 8kbits en fonction de la carte carte à puce 53,98 x 85,60 mm 2,10 euro
CMPS03 Ce module est une bousolle électronique d’une précision de 3 à 5° qui sort la position sur 8 ou 16bits carte électrique 32 x 35 mm

CMPS03 datasheet

19,50 euro
SRF08 Ce module permet de mesurer la ditance de 3cm à 6m d’un obstacle par ultra-Sons. carte électrique 43 x 20 x 17 mm

SRF08 datasheet

57,20 euro
0

Les télémètres Infra-Rouge

capteur-distance-gp2y0a02yk-ir-sharp

Les télémètres infra-rouge vont vous donner un signal électrique proportionnel à la distance mesurée. Par exemple 1,2 V pour 6cm et 4,5V pour 27cm. Nous pouvons classer en deux catégories les télémètres infra-rouge:

-    Ceux de proximités qui vont donner une mesure de 4cm à 30 cm

-    Ceux de distance moyenne qui vont mesurer de 20 – 30 cm à 3 – 6 m
Pour avoir une distance exacte, le mieux est de se rapporter à la documentation technique du composant en allant voir le graphique de rapport voltage/dictance. Ensuite de faire ces propres mesures pour être sûre des valeures

Les télémètres infra-rouges sont les principaux capteurs de nos robots en raison de leur performance, de leur précision et de leur coup faible comparé à l’ultra_son. Cependant, il ne faut pas oublier de prendre en compte le fait de l’infra-rouge reste influençable par la lumière et la couleur des objets. Il faut donc bien prendre en compte ces données lors de la programmation des composants.

Sur le schéma ci-dessus, nous pouvons remarquer que la référence du voltage se règle en fonction de VCFG0 et VCFG0. Si vous souhaitez que la référence soit celle de base du microcontroleur, il faut mettre les deux paramètres à 0. Ainsi, ils seront communté sur VDD et VCC. Pour le réglage des autres paramètres, il suffit de suivre les directives fournies sur la figure suivante en réglant les temporisations en fonction du microcontroleur utilisé.

Attention, il faut bien noter que les configuration des registres sont propres à chaque microcontroleurs. Si pour ce type de PIC il faut régler les trois registres (ADCON0, ADCON1, et ADCON2) pour les 16f877, il n’y a que les deux premiers registres… Il faut donc bien se référer à sa documentation.

Voici un extrait du code qui permet de faire l’acquisition de la valeur analogique d’un télémètre GP2D12 du fabriquant SHARP

// mode analogiques pour le port A (AN0 – AN6)
ADCON1 = 0b00000111;

// definition des entrée sortie
TRISA=0xFF;

float telemetre;

ADCON2 = 0xFF; // configuration des temporisations, a retoucher pour faire un code plus propre …
telemetre = 0; // initialisation de la valeur retournée

if(c==3)ADCON0=0b00001101; //va chercher la valeur de mon télémètre An3

ADIF = 0;
ADIE = 1;
GIE = 1;

CONFIG_waitMs(10);

if(c==3)ADCON0=0b00001111; //va chercher la valeur de mon télémètre AN3

CONFIG_waitMs(10);
ADIF = 0;

telemetre = ADRESL;
telemetre += (ADRESH << 8);
telemetre = telemetre*5/1024;

0

Les Switchs à lamelle

fin_de_course-3pts

Les switchs sont des interrupteurs comme leur nom l’indique qui nous servent beaucoup en robotique pour faire des capteurs de derniers secours. Nous les avons principalement utilisés pour faire des pare-chocs lors des coupes de robotique.

Leur emploie reste très simple étant donné que ce ne sont qe des interrupteurs. Cependant, il faut penser à mettre un condensateur pour éviter les « doubles touches » et bien penser à mettre aussi des resistances de pull down. Une resistance de pull down permet de faire un appel de courant dans votre circuit électrique (en général autour d’1K). Si vous l’oubliez, le courant ne passera pas (ou s’il passe il sera faible) et votre signal ne sera pas propre. Une fois ces précotions bien respectées vous pouvez connecter la sortie sur votre microcontrôleur.

Histoire de bien protéger votre cicuit, vous pouvez rajouter une diode de protection pour éviter un retour de courant.

(nous vous mettrons un schéma électrique récapitulant le tout prochainement)

Pages ... 1 2 3 4