Bien démarrer avec Cubelets, un premier tutoriel
1 - Un premier robot
Vous avez besoin d’un Cubelet gris-bleu (le Cubelet Batterie), un Cubelet noir (un Cubelet capteur) et un Cubelet transparent (un Cubelet Action). Assemblez-les ensemble. Vous venez de construire un robot ! Tout robot a besoin d’énergie. Le Cubelet gris-bleu est le Cubelet Batterie, c’est lui qui apporte l’énergie électrique à tous les Cubelet auxquels il est connecté. Autant dire qu’au moins un de ces Cubelets doit être inclus dans chacune de vos créations ! Attention, le Cubelet Batterie a un interrupteur, pensez à le mettre sur la position « On » si vous souhaitez qu’il alimente votre robot (et sur la position « Off » lorsque vous avez terminé de l’utiliser afin d’économiser les piles). Un robot est une machine qui ressent, c’est-à-dire qui capte de l’information sur son environnement. Le robot est également une machine qui agit sur son environnement. En conséquence, un robot réalisé à l’aide des Cubelets est une machine qui nécessite un Cubelet capteur (Cubelets noirs) et un Cubelet Action (Cubelets transparents). Connectez ensemble un Cubelet batterie, un Cubelet potentiomètre et un Cubelet transparent lampe torche, émetteur de lumière. Le Cubelet lampe torche émet de la lumière et vous pouvez contrôler l’intensité de cette lumière grâce au bouton du potentiomètre qui joue le rôle de capteur (dans le cas, il capte une information générée par l’action d’un être humain). La lumière de la lampe torche diminue lorsque vous tournez le bouton du potentiomètre dans le sens inverse des aiguilles d’une montre et augmente lorsque vous tournez dans le sens des aiguilles d’une montre. Le robot que vous venez de bâtir se nomme le dimbot. |
2 - Essayez de changer de Cubelet capteur
A présent, remplacez le Cubelet potentiomètre par un Cubelet capteur de lumière. Vous obtenez ainsi toujours un robot lampe torche mais au lieu que l’intensité de la lumière dépende du potentiomètre, elle dépend à présent de l’intensité de la lumière environnant le robot. Test : couvrez le Cubelet capteur de lumière avec votre main (remarque : seule une face d’un Cubelet capteur contient le capteur proprement dit. Cette face est celle qui ne contient pas de connecteurs magnétiques). Vous constatez que la lumière émise par le robot diminue. Enlevez votre main de devant le capteur de lumière et la lumière émise augmente à nouveau. Vous comprenez à présent que vous pouvez échanger les Cubelet capteurs entre eux. Pour chaque nouveau capteur vous obtenez un robot différent. Dans notre cas, nous avons bâti un robot sensible à la lumière. |
3 - Essayez de changer de Cubelet Action
Dans l’étape précédente, nous avons échangé un Cubelet Capteur par un autre Cubelet Capteur. Vous allez constater que vous pouvez également échanger un Cubelet Action par un autre Cubelet Action. A la place du Cubelet lampe torche, placez un Cubelet Drive (C’est le Cubelet de déplacement, avec des roues). Votre robot possède donc à cet instant un Cubelet Drive, un Cubelet capteur de lumière et un Cubelet batterie. Vous constatez que ce robot se déplace lorsqu’il capte de la lumière. Dans une pièce bien éclairée le robot se déplace rapidement et au contraire, dans une pièce peu éclairée, il se déplace lentement. Essayez un nouveau changement. Remplacez le Cubelet Drive par un Cubelet haut-parleur. Vous obtenez le canarybot. Et si vous changiez le Cubelet capteur de lumière par un Cubelet capteur de distance ? Vous obtenez alors le timidbot. Essayez de changer l’orientation du Cubelet Drive. Dans ce cas, vous obtenez le friendlybot. |
4 - Comment les nombres circulent
Chaque Cubelet Capteur (Cubelet noir) mesure une propriété de son environnement sous la forme d’un nombre. Le capteur potentiomètre mesure à quel point vous tournez le bouton. Tournez le bouton à fond dans le sens inverse des aiguilles d’une montre et le cube potentiomètre produit un petit nombre. Tournez-le à fond dans le sens des aiguilles d’une montre et il produit un grand nombre. Chaque Cubelet capteur transmet le nombre qu’il produit à tous ses voisins. Le Cubelet capteur de lumière transmet à ses voisins un nombre indiquant quelle est l’intensité lumineuse de la pièce. Dans une pièce sombre le Cubelet produit un petit nombre tandis que dans une pièce lumineuse, il produit un grand nombre. Chaque Cubelet Action prend le nombre transmit par ses voisins et transforme ce nombre en Action. Le Cubelet lampe torche prend un nombre en entier et allume sa lampe. Si le nombre reçu est élevé, la lampe émet beaucoup de lumière. Si le nombre reçu est petit, alors, la lampe émet peu de lumière. On dit qu’il y a une corrélation entre le signal (le nombre) et l’action physique réalisée par le Cubelet. Imaginez que les nombres circulent d’un Cubelet à l’autre de manière continue, allant des Cubelets capteurs aux Cubelets actionneurs. C’est à cause de cette circulation que les robots se comportent comme ils le font. Dans le cas où il y a plusieurs Cubelets capteurs sur un même robot, Il faut savoir que les nombres ne circulent pas au travers des Cubelets capteurs car ceux-ci produisent leurs propres nombres. |
5 - Utilisation du Cubelet Bar Graph afin de visualiser les nombres
Vous pouvez utiliser le Cubelet Bar Graph afin de savoir ce qu’il se passe dans votre robot, c’est-à-dire visualiser les nombres qui circulent. Connectez le Cubelet Bar Graph sur n’importe quel Cubelet de votre robot. Le curseur présent sur le Cubelet Bar Graph informe à quel point le nombre transporté est important. Si le nombre qui circule est important, alors le nombre de cellules du curseur qui sont illuminées est important. Si le nombre qui circule est faible, peu de cellules sont illuminées sur le curseur du Cubelet Bar Graph. Mettons cela en pratique. Créez un robot simple à l’aide d’un Cubelet capteur de lumière et un Cubelet Drive (et bien-sûr un Cubelet Batterie). Attachez un Cubelet Bar Graph à ce robot, à l’un de ses blocs. S’il y a beaucoup de lumière, le curseur du Cubelet Bar Graph s’illumine complètement. Si vous passez votre main sur le Cubelet capteur de lumière, le curseur montre peu ou pas de cellules illuminées. Vous n’avez pas besoin d’un Cubelet Bar Graph pour faire fonctionner votre robot et souvent, vous n’en avez pas non plus besoin pour comprendre son fonctionnement. Néanmoins, le Cubelet Bar Graph peut être utile dans des cas où votre robot est complexe et où vous avez des difficultés à comprendre ce qu’il se passe (cela permet de déboguer comme on dit en informatique). |
6 - La manière dont sont arrangés les Cubelets fait une différence
Le robot présenté dans l’image ci-contre peut se trouver dans différentes versions car vous pouvez placer les Cubelet Drive selon différentes orientations. Dans le premier cas, le robot avance en ligne droite et dans le second cas, le robot passe son temps à tourner en rond. On peut le nommer turnabot. Ce n’est pas seulement votre choix des Cubelets capteurs ou Cubelets Action qui font la différence, c’est aussi la manière dont vous les arranger entre eux. Les mêmes Cubelets arrangés de manière différente créent un robot différent. Placez le Cubelet capteur de lumière avec la face présentant le capteur vers le bas. Dans ce cas, il ne voit plus aucune lumière. Le robot gobot devient le nogobot. Peu importe la lumière ambiante, le robot n’avance pas puisqu’il ne capte pas la lumière. Essayez à présent de placer le Cubelet capteur de lumière dans différentes directions. Comment cela affecte-t-il le comportement du robot ? |
7 - Stabilité
|
Certains robots sont plus stables que d’autres. Essayez de réaliser un simple robot gobot avec un Cubelet capteur de distance et un Cubelet Drive. Ce robot est stable si vous bâtissez un train de Cubelets (tous les Cubelets alignés). Le Cubelet capteur de distance génère un nombre élevé lorsqu’il détecte un obstacle proche. Pour pouvez chasser ce timidbot à l’aide de votre main. Par contre, si vous bâtissez ce robot sous la forme d’une tour (les Cubelets les uns sur les autres) avec le Cubelet Drive à la base de la tour, le robot fonctionne mais il n’est pas stable. En effet, approchez votre main du Cubelet capteur de distance et le Cubelet Drive se met à fonctionner et votre robot tombe. Pour pouvez corriger ce problème en ajoutant un Cubelet à côté du Cubelet Drive. N’importe quel Cubelet fait l’affaire mais utilisez plutôt le Cubelet vert clair, c’est le Cubelet passif, celui qui ne fait rien. La fonction du Cubelet passif est justement de jouer un rôle dans la structure du robot sans être pour autant un Cubelet capteur ou un Cubelet Action. Notez que vous pouvez bâtir ce gobot de différentes manières. Si le Cubelet capteur de distance est orienté de la même manière que le Cubelet Drive, alors le robot avance vers votre main. Si vous tournez le Cubelet capteur de distance dans la direction opposée, le robot s’éloigne alors de votre main lorsque vous l’approchez. |
8 - Un Cubelet capteur de distance peut contrôler plus d’un Cubelet Action
Créez un robot gobot à l’aide d’un Cubelet capteur de lumière et un Cubelet Drive. Le robot est attiré par la lumière. Ajoutez un Cubelet haut-parleur. Le robot est toujours attiré par la lumière mais il émet également un son lorsqu’il avance. Ajoutez en plus un Cubelet lampe torche. Le robot avance vers la lumière en émettant un son et en émettant de la lumière. Ajoutez les Cubelets Action de votre choix et ils répondent tous au signal généré par le Cubelet capteur de lumière. Lorsque le robot est dans une pièce lumineuse, le capteur de lumière génère un signal fort et en conséquence, les Cubelets Action ont une action forte. Créez un lighthousebot qui utilise un Cubelet potentiomètre afin de contrôler la vitesse de rotation d’un Cubelet rotation sur lequel est posé un Cubelet lampe torche. |
9 - Les Cubelets « réflexion »
Jusqu’ici vous avez découvert le Cubelet batterie, les Cubelets capteurs noirs et les Cubelets Action transparents. Il est temps que vous découvriez les Cubelets colorés. Ce sont les Cubelets Réflexion. Le Cubelet Réflexion le plus simple est le Cubelet Inverse qui est rouge. Les Cubelets Reflexion sont les Cubelets colorés. Revenons à notre robot dimbot sensible à la lumière. Ce robot possède un Cubelet capteur de lumière et un Cubelet lampe torche (il a aussi un Cubelet batterie mais nous arrêtons désormais de la mentionner puisque tous les robots en ont un). Le dimbot nous est peu utile car il émet de la lumière lorsque la pièce dans laquelle il se trouve est illuminé et inversement. On aimerait au contraire avoir un robot qui nous éclaire lorsque la pièce est peu éclairée. |
10 - Le Cubelet Inverse
Placez le Cubelet Inverse rouge entre le Cubelet capteur de lumière et le Cubelet lampe torche. Rappelez-vous l’histoire des nombres qui circulent. Chaque Cubelet capteur produit un nombre. Le Cubelet capteur de lumière produit un nombre élevé lorsqu’il est dans un environnement éclairé. Il transmet ce nombre élevé à ses voisins, en l’occurrence ici, le Cubelet lampe torche qui transforme ce nombre élevé en lumière. Le Cubelet Inverse transforme un nombre élevé en nombre faible et un nombre faible en nombre élevé. Dans le cas de notre robot, le Cubelet capteur de lumière, lorsqu’il est placé dans une pièce lumineuse génère un nombre élevé qui est passé au Cubelet Inverse qui transforme ce nombre en nombre faible et qui transmet ce nombre faible au Cubelet lampe torche qui émet peu ou pas de lumière. Cela fonctionne également dans l’autre sens. Lorsque le robot est placé dans une pièce sombre (ou lorsque vous passez votre main sur le capteur de lumière), le Cubelet capteur de lumière génère un nombre faible qui est passé au Cubelet Inverse qui transforme ce nombre faible en nombre élevé et qui à son tour, transmet le nombre élevé au Cubelet lampe torche qui émet de la lumière. Nous venons d’obtenir un robot qui a le fonctionnement inverse de notre robot dimbot initial. Echangez le Cubelet lampe torche par un Cubelet Drive. Vous venez de réaliser un robot qui se déplace lorsqu’il fait noir et qui s’arrête lorsqu’il est dans un environnement lumineux, c’est le night-gobot. Les Cubelets Réflexion agissent sur les nombres qui circulent, on dit qu’ils transforment le signal. |
11 - Conduite différentielle
Souvenez-vous du robot gobot qui utilise un Cubelet capteur de distance et un Cubelet Drive. Accrochez deux gobot ensemble comme le présente l’image ci-contre, avec les capteurs de distance ayant la même orientation. Vous venez de bâtir le steeringbot. Le steeringbot a deux tours gobot accrochées ensemble par un Cubelet batterie. Chaque tour agit de manière indépendante. En effet, chaque Cubelet capteur de distance ne passe son information qu’à un Cubelet Drive (rappelez-vous qu’un Cubelet capteur bloque le signal en provenance d’un autre Cubelet capteur). Chaque gobot répond à la présente d’un obstacle (votre main). Placez votre main près de la tour droite du robot et le Cubelet Drive de cette tour avance tandis que l’autre reste statique. Lorsqu’une tour avance et pas l’autre, alors le robot tourne sur lui-même. La différence de vitesse entre les deux tours permet de piloter dans quelle direction avance le robot. On nomme cela la conduite différentielle qui est très répandue en robotique (c’est le principe des chenilles sur un engin de chantier par exemple). |
12 - Les Cubelets Action moyennent le signal d’entrée
Nous avons vus qu’un seul Cubelet capteur pouvait contrôler plusieurs Cubelets Actions. Mais si votre robot a deux Cubelets capteurs et un seul Cubelet Action, que se passe-t-il ? Créer un testbot avec deux Cubelets capteurs de distance et un Cubelet Bar Graph entre les deux comme le montre la figure. Le Cubelet Bar Graph montre une valeur faible si aucun des capteurs de distance n’a d’obstacle à proximité. Approchez votre main des deux Cubelets capteur de distance en même temps. Ceux-ci produisent un nombre élevé qui est affiché comme tel par le Cubelet Bar Graph. A présent, approchez votre main d’un Cubelet capteur de distance uniquement. Celui-ci produit un nombre élevé tandis que l’autre produit un nombre faible (puisqu’il n’a rien devant lui). Le Cubelet Bar Graph prend les deux nombres qui lui parviennent et fait la moyenne des deux. Il montre un nombre qui est à mi-chemin entre un nombre élevé et un nombre faible. Tous les Cubelets Action font la même chose. |
13 - Gradients : diffusion
Nous venons de voir qu’un Cubelet Action faisait la moyenne des signaux qu’il recevait. Par contre, si l’un des Cubelets capteur est situé à plus grande distance qu’un autre Cubelet capteur par rapport au Cubelet Action, alors le Cubelet capteur le plus proche a un effet plus fort. Nous allons tester cela à l’aide du Cubelet Bar Graph. Créez un robot à l’aide de deux Cubelets capteur de distance, séparés par deux Cubelets passifs comme sur la figure ci-contre. Placez un Cubelet Bar Graph sur l’un des Cubelet passif. A présent, jouez avec votre robot : placez votre main sur les deux capteurs de distance de manière à ce que le Cubelet BraGraph lise une valeur élevée en provenance des deux capteurs. A présent, faite le test avec alternativement chacun des deux capteurs de distance. Vous constatez que le Cubelet Bar Graph répond avec moins d’intensité pour le capteur de distance qui lui est plus éloigné. Un Cubelet Action effectue la moyenne des signaux qu’il reçoit, pondéré par la distance des Cubelets à l’origine du signal. |
14 - Usage du Cubelet filtre passe-bas en tant qu’interrupteur
Supposons que nous voulons réaliser un gobot sensible à la lumière qui se déplace lorsqu’il voit de la lumière. Supposons également que l’on souhaite pouvoir désactiver le comportement. Bien-sûr on peut faire cela juste en éteignant le Cubelet batterie mais on peut réaliser un interrupteur à l’aide de Cubelets. Voici comment faire. Le robot gobot de base, sensible à la lumière possède deux Cubelets. Un Cubelet capteur de lumière et un Cubelet Drive. Remplacez le Cubelet capteur de lumière par un Cubelet filtre passe-bas (aussi appelé Cubelet Minimum). Ce Cubelet est un Cubelet Réflexion et il indique au Cubelet Drive à quelle vitesse il doit fonctionner. Le Cubelet filtre passe-bas prend tous les nombres que lui envoient les Cubelets voisins et choisit le plus petit de ces nombres afin de le communiquer en sortie aux Cubelets Action. Dans une pièce lumineuse, connectez un Cubelet capteur de lumière au Cubelet filtre passe-bas et ajoutez un Cubelet potentiomètre. Maintenant, si vous tournez le bouton du potentiomètre à fond dans le sens inverse des aiguilles d’une montre, alors le Cubelet filtre passe-bas indique 0 au Cubelet Action parce que c’est le plus petit nombre qu’il reçoit. Le Potentiomètre indique 0 tandis que le capteur de lumière indique une valeur forte. C’est le potentiomètre qui l’emporte. A présent, si l’on tourne le bouton du potentiomètre à fond dans l’autre sens, le Cubelet potentiomètre et le Cubelet capteur de lumière génèrent tous les deux un nombre élevé. Le Cubelet filtre passe-bas va prendre le plus petit des deux (qui sera toujours un nombre élevé) et va le transmettre au Cubelet Action. Nous venons bien de bâtir un interrupteur à l’aide du Cubelet filtre passe-bas et du Cubelet potentiomètre. Remarque : on peut obtenir le comportement inverse à l’aide du Cubelet filtre passe-haut qui est un autre Cubelet Réflexion. |
15 - Utilisez un Cubelet de blocage pour séparer deux sections d’un même robot
Le Cubelet vert foncé permet de transmettre l’énergie issue du Cubelet batterie mais bloque les nombres générés par les Cubelets capteurs. Il est utilisé pour créer deux parties indépendantes d’un robot qui ne dialoguent pas entre elles. Voici un exemple. Une partie du robot est un lighthousebot avec une lampe rotative. L’autre moitié est un robot qui émet un son lorsqu’il voit la lumière du lighthousebot. Le lighthousebot possède un Cubelet potentiomètre qui contrôle la vitesse de rotation d’un Cubelet rotation sur lequel est posé un Cubelet lampe torche qui pointe à l’horizontale. Lorsque vous tournez le bouton du Cubelet potentiomètre dans le sens des aiguilles d’une montre, la lumière s’allume et tourne sur elle-même comme le ferait un gyrophare. A présent, ajoutez un Cubelet de blocage à la base, connecté au Cubelet batterie comme le montre l’image ci-contre. Sur ce Cubelet de blocage, ajoutez un Cubelet capteur de lumière et encore au-dessus, un Cubelet haut-parleur. Le capteur du Cubelet capteur de lumière doit pointer en direction du capteur lampe torche (au moins lorsque ce dernier tourne, il doit à un moment de sa rotation émettre de la lumière en direction du Cubelet capteur de lumière). Chaque fois que la lumière du Cubelet haut-parleur passe devant le Cubelet capteur de lumière, le Cubelet haut-parleur émet un son. Si on augmente la vitesse de rotation du Cubelet rotation à l’aide du Cubelet potentiomètre, on augmente également la vitesse d’émission des sons. Les deux parties du robot n’échange pas de signal et pourtant sont synchronisés grâce à la lumière émise par le Cubelet lampe torche. |
16 - Dépannage
Est-ce que votre robot a une batterie ?
Chaque robot doit avoir une source d’énergie. Veillez à ce que le bloc batterie soit bien allumé à l’aide de l’interrupteur placé sur celui-ci.
Est-ce que la LED placée sur chaque Cubelet est allumée ?
Parfois, il arrive que les Cubelets n’effectuent pas une bonne connexion entre eux. Essayez de tortiller légèrement le Cubelet afin que la connexion s’effectue bien et que la LED s’allume bien. Une simple inspection visuelle des LED permet de rapidement voir où se situent les problèmes de connexion.
Recharge des piles du Cubelet batterie
Le Cubelet batterie contient 2 piles rechargeables. Pour y accéder, dévisser la grosse vis qui se trouve sur le Cubelet batterie, rechargez les piles et remettez les dans le Cubelet batterie.
Connexion des Cubelets entre eux.
Chaque face de connexion des Cubelets possède 3 conducteurs. Le cercle extérieur ainsi que les aimants sont reliés à la masse. Le cercle central fournit l’énergie et le pin de connexion central transporte les données (les nombres qui circulent). Ces 3 connecteurs doivent être parfaitement connectés aux Cubelets voisins afin d’assurer le bon fonctionnement des Cubelets.
Est-ce que votre robot a un Cubelet capteur et un Cubelet Action ?
Tout robot nécessite au moins un Cubelet capteur et un Cubelet Action. Sans Cubelet Action, le robot ne fera rien et sans Cubelet capteur, il ne saura pas quoi faire. Lorsque vous avez un robot plus complexe qui ne fonctionne pas, essayez d'enlever quelques blocs afin de réduire la complexité. Les petits robots simples sont plus faciles à comprendre. Si vous pensez que vos Cubelets sont endommagés, essayez de bâtir un robot très simple comme ceux que nous avons réalisé au début de ce tutoriel.
17 - Remarque pour les programmeurs expérimentés
Les programmeurs informatiques demandent régulièrement “quel est le Cubelet qui effectue les condition Si…Alors ? » ou « quel est le Cubelet qui joue le rôle de microprocesseur ? ». Ces questions sont compréhensibles mais ce n’est pas de cette façon que fonctionnent les Cubelets.
Les Cubelets ne répondent pas au paradigme de la programmation procédurale. Les Cubelets utilisent le principe de la programmation distribuée. Chaque Cubelet contient un microcontrôleur. Le comportement global du robot est la résultant de l’interaction de différents types de Cubelets entre eux et comme nous l’avons vus, de la structure même du robot. Dans les Cubelets, le robot est le programme !
La version originale de cette page se trouve sur la page du fabriquant des Cubelets : http://www.modrobotics.com/cubelets_getting_started_guide