Alphabot : traqueur de ligne

Les capteurs infra rouge ITR20001 indiquent une valeur analogique. La carte Raspberry Pi ne possède pas de convertisseur analogique numérique.  Un convertisseur A/N assure la conversion sur le robot AlphaBot. Le TCL1543 communique par un protocole SPI.

SPI sur Raspberry Pi

La société Waveshare fournit une classe pour la gestion des capteurs de ligne du robot AlphaBot : TRsensor

La classe TRsensor permet la gestion du capteur de ligne.

La classe fournie 4 méthodes :

  • AnalogRead()  : Lecture des valeurs des capteurs sur le TLC1543. Les valeurs retournées représentent la couleur réfléchie (sans unité). Les valeurs élevées indiquent une couleur sombre (noir etc.)
  • calibrate()  : Lit les données des capteurs plusieurs fois et utilise les données pour la calibration. Les valeurs ne sont pas retournées.
  • readCalibrated()  : Donne les valeurs de calibration comprises entre 0 et 1000. 0=valeur mini, 1000=valeur maxi
  • readLine()  : Par défaut, indique le capteur ayant la valeur la plus sombre.

exemple de code :

from TRsensor import TRsensor
TR = TRSensor()
for i in range(0,400):
    TR.calibrate()
    print(i)
print(TR.calibratedMin)
print(TR.calibratedMax)
position = TR.readLine()
print(position)
Exercice : Suiveur de ligne
  1. Écrire un programme en Python permettant de suivre une ligne (en mode logique c’est à dire si ligne à droite tourner à droite et inversement)
  2. Écrire un programme en Python permettant de suivre une ligne (en mode analogique avec virage plus ou moins serré en fonction de la valeur du capteur)

Pour cela on utilisera un asservissement PID en faisant les calculs :

Kp*erreur + Ki*somme_des_erreurs + Kd*(erreur - derniere_erreur)

Vous aimerez aussi...

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *