Capteur de lignes pour robot |
J'ai choisi d'utiliser des pièces de lego pour créer le boitier qui portera les deux composants. En effet dans l'utilisation que je souhaite en faire c'est nécessaire car ce capteur sera fixé sur un robot détecteur de lignes à base d'arduino. Le schémas électronique est très simple. Le composant obtenu comporte trois fils. Une alimentation, une masse et le signal qui représente une tension correspondant a l'intensité lumineuse de la surface observée par le capteur de lignes.
Schémas électronique du détecteur de lignes |
Librairie pour le capteur de lignes sur Arduino.
Maintenant que la partie mécanique et électronique du montage est faite il s'agit de voir comment transformer les variations de lumière en détection de ligne. Je propose la classe suivant pour arduino qui permet d'effectuer la détéction de ligne par ce type de capteurs, et qui s'adapte a la lumière ambiante.
Fichier prototype LineSensor.h
/* LineSensor.h - Driver pour le suivi de lignes Created by Artiom FEDOROV Mai 2012 Released into the public domain. */ #ifndef LineSensor_h #define LineSensor_h #include "Arduino.h" class LineSensor { public: LineSensor(int pin); int checkLine(); private: int _minV; int _maxV; int _pin; }; #endif
Fichier source LineSensor.cpp
#include "Arduino.h" #include "LineSensor.h" LineSensor::LineSensor(int pin) { _minV = -1; _maxV = -1; _pin = pin; pinMode(pin, INPUT); } int LineSensor::checkLine() { int value = analogRead(_pin); if (_minV == -1) { _minV = value; } if (_maxV == -1) { _maxV = value; } if (value <= _minV) { _minV = value; } if (value >= _maxV) { _maxV = value; } if (value < (((_maxV-_minV) / 1.5) + _minV)) { return 1; } else { return 0; } }
Utiliser la librairie sur un arduino ou teensy++
Capteur en fonctionnement |
Documents annexe
Archive LineSensor class
Aucun commentaire:
Enregistrer un commentaire