module « programmer un robot » : le robot poppy …lycée gustave eiffel 2nde – icn module «...
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