Aller au contenu


Photo
- - - - -

Circuit électronique pour robot qui évite les obstacles


15 réponses à ce sujet

#1 Alex68

Alex68

    Membre

  • Membres
  • 54 messages

Posté 20 février 2010 - 01:50

Salut,

Pour mon premier robot, j'aimerais faire un robot qui évite les obstacles. Je m'y connais vraiment très peu en électronique mais je voudrais mettre au point petit à petit le schéma du circuit.

Je me suis un peu renseigné et j'ai compris le principe du double pont en H. Je pense utiliser une L298d pour contrôler les moteurs. Existe-t-il d'autres systèmes similaires ?

Pour la détection d'obstacle, je pense utiliser des capteurs ir car j'ai cru comprendre que les capteurs à ultrason ne sont pas précis (corrigez-moi si je me trompe !). Est-ce que deux de ces capteurs placés à l'avant avec un angle différent (un vers la gauche l'autre vers la droite) suffiraient à détecter un obstacle dans toutes les situations ? Ou bien il faudrait rajouter un ou plusieurs capteur ir (ou un capteur de contact ?). Y a-t-il d'autres méthodes ?

Pour contrôler le tout j'ai lu que le micro-contrôleur PIC 16F84 et idéal pour un débutant et pour des robots tout simples, mais je ne sais pas à quoi correspond 16 F 84. Ensuite je crois qu'il faut un connecteur pour programmer le PIC mais là je ne sais pas du tout ce qu'il faut.

Je pense qu'il faudra aussi ajouter des résistances, diodes, condensateurs, régulateurs de puissance...etc mais je ne connais pas encore les caractéristiques des courants, des moteurs, le schéma...etc

Dernière question : il vaut mieux une alimentation pour le moteur et une pour le circuit ou une pour les deux ?

Merci beaucoup !

#2 Electron

Electron

    Pilier du forum

  • Membres
  • PipPipPipPip
  • 906 messages
  • Gender:Male
  • Location:LABEGE
  • Interests:Électronique, robotique ludique, programmation de jeux et utilitaires, et plein d'autres choses.

Posté 20 février 2010 - 03:30

Je me suis un peu renseigné et j'ai compris le principe du double pont en H. Je pense utiliser une L298d pour contrôler les moteurs. Existe-t-il d'autres systèmes similaires ?

Dans le principe, non, il n'y a qu'une façon de commander le sens de rotation d'un moteur c'est en inversant le sens de circulation du courant et c'est la méthode des 4 interrupteurs qui fait ça :
Image IPB
Dans la pratique ces interrupteurs sont des transistors, et le mieux est le circuit intégré L298 (pour deux moteurs).

Pour les capteurs, il faut un ensemble émetteur/récepteur à gauche et un autre à droite, mais tous les deux orientés vers l'avant de façon que leur rayon de détection se recoupent légèrement, ainsi quand les deux capteurs "capturent" c'est que l'obstacle est bien en face, sinon il est plus à droite ou plus à gauche^^

Pour l'alimentation du moteur, chacun ses choix, moi je préfère deux alimentations séparées, car le moteur consomme une pointe de puissance au démarrage qui peut influer sur les composants électroniques s'ils sont alimentés par la même alim.
Dans tous les cas, ne pas oublier les condensateurs de découplage contre les parasites et avoir une bonne alimentation régulée pour l'électronique.

Je pense qu'il faudra aussi ajouter des résistances, diodes, condensateurs, régulateurs de puissance...etc mais je ne connais pas encore les caractéristiques des courants, des moteurs, le schéma...etc

Fais déjà le synoptique ngénéral du montage, et pour faire simple, tu dessine des carrés dans lesquels tu écris ce qu'ils représentent, et tu trace des traits entre-eux pour représenter les commandes qui se passent entre eux.
Tu te renseigne sur le net sur des schémas possibles, des exemples de robots déjà faits et expliqués.
Faire tout de A à Z quand on y connait rien en électronique et en mécanique c'est juste de l'inconscience, il est necessaire de se former d'abord à ce que tu va utiliser, comprendre comment tout ça "marche", avant de pouvoir faire quelque chose.

Edit :
J'ai enlevé quelques trucs inutiles de ma réponse^^

"Plus on partage, plus on possède, voilà le miracle". LEONARD NIMOY
"Celui qui se bat peut perdre, celui qui ne se bat pas a déjà tout perdu". BERTOLT BRECHT (1898-1956)
Comment se lancer dans la robotique !
Mince encore un post pour augmenter mon compteur ;)


#3 Alex68

Alex68

    Membre

  • Membres
  • 54 messages

Posté 20 février 2010 - 09:51

Pour l'instant voilà tout ce que j'ai pu faire :

http://img402.imageshack.us/i/schmalectronique.png/

Existe-t-il des ensembles émetteur/récepteur ir tout fait qui envoient juste un 0 ou un 1 au pic lorsqu'ils détectent un obstacle ? car je n'ai trouvé que des ensembles pour mesurer des distances...ou des fait-maisons...
Ne faudrait-il pas rajouter un capteur de contact juste pour le cas des obstacles noir car j'ai lu que les capteurs ir ne les détectent pas.

Je pense avoir assez bien compris le fonctionnement du pic.
J'ai juste quelques questions : si je dois programmer "faire ça pendant 5ms", est-ce qu'il faut rajouter un quartz ou il y a déjà une horloge interne ?
Pour faire reset il faut envoyer 1 dans la patte MCLR ? et reset ça veut bien dire "supprimer la programmation" ?
Et enfin pour la programation, est-ce qu'on doit acheter un programmateur ou on peut juste mettre un connecteur dans le circuit comme sur cette photo :

http://img37.imageshack.us/i/sanstitre0i.png/

Par contre pour L298d je n'ai pas trouvé de schéma...le "d" signifie bien qu'il y a en plus des diodes roue libre ?

Merci beaucoup !

Edit : Pour le L298d, je l'avais vu ici (page 6), mais a priori, il n'existe pas ou en tout cas pas sous ce nom...En existe-t-il un qui contient les diodes de roue libre ?

#4 ririx24

ririx24

    Membre

  • Membres
  • 19 messages
  • Gender:Male

Posté 20 février 2010 - 11:37

Il existe ca comme détecteur IR en tout ou rien, il ce déclenche à environ 15cm.
http://www.lextronic...rp-gp2d150.html

Sinon il y a le CNY 70 mais il n'est pas adapté car il va se déclencher a quelques cm si ce n'est moins et ton robot risque de ne pas s'arrêter assez tôt ou heurter l'obstacle en faisant demi tour. de plus il faut ajouter un oscillateur pour éviter tout brouillage a cause de la lumière ambiante.


Oui mettre un capteur de contact est conseillé pour les objet non réfléchissants ou fin, par exemple un pied de chaise. Cela dit les télémètres SHARP marche bien donc a part une vitre il n'y a pas grand chose qu'il ne détectera pas .

#5 Prinz metal ex-neo

Prinz metal ex-neo

    > Membre d'honneur <

  • Membres
  • PipPipPip
  • 463 messages
  • Gender:Male
  • Location:Algérie

Posté 20 février 2010 - 11:55

hello !

lis mon tuto !

tu trouvera presque tout les réponse à tes questions !

(ce que je ne comprend pas, c'est ce que tu décrit est exactement ce qui est décrit dans mon tuto, comment tu n'as pas eu l'idée de le lire :blink: )

a+ neo

#6 Electron

Electron

    Pilier du forum

  • Membres
  • PipPipPipPip
  • 906 messages
  • Gender:Male
  • Location:LABEGE
  • Interests:Électronique, robotique ludique, programmation de jeux et utilitaires, et plein d'autres choses.

Posté 21 février 2010 - 12:26

Heu on s'est croisé là Néo :/
J'écrivais pendant que tu répondais^^
Désolé sil y a double réponse ;)

Existe-t-il des ensembles émetteur/récepteur ir tout fait qui envoient juste un 0 ou un 1 au pic lorsqu'ils détectent un obstacle ? car je n'ai trouvé que des ensembles pour mesurer des distances...ou des fait-maisons...

Perso, je préfère une détection type télémètre, ça permet à ton robot de connaître la distance qu'il peut encore parcourir avant d'arriver à l'obstacle, et cela n'empêche pas le robot de réagir comme en tout ou rien si le programme le décide (qui peut le plus peut le moins là).

Ne faudrait-il pas rajouter un capteur de contact juste pour le cas des obstacles noir car j'ai lu que les capteurs ir ne les détectent pas.

Comme le dit Ririx24, c'est sûr qu'un détecteur de contact est utile, ça ne coûte rien d'en ajouter un, cependant le détecteur d'obstacle doit être étudié pour percevoir tout type d'obstacles, c'est le mieux, car le but c'est la distance de détection afin de prévoir un changement de direction ou un ciblage (selon la programmation).
Le détecteur à Ultra-sons est utile dans ce cas s'il est bien étudié.

J'ai juste quelques questions : si je dois programmer "faire ça pendant 5ms", est-ce qu'il faut rajouter un quartz ou il y a déjà une horloge interne ?

Il y a un timer que tu peu utiliser ainsi.

Pour faire reset il faut envoyer 1 dans la patte MCLR ? et reset ça veut bien dire "supprimer la programmation" ?

Le reset se fait avec masse sur la broche MCLR, cela conduit le systeme à son début de programme (enfin selon la première instruction placée en adresse 0000).
Tu as tout décrit dans ce site :
16F84

Et enfin pour la programation, est-ce qu'on doit acheter un programmateur ou on peut juste mettre un connecteur

Pour programmer ton pic il te faut un programmateur, tu en trouvera des exemples dans le forum, je sais plus où :/ essaie une recherche avec pour mot "programmateur".

Par contre pour L298d je n'ai pas trouvé de schéma...le "d" signifie bien qu'il y a en plus des diodes roue libre ?

Oui il possède des diodes intégrées et deux ponts en H.
Si tu ne le trouve pas, c'est pas grave, fait avec le L298N et ajoute des diodes externes comme indiqué ici !

"Plus on partage, plus on possède, voilà le miracle". LEONARD NIMOY
"Celui qui se bat peut perdre, celui qui ne se bat pas a déjà tout perdu". BERTOLT BRECHT (1898-1956)
Comment se lancer dans la robotique !
Mince encore un post pour augmenter mon compteur ;)


#7 Alex68

Alex68

    Membre

  • Membres
  • 54 messages

Posté 21 février 2010 - 02:46

Merci !
J'ai trouvé aussi celui là qui est moins cher et à l'air plus performant :http://radiospares-fr.rs-online.com/web/search/searchBrowseAction.html?method=getProduct&R=0414187

Perso, je préfère une détection type télémètre, ça permet à ton robot de connaître la distance qu'il peut encore parcourir avant d'arriver à l'obstacle, et cela n'empêche pas le robot de réagir comme en tout ou rien si le programme le décide (qui peut le plus peut le moins là).

Si j'utilise un capteur télémétrique, comment le robot pourra reconnaître la distance le séparant de l'obstacle ? car le signal du récepteur est transformé en 0 ou en 1 par le PIC.

Vous avez remarqué sur mon robot un connecteur COM, ce connecteur permet de programmer le PIC directement en relient le robot au PC.

Voilà c'est de ça que je parlait ! C'est quoi comme connecteur ? Pour un cable liaison série ?

Il y a un timer que tu peu utiliser ainsi.

Pourtant sur le tuto de neo, il y a un quartz et 2 condensateurs pour faire une horloge externe...elle n'était pas nécessaire ?

Sinon, sur ton tuto, comment fonctionne la résistance variable (LM317) pour faire varier la vitesse des moteurs ? (j'ai du mal à comprendre juste avec le schéma).

Est-ce que ce système de capteurs conviendrait ?

Image IPB

Ce L298D est introuvable par contre j'ai trouvé un L293D qui a l'air d'avoir exactement les mêmes fonctions...quelqu'un peu confirmer ?

Merci pour toutes vos réponses !

#8 Electron

Electron

    Pilier du forum

  • Membres
  • PipPipPipPip
  • 906 messages
  • Gender:Male
  • Location:LABEGE
  • Interests:Électronique, robotique ludique, programmation de jeux et utilitaires, et plein d'autres choses.

Posté 21 février 2010 - 09:49

Si j'utilise un capteur télémétrique, comment le robot pourra reconnaître la distance le séparant de l'obstacle ? car le signal du récepteur est transformé en 0 ou en 1 par le PIC.

Justement non, le télémètre mesure une distance, donc il la délivre sous forme d'une valeur de tension pour les analogiques et une valeur numérique pour les numériques, c'est pas juste donc un 0 ou 1.

C'est quoi comme connecteur ? Pour un cable liaison série ?

Pour le connecteur sur certains robots, c'est pour le programmer in-situ (sur la carte elle-même, sans enlever le contrôleur) mais il faut pour ça un programmateur dans un premier temps pour charger le bootloader (petit programme) dans la mémoire morte du contrôleur.

Pourtant sur le tuto de neo, il y a un quartz et 2 condensateurs pour faire une horloge externe...elle n'était pas nécessaire ?

Le contrôleur fait fonctionner son timer sur cette base de temps, donc il la faut obligatoirement^^
Je pense pas que tu sache directement faire compter un temps à un quartz ;) (4 Mhz ou 20 Mhz, vas-y le comptage^^)

Sinon, sur ton tuto, comment fonctionne la résistance variable (LM317) pour faire varier la vitesse des moteurs ? (j'ai du mal à comprendre juste avec le schéma).

La tension issue du curseur de la résistance variable sert de référence au LM317 et donc celui-ci peut délivrer une tension réglable (et non pas variable) sur la broche vss du L298 sur le schéma de Néo.
Ce qui est en fait une erreur, car VSS est la tension pour la logique du circuit et VS et la tension pour les moteurs, donc la tension issue du LM317 devrait aller sur VS :D

Pour le capteur de contact, utilise plutôt des fils de métal pour simuler des antennes d'insectes et chaque fil est assez rigide pour appuyer sur un micro-contact mais assez souple pour ne pas bousculer le robot quand une des antennes touche un obstacle.
Comme ici
Ne prend pas du trombonne comme lui pour les antennes, mais va dans un grand magasin de bricolage (Casto, merlin etc) pour trouver un fil métal souple.

Le L293D n'est pas mieux que le L298 il est pas fait avec le même boitier de puissance, alors reste sur le L298 ;) Le D est peut-être introuvable mais le N est courant, donc ça te coûte quoi de rajouter 4 diodes ? c'est pas la mer à boire hein^^

"Plus on partage, plus on possède, voilà le miracle". LEONARD NIMOY
"Celui qui se bat peut perdre, celui qui ne se bat pas a déjà tout perdu". BERTOLT BRECHT (1898-1956)
Comment se lancer dans la robotique !
Mince encore un post pour augmenter mon compteur ;)


#9 Alex68

Alex68

    Membre

  • Membres
  • 54 messages

Posté 21 février 2010 - 10:42

et une valeur numérique pour les numériques, c'est pas juste donc un 0 ou 1.

Là je comprends pas trop...ça veut dire qu'il envoie plusieurs o et 1 qui sont traduit comme une distance par le PIC ?

et donc celui-ci peut délivrer une tension réglable (et non pas variable) sur la broche vss du L298 sur le schéma de Néo.

Donc là c'est manuel ? ça ne peut pas être contrôlé par le PIC ?

Si je rajoute encore deux capteurs (j'avais pensé à en mettre deux vers le sol pour détecter un vide, bord d'une table...etc), il n'y a que 5 pattes RA (et 6 capteurs)...une patte RB peut aussi faire une entrée ?
Sinon, je préfère le système ce contact comme sur le schéma parce que c'est plus compact (pour l'esthétique).
Ce sont des microrupteurs qu'il faut ?
Est-ce que les capteurs (ir et contact) peuvent se brancher (à peu près) directement sur le Pic ou bien ils nécessitent chacun un petit montage électronique ? Les trois pattes des capteur c'est : un vers le +, un vers la masse, et un vers le Pic ?

Je suis content ça commence à prendre forme ! Merci pour les réponses à toute mes questions !

#10 Alex68

Alex68

    Membre

  • Membres
  • 54 messages

Posté 21 février 2010 - 10:54

Le L293D n'est pas mieux que le L298 il est pas fait avec le même boitier de puissance, alors reste sur le L298 Le D est peut-être introuvable mais le N est courant, donc ça te coûte quoi de rajouter 4 diodes ? c'est pas la mer à boire hein^^


Ok Ok :lol: je voulais juste viser au plus simple...déjà que je ne connais pas grand chose...

#11 Electron

Electron

    Pilier du forum

  • Membres
  • PipPipPipPip
  • 906 messages
  • Gender:Male
  • Location:LABEGE
  • Interests:Électronique, robotique ludique, programmation de jeux et utilitaires, et plein d'autres choses.

Posté 21 février 2010 - 11:18

Là je comprends pas trop...ça veut dire qu'il envoie plusieurs o et 1 qui sont traduit comme une distance par le PIC ?

Il envoie un code numérique en BCD (renseigne-toi^^ je donne pas de cours sur le numérique^^).

Donc là c'est manuel ? ça ne peut pas être contrôlé par le PIC ?

Vi, c'est manuel, Néo l'explique sur son tuto.
ça sert à ajuster la vitesse des moteurs une fois pour toute, donc ça sert à rien que ce soit géré par le pic et de plus trop de complications à gérer ça (asservissement en plus).

Si je rajoute encore deux capteurs (j'avais pensé à en mettre deux vers le sol pour détecter un vide, bord d'une table...etc), il n'y a que 5 pattes RA (et 6 capteurs)...une patte RB peut aussi faire une entrée ?

Vi RB tu peux mettre en entrée ou en sortie.

Ce sont des microrupteurs ?

Exemple

Est-ce que les capteurs (ir et contact) peuvent se brancher (à peu près) directement sur le Pic ou bien ils nécessitent chacun un petit montage électronique ? Les trois pattes des capteur c'est : un vers le +, un vers la masse, et un vers le Pic ?

Vi directement et le cablage c'est comme tu l'a écris, mais bon ça dépend si ce sont des capteurs fait-maison ou du commerce.
Par contre le 16F84 ne contient pas de convertisseur analogique/numérique, il te faut en ajouter un (exemple ADC0831).

=========================================

Je pense qu'il va falloir que tu te forme au pic avant de poser des questions sur le forum, tu trouveras des liens vers ce thème sur le forum.

l'essentiel à savoir c'est :
1) Le cablage avec un fer à souder (site de la coccinelle que je t'ai indiqué)
2) Le fonctionnement des résistances, condensateurs et transistors et ampli-op.
3) Le fonctionnement des capteurs analogiques et numériques.
4) La programmation avec le langage utilisé par le PIC voulu (assembleur 16f84 pour le pic 16f84 ou bien le langage C pour des pics plus évolués).
5) L'utilisation du PIC voulu.
6) poser des questions après, sur le forum^^

Le but c'est quand même que tu arrive à faire ton projet le plus possible tout seul et non que des personnes te guident pas à pas :P

"Plus on partage, plus on possède, voilà le miracle". LEONARD NIMOY
"Celui qui se bat peut perdre, celui qui ne se bat pas a déjà tout perdu". BERTOLT BRECHT (1898-1956)
Comment se lancer dans la robotique !
Mince encore un post pour augmenter mon compteur ;)


#12 Alex68

Alex68

    Membre

  • Membres
  • 54 messages

Posté 21 février 2010 - 11:41

Je crois que j'ai compris :
Si le capteur est analoqique, il faut un convertisseur pour mettre le signal en BCD, s'il est numérique, il n'y en a pas besoin.
C'est ça ?

#13 Electron

Electron

    Pilier du forum

  • Membres
  • PipPipPipPip
  • 906 messages
  • Gender:Male
  • Location:LABEGE
  • Interests:Électronique, robotique ludique, programmation de jeux et utilitaires, et plein d'autres choses.

Posté 21 février 2010 - 11:47

Heu on s'est croisé^^ lis la fin de mon post ;)

"Plus on partage, plus on possède, voilà le miracle". LEONARD NIMOY
"Celui qui se bat peut perdre, celui qui ne se bat pas a déjà tout perdu". BERTOLT BRECHT (1898-1956)
Comment se lancer dans la robotique !
Mince encore un post pour augmenter mon compteur ;)


#14 Alex68

Alex68

    Membre

  • Membres
  • 54 messages

Posté 21 février 2010 - 08:45

D'accord, je vais lire me renseigner sur tout ça, peut-être pas cette semaine car je reprends les cours...

Le but c'est quand même que tu arrive à faire ton projet le plus possible tout seul et non que des personnes te guident pas à pas


Je m'excuse de vous avoir accablé de questions mais je découvre entièrement, j'ai besoin d'avoir des certitudes sur ce que je lis et ce que je "crois comprendre".
Je pense avoir déjà pas mal appris en quelques jours et je vais essayer de faire le schéma électronique le plus complet possible, que vous pourrez corriger ensuite.

Merci beaucoup !

#15 Electron

Electron

    Pilier du forum

  • Membres
  • PipPipPipPip
  • 906 messages
  • Gender:Male
  • Location:LABEGE
  • Interests:Électronique, robotique ludique, programmation de jeux et utilitaires, et plein d'autres choses.

Posté 21 février 2010 - 10:10

N'oublie pas de regarder dans le topic "Electronique" je crois que c'est là où j'ai mis les liens utiles pour débutants. ;)

"Plus on partage, plus on possède, voilà le miracle". LEONARD NIMOY
"Celui qui se bat peut perdre, celui qui ne se bat pas a déjà tout perdu". BERTOLT BRECHT (1898-1956)
Comment se lancer dans la robotique !
Mince encore un post pour augmenter mon compteur ;)


#16 Alex68

Alex68

    Membre

  • Membres
  • 54 messages

Posté 11 mars 2010 - 07:26

Salut,
J'ai encore une question...
J'ai un peu peur de me lancer dans la programmation de pic sans rien y connaître et je préfère m'entraîner sur des circuit très simple où le pic commande des DEL pour me familiariser avant d'essayer sur un robot...
Est-ce que ce schéma (simplifié) conviendrait :

Image IPB

Les capteurs 1 et 2 sont des capteurs ir tout ou rien sauf que les 2 sont orientés vers le bas (et placé bien à l'avant) pour détecter un vide... Et les capteurs 3 sont des microrupteurs.

Lors de la détection d'un obstacle à droite (par exemple), le signal 1 serait transformé par deux transistors en signal 0 vers In1 et en 1 vers In2 (moteur gauche). Si c'est le capteur 2 ou 3 qui détecte l'obstacle, un autre signal sera envoyé à un transistor pour bloquer le courant vers En1.
Est-il possible de mettre une temporisation qui permettrait de continuer à envoyer les signaux vers L298D un petit après que l'obstacle ne soit plus détecté (pour pouvoir tourner plus longtemps) ?
Et est-ce que ce système peut marcher ?

Merci !



Répondre à ce sujet



  


0 utilisateur(s) li(sen)t ce sujet

0 members, 0 guests, 0 anonymous users