Let's build on experience, and adapt a familiar script from a previous tutorial to use keyboard inputs.
Starting with the countdown_sender script from the Send and Receive Packets activity, you can replace its input statements with the ones from terminal_controlled_bot_tethered_try_this. Then, the dictionary that’s created has to be adjusted to contain the vL, vR, and ms keys and values. That’s the most crucial part of incorporating the terminal-in, radio-out part of your tethered app into script that wirelessly transmits.
This animated GIF shows the script being modified.
(View full-size: terminal_bot_controller_wireless.mp4)
Here is a step-by-step rundown of what's shown in the animation:
- Open terminal_controlled_bot_tethered_try_this
- Copy these lines:
vL = int(input("Enter left speed: ")) vR = int(input("Enter right speed: ")) ms = int(input("Enter ms to run: "))
- Open the countdown_sender script from Send and Receive Packets.
- Paste the three lines you copied over these lines:
text = input("Enter countdown start: ") value = int(text) message = input("Enter message after countdown: ")
- Find these two lines:
dictionary['start'] = value dictionary['after'] = message
- Replace them with these three lines:
dictionary['vL'] = vL dictionary['vR'] = vR dictionary['ms'] = ms
- Update the comment at the top of the script with the name terminal_bot_controller_wireless.
- Find these lines:
print("Countdown App") print("micro:bit sender")
Replace them with this line:
print("\nSpeeds are -100 to 100\n")
- Change the 50 in this line to 64:
radio.config(channel=7,length=50)
It should look like this:
radio.config(channel=7,length=64)
- If you are in a classroom and using assigned channels, update your channel.
- Rename the script terminal_bot_controller_wireless.
Now, your script should be ready.
- Verify the changes you made against the example script shown below, then save it.
- Disconnect the cyber:bot from the computer.
- Connect the micro:bit to the computer that you plan to use to as the radio transmitter that will send messages to the cyber:bot.
- Click Save, and then click Send to micro:bit.
Example script: terminal_bot_controller_wireless.py
# terminal_bot_controller_wireless.py from microbit import * import radio radio.on() radio.config(channel=7,length=64) sleep(1000) print("\nSpeeds are -100 to 100\n") while True: vL = int(input("Enter left speed: ")) vR = int(input("Enter right speed: ")) ms = int(input("Enter ms to run: ")) dictionary = { } dictionary['vL'] = vL dictionary['vR'] = vR dictionary['ms'] = ms packet = str(dictionary) print("Send: ", packet) radio.send(packet) print()