Le micro:bit (aussi noté BBC micro:bit ou micro bit) est un ordinateur à carte unique. doté d'un processeur ARM. Conçu au Royaume-Uni pour un usage éducatif dans un premier temps, le nanoordinateur est maintenant disponible au grand public dans plusieurs pays.

La platine de embarque un processeur ARM Cortex-M0, un capteur de mouvement 3D (ou accéléromètre) et un magnétomètre 3D (ou boussole numérique), des connectiques Bluetooth et USB, une matrice de 5 x 5 DEL (25 diodes électroluminescentes), un bouton de réinitialisation et deux boutons programmables. Le petit circuit imprimé peut être alimenté par un connecteur USB sur le port micro-USB ou par deux piles AAA (3V) en série sur un autre connecteur. La carte se branche à l'aide de cinq anneaux et 20 broches de connexion.

Composants Le nanoordinateur est décrit comme faisant la moitié de la taille d'une carte de crédit., soit , et pesant .. Le libellé des principaux composants est inscrit sur le circuit imprimé afin de pouvoir facilement les identifier. La facture finale comprend :

Au verso : Microcontrôleur Nordic Semiconductor nRF51822, 16 MHz, 32 bits, à processeur ARM Cortex-M0, de mémoire de stockage flash (ou mémoire morte, EEPROM ou ROM), de mémoire vive (SRAM ou RAM) statique. Le noyau ARM peut passer de ...... Le composant est libellé PROCESSOR ; Microcontrôleur NXP/Freescale KL26Z, doté d'un noyau ARM Cortex-M0+ incluant un contrôleur USB 2.0 On-The-Go comme interface de communication entre le port micro-USB et le microcontrôleur. Ce composant régule aussi la tension provenant du connecteur USB (oscillant entre 4.5 et 5.25V) et le maintient à 3.3V, soit la tension d'usage sur le circuit imprimé. Sur piles (3V), le régulateur est inutile ; Le premier microcontrôleur est embarqué sur le second microcontrôleur.; Au sens large: « Un microcontrôleur est un circuit intégré rassemblant un microprocesseur et d'autres composants tels que de la mémoire et des périphériques. Il permet de réaliser des montages sans nécessiter l'ajout de composants annexes». À noter qu'il se branche également sur des composants externes. Comme le micro:bit est composé d'un processeur (unité centrale de traitement), de mémoires et de ports entrées-sortie, le nanoordinateur peut aussi être qualifié de microcontrôleur selon le schéma de la page 273. « Ce sont de véritables microordinateurs intégrés sur une puce de silicium qui comportent une unité centrale de traitement, de la mémoire ou une interface à de la mémoire externe, des ports d’entrée-sortie, une interface pour lignes série [...] ainsi qu’une unité de gestion de temps et d’évènements. » « Les éléments qui composent un microcontrôleur sont comparables aux périphériques d'un ordinateur. La différence réside dans le fait que les trois parties citées précédemment sont intégrées au microcontrôleur. Elles se trouvent toutes dans le même boitier [ou sur la même carte des circuits imprimés], ce qui est plus simple et plus compact »; Connectique Bluetooth 4.0 LE (Low Energy pour faible consommation), libellée BLE ANTENNA ; La connexion Bluetooth permet de charger des programmes par liaison sans fil OTA (Over The Air); Dans les langages de programmation objet, les objets reliés à la connexion Bluetooth sont catégorisés « radio » ou « signal radio » ; Magnétomètre 3D (ou boussole numérique) NPX/Freescale MAG3110 via le bus I2C, libellé COMPASS; Le magnétomètre peut aussi détecter la présence de certains métaux et d'aimants et retourner une lecture en microtesla (μT) ; Capteur de mouvements 3D (ou accéléromètre, capteur gyroscopique, capteur d'accélération linéaire) NXP/Freescale MMA8652 via le bus I2C, libellé ACCELEROMETER ; Le capteur mesure les trois axes – X, Y, Z – en milliGs et peut générer des données de mouvement (la notation de l'accélération normale de la pesanteur terrestre varie de g, gn, g0, G ou Gs; consulter les articles sur l'accélération et la pesanteur) ; Le capteur détecte des seuils d'accélération (plus de 3g, plus de 6g ou plus de 9g); L'accéléromètre détecte aussi des actions de base telles que secouer, incliner ou tomber; Si le micro:bit est posé à plat sur une table, le bouton A à gauche et le B à droit, la table représente le plan de base. Ce plan est traversé par un axe transversal de gauche à droite, traversant les boutons, et un axe longitudinal, passant au milieu des boutons, suivant la colonne centrale de la matrice de DEL ;vignette|3 axes de l'accéléromètre. X est le tangage; le degré de balancement entre l'avant et l'arrière autour de l’axe transversal; Y est le roulis ; le mouvement d'oscillation gauche-droite autour de l'axe longitudinal; Z est la déviation; le décalage vers le haut ou vers le bas (à travers la table); Consulter les articles sur le sujet: Aircraft principal axes et Ship motions ; La rotation, autour d'un axe vertical passant à travers la DEL centrale de la matrice, est plutôt captée par la boussole ; L'accéléromètre peut servir comme unité de contrôle, manette de jeu ou détecteur de mouvement; Capteur de température embarqué ; Le capteur retourne une estimation de la température en centigrades sur la carte; Cette lecture est utile pour estimer la dissipation thermique par conduction du circuit imprimé: si le circuit est actif, la température monte ; Port micro-USB, pour l'alimentation électrique et la connexion à un ordinateur par exemple, libellé USB.; Connectée à un ordinateur, la carte est traitée comme une clé USB. De l'ordinateur, on peut téléverser un programme dans la mémoire du microcontrôleur comme on glisse-dépose un fichier sur une clé USB; Connecteur pour piles, libellé BATTERY ; Un bouton de réinitialisation, libellé RESET ; Une DEL jaune du système; Par exemple, elle clignote lors du téléversement d'un programme dans la mémoire ; Au recto : Deux boutons programmables, libellés A et B ; Une matrice 5 x 5 de 25 DEL rouges programmables individuellement servant d'affichage, notamment, de motifs statiques ou animés et de texte alphanumérique déroulant;vignette|Positions x,y des DEL. Caractéristique notable : on peut non seulement programmer le micro:bit pour l'allumage de la matrice en dirigeant un courant électrique dans chaque DEL, mais on peut aussi programmer la matrice à convertir la lumière ambiante en intensité ou courant électrique. Dans ce cas, on exploite une propriété des DEL éteintes: la sensibilité à la lumière ambiante. Éteinte, la matrice devient un capteur. On peut ainsi quantifier l'intensité lumineuse ambiante. Dans l'obscurité, la matrice capte peu de lumière et retourne un faible courant électrique. En plein lumière, la matrice enregistre une augmentation du courant électrique. Cette expérience se répète sur des DEL en périphérique branchées au micro:bit. Cinq anneaux d'entrée-sortie et 20 broches de connexion (ports GPIO), libellés PINS au verso ; Les anneaux sont compatibles avec des prises crocodile ou des fiches bananes de ; 1 anneau courant, référencé 3v3 et libellés 3V sur la carte; 1 anneau terre (mise à la terre ou prise de terre), référencé GND et libellé GND sur la carte. Ensemble, les anneaux 3V et GND fournissent 3V et peuvent alimenter un appareil externe; 3 anneaux entrées-sorties, référencés ANALOG IN P0, ANALOG IN P1 et ANALOG IN P2 (P pour Pins), libellés 0, 1, 2 sur la carte; Les anneaux peuvent se connecter sur des capteurs de température, d'humidité ou d'autres appareils. Le processeur peut lire les valeurs envoyées par les capteurs, interpréter les lectures pour déclencher des commandes programmées ou faire suivre les lectures vers un appareil externe. Les anneaux peuvent aussi piloter un moteur ou un robot; Connecteur latéral de 20 broches de , à connexion standard, référencés P3, P4, P5, P6, P7, P8, P9, P10, P10, p12, P13, P14, P15, P16, +3v3, +3v3, P19, P20, GND et GND; Chacune des broches contrôle soit une DEL soit un bouton soit un autre élément. Ce connecteur permet de brancher à un appareil, comme un Arduino, Galileo, Kano et Raspberry PiMicro:bit : la BBC veut distribuer des nano ordinateurs aux enfants britanniques; En plus de connexions GPIO, certaines broches du connecteur latéral sont conçues pour d'autres protocoles: UART, I2C et SPI; Le logo et une sorte de chevelure sérigraphiée, les deux en couleur.

Programmation Un ordinateur ou un appareil mobile est nécessaire pour programmer le micro:bit avant de rendre ce dernier parfaitement autonome.

La programmation du micro:bit se fait principalement dans un environnement de développement sur le Web. L'environnement comprend un éditeur et un compilateur. Il peut aussi y avoir un simulateur. Il existe des EDI ne nécessitant aucun connexion à Internet; ce sont des logiciels.

L’utilisateur écrit le programme dans l'éditeur. Il écrit en langage évolué (JavaScript, Python, etc.), c'est-à-dire qui s'écrit avec du texte, comme une langue. L'utilisateur envoie son programme à un serveur distant qui le compile. Il est possible de programmer le micro:bit avec les langages suivants : JavaScript, Python, C/C++, Rust, Forth, Pascal et Ada (et consulter les sections sur les EDI plus bas).

Le compilateur traduit le langage évolué en langage machine, compréhensible par le processeur. Ce langage est aussi appelé code natif et se compose exclusivement de valeurs numériques. « Le microcontrôleur ne connait à son niveau d'interprétation que le langage machine, appelé aussi code natif, composé exclusivement de valeur numérique. Un environnement de développement [...] traduit les commandes dans un langage dit évolué [comme le C/C++, le Python ou le JavaScript]. Le compilateur convertit un programme écrit en langage évolué en langage machine, compréhensible par le processeur. »

Un programme compilé apparait alors sous la forme d'un fichier « .hex », pour hexadécimal. Le format hexadécimal est numérique ; il est en base 16 ou système hexadécimal (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F), par rapport à la base 10 ou système décimal (0 à 9) utilisée dans les mathématiques de tous les jours. À noter que le système hexadécimal est un compromis entre le code binaire ou système binaire des machines et une base de numération pratique à utiliser pour les ingénieurs.

Le programme compilé est ensuite téléchargeable par l’utilisateur et transférable sur le micro:bit. Les programmes en langage évolué (appelés scripts), sont enregistrés dans le nuage et peuvent se retrouver si l'on n'efface pas les mouchards ou témoins (cookies) correspondants de son ordinateur. Il est aussi possible d'archiver les programmes en langage évolué (un fichier en code source) et en langage natif (un fichier hexadécimal) sur l'ordinateur, d'en importer ou de les exporter. On peut aussi retranscrire le code source ou le copier-coller dans des langages de balisage de site Internet tels que Html ou Markdown ; comme illustré ci-dessous.

Voici un exemple de code source JavaScript pour afficher un bonhomme-sourire :basic.forever(() => {

}) basic.showString("Bonjour!") basic.showLeds(` . . . . . . # . # . . . . . . # . . . # . # # # . `)Voici un exemple de code source Python pour créer un dé (on secoue le micro:bit et la matrice de DEL affiche un chiffre de 1 à 6) :from microbit import * import random

while True: gesture = accelerometer.current_gesture() if gesture == "shake": display.show(str(random.randint(1, 6)))

Principaux environnement de développement intégrés (EDI) en ligne Le site officiel du BBC micro:bit propose deux environnements de développement.