Advertisement
Lonely_Wanderer

Альтернативное решение 1 задачи для разминки. 6.1 / 15

Dec 13th, 2023
712
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.89 KB | None | 0 0
  1. motor_r = Motor(Port.D)
  2. motor_l = Motor(Port.A)
  3.  
  4. distance = UltrasonicSensor(Port.S1)
  5. gyro = GyroSensor(Port.S4)
  6.  
  7. # Первая подзадача:
  8. # Проезд вперёд до тех пор, пока не заметит
  9. # препятствие на расстоянии 10 см
  10. while distance.distance() > 100:
  11.     motor_r.run(200)
  12.     motor_l.run(200)
  13. motor_r.run(0)
  14. motor_l.run(0)
  15.  
  16. # создание промежуточной переменной, которая поможет нам вернуться в исходное положение
  17. angle = motor_r.angle()
  18.  
  19. # Вторая подзадача:
  20. # Поворот на 180 градусов вокруг своей оси
  21. gyro.reset_angle(0)
  22. while gyro.angle() < 180:
  23.     motor_r.run(-50)
  24.     motor_l.run(50)
  25. motor_r.run(0)
  26. motor_l.run(0)
  27.  
  28. # Третья подзадача:
  29. # возвращение на точку старта
  30.  
  31. # Первый вариант решения.
  32. # Сначала просто запускаем 1 мотор, а затем запускается второй методом "run_angle"
  33. # что позволит им проехать одно и то же расстояние, после чего оба выключатся, так
  34. # как программа завершится
  35. motor_r.run(200)
  36. motor_l.run_angle(200,angle)
  37.  
  38. # Второй вариант решения
  39. # Запускаем 2 мотора методом "run_angle", но в том, моторе, который запускаем первым,
  40. # указываем третий аргумент "wait", который позволит запустить второй мотор сразу же,
  41. # без ожидания окончания работы первого мотора. Моторы также проедут одинаковое расстояние.
  42. motor_r.run_angle(200,angle,wait=False)
  43. motor_l.run_angle(200,angle)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement