chrono pour suiveur de ligne

Bonjour les copains!

Comme des milliers de débutants, je me suis calé en tête de faire un robot suiveur de ligne. C'est pédagogique, rigolo, inutile, lumineux, mobile, bref, c'est trop bien. Voilà.

Comme les suiveurs de ligne sont tous différents, je vais commencer par un petit modèle, et tenter, à coups de code et de réglages, d'optimiser progressivement la bête. Pour le moment les pièces sont sur un bateau en provenance de Chine.

Alors en attendant, j'ai décidé de construire un chrono automatique avec un laser. Aussi, je me suis assis sur mon module laser, donc je vais devoir en commander, et ça met trois semaines.
Si je partage, c'est pour avoir vos idées et , si quelqu'un veut s'en faire un, bosser dans la même direction pour en faire une machine qui corresponde aux besoins et aux contraintes.

PRINCIPE:
Sur Arduino, un faisceau laser et une photorésistance. Lorsque ce faisceau est interrompu (passage d'un robot), le chronomètre se déclenche en attendant une seconde interruption. Le temps écoulé entre ces deux passages, c'est le temps mis par notre petit robot pour effectuer un tour de circuit.

INTERFACE:
Un écran 16x2 affiche le chrono, mais peut également servir à:
-régler le contraste de l'afficheur (sortie analogique du Arduino)
-afficher le meilleur temps
-régler l'intensité du rétro-éclairage du LCD (sortie analogique du Arduino)
-indiquer le nombre de tours à effectuer entre le départ et l'arrivée) (infini,1,2,3,4,5 ...)
-activer ou non un beep au passage devant le laser ...
On navigue dans ce menu via un joystick (vraiment la classe), des boutons (très simple à programmer), un encodeur rotatif (bon alors j'ai essayé mais c'est incompréhensible pour moi et ça n'incrémente pas toujours de 1 en 1 régulièrement). Ce qui permettra la navigation conditionne la programmation de ce menu.

ALIMENTATION:
Via l'USB, ce qui permet aussi de récupérer les infos sur l'affichage d'IDE.
Via une pile 9v (avec un interrupteur) pour une utilisation complètement autonome, sans PC.

VISUEL:
Une Led rouge indique lorsque le laser est activé, par sécurité. Elle est pas loin du laser, sur la face avant.
Trois autres Leds, sur le dessus (ouais j'aime bien quand ça clignote etc). Lorsque la bête est prête (et attend le premier passage), une Led verte s'allume, pendant la course, une Led bleue s'allume, à l'arrivée, une Led rouge s'allume. Une pression sur un bouton (joystick par exemple) et c'est reparti.
Un beep (oui c'est visuel, un beep), fait donc beep quand le faisceau est interrompu.

J'ai commencé un montage matériel, avec du medium et une défonceuse, je mettrai des photos un jour, mais j'ai souvenir d'un véritable merdier avec imageshak et trucs du genre...

Voilà. J'ai un peu avancé de mon côté, mais j'atttttteeeeeeennnnnnnds longgggttteeeemmmmps mes pièces.

Qui me suit? :smiley:

Je tente d’ajouter une illustration

Bonjour,
653407782de5abb0f4725f7a16139ecdeb76857b.jpg

Cher journal,

Face à l'immense succès de mon projet, je continue d'établir lentement mon cahier des charges ici.

  • A la place du laser qui est perdu en mer dans un bateau chinois, en remplacement de celui sur lequel je me suis assis, je pense utiliser un IR-08H à la place. J'en ai un en stock. Je vais tester son efficacité aujourd'hui par rapport aux contraintes. N'ayant rien à faire passer dans le portique pour le moment, j'utiliserai la baballe de mon cabot.

  • Pour gagner en précision, en réactivité et en plaisir de programmation, j'espère trouver un moyen d'utiliser les interruptions pour démarrer/arrêter le compteur. Le capteur IR-08H sera à l'origine de ces interruptions. Pourvu que ça soit faisable.

  • Je souhaite également utiliser les interruptions pour arrêter le chrono, à tout instant, mettre fin aux mesures et afficher "course annulée" à la place du temps. Je dois donc utiliser le même bouton que celui du menu pour cela. ouais, en fait je manque vite de place sur ma Uno, l'afficheur LCD étant un gros squatteur de pins.

  • Je dois déplacer les pins de mon LCD car je vais avoir besoin des pins 2 et 3 pour les interruptions.

  • Je dois concevoir tout ça dans un simulateur qui ne connaît pas mes composants, ou du moins pas tous.

  • Une petite voix me harcèle et me répète sans cesse "utilise un encodeur rotatif, espèce de faignasse, le résultat sera carrément plus classe et tu auras enfin appris à t'en servir". Je cherche donc tout ce que je peux trouver sur cette étrange bête qui semble faire n'importe quoi dès que je m'en sers... Mystère.

J'ai bien conscience que ce projet n'est pas le plus passionnant pour tous, mais je tiens à ajouter que si quelqu'un a le même besoin, on peut y bosser ensemble.