Cost of self build models - under £10 (excluding cost of Kitronik motor board and micro:bit).
Watch the video below to see it in action.
# Move forward(turn both motors on)
pin8.write_digital(1)
pin12.write_digital(0)
pin0.write_digital(1)
pin16.write_digital(0)
sleep(5000)
# Make a left turn (turn Motor 2 off)
pin8.write_digital(0)
pin12.write_digital(0)
sleep(2000)
# Move forward(turn both motors on)
pin8.write_digital(1)
pin12.write_digital(0)
pin0.write_digital(1)
pin16.write_digital(0)
sleep(5000)
# Make a left turn (turn Motor 2 off)
pin8.write_digital(0)
pin12.write_digital(0)
sleep(2000)
if pin1.read_digital() == 1:
radio.send('st')
sleep(50)
if pin2.read_digital() == 1:
radio.send('bk')
sleep(50)
elif msgin == 'st':
# ------turn both motors off
pin8.write_digital(0)
pin12.write_digital(0)
pin0.write_digital(0)
pin16.write_digital(0)
sleep(50)
elif msgin == 'bk':
# ------turn both motors off
pin8.write_digital(0)
pin12.write_digital(1)
pin0.write_digital(0)
pin16.write_digital(1)
sleep(50)
from microbit import *
import radio
radio.on()
def set_servo_angle(pin, angle):
duty = 26 + (angle * 102) / 180
pin.write_analog(duty)
angle = 90
set_servo_angle(pin1, angle)
while True:
msgin = radio.receive()
if msgin == 'flip':
angle = 135
set_servo_angle(pin1, angle)
sleep(50)
else:
angle = 45
set_servo_angle(pin1, angle)
sleep(50)
N.B. The angle will vary according to the position of the flipper on the vehicle - some experimentation will be needed.
if pin1.read_digital() == 1:
radio.send('flip')
sleep(50)
from microbit import *
while True:
if pin1.read_analog() > 950:
pin8.write_digital(0)
pin12.write_digital(0)
if pin2.read_analog() > 950:
pin0.write_digital(0)
pin16.write_digital(0)
if pin1.read_analog() < 950:
pin8.write_digital(1)
pin12.write_digital(0)
if pin2.read_analog() < 950:
pin0.write_digital(1)
pin16.write_digital(0)