Viewing 11 reply threads
  • Author
    Posts
    • #10212
      Xavier MAQUET
      Participant

      Bonjour,
      J’ai trouvé dans les posts une allusion à un shield Arduino Mega ; quelqu’un a-t-il déjà étudier l’opportunité d’utiliser un shield pour l’UNO comme la “carte PCA9685, 16 servos + 2 moteurs DC Doit (Geekcreit)” ?
      Les avantages sont attrayants :
      – alimentation séparée pour les servos (input de 6 à 18V)
      – connectique servos en place
      – encombrement réduit (taille Arduino UNO)

      j’y vois un bon moyen d’intégrer l’électronique des bras, ou au moins des mains+poignet.
      La question qui se pose est celle de l’interfaçage avec MRL. Comment passer d’un pilotage direct à un dialogue via I2C ?…

      https://www.banggood.com/2-Channel-Motor-16-Channel-Servo-Expansion-Board-For-Arduino-UNO-Smart-Car-Chassis-Robot-Arm-p-1051594.html?p=RA18043558422201601Y

      @+
      Xavier

    • #10216
      BIGIARINI Vincent
      Participant

      C’est tout à fait possible mais il faut recoder les services Inmoov en conséquence, hein anthony ? 😀

      il y a un service tout fait pour utiliser cette carte en I2C. c’est le service Adafruit16CServoDriver.
      Ce n’est pas très compliqué tu peux trouver des exemples ici :
      http://myrobotlab.org/service/Adafruit16CServoDriver

      Je viens de regarder ce fameux shield, je ne le connaissais pas, il y a en plus deux drivers pour moteur DC. mais la partie servo est identique à la carte Adafruit et copies (contrôleur PCA9685) :

      https://www.banggood.com/PCA9685-16-Channel-12-bit-PWM-Servo-Motor-Driver-I2C-Module-For-Arduino-Robot-p-1170343.html?rmmds=detail-top-buytogether-auto__1&cur_warehouse=CN

    • #10240
      Xavier MAQUET
      Participant

      Actuellement, pour être bien sûr : InMoov s’appuie sur le service Arduino.py pour le pilotage des bras avec un Arduino ? s’agit-il d’une version très adaptée pour InMoov ou proche de l’originale ?
      Quel service plus haut invoque Arduino.py ?
      j’essaye de trouver un point de départ pour le recodage.
      X.

    • #10244
      Xavier MAQUET
      Participant

      ce que j’ai cru comprendre : c’est 7_Inmoov.py qui crée le service Arduino pour chaque coté du robot.
      C’est donc lui qui pourrait lancer en lieu et place d’Arduino.py le service Adafruit :
      # Start the Adafruit16CServodriver that can be used for all PCA9685 devices
      adaFruit16c = Runtime.start("AdaFruit16C","Adafruit16CServoDriver")

      et c’est ce service Adafruit qui devrait être écrit pour InMoov ?…
      ensuite le shield est attaché à l’arduino :
      adaFruit16c.attach("arduino","0","0x40")

      c’est un peu simplifié bien sûr ; j’ai bon ?

    • #10248
      BIGIARINI Vincent
      Participant
    • #10249
      BIGIARINI Vincent
      Participant

      `
      thumb.attach(arduino, 2, thumb.getRest(), thumb.getVelocity());

      index.attach(arduino, 3, index.getRest(), index.getVelocity());

      majeure.attach(arduino, 4, majeure.getRest(), majeure.getVelocity());

      ringFinger.attach(arduino, 5, ringFinger.getRest(), ringFinger.getVelocity());

      pinky.attach(arduino, 6, pinky.getRest(), pinky.getVelocity());

      wrist.attach(arduino, 7, wrist.getRest(), wrist.getVelocity());

    • #10251
      Xavier MAQUET
      Participant

      ok, vu
      ça veut dire qu’aujourd’hui InMoov ne peut fonctionner que avec un Arduino en contrôleur, via les pin du circuit ?
      si on attache logiquement un shield à notre arduino, est-ce que çà change quelque-chose aux méthodes dans les services InMoov ? pas sûr…

    • #10252
      BIGIARINI Vincent
      Participant

      Si tu mets un shield avec PCA9685, le service inmoov va chercher à utiliser les pins pwm de l’arduino et pas celles du shield. il faut réecrire les services pour integrer les PCA9685. sinon se passer des services inmoov et tout coder en python. mais la ç’est une autre paire de manche et il y aura bcp de pertes de fonctionnalité.

      une âme plus éclairée que moi sur le sujet ? je ne dis pas de bêtises ?

    • #10253
      anthony
      Moderator

      Coucou ! Yes la config matérielle est standardisée afin de fournir quelque chose de fonctionnel au plus grand nombre, et surtout faciliter les explications aux débutants.
      L’ajout de microcontrôleurs supplémentaires dans le service Inmoov est un des chantiers de Nixie : https://github.com/MyRobotLab/myrobotlab/issues/101
      L’idée étant de fournir plus de modularité. A terme on pourra utiliser si on le souhaite le service inmoov sans arduino juste avec un petit raspi et des contrôleurs exotiques
      ( on peut déjà le faire mais faut bricoler un peu ).

    • #10256
      Xavier MAQUET
      Participant

      Merci messieurs pour ces éclairages très intéressants.
      Dans un 1er temps je vais donc essayer ce shield sur un autre projet (simple bras robot avec 4 servos) en-dehors de MRL & avec MRL+service/adafruit.
      Et pour mon InMoov, et bien on sort les cartes et le fer à souder 🙂

    • #10355
      anthony
      Moderator

      Pour les aventuriers, en attendant plus propre, petite bidouille pour utiliser l’i2c dans le service inmoov : http://myrobotlab.org/content/i2c-inmoov-hand-wip#comment-9861

    • #10358
      Xavier MAQUET
      Participant

      Hello, mais c’est du tout bon çà !! j’ai reçu mes shields hier, et je découvre aujourd’hui qu’on peut adresser des servos branchés dessus via le bus I2C…il n’y a plus qu’à tester.
      A priori il faut juste que la lib ‘wire’ soit installée.

Viewing 11 reply threads
  • You must be logged in to reply to this topic.