Bloc EV3 : menu, visualisation capteurs, programmation. LEGO Mindstorms Education EV3 - Examen du constructeur. Lisez les dernières nouvelles du monde de Lego - Description du son du bloc EduCube Lego mindstorms ev3

Description de la présentation sur des diapositives individuelles :

1 diapositive

Description de la diapositive :

2 diapositives

Description de la diapositive :

L'interface de la brique EV3 La brique EV3 est le centre de contrôle qui alimente vos robots. Avec un écran, des boutons de contrôle de la brique et l'interface de la brique EV3 comportant quatre fenêtres principales, vous avez accès à une incroyable variété de fonctionnalités uniques de la brique EV3. Il peut s'agir de fonctions simples, comme le démarrage et l'arrêt d'un programme, ou complexes, comme l'écriture du programme lui-même.

3 diapositives

Description de la diapositive :

Interface : Menu L'EV3 possède un menu composé de 4 parties : Programmes récents Navigation dans les fichiers Brique Applications Paramètres de la brique

4 diapositives

Description de la diapositive :

Programmes récents Lancez les programmes récemment téléchargés depuis votre ordinateur de bureau. Cette fenêtre restera vide jusqu'à ce que vous commenciez à télécharger et à exécuter des programmes. Cette fenêtre affichera les programmes que vous avez lancés récemment. Le programme en haut de la liste, qui est sélectionné par défaut, est le programme qui a été lancé en dernier.

5 diapositives

Description de la diapositive :

Gestionnaire de fichiers Accédez et gérez tous les fichiers stockés dans la mémoire du micro-ordinateur ainsi que sur la carte mémoire. À partir de cette fenêtre, vous accéderez à tous les fichiers de votre brique EV3 et les gérerez, y compris les fichiers stockés sur la carte SD. Les fichiers sont organisés en dossiers de projet, qui, en plus des fichiers de programme proprement dits, contiennent également les sons et les images utilisés dans chaque projet. Les fichiers peuvent être déplacés ou supprimés à l'aide du navigateur de fichiers. Les programmes créés à l'aide de l'environnement de programmation du module et des applications d'enregistrement de données du module sont stockés séparément dans les dossiers BrkProg_SAVE et BrkDL_SAVE.

6 diapositives

Description de la diapositive :

Les applications de la brique de contrôle EV3 disposent de 4 applications préinstallées : A. Port View. B. Contrôle du moteur. B. Contrôle IR. D. Environnement de programmation du module.

7 diapositive

Description de la diapositive :

A. Port View Dans la première fenêtre de l'application Port View, vous pouvez voir rapidement quels ports sont connectés aux capteurs ou aux moteurs. Utilisez les boutons de contrôle de la brique EV3 pour naviguer vers l'un des ports occupés et vous verrez les lectures actuelles du capteur ou du moteur. Installez des capteurs et des moteurs et expérimentez différents réglages. Pour afficher ou modifier les paramètres actuels des moteurs et capteurs installés, appuyez sur le bouton central. Pour revenir à la fenêtre principale de l'application du module, cliquez sur le bouton "Retour".

8 diapositives

Description de la diapositive :

B. Contrôle du moteur Contrôlez le mouvement vers l'avant ou vers l'arrière de tout moteur connecté à l'un des quatre ports de sortie. Il existe deux modes différents. Dans un mode, vous pourrez contrôler les moteurs connectés au port A (à l'aide des boutons Haut et Bas) et au port D (à l'aide des boutons Gauche et Droite). Dans l'autre mode, vous contrôlez les moteurs connectés au Port B (à l'aide des boutons Haut et Bas) et au Port C (à l'aide des boutons Gauche et Droite). La commutation entre ces deux modes s'effectue à l'aide du bouton central. Pour revenir à la fenêtre principale de l'application du module, cliquez sur le bouton "Retour".

9 diapositive

Description de la diapositive :

Contrôle IR Contrôlez le mouvement vers l'avant ou vers l'arrière de tout moteur connecté à l'un des quatre ports de sortie en utilisant la balise IR à distance comme télécommande et le capteur IR comme récepteur (le capteur IR doit être connecté au port 4 de la brique EV3) . Il existe deux modes différents. Dans un mode, vous utiliserez les canaux 1 et 2 sur la balise infrarouge à distance. Sur le canal 1, vous pourrez contrôler les moteurs connectés au port B (à l'aide des boutons 1 et 2 de la balise infrarouge déportée) et au port C (à l'aide des boutons 3 et 4 de la balise infrarouge déportée). Sur le canal 2, vous pourrez contrôler les moteurs connectés au port A (à l'aide des boutons 1 et 2) et au port D (à l'aide des boutons 3 et 4). Dans l'autre mode, vous pouvez contrôler les moteurs de la même manière, en utilisant à la place les canaux 3 et 4 de la balise infrarouge à distance. La commutation entre ces deux modes s'effectue à l'aide du bouton central. Pour revenir à la fenêtre principale de l'application du module, cliquez sur le bouton "Retour".

10 diapositives

Description de la diapositive :

Environnement de programmation de la brique La brique EV3 est livrée avec un logiciel installé dessus. L'application est similaire au logiciel installé sur votre ordinateur. Ces instructions contiennent les informations de base dont vous avez besoin pour commencer.

11 diapositive

Description de la diapositive :

Paramètres de la brique EV3 Cette fenêtre vous permet d'afficher et de régler divers paramètres généraux sur la brique EV3.

12 diapositives

Description de la diapositive :

Réglage du volume Vous pouvez augmenter et diminuer le volume dans l'onglet Paramètres dans EV3.

13 diapositive

Traditionnellement, les robots construits sur une plate-forme Lego Mindstorms EV3, sont programmés à l'aide de l'environnement graphique LabVIEW. Dans ce cas, les programmes s'exécutent sur le contrôleur EV3 et le robot fonctionne de manière autonome. Ici, je vais parler d'une autre façon de contrôler le robot - en utilisant la plate-forme .NET exécutée sur l'ordinateur.

Mais avant de passer directement à la programmation, examinons les cas où cela peut être utile :

  • Nécessite le contrôle à distance du robot depuis un ordinateur portable (par exemple, en appuyant sur des boutons)
  • Besoin de collecter des données du contrôleur EV3 et de les traiter sur un système externe (par exemple, pour les systèmes IoT)
  • Toute autre situation où vous souhaitez écrire un algorithme de contrôle en .NET et l'exécuter à partir d'un ordinateur connecté au contrôleur EV3

API LEGO MINDSTORMS EV3 pour .NET

Le contrôleur EV3 est contrôlé à partir d'un système externe en envoyant des commandes au port série. Le format de commande lui-même est décrit dans le Communication Developer Kit.

Mais la mise en œuvre de ce protocole à la main est ennuyeuse. Par conséquent, vous pouvez utiliser le wrapper .NET prêt à l'emploi, qui a été soigneusement écrit par Brian Peek. Le code source de cette bibliothèque est hébergé sur Github et le package prêt à l'emploi se trouve sur Nuget.

Connexion au contrôleur EV3

La classe Brick est utilisée pour communiquer avec le contrôleur EV3. Lors de la création de cet objet, le constructeur doit transmettre une implémentation de l'interface ICommunication, un objet qui décrit comment se connecter au contrôleur EV3. Des implémentations de UsbCommunication, BluetoothCommunication et NetworkCommunication (connexion via WiFi) sont disponibles.

La méthode de connexion la plus populaire est via Bluetooth. Examinons de plus près cette méthode de connexion.

Avant de pouvoir se connecter par programmation au contrôleur via Bluetooth, le contrôleur doit être connecté à l'ordinateur à l'aide des paramètres du système d'exploitation.

Une fois le contrôleur connecté, accédez aux paramètres Bluetooth et sélectionnez l'onglet Ports COM. Nous trouvons notre contrôleur, nous avons besoin sortant Port. Nous le préciserons lors de la création de l'objet BluetoothCommunication.

Le code pour se connecter au contrôleur ressemblera à ceci :

Public async Task Connect(ICommunication communication) ( var communication = new BluetoothCommunication("COM9"); var brick = _brick = new Brick(communication); wait _brick.ConnectAsync(); )

Vous pouvez éventuellement spécifier un délai d'attente de connexion au contrôleur :

Await_brick.ConnectAsync(TimeSpan.FromSeconds(5));

La connexion à l'unité via USB ou WiFi est similaire, sauf que les objets UsbCommunication et NetworkCommunication sont utilisés.

Toutes les autres actions effectuées avec le contrôleur sont effectuées via l'objet Brick.

Faisons tourner les moteurs

Pour exécuter des commandes sur le contrôleur EV3, accédons à la propriété DirectCommand de l'objet Brick. Essayons d'abord de démarrer les moteurs.

Supposons que notre moteur est connecté au port A du contrôleur, alors faire fonctionner ce moteur à 50 % de puissance ressemblera à ceci :

Attendez _brick.DirectCommand.TurnMotorAtPowerAsync(OutputPort.A, 50);

Il existe d'autres méthodes pour contrôler le moteur. Par exemple, vous pouvez faire pivoter un moteur selon un angle donné à l'aide des méthodes StepMotorAtPowerAsync() et StepMotorAtSpeedAsync(). Au total, plusieurs méthodes sont disponibles, qui sont des variations sur les modes de mise en marche des moteurs - par temps, vitesse, puissance, etc.

Un arrêt forcé est effectué par la méthode StopMotorAsync() :

Attendez _brick.DirectCommand.StopMotorAsync(OutputPort.A, true);

Le deuxième paramètre indique l'utilisation du frein. S'il est défini sur false , le moteur s'arrêtera en roue libre.

Lecture des valeurs des capteurs

Le contrôleur EV3 dispose de quatre ports de capteur. En plus de cela, les moteurs ont également des encodeurs intégrés, ce qui leur permet d'être utilisés comme capteurs. En conséquence, nous avons 8 ports à partir desquels les valeurs peuvent être lues.

Les ports de lecture des valeurs sont accessibles via la propriété Ports de l'objet Brick. Ports est un ensemble de ports disponibles sur le contrôleur. Par conséquent, pour travailler avec un port spécifique, vous devez le sélectionner. InputPort.One ... InputPort.Four sont les ports du capteur et InputPort.A ... InputPort.D sont les codeurs du moteur.

Var port1 = _brick.Ports ;

Les capteurs de l'EV3 peuvent fonctionner dans différents modes. Par exemple, le capteur de couleur EV3 peut être utilisé pour mesurer la lumière ambiante, mesurer la lumière réfléchie ou détecter la couleur. Par conséquent, afin de "dire" au capteur exactement comment nous voulons l'utiliser, nous devons définir son mode :

Brick.Ports.SetMode(ColorMode.Reflective);

Maintenant que le capteur est connecté et que son mode de fonctionnement est défini, vous pouvez en lire les données. Vous pouvez obtenir des données brutes, une valeur traitée et une valeur en pourcentage.

Float si = _brick.Ports.SIValue ; entier brut = _brick.Ports.RawValue ; pourcentage d'octets = _brick.Ports.PercentValue ;

La propriété SIValue renvoie les données traitées. Tout dépend du capteur utilisé et dans quel mode. Par exemple, lors de la mesure de la lumière réfléchie, nous obtiendrons des valeurs de 0 à 100 en fonction de l'intensité de la lumière réfléchie (noir/blanc).

La propriété RawValue renvoie la valeur brute reçue de l'ADC. Parfois, il est plus pratique de l'utiliser pour un traitement et une utilisation ultérieurs. Soit dit en passant, l'EV3 IDE a également la capacité d'obtenir des valeurs "brutes" - pour cela, vous devez utiliser le bloc du panneau bleu.

Si la jauge utilisée s'attend à recevoir des valeurs sous forme de pourcentage, vous pouvez également utiliser la propriété PercentValue.

Exécuter des commandes en batch

Supposons que nous disposions d'un chariot robot à deux roues et que nous souhaitions le déployer sur place. Dans ce cas, les deux roues doivent tourner dans le sens opposé. Si nous utilisons DirectCommand et envoyons deux commandes séquentiellement au contrôleur, il peut y avoir un certain temps entre leur exécution :

Attendez _brick.DirectCommand.TurnMotorAtPowerAsync(OutputPort.A, 50); attendre _brick.DirectCommand.TurnMotorAtPowerAsync(OutputPort.B, -50);

Dans cet exemple, nous envoyons une commande pour faire tourner le moteur A à la vitesse 50, après avoir envoyé cette commande avec succès, nous répétons la même chose avec le moteur connecté au port B. Le problème est que l'envoi de commandes n'est pas instantané, donc les moteurs peuvent commencer à tourner à des moments différents - pendant que la commande est transmise pour le port B, le moteur A déjà commencera à tourner.

S'il est essentiel pour nous de faire tourner les moteurs en même temps, nous pouvons envoyer des commandes au contrôleur dans un "pack". Dans ce cas, vous devez utiliser la propriété BatchCommand au lieu de DirectCommand :

Brick.BatchCommand.TurnMotorAtPower(OutputPort.A, 50); _brick.BatchCommand.TurnMotorAtPower(OutputPort.B, -50); attendre _brick.BatchCommand.SendCommandAsync();

Maintenant, deux commandes sont préparées à la fois, après quoi elles sont envoyées au contrôleur dans un seul paquet. Le contrôleur, ayant reçu ces commandes, démarrera la rotation des moteurs en même temps.

Que peut-on faire d'autre

En plus de faire tourner les moteurs et de lire les valeurs des capteurs, il existe un certain nombre d'autres actions que vous pouvez effectuer sur le contrôleur EV3. Je ne m'attarderai pas sur chacun d'eux en détail, je n'énumérerai qu'une liste de ce qui peut être fait :

  • CleanUIAsync() , DrawTextAsync() , DrawLineAsync() , etc. - manipulation de l'écran intégré du contrôleur EV3
  • PlayToneAsync() et PlaySoundAsync() - utilisation du haut-parleur intégré pour jouer des sons
  • WriteFileAsync() , CopyFileAsync() , DeleteFileAsync() (de SystemCommand) - travailler avec des fichiers

Conclusion

L'utilisation de .NET pour contrôler les robots Mindstorms EV3 est une bonne démonstration de la façon dont les technologies de différents mondes peuvent fonctionner ensemble. À la suite de recherches sur l'API EV3 pour .NET, une petite application a été créée qui vous permet de contrôler votre robot EV3 depuis votre ordinateur. Malheureusement, des applications similaires existent pour le NXT, mais elles ont contourné EV3. En même temps, ils sont utiles dans les compétitions de robots contrôlés, comme le football robot.

L'application peut être téléchargée et installée à partir de ce lien :

Sélectionnez le mode d'écran

Sélection de mode
Bloquer la zone de texte
Contributions
Bouton Aperçu

Sélectionnez le type de texte ou de graphiques que vous souhaitez voir à l'aide du sélecteur de mode. Après avoir sélectionné le mode, vous pouvez sélectionner les valeurs des entrées. Les entrées disponibles varient en fonction du mode. Les modes et les entrées sont décrits ci-dessous.

Vous pouvez cliquer sur le bouton "Aperçu" pour prévisualiser ce que le bloc "Écran" affichera sur l'écran EV3. Vous pouvez laisser la vue ouverte tout en sélectionnant les valeurs d'entrée pour le bloc.

Coordonnées de l'écran

De nombreux modes de bloc Écran utilisent les coordonnées X et Y pour déterminer l'emplacement d'un élément. Les coordonnées définissent la position des pixels sur l'écran de la brique EV3. La position (0, 0) se trouve dans le coin supérieur gauche de l'écran, comme illustré dans la figure ci-dessous.

Dimensions de l'écran : 178 pixels de large sur 128 pixels de haut. La plage des valeurs de coordonnées X va de 0 à gauche de l'écran à 177 à droite. La plage des valeurs de coordonnées Y va de 0 en haut à 127 en bas.

Conseils & Astuces

Vous pouvez utiliser le bouton Aperçu dans le coin supérieur gauche du bloc Écran pour vous aider à trouver les bonnes coordonnées d'écran.

Texte - Pixels

Le mode Texte - Pixels vous permet d'afficher du texte n'importe où sur l'écran de la brique EV3.

Fenêtre de réinitialisation

Le mode de réinitialisation de la fenêtre ramène l'écran de la brique EV3 à l'écran d'informations standard affiché pendant l'exécution du programme. Cet écran affiche le nom du programme et d'autres informations de rétroaction. Lorsque vous exécutez un programme sur la brique EV3, cet écran s'affiche jusqu'à ce que le premier bloc Écran du programme soit exécuté.

Assurer la visibilité des éléments affichés

Lorsque le programme EV3 se termine, l'écran de la brique EV3 est effacé et revient à l'écran du menu de la brique EV3. Tout texte ou graphique affiché par le programme sera effacé. Si, par exemple, votre programme a un bloc "Screen" et rien d'autre, alors l'écran sera effacé si rapidement immédiatement après la fin du programme que vous ne verrez pas les résultats du bloc "Screen".

Si vous souhaitez que l'écran continue après la fin du programme, vous devez ajouter un bloc à la fin du programme pour empêcher le programme de se terminer immédiatement, comme illustré dans les exemples suivants.

Affichage de plusieurs éléments

Si vous souhaitez afficher plusieurs éléments textuels ou graphiques à l'écran en même temps, il est important de ne pas effacer l'écran de la brique EV3 entre les éléments. Chaque mode du bloc Screen a une entrée Clear Screen. Si Effacer l'écran est vrai, tout l'écran sera effacé avant que l'élément ne soit affiché. Cela signifie que pour afficher plusieurs éléments, vous devez définir Clear Screen sur False pour chaque bloc Screen à l'exception du premier.

Affichage du nombre

Pour afficher une valeur numérique dans votre programme, connectez le bus de données à l'entrée Texte du bloc Affichage de texte. Le bus de données numérique sera automatiquement converti en texte à l'aide de la conversion de type de bus de données (pour plus d'informations, voir

L'idée de remplacer le micro-ordinateur chez le constructeur par un Beaglebone ou autre chose n'est pas nouvelle. Mais avec la sortie d'EV3, il est devenu possible non seulement d'obtenir un 100% analogique, mais aussi d'augmenter les performances de votre robot lego.

Vidéo de présentation du projet :

E VB prend entièrement en charge le système Lego Mindstorms Ev3, tant au niveau matériel que logiciel, et est 100 % compatible avec tous les capteurs et moteurs Lego. Le bloc fonctionne exactement comme le bloc Lego Mindstorms EV3 :

Beaglebone Noir un ordinateur monocarte Linux. C'est un concurrent du Raspberry Pi. Dispose d'un puissant processeur AM335x 720 MHz ARM®, grand le nombre d'entrées/sorties, les possibilités peuvent être étendues avec des cartes supplémentaires.

Lego Mindstorms EV3 dispose d'un processeur ARM9 (TI Sitara AM180x) 300 MHz, donc passage à un processeur ARM Cortex-A8 (TI Sitara AM335x) 1 GHz BeagleBone Black améliore la productivité, en plus il devient possible de connecter des cartes d'extension supplémentaires !

Plus important encore, Lego Mindstorms EV3 a une description ouverte de tous les logiciels et matériels !

Par exemple, le célèbre robot Rubik's Cube a été assemblé et présenté. Seulement au lieu d'EV3, ils ont installé l'EVB développé. Nous vous suggérons de regarder la vidéo :

Les auteurs du projet publient et vendent déjà EVB. Ils prévoient d'augmenter considérablement la production d'ici la fin avril 2015. En outre, ils ont développé et produisent plusieurs capteurs compatibles.

Si, comme nous, vous n'avez pas les capacités des capteurs EV3 standard, si 4 ports de capteur dans vos robots ne suffisent pas, ou si vous souhaitez connecter des périphériques exotiques à votre robot, cet article est pour vous. Croyez-moi, un capteur fait maison pour EV3 est plus facile qu'il n'y paraît. Un "bouton de volume" d'une vieille radio ou quelques clous enfoncés dans le sol dans un pot de fleurs comme capteur d'humidité du sol sont parfaits pour expérimenter.

Étonnamment, chaque port de capteur EV3 cache un certain nombre de protocoles différents, principalement pour la compatibilité avec les capteurs NXT et les capteurs tiers. Voyons comment fonctionne le câble EV3


Étrange, mais le fil rouge est la masse (GND), le vert est une puissance de 4,3 V plus. Le fil bleu est à la fois SDA pour le bus I2C et TX pour le protocole UART. De plus, le fil bleu est l'entrée du convertisseur A/N pour EV3. Le fil jaune est à la fois SCL pour le bus I2C et RX pour le protocole UART. Fil blanc - Entrée convertisseur A/N pour capteurs NXT. Le noir est une entrée numérique, pour les capteurs compatibles NXT - il duplique GND. Pas facile, non ? Allons dans l'ordre.

Entrée analogique EV3

Chaque port de capteur possède un canal de convertisseur A/N. Il est utilisé pour des capteurs tels que le capteur tactile (bouton), le capteur de lumière NXT et le capteur de couleur en mode lumière réfléchie et lumière ambiante, le capteur de son NXT et le thermomètre NXT.

La résistance de 910 ohms connectée comme indiqué sur le schéma indique au contrôleur que ce port doit être commuté en mode d'entrée analogique. Dans ce mode, n'importe quel capteur analogique peut être connecté à EV3, par exemple à partir d'Arduino. Le taux de change avec un tel capteur peut atteindre plusieurs milliers d'interrogations par seconde, c'est le type de capteurs le plus rapide.

Capteur de lumière

Thermomètre

Capteur d'humidité du sol

Vous pouvez également connecter : un microphone, un bouton, un télémètre IR et de nombreux autres capteurs courants. Si le capteur ne dispose pas d'une alimentation suffisante en 4,3 V, vous pouvez l'alimenter en 5 V à partir du port USB situé sur le côté du contrôleur EV3.

Le "bouton de volume" mentionné ci-dessus (alias résistance variable ou potentiomètre) est un excellent exemple de capteur analogique - vous pouvez le connecter comme ceci :

Pour lire les valeurs d'un tel capteur dans l'environnement de programmation LEGO standard, vous devez utiliser le bloc RAW bleu

Protocole I2C

Il s'agit d'un protocole numérique, par exemple, le capteur à ultrasons NXT, de nombreux capteurs Hitechnic, tels que IR Seeker ou Color Sensor V2, fonctionnent dessus. Pour d'autres plates-formes, par exemple pour Arduino, il existe de nombreux capteurs i2c, vous pouvez également les connecter. Le schéma est le suivant :

Une résistance de 82 ohms est recommandée par le groupe LEGO, mais il existe des références à 43 ohms ou moins dans diverses sources. En fait, nous avons essayé d'abandonner complètement ces résistances et tout fonctionne, du moins "sur la table". Dans un robot réel fonctionnant dans des conditions de divers types d'interférences, les lignes SCL et SDA doivent toujours être connectées à l'alimentation via des résistances, comme indiqué dans le schéma ci-dessus. La vitesse d'i2c dans EV3 est assez faible, environ 10000 kbps, c'est pourquoi le Hitechnic Color Sensor V2 préféré de tous est si lent :)

Malheureusement pour le LEGO EV3-G standard, il n'y a pas de bloc complet pour la communication bidirectionnelle avec le capteur i2c, mais en utilisant des environnements de programmation tiers tels que RobotC, LeJOS ou EV3 Basic, vous pouvez interagir avec presque tous les capteurs i2c.

La capacité de l'EV3 à fonctionner avec le protocole i2c ouvre une possibilité intéressante pour connecter plusieurs capteurs à un seul port. Le protocole I2C vous permet de connecter jusqu'à 127 appareils esclaves à un bus. Peux-tu imaginer? 127 capteurs pour chacun des ports EV3 :) De plus, souvent un tas de capteurs i2c sont combinés dans un seul appareil, par exemple, sur la photo ci-dessous, un capteur 10 en 1 (contient une boussole, un gyroscope, un accéléromètre, un baromètre, etc. )

UART

Presque tous les capteurs standard non EV3, à l'exception du capteur tactile, fonctionnent à l'aide du protocole UART, c'est pourquoi ils ne sont pas compatibles avec le contrôleur NXT, qui, bien qu'il ait les mêmes connecteurs, n'a pas UART implémenté sur le ports de capteur. Regardez le schéma, c'est un peu plus simple que les cas précédents :

Les capteurs UART se coordonnent automatiquement avec l'EV3 pour leur vitesse. Dans un premier temps, après s'être connectés à une vitesse de 2400 kbps, ils s'accordent sur les modes de fonctionnement et le taux de change, puis passent à une vitesse accrue. Les taux de change typiques pour différents capteurs sont de 38 400 et 115 200 kbps.
LEGO a implémenté un protocole assez complexe dans ses capteurs UART, il n'y a donc pas de capteurs tiers qui n'ont pas été conçus à l'origine pour cette plate-forme, mais qui sont compatibles avec elle. Néanmoins, ce protocole est très pratique pour connecter du "fait maison"
capteurs basés sur des microcontrôleurs.
Pour Arduino, il existe une merveilleuse bibliothèque EV3UARTEmulation écrite par le célèbre développeur LeJOS Lawrie Griffiths qui permet à cette carte de prétendre être un capteur compatible UART-LEGO. Son blog LeJOS News contient de nombreux exemples de connexion de capteurs de gaz, d'un capteur IMU et d'une boussole numérique utilisant cette bibliothèque.

La vidéo ci-dessous est un exemple d'utilisation d'un capteur fait maison. Nous n'avons pas assez de capteurs de distance LEGO d'origine, nous utilisons donc l'un des capteurs du robot que nous avons fabriqué :


La tâche du robot est de partir de la cellule verte, de trouver un moyen de sortir du labyrinthe (cellule rouge) et de revenir au point de départ de la manière la plus courte, sans s'arrêter dans des impasses.