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

Transmitter Displays Stop Range

The only thing that needs to be added to the transmitter radio_tilt_transmit_rapid script  is an if… block that displays one of two things:

  • A diamond if the y-axis tilt is less than +/- 80
  • The tilt direction needle if the y-axis reports larger values.

Let’s try it!

Example script: radio_tilt_controller_w_stop_range

  • Set your tilt controlled cyber:bot’s 3-position switch to 0 so that it doesn’t move around during this test.
  • Make sure you are working in the browser with the micro:bit Python Editor that is connected to the radio tilt controller micro:bit.
  • Set the project name to radio_tilt_controller_w_stop_range. 
  • Update the script in the editor to match the one below.
  • If you are in a classroom, make sure the channel= in the script to your assigned channel.
  • Click Save, and then click Send to micro:bit.  
  • Verify that the tilt direction needle still displays, except for when you hold it close to level.  Then, it should display a diamond.
# radio_tilt_controller_w_stop_range

from microbit import *
import math
import radio

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

while True:
    x = accelerometer.get_x()
    y = accelerometer.get_y()

    angle = round( math.degrees( math.atan2(y, x) ) )
    needle = ( angle + 90 + 15 ) // 30

    if abs(y) > 80:
        display.show(Image.ALL_CLOCKS[needle])
    else:
        display.show(Image.DIAMOND_SMALL)

    dictionary = { }
    dictionary['x'] = x
    dictionary['y'] = y
    dictionary['needle'] = needle

    packet = str(dictionary)
    radio.send(packet)

    sleep(50)

How radio_tilt_controller_w_stop_range Works

The radio_tilt_controller_w_stop_range script is just radio_tilt_transmit_rapid with an if…else… statement added. 

When the absolute value of y is greater than 80, it displays the tilt direction needle, just like it has up to this point.  But, if the y value is anywhere in the -80 to 80 range, it instead displays a small diamond to tell you that your forward/backward tilt is pretty close to level.

    if abs(y) > 80:
        display.show(Image.ALL_CLOCKS[needle])
    else:
        display.show(Image.DIAMOND_SMALL)

The if abs(y) function returns the positive-only version of any value y might store.  So, if y stores -20, abs(y) returns 20.  If y stores 20, abs(y) doesn’t change anything and just returns 20.  So, if abs(y) > 80 is a concise way to check if y is outside the -80…80 range.  Another way to check if y is outside that range would be if y > 80 or y < -80.

 


Printer-friendly version
Adding a Stop Range
Prev
Receiver Full Tilt Control & Stop Range
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