====== Présentation de la carte Micro:bit ====== Développée en Angleterre, la carte Micro:bit est une plateforme d'apprentissage destinée aux enfants (aux grands enfants aussi) et orientée vers le langage Python. {{ :micro:microbit.jpg?nolink&800 |}} Dans un format réduit de 4x5 cm elle embarque : * un microcontrôleur nRF51822 basé sur un processeur ARM Cortex-M0 * un accéléromètre NXP/Freescale MMA8652 * un magnétomètre NPX/Freescale MAG3110 * une matrice de 5x5 LED qui peut également être utilisée pour mesure une intensité lumineuse * deux boutons programmables * une connectivité Bluetooth * 5 ports en forme d’anneau (pouvant être connectées facilement avec des prises crocodile ou des fiches banane) dont 3 ports d’entrée-sortie analogique ou numérique * 20 broches de connexion (ports GPIO) Toutes les infos sont disponibles sur le site web [[https://microbit.org/ | https://microbit.org/]]. Plusieurs cartes additionnelles sont disponibles : afficheurs, capteurs, commandes moteurs, jeux, modules audio... sont disponibles pour réaliser vos projets basés sur cette carte. ===== Programmer la carte ===== ==== Outils "officiels" ==== Le site officiel nous renvoie vers les outils en ligne de développement : [[https://microbit.org/code/ | https://microbit.org/code/]] suivants : * Microsoft MakeCode editor qui permet de faire la programmation par blocs adaptés à la carte Micro:bit tout en proposant d'afficher le code correspondant en Javascript ou Python ainsi qu'une simulation intéractive de la carte. * Python editor qui permet la programmation directe en langage [[https://micropython.org/ | Micropython]], une déclinaison du langage Python optimisée pour les microcontrôleurs. L'inconvénient de ces outils est qu'il faut être connecté à Internet et utiliser le navigateur Chrome (ou [[https://www.chromium.org/ | Chromium]] pour sa version libre). ==== Outils complémentaires alternatifs ==== === Mu Editor === Mu est un éditeur multiplateforme sous licence libre, simple et compatible Python 3, Pygame Zero, Cartes Adafruit (CircuitPython et MicroPython), Micro:Bit (MicroPython) téléchargeable à l'adresse suivante : [[https://codewith.mu/en/download|https://codewith.mu/en/download]] {{ :micro:mu.png?nolink&800 |}} Quelques fonctionnalités pratiques : * REPL permet d'exécuter directement un code dans la carte Micro:bit sans avoir à l'uploader. Le code n'est alors pas persistant après redémarrage. * la gestion de fichiers permettant de récupérer le code python de la carte sur son ordinateur ou d'y placer des fichiers * affichage d'un graphique de données === uPyCraft === **Les utilisateurs de Windows** peuvent également utiliser l'exécutable [[https://dfrobot.gitbooks.io/upycraft/content/ | uPyCraft]] pour jouer avec leur carte Micro:bit : * dans le menu Tool > Serial sélectionnez le port de votre carte * dans le menu Tool > Board sélectionnez "microbit" * vous pouvez alors saisir du code et l'exécuter directement sur la carte à l'aide du bouton ou du Tools > DownloadAndRun Si l'outil est pratique pour tester du code en direct, il ne permet pas de l'uploader sur la carte ainsi après redémarrage le code n'est pas conservé... === uflash === **Pour les utilisateurs de systèmes GNU/Linux** il existe une alternative nommée : [[https://pypi.org/project/uflash/ | uflash]]. Cet outil est capable d'encoder un script Micropython en fichier .hex et d'uploader sur la carte Micro:bit On l'installe en utilisant la commande pip : `pip install uflash` Puis pour compiler et uploader votre script il faut tout d'abord monter la carte Micro:bit comme un périphérique de stockage usb classique puis lancer la commande suivante : `uflash /chemin/du/script.py` Astuce : la commande `uflash -w /chemin/du/script.py` uploadera le nouveau code à chaque fois que le script sera enregistré. ==== Un premier code ==== En lisant la [[https://microbit-micropython.readthedocs.io/en/latest/index.html|documentation ]] on comprend la syntaxe des bibliothèques pour utiliser les différents composants embarqués. On va réaliser un script très simple qui utilise l'accéléromètre et la matrice LED. Le but est d'afficher sur la matrice LED un sourire si la carte est plane, une grimace si la carte est penche sur un côté. Le code est le suivant : ``` from microbit import * while True: if accelerometer.get_x() > 300 or accelerometer.get_x() < -300 : display.show(Image.SAD) else: display.show(Image.HAPPY) ``` L'équivalent réalisé avec l'outil MakeCode correspond à ça : {{ :micro:makebloc.png?nolink&1200 |}} ===== À vous de jouer ===== Si vous souhaitez tester MicroPython sur Micro:bit, le Fablab a fait récemment l'acquisition de 2 cartes, accompagnées de leur shield de prototypage rapide, qui sont à votre disposition !