Camera pour robot suiveur de ligne

[Résolu/Fermé]
Signaler
Messages postés
2
Date d'inscription
dimanche 6 janvier 2008
Statut
Membre
Dernière intervention
27 janvier 2008
-
 mohamed -
Bonjour, depuis maintenant 1 mois et demi, je tente de mettre en place un petit programme pour permettre au robot de suivre une ligne blanche sur un fond bleu sombre avec une caméra noir et blanc.
J'utilise un PIC16F876A avec une camera CMOS et un module LM1881 pour sortir les top ligne et top image de la camera.

Mon probleme est le suivant : - Je ne sais vraiment pas comment écrire le bout de code qui permettra d'acquerrir les pixels et les enregistrer dans une mémoire. Je veux utiliser le timer1 pour prendre chaque pixel de la ligne et le mettre dans un tableau, mais il risque d'y avoir un litige entre l'interruption de l'I2C (vu que ce PIC discutera avec le "cerveau" du robot) et du timer.

Au final, mon programme n'avance pas donc si vous avez des petites astuces ou quelques idées a me proposer j'en serait ravi.

Merci d'avance.....

6 réponses

tu recupère comment les informations de ta caméra?? sous qu'elle forme??
Je pense que tu va devoir faire un peu d'assembleur.

En étant électronicien à la base, je te conseillerais de faire un système du type des caisses pour la lecture des codes barres.

0 = non réception du signal

1 = réception d'un signan.

Pour toi ca sera lorsque 1 (courant qui passe, donc fond blanc) alors tu stocke l'information sur une partie de la mémoire.

Cette infos tu va la chercher à l'indexation de la mémoire alloué, et tu ordonne au moteur du robot d'avancer. Pour les moteurs, le meilleurs serait d'avoir des moteur pas à pas de façon à avoir une précision lors de la rotation de ceux-ci.

Pour ce qui de l'assembleur, ca fait trop longtemps que je n'en ai plus fait pour pouvoir t'aider. Pour le c++, no soucie si besoin est.

Mais vu que tu passe par un système électronique avant, décris nous sous qu'elle forme tu reçoit le signal, comment tu le stocke , et qu'elle valeur il a pour lorsqu'il détecte la ligne blanche.
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 41713 internautes nous ont dit merci ce mois-ci

Le mieux serait de tout traité en assembleur si le robot ne dois s'arreter que lorsqu'il n y a plus de ligne blanche. Je pense qu'avec un Motorola 4011 ca devrait faisable. Et après a toi de choisir le prog : controlBoy ou autre.
enfait mon robot, doit rester dans une sruface délimitée par une ligne noire et dès qu'il détecte la ligne noire, doit tourner à gauche ou a droite suivant où est la ligne, j'utilise PICBASIC STUDIO pour programmer. mais j'ai un souci pour les sorties, car mon moteur peut tourner soit en avant soit en arrière mais je sais pas comment le faire dire au programme
Assembleur.

Appriori tu a 3 couleurs sur ta surface : bleu,noir blanc.

blanc : il suit retour du signal =1
noir : tourne retour du signal = 0

bleu : il faut voir de combien est le signal, et aussi voir si ton electronique en amont le gère.

Une fois ca sut, "car mon moteur peut tourner soit en avant soit en arrière mais je sais pas comment le faire dire au programme". Il faut savoir sous qu elle condition il dois tourner en avant ou en arrière.

Mais ca ne change en rien ce que je t dis plus haut a mon avis .

Tu dois te dire que dans tout les cas ca va être l'electronique qui va gérer la rotation du moteur en avant ou arrière. Meme si tu travaille en c pour donner les instructions (je pense que ca serait plus simple et plus rapide en assembleur), l'electronique ne comprend que deux truc : 1 et 0.
1=tension
0=rien

1=moteur tourne
0=moteur ne tourne pas

Pour qu'il tourne en avant ou en arrière, faut avoir l'electronique qui gère le changement de polarité soit du +12 en avant , soit du -12 en arrière.

Je pense que tu dois d'abord connaître qu'elle type de signal dois recevoir ce système pour fonctionner ou non avant de te lancer a la programmation car si tu connais pas ca, tu ne sais pas qu'est ce que tu dois avoir en fin de programme.
comment je peut effacer l'historique.ou telecharger un logisiel effaceur.sant que passer par l'administrateur.a chaque foi que j'instale un logiciel effaceur il n'accepte pas le telchargement? merci
bonjour, mon mail ne vas pas beaucoup te servir mais si jamais tu as la réponse à ta question peux-tu me la faire passer stp. merci
Messages postés
2
Date d'inscription
dimanche 6 janvier 2008
Statut
Membre
Dernière intervention
27 janvier 2008

Ben pour ma partie, je ne m'occupe pas de la partie motorisation et mon PIC16F876A est un PIC pour la gestion des capteurs et non pour la strategie et motorisation du robot. Le PIC que je fais permet juste d'envoyer les informations au "cerveau" du robot. Donc pour ce qui est de la gestion de la caméra : j'ai opté pour un moyen plus simple, au lieu de prendre tout les pixels de la caméra est de faire une gestion derriere. je choisi de mesuré le temps entre le bord de la camera et le début de la ligne et aprés mesuré la taille de la ligne. Ce qui permet de savoir ou est la ligne par rapport à l'axe du robot. Ainsi avec cette méthode j'ai les même informations que pour la premiere technique sauf que celle ci sera moin lourde pour le PIC. Bref je crois que j'ai pas mal avancé. Certe j'ai encore du travail.