Получение неожиданного вывода от робота BBC MicroBit при движении вперед и затем назад

Я использую Micro:Bit и Bit: Bot, чтобы делать некоторые простые вещи, но получаю неожиданные результаты от двигателя Bit: Bot.

Проще говоря, я пытаюсь:

    • переместить бит: бот вперед на 1 секунду (с несколькими зелеными неопикселями)
    • Стоп моторы (и очистить все неопиксели)
    • задний ход (с некоторыми красными неопикселями)

Вот моя программа, написанная на MicroPython:

from microbit import *
import neopixel

# pin13 gives access to the robot's neopixels.
myLightShow = neopixel.NeoPixel(pin13,12)
myLightShow[3]= (0,255,0)
myLightShow[4]= (0,225,0)
myLightShow[5]= (0,255,0)
myLightShow[9]= (0,255,0)
myLightShow[10]= (0,255,0)        
myLightShow[11]= (0,255,0)
myLightShow.show()

#for driving the motors the following pins are used:
#pin8 (left wheel) and pin12 (right wheel) sets the direction. 
#set pin to 0 for forward, set pin to 1 for reverse

# pin0 (left wheel) and pin1 (right wheel) sets speed. 0 - 1023 range
# both, therefore, are write_analog statements.

#Below, the 5 statements tell motors to go forward, at speed 300 for 1 sec
pin8.write_digital(0)
pin12.write_digital(0)
pin0.write_analog(300)
pin1.write_analog(300)
sleep(1000)

#Stop motors and clear neopixels (i.e. off)
pin0.write_analog(0)
pin1.write_analog(0)
pin8.write_digital(0)
pin12.write_digital(0)
myLightShow.clear()

# reverse at speed 350
pin8.write_digital(1)
pin12.write_digital(1)
pin0.write_analog(350)
pin1.write_analog(350)

# turn on selected neopixels and show.
myLightShow[0]= (255,0,0)
myLightShow[1]= (255,0,0)
myLightShow[2]= (255,0,0)
myLightShow[6]= (255,0,0)
myLightShow[7]= (255,0,0)
myLightShow[8]= (255,0,0)
myLightShow.show()   

Когда я запускаю программу на своем бите: бот, она движется вперед на 1 секунду, как и ожидалось, затем останавливается (как и ожидалось), но затем снова продолжает двигаться вперед!

Я исправлял это целую вечность и не знаю, в чем проблема.

Может кто-нибудь помочь, пожалуйста? Спасибо

1 ответ

Казалось, добавление команды sleep(1000) устранило проблему, и теперь бит: бот движется, как и ожидалось.

Другие вопросы по тегам