Questions
- Answer: The accelerometer senses direction along several axes, sensing how the device has been tilted.
- Answer: rotation angle
Exercises
- Answer: It allows the micro:bit to use functions from the math module.
- Answer: Using import math instead of from math import * forces any statement that uses a math module function to prepend it with the word math.
- Answer: It reads the accelerometer’s x-axis value and sets it equal to the variable x.
- Answer: continue
- Answer: math.atan2(y, x)
Projects
Holding the setup like a steering wheel, adjust the script so that the servo horn and display will point up for ‘right hand turns’ only.
1. Solution:
from microbit import * import math while True: x = accelerometer.get_x() y = accelerometer.get_y() angle = round( math.degrees( math.atan2(y, x) ) ) if angle >= 0 and angle <= 90: needle = ( angle - 90 + 15 ) // 30 display.show(Image.ALL_CLOCKS[needle]) angle = 180 - angle else: continue value = 0.5689 * angle + 25.6 pin16.write_analog(value)
2. Solution:
from microbit import * import math while True: x = accelerometer.get_x() y = accelerometer.get_y() angle = round( math.degrees( math.atan2(y, x) ) ) if angle >= 45 and angle <= 135: needle = ( angle - 90 + 15 ) // 30 display.show(Image.ALL_CLOCKS[needle]) angle = 180 - angle else: continue value = 0.5689 * angle + 25.6 pin16.write_analog(value)