Le javascript est désactivé sur votre navigateur
 
Prononcer /'po.bot/
Accueil du site
  publication inférieure à 7 jours
  publié < 7j sous cette rubrique
     
Définition : I2C

Le bus I2C (Inter Integrated Circuit) a été développé au début des années 80 par Philips. On le trouvait initialement dans des équipements domestiques (magnétoscope) pour faire communiquer les différents éléments à l’intérieur du même boitier.

Il est devenu ensuite un bus de communication très répandu, y compris pour relier des équipements différents (plusieurs circuits électroniques) à des distances plus grandes (grâce à des répéteurs).

Nous l’utilisons car il est présent sur beaucoup de microcontrôleurs et est très facile à prendre en main.

Rubriques associées
Composants I2C
I2C est un protocole de communication entre plusieurs cartes électroniques. C’est un bus (on peut connecter ensemble plusieurs équipements) répandu dans les appareils électroniques (PC, magnétoscope) et suffisament facile et répandu pour servir également dans la robotique.
Articles associés
mardi 7 février 2012
par Julien H.
Acquisition et transmission de signaux
Bien que la plupart des capteurs utilisent un protocole standard, on a parfois besoin d’un autre mode de communication pour s’interconnecter avec des équipements existants.
Le cas le plus courant est l’utilisation de centrales de traitement fermées acceptant des périphériques RS-232 ou RS-485. Dans ce cas-là, impossible d’implémenter son propre circuit et de programmer l’acquisition. Il faut intervenir du côté du capteur afin de fournir les signaux attendus.
Pour les capteurs basiques (un seul composant), le signal en sortie peut être analogique ou numérique : il faut alors rajouter une (...)

lire la suite de l'article
jeudi 22 décembre 2011
par Julien H.
CMPS03 : une boussole I2C simple
La carte CMPS03 de Devantech est une boussole électronique : deux capteurs Philips KMZ51 orientés à 90° l’un de l’autre mesurent une résistance variant selon le champ magnétique terrestre, et un micro-contrôleur PIC 18F transmet les informations selon le mode souhaité (PWM ou I2C).
C’est la plus ancienne des boussoles électroniques dans le monde amateur (première utilisation au club en 2002) et depuis des solutions plus robustes (correction d’inclinaison sont apparues) ou moins chères (modèles ZZC210 ou ZZC212 de Zhichuan Electronic) . Son prix est très variable chez les différents (...)

lire la suite de l'article
samedi 17 décembre 2011
par Julien H.
HMC6343 : une boussole intelligente
Depuis une dizaine d’années, on trouve des boussoles électroniques à bon marché. La puce Honeywell HMC6343 propose désormais une plus grande définition mais surtout améliore la fiabilité aux variations de position grâce à un programme utilisant trois sources d’informations (température, accélération, champ magnétique) pour calculer le cap en corrigeant lui-même les erreurs.
Pourquoi payer 150 euros une puce quand on n’a besoin que d’un cap avec une précision d’un degré et que des puces à 30 euros font ce travail ? Parce que cette puce intègre trois magnétomètres et trois accéléromètres et (...)

lire la suite de l'article
samedi 22 octobre 2011
par Julien H.
Ecran CLCDxxx sur I2C avec Arduino
Lextronic propose des écrans à cristaux liquides LCD économiques déclinés en plusieurs tailles (CLCD162 ou CLCD204) et plusieurs éclairages (vert, bleu et même RGB). Contrairement à d’autres écrans compatibles avec la bibliothèque native Liquid Crystal d’Arduino, nous n’avons pas trouvé de code source compatible avec les commandes I2C de cette gamme. C’est désormais chose faite !
Mise à jour : la bibliothèque est désormais disponible pour le logiciel Arduino 1.0, car les fonctions I2C ont changé ainsi que la classe mère Print (voir notre article complet sur le sujet).
L’écran
Comme (...)

lire la suite de l'article
dimanche 25 septembre 2011
par Julien H.
Simple LCD with I2C module on Arduino
Many liquid cystal displays hacked in garbage stuff have their own controller and even more their own communication protocol, making hard to reuse them.
Nowadays it’s cheaper to buy a specific module that controls a common LCD chip such as Hitachi HD44780. For less than 30 € you have a LCD 2x16 + the I2C board that allows your computer or your robot to display text without extra pins.
This price is cheap because of the large Arduino community that buy dozens of these circuits per week. Even in France where Zartronic sells a backlight blue & white LCD + I2C module at only 15 (...)

lire la suite de l'article
dimanche 25 septembre 2011
par Julien H.
LCD sur I2C simplement
Le prix des afficheurs à cristaux liquides est en baisse, et il est de plus en plus fréquent de trouver des circuits de commande simples, évitant la gestion du protocole et économisant surtout le nombre de pattes d’entrée/sortie nécessaires. Georges utilise pour son projet un LCD sur bus I2C à base de PCF8574 dont voici la mise en œuvre.
Il y autant de circuits de communication avec un écran LCD que de contrôleurs de LCD. Deux possibilités de se retrouver bloquer par un manque de documentation. La récupération de ce type de composant est donc souvent infructueuse, et on a alors (...)

lire la suite de l'article
jeudi 30 juin 2011
par Julien H.
Contrôle par Nunchuck sans fil
Contrôler un robot à distance, quelle idée ! C’est bien plus amusant de le rendre autonome et d’apprendre étape par étape à améliorer son comportement.
Pour ceux qui veulent quand même utiliser une télécommande, autant le faire de manière fun avec un Nunchuck, l’accessoire de la manette Wii qui tient dans le creux de la main, avec quand même un joystick au pouce, deux boutons à l’index et au majeur, et surtout un accéléromètre trois axes.
On connaissait déjà la version classique, avec un fil pour le relier à une manette Wiimote. Il n’a pas fallu longtemps pour la faire fonctionner, les 4 (...)

lire la suite de l'article
jeudi 17 mars 2011
par Julien H.
Echange maitre/esclave en I2C
Voici un article qui décrit dans plusieurs langages les échanges qu’il faut mettre en œuvre entre deux dispositifs équivalents (deux micro-contrôleurs par exemple) pour une liaison I2C.
Il ne s’agit pas de piloter un périphérique I2C mais de programmer à la fois le maitre et l’esclave, afin d’expliquer les différentes étapes. Pour compléter cet exercice, on utilisera plusieurs langages et si possible plusieurs cibles.
Les principes
Pour établir une communication sur un bus I2C, il faut choisir la topologie du réseau : quel système est maitre, quel système est esclave. On choisit la (...)

lire la suite de l'article
mardi 25 janvier 2011
par Julien H.
Localisation d’un robot par Wiimote
Nous connaissons déjà la caméra infra-rouge équipant la Wiimote : elle permet de recevoir directement les coordonnées des 4 points les plus brillants.
On peut l’utiliser pour localiser un robot, avec deux variantes :
la caméra (Wiimote complète ou démontée) est sur le robot
la caméra est fixe et observe le robot depuis l’extérieur
Caméra embarquée sur le robot
La première solution nous semble la plus judicieuse, surtout si on fixe des lumières (spots peu diffus par exemple) sur un plafond : on a alors un référentiel fixe, et l’alignement est direct et reproduit le système initialement (...)

lire la suite de l'article
dimanche 24 janvier 2010
par Julien H.
Leds RGB sur bus I2C : BlinkM
Présentation d’un module I2C qui permet de piloter une led multicolore avec 24 bits de couleurs différentes, avec deux modes possibles, RGB (rouge / vert / bleu) ou HSV (teinte, saturation, brillance). Découvrez les relations entre couleurs RGB et HSV avec cette belle application en ligne : synthAxis.
Etude du circuit
Pour faire clignoter une led en utilisant le protocole I2C, on va utiliser une BlinkM, un petit circuit qui tient dans le creux de la main et qu’on a déjà utilisé pour quelques démos et autres infidélités à la robotique.
La datasheet de cette "led intelligente" (...)

lire la suite de l'article
jeudi 21 janvier 2010
par Julien H.
Bus I2C avec .NET Micro Framework
Nous utilisons beaucoup de périphériques en I2C pour la robotique :
carte de contrôle de consignes moteurs (servo, pas à pas)
capteurs complexes (ultrasons, caméra)
Il était donc logique de continuer nos expérimentations du .NET Micro Framework et de notre carte Tahoe II de Device Solutions avec le pilotage de puces I2C.
Pour faciliter les expérimentations, j’ai choisi d’utiliser une led RGB (multicolore) programmable, la désormais célèbre BlinkM. Elle a déjà utilisée plusieurs fois avec des microcontrôleurs, et son protocole est très simple (’c’ pour couleur puis 3 octets pour chacune (...)

lire la suite de l'article
mercredi 25 novembre 2009
par Julien H.
Commande à distance
Nous avons déjà vu précédemment :
comment réaliser une interface de contrôle en ligne de commande
la théorie des communications entre deux cartes.
Dans cet article, nous passons à la pratique en réalisant une télécommande "nunchuck" pour servomoteurs.
Le matériel
On dispose donc :
de deux cartes Arduino
de deux shields XBee
d’un shield Easy pour connecter les servomoteurs
d’un connecteur I2C pour Wii Nunchuck
de quelques servomoteurs
d’une alimentation secteur pour la partie "servomoteurs"
d’une alimentation batterie pour la partie "nunchuck".
La communication
On va utiliser la (...)

lire la suite de l'article
mercredi 25 novembre 2009
par Julien H.
Communication entre deux cartes
Pour les besoins d’un nouveau projet, je dois faire communiquer deux cartes entre elles.
Il y a plusieurs raisons qui peuvent vous amener à faire ce choix :
pas assez de puissance ou de place dans votre carte principale
pas assez d’entrées/sorties (surtout le port série par exemple)
communication à distance
Dans mon cas, il s’agit de la troisième possibilité mais le problème reste le même.
Connexion matérielle
Pour faire communiquer deux circuits électronique, il faut les relier avec un moyen identique de chaque côté, donc il est nécessaire que les cartes soient compatibles.
Si on (...)

lire la suite de l'article
mardi 24 novembre 2009
par Julien H.
Communication I2C avec la Pob-Eye 2
Comme cette caméra peut être utilisée pour contrôler tout un robot, on va tester ses autres périphériques, comme le bus I2C, qui peut nous servir à communiquer avec des périphériques d’affichage d’information (écran LCD) mais aussi avec des cartes programmables "filles" qui vont se charger d’une partie des tâches du robot (le déplacement et la commande des moteurs par exemple).
Rappel
Le bus I2C fonctionne en mode maitre/esclave : le maitre envoie sur le bus l’adresse du périphérique esclave avec qui il veut communiquer.
Disponibilité sur la Pob-eye 2
Le circuit intègre déjà un (...)

lire la suite de l'article
samedi 1er août 2009
par Julien H.
Gyroscope Wii Motion Plus
une centrale inertielle à moins de 50 euros
On va essayer d’utiliser un gyroscope. Pour se simplifier la vie, on va prendre le gyroscope contenu dans le Wii Motion Plus, un plug-in pour la manette Wiimote de la console de jeux Wii de Nintendo.
Il s’agit en fait de deux circuits : un gyroscope à 2 axes, IDG-600 de InvenSense pour les angles de tangage et de roulis (pitch and roll), et un gyroscope à 1 axe de X3500W de Epson Toyocom pour l’angle de lacet (yaw).
Voici déjà un aperçu de quoi on va parler ici : des chiffres, des équations et des courbes :)
Notre objectif est de déterminer les angles du capteur en intégrant la valeur (...)

lire la suite de l'article
mercredi 6 mai 2009
par Julien H.
Contrôle avec un Wii Nunchuck
On s’intéresse ici à un dispositif de contrôle original. On va se faire plaisir en utilisant le Nunchuck, une manette de la console de jeu Nintendo Wii.
Il ne s’agit pas de la manette principale Wiimote (décrite dans cet article) mais d’un périphérique qui s’y connecte via un câble. En tant que tel, il est donc beaucoup plus simple, mais au vu de toutes les innovations dont il est doté, c’est déjà un bond en avant dans les dispositifs de télé-commande classique, qui se limitaient jusqu’ici à des boutons et une croix directionnelle à 8 directions .
Jugez plutôt : pour 15 euros, on (...)

lire la suite de l'article
vendredi 2 janvier 2009
par Julien H.
Capteur de température I2C
Cet article présente une mesure de température simple avec le capteur LM75 permettant de se rappeler l’adressage sur bus I2C et faire un peu de manipulation d’octets.

lire la suite de l'article
jeudi 11 décembre 2008
par Julien H.
Convertisseur USB I2C
un module de dialogue avec des capteurs sur bus I2C depuis une liaison série USB (PC)

lire la suite de l'article
jeudi 30 octobre 2008
par Eric P.
Portique radio, sonde et flash
Où on réutilise au maximum les morceaux
Petits rappels
Si vous vous souvenez du descriptif technique, nous mettons à disposition une sonde immergée permettant de faire différents relevés en temps réel. Pour l’instant, seuls les paramètres de température et de luminosité sont prévus, mais rien n’empêche de faire de la mesure de salinité, de turbidité,... en développant la sonde adaptée, celle que nous fournissons servant en fait de modèle.
Comme il n’est pas envisageable de transporter des signaux analogiques sur une telle longueur de câble, la conversion analogique / numérique est réalisée sur place, et les données sont (...)

lire la suite de l'article
samedi 26 janvier 2008
par Julien H.
Capteurs supplémentaires pour NXT / I2C
Tour d’horizon des capteurs disponibles pour la brique NXT.

lire la suite de l'article
samedi 2 décembre 2006
par Julien H.
Horloge RTC et calendrier I2C
pour un robot toujours à l’heure
description du composant DS1307 et mise en oeuvre sur un Atmel grâce à la liaison I2C

lire la suite de l'article
mercredi 14 juin 2006
par Julien H.
Modules I2C
composants utiles pour microcontrôleurs utilisant le bus I2C
Objectif
La liaison I2C est pratique pour connecter plusieurs composants sur seulement 2 entrées/sorties d’un microcontrôleur. Nous avons eu une première expérience de l’I2C en 2006 avec la communication entre cartes CNP pour la Coupe et depuis nous développons notre connaissance grâce à l’explosion de l’offre.
Le but de ce projet est de développer différents capteurs, actionneurs, afficheurs, etc. communiquant en I2C.
Télémètre à ultrason
Les SRF04 et SRF08, célèbres capteurs ultrasons utilisés en robotique, peuvent communiquer en I2C, ce qui permet de déporter sur le capteur toute (...)

lire la suite de l'article
Brèves associées
Brève publiée le lundi 31 janvier 2011
Premier prototype d’OpenSCB
Deux mois après le début de l’assemblage des cartes électroniques, les premiers prototypes d’OpenSCB sont fonctionnels. Pobot a été choisi pour être les premiers à bénéficier de cette carte open source de contrôle de servomoteurs : (...)
Brève publiée le mercredi 7 octobre 2009
Convertisseur analogique 12 bits en I2C
Frédéric nous présente un convertisseur analogique de précision 12 bits sous la forme d’une carte utilisant le protocole I2C. Sur la plupart de nos micro-contrôleurs (type AVR ou Arduino), nous pouvons avoir une demi-douzaine de (...)
Brève publiée le samedi 26 novembre 2005
Carte Linux FOX
Gilles a trouvé une carte Linux qui a l’air pas mal du tout : c’est la FOX en vente pour 170 euros chez Lextronic. Une bonne connectivité (Ethernet, USB, I2C, série, etc..), un bon nombre d’entrée/sortie et une faible (...)
Sites web associés
I2C Chip
Ce site propose des adaptateurs pour bus I2C, SPI, 1-wire et SMBus, permettant de connecter des composants dans chacun de ces protocoles avec un ordinateur équipé d’un port série COM (RS232) ou d’un port USB.