from microbit import *import radioradio.on()direction = '0'change = Falsewhile True: if accelerometer.get_y() < -200: if direction != '1': direction = '1' change = True if accelerometer.get_y() > 200: if direction != '2': direction = '2' change = True if accelerometer.get_x() < -200: if direction != '4': direction = '4' change = True if accelerometer.get_x() > 200: if direction != '3': direction = '3' change = True if (200 > accelerometer.get_x() > -200) and (200 > accelerometer.get_y() > -200): if direction != '5': direction = '5' change = True if change: radio.send(direction) change = False display.show(direction) sleep(100) from microbit import *import radiodef forward(): pin8.write_digital(1) pin11.write_digital(0) pin12.write_digital(1) pin16.write_digital(0)def backward(): pin8.write_digital(0) pin11.write_digital(1) pin12.write_digital(0) pin16.write_digital(1)def left(): pin8.write_digital(1) pin11.write_digital(0) pin12.write_digital(0) pin16.write_digital(1)def right(): pin8.write_digital(0) pin11.write_digital(1) pin12.write_digital(1) pin16.write_digital(0)def stop(): pin8.write_digital(0) pin11.write_digital(0) pin12.write_digital(0) pin16.write_digital(0)radio.on()stop()while True: incoming = radio.receive() if incoming == '1': forward() sleep(50) elif incoming == '2': backward() sleep(50) elif incoming == '3': left() sleep(50) elif incoming == '4': right() sleep(50) elif incoming == '5': stop() sleep(50) # Code below is a simplified version of the code found here# https://www.waveshare.com/wiki/Joystick_for_micro:bit# but still a lot to it.# On the one I was trying it with the push button on pin 8 didn't work# so I have commented it out below. # The A and B buttons on the micro:bit are not used in this program from microbit import *import radioradio.on()JoyStick_P = pin8JoyStick_X = pin1JoyStick_Y = pin2DIR = { 'NONE': 0, 'U': 1, 'D': 2, 'L': 3, 'R': 4, 'U_L': 5, 'U_R': 6, 'D_L': 7, 'D_R': 8}KEY = { 'NONE': 0, 'P': 1, 'A': 2, 'B': 3}class JOYSTICK(): def __init__(self): self.Read_X = JoyStick_X.read_analog() self.Read_Y = JoyStick_Y.read_analog() def Listen_Dir(self, Dir): Get_Rocker = DIR['NONE'] New_X = JoyStick_X.read_analog() New_Y = JoyStick_Y.read_analog() Dx = abs(self.Read_X - New_X) Dy = abs(self.Read_Y - New_Y) Right = New_X - self.Read_X Left = self.Read_X - New_X Up = New_Y - self.Read_Y Down = self.Read_Y - New_Y # max = 1023 Precision = 150 if Right > Precision and Dy < Precision: Get_Rocker = DIR['R'] elif Left > Precision and Dy < Precision: Get_Rocker = DIR['L'] elif Up > Precision and Dx < Precision: Get_Rocker = DIR['U'] elif Down > Precision and Dx < Precision: Get_Rocker = DIR['D'] elif Right > Precision and Up > Precision: Get_Rocker = DIR['U_R'] elif Right > Precision and Down > Precision: Get_Rocker = DIR['D_R'] elif Left > Precision and Up > Precision: Get_Rocker = DIR['U_L'] elif Left > Precision and Down > Precision: Get_Rocker = DIR['D_L'] else: Get_Rocker = DIR['NONE'] if Dir == Get_Rocker: return True else: return False def Listen_Key(self, Key): read_key = KEY['NONE'] if button_a.is_pressed(): read_key = KEY['A'] elif button_b.is_pressed(): read_key = KEY['B']# elif JoyStick_P.read_digital() == 0:# read_key = KEY['P'] else: read_key = KEY['NONE'] if Key == read_key: return True else: return False def Test(self): direction = 0 if self.Listen_Dir(DIR['NONE']): #display.show('0') direction = 0 if self.Listen_Dir(DIR['U']): #display.show(Image.ARROW_N) direction = 1 if self.Listen_Dir(DIR['D']): #display.show(Image.ARROW_S) direction = 2 if self.Listen_Dir(DIR['L']): #display.show(Image.ARROW_W) direction = 3 if self.Listen_Dir(DIR['R']): #display.show(Image.ARROW_E) direction = 4# if self.Listen_Dir(DIR['U_L']): #display.show(Image.ARROW_NW)# direction = 5# if self.Listen_Dir(DIR['U_R']): #display.show(Image.ARROW_NE)# direction = 6# if self.Listen_Dir(DIR['D_L']): #display.show(Image.ARROW_SW)# direction = 7# if self.Listen_Dir(DIR['D_R']): #display.show(Image.ARROW_SE)# direction = 8 # while self.Listen_Key(KEY['A']): #display.scroll("A")# while self.Listen_Key(KEY['B']): #display.scroll("B")# while self.Listen_Key(KEY['P']):# display.scroll("P") return direction display.clear()JoyStick = JOYSTICK()change = Falsedirectionold = 0while True: directionnew = JoyStick.Test() #display.show(str(directionnow)) if directionnew != directionold: directionold = directionnew change = True else: change = False if change: radio.send(str(directionnew)) change = False display.show(str(directionnew)) from microbit import *import radiodef forward(): pin0.write_digital(1) pin8.write_digital(0) pin12.write_digital(1) pin16.write_digital(0)def backward(): pin0.write_digital(0) pin8.write_digital(1) pin12.write_digital(0) pin16.write_digital(1)def left(): pin0.write_digital(1) pin8.write_digital(0) pin12.write_digital(0) pin16.write_digital(1)def right(): pin0.write_digital(0) pin8.write_digital(1) pin12.write_digital(1) pin16.write_digital(0)def stop(): pin0.write_digital(0) pin8.write_digital(0) pin12.write_digital(0) pin16.write_digital(0)radio.on()stop()while True: incoming = radio.receive() if incoming == '0': display.show('0') stop() sleep(50) elif incoming == '1': display.show('1') forward() sleep(50) elif incoming == '2': display.show('2') backward() sleep(50) elif incoming == '3': display.show('3') left() sleep(50) elif incoming == '4': display.show('4') right() sleep(50) from microbit import *import radiodef forward(): pin0.write_digital(1) pin8.write_digital(0) pin12.write_digital(1) pin16.write_digital(0)def backward(): pin0.write_digital(0) pin8.write_digital(1) pin12.write_digital(0) pin16.write_digital(1)def left(): pin0.write_digital(1) pin8.write_digital(0) pin12.write_digital(0) pin16.write_digital(1)def right(): pin0.write_digital(0) pin8.write_digital(1) pin12.write_digital(1) pin16.write_digital(0)def stop(): pin0.write_digital(0) pin8.write_digital(0) pin12.write_digital(0) pin16.write_digital(0)radio.on()stop()while True: incoming = radio.receive() display.show(str(pin1.read_digital())) x = pin1.read_digital() if x == 1: if incoming == '0': #display.show('0') stop() sleep(50) elif incoming == '1': #display.show('1') forward() sleep(50) elif incoming == '2': #display.show('2') backward() sleep(50) elif incoming == '3': #display.show('3') left() sleep(50) elif incoming == '4': #display.show('4') right() sleep(50) else: stop()