from microbit import * from machine import * import music import radio ############################################################################### # rp_maqueen-robot.py # @title: Jumeau Maqueen : Programme de la carte microbit du robot # @project: Ropy (Blender-EduTech) # @lang: fr # @authors: Philippe Roy # @copyright: Copyright (C) 2022 Philippe Roy # @license: GNU GPL ############################################################################### # ############################################################################### # Initialisation # ############################################################################### led_image = Image('00000:00000:00900:00000:00000') display.show(led_image) # Témoin de fonctionnement radio.config(group=1, queue=1, length=8) radio.on() # ############################################################################### # Boucle principale # ############################################################################### while True: v_avancer = 50 v_tourner = 50 v_tourner_faible = 25 # Lecture de l'ordre ordre=radio.receive() # Avancer if ordre=="AV": display.show(Image.ARROW_N) pin8.write_digital(1) # Led avant gauche pin12.write_digital(1) # Led avant gauche i2c.write(0x10, bytearray([0x00, 0x0, v_avancer])) # Moteur gauche i2c.write(0x10, bytearray([0x02, 0x0, v_avancer])) # Moteur droit # Reculer if ordre=="RE": display.show(Image.ARROW_S) pin8.write_digital(1) # Led avant gauche pin12.write_digital(1) # Led avant gauche i2c.write(0x10, bytearray([0x00, 0x1, v_avancer])) # Moteur gauche i2c.write(0x10, bytearray([0x02, 0x1, v_avancer])) # Moteur droit # Gauche if ordre=="GA": display.show(Image.ARROW_W) pin8.write_digital(1) # Led avant gauche pin12.write_digital(0) # Led avant droit i2c.write(0x10, bytearray([0x00, 0x0, 0])) # Moteur gauche i2c.write(0x10, bytearray([0x02, 0x0, v_tourner])) # Moteur droit # Avancer + gauche if ordre=="AG": display.show(Image.ARROW_W) pin8.write_digital(1) # Led avant gauche pin12.write_digital(0) # Led avant droit i2c.write(0x10, bytearray([0x00, 0x0, v_tourner_faible])) # Moteur gauche i2c.write(0x10, bytearray([0x02, 0x0, v_tourner])) # Moteur droit # Reculer + gauche if ordre=="RG": display.show(Image.ARROW_W) pin8.write_digital(1) # Led avant gauche pin12.write_digital(0) # Led avant droit i2c.write(0x10, bytearray([0x00, 0x1, v_tourner_faible])) # Moteur gauche i2c.write(0x10, bytearray([0x02, 0x1, v_tourner])) # Moteur droit # Droite if ordre=="DR": display.show(Image.ARROW_E) pin8.write_digital(0) # Led avant gauche pin12.write_digital(1) # Led avant droit i2c.write(0x10, bytearray([0x00, 0x0, v_tourner])) # Moteur gauche i2c.write(0x10, bytearray([0x02, 0x0, 0])) # Moteur droit # Avancer + droite if ordre=="AD": display.show(Image.ARROW_W) pin8.write_digital(1) # Led avant gauche pin12.write_digital(0) # Led avant droit i2c.write(0x10, bytearray([0x00, 0x0, v_tourner])) # Moteur gauche i2c.write(0x10, bytearray([0x02, 0x0, v_tourner_faible])) # Moteur droit # Reculer + droite if ordre=="RD": display.show(Image.ARROW_W) pin8.write_digital(1) # Led avant gauche pin12.write_digital(0) # Led avant droit i2c.write(0x10, bytearray([0x00, 0x1, v_tourner])) # Moteur gauche i2c.write(0x10, bytearray([0x02, 0x1, v_tourner_faible])) # Moteur droit # Stop if ordre=="ST": display.show(led_image) # Témoin de fonctionnement pin8.write_digital(0) # Led avant gauche pin12.write_digital(0) # Led avant droit i2c.write(0x10, bytearray([0x00, 0x0, 0])) i2c.write(0x10, bytearray([0x02, 0x1, 0])) # Cadencement # sleep(10)