При этом тело ее должно извиваться подобно тому, как двигаются настоящие змеи. При обнаружении препятствия на пути движения, змея должна напасть на. При этом другой мотор должен вращаться, то вперед, то назад, заставляя тело змеи извиваться. Программа должна обнаружить, что этот мотор достиг своей некоторой крайней точки вращения и ему пора начать вращаться в противоположную сторону. LtEJOiB-v7k/UVtARDlj6cI/AAAAAAAAF84/gUY7kkXB9TI/s510/017_maze_nxtg_progr.PNG' alt='Объезд Препятствий Робот Nxt Mindstorms Программа' title='Объезд Препятствий Робот Nxt Mindstorms Программа' />Для этого будет использован блок. Это положение будет также автоматически обозначено, как нулевая позиция. Робот Lego Mindstorms EV3 проходит полосу препятствий Полигон Duration 247. Капитан Фьючер 2,208 views middot 247 middot Задачки по робототехнике Карандаша и Самоделкина решение задач 5 и 6 Duration 648. Поэтому последующие отклонения вперед и назад на определенное количество градусов будут задавать повороты тела змеи. Класс Букварь. Учебник В. К. Павленко здесь. После возобновления движения мотор сможет либо довернуться до заданной изначально позиции, либо двигаться к новой позиции, но заданной также относительно нулевой точки не нужно будет рассчитывать сколько мотору нужно пройти сначала до 0, а потом до заданного положения. Это позволит определять, находится ли препятствие перед змей, в любой момент времени, а не только в крайних положениях тела змеи. Поскольку программа явно не ждет в этом блоке достижения заданной позиции, то нужно время от времени спрашивать, а находиться ли теперь мотор в нужном положении разность между нужными и текущим положениями становиться равно нулю. Как только мотор достиг требуемой позиции, ему передается команда начинать вращаться в противоположную сторону. Время указывается в этом случае чуть большее, чем нужно мотору для того, чтобы повернуться пока не произойдет физическое ограничения вращения. Но этот способ более вреден для мотора, поэтому и не был реализован. Движение головой для выполнения укуса управляется третьим мотором. Мотор вращается в одну сторону голова идет вперед, пасть открывается вращение в противоположную сторону голова движется назад, пасть закрывается. Оказалось, что использовать в этом месте Motor PID Block тоже удобнее не надо задумываться на сколько градусов нужно повернуть вперед или назад мотор вместо этого поворачиваем его вперед или назад до физических пределов вращения. При этом в какую сторону будет выполняться разворот змеи будет определяться положением хвоста в момент остановки робота перед препятствием. Кусок программы, отвечающий за выполнение укуса и за движение назад выглядит следующим образом. Итоговую программу можно скачать вот здесь.