Viewing 17 reply threads
  • Author
    Posts
    • #7387
      lecagnois
      Participant

      Leçon quatre pour débutant

      Maintenant nous allons commencer à programmer en python

      Nous allons partir du fichier exemple de Gael

      Se positionner dans le répertoire :
      …./inmoovScript/

      Editer avec Nodepad++ le fichier Inmoov.py

      Tout ce qui commence par # ne sont pas interprété par python ,il s’agit de commentaires
      En programmation on prendra l’habitude de mettre des commentaires, très pratique lorsque l’on modifie sont programme plus tard.

      Exemple :
      # Start the webgui service without starting the browser

      Dans le langage Python il faudra faire attention à l’indentation
      C’est-à-dire la tabulation entre chaque ligne

      Explications du script :

      # Lance le service webgui dans le navigateur
      webgui = Runtime.create(“WebGui”,”WebGui”)
      webgui.autoStartBrowser(False)
      webgui.startService()

      # déclaration de la class objet i01
      i01 = Runtime.createAndStart(“i01”, “InMoov”)

      # Initialisation du robot avec le scrip de Anthony InitCheckup.py , je passé toutes les phases de l’initialisation (déclaration des variable , des bibliotheques etc….)
      RuningFolder=”InmoovScript”
      execfile(RuningFolder+’/system/InitCheckup.py’)

      Nous arrivons à ce qui nous intéresse faire bouger les doigts
      Il y a deux façons de parler au robot avec la class ear ou avec le chatbot
      Nous commencerons par le plus simple .
      Le chatbot est plus puissant mai il faut maîtriser le langage AIML
      Je ferai des tutos après.

      ##########################################################################
      # Exemple de commandes
      # Aller plus loin, vous pouvez trouver plus de commandes vocales dans inmoovVocal / ear.addCommand
      # Aller plus loin, vous pouvez trouver plus de fonctions associées dans inmoovGestures

      ear.addCommand(“active ton doigt”, “i01.leftHand.index”, “attach”)
      ear.addCommand(“detache”, “i01.leftHand”, “detach”)
      ear.addCommand(“ouvre”, “python”, “fingeropen”)
      ear.addCommand(“ferme”, “python”, “fingerclose”)
      ear.addCommand(“milieu”, “python”, “fingermiddle”)

      Explication de la première Commande

      ear.addCommand = addCommand est une méthode qui fais parti de la class ear
      ce qui est en parenthèses se sont les arguments passés

      argument 1 = la phase que vous aller dire
      argument 2 = action 1 (ici class 101 object index gauche)
      argument 3 = action 2 (ici attache le servo )

      Si vous avez compris
      La ligne 2 detact tous les servo de la main gauche avec le mot detache
      La ligne 3 execute la procedure python fingeropen avec le mot ouvre

      C’est quoi une procedure ?

      C’est un petit morceau de programme dans lequel on peux passer des parametres.
      En langage python une procédure commence par : def le nom de la proc() suivi de :

      Exemple :
      def fingeropen():

      j aurai pu mettre def ouvreledoigt() :

      je peut créer des variables locales dans les parenthèses .
      Exemple :
      def ouvreledoigt(« un »,2,3, « quatre »)
      « un » est une variable chaine de caractère passé en paramètre
      2 est un variable du type entier passé en paramètre
      Je reviendrai plus tard sur cet aspect de paramètres

      Pour le moment mon sous programme ne fais rien, donc il faut mettre des instructions dedans.
      ATTENTION il faut commencer a indenter c’est-à-dire ne pas partir de la colonne 0
      Dans python l’indentation est rigoureuse si vous voulez ne pas avoir des messages à la compilation.

      Utiliser soit la barre espace, soit la tabulation ,mais soyez rigoureux.
      Exemple :

      def fingerclose():
      leftHand.attach()
      sleep(5)
      #speed = vitesse main gauche pouce index majeux ring poignet
      i01.setHandSpeed(“left”,0.9,1,1,1,1,0.7)
      i01.moveHand(“left”,0,0,0,0,0,20)
      sleep(5)
      talkBlocking(“ma main est fermer”)
      sleep(10)
      leftHand.detach()

      dans l’ordre cette procèdure fait :
      -attache les servos la main gauche
      – attend 5milli secondes
      – regle la vitesse de la main gauche le pouce à 0.9, index à 1 , majeur à 1 , ring à 1,poignet à 0.7
      -mais les servo de la main gauche a 0 le poignet a 20
      – attend 5milli secondes
      -dit la phrase « ma main est fermer »
      – attend 10 milli secondes
      -détache les servo de la main gauche

      Exercice :
      Dire à votre robot le mot compte
      Et le faire compter sur ses doigts jusqu’à trois en disant 1 , 2 et 3

      Correction à la prochaine leçon, enfin si seulement cela vous intéresse, j’attends vos retours
      La seule limite de votre robot est votre imagination……..

      Nota : (livre pour débuter : Apprendre à programmer avec PYTHON 3 chez EYROLLES)

      Attachments:
      You must be logged in to view attached files.
    • #7395
      jacque
      Participant

      bonjour leganois moi étant débutant très très intéressante grâce a tes leçon mon robot prend vie encore merci j’attend la suite avec impatience

    • #7396
      lecagnois
      Participant

      Merci Jacques , je vais donc continuer les leçons dans une approche initiation

    • #7398
      laurent
      Participant

      oui merci pour moi aussi cela me re motive beaucoup !, myrobotlab, est en marche maintenant je sait pas trop quoi en faire ou je ne sait pas trop comment il fonctionne, mais une choses est sur tes leçon servirons a beaucoup de personnes aujourd’hui et dans le future.

    • #7399
      Zaltahis
      Participant

      Merci beaucoup pour ce tuto qui arrive pour moi au bon moment. (Un robot à moitié fini, des câbles et des pièces imprimées de partout… )
      Cela me motive pour tout reprendre dans le bon sens.

    • #7401
      My’s Moov
      Moderator

      Bravo lecagnois, je vais en avoir besoin quand je vais pouvoir enfin revenir 🙂 !!!

      Merci !

    • #7402
      laurent
      Participant

      et oui cela manquer ! super ont prend tous un gros coup de motivation ! car imprimer, assembler c’est (facile), mais alors la parti prog ouaa, pour des non initiés CA fait peur ; le fait d’entendre myrobotlab parler juste après sont installation, et sont passage en langue française, appelle a pleins de question?? comment le faire parler ?? par chatbot ? cela fonctionne t’il bien avec firfox?, comment commencer avec mes servos moteur qui sont déjà monter ? faut il les initialisées et comment? enfin voila 1000 questions! voila ce que ca fait un gros coup de motivation ! merci lecagnois ;=)

    • #7404
      laurent
      Participant

      j’ai une autre question j’ai brancher un servo MG946R SUR LA CARTE ARDUINO jaune sur 7 vus que départ de myrobotlab il dit qui bouge la main droite et le fil noir sur GND de la carte et le rouge sur 5v de la carte ! le servo bouge bien au bon moment, quand je vais dans myrobotlab a l’onglé i01.righthand.wrist, le curseur est au centre , et quand je le bouge de gauche a droite le servo réagi bien ! par contre si je fait la même chose avec un gros servo le HS805BB, il ne se passe rien! pourquoi cela ne fonctionne pas avec les HS805BB ??

    • #7405
      Dominique
      Participant

      Les HS805BB et autres gros servo doivent être alimentés directement par une alimentation séparée, avec une masse commune.

      Utilise tu les nervos board de Gael ?

    • #7407
      laurent
      Participant

      oui je l’ai mais pas encore installer, juste fait un essai direct avec arduino, par contre j’ai une alim de labos, j’ai mis le jaune sur le 7 de la carte arduino, et le plus et moin sur l’alim , et le plus, commun servo et gnd de la carte comme l’explique Gaël et rien,

    • #7411
      laurent
      Participant

      ok en te répondant, j’ai vue ma connerie, le – en comum et non pas le plus, donc ca fonctionne le moteur fait un bruit mais ne bouge pas je lui ai mi 6v, et 0.200 ampères c’est peut être pas assez ?? car il fait un petit bruit mais ne bouge pas , qu’elle tension maxi et qu’elle ampérage ??

    • #7412
      lecagnois
      Participant

      @Laurent

      tu peux tester ton servo simplement avec ta carte arduino
      voici un programme arduino très simple

      #include <Servo.h> // inclusion de la librairie Servo
       
      Servo monservo; // déclaration d'une variable de type Servo
      int position = 0; //positionne le serveur a la valeur donnée (0= centré) changez cette valeur pour tester
       
      void setup()
      {
        monservo.attach(9); // attache la variable Servo à la broche 9
      }
       
      void loop() {
      monservo.write(position);
      }
      
    • #7415
      laurent
      Participant

      c’est OK il ma fait sont premier hochement de tète j’ai faillie avoir une larme !6v 2 ampères

    • #7416
      Dominique
      Participant

      Bravo Laurent.

    • #7424
      laurent
      Participant

      oups ça y est j’ai décrocher ! pour faire parler le robot inscrire les commande dans le chatbot de myrobotlab ? a qu’elle endroit ?

    • #7426
      laurent
      Participant

      désolé d’être aussi pas doué, mais jusuq’a la leçon 3pas de soucis pour moi ça commence a ce gâté a la 4, j’ai donc myrobolab fonctionnel, et je peux faire bouger le curseur de chaque servo moteur, après je crois comprendre que la leçon 4 porte sur les commande par voix, dans le service chabot de mrl, c’est ça ? si c’est le cas, les commande expliquer dans la leçon 4 ce font sur la barre du haut dans rml/chabot ?

    • #7428
      lecagnois
      Participant

      Salut Laurent

      Non laurent les commandes ne sont pas des commandes interactive
      mais des commandes à mettre dans un fichier (qui est en réalité ton programme)

      tu à un exemple de Gael dans le fichier inmoov.py (regarde la vidéo de gael du tuto 1)

      je suis donc parti de ce fichier justement pour vous simplifier la compréhension
      en l’expliquant.

      puis après tu le modifie avec nodepad++ (faire une sauvegarde avant en renommant ton fichier en .old)

      tu commence à devenir programmeur étape par étape.

      • This reply was modified 7 years, 1 month ago by lecagnois.
    • #7435
      laurent
      Participant

      merci beaucoup pour ta patience lecagnois 🙂 , j’essaie tous ça et je redonne des nouvelles

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