Born to be wired
Le workbench pour tester le back-end Youba

 Youba : release du back-end pour robot Youpi

Youba Logo

Une bonne nouvelle pour ceux qui attendaient désespérément un outil pour contrôler leur robot Youpi : je me suis botté le cul ces derniers jours, j’ai pu terminer la réalisation de mon back-end, le tester avec le robot, et même apprécier le résultat en générant un scénario de mouvements pour le robot en quelques secondes !

Le nom de cette merveille : Youba (pour YOUpi BAck-end), un petit programme de 500 lignes écrit en Python. Pour rappel, ce programme a été réalisé dans le contexte suivant :

  • Indépendance du front-end : le programme se contente d’attente ses ordres sur un port TCP. Les instructions en questions peuvent être envoyées par n’importe quel front-end (un terminal, un script, une page web, un programme analysant les commandes d’un joystick, tout ce que vous voulez).
  • Bufferisation : les ordres peuvent être envoyés en temps réel ou à l’avance.
  • Portabilité : au moins dans la mesure du possible. 99% du code est indépendant de la plate forme. Les 1% restants concernent l’envoi de données sur le port parallèle, que je n’ai pas su réaliser de manière totalement portable à l’heure actuelle. Les systèmes Linux et Windows sont supportés.
Le workbench pour tester le back-end Youba

Mon plan de travail : un PC, le robot, le câble de connexion adéquat, et un objet à saisir.

Le plan de travail qui m’a permis de valider mes tests se présente comme ceci : un PC avec une distrib Linux (Linux Mint dans ce cas), le robot, le câble de connexion parallèle fabriqué lors des étapes précédentes, et le tube en plastique d’un médicament générique quelconque préalablement lesté avec des contrepoids de touches de piano (j’ai pris ce que j’avais sous la main). Sur le PC, deux terminaux sont ouverts : à gauche le programme Youba qui écoute sur son socket et à droite le terminal d’envoi des instructions par netcat.

Les résultats des tests ont été au delà de mes espérances :

  • Fonctionnellement, le back-end rempli correctement son rôle, enquille les ordres et envoie leur traduction au robot.
  • Le mouvement sur plusieurs axes en simultané est possible. Cela peut paraitre anodin mais ce n’était pas forcément évident à concevoir.
  • Les mouvements sur chaque axe sont réalisés à une vitesse plutôt raisonnable. J’avais peur que le robot soit trop lent à réagir après avoir constaté des problèmes de mise en sommeil trop longue lors des essais avec mon programme Robotest. J’ai quand même réussi à minorer ce problème en revoyant complètement la gestion des intervalles d’envoi d’octets sur le port parallèle.
  • La précision sur les axes est au rendez-vous, et la pince dispose de suffisamment de pression pour tenir des objets cylindriques.

Et enfin, l’utilisation du back-end, grâce à la commande « I!! » qui affiche l’état des compteurs de demi-pas, permet de « cartographier » les déplacements sur chaque axe de manière très précise et d’utiliser ces informations pour scripter des scénarios très rapidement, dès qu’on connait un minimum la syntaxe attendue. J’ai réalisé le mien en moins de 5 minutes, c’est celui que j’utilise dans mon terminal de droite. Voici le script utilisé pour ordonner au robot de chopper mon tube cylindrique et de le déposer quelques centimètres plus loin :

#!/bin/bash
function sendyoupi {
	echo "$1" | nc localhost 12080
}

# Positionner le bras au-dessus du tube
sendyoupi 'C!W!0,R,H,750,1|1,L,H,999,1|2,R,H,4332,1|3,L,H,7334,1|5,R,H,2000,1'
# Serrer la pince
sendyoupi 'A!W!5,L,D,80,1'
# Lever le bras
sendyoupi 'A!W!1,R,D,30,1'
# Tourner la base de 60°
sendyoupi 'A!W!0,L,D,60,1'
# Baisser le bras
sendyoupi 'A!W!1,L,D,30,1'
# Desserrer la pince
sendyoupi 'A!W!5,R,D,80,1'
# Revenir en position de départ
sendyoupi 'A!W!A,I,S,1,1'

Et le résultat du script en images :

Attention, quelques conseils pour ceux qui souhaitent utiliser Youba :

Avant tout, il y a un fichier README.txt à la racine du projet. Si je me suis cassé la tête à l’écrire, c’est qu’il contient des tas d’informations intéressantes à respecter pour que tout puisse fonctionner. Donc, lisez-le. Vérifiez en particulier que le port parallèle est activé dans le BIOS, de préférence en mode EPP, que son driver est bien chargé par le système d’exploitation, et que vous avez correctement configuré son n° d’I/O dans le fichier de configuration. Si le robot ne répond pas aux ordres donnés, lancez Robotest (disponible en page de téléchargements) pour vous assurer que la partie matérielle fonctionne à minima. D’autre part, je n’ai pas eu l’occasion de tester l’intégralité du programme avec Windows (les 50% des 1% qui ne sont pas portables), j’ai bon espoir que cela fonctionne mais on ne sait jamais. Enfin, je rappelle que je ne réponds en général pas aux questions par mail car je préfère qu’elles soient abordées en commentaires afin que tous les intéressés puissent avoir accès aux réponses.

Voila, il est maintenant temps de dévoiler où il est possible de télécharger Youba : c’est sur la page de téléchargements !

Une dernière chose : je serai content de savoir si vous utilisez ce back-end, ce que vous en pensez, quel front-end vous utilisez, et surtout si vous avez de bonnes idées quand à l’utilisation du robot Youpi.

 63 commentaires pour “Youba : release du back-end pour robot Youpi”

  1.  bastien

    bonsoir, jolie petit site et beau boulot sur ce robot. Je suis tombé ici en cherchant des infos sur ce robot, il se trouve que j’en récupère un en début de semaine prochaine.

    Je fais moi même de la machine cnc (fraiseuse 4axes et test de début d’imprimante 3d). Je bosse donc pas mal par le port parallèle.

    Je me suis posé une question, peut être connais tu le logiciel EMC2 sous linux, qui contrôle pas mal de truc, je m’en sert pour mes machines, pour contrôler des servos et autres. J’ai vu des personnes contrôlant un bras robot avec; mais celui-ci avait des servos-moteurs et non des moteurs PAP. Mais EMC2 les gèrent tout aussi bien.

    Dans le logiciel on peut rentrer l’adressage des pins sur le port //. et rentrer les paramètres des moteurs. Crois tu que cela marcherai? Mon projet serais d’interpréter du language machines (Gcode, cartésien X,Y et Z) avec le bras. Il faudrait biensur un script pour convertir tout ça.

    Dès que je l’ai je me met sur youfo et youba et je te tiens au courant.

    Ton back-end me plait beaucoup pour d’autres applications, avec kinects, capteurs, simple joystick et autres. Mais voilà je suis pas un expert en programmation, je vais bien sûre me pencher comme il faut dessus mais peut tu m’expliquer, dans les grandes lignes, la communication entre le joystick et le back-end? tout par du python?

    merci pour ton boulot

  2.  bastien

    juste le mess pour activer la notifications par mail :$

  3.  AlphaK

    Salut. Merci d’apprécier le travail réalisé 😉

    J’ai entendu parler de EMC2, j’ai vu des vidéos notamment de commande de fraiseuse sur DIY Planet http://planet.madeinfr.org/tag/fraiseuse

    D’ailleurs en découvrant cela je m’étais même dit que ça pourrait être sympa de fixer une Dremel sur le Youpi pour usiner des pièces, mais je pense que ça sera vraiment très compliqué de définir un mouvement droit alors que chaque partie du robot se déplace sur un axe rotatif.

    Bref, pour EMC2, je ne connais pas plus que ça et je pense que ça vaut le coup d’investiguer, car avec les coordonnées du port parallèle et le paramétrage des instructions, on peut virtuellement ordonner ce que l’on veut au robot. Cela pourrait peut-être remplacer complètement Youba pour les tâches scriptées.

    Youba a été créé dans le but d’être inter-opérable avec n’importe quel front-end. Le front-end envoie ses instructions par le réseau à Youba dans un langage texte décrit dans la doc de Youba, et le back-end fait le reste, à savoir bufferiser les commandes du front-end, et traduire les commandes texte en données brutes envoyées sur le port parallèle. Donc si tu veux faire communiquer un joystick avec Youba, il faut que tu développes un programme qui « écoute » le joystick, dans n’importe quel langage (sous Linux, Perl ou Python peuvent faire cela très facilement), qui transforme les instructions du joystick en une commande comprise par Youba, et qui envoie cette commande à Youba sur le réseau. Ce n’est pas très compliqué. Bien sûr, le front-end-end et la back-end peuvent être lancés sur la même machine.

    Pour tester facilement des commandes de Youba, indépendamment d’un quelconque front-end, tu peux utiliser nc sous Linux (c.f. les exemples dans la doc de Youba).

    Autre exemple qui pourra t’être utile, comme tu l’as vu j’ai développé dans la foulée mon propre front-end (Youfo) en très peu de temps, c’est du pur javascript/ajax pour pouvoir commander le robot grâce à un navigateur web. Je l’ai mis en download un peu en avant première, n’ayant pas eu le temps de rédiger le billet qui va avec, sur lequel je montre vidéo à l’appui comment s’en servir. Je m’en occuperai la semaine prochaine, mais tu peux bien sûr l’utiliser conjointement avec Youba pour voir comment l’ensemble fonctionne et où se situe la frontière entre les deux applications.

    Bon courage et n’hésite pas à signaler tes avancées sur ce sujet !

  4.  bastien

    salut, désolé pour le retard, je remontais dans le nord pour mes études, j’en ai profité pour récupérer le robot, qui semble en bon état pour son âge. juste un ptit bout de pince à refaire, mais dans tout les cas je pense la remplacer assez vite. Aujourd’hui je me fais le cable et je tente de tester tout ça. je te tiens au courant.

    merci pour ton explication

  5.  AlphaK

    Pas de soucis, tu peux prendre ton temps 🙂
    De mon côté je viens de publier le post et la vidéo sur Youfo, en espérant que ça soit utile.

  6.  bastien

    salut, bon j’ai avancé, le cable est fait, mais j’ai perdu beaucoup de temps sur un vieux pc portable pour installer linux, mais entre temps mon écran m’a laché.. du coup j’ai branché ça sur mon ordi pour mes cnc, mais c’est un vieux unbuntu, je tente d’installer ce qu’il faut. Mais je patoge un peu. Je voudrais juste tenter déjà de tester les moteurs.

    Donc si je comprend bien je fais, dans le terminal (sous linux):
    cd (le répertoire où se trouve le fichier test)
    puis make? quand je le fais il n’arrive pas à monter l’exécutable..

  7.  AlphaK

    Si j’ai bien compris, à ce stade tu es en train d’essayer de compiler robotest.c. Première chose, assure-toi que les packages make, gcc et binutils sont installés sur ton système.
    La compilation se lance effectivement avec make. Si cela ne fonctionne pas, détaille le message d’erreur exact, ou google-le pour avoir des pistes.

  8.  bastien

    salut, en fait c’est mes ordi qui sont à la ramasse, je récupère lundi un portable ibm thinkpad pentium 4 pas trop mal avec un port imprimante tant rechercher. J’y mettrais linux et on retest tout ça. ça va être dure d’attendre.. Je vais quand même tenter de bidouiller mon vieux pc pour faire au moins le test, mais il y a tout à reprendre dessus

  9.  bastien

    salut, bon j’ai remis un ordi en route, petite question pour clarifier un point, niveau cable, il n’y a qu’une prise à recabler? côté robot, ou les deux? merci

  10.  AlphaK

    C’est selon tes possibilités. Recâbler une seule des deux extrémités est suffisant. L’extrémité choisie dépend de la facilité avec laquelle tu peux démonter ou remplacer le capot.
    Au final, la manière importe peu, tant que la broche X en sortie de ton PC est connectée à la broche du même nom sur le Youpi comme cela est décrit page 22 de la documentation du robot.

  11.  bastien

    Salut, bon j’ai avancé, j’ai pu récupéré un ordi, un portable IBM thinkpad assez sympas pour tout ça. bon le cablage est prêt, j’ai installé python, youba et youfo communique sans problème. Le driver est bon, le port est actif et accessible. Mais rien ne se passe, je pense que cela viens du fichier setting.py à modifier peut être pour l’adresse?

    je suis pour l’instent sous XP, trop pressé de tout essayer avant de bidouiller l’ordi pour linux. j’ai donc mis input32.dll dans system32/drivers, c’est bon?

    merci, désolé la partie logiciel soys python c’est pas encore mon fort.

  12.  AlphaK

    Salut
    Dans settings.py, tu peux laisser SERVER_IP=’0.0.0.0′ pour que Youba écoute sur tous les ports.
    Vérifie surtout que le paramètre PARALLEL_PORT a la bonne valeur (l’adresse de l’I/O de ton port parallèle).
    Je ne suis pas certain que inpout32.dll soit chargé dans drivers. Essaie dans c:\windows\system32, puis c:\windows\system, puis c:\windows.
    A chaque test, redémarre Youba, et regarde si le fichier de log de Youba (par défaut youba.log) remonte des erreurs. S’il n’arrive pas à charger la DLL, il le signale explicitement par une erreur au démarrage.

  13.  bastien

    salut, bon j’ai du nouveau, j’ai réussis en touchant les paramètres de mon ordinateur à remettre le port lpt en défaut à l’adresse 0x378. ce qui se passe maintenant, mon robot à des spasmes quand je branche le port parallèles,il tourne sur lui même par a coups. jusqu’à que je lance youba, là tout s’arrête et les moteurs « chantent » normalement. Mais quand j’envoie des ordres au robot rien ne se passe, je vais tenter de bouger inpout32.dll, je pense que c’est lui qui déconne. Sinon je reviserais mon cable demain, avec un autre avec embout clipsé que j’ai retrouvé, l’autre est un cable moulé, il a peut être pas aimé le « démoulage ». Du côté de youba il me confirme toujours l’envoie et la réception des ordes, quelque soit la config. je te tiens au courant

  14.  bastien

    bon j’ai pas trop eu le temps aujourd’hui mais je suis quasi que le soucis viens du cable, en démontant l’autre, je retombe sur tes couleurs à toi, sur celui que j’ai déjà bidouillé, le vert n’est pas le même, un vert foncé qui se ballade par là. La confusion viens aussi du fait que j’ai deux prises femelles donc je met un adaptateur. Sur la numérotation de mes broches j’ai donc deux fois le même ordre, 1 et 14 du même côté. sur le site du robot youpi, et sur ton câblage à toi, ya une foi le 1 et 14 à gauche pour le femelle, et à droite pour la mâle. désolé c’est un peu brouillon, bon du coup je vais cabler le femelle comme il faut, et cabler le deuxième comme le mâle, et bien le repérer. j’ai tout bon?

    Pour la partie qui suivra, pour le logiciel emc de cnc, en fait il faudra écrire un script qui envoi les donné d’initialisation du robot au début, et ensuite cela devrais marcher. Si le cable marche, je m’y met et te montre tout ça. Mais ton programme va me permettre de bien m’amuser et de débloquer pas mal de truc

  15.  bastien

    bon bon nouvelle, ça bouge! tout les moteurs semblent ok, il y a un peu de jeux à rattraper mais je vois le bout!

    je verrais demain, mais je pense que je dois revoir certain adressage, certain bougent à la place d’autres, (le bras au lieux de la pince sur youfo), c’est toujours mon cablage je pense mais je préfère inverser l’adressage. je vais tenter de bouger la vitesse tout ça.

    merci

  16.  AlphaK

    Parfait ! À force de patience et de persévérance, rien d’impossible 🙂
    Et par la même occasion cela confirme le bon fonctionnement du driver LPT intégré à Youba sous Windows.
    Bon courage pour tes prochains tests !

  17.  bastien

    merci surtout à toi! Quel paramètre dois-je changer pour la vitesse? il est encore très lent. je suppose que c’est dans setting.py mais je tâtonne un peu.

    merci à toi

  18.  AlphaK

    La vitesse se paramètre au niveau de chaque commande envoyée à Youba. Youfo a été réalisé pour le concept et n’est pas aussi complet au niveau des options que Youba. Mais Youfo ordonne systématiquement à Youba d’utiliser la vitesse maximale.

    Pour être certain d’avoir la vitesse maximale :
    _ Vérifie dans ton BIOS que le port parallèle est en mode ECP, ou au pire EEP (pas SSP).
    _ Essaie de nettoyer et retendre les courroies du robot (cf le manuel officiel), dégrippe les moteurs et les engrenages.
    _ La charge CPU du PC entre également en jeu : plus le CPU est idle, plus il peut envoyer les octets au robot au bon moment.
    _ Enfin, sur la plupart des systèmes d’exploitation usuels, il est impossible d’obtenir des résolutions de sommeil de grande précision quand celles-ci s’approchent de la milliseconde, ce qui correspond à l’ordre de grandeur de l’intervalle de temps requis par le robot entre l’envoi de deux octets. C’est également intimement lié au matériel. Cela veut dire que tu peux obtenir de meilleurs résultats avec un autre OS, ou un autre PC. Les OS temps réel sont susceptibles de donner les résultats optimaux, mais je n’ai pas eu l’occasion de le tester :
    http://fr.wikipedia.org/wiki/Syst%C3%A8me_d%27exploitation_temps_r%C3%A9el

  19.  bastien

    salut, je suis pas mal occupe, pour l’instent je demonte tout le robot pour faire un bon entretiens. Je me demandai, que fais tu de ton deuxieme robot? tu veux t’en separer?

  20.  bastien

    bonsoir, c’est bon tout marche, le soucis venais juste du port parallèle mal adressé dans linux.. enfin bon c’est beaucoup plus rapide, mais l’envie de tester un noyau temps réelle me titille et je testerai pour voir si une diférence se fait sentir. c’est fou la différence entre window et linux!

    j’ai vu passer le boulot du site du bts, leur projet de joystick, t’a des pistes? il n’y a pas de code ni rien.

    merci

  21.  AlphaK

    Salut,
    * Pour le second robot, il ne me sert pas, je pourrai peut-être m’en séparer. Je te tiens au courant dès que j’en sais plus.
    * Impec, si tu testes avec un OS temps réel je serais curieux de connaître ton ressenti.
    * Aucune piste pour le projet joystick du BTS. Mais avec Youba, on peut développer un front-end joystick en moins de 100 lignes avec Perl ou Python :
    http://pygame.org/
    http://search.cpan.org/dist/Linux-Joystick/Joystick.pm

  22.  AlphaK

    Salut

    J’ai enquêté un peu pour mon second robot, il ne va pas me servir. Je peux te le vendre si tu es toujours intéressé, mais je dois t’avertir qu’il répondait moins bien que le premier quand je l’avais testé brièvement avec robotest. Il me semble qu’il avait du mal sur 2 axes. Je ne peux pas en dire plus pour le moment (je ne l’ai pas sous la main).

    Tiens moi au courant.

  23.  bastien

    salut, j’ai pas mal de boulot ces temps ci, je vais m’y remettre bientôt, pour le joystick et noyaux temps réelle. Pour ton robot je peux être intéressé. tu pense que c’est l’électronique ou les moteurs? donne moi un prix.

    merci

  24.  AlphaK

    Aucune idée sur la cause des petits problèmes rencontré sur certains axes avec le second robot, je n’ai jamais pris le temps d’enquêter. Je peux le vendre pour 20€.

  25.  bastien

    salut, j’ai eu pas mal de boulot ces temps ci, notamment avec ma fraiseuse, mais je me re-penche sur tout ça bientôt, je te le prend à ce prix là, j’ai deux trois pièce qui déconne sur le mien et ensuite des moteur et une électronique pour remplacement, du coup nouveau protocole. tu est d’où toi? (contact moi direct avec mon mail si tu veux, tu dois l’avoir dans inscription, sinon disturboys@hotmail.com)

    merci

  26.  AlphaK

    Une précision par rapport à la question sur le Joystick : je commence à envisager l’idée de faire un front-end minimaliste pour permettre un pilotage par clavier et joystick, juste pour le fun et accessoirement pour montrer à quel point la tâche de réalisation du front-end est facilitée lorsqu’on a déjà Youba en back-end.

    Mais bon, faut être honnête, c’est clairement pas ma grosse priorité du moment. On verra dans un mois ou deux si les choses ont évolué concernant cette partie.

  27.  jm daubard

    bonjour …. c’est sympa de voir vivre ce robot après tant d’année ….. c’est moi qui l’avait réalisé et commercialisé avec jdproductique …. jusqu’au 12 juillet 1994 …. presque 20 ans deja … si je peux vous etre encore utile … si je peux vous aider …. ce serait avec plaisir …
    en tout cas ça me fait vraiment plaisir de voir qu’il vit encore …. j’avais aussi fabriqué une fraiseuse … enfin deux modèles … un modèle avec une électronique proche de celle du robot .. à savoir utilisant la liaison parallèle du PC et une version avec une liaison série et un microprocesseur nec V 25
    merci à tous …. de bons souvenirs ….
    amicalement …
    JM D

  28.  cosmos

    Bonjour,

    Je voudrai prendre contact avec vous au sujet des potentialités du robot que vous avez conçu.

    Cosmin

  29.  cosmos

    AlphaK,

    Un truc que je ne comprends pas, qui n’arrive que lorsque je tente une commande ou plusieurs moteurs agissent en même temps.

    lorsque j’envoie la commande:

    sendyoupi ‘C!W!2,L,D,30,1|1,R,D,30,1’

    le moteur 3 se met aussi en mouvement, mais de 60 degrés.

    J’ai éssayé de nombreuses combinaisons comme:

    sendyoupi ‘C!W!3,N,U,0,1’
    sendyoupi ‘M!N!2,L,D,30,1|1,R,D,30,1’

    mais rien n’y fait,

    le moteur 3 semble additionner le nombre de degrés.

    Une idée?

  30.  AlphaK

    @jm daubard : bravo à vous d’avoir conçu ce robot dont de nombreux modèles ont su résister au temps et susciter la curiosité de nombreuses personnes. Et merci pour votre support.

    — — — — — —

    @cosmos : j’ai mis un peu de temps à comprendre, j’ai vérifié le dump des commandes envoyé au robot… Pas d’instructions sur le moteur 3 avec la commande ‘C!W!2,L,D,30,1|1,R,D,30,1’. Et puis finalement, j’ai eu une petite idée. Je crois que le phénomène que tu décris est normal, et qu’il est même susceptible d’apparaitre avec un seul moteur.

    Quand on donne un ordre au robot de bouger certains moteurs proches de la base, le robot bouge aussi automatiquement d’autres moteurs proches de la pince, pour qu’elles conservent le même angle. Ceci est visible dans ma vidéo au dessus :

    À 0’25 », la pince vient de serrer le tube en plastique. La pince est parfaitement orthogonale au plan de travail. Puis le bras (moteur 1) remonte de 30°. Si aucun autre moteur n’était actionné, alors on devrait voir la pince totalement solidaire du bras s’incliner aussi de 30° par rapport au plan de travail. Mais la pince reste orthogonale au plan de travail lors de la remontée du bras, alors qu’aucune instruction n’est donnée à d’autres moteurs. C’est lié au fait que le robot ordonne un mouvement au poignet pour compenser la levée du bras, jusqu’à 0’28 ».

    Le même phénomène est observé lors de la descente du bras de 0’32 » à 0’34 ».

    Il n’y a donc rien à faire, à part compenser pour certains gestes les moteurs que tu souhaites voir rester solidaires du reste de la structure par un contre-ordre, par exemple :
    sendyoupi ‘C!W!2,L,D,30,1|1,R,D,30,1|3,L,D,60,1’ ou ‘C!W!2,L,D,30,1|1,R,D,30,1|3,R,D,60,1’ selon la direction souhaitée par le moteur 3.

  31.  Hobo.W

    Salut, je travaille dans un collège et je viens de trouver au fin fond d’un local de techno remplie de vieillerie, sous un drap, un bras robot youpi qui as l’air en parfait état de conservation !

    Je tente aussi l’aventure de le faire fonctionner à nouveau ! ^^

  32.  AlphaK

    Félicitations ! L’aventure est pleine de rebondissements mais elle peut être également très gratifiante 🙂

  33.  Hobo.W

    Cest bien parti ! J’ai réussi à faire fonctionner le robotest, ça marche nikel ! Juste besoin d’un coup de degripant car ça grince un peu ^^

    Par contre, pas vraiment un expert linux, j’ai vraisemblablement des soucis avec l’installation de portIO :/

  34.  Hobo.W

    Bon finalement réussi, je n’avais pas installé la version dev de python ^^
    back end et front end fonctionnels !

    Puis je créer un tutoriel complet de remise en état de marche du robot Youpi grandement inspiré des informations tiré ici. ? Bien sur, avec lien de ce blog et de toutes les sources que j’ai utilisé.

  35.  AlphaK

    Bien sûr, les retours d’expérience de tout le monde constituent des informations précieuses pour tous ceux qui souhaitent tenter la même aventure 🙂
    N’hésite pas à nous faire parvenir le lien vers ce tuto !

  36.  Laurent.M

    Bonjour,

    Un très grand merci pour votre site ! J’ai retrouvé un robot Youpi dans le placard d’un collège, au début je n’ai pas réussi à compiler Robot Test avec Windows XP, j’ai laissé tomber et je suis directement passé à Youba 1.4 et Youfo, tout fonctionne parfaitement. J’ai juste une petite question, je n’ai pas compris comment envoyer par exemple le code ci-dessus:

    #!/bin/bash
    function sendyoupi {
    echo « $1 » | nc localhost 12080
    }

    # Positionner le bras au-dessus du tube
    sendyoupi ‘C!W!0,R,H,750,1|1,L,H,999,1|2,R,H,4332,1|3,L,H,7334,1|5,R,H,2000,1’
    # Serrer la pince
    sendyoupi ‘A!W!5,L,D,80,1’
    # Lever le bras
    sendyoupi ‘A!W!1,R,D,30,1’
    # Tourner la base de 60°
    sendyoupi ‘A!W!0,L,D,60,1’
    # Baisser le bras
    sendyoupi ‘A!W!1,L,D,30,1’
    # Desserrer la pince
    sendyoupi ‘A!W!5,R,D,80,1’
    # Revenir en position de départ
    sendyoupi ‘A!W!A,I,S,1,1’

    Youfo me génère également un code de la même façon mais même en lisant le README, je ne comprends pas comment l’envoyer :$

    Et encore merci, c’est vraiment super de remettre des outils pédagogiques tel que ce robot !

    Bonne soirée 🙂

  37.  Hobo.W

    Laurent.m >> c’est à exécuter dans un terminal. Tu copie comme direct ou tu colle dans un script que tu exécute.

  38.  AlphaK

    C’est ça 🙂
    En précisant que ce sont des instructions à exécuter dans un terminal sous Linux.
    Si tu es en environnement Windows, cela devrait en principe pouvoir être exécuté dans un émulateur de terminal Linux, du type Cygwin (à installer avec le package netcat).

  39.  Hobo.W

    ça me fait penser, pour ceux qui l’utilise sur linux, il n’est pas possible de créer un bouton en dessous du textarea pour exécuter directement le script depuis la page web ? :p

  40.  AlphaK

    On pourrait effectivement envisager une fonctionnalité de ce type, cela n’est pas très difficile à implémenter.
    Si j’ai un peu de temps disponible, je le ferai d’ici 2 semaines.

  41.  Laurent.M

    Merci beaucoup pour vos réponses. J’ai essayé de mettre Cygwin c’est un peu trop farfelu, je vais opter pour Linux si j’arrive à le mettre avec ce (très) vieux PC.

    Sinon un petit conseil, au début mon Youpi avait beaucoup, beaucoup de mal à monter, il savait parfaitement descendre sur la plupart des moteurs mais quand il s’agissait de monter, la catastrophe, je devais l’assister avec ma main.
    J’ai été chez Brico dépôt, et j’ai acheté du « Lubrifiant au silicone », je l’ai appliqué et depuis ce temps, c’est splendide tout fonctionne. Il ne me reste plus qu’à réparer la main du robot, une petite patte en plastique est cassé, elle est très difficile à recoller.

  42.  AlphaK

    Merci pour ce retour et le conseil d’entretien 🙂
    Les éléments de transmission grippés sont relativement fréquents lorsqu’on ressort un vieux Youpi du placard après de nombreuses années de sommeil. J’ai eu le même problème sur les 2 robots que j’ai pu avoir sous la main. Mais il est rassurant de savoir que l’entretien nécessaire n’est pas si difficile 🙂

  43.  AlphaK

    Allez, c’est mon cadeau du 14 juillet !
    Youfo est dispo en version 1.1 avec le bouton demandé par Hobo.W pour rejouer le script du textarea.
    Notez que ça fonctionne aussi sous Windows (si si, car ça ne lance pas un script shell mais ça repère les commandes pour le back-end dans le textarea et ça les envoie à Youba de manière traditionnelle)
    Téléchargement ici : http://www.alphak.net/news/telechargements/

    Enjoy !

  44.  Hobo.W

    AlphaK >> Wouah, super cadeau ! Un très très très grand merci à toi !!!
    Bon malheureusement c’est les vacances depuis vendredi midi pour moi donc je ne pourrais testé ça qu’à la rentré :'(

    Et plus, un peu avant que je parte je fais joujou une dernière fois et me rend compte que la base du robot ne tourne plus, ça coince 🙁

  45.  Laurent.M

    Merci AlphaK, j’essaie dès demain !
    C’est un beau cadeau !

  46.  Duke77

    Bonjour,

    Un an sans activité sur cette partie du site… Je déterre!

    J’ai un youpi bien poussiéreux que j’aimerai faire fonctionner. J’ai donc atterri très vite sur ce site. Je n’y connais rien en programmation si ce n’est quelques notions de html. C’est pourquoi j’ai vite abandonner d’executer le robotest car je ne comprend pas comment ça marche. J’ai copié-collé le premier fichier dans la fenêtre de Python et enregistré sous le non « robotest.c » mais je ne sais pas à quoi sert le 2e petit programme après. :-/

    J’ai donc décidé de passer direct à l’interface html youfo. Mais mon robot ne bouge pas d’un poil. Je signal également qu’il émet un fort bruit assez strident à la mise sous tension. Est-ce normal. J’ai bien lu qu’il devait grésiller mais la c’est plutôt fort et je ne me souviens pas qu’il faisait ce bruit il y a 20 ans quand je l’utilisais en cours de techno…

    Bref, je souhaite rassembler en quelques lignes « pour les nuls » ce qu’il y a à faire pour utiliser youpi avec la super interface youfo (au passage merci AlphaK!).

    Si j’ai tout suivi, sous windows XP:
    1/ réalisation du câble parallèle modifié
    2/ téléchargement de outpout.dll à ajouter dans le répertoire système de windows
    3/ téléchargement et installation de python
    4/ vérification du port LTP dans le bios : idéalement ECP sur 378
    5/ vérification du port LTP dans windows : 378 (drivers OK et pas de conflit d’IRQ etc.)
    6/ Lancer youba.py et youfo.html
    7/ Enjoy!

    Ça paraît simple, mais chez moi, ça marche pas…
    Lorsque je lance youba.py, une fenêtre du terminal windows s’ouvre et m’indique que la vitesse du robot n’est pas garantie à son maximum et que le server Youba est bien démarré.
    Si je clique sur un des boutons de l’interface Youfo, je vois bien appraitre les lignes de commande correspondantes. Par exemple, si je veux serrer la pince, le terminal affiche : Command sent from [127.0.0.1]: [C!W!5,R,U,1,1]
    OK – command from 127.0.0.1 received correctly

    Mais aucune réaction du robot, quelque soit la touche actionnée.

    Ai-je loupé quelque-chose?

  47.  AlphaK

    Bonjour.
    Alors reprenons :

    Robotest est un programme écrit en C pour Linux, il n’a aucun rapport avec Python. Le second fichier fourni avec robotest.c est un fichier makefile, il sert à indiquer au compilateur comment transformer le code source en code machine exécutable. Pour compiler robotest.c sous Linux, il faut les packages adéquats (gcc, binutils, make), et il faut taper « make » dans le répertoire du fichier .c.

    Le bruit émis par le robot sous alimentation, fort et continu, me semble normal. Les deux exemplaires en ma possession ont toujours grésillé fortement, même au repos.

    Au sujet de l’utilisation de Youba/Youfo :
    Le message de Youba indiquant que le vitesse n’est pas garantie est parfaitement normal. Je l’ai aussi sur les machines que j’utilise. Aucune crainte à avoir de ce côté là.
    Les messages affichés ensuite indiquent que la communication Youfo / Youba est fonctionnelle.
    Par contre Youba n’a aucun moyen de savoir si sa propre communication avec le robot est fonctionnelle, le robot étant un simple récepteur des instructions envoyées par Youba. Youba peut uniquement indiquer un défaut d’ouverture ou d’écriture au niveau du port LPT.

    Le problème se situe donc après Youba. Les causes peuvent être les suivantes :
    – Port LPT inaccessible (en principe détecté par Youba, mais l’erreur est humaine).
    – Port LPT incorrect (s’il n’y en a qu’un, peu probable également).
    – Câble parallèle mal réalisé / défectueux. Vérifier le brochage et les soudures sur les 2 connecteurs.
    – Robot Youpi défectueux (électronique grillée).
    – Robot Youpi grippé / physiquement bloqué (entretien / dégrippage nécessaire).

    Une indication complémentaire : lorsque le robot tente l’exécution d’un mouvement même infime, le grésillement émis par celui-ci change de manière audible (excepté la pince qui est plutôt silencieuse). Pas de différence audible signifie probablement un problème soit sur l’électronique du robot, soit au niveau du câble parallèle.

  48.  Hobo.W

    J’avoue j’avoue, j’ai dis que je rédigerais un tuto mais j’ai parlé trop vite, j’ai jamais eu le temps… Mea culpa :$

  49.  lotusraj

    Bonjour !
    Je découvre ce site avec beaucoup d’intérêt, car, moi aussi, j’ai déterré un robot Youpi du placard du fond de la réserve du collège… Il n’a probablement jamais servi. Je suis très tenté de le faire marcher. Etant possesseur d’un Raspberry Pi, je me demande tout à coup si ce ne serait pas sympa de pouvoir contrôler le robot à distance, en Wifi, par l’intermédiaire du Rasp. Je vais déjà tenter de faire fonctionner « basiquement » le robot et on verra plus tard. Si tout fonctionne sur Linux, il n’y a aucune raison que ça ne marche pas avec le rasp. Le seul problème que je vois, c’est moi, qui débute totalement en linux : )
    A bientôt, et bravo pour votre site.

  50.  AlphaK

    Bonjour et bienvenue au club des possesseurs de Youpi !
    Je pense que le Rasp a ses chances. Je ne suis pas sûr que pour pourrez le connecter directement au GPIO du Rasp (je n’ai pas eu le temps de tester le mien), mais avec un adaptateur USB vers parallèle cela devrait être transparent et vous devriez en principe pouvoir utiliser Youba directement.
    Bon courage et n’hésitez pas à nous communiquer vos avancées !

  51.  lotusraj

    Salut
    Je donne quelques nouvelles de mon Youpi : j’ai réussi à le faire tourner sous windows (gràce au site http://www.clg-vignaud-morangis.ac-versailles.fr/spip/spip.php?article243, ayant un vieux xp sous la main. Je sens que le robot a un peu de mal à tourner. Je retenterai un nettoyage en profondeur. Prochaine étape, installer une distrib linux à la place du vieil xp. Quelle distribution me conseillez-vous sachant qu’au final, je compte utiliser le Raspberry avec Raspbian (issue de Debian) ? Je n’ai presque aucune expérience sous linux, à part ce sue j’ai fait depuis que j’ai reçu ma framboise. A bientôt.

  52.  AlphaK

    Si au final vous utiliserez Raspbian sur le Rasp, alors je vous conseille d’utiliser Debian pour le PC, ainsi vous serez en territoire connu. Debian est une excellente distribution avec une grande communauté d’utilisateurs, dont de nombreux francophones, je l’utilise au quotidien sur des serveurs à titre personnel et professionnel.

  53.  roiron

    J’ai réussi à faire « bouger » YOUPI en utilisant une carte UNO Arduino. Un programme très simple permet d’envoyer la trame sur l’octet de sorties de l’arduino. Rafraichissement tous les 7ms. 6 boutons poussoirs, un pour chaque moteur, 1 bouton poussoir pour le sens.
    Je tiens à disposition plus d’informations pour ceux que ça intéresserait.

  54.  roiron

    Je souhaiterais trouver une pièce de rechange pour le robot YOUPI.
    petite pièce en forme de Fourche métallique qui vient translater sur le dernier axe de la pince (entrainé lui-même par le dernier moteur.

    Si quelqu’un peut me donner des infos pour récupérer cette pièce ? peut être M. jm daubard ?

  55.  El_Davidou

    Bonjour AlphaK,
    je suis prof de techno en collège et aimerais remettre en route un vieux Youpi trouvé dans une poubelle.
    Déjà un grand bravo pour le travail effectué.
    Je rencontre des difficulté pour installer Python 2.6 dans mon dossier utilisateur
    je suis sous mint j’ai déjà une version de python installée par défaut avec mint
    mais quand j’essaye d’installer portio j’ai un message d’erreur qui me dit que python n’est pas installé dans le bon dossier.

    La question est quelle version de Python et de PortIO faut il installer et comment les installer correctement pour faire tourner ton logiciel

    J’ai le robot, je termine le câble ce soir, j’ai trouvé un vieux portable DELL avec un port // un centrino et 512 Mo de RAM sur le quel j’ai installer une Mint 17.3 ça rame un peut mais ça devrait faire l’affaire.

    Merci d’avance

    David

  56.  AlphaK

    Bonjour,
    S’il y a déjà une version de Python installée sur le système, le mieux est d’utiliser celle-ci. L’installation de Python dans un dossier utilisateur est peut-être possible mais c’est probablement aussi plus compliqué, à fortiori avec des modules additionnels.

    Youba a été testé sur une version 2.7 donc c’est ce que je recommande. Youba ne fonctionnera pas sur Python 3. PortIO nécessite une version de Python >= 2.6.

    Donc tout dépend de la version de Python installée sur le système :
    En lançant juste « python » à l’invite de commande tu verras de quelle version il s’agit.
    – Si c’est < 2.7 le mieux est de voir si tu peux mettre à jour en 2.7. - Si c'est 2.7.x il faut installer PortIO (en root) - Si c'est 3.x il faut installer une 2.7 en parallèle, c'est probablement faisable via le gestionnaire de packages, Python v2 et v3 peuvent être installés simultanément sur une même plate-forme, mais il faut faire attention à lancer Youba avec l'exécutable de la v2 (en donnant le chemin complet de l'exécutable python si nécessaire). Idem si tu dois installer PortIO avec Python v2 et v3 en même temps, assure toi que c'est l'interpréteur v2 qui est appelé au moment de lancer le setup.py.

  57.  El_Davidou

    Bonjour AlphaK,
    Merci pour ta réponse
    J’avance doucement mais ne suis pas un expert du terminal sur linux…

    j’ai installé la version 2.7 de python dans mon dossier perso à partir du fichier Python-2.7.13.tar.xz
    tout semble marcher
    Si je tape « python » dans un terminal c’est bien la 2.7 qui est chargée

    mais je bloque sur l’installation de PortIO
    J’ai décompressé l’archive et l’ai placé dans le dossier « Python-2.7.13 »

    Voici le message à la fin de l’installation :

    davidou@youpi-robot ~/Python-2.7.13/portio-0.5 $ sudo python setup.py install
    [sudo] password for davidou:
    running install
    running build
    running build_ext
    building ‘portio’ extension
    creating build
    creating build/temp.linux-i686-2.7
    i686-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -DMAJOR_VERSION=0 -DMINOR_VERSION=5 -I/usr/local/include -I/usr/include/python2.7 -c portio.c -o build/temp.linux-i686-2.7/portio.o
    portio.c:32:20: fatal error: Python.h: Aucun fichier ou dossier de ce type
    #include « Python.h »
    ^
    compilation terminated.
    error: command ‘i686-linux-gnu-gcc’ failed with exit status 1

    Merci d’avance

    David

  58.  El_Davidou

    Ça y est ça marche
    je n’avais pas installer Python correctement.

    Le robot marche au poil, j’ai le moteur de la pince qui est HS, je vais essayer de le changer.

    Merci beaucoup pour ton travail, c’est vraiment bien.

    David

  59.  AlphaK

    Super nouvelle !
    Et c’est toujours agréable de voir que ce qui a été réalisé sert à d’autres personnes.

    Une petite nouvelle au passage, ça fait longtemps que j’ai en tête de développer un frontend pour piloter le Youpi à la manette de jeu. J’avais un peu la flemme ces derniers mois, mais la motivation est en train de revenir, surtout dans la mesure où ça ne représente pas un travail énorme. Avec un peu de chance, ça pourrait être prêt dans les prochaines semaines.

  60.  Hobo.W

    Hâte de tester ça !

  61.  AlphaK

    Deux nouvelles d’un coup, une bonne et une bonne, alors je commence par la bonne.

    La bonne nouvelle : Youfo est maintenant disponible en v2.0. Cette version améliore sensiblement le temps de réaction avec Youba. Le développement de cette version est en réalité terminé depuis longtemps, mais à cause d’un oubli, la mise à jour n’a jamais été publiée.

    La bonne nouvelle : l’interface permettant le contrôle au gamepad, nommé Youga, est disponible. Le détail sur ce nouveau programme est visible ici.

  62.  Duke

    Bonjour,
    J’ai récupéré un robot youpi. La carte produit un sifflement quand je le mets sous tension. Je n’ai pas été plus loin. La plupart des liens sont morts, notamment celui vers le lycée. C’est dommage.
    Que conseillez-vous pour commencer. Changer la carte pour une solution plus récente ou simplement le renouvellement des condos afin de tenter de resciter l’ancienne?

    Cdt,

  63.  AlphaK

    Bonjour,
    ça dépend de tellement de choses… Si vous arrivez à identifier le ou les composants qui sifflent, pourquoi pas les remplacer. Sachant que pour ma part dès qu’il est sous tension, le robot émet un sifflement très perceptible, que je n’ai jamais cherché à identifier ni à corriger. Est-il possible que la carte permette le fonctionnement des moteurs malgré le sifflement ?
    Dans tous les cas, attention si vous tentez de lancer une commande moteur à partir du port parallèle d’un PC, j’ai cru comprendre que ce type de port n’était en général pas ou mal protégé contre les surtensions ou surintensités.

 Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.