How the Wireless Controller Script Works

The import statements and radio calls are similar to the countdown_transmitter.py script from Send and Receive Packets.  The only difference is that radio.config has length set to 64 to accommodate a packet string with up to 64 characters.

# terminal_bot_controller_wireless

from microbit import *
import radio

radio.on()
radio.config(channel=7,length=64)

As usual, we want at least a 1 second pause before printing anything to make sure the browser terminal is ready.  Then, instructions for the range of speeds you’ll use are printed.

sleep(1000)

print("\nSpeeds are -100 to 100\n")

The main loop starts with the input statements from terminal_controlled_bot_tethered_your_turn.   

while True:
    vL = int(input("Enter left speed: "))
    vR = int(input("Enter right speed: "))
    ms = int(input("Enter ms to run: "))

Next, the values are stored in a dictionary.  This makes it easy because the receiver just has to do the reverse to get the vL, vR, and ms values back out of the dictionary it received.  For more background on this, see the Dictionary Primer.

    dictionary = {  }
    dictionary['vL'] = vL
    dictionary['vR'] = vR
    dictionary['ms'] = ms

The dictionary is converted to a string named packet.  That packet is displayed with a print statement, and then transmitted with a call to radio.send.

    packet = str(dictionary)
    
    print("Send: ", packet)
    radio.send(packet)
    
    print()