Skip to content
Parallax Learn (Stage)

Parallax Learn (Stage)

This is the staging site. Please see https://learn.parallax.com for the official site.

  • Welcome
  • Tutorials
        • Tutorial Series head tag

          Tutorial Series
        • Tutorial Series

          The special, classroom-ready series pages are organized collections of tutorials for our most popular hardware and/or languages. The tutorials for each topic are conveniently accessible from a single page, shown in the order it is recommended that they be completed.
        • Robotics Series Head tag

          Robotics Series
        • Robotics Series

          • Artificial Intelligence Tutorial Series
          • Cybersecurity: Radio Data tutorialCybersecurity Tutorial Series
          • cyber:bot Tutorial Series
          • Boe-Bot Tutorial SeriesBoe-Bot Tutorial Series
          • Arduino Shield-Bot Tutorial Series
          • ActivityBot with C TutorialsActivityBot with C Tutorials
          • ActivityBot with BlocklyProp Tutorial SeriesActivityBot with BlocklyProp Tutorial Series
          • Scribbler 3 Tutorial SeriesScribbler 3 Tutorial Series
        • Electronics & Programming Series Head tag

          Electronics & Programming Series
          • BS2 Board of Education Tutorial SeriesBS2 Board of Education Tutorial Series
          • Propeller C-Language BasicsPropeller C Basics and Projects
          • FLiP Try-It Kit C Tutorial SeriesFLiP Try-It Kit C Tutorial Series
          • FLiP Try-It Kit BlocklyProp TutorialsFLiP Try-It Kit BlocklyProp Tutorials
          • Badge WX Tutorial SeriesBadge WX Tutorial Series
          • Propeller BlocklyProp Basics and ProjectsPropeller BlocklyProp Basics and Projects
          • View All Tutorial Series »
        • Browse Tutorials
        • Browse Tutorials

          Individual tutorials sorted by robot or kit, and language.
        • By Robot or Kit
          • ActivityBot
          • SumoBot WX
          • Boe-Bot
          • Shield-Bot
          • cyber:bot
          • Badge WX
          • ELEV-8
          • ARLO
        • By Language
        • By Language

          • Propeller C
          • Arduino
          • BlocklyProp
          • PBASIC
          • Python
          • View All Tutorials »
  • Educators
  • Reference
  • Downloads
  • Home
  • All Courses
  • Cybersecurity: Radio Tilt Control

Cybersecurity: Radio Tilt Control

Receiver Full Tilt Control & Stop Range

In addition to displaying the diamond when the y-axis tilt is close to level, the radio_tilt_bot_fb_with_stop_range script also makes the cyber:bot stay still.

Example script: radio_tilt_bot_fb_with_stop_range

  • Make sure you are working in the browser with the micro:bit Python Editor that is connected to the radio tilt controlled cyber:bot.
  • If the radio_tilt_bot_fb_only script isn’t already open, click Open, and find and open it.
  • Set the project name to radio_tilt_bot_fb_with_stop_range. 
  • Update the script to match the one below.
  • If you are in a classroom, adjust the channel= in the script to your assigned channel.
  • Click Save, and then click Send to micro:bit.  
# radio_tilt_bot_fb_with_stop_range

from cyberbot import *
import radio

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

while True:

    packet = radio.receive()

    if packet:

        dictionary = eval(packet)
        x = dictionary.get('x')
        y = dictionary.get('y')
        needle = dictionary.get('needle') 

        fb = y / 10

        if abs(fb) > 8:
            display.show(Image.ALL_CLOCKS[needle])
            vL = fb
            vR = -fb
        else:
            display.show(Image.DIAMOND_SMALL)
            vL = None
            vR = None
       

        bot(18).servo_speed(vL)
        bot(19).servo_speed(vR)   
  • Set the cyber:bot board’s PWR switch to 1.
  • Tilt the micro:bit transmitter and verify that the receiver cyber:bot displays a copy of the needle.
  • Hold the micro:bit tilt transmitter level, with the LEDs upward and the USB connector pointing toward you.
  • Verify that both the transmitter and receiver micro:bits display a diamond.
  • Set the cyber:bot board PWR switch to 2.

While still holding the transmitter micro:bit level, does the cyber:bot stay still?

As you tilt the tilt transmitter away from and then toward you, does it make the cyber:bot roll forward and backward?

  • Set the PWR switch back to 0.

How It Works

Here is the portion of radio_tilt_bot_fb_with_stop_range that’s different from the previous radio_tilt_bot_fb_only that it’s based on.  

        if abs(fb) > 8:
            display.show(Image.ALL_CLOCKS[needle])
            vL = fb
            vR = -fb
        else:
            display.show(Image.DIAMOND_SMALL)
            vL = None
            vR = None

Keep in mind that fb is y / 8, so instead of looking for y being outside the +/- 80 range, this program checks if fb is outside the +/- 8 range.  When the absolute value of fb is greater than 8, the script displays the tilt needle and sets the vL and vR variables just like it did in the previous radio_tilt_bot_fb_only script.  But when fb falls inside the -8 to 8 range, it displays the diamond and sets vL and vR to None.   

Whenever the else block sets vL and vR to None, it makes the servos stay still.  It’s actually better than setting vL and vR to zero because None causes servo_speed to stop sending control signals.  This prevents any slow wheel rotation that might otherwise occur when the servos are slightly out of calibration and the speeds are set to 0.   

        bot(18).servo_speed(vL)
        bot(19).servo_speed(vR)  

Printer-friendly version
Transmitter Displays Stop Range
Prev
Add Left/Right Tilt Control
Next

DISCUSSION FORUMS | PARALLAX INC. STORE

About | Terms of Use | Feedback: learn@parallax.com | Copyright©Parallax Inc. 2024

© 2025 Parallax Learn (Stage) • Built with GeneratePress