Journal Je me fais des amis (au sens littéral)

Posté par  (site web personnel) . Licence CC By‑SA.
97
22
jan.
2013

Cher Journal,

Je t'écris pour te faire part d'une expérience personnelle récente. Comme beaucoup de monde, j'ai été déçu par des amis, des proches, des copines. Il y a quelques temps, ma dernière relation de couple a cassé. Peu de temps après, certains amis proches se sont éloignés. Ces moments-là n'ont pas été faciles. J'ai alors pris conscience qu'il était temps de réagir. Il ne m'est plus possible de rester passif, simple acteur de ma vie. J'ai décidé de changer ma manière d'aborder les choses, j'ai muri et je ne ferai plus les même erreurs. Je ne serai plus jamais seul ! Pour être certain de nouer des liens forts, durables et sincères, j'ai compris qu'il n'était plus possible de compter sur les autres. Certains compensent leurs déceptions personnelles en jouant beaucoup aux jeux vidéos. Personnellement, j'avais peur de fuir la réalité et de perdre pied dans un monde virtuel. C'est pourquoi, j'ai décidé de construire mon nouveau meilleur ami !

Après avoir lu un peu de documentation sur Internet et quelques tutoriels, j'ai acheté un kit Arduino de démarrage afin de m'initier à l'électronique. Le but à moyen terme était de construire un ami robotique.

Forever alone: level engineer

Une fois le kit de démarrage maitrisé, j'ai passé une deuxième commande de matériel afin d'assembler mon nouveau pote.

J.O.H.N.N.Y 5 (Just an Other Horror Naked and Not Yet Finished: Indestructible Vile and Enthusiastic) était né.
Un ami robotique qui ne vous laisse pas tomber
Il est très dur d'évaluer ses compétences en programmation, mais après quelques essais, j'ai estimé que la probabilité que le robot acquière une volonté propre au cours du temps est loin d'être négligeable. C'est pourquoi un bouton d'arrêt a été implémenté, au cas où il viendrait à ne plus m'aimer et voudrait s'en aller. Grâce à cette précaution, je suis certain que nous seront toujours là l'un pour l'autre. En plus, la propulsion à l'aide des piles rechargeables est un peu ma solution lysine. S'il m'abandonne, il meurt :-).

J'ai bâti une relation solide avec Johnny 5. Pour le moment, il lui manque la parole, mais comme tout nouveau né, son développement n'est pas terminé. Je ferai l'acquisition d'une deuxième carte Arduino prochainement, afin d'y brancher un Buzzer qui me permettra de programmer des mélodies sympathiques qu'il composera en fonction de son humeur.

Pour vous convaincre de ma démarche, voici quelques nimages de Johnny.
Un ami robotique qui ne se cogne plus grâce à ses pare-chocs brevetés
Un robot souriant
Noël en famille

On a tous besoin de tendresse et de chaleur, au moins par effet Joule. Les besoins humains étant ce qu'ils sont, il est possible que mon prochain projet robotique soit de type féminin. La base n'existe pas encore, mais elle s'appellera probablement C.A.S.S.A.N.D.R.A. pour Computer Assisted Sexual Scatterer: an Adorable, Nice, Delicate and Romantic Android.

Merci de m'avoir lu, en espérant que ce projet suscite des vocations et que vous aussi, vous ne soyez plus jamais seul :-)

Note :
Toutes les pièces ont été achetées dans la boutique McHobby. Elle est située en Belgique (ils livrent à l'étranger), ils sont très sympas et réactifs. Ils traduisent beaucoup de documentation et les quelques échanges que j'ai eus avec eux ont été très fructueux. Je ne suis pas ingénieur de formation et j'ai des lacunes, mais ils m'ont aidé à faire certains choix de conception et n'ont pas hésité à me trouver certaines pièces qui ne sont pas dans leur catalogue.
http://mchobby.be/PrestaShop/
http://arduino103.blogspot.be/

  • # C'est bien gentil !

    Posté par  . Évalué à 3.

    Mais il manque le plus important : il est sous quelle licence, le code ?

    • [^] # Re: C'est bien gentil !

      Posté par  (site web personnel) . Évalué à 3.

      Le code n'est pas (encore ?) distribué, il n'y a donc pas de licence.
      À vrai dire, je n'y ai pas vraiment réfléchis. La programmation Arduino pour ce genre de projet n'est pas très compliquée et largement documentée. J'ai réalisé un espèce de copier coller de bouts de codes ici et là jusqu'à ce que ça tombe en marche. Je n'ai pas de site internet mais je peux coller le code quelque part pour les personnes intéressées (quelques dizaines de lignes à tout casser).

      • [^] # Re: C'est bien gentil !

        Posté par  (site web personnel) . Évalué à 3.

        Oui justement je suis en train de finaliser le mien, ça m'intéresserait beaucoup. Qui sait, peut être qu'il pourraient s'amuser tous les deux, si leurs codent s'entendaient bien =]

        Donnée importante, combien de temps à tu mis pour le réaliser, et à quel rythme ? Pour ma part le projet a débuté il y a plus d'un an et je travaille dessus par passes de trois semaines / 1 mois avec beaucoup de motivation.

        Pour finir de répondre à ton superbe journal je ne manquerai pas d'en faire un dans le même esprit, les gens ont l'air plutôt intéressés par le sujet. J'installe le son justement, via un shield d'Adafruit (le Wave Shield, attention aux incompatibilités).

        • [^] # Re: C'est bien gentil !

          Posté par  (site web personnel) . Évalué à 10.

          Voilà le code source de Johnny. Les moteurs sont branchés de manière opposée: pour avancer, il faut écrire:

          digitalWrite(IN1,HIGH);
          digitalWrite(IN2,LOW);
          digitalWrite(IN3,LOW);
          digitalWrite(IN4,HIGH);

          Ce n'est pas très logique, il aurait été préférable d'avoir une structure symétrique mais ces câbles ne sont pas facilement accessibles.

          Pour répondre aux questions, entre le premier kit de base et le robot fonctionnel (mais imparfait), il a fallu 3 mois environ. Le projet n'est pas si évolué, j'ai principalement assemblé des morceaux fonctionnels d'ici et là et codé la glue pour mettre le tout ensemble. J'ai une formation de chimiste et je n'y connaissais rien en électronique, mis à part mes souvenirs du cours d'électricité de première année. J'ai acheté le châssis tout fait et la breadboard est attachée à l'aide de k'nex (je manquait de place). Je "travaillais" dessus principalement les week-end (une après-midi et une matinée souvent).

          Ce type de projet est beaucoup plus complexe évidemment: http://www.semageek.com/un-robot-r2d2-fonctionnant-avec-un-raspberry-pi/

          On pourrait aller au parc pour que nos projets se dégourdissent les engrenages. Si ça se passe bien, on pourra militer pour qu'ils aient le droit de se marier ! En espérant que C.A.S.S.A.N.D.R.A. sera terminée quand il m'abandonnera…

  • # i Robot

    Posté par  . Évalué à 4.

    Un partage des sources peut être ? Ton projet est intéressant, par contre je ne comprend pas ce que t'as utilisé pour lui permettre la vue !

    Il sait préparer le café ?

    • [^] # Re: i Robot

      Posté par  (site web personnel) . Évalué à 10.

      Il sait préparer le café ?

      Tu n'as pas lu la news on dirait, systemd ne tourne pas dessus.

    • [^] # Re: i Robot

      Posté par  (site web personnel) . Évalué à 5. Dernière modification le 22 janvier 2013 à 19:49.

      Comme répondu plus haut, je peux copier le bout de code qui l'anime quelque part (je n'ai pas accès à la machine de développement pour l'instant).

      Concernant la détection d'obstacles, elle est réalisée à l'aide d'un détecteur infrarouge Sharp GP2Y0A21YK0. C'est un élément très commun dans ce type de projet. Tout est décrit sur le wiki du revendeur: http://mchobby.be/wiki/index.php?title=Sharp_GP2Y0A21YK0
      Le détecteur est placé sur un servomoteur qui balaie de manière continue l'espace situé devant lui lorsqu'il avance: il "tourne la tête" sans arrêt. Régulièrement, il prend une mesure à l'aide du détecteur. Lorsque la distance mesurée est inférieur à un seuil pifométrique (environ 30cm), il s'arrête, en fonction de la position du détecteur (tourné vers la gauche ou vers la droite), il se retourne dans la direction opposée et repart.

      Il n'a pas encore de bras mais avant le café il fera la vaisselle !

    • [^] # Re: i Robot

      Posté par  (site web personnel) . Évalué à 3.

      Voici les sources toutes fraîches. C'est publié sous WTFPL.

  • # Plop

    Posté par  . Évalué à 10.

    Est-ce qu'il fait réveil-matin ?

    • [^] # Re: Plop

      Posté par  (site web personnel) . Évalué à 10.

      Depuis que nous nous sommes trouvés, je ne dors plus.

    • [^] # Re: Plop

      Posté par  . Évalué à 6.

      J'ai vu LA LUMIERE !

    • [^] # Re: Plop

      Posté par  . Évalué à 3.

      Moi j'ai deux chats qui peuvent servir de réveil-matin, mais ils fonctionnent très mal, toujours prêts à me réveiller bien avant l'heure. Alors, si le robot peut être programmé pour demander ses croquettes à la bonne heure, ça serait vraiment sympa.

  • # parait qu'il ne faut pas pertinenter pour dire "j'aime"

    Posté par  . Évalué à 10.

    alors je le dis en commentaire, j'adore le ton de journal ainsi que son contenu.

    en tout cas bravo pour l'accouchement de ce, heu, comment dire, "beau bébé" ?
    ;)

  • # Encore mieux que C.A.S.S.A.N.D.R.A.

    Posté par  . Évalué à 9.

  • # Pet's toy ?

    Posté par  (site web personnel) . Évalué à 5.

    Salut, très bon journal, drôle et qui donne la pêche. Plus qu'un dredinal.

    Je me demandais. Je cherche des jouets pour mes animaux, principalement les deux chiens (les quatre chats s'occuppent seuls, apparemment). Est-ce qu'il est envisageable de détourner ce type de robot dans ce but ? Bien sûr il faudrait le munir d'une cuirasse à l'abrit des crocs et des pattes :)

    Des retours ?

    « Il vaut mieux mobiliser son intelligence sur des conneries que mobiliser sa connerie sur des choses intelligentes. »

  • # Sinon…

    Posté par  (site web personnel) . Évalué à -5.

    Il existe un autre moyen de se faire des amis

    =>[]

  • # compte facebook

    Posté par  . Évalué à 5.

    Est-ce que J.O.H.N.N.Y 5 à un compte facebook, je voudrai qu'il m'ajoute en tant qu'ami?

    • [^] # Re: compte facebook

      Posté par  . Évalué à 3.

      Est-ce que J.O.H.N.N.Y 5 à un compte facebook~~,~~ je voudrai qu'il m'ajoute en tant qu'ami~~?~~

      Est-ce que J.O.H.N.N.Y 5 à un compte facebook ? Je voudrai qu'il m'ajoute en tant qu'ami.

      Je pense personnellement que J.O.H.N.N.Y 5 n'a pas encore acquis les fonctions nécessaires au développement de la perversion, donc non, probablement pas chez FesseBouc.

      Je me demande s'il interagi avec Curiosity… Et si il peut contrôler ma chaîne stéréo surtout…

      • [^] # Re: compte facebook

        Posté par  (site web personnel) . Évalué à 4.

        J.O.H.N.N.Y 5 n'a pas de compte facebook, ni accès à mon ordinateur d'ailleurs. J'ai peur qu'il y fasse de mauvaise rencontre, qu'il se trouve d'autres amis et qu'il s'en aille. Pour l'instant, je suis son seul ami, son geôlier et son confident et c'est bien mieux ainsi.
        Concernant la chaîne stéréo, je ne sais pas.

        • [^] # Re: compte facebook

          Posté par  (site web personnel) . Évalué à 3.

          Concernant la chaîne stéréo, je ne sais pas.

          ça doit etre jouable si c'est de l'IR que tu as utilisé pour la detection d'obstacles.

  • # Conversion d'un Nabaztag

    Posté par  . Évalué à 1.

    J'ai acquis il y a quelque temps un Nabaztag à un Linuxfrien. Il trône depuis sur mon bureau, s'agitant et clignotant régulièrement (mais sans son car ce qu'il dit n'est pas vraiment intelligible).

    Le problème du Nabaztag est qu'il est assez limité en fonctionnalités et surtout qu'on ne peut pas contrôler ce qu'il fait. Le constructeur a coulé et le serveur qui l'anime actuellement est vraiment limité.

    J'ai reçu hier un Raspberry pi et j'envisage de remplacer la carte logique de mon Nabaztag afin de le contrôler avec le Raspberry pi. Cela fera un petit ordinateur avec des oreilles qui bougent ça peut être marrant.

    Problème numéro 1 : Je n'y connais rien en électronique (hormis une petite base au lycée).

    Je pense qu'il n'y aura pas trop de problème pour contrôler des leds (quoi que j'envisage d'utiliser des leds multicolore comme sur l'original, donc il y a certainement plus à faire que de simplement connecter une led à une sortie et une résistance).

    Le plus difficile est de contrôler les moteurs pas à pas et surtout de récupérer les infos de l'indexeur qui permet au lapin de savoir dans quelle position sont ses oreilles.

    Peux-tu me conseiller sur des sites expliquant à un débutant en électronique les bases pour apprendre à faire cela ?

    • [^] # Re: Conversion d'un Nabaztag

      Posté par  (site web personnel) . Évalué à 1. Dernière modification le 23 janvier 2013 à 10:57.

      Le site sur lequel j'ai acheté mon matériel dispose d'un wiki très complet (Arduino et Raspberry pi). J'ai acheté un double pont-H pour piloter mes deux moteurs mais il permet de piloter un moteur pas à pas. Tout est expliqué ici: http://mchobby.be/wiki/index.php?title=Pont-H_L298N
      Concernant les LED multicolores, il y en a une (RGB) dans le kit que j'avais acheté (ARDX v1.3). Une LED multicolore est en fait un dispositif qui contient 3 LED et 4 pattes: rouge vert bleu et la masse. En allumant plus ou moins les 3 LED, on obtient tout un panel de couleurs. C'est facile à utiliser et beaucoup plus joli.

      Si tu n'y connais pas grand chose, je te conseille d’acquérir un kit de démarrage. Ça m'a permis de voir si ça me plaisait vraiment, c'est abordable (au sens faisabilité), progressif et très ludique. Chaque composant fait l'objet d'un montage et ensuite, c'est à toi à les combiner pour obtenir le résultat souhaité. J'étais content de trouver de la documentation traduite car il y a un réel risque de griller certains composants ou le microcontrôleur et c'était rassurant de suivre les étapes pas à pas dans un premier temps avant d’acquérir plus d'autonomie.

      • [^] # Re: Conversion d'un Nabaztag

        Posté par  . Évalué à 1.

        Merci beaucoup pour ces infos.

        Pour le LEDs, peut-on faire varier la tension en sortie d'un GPIO ou est-ce forcément du tout ou rien ?

        En regardant un peu avant d'éventrer mon lapin, je suis tombé là dessus :
        http://asia.cnet.com/cracking-open-the-nabaztag-wi-fi-rabbit-62036366.htm

        Il semble en fait (si je ne me trompe pas) que les moteurs soient de simples moteurs avec réducteurs, et que la position des oreilles soit détectée par un autre moyen (que je ne vois pas sur l'image).

        http://asia.cnet.com/cracking-open-the-nabaztag-wi-fi-rabbit-62036366.htm
        Cette image montre 4 fils sortant de chaque "moteur", je suppose que 2 fils alimentent le moteur et 2 autres fils contrôlent la position.

        Je vais donc pouvoir contrôler les 2 oreilles avec seulement 1 pont-H. Par contrôle il va me falloir trouver comment lire la position.

        Par contre j'ai peur de manquer de GPIO:
        - 5 leds RGB = 5x3 = 15 GPIO
        - 2 moteurs = 2x2 = 4 GPIO
        - 2 indicateurs de position = 2x2? = 4? GPIO
        - 1 interrupteur sur la tête = 1 GPIO

        Ce qui me fait un total de 20 GPIO, et il me semble que le R-Pi n'en a que 17.
        Je suppose que je pourrais trouver une solution pour mutualiser sur les leds, de toute façon je n'en suis pas encore là !

        • [^] # Re: Conversion d'un Nabaztag

          Posté par  (site web personnel) . Évalué à 1.

          Pour le LEDs, peut-on faire varier la tension en sortie d'un GPIO ou est-ce forcément du tout ou rien ?

          C'est du tout où rien, ce sont des E/S numériques, pas analogiques. Si ton but est de faire varier l'intensité des LED, il faut jouer avec le PWM (sale pub éhontée : https://goddess-gate.com/dc2/index.php/pages/pizypwm.fr )

          Ce qui me fait un total de 20 GPIO, et il me semble que le R-Pi n'en a que 17.

          Normalement, il n'a que 8 GPIO réellement génériques, mais en désactivant certaines fonctions « spéciales » (I2C, Série, etc), il peut-être possible d'en récupérer certaines. Sinon, la méthode la plus simple est de passer par des port expander. Ce sont des puces, pilotées en I2C, qui ajoutent des GPIO supplémentaires : pour 4 connecteurs utilisés sur le Raspi (les deux connecteurs I2C, la masse, et le +3,3V ou +5V), tu peux avoir jusqu'à 8 GPIO supplémentaires par puce (avec un MCP23008) ou bien jusqu'à 16 GPIO par puce (avec un MCP23017)

        • [^] # Re: Conversion d'un Nabaztag

          Posté par  . Évalué à 1.

          Je suppose que je pourrais trouver une solution pour mutualiser sur les leds, de toute façon je n'en suis pas encore là !

          J'avais fait des recherches a ce sujet, pour un projet. Il existe en effet un grand nombre de microcontrolleurs capable de piloter des LEDs avec 4 pins (On, Clock, DataIn, LightOn) et une résistance (la puissance d'éclairage), c'est pas cher en plus et la doc est bonne.
          Bien qu'ils soient concus pour les LEDs, on doit pouvoir les utiliser pour bien d'autres choses, cherche "led driver".

          Le plus gros probleme, c'est de les souder… ils sont parfois trop petits, alors fait gaffe. ;-)

          Ce site est une perle de ressource : http://www.hownottoengineer.com/projects/rgb-led-cube.html

        • [^] # Re: Conversion d'un Nabaztag

          Posté par  (site web personnel) . Évalué à 0.

          Cette image montre 4 fils sortant de chaque "moteur", je suppose que 2 fils alimentent le moteur et 2 autres fils contrôlent la position.

          Il y a de très fortes chances que ce soient des moteurs pas à pas (stepper motor), les 4 fils contrôlant l'avancement (il doit y avoir un 5 fil non visible pour la masse). Pour le fonctionnement de ces moteurs, voir ici : http://www.tigoe.com/pcomp/code/circuits/motors/stepper-motors/

          • [^] # Re: Conversion d'un Nabaztag

            Posté par  . Évalué à 1.

            Effectivement je n'avais pas vraiment fait attention au circuit imprimé auxquels ces 4 fils étaient connectés, il semble que ce n'est qu'un moyen de se relier simplement aux 4 bornes du moteur pas à pas. Je dois avouer que j'ai un peu trop espéré que ce soit du moteur classique plutôt que du pas à pas, car le moteur classique paraît plus simple à contrôler.

            Du coup je ne comprends pas comment le lapin sait quelle est la position de ses oreilles (on peut les tourner à la main et il reviendra tout seul à la bonne position lors de l'animation suivante). De mémoire les moteurs pas à pas n'indexent pas leur position.

            J'en saurais plus quand j'aurais éventré mon lapin.

    • [^] # Re: Conversion d'un Nabaztag

      Posté par  . Évalué à 3.

      Bonne idée.

      J'ai eu un nabaztag mais je l'ai rendu au bout de deux semaines. Il ne faisait rien d'intéressant et trop fermé.
      Mais j'aime l'idée de l'ouvrir.

      Par contre, je ne partirai pas sur du raspberry. Déjà, c'est trop gros et trop puissant pour une lapin, si tu dois caser les piles et un gdongle udb, c'est mort. Ensuite, il y a mieux en terme de GPIO.

      Je partirai sur un arduino - au moins pour prototyper - et un shiel wifi ou ethernet si tu n'es pas contre un fil. Ensuite, pour faire plus propre, il est possible d'utiliser une carte spécialement designer pour, qui sera plus petite.

      Les fonctions sont très simples: bouger l'oreille, jouer un son, allumer une diode dans une couleur. Il faut créer un petit protocole pour passer les commandes au lapin à partir d'un serveur. Pour le serveur, c'est une autre problématique

      Bonne chance si tu te lances.

      • [^] # Re: Conversion d'un Nabaztag

        Posté par  . Évalué à 2.

        • Ce n'est pas trop gros, le Raspberry-Pi rentre largement dans le lapin (pas vraiment testé, mais en les mettant côte à côte, c'est flagrant).
        • Le lapin est sur secteur, je ne vois pas pourquoi j'y mettrais des piles… surtout qu'il y aura aussi le port hdmi quelque part a déporter ainsi qu'un hub USB
        • Pour un dongle usb, je suppose que tu parles de wifi… ça a vraiment du évoluer depuis que tu as regardé la dernière fois, aujourd'hui un dongle wifi ça fait quasiment la taille d'un port USB : http://www.amazon.com/Edimax-EW-7811Un-Wireless-Adapter-Wizard/dp/B005CLMJLU/ref=sr_1_11?ie=UTF8&qid=1340249322&sr=8-11&keywords=usb+wireless
        • Mon but n'est pas vraiment de faire une copie du lapin, mais de faire un boitier "animé" pour le Raspberry-Pi.

        Donc je pense qu'utiliser le Raspberry-Pi n'est pas si idiot que ça…

        • [^] # Re: Conversion d'un Nabaztag

          Posté par  . Évalué à 3.

          Vu comme ça, en effet.
          D'autant plus que c'est ton projet :)

          • [^] # Re: Conversion d'un Nabaztag

            Posté par  . Évalué à 2.

            Première étape bloquante : les vis du Nabaztag ont des tête avec des trous en forme de triangle… j'ai pas ça en rayon…

            • [^] # Re: Conversion d'un Nabaztag

              Posté par  (site web personnel) . Évalué à 2.

              L'opération "Nabaztag" m'intéresse. Merci d'avance si tu/vous faites un journal là-dessus pour narrer l'aventure :)

              Debug the Web together.

              • [^] # Re: Conversion d'un Nabaztag

                Posté par  . Évalué à 2.

                Je ferais certainement un Journal quand j'aurais quelque chose de fonctionnel (ne pas s'attendre à ce que se soit pour bientôt).

                En attendant je vais essayer de documenter mes bidouillages et investigations sur ce github : https://github.com/Oripy/Rabbity-Pi
                J'y inclurais également le code (certainement en python) dès que j'en écrirais.

                Pour l'instant c'est vierge, le github ayant été créé il y a quelques minutes.

  • # Pour le moment, il lui manque la parole

    Posté par  . Évalué à 5.

    « Parfois je me dis qu'il ne lui manque que la parole. »

    https://www.youtube.com/watch?v=OJJ4P9lEfpg

    Article Quarante-Deux : Toute personne dépassant un kilomètre de haut doit quitter le Tribunal. -- Le Roi de Cœur

  • # et un petit chien, non ?

    Posté par  . Évalué à 2.

    ils en ont plein à la SPA.

    beau projet sinon, bonne chance pour la suite.

  • # Et le prix?

    Posté par  . Évalué à 2.

    C'est con à dire, mais… le matos, ça coûte. J'ai toujours eu envie de me faire ce genre d'amis, plus fidèle qu'un chien, moins cher, et plus propre.
    Seulement, le prix supposé m'a toujours fait peur!

    Pourrais t-on avoir une estimation?

    • [^] # Re: Et le prix?

      Posté par  (site web personnel) . Évalué à 2.

      Le kit de base ARDX + la plateforme + les composants annexes (bumpers, détecteur IR, servo, …) me sont revenus à 220€ environ. En récupérant des boutons, LED, moteurs, câbles, … sur un vieil ordinateur ou de vieux jouets, on peut évidemment faire baisser ce prix considérablement. C'est cher comparé à un jouet chinois qui ferait la même chose (et mieux) pour 40 € mais il y a la satisfaction de le faire, d'apprendre. Ça revient au prix de 4 jeux vidéos récents finalement.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.