Skip to main content

Leçon 3 : Déplacer deux cubes

Dans la leçon précédente, vous avez appris à coder le bras à 6 axes pour ramasser et placer un cube sur la palette. Dans cette leçon, vous vous baserez sur ce que vous avez appris pour déplacer plusieurs cubes vers la palette. Vous apprendrez à : 

  • Planifiez les lieux de dépôt des cubes que vous placerez sur la palette.
  • Codez le bras à 6 axes pour déplacer deux cubes avec succès vers la palette.

À la fin de la leçon, vous vous fonderez sur votre projet pour ramasser et placer quatre cubes sur la palette dans l'activité. 

Image de l'activité terminée avec 4 cubes sur une palette

Réflexion sur le positionnement sur la palette

Dans la leçon précédente, vous avez déplacé un cube vers la palette et l'avez placé au centre. L'un des avantages de l'expédition de grandes quantités d'articles à l'aide d'une palette est que de nombreux objets peuvent être transportés en même temps. Afin de le faire efficacement, ces objets doivent être disposés de manière efficace pour permettre aux entreprises d'en emballer davantage sur chaque palette qu'elles expédient. 

Une palette serait un moyen inefficace et coûteux de déplacer un ou deux petits objets, comme le fait de placer un cube au centre de la palette. Placer plus de cubes sur la palette, cependant, rend l'expédition plus efficace et plus rentable. Image de deux palettes côte à côte - une avec un seul cube placé au centre et une seconde avec quatre cubes placés sur les coins

Pour ce faire, nous devrons réfléchir à l'endroit où chacun des cubes sera placé sur la palette. Tout au long de cette leçon, vous apprendrez à coder le bras à 6 axes pour déplacer plusieurs cubes et les placer efficacement sur la palette ensemble.

Placez le premier cube

Votre projet de la leçon 2 a déplacé un cube au centre de la palette. La première étape pour placer plusieurs cubes consiste à ajuster l'emplacement de dépôt du premier cube, en le plaçant dans le coin de la palette.

Ouvrez votre projet de la leçon 2 dans VEXcode EXP. 

Image du projet de l'unité 7 Leçon 2

Renommez le projet Unité 7 Leçon 3 et enregistrez-le sur votre appareil. 

Image de la boîte de dialogue du nom du projet dans VEXcode avec Unité 7 Leçon 3

Placez le Cube sur le coin de la palette. 

Déplacez manuellement le bras à 6 axes de sorte que l'aimant touche le haut du cube.

Image de l'aimant touchant le haut du cube dans le coin de la palette

Assurez-vous que le bras à 6 axes est connecté à VEXcode. 

Sélectionnez l'icône Moniteur dans la barre d'outils pour ouvrir le moniteur. 

Image de la barre d'outils avec l'icône Moniteur en surbrillance

Enregistrez les coordonnées x et y de la console de surveillance dans votre bloc-notes d'ingénierie. Il s'agira des coordonnées x et y du lieu de dépôt du cube.

N'oubliez pas que le bras à 6 axes va se déplacer au-dessus de l'emplacement de dépôt avant de déplacer le cube vers la palette. Cela signifie que vous n'avez pas besoin d'enregistrer la valeur z. 

 

Image des valeurs x, y, z dans la console du moniteur

Saisissez les coordonnées x et y du nouvel emplacement de dépôt dans votre projet. La coordonnée z doit rester la même, de sorte que le bras à 6 axes reste au-dessus de l'emplacement de dépôt. 

Assurez-vous d'utiliser vos coordonnées, car celles indiquées ici sont un exemple et peuvent différer de vos propres coordonnées enregistrées.

Image du projet avec les nouvelles valeurs x et y saisies dans le projet

Assurez-vous que le bras à 6 axes est connecté à VEXcode et que le cube est placé dans la zone de chargement.

Exécutez le projet pour le tester. Observez les comportements du bras à 6 axes. Prend-il et place-t-il le Cube sur le coin de la palette comme prévu ? Pourquoi ou pourquoi pas ? 

Image du bouton EXÉCUTER dans la barre d'outils

Arrêtez le projet lorsque le bras à 6 axes a cessé de bouger. Enregistrez vos observations dans votre cahier d'ingénierie. 

Image du bouton d'ARRÊT dans la barre d'outils

Déplacement d'un deuxième cube

Maintenant que le premier cube est dans le nouveau lieu de dépôt, il y a de la place sur la palette pour placer des cubes supplémentaires. Les mêmes comportements utilisés pour déplacer le premier cube seront répétés afin de déplacer un second. Le bras à 6 axes devra se déplacer vers le même emplacement de ramassage, engager l'aimant, déplacer le cube vers la palette et libérer le cube.Image des 2 cubes étiquetés sur la palette

Il existe plusieurs stratégies de codage que vous pouvez essayer pour aider à déplacer les deux cubes avec succès. 

Ajout d'un bloc de répétition

Sachant qu'une séquence de comportements va être répétée, la première stratégie à essayer consiste à utiliser un bloc de répétition. Comme vous l'avez appris dans l'unité précédente, un bloc de répétition est utile pour répéter des blocs ou une pile de blocs dans un projet.

 

Ajoutez un bloc Repeat à votre projet sous le bloc Set end effector, comme indiqué ici.

Fichier vidéo

Faites glisser le bloc Déplacer le cube vers le bloc Commentaire de la palette dans le bloc Répéter, comme indiqué ici. Cela fera également glisser tous les blocs suivants dans le bloc Répéter. 

Maintenant, tous les blocs nécessaires pour ramasser et placer un cube de l'emplacement de ramassage au coin de la palette peuvent être répétés. 

Fichier vidéo

Réglez le paramètre dans le bloc Répéter sur 2.

Puisque vous essayez de déplacer deux cubes vers la palette, les comportements seront répétés deux fois. 

Image du paramètre du bloc Répéter réglé sur 2

Lisez le code que vous avez construit et prédisez ce que le bras à 6 axes fera lorsque le projet sera exécuté. 

Enregistrez votre prévision dans votre cahier d'ingénierie. Vous pouvez esquisser la trajectoire du bras à 6 axes ou dessiner l'endroit où les cubes seront placés sur la palette. 

Image du projet avec la boucle Repeat dedans

Assurez-vous que le bras à 6 axes est connecté à VEXcode.

Exécutez le projet pour le tester. Observez les comportements du bras à 6 axes lorsque le projet est exécuté.

Image du bouton EXÉCUTER dans la barre d'outils

Arrêtez le projet lorsque le bras à 6 axes finit de bouger. Enregistrez vos observations dans votre cahier d'ingénierie. 

Le bras à 6 axes a-t-il déplacé les deux cubes vers la palette avec succès ? Pourquoi ou pourquoi pas ? 

Image du bouton d'ARRÊT dans la barre d'outils

Cela n'a pas déplacé le deuxième cube comme prévu et a provoqué une erreur. Puisque le premier Cube a été placé dans cette position, le deuxième Cube ne peut pas également être placé au même endroit. Le bras à 6 axes n'a pas pu atteindre l'emplacement, une erreur s'est donc produite. 

Pour placer le deuxième Cube sur la palette, nous devrons déplacer ce Cube en position ouverte sur la palette. 

Déplacer le deuxième cube par rapport au premier

Connaître la position du premier Cube sur la palette, signifie que le Cube suivant peut être placé par rapport au premier. Vous avez appris le mouvement relatif dans l'unité précédente, et vous pouvez maintenant appliquer ces concepts pour aider à placer le deuxième cube. 

Pour atteindre le coin suivant de la palette, le bras à 6 axes se déplacera dans la direction positive le long de l'axe y. Image de la palette avec 2 cubes dessus, avec une flèche indiquant la direction y positive

En utilisant ce que l'on sait sur la taille du Cube, le décalage nécessaire pour placer le deuxième Cube peut être déterminé. Le décalage est la différence entre l'emplacement actuel et l'emplacement souhaité d'un objet. Sur la palette, le décalage pour le deuxième cube est la distance entre le centre du premier cube et le centre du deuxième cube à l'emplacement souhaité.

Étant donné qu'un Cube a une largeur de 25 mm, nous pouvons estimer que le décalage est de 50 mm.Image de deux cubes sur la palette avec le décalage indiqué

Maintenant que vous connaissez la distance et la direction du mouvement relatif nécessaire, ces informations peuvent être ajoutées au projet.

Ajoutez un bloc de position d' incrément au projet comme indiqué ici. 

Fichier vidéo

Réglez le paramètre y sur 50. Cela indique un mouvement relatif de 50 mm le long de l'axe y. 

Image du paramètre y saisi dans le projet

Lisez le code et prédisez le comportement du bras à 6 axes. 

Enregistrez votre prévision dans votre cahier d'ingénierie. Pensez-vous que ce projet réussira à placer les deux cubes aux endroits souhaités ? Pourquoi ou pourquoi pas ? 

Image du projet à ce stade

Assurez-vous que le bras à 6 axes est connecté à VEXcode. Exécutez le projet pour le tester. 

Observez le comportement du bras à 6 axes.

Image du bouton EXÉCUTER dans la barre d'outils

Arrêtez le projet lorsque le bras à 6 axes a fini de bouger. Enregistrez vos observations dans votre cahier d'ingénierie. 

Votre observation correspondait-elle à votre prédiction ? Les deux cubes sont-ils déplacés vers les emplacements prévus sur la palette ? Pourquoi ou pourquoi pas ? 

Image du bouton d'ARRÊT dans la barre d'outils

Comme vous l'avez peut-être prédit, ce projet ne déplace pas non plus les deux cubes à leur emplacement prévu. Le bloc de position d'incrémentation a correctement déplacé le bras à 6 axes à la position souhaitée pour le deuxième cube. Cependant, comme tous les comportements ont été répétés, les deux cubes ont été déplacés à cet endroit. Cela a créé la même erreur que le projet précédent, juste à un emplacement différent sur la palette. 

L'objectif est de placer le premier Cube au premier emplacement et le deuxième Cube au deuxième emplacement sur la palette. Pour ce faire, le projet doit garder une trace de quel cube est déplacé. Si le premier cube est déplacé, il doit aller au premier emplacement. Si le deuxième cube est déplacé, il peut être placé au deuxième emplacement. 

Déplacement de deux cubes à l'aide de variables et d'un bloc If then

Pour garder une trace de quel cube est déplacé, une variable peut être créée et utilisée dans le projet pour essentiellement « compter » les cubes au fur et à mesure de leur manipulation. Une variable peut être utilisée pour stocker des informations sur le cube déplacé. Ces informations peuvent ensuite être utilisées pour prendre une décision dans le cadre du projet. Si le bras à 6 axes déplace le deuxième cube,  il doit le déplacer vers le deuxième emplacement de la palette.  

 

Créez une variable et nommez-la CubeCount. Sélectionnez Soumettre pour créer la variable. 

Vous pouvez revoir la leçon 2 de l' unité 6 pour des rappels sur la façon de créer une variable dans VEXcode.

Image de la boîte de dialogue de dénomination des variables dans VEXcode

Ajoutez le bloc Définir la variable au projet au-dessus du bloc Répéter, comme indiqué ici. 

Fichier vidéo

Réglez le paramètre sur 1. Assurez-vous que la variable CubeCount est sélectionnée dans la liste déroulante. 

Au démarrage du projet, le premier cube sera récupéré. Étant donné que le but de cette variable est de numéroter le cube qui est déplacé, il doit être réglé sur « 1 » pour commencer. 

Image du bloc de variables Set dans le projet avec la variable Cube Count définie et le paramètre défini sur 1

Auparavant, un bloc de position d'incrément a été ajouté pour déplacer le bras à 6 axes vers le deuxième emplacement de dépôt. Afin de déplacer le premier cube vers l'emplacement de dépôt, ce bloc doit être supprimé.

Faites un clic droit sur le bloc Incrémenter la position et supprimez-le, comme indiqué ici. 

Fichier vidéo

Ajoutez un bloc Modifier la variable au bas du bloc Répéter, comme indiqué ici.

Lorsque le projet est exécuté, le premier cube sera déplacé vers l'emplacement de dépôt. L'ajout du bloc de variable Change ici entraînera une augmentation du CubeCount après la livraison du premier Cube. Lorsque le bloc Répéter reboucle pour ramasser le deuxième cube, la variable est augmentée de '2', indiquant que le deuxième cube est en cours de déplacement. 

Fichier vidéo

Maintenant que le projet stocke des informations sur le nombre de cubes, nous pouvons utiliser ces informations pour prendre une décision. Un bloc If then nous permet de poser une question dans un projet et d'utiliser des informations (comme la valeur d'une variable) pour prendre une décision. Image of the If then block in VEXcode

Le bloc If then est un bloc C qui accepte les blocs rapporteurs booléens comme condition. Un bloc booléen renvoie une condition VRAIE ou FAUSSE, et s'adapte à l'intérieur de n'importe quel bloc avec une entrée hexagonale. Si la condition EST VRAIE, les blocs du bloc C s'exécuteront. Si la condition est signalée comme FAUSSE, le bloc If then sera ignoré dans le projet. 

Dans ce cas, la condition que nous recherchons est que la variable CubeCount soit 2. Si la variable CubeCount est 2 , le bras à 6 axes doit passer à la deuxième position sur la palette. 

Réfléchissons à l'endroit du projet où cette décision doit être prise. Le projet ramassera le Cube dans la zone de chargement, puis se déplacera au-dessus de l'emplacement de dépôt. Si le CubeCount est de 2 le bras à 6 axes devra effectuer un comportement supplémentaire pour passer à la deuxième position de palette. Image of the project broken down

 

Ajoutez un bloc If then au projet comme indiqué ici. 

Image du bloc Si alors ajouté au projet avec un commentaire

Ajoutez un Égal pour bloquer dans l'espace hexagonal dans le bloc Si alors, comme indiqué ici.

Fichier vidéo

Ajoutez la variable CubeCount dans le côté gauche de l' opérateur Égal à. Réglez le côté droit de l' opérateur Égal sur 2, comme indiqué dans cette vidéo.

Si la variable CubeCount est égale à 2, la condition booléenne sera déclarée comme VRAIE. Si CubeCount n' est pas égal à 2, la condition booléenne sera déclarée comme FAUSSE. 

Fichier vidéo

Ajoutez un bloc de position d'incrément à l'intérieur du bloc C comme indiqué ici. 

Fichier vidéo

Réglez le paramètre y du bloc de position Incrément sur 50. 

Lorsque la condition du bloc If then est remplie, le bloc Increment position à l'intérieur du bloc If then sera exécuté. Cela signifie que si le CubeCount est de 2, le bras à 6 axes effectuera le mouvement relatif vers la deuxième position sur la palette.

Image du projet avec le paramètre y ajouté

Lisez le code et prédisez ce que le bras à 6 axes fera lorsque le projet sera exécuté. 

Enregistrez votre prévision dans votre cahier d'ingénierie.

Image du projet en VEXcode EXP

Assurez-vous que le bras à 6 axes est connecté à VEXcode. Exécutez le projet pour le tester. 

Observez le comportement du bras à 6 axes pendant le déroulement du projet. 

Image du bouton EXÉCUTER dans la barre d'outils

Arrêtez le projet lorsque le bras à 6 axes a fini de bouger. Enregistrez vos observations dans votre cahier d'ingénierie.

Le bras à 6 axes a-t-il bougé comme prévu ? Les deux cubes ont-ils été déplacés vers la palette comme prévu ? Pourquoi ou pourquoi pas ?

Image du bouton d'ARRÊT dans la barre d'outils

Pour votre information

Vous voudrez peut-être exécuter le projet plusieurs fois, afin de pouvoir faire attention aux blocs qui s'exécutent lorsque le bras à 6 axes se déplace. Recherchez la surbrillance autour des blocs au fur et à mesure qu'ils sont exécutés dans le projet, pour vous aider à mieux comprendre quand le bloc If then est exécuté. Vous pouvez également utiliser la fonction Étape pour exécuter le projet un bloc à la fois, pour vous aider à voir le flux du projet avec le bloc Si alors plus clairement. Image of the STEP button in the Toolbar

N'oubliez pas que vous pouvez ajouter une variable au moniteur, pour aider à voir la valeur CubeCount lorsque le projet est en cours d'exécution. Pour ajouter une variable au moniteur, faites glisser la variable dans l'icône du moniteur dans l'espace de travail, comme indiqué dans cette vidéo. Lorsque vous exécutez le projet, assurez-vous de regarder la variable dans le moniteur, pour vous aider à voir le lien entre la valeur de la variable et le flux du projet.

Fichier vidéo

Examen du projet 

Passons en revue le processus de résolution de problèmes qui a été utilisé pour résoudre le défi de placer deux cubes sur la palette. Il y a eu plusieurs itérations du projet pour que le bras à 6 axes déplace les deux cubes comme prévu : 

  • Un bloc de répétition a été ajouté pour répéter les comportements nécessaires pour ramasser, déplacer et livrer un cube à la palette.
  • Un bloc de position d'incrément a été ajouté pour déplacer le deuxième cube vers une position ouverte sur la palette.
  • Une variable a été ajoutée pour compter les cubes, afin qu'une décision puisse être prise en fonction du cube déplacé. 
  • Un bloc If then a été ajouté pour prendre une décision basée sur la valeur de la variable. 

Toutes ces itérations ensemble ont créé un projet qui a repris et livré les deux cubes avec succès. Lorsque le deuxième cube a été ramassé, le bras à 6 axes a de nouveau déplacé le cube au-dessus de l'emplacement de dépôt d'origine sur la palette. Puis une décision a été prise. Image of the 6-Axis Arm with the second Cube held above the first Cube, and the VEXcode project with the If then block highlighted and the variable count at 2 in the MonitorPuisque le CubeCount est '2', le bloc à l'intérieur du bloc If then fonctionne, déplaçant le Cube le long de l'axe y jusqu'à la position souhaitée de la palette.

Le processus itératif dans lequel vous vous êtes engagé tout au long de cette leçon est quelque chose que vous continuerez à faire chaque fois que vous résolvez un défi avec le bras à 6 axes. Il est important de se rappeler que la plupart des problèmes de codage ne seront pas résolus parfaitement du premier coup. Ce processus de planification, de construction, de test et d'évaluation peut amener votre groupe à trouver des solutions créatives. La plupart des défis peuvent être résolus de plusieurs façons, donc en vous engageant dans ce processus de manière collaborative, vous pouvez trouver la stratégie qui fonctionne le mieux pour votre groupe. 

Activité

Maintenant que vous avez déplacé deux cubes de la zone de chargement vers la palette, vous allez pratiquer ces compétences. Dans cette activité, vous développerez votre projet à partir de cette leçon pour coder le bras à 6 axes et déplacer quatre cubes vers la palette.

Image de l'activité terminée avec quatre cubes sur une palette

Activité : Codez le bras à 6 axes pour placer quatre cubes sur une palette.

  1. Planifiez comment vous allez construire sur votre projet pour coder le bras à 6 axes pour ramasser le cube supplémentaire de la zone de chargement et le placer sur la palette avec votre groupe. Assurez-vous que vous êtes tous d'accord sur votre approche avant de commencer à modifier le projet. 
    1. Documentez votre plan dans votre cahier d'ingénierie.
    2. Renommez l'activité Unité 7 leçon 3 de votre projet et enregistrez-la sur votre appareil avant de commencer à modifier le projet.
  2. Modifiez le projet dans VEXcode pour qu'il corresponde au plan convenu par votre groupe.
  3. Exécutez le projet pour le tester. Placez manuellement les deuxième, troisième et quatrième cubes dans la zone de chargement une fois que chaque cube a été placé.
  4. Le bras à 6 axes déplace-t-il avec succès les cubes comme prévu ? Il devrait y avoir quatre cubes sur la palette. Si ce n'est pas le cas, continuez à modifier le projet jusqu'à ce que vous ayez placé les quatre cubes avec succès. 

Vérifiez votre compréhension

Avant de passer à la leçon suivante, assurez-vous de comprendre les concepts de cette leçon en répondant aux questions suivantes dans votre cahier d'ingénierie. 

Vérifiez votre compréhension des questions > (Google Doc / .docx / .pdf)


Sélectionnez Suivant > pour passer à l'activité Tout mettre ensemble.