Il existe plein de module de mesure de distance par ultrasons, et plein de clones de ces modules. Évitez les modules à moins d'1$, ils sont très mal copiés, autant en acheter un bien directement [lien] ou le faire soi-même [lien].
Si vous en avez sur les bras (des clones chinois pourris qui ne captent que des surfaces dures et plates perpendiculaires), il est possible de les améliorer grâce au travail de d'Emil http://uglyduck.ath.cx/ep/archive/2014/01/Making_a_better_HC_SR04_Echo_Locator.html
Fonctionnement général de la mesure par ultrason :
En détail :
L'émission est puissante et fait vibrer tout : la carcasse de votre robot, le PCB dans le cas de notre module, etc. Plus l'émission est puissante et transmise, plus longtemps il faudra attendre que ça se calme, plus longue sera la distance minimale mesurable.
Les émetteurs et les récepteurs sont souvent différenciés, ça permet également de les séparer et éviter ce problème.
Le signal provenant du récepteur est amplifié, beaucoup, et filtré à la fréquence d'émission (dans les 40KHz) par un filtre passe bande.
Un microcontrôleur analyse le signal de retour et en déduit la durée qu'a mis l'écho à revenir.
Le HC-SR04 est très copié, le modèle acheté par Drix est un peu différent de celui étudié par Emil, mais la partie analogique est presque identique. Le filtre passe-bande est donc mauvais et modifiable de la même façon qu'indiquée, sauf qu'ici c'est R5 qui doit passer de 75K à 18K et R3 de 6,2K à 2,2K.
Je n'avais pas de 18K en CMS, mais une grosse résistance fait aussi l'affaire.
Une fois la modification faite, le système est trop sensible, l'amplification est trop forte pour les réglages programmés. Comme on ne peut pas modifier le code du microcontrôleur intégré, plutôt que de modifier le microcontrôleur comme l'a fait ce ouf d'Emil, on va plutôt isoler physiquement l'émetteur du reste :
On dessoude l'émetteur et on rajoute des fils, assez longs, pour l'éloigner et l'isoler du module récepteur.
Dans le montage final, il faudra penser à ne pas fixer en dur l'émetteur au châssis. L'ensemble fonctionne bien et est très sensible, jusqu'à 4m. Et les cônes de sensibilité max de 15° d'après le constructeur, ça ne veut pas dire qu'à 60° ça ne marche plus, c'est juste moins sensible. Il vaut donc mieux expérimenter dans un environnement préparé (depuis un bord de table par exemple).
Correspondance entre le schéma d'Emil et le mien reversé :
Emil's → Mine
R14 → R1
R15 → R2
R21 → R14
R16 → R15
R13 → R3 (à remplacer par une 2,2K)
R11 → R5 (à remplacer par une 18K)
R13 → R4