Le bouton magique

Apprenez à détecter le magnétisme autour du Micro:bit !

  • Get started
  • MakeCode
  • Inputs
Print lesson
  • Âges 8+
  • 30 min
  • MakeCode Editor

Introduction

Ce projet utilise la boussole du Micro:bit pour détecter la présence d’un aimant.

Guide de l'enseignant

Ouvrir Afficher les ressources pour enseignants

Activité

6 Étapes

Il s’agit d’un tour de magie simple que vous pouvez effectuer pour épater vos amis en passant, comme par magie, du bouton A au bouton B du Micro:bit !

Comment fonctionne l’application

Malheureusement, la seule magie ici est dans le code. Cette astuce utilise un aimant, caché dans votre main, pour indiquer au Micro:bit quand passer du bouton A au bouton B, et inversement, lorsque l’aimant est proche du Micro:bit.

"À propos des auteurs"

Ce projet a été fourni par Brian et Jasmine Norman, aka @MicroMonstersUK. Vous pouvez vérifier leur chaine Youtube de tutoriels sur le Micro:bit sur différents projets.

Ce dont vous aurez besoin

Les seules choses dont vous avez besoin pour cette astuce sont votre Micro:bit et un aimant assez petit pour tenir dans votre main, un simple aimant du style "magnet" de réfrigérateur suffira.

Vous aurez besoin d'aimants pour effectuer cette astuce

Étape 1 : configurer les boutons d’affichage A et B

Avant de coder le tour en lui-même, nous devons faire en sorte que les boutons fonctionnent comme vous vous y attendez, de sorte qu'en appuyant sur le bouton A s'affiche « A » et sur le bouton B s'affiche « B » :


input.onButtonPressed(Button.A, function () {
    basic.showString("A")
})
input.onButtonPressed(Button.B, function () {
    basic.showString("B")
})
          

Étape 2 : mesurer le champ magnétique

Nous allons utiliser la boussole du Micro:bit pour détecter le magnétisme. La boussole nous indique la direction en détectant le champ magnétique de la Terre, mais elle peut aussi détecter tout autre aimant à proximité. Nous l’utiliserons pour vérifier si notre aimant est à proximité du Micro:bit en utilisant le bloc "force magnétique" qui se trouve dans la section « Plus » du menu des entrées. Comme nous voulons seulement mesurer l'intensité du champ, nous changeons la liste déroulante pour sélectionner « force ».

Étape 3 : vérifier si le champ magnétique se trouve à proximité

Maintenant, nous pouvons mesurer la force magnétique près du Micro:bit. Nous pouvons vérifier si la valeur que nous mesurons est assez grande pour supposer qu'un puissant aimant est proche.

Si vous avez déjà joué avec des aimants, vous savez qu'ils ont deux pôles, généralement appelés pôle Nord et pôle Sud. Selon quelle extrémité de l’aimant est orientée vers le Micro:bit, la mesure du champ magnétique variera entre un nombre négatif comme -100 et un nombre positif comme 100. Nous voulons juste savoir si l'intensité est proche de 100 sans nous soucier de savoir si c'est négatif ou positif, donc nous utilisons également le bloc « valeur absolue de » dans le menu maths pour indiquer à notre programme d'ignorer le signe négatif et de traiter -100 comme si c'était 100.

Donc dans le code ci-dessous, nous vérifierons si la valeur absolue de notre champ magnétique lue est supérieur à 100 et enregistrerons le résultat de ce contrôle dans une nouvelle variable appelée « isSwitched » :


let isSwitched = false
let force = 0

force = Math.abs(input.magneticForce(Dimension.Strength))
isSwitched = force > 100
          

Étape 4 : exécuter notre vérification « aimant proche » en permanence

Pour le moment notre code pour détecter si l'aimant est proche ne fonctionne qu'une fois donc nous avons besoin de le mettre dans un bloc "pour toujours" afin qu’il vérifie en permanence si l’aimant est proche du Micro:bit. Nous devons également veiller à ce que « isSwitched » soit bien à la valeur "false" au démarrage de notre programme.


let isSwitched = false
let force = 0
basic.forever(function () {
    force = Math.abs(input.magneticForce(Dimension.Strength))
    isSwitched = force > 100
})
          

Étape 5 : permuter les boutons lorsque nous savons que l’aimant est à proximité

Nous pouvons maintenant vérifier la valeur de notre variable « isSwitched » chaque fois que nous le voulons et nous saurons que l’aimant est à proximité si cette variable est « vrai ». Utilisons cela pour changer la façon dont les boutons fonctionnent et complétons le code de notre tour de magie. Nous ajouterons un bloc « Si ... SINON» au programme de chaque bouton afin de permuter ce que chaque bouton affiche si la variable « isSwitched » est égal à vrai :


let isSwitched = false
let force = 0
input.onButtonPressed(Button.A, function () {
    if (isSwitched) {
        basic.showString("B")
    } else {
        basic.showString("A")
    }
})
input.onButtonPressed(Button.B, function () {
    if (isSwitched) {
        basic.showString("A")
    } else {
        basic.showString("B")
    }
})
          

Étape 6 : Entrainez-vous

Voici le code final :


let isSwitched = false
let force = 0
input.onButtonPressed(Button.A, function () {
    if (isSwitched) {
        basic.showString("B")
    } else {
        basic.showString("A")
    }
})
input.onButtonPressed(Button.B, function () {
    if (isSwitched) {
        basic.showString("A")
    } else {
        basic.showString("B")
    }
})
basic.forever(function () {
    force = Math.abs(input.magneticForce(Dimension.Strength))
    isSwitched = force > 100
})
 

          

Maintenant, vous avez juste à programmer votre Micro:bit et à pratiquer votre tour de magie avant de le présenter à vos amis. Essayez de demander à vos amis de cliquer sur les boutons après que vous avez changé l'affichage mais le tour ne fonctionnera pas pour eux puisqu’ils n’ont pas d’aimant caché dans leur main.

Challenge

Essayez d’ajouter les fonctionnalités suivantes :

  • Ajouter une animation lorsque le champ magnétique est supérieur à une certaine valeur
  • Une option de lecture direct du champ magnétique lorsque vous appuyez sur les boutons « A + B ».
Selecting this opens external content from our support system, which adheres to their privacy policy.