Aller au contenu


Photo
- - - - -

Question pour le Robot Cerda


  • Veuillez vous connecter pour répondre
5 réponses à ce sujet

#1 Prof_Saesee

Prof_Saesee

    Membre

  • Membres
  • 70 messages

Posté 04 novembre 2014 - 05:49

Bonjour tout le monde !

 

Alors voilà, pour mon premier robot, je compte me lancer dans le Robot Cedra, dont le tuto est disponible ici: http://www.robot-maker.com/tutorials/article/78-rcerda-un-robot-raspberry-pi-pour-100-120

 

Avant de commander les pièces, j'aurai quelques questions !

 

En fait, je souhaiterai changer les capteurs de pression par des capteur de distance placé en arrondi (à 45° l'un de l'autre disons).

Je voulais savoir deux choses.

 

1 - Puis-je prendre d'autres capteur que ceux cité dans le tuto ? Je pensais à ce genre de capteurs (tout simplement parce que c'est ce genre que je voie partout ailleurs ^^) :

hc-sr04_capteur_de_distance_par_ultrason

 

2 - Au niveau du code, quelqu'un serais susceptible de m'aider ? (Je suppose qu'il faudra en changer une partie.) Pour être honnête, je n'y connais pas grand chose en programmation.

Le capteur central, qui est donné sur le tuto, dit de pivoter de x° si on s'approche d'un obstacle, hors si c'est un des capteurs sur le cotés qui détecte, il faudrait que le robot ne pivote pas autant logiquement, de plus, il faudrait qu'il ne tourne pas du même sens si le capteur gauche ou droit qui capte.

 

 

J'ai hésité à poster maintenant, me disant qu'il vaudrait mieux une fois que le robot serais au moins commencer, mais en même temps, si je doit changer des pièces, autant demander avant de ne passer la commande :).

 

 

D'avance merci à tous,

Nicolas.



#2 ChristianR

ChristianR

    Membre passionné

  • Membres
  • PipPipPip
  • 474 messages
  • Gender:Male
  • Location:Isère (38)

Posté 04 novembre 2014 - 11:27

Ce sont de bons capteurs et faciles à utiliser.


Christian

#3 Prof_Saesee

Prof_Saesee

    Membre

  • Membres
  • 70 messages

Posté 05 novembre 2014 - 12:05

C'est ce qu'il me semblait oui, vue que j'en voie partout sur les petits robots sur le net.

 

Merci de ta réponse :).



#4 Prof_Saesee

Prof_Saesee

    Membre

  • Membres
  • 70 messages

Posté 14 novembre 2014 - 02:56

Bonjour tout le monde.

 

J'ai commandé toutes les pièces tel qu'indiquée dans le tuto, hormis pour les capteurs.

Je n'ai pas pris de capteur de contact, et j'ai commandé 3 capteurs de distance comme celui que j'ai montré plus haut plutôt que celui donné dans le tuto.

 

Mes questions:

 

1 - Je n'y connais pas grand chose en code. J'ai vaguement lu le code du robot, et de ce que j'ai compris il va falloir que j'en modifie quelques ligne pour adapter à mon capteur, qui n'est ps le même modèle que celui prévu à la base. N'y connaissant pas grand chose, je voulais savoir si quelqu'un pouvais m'aider là dessus.

Pour rappel, le code en question : https://github.com/s...ob/master/r1.py

 

2 - Pour mettre en place les 3 capteurs, comment dois-je m'y prendre ? Est-ce qu'il suffi que je les mettent à d'autres port GPIO et copier/coller plusieurs fois le bout de code relatif au capteur, en changeant juste les port GPIO utilisés ?

2.5 - Si je veux faire en sorte que si un obstacle est détecté par un des deux capteur qui seront placé sur les coté, alors le robot pivote moins que si c'est le capteur frontal qui le détecte, il suffis que je change ça :
 

elif(d<16) :
				turnLeft(m1a,m1b,m1e,m2a,m2b,m2e)
				time.sleep(0.2)

Par ça :

elif(d<16) :
				turnLeft(m1a,m1b,m1e,m2a,m2b,m2e)
				time.sleep(0.1)

Dans les ligne qui parleront des capteurs sur le cotés, par exemple ?

 

J'ai peux être commencé "gros" pour un début, mais j'espère qu'avec votre aide j'arriverai à faire fonctionner ce robot :).

 

 

Ah et, et c'est un p'tit peux important quand même ... Comment implémenter le code à mon robot ? ^^' (Quand je vous dit que je débute, ce n'est pas une blague :s .)

 

 

EDIT: Positionnement des capteurs voulu:

robot10.jpg

(Le schéma n'est pas à l'échelle, il manque des éléments etc, c'est juste pour imager les capteurs.)



#5 Prof_Saesee

Prof_Saesee

    Membre

  • Membres
  • 70 messages

Posté 21 novembre 2014 - 11:23

_mg_5810.jpg

 

Il ne me manque plus que les capteurs, qui devraient arriver bientôt.

Je vais bricoler la base de mon robot et commencer les branchements :).



#6 sky99

sky99

    Habitué

  • Membres
  • PipPip
  • 271 messages
  • Gender:Male

Posté 18 décembre 2014 - 02:25

Bonjour!

La différence, avec ce capteur, c'est qu'à priori, tu envoies un "ping", et qu'il mesure le temps mis pour que le signal lui revienne.

La distance n'est donc pas forcément accessible directement. D'un autre côté ça revient presque au même, car on peut

s'attendre à ce que ce soit quelquechose du genre D=f(T), ou D est la distance, et T le temps. avec un peu de chance, il s'agira même d'une fonction linéaire, du genre D=A*T+B ou A et B sont des valeurs quelconques.

 

Bref, dans tous les cas, il s'agira de trouver comment mesurer la valeur de retour du capteur. Dès lors, il faudra soit calculer la distance en trouvant la bonne fonction, soit utiliser cette valeur brute. Avec certains capteurs j'utilise la valeur brute, car je ne connais pas la fonction.

Dans ce cas, il suffit  de tester, et noter les valeurs limites (par exemple, si le capteur retourne 25, que ça correspond à environ 10cm, ou un truc du genre).

 

Pour l'algo, avec 3 capteurs, on reste sur des choses similaires, cependant, il faudra tester et adapter les valeurs. De même, il faudra adapter l'orientation du capteur. En effet, il convient pour bien optimiser le tout de savoir quelle est la largeur du faisceau, pour pouvoir le positionner.

En effet, le capteur infrarouge détecte vraiment devant lui, car c'est un rayon étroit. Mais les capteurs ultrasons ont un peu de dispersion, et détectent un peu sur les côtés.

Il faudra de ce fait s'assurer que le faisceau du capteur 1 n'est pas capté par le capteur 2, et vice versa.

A moins de n'activer les capteurs qu'à tour de rôle.

 

Bref, dans tous les cas, il faudra donc ajuster les distances à partir desquelles le robot considère que l'objet détecté est un obstacle, ainsi que la durée de rotation (le sleep(0.2))

En effet, dans mon cas, cette durée permettait de m'assurer que le robot tournait suffisamment pour que l'obstacle ne butte pas sur son "épaule", mais ça dépend du robot, de sa largeur, sa vitesse, etc.

 

Vu que tu as pris les roues pololu  de 32mm, il ira moins vite à moteur donné, donc il devra tourner plus longtemps. En contrepartie, ça permet un positionnement plus précis :)

Bonne continuation, si tu as besoin d'éclaircissements, n'hésite pas!

J'ai démonté R.Cerda, mais j'en construis un autre sur le même principe, en l'améliorant, donc je partagerai le code et les ressources :)


Mon site principal : http://www.nagashur.com/ (format blog, un wiki y est aussi)

Mon profil sur hackaday.io : https://hackaday.io/sky99 (hackerspace en anglais, j'y ai plein de projets)

Mon Github : https://github.com/sarinkhan/





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

0 members, 0 guests, 0 anonymous users