Skip to content

Instantly share code, notes, and snippets.

@jimmo
Created January 7, 2019 01:11
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jimmo/71799216ea1599d2ad8a5f9906049da5 to your computer and use it in GitHub Desktop.
Save jimmo/71799216ea1599d2ad8a5f9906049da5 to your computer and use it in GitHub Desktop.
from microbit import *
ANNOYING = 100
def beep():
pin14.write_digital(1)
sleep(ANNOYING)
pin14.write_digital(0)
while True:
if button_a.was_pressed():
beep()
from microbit import *
import neopixel
class BitBot:
def __init__(self):
self.np = neopixel.NeoPixel(pin13, 12)
def _calc_speed(self, speed):
return int(speed/100 * 1023)
def left_motor_forward(self, speed=100):
pin0.write_analog(self._calc_speed(speed))
pin8.write_digital(False)
def left_motor_reverse(self, speed=100):
pin0.write_analog(self._calc_speed(100-speed))
pin8.write_digital(True)
def right_motor_forward(self, speed=100):
pin1.write_analog(self._calc_speed(speed))
pin12.write_digital(False)
def right_motor_reverse(self, speed=100):
pin1.write_analog(self._calc_speed(100-speed))
pin12.write_digital(True)
def left_motor_stop(self):
pin0.write_digital(False)
pin8.write_digital(False)
def right_motor_stop(self):
pin1.write_digital(False)
pin12.write_digital(False)
def stop(self):
self.left_motor_stop()
self.right_motor_stop()
def forward(self, speed=100):
self.left_motor_forward(speed)
self.right_motor_forward(speed)
def reverse(self, speed=100):
self.left_motor_reverse(speed)
self.right_motor_reverse(speed)
def spin_left(self, speed=100):
self.right_motor_forward(speed)
self.left_motor_reverse(speed)
def spin_right(self, speed=100):
self.left_motor_forward(speed)
self.right_motor_reverse(speed)
def set_np(self, i, rgb):
self.np[i] = rgb
self.show_np()
def set_np_all(self, rgb, count = None):
if count == None:
count = len(self.np)
for i in range(count):
self.np[i] = rgb
self.show_np()
def set_np_left(self, rgb, count=None):
for i in range(len(self.np)//2):
self.set_np(i, (0,0,0))
if count == None:
count = len(self.np)//2
for i in range(count):
self.np[i] = rgb
self.show_np()
def set_np_right(self, rgb, count=None):
for i in range(len(self.np)//2):
self.set_np(len(self.np)//2+ i, (0,0,0))
if count == None:
count = len(self.np)//2
for i in range(count):
self.np[i + len(self.np)//2] = rgb
self.show_np()
def clear_np(self):
self.set_np_all((0,0,0))
def show_np(self):
self.np.show()
def read_line_left(self):
return pin11.read_digital()
def read_line_right(self):
return pin5.read_digital()
def read_light_left(self):
pin16.write_digital(False)
return pin2.read_analog()
def read_light_right(self):
pin16.write_digital(True)
return pin2.read_analog()
def set_buzzer(self, state):
pin14.write_digital(state)
from microbit import *
# Speed is 0-1
def forward(speed=0.5):
# Set direction to forward for both.
pin8.write_digital(0)
pin12.write_digital(0)
# Set speed to speed
pin0.write_analog(int(speed * 1023))
pin1.write_analog(int(speed * 1023))
# Speed is 0-1
def stop():
forward(0)
SPEED_MAX = 1023
def speed_to_pwm(speed, scale=1.0):
return int(speed * scale * SPEED_MAX)
# Speed is 0-1
def left(speed=0.5):
# Set direction to forward for both.
pin8.write_digital(0)
pin12.write_digital(0)
# Set speed to speed
pin0.write_analog(speed_to_pwm(speed))
pin1.write_analog(speed_to_pwm(speed, 0.5))
# Speed is 0-1
def right(speed=0.5):
# Set direction to forward for both.
pin8.write_digital(0)
pin12.write_digital(0)
# Set speed to speed
pin0.write_analog(int(speed * 0.5 * 1023))
pin1.write_analog(int(speed * 1023))
import neopixel
neo = neopixel.NeoPixel(pin13, 12)
def right_turn():
neo.clear()
neo[11] = (255, 128, 0)
neo.show()
right(0.2)
for i in range(10):
neo[11] = (0, 0, 0)
neo.show()
sleep(300)
neo[11] = (255, 128, 0)
neo.show()
sleep(300)
stop()
neo.clear()
from microbit import *
while True:
print(pin2.read_analog())
sleep(100)
from microbit import *
import neopixel
neo = neopixel.NeoPixel(pin13, 12)
neo.clear()
while True:
if button_a.is_pressed():
neo[11] = (255, 0, 0)
else:
neo[11] = (0, 0, 0)
if button_b.is_pressed():
neo[5] = (0, 255, 0)
else:
neo[5] = (0, 0, 0)
neo.show()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment