module « programmer un robot » : le robot poppy...

27
Lycée Gustave Eiffel 2 nde – ICN Module « Programmer un robot » : Le Robot Poppy Ergo-Jr Page n°1/27 ICN – Informatique et Création Numérique MODULE « PROGRAMMER UN ROBOT » : LE ROBOT POPPY ERGO-JR ICN

Upload: others

Post on 26-Jan-2021

2 views

Category:

Documents


0 download

TRANSCRIPT

  • LycéeGustaveEiffel 2nde–ICN

    Module«Programmerunrobot»:LeRobotPoppyErgo-Jr Pagen°1/27

    ICN–InformatiqueetCréationNumérique

    MODULE«PROGRAMMERUNROBOT»:LEROBOTPOPPYERGO-JR

    ICN

  • LycéeGustaveEiffel 2nde–ICN

    Module«Programmerunrobot»:LeRobotPoppyErgo-Jr Pagen°2/27

    1–ROBOTPOPPYERGO-JR..................................................................................................................31.1–Présentation.....................................................................................................................................31.2–KitsPoppyErgot-Jr...........................................................................................................................4

    2–SERVOMOTEURDYNAMIXELXL-320................................................................................................52.1–Présentation.....................................................................................................................................52.2–Constitution......................................................................................................................................52.3–Diodeélectroluminescente..............................................................................................................62.4–Alarme..............................................................................................................................................62.5–Principalescaractéristiquestechniques...........................................................................................62.6–Registres...........................................................................................................................................72.7–PID....................................................................................................................................................8

    3–CARTED'EXTENSIONPIXL................................................................................................................93.1–Présentation.....................................................................................................................................93.2–Principalescaractéristiquestechniques.........................................................................................10

    4–CARTERASPBERRYPI2.................................................................................................................114.1–Présentation...................................................................................................................................114.2–DifférentsélémentsdelacarteRASPBERRYPI2...........................................................................114.3–MicroprocesseuretProcesseurgraphique....................................................................................124.4–Mémoire.........................................................................................................................................124.5–ConnecteursdelacarteRaspberryPI2.........................................................................................134.6–PortGPIO........................................................................................................................................15

    5–ASSEMBLAGEDUROBOTERGO-JR................................................................................................165.1–Assemblagemécanique.................................................................................................................165.2–Configurationdesservomoteurs....................................................................................................165.3–MiseenplacedelacarteRaspberryPI..........................................................................................175.4–Assemblagedescartesélectroniques............................................................................................17

    6–PROGRAMMATIONDUERGOT-JR.................................................................................................18

    7–ETABLIRLACOMMUNICATIONAVECLEROBOTPOPPYERGO-JR...................................................19

    8–ROBOTVIRTUEL............................................................................................................................21

    9–PROGRAMMERLEROBOTPOPPYERGO-JRENSNAP!....................................................................229.1–LangagedeprogrammationSnap!.................................................................................................229.2–Accèsàl’interfacededéveloppementSnap!durobot..................................................................229.3–InterfacededéveloppementSnap!durobot.................................................................................239.4–BlocdeprogrammationpoppyErgo-Jr..........................................................................................249.4–PremierpasaveclerobotPoppyErgo-Jr.......................................................................................25

    9.4.1–Activationetdésactivationdesservomoteurs......................................................................................................259.4.2–Animerlerobot.....................................................................................................................................................269.4.3–Contrôlerlesmoteursunparun...........................................................................................................................279.4.4–Récupérerlapositiondechacundesservomoteurs.............................................................................................279.4.5–ModifierlacouleurdesDELsdesservomoteurs...................................................................................................27

  • LycéeGustaveEiffel 2nde–ICN

    Module«Programmerunrobot»:LeRobotPoppyErgo-Jr Pagen°3/27

    1–ROBOTPOPPYERGO-JR

    1.1–PRESENTATION

    LerobotPoppyErgo-Jrestunpetitbrasrobotiséopen-sourcedisposantde6degrésdeliberté.Ilestconstituédepiècestrèssimples pouvant facilement être réalisées au moyen d’uneimprimante 3D. Le robot est livré avec trois embouts luipermettantd'interagiravecsonenvironnement:unabat-jour,unepince,ainsiqu'unportestylo.

    -RobotPoppyErgo-Jr-

    IlaétécréédanslecadreduprojetPoppyÉducationdel’équipederechercheFLOWERS(Inria,ENSTAParisTech),soutenuparlaRégionAquitaineetlesFondsEuropéensFEDER.

    -PoppyEducation-

    Lebras robotiquePoppyErgo-Jr faitpartiede lamêmefamille que PoppyHumanoid et Poppy Torso, sortis en2015,etqui sontdéjà trèsutilisésdans lemondede larechercheetdel'éducation.

    LesrobotsPoppyErgoJrdistribuésparlastart-upbordelaiseGénérationRobotssontdisponiblessousformedekits.

    -PoppyHumanoid- -PoppyTorso-

  • LycéeGustaveEiffel 2nde–ICN

    Module«Programmerunrobot»:LeRobotPoppyErgo-Jr Pagen°4/27

    1.2–KITSPOPPYERGOT-JR

    Lalistedumatérielcomprisdanslekitestlesuivant:

    − 6xServomoteurs;− 1xPackderivets;− 1xCartePixl;− 1xCarteRaspberryPi2modèleB;− 1xCartemémoiremicroSD8Go;− 4xVisM2.5x6,4xVisM2x5et4xEcrousN1M2;− 1xAlimentation7.5VpourlacartePixl;− 1xModuleCamérapourRaspberryPi;− 1xCâbleethernet1m;− pièces3DPoppyErgoJr.

    -KitPoppyErgo-Jr-

  • LycéeGustaveEiffel 2nde–ICN

    Module«Programmerunrobot»:LeRobotPoppyErgo-Jr Pagen°5/27

    2–SERVOMOTEURDYNAMIXELXL-320

    2.1–PRESENTATION

    LeservomoteurDynamixelXL-320,conçuparRobotis,estconçupourlesutilisationsrobotiques.IlpeutsecontrôlerviaunecarteRaspberryPi ou un ordinateur au moyen d’une liaison TTL. Ils permettre decommander des robots très complexes mais de petites tailles car ilsprésententuncouplefaible(0,39N.m).

    -ServomoteurDynamixelXL-320-

    2.2–CONSTITUTION

    Ces servomoteurs comprennent un moteur couplé à une carteélectroniqueetuncontrôleurmagnétiquedeposition.Lemicrocontrôleurembarqué dans le servomoteur permet gérer la communication avecl’extérieurainsiquelesréglagesdeposition,devitesseetdecouple.

    Le moteur peut fonctionner en mode «position» (-150°/+150°) ou enmode«roue»(rotationcontinue).

    -Constitutionduservomoteur-

    Les moteurs disposent de deux connecteurs 3 broches(cordon inclus) permettant derelier plusieurs moteurs encascadeetdelesutiliserensemble.

    -ConnecteursservomoteurDynamixelXL-320-

    Lesdifférentsparamètresde réglageetdonnéesdisponibles sontaccessiblesàpartirde registresquisontsituéssoitdansunemémoireEEPROMoudansunemémoireRAM.Lesdonnéescontenuesdanslesregistressituésdansl’EPROMserontconservéeslorsqueleservomoteurn’estplusalimenté.ParcontrelesregistressituésdanslaRAMsontinitialisésàchaquemisesoustensiondesservomoteurs.

  • LycéeGustaveEiffel 2nde–ICN

    Module«Programmerunrobot»:LeRobotPoppyErgo-Jr Pagen°6/27

    2.3–DIODEELECTROLUMINESCENTE

    Leservomoteurestégalementconstituéd’uneDELmulticolore.LacouleurdelaDELestfixéeàpartirduregistreLED(0x25).

    Valeurregistre 0 1 2 3 4 5 6 7

    Couleur DELéteinte

    Rouge Vert Jaune Bleu Rose Cyan Blanc

    2.4–ALARME

    Le servomoteur peut détecter certains défauts lors de fonctionnement: tension d’alimentation tropgrande,températuredefonctionnementtropélevée,couplefourniinsuffisant.Siundéfautestdétectéenmode «Alarm LED», la DEL devient clignotante. Enmode «Alarm Shutdow», le servomoteur nefournitplusdecouple.

    2.5–PRINCIPALESCARACTERISTIQUESTECHNIQUES

    Caractéristiquestechniques Précision 0,29°Poids 16,7gDimensions 24mmx36mmx27mmCouplemax 0,39N.m(sous7,4V)Vitessemax 114tr/mn(sous7,4V)Rapportderéduction 238Tensiond’alimentation 6Và8.4V(7,4Vrecommandée)Protocoledecommunication Liaisonsérieasynchronehalfduplex(8bit,1stop,NoParity)Vitessedetransmission 7343bit/sà1Mbit/sNombred’identifiantsmax 253Températuredefonctionnement −5°Cà+70°C

  • LycéeGustaveEiffel 2nde–ICN

    Module«Programmerunrobot»:LeRobotPoppyErgo-Jr Pagen°7/27

    2.6–REGISTRES

    Lesregistressontaccessiblesenécriture(W)et/oulecture(R).

    Adresseregistre Nomregistre Description AccèsValeurinitiale

    EEPR

    OM

    0 ModelNumber Référenceduservomoteur R 3501 Firmware VersionduFirmware R

    3 ID Identifiant du servomoteur compris entre 0 (0x00) et 252(0xFC).L’identifiantdebroadcastest254(0xFE) RW 1

    4 Baudrate Vitessedecommunication:0=9600bit/s;1=57600bit/s;2=115200bit/s;3=1Mbit/s RW 3

    5 ReturnDelayTime Tempsderéponsemaximal.Lavaleurinitialeestde0,5ms RW 2506 CWAngleLimit Limitedel’anglederotationdanslesenshoraire RW 08 CCWAngleLimit Limitedel’anglederotationdanslesensanti-horaire RW 1024

    11 ControlMode Choix du mode de fonctionnement: 1= mode «roue»;2=mode«position» RW 2

    12 LimitTemperature Températureinternelimite RW 6513 lowerLimitVoltage Tensiond’alimentationminimale.Valeurinitiale=6V RW 6014 UpperLimitVoltage Tensiond’alimentationmaximale.Valeurinitiale=9V RW 90

    15 MaxTorque Pourcentageducouplemaximal.Lavaleurinitialeestde100%ducouplemaximal RW 1023

    17 ReturnLevelModederetourdel’état(STATUS)duservomoteur:0=pasderetour;1=retouraprèsunecommandeenlecture;2=retouraprèstoutecommande

    RW 2

    18 AlarmShutdown Limitationducouplesiunealarmeestdétectée RW 36

    RAM

    24 TorqueEnable Autorisationdegénérationducouplesilavaleurest0 RW 025 LED RéglagedelacouleurdelaDEL. RW 027 DGain GaindifférentielduPID RW 028 IGain GainintégralduPID RW 029 PGain GainproportionnelduPID RW 3230 GoalPosition Consignedeposition RW 32 GoalVelocity Consignedevitesse RW 35 GoalTorque Consignedecouple RW 37 PresentPosition Retourposition R 39 Presentspeed Retourvitesse R 41 PresentLoad Retourcharge R 45 PresentVoltage Retourtension R 46 PresentTemperature Retourtempérature R

    47 RegisteredInstruction Indicateurd’instruction:1=instructiontransmise;0=instructionnontransmise R 0

    49 Moving Indicateurpositionatteinte:0=positiondeconsigneatteinte;1=mouvementencours R 0

    50 HardwareErrorStatus Retourdéfauts R 051 Punch Valeurminimaleducourantdecommandedumoteur RW 32

  • LycéeGustaveEiffel 2nde–ICN

    Module«Programmerunrobot»:LeRobotPoppyErgo-Jr Pagen°8/27

    2.7–PID

    LeservomoteurDynamixelXL-320peutêtrecontrôléaumoyend’uncorrecteurPIDinterne.IlsuffitdefixerlesgainsP,IetDducorrecteurdanslesregistres«GainP»(29),«GainI»(28)et«GainD»(27).

    Avec:Kp=PGain/8Ki=IGain×1000/2048Kd=DGain×4/1000

    -CorrecteurPID-

  • LycéeGustaveEiffel 2nde–ICN

    Module«Programmerunrobot»:LeRobotPoppyErgo-Jr Pagen°9/27

    3–CARTED'EXTENSIONPIXL

    3.1–PRESENTATION

    La carte d’extension «Pixl», incluse dans le kit Poppy Ergo-Jr, permetd’alimenter et piloter les 6 servomoteurs Dynamixel ainsi que la carteRaspberryPi.Ellepermetégalementdeconvertir latension5,5Vdubussérie TTL des servomoteurs en 3,3 V pour la liaison UART de la carteRaspberryPi.

    -Carte«Pixl»-

    La carte «Pixl» connecte directement sur les broches 1 à 10 duconnecteurGPIOdelacarteRaspberryPi.

    -ConnexiondelaCarte«Pixl»-

    LepremierdesmoteursseconnectesurleconnecteurMolex3broches.

    -ConnexiondelaCarte«Pixl»-

    Ellepermetdeuxd’alimentation:− Alimentationparblocsecteur7,5V–2Avialaprisejack− Alimentation à partir de batteries Robotis LBB-040 via les deux

    connecteursprévusàceteffet.

    -Alimentationparbatteries-

  • LycéeGustaveEiffel 2nde–ICN

    Module«Programmerunrobot»:LeRobotPoppyErgo-Jr Pagen°10/27

    3.2–PRINCIPALESCARACTERISTIQUESTECHNIQUES

    Caractéristiquestechniques CompatibilitéRaspberry RaspberryPi2modèleBAlimentation 7,5V–2ANbdeservomoteurspilotables 6Dimensions 35mmx25mmx9mm

  • LycéeGustaveEiffel 2nde–ICN

    Module«Programmerunrobot»:LeRobotPoppyErgo-Jr Pagen°11/27

    4–CARTERASPBERRYPI2

    4.1–PRESENTATION

    LacarteRaspberryPi2estunecarteélectroniquequimesure56mmx85mm.Ils’agitdel’unedesdernièresversionsdescartesRaspberry.

    Le cœur de la carte est unepuce de type SoC (System on a Chip). Lamémoire, le microprocesseur et le processeur graphique sontphysiquementplacésurcettemêmepuce,cequipermetderéduire latailleducircuit.

    Elle est capable de faire fonctionner un système d’exploitation Linuxcomplet

    -CarteRaspberryPI2-

    4.2–DIFFERENTSELEMENTSDELACARTERASPBERRYPI2

    -

    -CarteRaspberryPI2-

    PortEthernet

    ConnecteurDSI

    (Afficheur)

    DELalimentation

    DELactivitéréseau

    Sortieaudioanalogique

    ConnecteurCSI(Caméra)

    SortieVidéoHDMI

    AlimentationparmicroUSB

    PriseUSBx4

    BrochesGPIO

    Processeur Contrôleurréseau

  • LycéeGustaveEiffel 2nde–ICN

    Module«Programmerunrobot»:LeRobotPoppyErgo-Jr Pagen°12/27

    4.3–MICROPROCESSEURETPROCESSEURGRAPHIQUE

    Le SOCBCM2836deBroadcomest équipéd’unmicroprocesseurquadruplecoeurARMV7CortexA7cadencéà900MHz.

    -SOCBCM2836deBroadcom-

    La carteRaspberryétant conçuepourdesapplicationsembraquée, lemicroprocesseurdoitavoirunefaible consommation. Une vitesse d’horloge relativement lente permet d’abaisser la consommationd’énergie et permet également un fonctionnement sous une tension faible ce qui induit uneproductiondechaleurréduiteetuneduréedeviedumicroprocesseurpluslongue.Le processeur graphique est unprocesseur VideoCore IVdouble core. Il assure tous les traitementsvidéoetaudiodemandésauSoC.IlprendenchargelanormeOpenGLES2.0quipermetl’affichage3Dpoursystèmesembarqués.CeprocesseurimplémentedefaçonmatérielleuncodecH.264,1080p,30trames/secindispensablepourlahautedéfinition.

    4.4–MEMOIRE

    Deux types demémoire sont employés dans la carte Raspberry: laDRAM (Dynamic RandomAcessMemory)etlaflashmicro-SD(SecureDigital).LacarteRaspberryPI2estdotéede1GodemémoireDRAMintégréedirectementdanslapuceSoC.Ils’agitdemémoirefaibleconsommationconçuepourlesapplicationsmobiles.

    La carte mémoire flash micro-SD permet de stocker le systèmed’exploitation, tous les programmes et les données qui doiventpersister. La carte Raspberry utilise la carte mémoire SD de lamanièrequ’unordinateurutiliseundisquedurpourconserverdefaçonpermanente lesdonnéeset lesprogrammesnotamment lesystèmed’exploitation.

    -SlotSDcarteraspberryPI2-

  • LycéeGustaveEiffel 2nde–ICN

    Module«Programmerunrobot»:LeRobotPoppyErgo-Jr Pagen°13/27

    4.5–CONNECTEURSDELACARTERASPBERRYPI2

    La carte Raspberry PI 2 est équipée de 11 connecteurs: micro USB (Alimentation), HDMI (vidéo),connecteur jack 3,5 mm (audio analogique), connecteur RJ45 (Ethernet), connecteur GPIO(entrée/sortiesnumériques),connecteurCSI(caméra),connecteurDSI(afficheur)etquatreportsUSB.ConnecteurmicroUSBd’alimentationLacarteestalimentéevia leconnecteurmicroUSBd’alimentationaumoyend’unadaptateursecteur5V-2A.Enfonctionnementnormal,laconsommationdelacarteRaspberryestd’environ600mA.

    -ConnecteurmicroUSB- -Adaptateursecteur-

    SortieVidéoNumérique(HDMI)LacarteRaspberryestcapabledegénérerdessignauxvidéoetaudioàlanormeHDMI.Ildisposepourcela d’un connecteurHDMI.Dans le cas où l’écran utilisé ne dispose pas de connecteurHDMI, il estnécessaired’utiliserunadaptateurHDMI/VGAouHDMI/DVI.

    -ConnecteurHDMI- -CâbleHDMI- -AdaptateurHDMI/VGA-

    Sortieaudioanalogique(jackstéréo3,5mm)LacarteRaspberryestcapabledegénérerunesortieaudiostéréo.Elleestdisponiblesuruneprisejackstéréostandardde3,5mm.

    -Prisejack3,5mm- -Câbleaudiostéréo3,5mm-

    ConnecteurRJ45LeconnecteurRJ45permetlaconnexiond’uncâbleréseauoud’undongleWiFi.

    -ConnecteurRJ45- -CâbleRéseau- -CléWiFi-

  • LycéeGustaveEiffel 2nde–ICN

    Module«Programmerunrobot»:LeRobotPoppyErgo-Jr Pagen°14/27

    ConnecteurGPIO

    Le connecteur GPIO (General Purpose Input Output)comprend 40 broches réparties sur 2 rangées. Ceconnecteur supporte les Entrées/Sorties numériquesmaiségalementlessortiesPWM,lesEntrées/Sortiesdecommunicationetlesalimentations5Vet3,3V.

    -ConnecteurGPIO-ConnecteurCSILeconnecteurCSI(CameraSerialInterface)permetlaconnexiond’unecaméraoud’unappareilphotonumériqueviaunenappesoupleà15conducteurs.

    -ConnecteurCSI- -ModuleCamérapourRaspberry-ConnecteurDSILeconnecteurDSI(DisplaySerialInterface)permetlaconnexiond’unafficheurviaunenappesoupleà15conducteurs.

    -ConnecteurDSI- -EcrantactilepourRaspberry-ConnecteursUSB

    LacarteRaspberryPI2estéquipéede4portsUSB.LespériphériquesUSBconnectéssurcesportssontautomatiquementreconnus.

    Cependant, la carte Raspberry ne pourra alimenter que les périphériques «basse consommation»(souris,clavier,clésUSB).Pourlesautrespériphériquesquinepossèdentpasleurproprealimentationilestconseilléd’utiliserunconcentrateurUSBavecalimentation.

    -ConnecteursUSB- -ConcentrateurUSB-

  • LycéeGustaveEiffel 2nde–ICN

    Module«Programmerunrobot»:LeRobotPoppyErgo-Jr Pagen°15/27

    4.6–PORTGPIO

    LeconnecteurGPIO (GeneralPurpose InputOutput) comprend40broches réparties sur2 rangées. Ilcomporte29E/Snumériques,uneinterfaceI2C,uneinterfaceSPIetuneinterfaceUART.vLesbrochesduGPIOsontrepéréessoitparlenuméroduconnecteurGPIO(Board)oubienparlenumérodelaligned’E/SauniveauduµP(BCM).

    Fonction N°BCM N°Board

    N°Board N°BCM Fonction(s)3V3 1 2 5V

    GPIO2–SDA1 2 3 4 5VGPIO3–SCL1 3 5 6 GND

    GPIO4–GPCLK0 4 7 8 14 GPIO14–TXDGND 9 10 15 GPIO15–RXD

    GPIO17 17 11 12 18 GPIO18–PCM_CLKGPIO27 27 13 14 GNDGPIO22 22 15 16 23 GPIO233V3 17 18 24 GPIO24

    GPIO10–MOSI 10 19 20 GNDGPIO9–MISO 9 21 22 25 GPIO25GPIO11–SCLK 11 23 24 8 GPIO8–CE0

    GND 25 26 7 GPIO7–CE1SDA0 27 28 SCL0

    GPIO5–GPCLK1 5 29 30 GNDGPIO6–GPCLK2 6 31 32 12 GPIO12–PCM0GPIO13–PWM1 13 33 34 GNDGPIO19–PCM_FS 19 35 36 16 GPIO16

    GPIO26 26 37 38 20 GPIO20–PCM_DINGND 39 40 21 GPIO21–PCM_DOUT

    Toutes les broches du connecteur GPIO opèrent à 3,3 V. La carte Raspberry ne dispose d’aucuneprotection contre les surtensions. Si parmégardeune tensionde5Vest appliquée suruneentréeGPIO,leRaspBerryseradétruit.

  • LycéeGustaveEiffel 2nde–ICN

    Module«Programmerunrobot»:LeRobotPoppyErgo-Jr Pagen°16/27

    5–ASSEMBLAGEDUROBOTERGO-JR

    5.1–ASSEMBLAGEMECANIQUE

    Le robot Poppy Ergo-Jr est constitué d’éléments simples assemblés avec desrivetsOLLOquipeuventêtremontésetdémontésfacilement.

    -RivetsOLLO-

    L'extrémitédubraspeutêtrefacilementchangée.Ilestpossibledechoisirentreplusieursoutils:

    Lampe Pince Porte-stylo

    Ladocumentationd’assemblage:https://docs.poppy-project.org/fr/assembly-guides/ergo-jr/

    5.2–CONFIGURATIONDESSERVOMOTEURS

    Les6servomoteurssontconnectésaumêmebussérie.Ilsdoiventdoncposséderunidentifiantunique.Alasortiedel'usinelesservomoteursreçoiventtouslemêmeidentifiant:1.Ilestnécessaired’attribuerunnouvelidentifiantuniqueàchacundesservomoteurs.

    Les servomoteurs Poppy Ergo-Jr sontappelésm1,m2,m3,m4,m5,m6.Leguidedeconfigurationdesservomoteursest disponible à l’adresse suivante:https://docs.poppy-project.org/fr/assembly-guides/ergo-jr/motor-configuration.html

    -Identificationdesservomoteurs-

    Moteurm1

    Moteurm2

    Moteurm3

    Moteurm4Moteurm5

    Moteurm6

  • LycéeGustaveEiffel 2nde–ICN

    Module«Programmerunrobot»:LeRobotPoppyErgo-Jr Pagen°17/27

    5.3–MISEENPLACEDELACARTERASPBERRYPI

    LacarteRaspberrynécessiteun systèmed’exploitationafinde fonctionner. Le systèmed’exploitationutiliséestbasésurunedistributionRaspbian.IlestdoitêtreinstallésurlacarteSDquiseraplacéedansleslotprévuàceteffetsurlacarteRaspberry.

    Le guide de mise à jour de la carte SD est accessible à l’adresse suivante: https://docs.poppy-project.org/en/installation/burn-an-image-file.html

    5.4–ASSEMBLAGEDESCARTESELECTRONIQUES

    Connecter la carte « Pixl » sur le port GPIO de la carte Rapsberry.

    -ConnexiondelacartePixl-

    Brancherleblocd’alimentationsurlaprisejackdelacarte«Pixl».

    -Connexiondublocd’alimentation-

    Connecterleservomoteurm1surleconnecteurmollex.

    -Connexionduservomoteurm1-

    Il faut absolument déconnecter l'alimentation de la carte « Pixl » avant de la connecter ou dedéconnecter de la carte Raspberry pi. Sinon le convertisseur de courant de la carte « Pixl » risqued’êtredétruit.

    ConnecterlecâbleFlexdelacamérasurleconnecteurCSIdelacarteRaspberry.

    -Connexiondelacaméra-

  • LycéeGustaveEiffel 2nde–ICN

    Module«Programmerunrobot»:LeRobotPoppyErgo-Jr Pagen°18/27

    6–PROGRAMMATIONDUERGOT-JRLesdeuxprincipalesmanièresdeprogrammerlerobotErgot-Jrsontl’utilisationdulangageSnap!etlelangagePython.Le langage Snap! est un langage de programmation visuel. Il s’agit d’une ré-implémentation du logiciel Scratch développée par l’université de Berkeley. Celangageestbasésurl’imbricationdeblocsdecommandes.Snap!permetdecréersespropresblocsdeprogrammationet intègredes fonctionnalitéspluspointuesenprogrammation.

    -LogodeSnap!-

    Snap! est écrit en Javascript et utilise leformat HTML pour les animations, ce qui lerendportablesurn’importequelnavigateur.Deplus,ilestaussiutilisablesurlesappareilsmobilesayantuneconnexionInternet.

    -InterfacedeprogrammationSnap!-

    IlestpossibledeprogrammerlerobotPoppyErgo-Jr à l’aide du langage Python à partird’un navigateur web en utilisant JupyterNotebook. Jupyter est une applicationWEBqui propose un terminal interactif(interpréteur)quipermetd’exécuterducodeenlelangagePython.

    -NotebookErgo-Jr-

  • LycéeGustaveEiffel 2nde–ICN

    Module«Programmerunrobot»:LeRobotPoppyErgo-Jr Pagen°19/27

    7–ETABLIRLACOMMUNICATIONAVECLEROBOTPOPPYERGO-JR

    TouteslesapplicationsnécessairesaubonfonctionnementdurobotPoppyErgo-Jrsontinstalléesdansla carte Raspberry. Elles sont accessibles au travers serveur web de la carte Raspberry. Il est doncpossibledeprogrammerlesansinstallationdelogicielssurl’ordinateur.

    ConnecterlerobotPoppyetl’ordinateursurlemêmeréseau.

    OuvrirunnavigateurWEBettaperdanslabarreURL:«http//adresse_IP»ou«http//poppy.local»

    -Paged’accueildel’InterfacedurobotPoppyErgo-Jr-

    Lesdifférentsboutonsdelapaged’accueilsont:

    − «Monitor and Control»: commanderle robot à partir d’une interfacegraphique.

    -InterfacedeprogrammationSnap!-

  • LycéeGustaveEiffel 2nde–ICN

    Module«Programmerunrobot»:LeRobotPoppyErgo-Jr Pagen°20/27

    − «Snap! – Build Your Own Blocks »:programmer le robot à partir dulangageSnap!.

    -InterfacedeprogrammationSnap!-

    − «Jupyter – Python, Terminal»:programmer le robot à partir dulangagePython.

    -InterfacedeprogrammationSnap!-

    − «Configure the Robot»: modifiercertainespropriétésdurobotcommelenom du robot ou l’activation de lacaméra.

    -InterfacedeprogrammationSnap!-

    − «ReboottheRobot»:redémarrerlerobotencasdeproblème.

    − « What happened ? » : visualiser lefichierdelogsencasd’erreurs.

    -InterfacedeprogrammationSnap!-

    − «ShutdowntheRaspberryPi»:Eteindrelerobot.

  • LycéeGustaveEiffel 2nde–ICN

    Module«Programmerunrobot»:LeRobotPoppyErgo-Jr Pagen°21/27

    8–ROBOTVIRTUELIl est possible de simuler le fonctionnement du robot Ergo-Jr via un robot virtuel. Cette simulationpermet de développer et de tester des programmes sans nécessiter le robot réel. Il existe deuxpossibilitésdesimulerlefonctionnementdurobot:lerobotvirtuelV-REPouleVisualisateurweb.

    V-REP est un simulateur robotique gratuit pour lesétablissements scolaires. Il permet de simuler un certainnombre de robots notamment le robot Ergo-Jr. Cesimulateurpermetl’interactionavecdesobjetsphysiquesmais nécessite l’installation préalable de logiciels surl’ordinateur.

    -SimulateurV-REP-

    Le guide d’installation du simulateur V-REP est accessible à l’adresse suivante:https://docs.poppy-project.org/fr/installation/install-vrep.html

    Levisualisateur(ouWebViewer)permetdevisualiserlerobotErgo-Jrdansunnavigateurweb.Ilnenécessitepasd’installationpréalableetdemandemoinsderessourcesmais il ne pourra pas interagir avec des objets de sonenvironnement.

    -Visualisateur-

    Le guide d’utilisation du visualisateur est accessible à l’adresse suivante:https://docs.poppy-project.org/en/getting-started/visualize.html#using-our-web-visualizer

  • LycéeGustaveEiffel 2nde–ICN

    Module«Programmerunrobot»:LeRobotPoppyErgo-Jr Pagen°22/27

    9–PROGRAMMERLEROBOTPOPPYERGO-JRENSNAP!

    9.1–LANGAGEDEPROGRAMMATIONSNAP!

    Le langage de programmation Snap! Il s’agit d’une ré-implémentation du logicielScratchdéveloppéeparl’universitédeBerkeleyenCalifornie.

    -LogoSnap!-

    CommeScratch,Snap!estbasésurl’imbricationdeblocsdecommandes.CependantSnap!permetdecréer sespropresblocsdeprogrammationet intègre des fonctionnalités plus pointues en programmation et peutdoncêtreutiliséparunpublicplusavancé.

    -ScriptSnap!-

    Snap! a été développé en Javascript et utilise le format HTML pour les animations, ce qui le rendportablesurn’importequelnavigateuravecquelqueslimitationspourInternetExplorer.Ilestpeut-êtreégalementimplantésurdesappareilsmobiles.

    9.2–ACCESAL’INTERFACEDEDEVELOPPEMENTSNAP!DUROBO

    Connecterl’ordinateuraurobotenentrantl’URL«http://poppy.local/»dansunnavigateurWEB.Surlapaged’accueil,cliquersurlacase:

  • LycéeGustaveEiffel 2nde–ICN

    Module«Programmerunrobot»:LeRobotPoppyErgo-Jr Pagen°23/27

    9.3–INTERFACEDEDEVELOPPEMENTSNAP!DUROBOT

    L’interfacededéveloppementSnap!estdécouperenplusieurszones:

    Listedesblocsdeprogrammationdisponibles Listedessprites(objetsprogrammables)

    Zoned’affichageZonedeprogrammation

  • LycéeGustaveEiffel 2nde–ICN

    Module«Programmerunrobot»:LeRobotPoppyErgo-Jr Pagen°24/27

    9.4–BLOCDEPROGRAMMATIONPOPPYERGO-JR

    Snap! possède un certains nombres de blocs dont la forme et la couleur varient en fonction de leurutilité.PourprogrammerlerobotPoppy,ilfautchargerdesblocsspécifiquesàsaprogrammation.Cesblocssetrouventdanslefichier«pypot-snap-blocks.xml»déjàprésentsur lacarteRaspberryPi.Pourchargercesblocs:

    − cliquersurl’icône

    − Cliquersur«Open…»

    − Cliquer sur «Examples». Sélectionner «pypot-snap-blocks.xml»puiscliquersur«Open»

    -ChargerlesblocsspécifiquesaurobotPoppy-

    Deuxblocssetrouvedanslezonedescript.Lebloc«set»permet de régler l’adresse IP du robot et le bloc «testconnection» permet de vérifier la connexion entre lerobotetl’ordinateur.

    -Connexionaurobot-

  • LycéeGustaveEiffel 2nde–ICN

    Module«Programmerunrobot»:LeRobotPoppyErgo-Jr Pagen°25/27

    9.4–PREMIERPASAVECLEROBOTPOPPYERGO-JR

    9.4.1–Activationetdésactivationdesservomoteurs

    Le script ci-contre permet d’activer tous les servomoteurs(mode«stiff»)lorsquelaflèchebasduclavierestappuyéeetde désactiver tous les servomoteurs (mode «compliant»)lorsquelaflèchehautduclavierestappuyée.

    -Activationetdésactivationservomoteurs-

    En mode «compliant», les servomoteurs sont désactivés, c’est-à-dire au repos. Ils peuvent êtremanipulésà lamain.Enmode«stiff», les servomoteurs sontactivités, ils sebloquentetnepeuventplusêtremanipulermanuellement.Pourtrouverlesblocsdanslazonedesblocsilestpossibled’effectuerunerecherchepar:

    − catégorie (couleur). Le bloc «When…» et le bloc «set motor(s)» setrouventdans lapalette«Control». Lebloc«allmotors»dans lapalette«Sensing».

    -Palettesdesblocs-

    − motclé: cliquersur«Ctrl+ f»oualors sélectionner«findsblocks»avecunclicdroitdelasourisdanslazonedesblocsdeprogrammation.Entrerlemotclédans l’ongletquiestapparu.Parexemples«when»ou«motor»permettrontd’obtenirlesblocsnécessairesauscriptci-dessus.

    -Recherchedeblocs-

  • LycéeGustaveEiffel 2nde–ICN

    Module«Programmerunrobot»:LeRobotPoppyErgo-Jr Pagen°26/27

    Pourplacerunblocdanslazonedescript,ilsuffitdelesélectionneravec leboutongauchede la souris et de le glisserdans la zonedescript.Ilsuffitalorsd’emboîterlesblocspourobtenirlescriptvoulu.

    -Connexondeblocs-

    Pour choisir la touche sur laquelle il faut appuyer, il fautcliquersurlaflèchenoiredanslebloc«When».De même pour passer de «compliant» à «stiff», il fautcliquersurlaflèchenoiredanslebloc«setmotor(s)».

    -Réglagesparamètres-

    Pouractiverunbloc, il faut l'exécuter.Pourcela, il fautcliquer sur leblocousur legroupedeblocs,celui-cienvoiealorsunecommandeaurobot.

    9.4.2–Animerlerobot

    Leblocci-contrepermetdeplacerlerobotdans la position initiale, c’est-à-dire quetouslesservomoteurssontdanslaposition0(0°)en2s.Pourexécutercebloc,ilestnécessairequelesservomoteurssoientenmode«stiff».

    -Servomoteurspositionnésà0°-

  • LycéeGustaveEiffel 2nde–ICN

    Module«Programmerunrobot»:LeRobotPoppyErgo-Jr Pagen°27/27

    9.4.3–Contrôlerlesmoteursunparun

    Chaquemoteuraunnom,ilssontnumérotésdem1(àlabase)àm6(l’extrémité).Lesmoteursontcertaines limites, toutes lespositionsnepeuventpasêtreatteintes

    -Listeetnumérosdesdifférentsservomoteurs°-

    Les blocs ci-contre permet de contrôler lesservomoteurs les uns indépendamment desautres.Dansl’exemplelesservomoteursm1àm5sontplacésà0°etm6à90°.

    -Servomoteurspositionnésdemanièreindépendante°-

    9.4.4–Récupérerlapositiondechacundesservomoteurs

    Placertouslesservomoteursenmode«compliant»puisfairevarier manuellement la position des servomoteurs. Placer ànouveau tous les servomoteursenmode«stiff»etexécuterlebloc«getallmotorspositions».

    -Acquérirlapositiondesservomoteurs°-

    9.4.5–ModifierlacouleurdesDELsdesservomoteurs

    Les blocs suivant permettent de commander les DELs desservomoteurslesunesséparémentdesautres.

    -CommandeslesDELSdesservomoteurs°-

    m1

    m3

    m4m6

    m2

    m5