====== M5Stack : Qu'est-ce que c'est ? ====== Une interface de programmation pour la carte M5stack. **M5stack** : Le schéma suivant montre les éléments constitutifs de la carte M5Stack Core 1. Celle-ci peut servir de support à de nombreux montages différents avec les composants fournis. {{ :m5stack1.jpg?nolink&600 |}} ---- ====== Programmation de la carte ====== Pour programmer la carte m5Stack core 1, il faut créer une nouvelle activité et utiliser l'interface m5Stack. L’interface permet de programmer en bloc avec une transcription en direct en langage Python. L’utilisation d’un navigateur web basé sur Chrome est conseillée. Cette interface est composée de 5 parties : - le menu, situé en haut. Via les icônes, on accède aux paramètres ou aux fonctions d’exécution du code, mais aussi à la gestion des affichages. - les catégories des blocs, à gauche, dans lesquelles sont rangés les éléments à piocher pour construire le programme. Accompagné d'une zone de construction, qui permet l’assemblage des blocs pour créer le programme. - la zone de code, située au centre, qui affiche le code en langage Python - le simulateur, situé à droite, qui permet de simuler les cartes, capteurs et microcontrôleur sans le matériel. - la console, située en bas, qui montre le programme exécuté. Il est également possible d'interagir avec son programme dans cette console. {{ :m5stack_interface.png?nolink |}} Les blocs **"Au démarrage"** et **"Répéter indéfiniment"** sont les éléments clés du fonctionnement de la carte. Ils sont présents dès l'ouverture de l'interface. Les instructions placées dans le bloc "Au démarrage", seront exécutées dès l'alimentation en électricité de la carte. Alors que les instructions du programme placées dans le bloc "Répéter indéfiniment", seront exécutées après le démarrage et ensuite en continu jusqu'à ce que la carte ne soit plus alimentée en électricité. ===== Naviguer sur l'interface ===== {{::televerser.png?nolink&100 |}} **Téléverser le programme vers la carte :** le code est exécuté sur la carte dès la fin du transfert. {{::annuler_retablir.png?nolink&80 |}} **Annuler ou rétablir :** les actions précédentes ou suivantes. {{::zoom.png?nolink&400|}} ---- ====== Les points forts de l'interface ====== ===== Traduction du code assemblé par blocs en C++ ===== Le langage C++ est difficile à appréhender, notamment pour les débutants. L'interface permet de débuter avec la logique de programmation par bloc, qui élimine le risque d'erreur de syntaxe, puis de passer en douceur au code textuel C++. ===== Simulateur ===== L'interface m5stack embarque un simulateur, ce qui permet d'exécuter un programme sans avoir de matériel ! La quasi-totalité des blocs sont disponibles dans le simulateur, ce qui permet de réaliser de très nombreux projets. [[https://fr.vittascience.com/wiki?interface=m5stack|Découvrez la liste des blocs disponible dans l'interface.]] ===== Traceur de graphe en temps réel ===== L'interface permet de tracer un graphique à partir des données reçues par la carte en temps réel, puis d'exporter ces données en toute simplicité aux formats CSV ou API. Le traceur de graphe fonctionne également avec le simulateur pour encore mieux tester vos programmes avant de passer au réel ! ---- ====== Tutoriels : 1ère utilisation de la carte ====== Il est nécessaire de flasher la carte à la première utilisation. ===== Installation des drivers ===== Pour communiquer via un câble USB avec l'ordinateur, on a besoin d'installer les pilote de la carte M5Stack. Pour cela, cliquer sur le lien: [[https://docs.m5stack.com/en/quick_start/m5core/mpy|Démarrage m5Stack]] Installez le driver qui correspond à votre système d'exploitation et votre carte M5Stack. Il existe actuellement deux versions de puce de pilote (CP210X/CH9102). Si vous n'êtes pas sûr de la puce USB utilisée par votre appareil, vous pouvez installer les deux pilotes. ===== Flasher le firmware avec M5Burner ===== Sur le même [[https://docs.m5stack.com/en/quick_start/m5core/mpy|lien]]que la partie précédente, télécharger le logiciel M5Burner qui correspond à votre système d'exploitation. Décompressez le fichier .zip puis lancer M5Burner.exe. Le logiciel se présente sous la forme suivante : {{ ::m5stack3.png?nolink&800 |}} Sur la gauche se trouve la liste des dispositifs conçus par M5Stack. Au centre, la liste des micrologiciels qui peuvent être envoyés dans les cartes programmables. Avant de flasher le firmware dans la carte, celle-ci a besoin d'être connectée à l'ordinateur via un câble USB. Dans notre cas, nous utiliserons la carte M5Stack Core 1 (la version noire) connectée via un câble USB type C. Une fois branchée, le logiciel détecte la liste des port COM sur lesquels sont branchées les cartes M5Stack. Pour flasher le firmware, laisser la vitesse de communication (baudrate) à 1500000. {{ ::m5stack4.png?nolink&600 |}} Choisissez ensuite la dernière version du firmware qui correspond à votre carte. Dans notre cas, nous utiliserons celle-ci : {{ ::m5stack5.png?nolink&300 |}} Cliquez sur Télécharger puis sur le bouton Burn. A partir de cette étape, vous pouvez renseigner les informations WiFi auxquelles l'appareil se connectera plus tard lors du flash du firmware. (Ces informations seront utilisées pour que les appareils se connectent au réseau, et dans ce tutoriel, nous allons programmer en mode USB, ce qui n'est pas obligatoire.). Cliquer sur Start. Le moniteur s'ouvre et le flash du firmware démarre. Attendre la fin du téléchargement jusqu'à obtenir le message "Burn Successfully" Le firmware MicroPython est maintenant dans votre carte M5Stack. Celle-ci peut être dans 3 modes différents: Internet Mode, USB Mode et App Mode. Par défaut, elle se trouve dans le Mode Internet. Pour changer, de mode cliquer sur le 3e bouton de la carte (Setup), puis Switch mode. Nous nous placerons sur App Mode qui correspond au mode dans lequel la carte va lancer automatiquement le programme python principal. Sur l'interface M5Stack de Vittascience, cliquer sur le bouton Téléverser. Dans la console, on voit le téléversement défiler. ===== Utiliser le REPL MicroPython ===== Lorsque l'exécution du code est interrompu, vous obtenez le message suivant dans la console : {{ ::m5stack6.png?nolink&600 |}} Vous pouvez alors utiliser toutes les fonctions disponibles dans les librairies python de la m5Stack. Par exemple, envoyer à la suite les 3 commandes dans l'entrée "Message à envoyer à la carte via le port série" > > > > import m5stack > > > > lcd.setCursor(0, 5) > > > > lcd.print("Hello Vittascience ! :)") Tout fonctionne ? Regardez l'écran de votre carte :) Si vous souhaitez relancer le programme déjà présent dans la carte, cliquer de nouveau sur le bouton > REPL. Le chronomètre s'affiche alors de nouveau dans la console.