jeudi 24 mai 2012

Robot suiveur de lignes a base du teensy (arduino)

Le robot suiveur de lignes est un petit projet très simple. On trace une ligne au feutre noir sur une grande feuille blanche on pose le robot sur la ligne, et ce dernier va suivre la ligne. Ici mon robot fonctionne avec un Teensy 2 ++ (équivalent de l'arduino mais avec des ports entrés/sorties en plus) cadencé a 16Mhz. Le châssis utilisé est en légos technics, et pour la motorisation j'ai utilisé les moteurs lego power functions. Les lignes sont détectées grâce a deux capteurs de lignes basés sur des photo résistance. L'astuce principale de ce robot réside dans l'utilisation de l'infrarouge pour commander les moteurs officiels légo. Cela permet de ne pas avoir la moindre interface "physique" entre le circuit contrôleur et l'étage de la motorisation. Le robot suiveur de lignes possede donc deux parties electroniques distinctes. D'un coté les lego power functions (motorisation légo), et de l'autre le circuit de la plaque a essai qui est alimenté par une batterie de 9v.

lundi 21 mai 2012

Télécommande infrarouge lego power function et librairie arduino

Un chassis motorisé de légo technic est souvent très pratique pour réaliser une base pour un robot. L'idée de cet article est de vous présenter une librairie pour arduino qui permet de commander le récepteur infrarouge des legos technics power functions. Le principe de l'interface est d'émuler les signaux de la télécommande. En effet le protocole lego n'est pas très complexe, et surtout il ouvre la possibilité d'adresser le récépteur légo différemment et donc d'accéder  a de nouvelles fonctionnalités tels que la vitesse de rotation de chaque moteur (sur 7 niveaux) et la fonction de frein qui permet d'immobiliser l'axe du moteur. Pour mettre en exemple cette librairie je vous propose de réaliser une télécommande améliorée pour lego technics power function.

samedi 19 mai 2012

Capteur de lignes pour la robotique et librairie arduino

Un capteur de lignes permet de détecter une variation d'intensité lumineuse sur une surface. Il s'agit de permettre la détection de lignes noires tracées sur une feuille blanche, ou tout autre variation de couleurs à condition que le contraste entre les deux couleurs soit suffisant.

Capteur de lignes pour robot
Les capteurs de lignes peuvent être infrarouges ou alors fonctionnant avec la lumière visible. Dans le cadre de cet article je vous propose que réaliser un capteur avec une photo résistance et un éclairage par une diode électroluminescente haute luminosité, donc a lumière visible. Ce genre de capteurs est sensible aux variations de lumière ambiante. Il est possible évidement d'essayer de créer une sorte de boite noire autour du capteur afin qu'il ne soit pas perturbé par la lumière ambiante, mais cela sous entends que votre boite de capteur devra être au ras du sol et cela n'est pas toujours facile à faire. Pour pallier à ce problème nous allons utiliser un algorithme qui permettra au robot ou tout autre dispositif de calculer un seuil de détection dynamique.

jeudi 3 mai 2012

Connaitre la position d'un servo moteur

Les servos moteurs sont une solution simple pour mettre en place la partie mécanique d'un robot ou un automatisme. En effet un servo moteur a du couple (3kg/cm pour un servo moteur standard), une précision quasiment au degré près (selon les modèles) et a une taille convenable pour de l'embarqué. Cependant un servo moteur de modélisme standard n'a pas d'indicateur de position, ce qui signifie que l'on ne sait pas la position à un instant t du servo moteur. Dans cet article je vous propose une solution pour connaitre a tout moment la position d'un servo moteur. Il existe des solutions de modification de servo très poussées consistant a remplacer intégralement la carte éléctronique du servo par un microcontrolleur, mais ces solutions sont plus honéreuses a mettre en place. Dans cet article je vous propose une solution consistant a souder un seul fil sur le potentiomètre du servomoteur.

mercredi 2 mai 2012

Programmateur de 16F84 avec un Teensy++ (Arduino)

Ayant pas mal travaillé avec le 16F84 par le passé j'ai voulu proposer une lib pour arduino afin de permettre de programmer un 16F84 avec un Teensy2++ (équivalent de la platine Arduino).

Le fonctionnement de la lib est très simple. Pour programmer un 16F84 avec l'arduino, il vous suffira d'inclure la lib dans votre projet, declarer l'objet Pic16F84, déclarer une variable String contenant le programme en hexadécimal puis lancer la methode correspondant à l'envoi du programme dans le 16F84.