Comment faire bouger le robot avec précision? Présentation et fonctionnalités de Studuino Platform Robotics

image

L'organisation dans laquelle je travaille a été invitée à organiser un petit webinaire sur la robotique pour le Salon international de l'éducation 2020 de Moscou, qui s'est déroulé en ligne. Le sujet de la présentation m'a été laissé ouvert et donné un ensemble pédagogique sur la robotique. J'ai donc pris connaissance des produits de la société japonaise ArTeC (ce n'est pas de la publicité et je ne suis pas un employé d'ArTeC - c'est juste mon expérience personnelle de communication avec leurs produits). Après le webinaire, j'ai décidé d'écrire cet article, car en Russie, les kits de Lego Education étaient très populaires, et c'était la première fois que je rencontrais ce designer japonais.

L'article est divisé en deux parties. La première partie sera utile à ceux qui choisissent un kit de robotique pédagogique. Dans la deuxième partie, j'ai examiné l'utilisation d'un kit pour résoudre un problème appliqué pouvant survenir dans la vie.

Donc, si quelqu'un s'intéresse à ce type de kit robotique et à ce que l'on peut en faire, je demande un chat. Alors allons-y!

Comme base de construction, le concepteur n'utilise que quelques pièces de base à partir desquelles vous pouvez assembler des structures assez complexes.

Blocs de base ArTeC Designer
Modèles de blocs de base ArTeC Designer

image
Exemples de modèles de pièces Designer

En raison des spécificités des pièces - l'ordre échelonné des trous et des pointes pour la connexion, il n'est pas toujours rapide de trouver la bonne combinaison de pièces pour obtenir le résultat. Parmi les avantages, contrairement à Lego: toutes les pièces sont suffisamment grandes, ce qui les rend beaucoup plus difficiles à perdre. Le deuxième avantage est que vous n'avez pas à fouiller longtemps à la recherche de la pièce nécessaire, car il n'y a que 5-6 pièces de pièces de base (la différence de couleur des pièces ne compte pas). Il y a un inconvénient - tant que les pièces sont complètement neuves, leur séparation se transforme parfois en tourment - donc elles s'accrochent étroitement les unes aux autres. Pour aider à les désengager, un outil spécial est inclus dans le kit.

En plus des blocs de base de l'ensemble, il existe plusieurs variétés de roues et d'engrenages, ainsi qu'une crémaillère.

Maintenant sur ce qui est inclus dans la partie électronique de ce kit robotique. Le site Web japonais dispose d'un nombre assez important de capteurs et de modules différents. Bien sûr, j'en avais beaucoup moins, mais ceux qui l'étaient déjà donnaient une certaine marge de créativité.

Pour le remplissage de l'unité de contrôle principale, les Japonais ont fait leur version de la carte Arduino, la finalisant, et l'ont appelée Studuino. Ils y ont ajouté un pilote de commande de moteur CC et ont apporté une ligne pour les connecteurs à 3 broches (BLS-3 standard, ceux-ci sont placés sur des servos). Sur chacun de ces connecteurs, il y a de la puissance: plus et moins, ainsi que l'une des broches de la carte Arduino. Tous les connecteurs sont signés, il est donc difficile de se tromper lors de la connexion.

Plateforme Studuino
Plateforme Studuino

Pour la compatibilité avec les blindages Arduino standard sur les emplacements standard, il existe des connecteurs similaires à Arduino.

La principale différence avec la carte Arduino est que la tension du contrôleur est de 3,3 V. Cela s'explique par le fait que le module de commande central est alimenté par le compartiment à piles fourni pour 3 piles AA (4,5 V au total). La batterie, malheureusement, n'est pas fournie, elle ne peut même pas être achetée sur le site Web du fabricant en option supplémentaire.

La planche est située dans un boîtier en plastique, auquel vous pouvez fixer les parties de base du concepteur et d'autres éléments.

Unité centrale ArTeC
Unité centrale ArTeC

En tant qu'actionneurs, le fabricant propose deux moteurs à courant continu avec réducteurs et jusqu'à 8 servo-variateurs de leur propre conception (leur nombre peut varier en fonction de la configuration du kit). Les moteurs sont connectés via des connecteurs spéciaux qui sont sur la carte.

Moteurs à courant continu avec engrenages et leur connexion
Moteurs à courant continu avec réducteurs et leur connexion

Il est possible d'assembler assez facilement et rapidement la construction la plus simple qui nous vient à l'esprit: une machine robot à deux moteurs, contrôlant que vous pouvez la faire avancer dans la bonne direction.

Machine robotique simple avec deux moteurs à courant continu
Machine robotique simple avec deux moteurs à courant continu

Les moteurs sont contrôlés en définissant les états logiques des bornes D2, D4, D3 pour le moteur, qui est connecté aux connecteurs M1 et D7, D8, D5 pour le moteur connecté au connecteur M2 sur la carte Studuino. C'est à ces conclusions que les développeurs de la carte Studuino ont connecté en parallèle une puce pilote de pilote de moteur. L'utilisation de ces conclusions en y connectant votre circuit, et en même temps en utilisant les moteurs en même temps, échouera.

Considérez comment contrôler un moteur connecté au connecteur M1. En réglant un état logique différent des bornes D2 et D4, il est possible de réaliser la rotation du moteur dans le sens souhaité. Par exemple: avec D2 - 1 et D4 - 0, le moteur tourne dans le sens horaire, et si D2 - 0 et D4 - 1, alors le moteur tourne dans le sens antihoraire. Il est également nécessaire de définir la vitesse de rotation du moteur en définissant la valeur PWM à la broche D3 - elle peut être comprise entre 0 et 255. Si la valeur est 0, le moteur ne tournera pas et si la valeur est 255, nous obtiendrons la vitesse de rotation maximale. Le pilote du moteur permet également un changement instantané du sens de rotation du moteur et prend en charge le mode de freinage moteur. Pour ralentir le moteur, le même état logique égal à 1 doit être réglé aux bornes D2 et D4.

Soit dit en passant, il n'y a pas de broches D3 et D5 dans les connecteurs qui ont 3 broches (GND, VCC, SIG) sur la carte Studuino, mais elles se trouvent sur le connecteur Arduino standard, que les développeurs ont laissé pour maintenir la compatibilité de la plate-forme.

De même, le moteur est contrôlé, qui est connecté au connecteur M2. Pour lui, le sens de rotation est précisé par l'état des bornes D7 et D8, et la vitesse de rotation par la borne D5.

Le programme le plus simple que j'ai écrit a fait bouger la machine robot comme ceci:


Les servos peuvent être connectés aux connecteurs surlignés en rouge sur la carte: D2, D4, D7, D8, D9, D10, D11, D12.

Connexion servo
Connexion des servocommandes

C'est sur ces broches que le microcontrôleur AtMega168 dispose d'un PWM, qui est nécessaire pour contrôler les servocommandes. Si vous connectez le nombre maximum de servos, vous pouvez obtenir une conception intéressante. Dans un souci de démonstration, j'ai assemblé un simple analogue d'un robot ambulant et j'ai essayé de le programmer un peu. Le résultat peut être vu dans la vidéo:


La seule chose à retenir est que si vous prévoyez d'utiliser à la fois des moteurs CC et des servos, vous ne pouvez pas utiliser 2 moteurs CC et 8 servos en même temps, car ils ont des sorties communes contrôlées par un microcontrôleur. Vous pouvez effectuer les configurations suivantes: 2 moteurs CC + 4 servos, 1 moteur CC + 6 servos ou utiliser seulement 8 servos.

Dans tout kit robotique, en plus des actionneurs, il doit y avoir des capteurs qui sont les «yeux» et les «oreilles» de tout robot. Ils sont également là. Dans mon ensemble, il y avait les capteurs suivants: un capteur de lumière, un capteur de son, un capteur d'accélération, deux capteurs IR, un capteur tactile, ainsi que des LED (vert, rouge, bleu, blanc) et un piézodynamique.

Capteurs dans un ensemble
Capteurs dans un ensemble

Les capteurs sont connectés à l'unité centrale à l'aide des câbles fournis avec le kit. Pour fixer les capteurs du modèle de robot sur les boîtiers, ils ont des pointes avec lesquelles ils peuvent être fixés à la structure. J'ai assemblé et programmé quelques conceptions simples pour examiner le fonctionnement des capteurs.

Voici comment fonctionne le capteur tactile:


Et voici comment fonctionne le capteur de lumière:


S'il n'y a pas suffisamment de capteurs standard dans l'ensemble et que vous souhaitez étendre ses fonctionnalités, vous pouvez facilement utiliser la platine d'expérimentation sans soudure et y connecter des circuits, tout comme sur une carte Arduino standard.

Fonctionnalités de recrutement améliorées
Numérotation améliorée

Le prochain point important pour tout kit robotique est la disponibilité d'un environnement de programmation pratique. Ici, le fabricant propose trois options de programmation différentes.

Niveau d'entrée - conçu pour les plus petits utilisateurs, ceux qui ne savent pas encore vraiment lire, mais qui font déjà leurs premiers pas dans le monde adulte de la robotique. Pour eux, l'environnement de programmation le plus simple est offert - celui de pictogramme.

Programmation des icônes
Programmation des icônes

Ici, vous pouvez extraire des pictogrammes avec des actions de base dans le programme (avancer, allumer, allumer la LED, etc.) et configurer leurs paramètres de base.

Lorsque ce niveau est maîtrisé ou que ses capacités deviennent insuffisantes pour résoudre les tâches, vous pouvez passer à l'étape suivante et commencer à utiliser l'environnement de programmation Scratch pour la plateforme Studuino.

Programmation Scratch pour Studuino
Programmation Scratch pour Studuino

Il existe déjà plus d'options de programmation: vous pouvez utiliser des variables et des tableaux, des expressions logiques et arithmétiques, des sous-programmes, ainsi que configurer de manière plus flexible divers blocs pour l'exécution.

Lorsque ces capacités ne sont pas suffisantes, vous pouvez passer à la programmation dans l'IDE Arduino et obtenir un contrôle total sur toutes les capacités matérielles de la plate-forme Studuino. Pour utiliser la carte Studuino dans l'IDE Arduino, vous devez configurer l'environnement selon les instructions du site Web du fabricant (afin que l'environnement voit la plate-forme Studuino dans la liste des cartes prises en charge).

Complet avec un logiciel de programmation, le fabricant donne un ensemble d'instructions pour assembler différents modèles et les programmer. Le logiciel lui-même est disponible gratuitement sur le site Web du fabricant.

Essayons maintenant de résoudre un petit problème pratique en utilisant cet ensemble.

Imaginez que nous avons un robot qui doit avancer et reculer dans l'entrepôt et nous devons le faire s'arrêter aux endroits donnés. Si le robot n'est pas contrôlé, un accident se produira. Un exemple d'un tel accident est illustré ici:


Le déplacement du robot vers l'avant et vers l'arrière peut être effectué à l'aide de moteurs à courant continu ou à l'aide de servos. Les servomoteurs résolvent le problème de l'arrêt du robot au bon endroit (vous pouvez définir avec précision l'angle de rotation du servomoteur). Cette solution a une limitation (nous utiliserons un servo à partir d'un ensemble avec une roue montée dessus) - les servos ne peuvent pas tourner d'un angle de plus de 180 degrés et donc le mouvement de notre robot sera limité à la moitié de la longueur de la révolution de la roue sur le servo, mais généralement vous en voulez plus.

Nous utiliserons un moteur à courant continu avec un réducteur de l'ensemble pour avancer et reculer. Ces moteurs n'ont aucun retour. Après avoir démarré le moteur, nous ne pouvons pas dire jusqu'où le robot a voyagé. Vous pouvez détecter le temps pendant lequel le robot parcourt la distance requise pendant le fonctionnement du moteur et utiliser ces retards dans le programme pour arrêter le robot au bon endroit. Cette méthode présente un inconvénient important - le régime du moteur dépend de la tension qui lui est fournie et de l'effort requis. Comme les batteries sont utilisées dans le robot, qui après un certain temps seront légèrement déchargées et que leur tension deviendra inférieure, alors en même temps, le robot commencera à parcourir une distance plus courte, et il sera nécessaire de sélectionner à nouveau l'heure.

L'option la plus simple que vous pouvez utiliser est un robot, en passant le point souhaité, touche le capteur tactile, qui sera un signal d'arrêt au bon endroit.

J'ai apporté des modifications à ma conception en ajoutant des capteurs tactiles sur le robot, et placé des éléments le long du chemin du robot afin que le robot les touche avec des capteurs tactiles lors de son déplacement.


La vidéo montre que le robot atteint la fin de l '«entrepôt» et touche le «mur» avec le capteur, puis il retourne vers le «mur» opposé de l'entrepôt et là, il touche également. Après cela, le processus est répété. Ainsi, il y a deux points que le robot «connaît» à coup sûr - ce sont les points lorsque le capteur tactile est déclenché.

Programme Scratch Touch pour Studuino
Un programme avec des capteurs tactiles en langue Scratch pour Studuino

Parfois, cela suffit pour résoudre la tâche. Mais nous en voulons plus!

J'ai apporté des modifications à la conception et au programme du robot et voici ce que j'ai obtenu:


Voyons plus en détail ce que j'ai décidé d'exiger du robot. J'ai décidé que deux points d'arrêt ne me suffisaient pas et j'en veux plus. Pour cela, j'ai utilisé un capteur IR, qui est inclus dans le kit. Je l'ai fixé sur une plate-forme mobile, et en dessous j'ai disposé une bande de papier avec des lignes noires pré-dessinées par le marqueur, sur laquelle le robot devrait s'arrêter. J'ai également retiré l'un des capteurs tactiles du robot (sur le côté droit).

Robot IR
Robot avec un capteur IR

En conséquence, j'ai obtenu un schéma classique de l'appareil de l'un des axes d'une imprimante 3D ou d'une machine CNC. Lorsqu'elle est allumée, l'imprimante ne sait pas où elle se trouve et va jusqu'à un côté (jusqu'à ce qu'elle soit touchée par le fin de course), puis elle considère ce point à zéro et commence à compter sa position sur cet axe à partir d'elle.

Dans cette conception, le compte à rebours se produit sur des bandes noires sur papier. Le nombre de ces bandes est connu à l'avance, donc lorsque vous atteignez la dernière bande, vous pouvez revenir au point de référence zéro. Le programme Scratch pour Studuino est présenté ci-dessous.

Programme de Scratch IR Robot pour Studuino
Programme de Scratch IR Robot pour Studuino

Si vous regardez attentivement le programme, vous pouvez voir des valeurs incompréhensibles de 40 et 50, avec lesquelles la valeur du capteur IR est comparée. Pour comprendre ces chiffres, vous devez vous souvenir un peu des signaux pouvant être lus à partir de différents capteurs. Il existe des capteurs numériques et analogiques. Les capteurs numériques ont un nombre fixe de positions et se déplacent d'une position à une autre de manière nette et sans valeurs intermédiaires. Capteurs principalement utilisés avec deux positions. Les capteurs tactiles sont l'exemple le plus frappant d'un capteur numérique: jusqu'à ce que le capteur soit enfoncé, il donne une valeur logique de 1, et lorsqu'il est enfoncé - une valeur logique de 0 (dans ce constructeur et avec ces capteurs, c'est le schéma, mais il existe des schémas où cela se fait dans l'autre sens: pressé - 1, non enfoncé - 0).Les capteurs analogiques décrivent une relation inextricable entre le signal et la tension ou le courant à la sortie et n'ont pas de valeurs fixes. Le capteur infrarouge émet un signal lumineux analogique, qui peut dépendre de divers facteurs, tels que la lumière ambiante, la tension de la batterie et même la température ambiante.

Le signal analogique est converti linéairement en un nombre, pour Scratch for Studuino - dans la plage de 0 à 100. Ceci est fait pour simplifier le travail avec eux pour les utilisateurs finaux (cet environnement de programmation a d'abord été développé pour enseigner aux enfants). Dans l'IDE Arduino, une plage de valeurs «honnête» de 0 à 1023 est émise, ce qui correspond au convertisseur ADC 10 bits présent dans le contrôleur Atmega168. Si vous regardez les différences dans les graphiques entre le signal numérique et analogique, il devient clair pourquoi le signal analogique est une plage de valeurs.

Signal analogique (gauche) et numérique (droite)
Signal analogique (gauche) et numérique (droite) Le

capteur infrarouge, qui est utilisé pour déterminer la ligne d'étiquette noire, fonctionne selon le principe de capture du signal réfléchi. Deux éléments sont clairement visibles sur la figure: LED IR et photodétecteur IR.

Capteur IR
Capteur IR

Si vous placez un obstacle devant le capteur à partir duquel les rayons IR seront réfléchis, mieux ils seront réfléchis par l'obstacle (en fonction de la distance à l'obstacle ou du type d'obstacle), plus ils seront captés par le photodétecteur IR et le capteur retournera plus valeur à l'utilisateur lors de son enquête.

Les nombres 40 et 50 sont sélectionnés empiriquement. Dans mon cas, le capteur a montré, étant au-dessus d'une surface blanche, des valeurs d'environ 65 à 75. Au-dessus de la surface noire, le capteur a renvoyé des valeurs comprises entre 18 et 25. Le nombre 40 est le moment où le capteur commence à passer d'une surface blanche au noir, et le nombre 50 est le moment de la transition d'une surface noire au blanc. Ces chiffres sont pris avec une petite marge afin de bloquer l'erreur de mesure du capteur. Lors du développement d'une conception réelle, il est nécessaire de prendre en compte les conditions dans lesquelles le capteur prendra des mesures (éclairage externe, emplacement du capteur, etc.), car tous ces facteurs affecteront les lectures du capteur. Vous devrez peut-être développer un algorithme pour ajuster constamment ces valeurs en fonction des conditions externes.

Je vais résumer un petit résultat. Deux solutions possibles au problème du déplacement du robot dans l'entrepôt ont été envisagées. Ces deux options nécessitaient des «balises» externes supplémentaires, qui guidaient le robot. Y a-t-il moyen de s'en passer? Pour que le robot, par exemple, sache sous quel angle l'arbre du moteur a tourné et, selon la valeur de l'angle, a décidé de s'arrêter ou d'avancer. Il existe une solution simple à ce problème - l'utilisation d'un moteur avec un codeur (capteur d'angle).

L'ensemble a des moteurs à courant continu avec engrenage, mais ils n'ont pas de codeur. L'idée m'est venue à l'esprit: peut-être pourrais-je essayer de faire un simple encodeur à partir des pièces du concepteur, d'autant plus que les engrenages de l'ensemble ont un module assez grand (taille de dent)?

Les principaux éléments de l'encodeur
Les principaux éléments de l'encodeur

Le problème principal était de choisir l'emplacement et de fixer le capteur IR de sorte qu'il croise la dent de l'engrenage lors de sa rotation. En conséquence, j'ai obtenu une conception de test, qui est illustrée dans la figure ci-dessous.

Modèle de test de l'encodeur
Modèle de test de l'encodeur

Comme vous pouvez le voir sur l'image ci-dessus, le capteur IR est fixé de sorte que l'engrenage traverse sa zone de mesure de travail avec ses dents pendant la rotation. En face (de l'autre côté de l'engrenage) du capteur IR, j'ai également mis un obstacle travaillant sur la réflexion des rayons infrarouges pour obtenir des données plus correctes du capteur. Lorsque l'engrenage tourne et que le capteur infrarouge mesure la réflexion du signal, il y aura de grandes valeurs lorsqu'il y a une dent devant le capteur et de plus petites lorsqu'il y a un «trou» entre les dents de l'engrenage.

Le programme pour travailler avec l'encodeur est développé dans l'IDE Arduino. Pour tester l'efficacité de mon idée, j'ai écrit un programme simple qui démarrait le moteur pour qu'il tourne à vitesse constante et produisait en continu des valeurs du capteur IR vers la console de débogage.

Texte du programme
#define M1_A        2       //   1   1
#define M1_B        4       //   2   1
#define M1_PWM      3       //       1
#define SENSOR_PIN  A4      //     IR-sensor

void setup() {
  Serial.begin(9600);       //      
  pinMode(M1_A, OUTPUT);    //       " "
  pinMode(M1_B, OUTPUT);    
  analogWrite(M1_PWM, 100); //    
  digitalWrite(M1_A, HIGH); //    
  for (int i=0; i < 2000; i++) {    //   2000    -
    Serial.println(analogRead(SENSOR_PIN));   //      
  }
  digitalWrite(M1_A, LOW);  //   
}

void loop() {
}


Selon les données affichées par le programme sur la console, j'ai obtenu le graphique suivant:

Graphique des valeurs du capteur IR pendant la rotation de l'engrenage
Graphique des changements dans les valeurs du capteur IR lors de la rotation de la vitesse

La nature du graphique ressemble à la forme des dents d'un engrenage, ce qui suggère que de telles données peuvent en effet être utilisées pour contrôler la rotation du moteur en utilisant l'engrenage du jeu de concepteur comme disque codeur. Pour éliminer l'hystérésis de «rebond», qui est implémentée comme suit (symboles sur le graphique): MIDDLE est la valeur moyenne entre les valeurs maximum et minimum des lectures du capteur IR, WIDTH est la déviation de MIDDLE à une valeur plus ou moins grande pour créer une certaine «bande d'erreur» »Mesures du signal (la largeur totale de cette bande est de 2 * LARGEUR). MIDDLE et WIDTH seront utilisés dans l'algorithme de contrôle de rotation du moteur. L'algorithme de comptage des dents de l'engrenage lors de la rotation du moteur peut être représenté comme suit:

Algorithme pour compter les dents de l'engrenage pendant la rotation du moteur
Algorithme de comptage des dents de l'engrenage lors de la rotation du moteur.

L'algorithme utilise la notation suivante:

  • prev_state - état d'engrenage précédent;
  • cur_state - état actuel de l'engrenage;
  • count - le nombre de dents d'engrenage comptées;
  • tmp - Lectures du capteur IR.

Le principe du comptage des dents d'engrenage dans cet algorithme est basé sur la lecture constante des lectures du capteur IR et le changement de la valeur de la variable cur_state lorsque le niveau du signal dépasse la ligne supérieure ou inférieure de la "bande d'erreur". Si la valeur dépasse la limite supérieure, la variable cur_state devient égale à 1, ce qui signifie une dent d'engrenage, et lorsqu'elle dépasse la limite inférieure, la variable cur_state devient égale à 0, ce qui signifie une défaillance entre les dents d'engrenage. L'ajout de la variable count ne se produit que lorsque l'état de la variable cur_state change.

Un programme qui utilise cet algorithme est présenté ci-dessous. Dans ce document, j'ai décrit un sous-programme qui attend que le moteur fasse tourner le rapport d'un nombre prédéterminé de dents et qui transfère ensuite le contrôle au programme principal.

Texte du programme
#define M1_A        2       //   1   1
#define M1_B        4       //   2   1
#define M1_PWM      3       //       1
#define SENSOR_PIN  A4      //     IR-sensor

#define MIDDLE      550     //         
                            // ""
#define WIDTH       50      //      ,   
      //    -     
      // 

int enc_tooth = 0;          // ,    
int cur_state = 0;          //   :  (1)  "" (0)
int prev_state = 0;         //   
int tmp;                    //      

void init_enc() {
  enc_tooth = 0;
  cur_state = 0;
  prev_state = 0;

  //         cur_state
  //    ,   = 1,    ""      
  //   0      
  if (analogRead(SENSOR_PIN)>MIDDLE) {
    prev_state = 1;
    cur_state = 1;
    enc_tooth++;
  }  
}

void wait_by_count(int count) {
  //       count,       IR 
  //           ""
  while (enc_tooth <= count) {
    //    IR-    
    tmp = analogRead(SENSOR_PIN);

    //       +  ,    
    if ((tmp + WIDTH) > MIDDLE) {
      cur_state = 1;
    } else {
    //       -  ,    ""
      if ((tmp - WIDTH) < MIDDLE) {
        cur_state = 0;
      }
    }

    //       ,      
    // ,     ""   -  ""  
    if (cur_state != prev_state) {
    //   ,   0  - ,     
    // 
      enc_tooth += cur_state;
    
    //        
      prev_state = cur_state;
    }
  }
}

void setup() {
  //        
  Serial.begin(115200);

  //        ""
  pinMode(M1_A, OUTPUT);
  pinMode(M1_B, OUTPUT);

  //   
  init_enc();

  //    
  analogWrite(M1_PWM, 100);
 
  //    ,      1 (    
  //  0)
  digitalWrite(M1_A, 1);

  // ,    30  
  wait_by_count(30);
  
  //   
  digitalWrite(M1_B, 1);

  Serial.print("  = ");
  Serial.println(enc_tooth);

}

void loop() {
}


Le programme démarre le moteur et attend jusqu'à ce que le pignon tourne de 30 dents - juste un nombre de dents dans le pignon, puis il arrête le moteur. Ci-dessous, une vidéo qui montre le fonctionnement du programme:


Sur une feuille de papier blanche, collée à l'engrenage, vous pouvez suivre sa rotation de 360 ​​degrés.

Sur ce, je veux terminer cet article. En conclusion, je peux dire que je ne me suis pas contenté du modèle d'encodeur. Une plate-forme de robot à part entière a été assemblée avec deux moteurs et deux encodeurs (un pour chaque roue) et un programme a été créé pour synchroniser la rotation des roues en fonction des encodeurs, mais c'est un sujet pour un autre article ... Une

Plateforme robotique avec encodeurs basés sur des capteurs IR
plate-forme de robot avec des encodeurs basés sur des capteurs IR

En tant que concepteur pédagogique en robotique, c'est une bonne option pour les enfants (enfin, les adultes) qui veulent participer à de telles classes, d'autant plus que le fabricant a tout fait pour maximiser la tranche d'âge de ceux qui peuvent utiliser ce produit (la présence de différents environnements de programmation ) Vous pouvez commencer par les éléments les plus simples et les plus élémentaires, et après avoir acquis les connaissances de base, passer à un autre niveau de développement de la robotique et de l'électronique.

All Articles