radio_ping.py

micro:bit V2 (BBC micro:bit v2) · Archivo : radio_ping.py · Lenguaje : MicroPython · Uso : Communication radio sans fil entre deux micro:bit

La radio de 2,4 GHz integrada intercambia sin router: una placa envía un ping por segundo, la otra responde pong, y cada placa muestra los mensajes recibidos. El módulo radio gestiona solo el direccionado por grupo y canal.

Material necesario

Una BBC micro:bit V2 (nRF52833, matriz LED 5×5, botones A/B, acelerómetro + brújula, micrófono y altavoz) alimentada por USB o pila. Dos micro:bit V2 (o más); sin infraestructura de red.

Cableado

Sin cableado. Mantén las placas a más de 20 cm la primera vez para evitar la saturación de campo cercano.

Funcionamiento

radio.config(group, channel) fija la red lógica; send() difunde, receive_bytes() lee sin bloquear (None si vacío). El dúo ping/pong prueba el enlace en ambos sentidos.

Ejecución

Abre python.microbit.org, pega el programa MicroPython y envíalo a la placa (la micro:bit aparece como unidad MICROBIT). Pulsa reset para relanzar.

Variantes

Envía la temperatura o el contador de pasos en lugar de ping, o pasa a radio.send_number() para un protocolo binario compacto.

radio_ping.py

# Radio 2.4 GHz : ping/pong entre deux micro:bit (canaux 1-100).
# A charger sur DEUX cartes ; la V2 inclut la radio BLE/802.15.
from microbit import *
import radio

radio.config(group=7, channel=40, power=6)
radio.on()

compteur = 0
while True:
    # Envoyer un ping chaque seconde.
    compteur += 1
    radio.send('ping %d' % compteur)
    display.show(Image.YES)

    # Ecouter la reponse pendant 1 s (non bloquant par morceaux).
    t0 = running_time()
    while running_time() - t0 < 1000:
        msg = radio.receive_bytes()
        if msg:
            display.scroll(msg.decode(), delay=60)
            break
        sleep(20)

    # Repondre a tout ping recu d'une autre carte.
    msg = radio.receive_bytes()
    if msg and msg.startswith(b'ping'):
        radio.send('pong %s' % msg[5:].decode())

# radio.on() active la pile ; send/receive utilisent le groupe.
# port=... permet plusieurs reseaux sur le meme canal.

← Volver a la ficha