module ultrason

lahcene

New Member
bonjour tout le monde

je travaille sur la carte picaxe et je veut utiliser le module à ultrason type K-MR-US pour la détection des objets, dans le cadre d'un projet de télé-surveillance
ma question est la suivante: comment je dois connecter ce module sachant qu'il dispose de 5 broches, 2 pour l'alimentation et 3 autres à definir ?
Il me semble que la portée de ce module est bridée à 2.55m comment peut on la débrider ? Existe t'il de la doc sur ce module ?

merci d'avance
Lahcen
 
Last edited by a moderator:

AndreBernot

Senior Member
Module à Ultrasons SRF005 (K-MR-US)

La documentation du module est accessible sur http://www.rev-ed.co.uk/docs/srf005.pdf.

Vous y trouverez les indications pour câbler ce module. Si vous utilisez un Picaxe 28X1, il faut appliquer le plan de câblage figurant sur la page 1 de cette documentation.
La commande Ultra accessible dans le mode diagramme de Programming Editor permet de récupérer la valeur de la distance dans une variable b0 à b11. A noter qu'avec un 28X1 il faut connecter Echo Output sur l'entrée In7 et Trigger Input sur la sortie Out3.

Ultra génère le code basic qui permet de contrôler le capteur. Pour des raisons de simplicité de récupération de la donnée de distance, cette commande bride les capacités du capteur à 2,55m (alors qu'il peut fonctionner jusqu'à 3m). La donnée stockée dans la variable bx correspond à la distance exprimée en cm.
Pour utiliser toute la plage de fonctionnement du capteur, il faut écrire son code directement en basic. On récupère alors la distance dans 2 variables (une de poids fort au delà de 2,55m) et une de poids faible.
Astuce pour débrider la plage de fonctionnement avec la commande Ultra : Editer le basic généré par Ultra, et supprimer la ligne "let b0 = 255".
La distance est alors accesible dans les variable b13 et b12.
 

fuse

Senior Member
Bonjour,

Je pense qu'il y a une erreur dans le document Srf005.pdf
AndreBernot à raison il faut connecter Echo Output sur l'entrée In7 et Trigger Input sur la sortie Out3. Cependant les broches du module US sont :
US.jpg

cordialement
:)
 

AndreBernot

Senior Member
Module ultrasons SRF005

Bonjour fuse,
Merci pour votre schéma de connexion du SRF005 avec un 28X1.

Je ne comprends pas de quelle erreur vous parlez dans la documentation du SRF005 ?
 

fuse

Senior Member
Bonjour,
Je dois être fatigué... mon schéma est identique à la doc...J'avais vu une différence???
Mea Culpa

:confused:
 

Gary Coupeur

Senior Member
J'ai du mal avec le module ultrasons

Bonjour

J'ai configuré le module ultrasons de la manière décrite sur la photo (avec picaxe 28X1), j'ai chargé le programme de test très simple ci-dessous:
Module Ultrasons.jpg
et ce nigaud ne semble pas détecter la distance du tout.
Ais-pu oublier quelque chose de fondamental?

Merci d'avance pour vos remarques
 

PieM

Senior Member
Bonjour,

Pouvez vous donner le programme tel que traduit en basic par votre logigramme.
ll me semble qu'il manque des arguments dans votre commande...

Ou écrivez simplement (en fonction des connexions du schéma de Fuse):

symbol echo = w6 ' par exemple

Pulsout 3,1 ' envoi d'un pulse de 10 ms
Pulsin 7,1, echo ' reçoit l'echo
echo = echo *10/58 ' valeur traduite en cm

echo (w6) donnera la distance jusqu'à environ 4m.

prendre soin de ne pas envoyer cette commande plus de 20 fois par seconde.
faire éventuellement une pause de 50 ms ...
 
Last edited:

Gary Coupeur

Senior Member
Merci Piem, je découvre ton message (je suis en cours).

J'essaie ça ce week-end (je n'ai jamais pris la peine de visualiser les logigrammes en basic, je suis surtout branché langageC. L'occasion fera le larron)
 

Gary Coupeur

Senior Member
Je patauge

Bonjour

Ci-dessous le petit bout de logiciel basic qui ne marche pas (malgré l'adjonction d'un delay):
Ultrasons basic.jpg
j'ai tenté Pulsout 3,1 plutot que Pulsout 3,2, mais c'est pareil
NB:
il me semble que
symbol echo = w6 ça ne lui plait pas (genre syntax error)

Merci d'avance pour votre aide
 

PieM

Senior Member
Bonjour,

w6 est formé de b12 et de b13.
Il est inutile donc de ramener la valeur de w6 à une quantité ne dépassant pas 255. (b0)

En outre, pour éviter des calculs et gagner du temps, il n'est pas utile de transformer la valeur de l'echo en cm: autant faire le test sur la valeur brute donnée par pulsin, à savoir 116 pour l'équivalent de 20cm (20 /10*58)
le programme devient le suivant: (avec picaxe sensé être à 4MHz)
#picaxe 28X1
symbol echo = w6
'=========================================
main:
pulsout 3,1
pulsin 7,1,echo
pause 50
if echo >116 then ' forward
pins = 96
else 'right
pins = 160
pause 300
endif
goto main
Une autre méthode de programmation permet des tests selon plusieurs distances:
#picaxe 28X1
symbol echo = w6
'==================================
main:
do
pulsout 3,1
pulsin 7,1,echo
pause 50
gosub testdist
loop

'==================================
testdist:

select case echo
case < 50
pins = xxxxx 'marche arriere par exemple
pause 300
case < 116
pins = 96 'right
pause 300
else 'forward
pins = 160
endselect
return
Bonne route :)
 
Last edited:

Gary Coupeur

Senior Member
Merci PieM, j'ai parfaitement compris la programmation.
Mais ça ne marche toujours pas. Soit mon module ultrasons a un souci, soit j'ai fait une boulette quelque part.
On reprend*:
Sur le schéma de Fuse, quand je regarde le dos du module ultrasons, j'ai*:
La masse (côté trou de fixation),
une broche NC,
une sortie que je connecte sur la sortie numérique 3,
une entrée connectée sur l'entrée numérique 7,
le 5V.
Tout semble OK de mon côté.
Est-ce qu'il faut fournir autre chose*?
 

PieM

Senior Member
Bonjour,

Oui les connexions ont l'air correctes sous réserve que le module soit bien orienté par rapport au marquage SRF05 dessous !

Que donne un debug de echo (w6) ?

Si tu as un oscillo, voir si tu as bien un pulse en entrée du SRF05 (borne du milieu) et un pulse en sortie (borne à coté du +5V)

sinon, au multimètre, vérifier qu'en faisant un pulsout 3, 65535 la sortie 3 du picaxe passe bien à V+ pendant un court instant (0,6s)
 

Gary Coupeur

Senior Member
Malheureusement je n'ai pas d'oscillo (je vais finir par m'en acheter un, car c'est handicapant!)
Je vais regarder au voltmètre.

Qu'est-ce que tu entends par "Que donne un debug de echo (w6) ? "
(je ne suis pas encore très familier du basic)

Merci
 

Gary Coupeur

Senior Member
Pour info:
J'ai appelé un collègue, qui avait eu pas mal de problèmes avec le capteur à ultrasons.
Visiblment la commande "ultra b0" ne serait pas compatible avec la carte 28X1.
Il a aussi parlé d'une DEL SMS au dos de la carte ultrasons SRF005, censée clignoter.
Chez moi elle ne glignote jamais.
Tout se passe comme si la distance détectée était toujours = 0.
 

PieM

Senior Member
La del rouge doit clignoter effectivement à chaque mesure.

Vérifier toutes les connexions et les soudures (ponts éventuels!)

Il faut rentrer les programmes que je donne sans passer par le flowchart.
(copier coller dans la fenêtre basic)

Code:
#picaxe 28X1
symbol echo = w6
'=========================================
main:
do
pulsout 3,65535
pause 100
loop
et vérifier avec le multimètre que la tension sur la borne du milieu du SRF05 ne reste pas à 0.


si c'est OK, faire un essai avec celui ci:

Code:
#picaxe 28X1
symbol echo = w6
'=========================================
main:
do
pulsout 3,2
pulsin 7,1,echo
pause 50
debug
loop
Une fenêtre doit s'ouvrir dans laquelle tu pourras voir les valeurs des variables, dont w6. (sinon taper F6)

(Important: voir l'instruction debug dans le manuel 2 )
 

Gary Coupeur

Senior Member
connexions et les soudures OK (ponts éventuels!)

Code:

#picaxe 28X1
symbol echo = w6
'=========================================
main:
do
pulsout 3,65535
pause 100
loop

et vérifier avec le multimètre que la tension sur la borne du milieu du SRF05 ne reste pas à 0.



D'abord merci PieM pour le temps que tu me consacres.
Résultat: La tension reste à zéro. Pourtant le module ultrasons est neuf, les soudures ont l'air parfaites (pas de court-jus mesuré au multimètre)

Je pense que je vais essayer avec un autre module ultrasons, mais je ne suis pas satisfait (car il est peu probable qu'un module neuf ait un problème)
 

PieM

Senior Member
Non, si la tension reste à 0 c'est que le picaxe n'envoie pas de pulse sur sa sortie 3 !
à vérifier donc sur le picaxe seul, déconnecté du SRF05 ....
Essayer éventuellement une autre sortie .
 

Gary Coupeur

Senior Member
Effectivement, bonne remarque, j'vas tenter (d'un autre côté ce ne serait pas de chance, il me semble que j'ai du actionner presque de tout sur cette carte: buzzer, DEL, moteurs, généralement sur les sorties 0 à 3 justement).
 

Gary Coupeur

Senior Member
Ça y est, j'ai enfin pigé. C'est ta remarque Piem qui m'a mis la puce à l'oreille: en sortie je n'avais rien: pour cause, par habitude je me connectais en sortie 2803A, donc d'un transistor, mais pas en sortie du microcontrôleur.

Shame on me!
 

dach

New Member
Bonjour,

J'essaie depuis une semaine de cabler mon SRF005 avec un 28X2 mais ça ne marche pas. Il est à noter que le 28X2 à une horloge de 8Mhz alors que le SRF005 fonctionne sur 4 Mhz je crois. Comment ramener la fréquence du 28X2 à 4 Mhz ? Sinon donnez moi une solution pour utiliser le SRF005 avec le 28X2 ?
Merci par avance !
 

PieM

Senior Member
Bonjour,

Dire que ça ne marche pas manque un peu de précision ! :rolleyes:
Le mieux serait de préciser le programme , les connexions utilisées et le résultat obtenu ...

Le problème de la fréquence d'horloge est facilement contournable:

Le pulsout a 8 MHz a une résolution de 5 µs au lieu de 10 µs à 4 Mhz.

Pour envoyer un pulse de 10 µs la commande est donc pulsout pinx, 2 au lieu de pulsout pinx, 1.

Quant au résultat, c'est pareil: à 8 MHz, la valeurs reçue en pulsin sera le double de celle reçue à 4 MHz.

donc la formule donnant la distance en cm devient
Pulsin pinY,1, echo
echo = echo *5/58 ' valeur traduite en cm

l'utilisation d'une variable byte au lieu de word limitera la distance maxi à 127 cm .
 

NOELP

New Member
bonjour
J'ai l'impression que la commande ultra a disparu en flow chart avec la nouvelle version de l'éditeur de programme.
Je me trompe ou j'ai des hallucinations ?
Merci d'avance pour vos réponses, je préfère travailler en flow chart avec mes élèves de collège, c'est plus facile pour eux.
 

PieM

Senior Member
Bonjour,
Si c'est le flow chart de PE Ver 5.5.6 , la commande ultra existe . Icône mouvement entre out et if
 

NOELP

New Member
merci.
Si j'ai bien compris, avec un boitier Picaxe (28X2), la valeur de la variable (b0) en cm sera le double de la valeur réelle.

Pour palier à ce problème, il faut convertir en basic et modifier b0 en w0.
 

PieM

Senior Member
merci.
Si j'ai bien compris, avec un boitier Picaxe (28X2), la valeur de la variable (b0) en cm sera le double de la valeur réelle.

Pour palier à ce problème, il faut convertir en basic et modifier b0 en w0.
Oui c'est tout à fait ça. Il y a toujours intérêt à utiliser une variable word pour ces modules pour ne pas limiter la portée.
Et le mode organigramme ne gère toujours pas ce type de variables donc, passer par le basic
 
Top