Skip to content

Activité

Lucioles

Avancé | MakeCode, Python | Radio, Écran LED | Communication, Randomisation, Sélection

Étape 1 : Fais-le

Turn a set of micro:bits into a magical glowing swarm of fireflies using radio communication

a set of micro:bits triggering each other by radio to glow briefly

Ce que vous apprendrez

  • how to use radio communication between micro:bits to trigger events
  • that the micro:bit's LED display can be made brighter and dimmer
  • how to use random numbers and chance to mimic real-world behaviour

Qu'est-ce que c'est ?

Les lucioles sont des insectes qui utilisent la bioluminescence (lumière faite dans leur corps) pour communiquer entre eux.

Ce projet imite le comportement des vrais lucioles en utilisant la fonctionnalité de communication radio du micro:bit. La version Python a été créée par Nicholas H. Tollervey, et la version MakeCode est basée sur cela.

Flashez le programme sur au moins trois micro:bits dans la même pièce. Press button A on any micro:bit and you should see a 'swarm' of micro:bits lighting up as they receive a radio message. Il fonctionne mieux dans une pièce sombre avec beaucoup de micro:bits.

Once a micro:bit has received the radio message it has a one in ten chance of transmitting its own radio message and starting another wave of glowing lights in the other micro:bits.

When the lights eventually stop, press button A on any micro:bit to restart the 'swarm' of communication.

Comment ça marche

  • Le programme utilise la communication radio pour envoyer un message 'flash' lorsque vous appuyez sur le bouton A sur l'un des micro:bits.
  • Quand chaque micro:bit reçoit le message, il attend un temps aléatoire compris entre 50 et 350 millisecondes. It then makes the LED display flash bright then gradually dim to mimic the glow of a firefly.
  • Ensuite, il génère un nombre aléatoire entre 0 et 9. If the number is 0, it then sends its own 'flash' radio message, triggering more micro:bit fireflies to glow. Il a donc une chance sur dix de déclencher plus de lueurs dans d'autres micro:bits.
  • Vous pouvez utiliser un mélange d'anciens et de nouveaux micro:bits, mais ils doivent tous avoir les versions MakeCode ou Python du programme flashé dessus. (La communication radio fonctionne légèrement différemment dans chaque langage de programmation. Les programmes MakeCode ne peuvent pas communiquer par radio avec les programmes Python et vice versa.)

Ce dont vous aurez besoin

  • at least 3 micro:bits, the more the better
  • micro:bit battery packs (optional)

Étape 2 : Programme-le

Étape 3 : Améliore-le

  • Change the image that's displayed when the display flashes
  • Modify the code to make it more or less likely to trigger another flash event in other micro:bits. The range of random numbers could match the number of micro:bits you have: make it more likely if you have fewer micro:bits
  • Make smaller groups of fireflies using different radio group numbers. Only the micro:bits with the same group number will be able to communicate with each other.
  • Experiment with changing the power of the radio signal.
    Use the 'radio set transmit power' block in MakeCode.
    En Python, utilisez radio.config(power=7)
    Choisissez un nombre entre 0 (signal radio le plus faible) et 7 (le plus fort).
    What effect does changing the radio power have?