Вход на сайт
Преимущества и недостатки HEX-формата цветов
3261 просмотров
Перейти к просмотру всей ветки
uscheswoi_82 коренной житель
в ответ AlexNek 20.01.24 12:01
Если что, я много что уже попробывал, но у меня не сложилось впечатление, что дети научаться программированию, т.к. очень всё просто.
Есть такой робот, если подносишь предмет к датчикам, он едет назад https://i.ibb.co/3dNGNZv/mvi-7389-9-OUD0-Hq-S-ezgif-com-gi...
Код очень простой:
def on_forever(): #Если расстояние меньше 30 см if maqueen.ultrasonic(PingUnit.CENTIMETERS) < 30 and maqueen.ultrasonic(PingUnit.CENTIMETERS) != 0: # Мотор назад maqueen.motor_run(maqueen.Motors.M1, maqueen.Dir.CCW, 40) maqueen.motor_run(maqueen.Motors.M2, maqueen.Dir.CCW, 40) # Включаем бибикалку (как грузовые машины когда едут назад включают сигнал) music.play_tone(Note.C, music.beat(BeatFraction.WHOLE)) # Выключаем передний свет (фары) maqueen.write_led(maqueen.LED.LED_LEFT, maqueen.LEDswitch.TURN_OFF) maqueen.write_led(maqueen.LED.LED_RIGHT, maqueen.LEDswitch.TURN_OFF) elif maqueen.ultrasonic(PingUnit.CENTIMETERS) > 30 and maqueen.ultrasonic(PingUnit.CENTIMETERS) != 0: # Мотор вперёд maqueen.motor_run(maqueen.Motors.M1, maqueen.Dir.CW, 40) maqueen.motor_run(maqueen.Motors.M2, maqueen.Dir.CW, 40) # Включаем передний свет (фары) maqueen.write_led(maqueen.LED.LED_LEFT, maqueen.LEDswitch.TURN_ON) maqueen.write_led(maqueen.LED.LED_RIGHT, maqueen.LEDswitch.TURN_ON) #Выполняется всё время, устанавливаем "callback"-функцию basic.forever(on_forever)
Так-же я не почувствовал что ребёнок научиться вот этому см. https://i.ibb.co/pzYV6dm/mvi-7390-rz-Du9-BXt-ezgif-com-gif... (извиняюсь за волосы, у меня линька)
Код ещё проще:
def on_forever(): #Бесконечный цикл while True: #Включаем красный свет Kitronik_STOPbit.traffic_light_state(Kitronik_STOPbit.LightStates.STOP) #Пауза 1000 мсек basic.pause(1000) #Включаем жёлтый свет (автоматически выключается красный свет) Kitronik_STOPbit.traffic_light_state(Kitronik_STOPbit.LightStates.GET_READY) #Пауза 1000 мсек basic.pause(1000) #Включаем зелёный свет (автоматически выключается жёлтый свет) Kitronik_STOPbit.traffic_light_state(Kitronik_STOPbit.LightStates.GO) #Пауза 1000 мсек basic.pause(1000) #Выполняется всё время, устанавливаем "callback"-функцию basic.forever(on_forever)
Но вот тут пришлось немного покумекать https://i.ibb.co/7RbdPYV/IMG-3179-min.jpg
Короче в стандартной библиотеки нет возможности перевернуть спрайт (акулу) влево или вправо, есть только mySprite.image.flip_x(), пришлось самому делать:
#Спрайт повёрнут налево left = True #Если нажали на кнопку "влево" def on_button_event_left_pressed(): global left #Если спрайт акулы справа, то переворачиваем на лево if left == False: mySprite.image.flip_x() left = True #Если нажали на кнопку "вправо" def on_button_event_right_pressed(): global left #Если спрайт акулы слева, то переворачиваем на право if left == True: mySprite.image.flip_x() left = False #Устанавливаем callback-функции, и привязываем к кнопкам влево и вправо controller.left.on_event(ControllerButtonEvent.PRESSED, on_button_event_left_pressed) controller.right.on_event(ControllerButtonEvent.PRESSED, on_button_event_right_pressed)
Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение
Дневник тяжелобольного инвалида