Skip to content

Activity

Tell me a secret

Intermediate | MakeCode, Python | Buttons, Radio | Communication, Radio waves, Selection

Step 1: Make it

What is it?

Use micro:bit’s radio feature to answer questions in secret.

Two people sharing secrets using micro:bit radio

How it works

  • Flash this program on to two micro:bits. You and a friend ask each other questions that have ‘yes’ or ‘no’ as the answer.
  • Press input button A to send ‘yes’ and button B to send ‘no’ messages. A tick or cross will flash on both micro:bits’ LED display outputs for half a second.
  • The program uses radio to send your answer secretly - no-one (except your partner) can hear the radio signal.
  • When a radio message is received, the program uses selection to test the message: if the received message is equal to ‘yes’, then it shows a tick on the LED display, but if the message is equal to ‘no’ then it shows a cross.
  • Make sure the radio group number is the same on both micro:bits – you can use any number between 0 and 255.
  • If lots of you are using this program in the same place, you’ll want to make sure each pair of people has their own radio group number.
  • Keep your radio group number a secret if you don't want anyone snooping on your messages!

What you need

  • Two micro:bits (or MakeCode simulator)
  • MakeCode or Python editor
  • battery pack (optional)
  • a friend and a secret to share!

Step 2: Code it

1from microbit import *
2import radio
3radio.config(group=7)
4radio.on()
5
6while True:
7    message = radio.receive()
8    if message:
9        if message == 'yes':
10            display.show(Image.YES)
11            sleep(500)
12            display.clear()
13        elif message == 'no':
14            display.show(Image.NO)
15            sleep(500)
16            display.clear()
17    if button_a.was_pressed():
18        radio.send('yes')
19        display.show(Image.YES)
20        sleep(500)
21        display.clear()
22    if button_b.was_pressed():
23        radio.send('no')
24        display.show(Image.NO)
25        sleep(500)
26        display.clear()
27

Step 3: Improve it

  • Show different icons or messages for ‘yes’ and ‘no’.
  • Use shake, tilt or buttons A and B together to send different answers such as ‘maybe.’
  • Change ‘yes’ and ‘no’ to ‘dot’ and ‘dash’ and send Morse code messages.