Page 1 sur 2

[RESOLU] Mini bras robot NC-1424

Posté : ven. 15 juil. 2016 16:58
par Papy
Bonjour à tous !

Je suis depuis peu le possesseur d'un PI2.
J'ai envie bien sûr de le connecter à tout ce que je vois :))
Or, il se trouve que j'avais commandé un petit bras robot pour amuser mes garçons (je ne fais pas de pub, mais je l'ai trouvé là : https://www.pearl.fr/article/NC1424/kit ... ise-5-axes).
Il existe un kit de connexion de ce truc à un PC mais c'est une interface fermée sous windows, pour le moins limitée.

Et je voudrais bien essayer des trucs pédagogiques en python avec ce bras robot à partir du Pi2 (genre tour de Hanoï, le coup classique).
Sauf que question documentation, à Pearl ils sont pour le moins légers (vous voyez bien que je ne fais pas de pub :)) ).
Or... Je n'ai pas envie de flinguer les sorties du Pi. (les moteurs sont en 6V)

Quelqu'un s'est il déjà penché sur le problème ?

merci de vos réponses.
Papy

Re: Mini bras robot NC-1424

Posté : sam. 16 juil. 2016 01:29
par spourre
Bonsoir,

En l'absence totale de doc, je ne vois qu'une solution : le reverse engineering.
Il y a au moins 2 voies d'approche, qui peuvent se compléter:

-) étude, si accessible, du circuit électronique de pilotage du bras, en particulier référence (si lisible) des circuits intégrés.
-) sniffage du bus USB avec un logiciel du genre :
http://freeusbanalyzer.com/

La démarche consiste à installer le logiciel sous Windows et à lancer au clavier les commandes autorisées, une à une.
En sniffant le port USB de l'interface, il doit être possible de trouver ce qu'envoie le programme et de le reproduire sous Linux par un write sur ce port.
L'USB est un port série, le protocole ne doit pas être très compliqué.

Bonne chance.

Sylvain

Re: Mini bras robot NC-1424

Posté : sam. 16 juil. 2016 17:19
par Papy
merci de l'info. je vais essayer. ce n'est pas gagné... :cry:

Re: Mini bras robot NC-1424

Posté : sam. 16 juil. 2016 23:42
par spourre
Papy a écrit :merci de l'info. je vais essayer. ce n'est pas gagné... :cry:
Il faut être très méthodique et tester un ordre après l'autre, en variant le paramètre (angle par exemple).
Si la capture peut être sauvegardée, il ne faut pas hésiter à le faire, avec un nom parlant (ex: droite_90).
La capture doit se faire sous Windows (puisque le logiciel propriétaire n'est disponible que sous Windows) mais le traitement peut se faire sous Linux si cet environnement vous est familier. Il offre de nombreux outils de recherche (diff par exemple) de différence entre 2 fichiers ou de dump avec conversion.

Vous cherchez quelle valeur a été modifiée entre les 2 trames de la même commande, cela devrait vous donner l'endroit où est stockée la variable et son codage (1 octet, un integer..) et dans quel sens (MSB: octet poids fort, LSB: octet poids faible).

Il faut aussi faire une capture avant de lancer le programme de commande du bras car il émet, peut-être, une chaîne d'initialisation. Si c'est le cas, votre script en python devra commencer par émettre cette séquence. C'est faisable, même si vous ne décryptez pas cette chaîne ou ne comprenez pas ce qu'elle fait, il suffit de la rejouer .

Ce n'est certes pas gagné mais vous avez souligné qu'il y a peu de commandes et le protocole utilisé ne doit pas être très sophistiqué.
SVP tenez-nous au courant . Bon courage

Sylvain

Re: Mini bras robot NC-1424

Posté : dim. 17 juil. 2016 03:56
par vague nerd
Bonjour.

Ce bras est en vente un peu partout (ça fait longtemps que je le "surveille" !). Avez vous essayé de trouver de la doc chez un autre marchand ?

Spourre vous conseille/propose une solution élégante de reverse engineering ou de sniffage.
Dans mon imaginaire, j'imaginais pour ma part plutôt hacker la télécommande (il semble que ce ne soit par trop dur s'il s'agit simplement de "boutons" physiques à "émuler"... et si vous disposez de la télécommande :mrgreen: ),
ou de me connecter directement aux moteurs sans passer par le contrôleur du jouet...

Cdt.

Re: Mini bras robot NC-1424

Posté : dim. 17 juil. 2016 14:40
par spourre
vague nerd a écrit :Bonjour.
...
Spourre vous conseille/propose une solution élégante de reverse engineering ou de sniffage.
Dans mon imaginaire, j'imaginais pour ma part plutôt hacker la télécommande (il semble que ce ne soit par trop dur s'il s'agit simplement de "boutons" physiques à "émuler"... et si vous disposez de la télécommande :mrgreen: ),
ou de me connecter directement aux moteurs sans passer par le contrôleur du jouet...

Cdt.
Bonjour,

C'est toujours un plaisir que te retrouver sur un topic plein de promesses :D
Sans connaître le PO, son message sans "fote d'ortograf grossières", sans lol débile ponctuant chaque phrase et son désir d'apprendre à ses enfants l'algorithmique à travers la programmation des tours de Hanoï, m'ont conduit à lui proposer une solution que tu as l'amabilité de qualifier d'élégante.
Il y a maintenant plus de 30 ans, confronté au même problème, j'avais opté pour le logo à la place des horribles basics de l'époque (Atari 1024).

Quand il aura résolu le problème d'identifier les commandes, se posera celui de reconnaître le diamètre du disque saisi et d'appliquer la force suffisante à son maintien. Le bras ne disposant pas de capteur il faut soit envisager d'en monter un (tout ou rien ou analogique) ou de mesurer le courant consommé par le moteur d la pince.

Des questions intéressantes en perspective :twisted:

Cordialement
Sylvain

Re: Mini bras robot NC-1424

Posté : dim. 17 juil. 2016 14:55
par spourre
Si vous comprenez l'allemand, c'est encore mieux:
https://www.youtube.com/watch?v=Ml_PUkYMuDY

Sylvain

Re: Mini bras robot NC-1424

Posté : dim. 17 juil. 2016 17:15
par spourre
Re

J'ai trouvé la notice de montage qui est assez complète, avec les schémas électriques du robot et de la télécommande.
http://www.google.fr/url?sa=t&rct=j&q=& ... 8174,d.ZGg

La lecture de cette notice et la vidéo dont j'ai posté le lien plus haut me conduisent à conclure que le robot se commande en tout-ou-rien, sans asservissement sur la position finale. En effet, les moteurs n'ont que 2 fils et les interrupteurs de la télécommande sont de simples inverseurs, avec position neutre.
Dans la vidéo, pour mettre le sucre dans la tasse, il faut que la présentatrice bouge la tasse pour la mettre à l’aplomb du robot.

AMHA, une platine de commande de moteur (avec double pont en H), gérable par le GPIO du PI devrait suffire. Le gros avantage est que les moteurs pourront être pilotés en PWM, donc à vitesse variable.
Par contre, il faut étudier la possibilité de connaître la position des segments du robot (roue crantée entre LED et photodiode, potentiomètre ..)

Pour l'utilisation prévue par le PO, à savoir programmation de l'exercice "tours de Hanoï", on peut envisager:
- De remplacer la LED, prévue en bout de bras,par une photodiode (certaine LED peuvent aussi fonctionner en détection).
- De mettre dans l'axe de chacune des 3 tours, une LED (infrarouge ou non selon le détecteur), modulée en PWM par un simple NE555 (la pile et l'électronique tiennent dans le tube de l'axe).

Le robot balaye son espace et cherche à détecter la tour. Quand il trouve une tour, il l'identifie grâce à sa fréquence de clignotement et mémorise ses coordonnées (au choix, polaire ou rectangulaire). Il reprend le processus pour identifier les 2 autres tours. De la sorte, si on reste dans le domaine du robot, on peut mettre les tours où on veut.

Quand je disais que ce sujet était prometteur, je ne me trompais pas. C'est un vrai défi :)
Cordialement

Sylvain

Re: Mini bras robot NC-1424

Posté : dim. 17 juil. 2016 18:47
par vague nerd
AMHA, une platine de commande de moteur (avec double pont en H), gérable par le GPIO du PI devrait suffire.
+1. C'est ce que je voulais dire par
ou de me connecter directement aux moteurs sans passer par le contrôleur du jouet
.
Pas bien clair en disant "me connecter directement" :oops: ...
Le robot balaye son espace et cherche à détecter la tour.
Voulez vous aller jusque là, ou pensiez vous disposer les tours à emplacement "fixe" ?

Quoi qu'il en soit, il va falloir pouvoir estimer le diamètre des anneaux des tours (c'est bien ce que vous voulez faire ? Ou alors la disposition initiale et les tailles sont connues du robot ?).
Vous compter le faire au "toucher' (avec une roue crantée sur la pince ou en mesurant le courant consommé par le moteur - comme le propose spourre - par exemple), ou à la "vue" (analyse video par exemple) ?

Cdt.

PS : pour nous éviter de partir dans des conjonctures inutiles, pourriez vous préciser votre projet de tour de Hanoï ?
En particulier, quel niveau d'analyse et automatisation cherchez vous ?
Peut-être ne voulez vous "que" transmettre l'algorithmie en général (et la récursivité en particulier)...

PS2 @spourre :
C'est toujours un plaisir que te retrouver sur un topic plein de promesses :D
C'est bien premier degré, hein ? Je ne t'ai pas saoulé, là ?

Re: Mini bras robot NC-1424

Posté : lun. 18 juil. 2016 00:02
par spourre
vague nerd a écrit : ...
C'est bien premier degré, hein ? Je ne t'ai pas saoulé, là ?
Je te rassure, c'est bien du 1er degré (pas de smiley pour ne pas introduire de doute).

Nota: Je trouve tes questions à Papy pertinentes et on va attendre ses réponses avant de le noyer de propositions :twisted:

Cordialement
Sylvain