Une idée
-Le robot est posé sur une table, il doit évoluer sans tomber de la table.-Le robot doit trouver et prendre les objets et les déposer en dehors de la table.
Réalisation
Je voulais faire une pince qui puisse serrer et lever un objet avec un seul moteur, voici le système finalement très simple :




Il est capable de prendre des objets légers.
Le robot est un tribot, c'est à dire deux roues motrices commandées par deux moteurs et une roue jockey (ou roue folle). D'un coté le radar ultra-sons afin de voir les objets, de l'autre la pince avec le capteur de lumière pour détecter les bords de la table.
Les choix de taille de roues sont purement personnels et mal adaptés à une évolution sur une table (trop grand et vitesse trop rapide).
Résultat
Pas génial, le robot tombe de la table en allant vers l'objet s'il est mal détecté, il doit se retourner pour prendre l'objet, c'est imprécis.
Retour à la réalité
-Pourquoi prendre l'objet quand il suffit de la pousser en dehors de la table ?
-Détecter les bords de la table par l'avant et l'arrière (capteur de contact) pour ne jamais tomber.
-Mettre un pilote pour être sur.
Photos







Le programme
1 Calibration du capteur de lumière
2 Boucle infinie : Tourne sur soi en détectant objet à moins de 80 cm, pendant un peu plus d'un tour :
- Objet trouvé : fonce jusqu'au bord de la table
- Objet non trouvé : avance un peu
Les fonctions
Avancer : L'alimentation des moteurs est conditionnée à la fois par le capteur de lumière et le compteur de rotation intégré au moteur (en degrés). Si le signal lumineux baisse alors on appelle la fonction reculer, si le nombre de tours est atteint alors on s'arrête.
Reculer : L'alimentation des moteurs est conditionnée à la fois par le capteur de contact et le compteur de rotation intégré au moteur (en degrés). Si le signal de contact passe à zéro alors on avance un peu, si le nombre de tours est atteint alors on s'arrête.
Tourner : L'alimentation des moteurs est conditionnée à la fois par le capteur de lumière, le capteur de contact, le capteur de distance (ultra sons) et le compteur de rotation intégré au moteur (en degrés). Si le signal lumineux baisse alors on appelle la fonction reculer, si le signal de contact passe à zéro alors on appelle la fonction avancer, si la distance est inférieure à 80 cm ou si le nombre de tours est atteint alors on s'arrête. Cette fonction renvoie en sortie un code indiquant si un objet est détecté.
Programme principal :

Fonction "cherche" :

Fonction "avance" :

Fonction "recule" :

Le test
Il faut des objets de taille moyenne (10 cm) et solides car ils vont tomber par terre : je choisis les jouets du bébé. On remarque que les surfaces absorbantes (tissus, mousse) sont moins bien détectées.
5 commentaires:
Salut, serait-il possible d'avoir le code du nettoyeur de table?
Cordialement,
Sylvain
Suite à ta demande j'ai complété l'article avec le code en NXT-G.
Excellent!
Merci.
Sylvain
Alban, serait-il possible d'obtenir copie de votre fichier .rbt?
Je suis débutant et j'ai quelque difficulté à saisir certaines subtilités de votre implémentation, je crains qu'une fois transcrit le robot ne fonctionne pas très bien...
Cordialement,
Sylvain
Bonjour, je suis aussi débutant et je voudrais m'inspirer de votre travail pour un déplacement de tribot avec prise de pièce. Puis -je espérer avoir votre programme .rbt car celui-ci est plein de subtilités qu'un néophite a du mal à comprendre.
J'espère que vous pratiquez encore .Cordialement
Enregistrer un commentaire