С помощью блока Независимое управление моторами можно самостоятельно указать мощность левого и правого колеса:
Режимы работы блока совпадают с режимами работы блока Рулевое управление. От соотношения мощностей будет зависеть скорость и направление движения робота:
Робот xпоедет прямо.
Робот повернёт xнаправоxодним колесом.
Робот повернёт xналевоxна месте.
Составьте следующую программу с помощью которой робот проедет прямо 45 см а потом повернёт направо на 135 градусов с помощью поворота на месте. Значения мощностей и необходимое количество оборотов выберите самостоятельно.
Чтобы проехать 45 см, колеса диаметром 5,6 см должны сделать x2.558 оборот(ов). Для поворота на 135 градусов, колёсам робота с шириной колеи 15 см нужно совершить x1 оборот(ов).
md`Для примера возьмём робота с <span class="var_b">шириной колеи</span> равной *15 см*. Чтобы совершить поворот по дуге налево, установим мощность левого мотора равна **20**, а мощность правого мотора - **${Inputs.bind(Tangle({min:30,max:100,minWidth:"2em"}), viewof p2)}**. <span class="var_a">Угол поворота робота</span> связан с <span class="var_p">длиной дуги окружности</span>, которую опишет колесо с максимальной мощностью. На рисунке показан поворот робота на <span class="var_a"> угол ${Inputs.bind(Tangle({min:0,max:50,minWidth:"2em"}), viewof ang3)} градусов</span>.`
Для примера возьмём робота с шириной колеи равной 15 см. Чтобы совершить поворот по дуге налево, установим мощность левого мотора равна 20, а мощность правого мотора - 32. Угол поворота робота связан с длиной дуги окружности, которую опишет колесо с максимальной мощностью. На рисунке показан поворот робота на угол 25 градусов.
Мощности левого и правого колёс относятся как радиусы окружностей, которые описывают левое и правое колесо соответственно: левправУравнение 1 поможет получить значение мощности одного колеса, по выбранной мощности второго колеса, радиусу поворота и ширине колеи робота .
Количество оборотов будем рассчитывать исходя из длины дуги, которую опишет колесо с большим радиусом поворота.
Используйте Уравнение 1 и Уравнение 2, чтобы повернуть робота на 180 градусов по окружности радиусом 20 см. Подставим см и см в Уравнение 1: левправ Мощность лев возьмём равной 20. Значит прав будет равна x35.026.
Рассчитаем количество оборотов с помощью Уравнение 2:
Составьте следующую программу, чтобы проверить правильность вычислений:
Beginning of dialog window. Escape will cancel and close the window.
End of dialog window.
Точность вычислений
Все вычисляемые значения мощностей и количества оборотов приблизительны. Может понадобиться вручную подобрать более точные значения, исходя из поверхности, по которой движется робот.
✍️ Сделайте самостоятельно
2.1 Восьмёрка
Составьте программу движения робота по фрагменту восьмёрки. Повороты должны быть плавными. Расстояние между бочками - 50 см. Стартовая позиция робота находится на расстоянии 25 см от одной из бочек.
Beginning of dialog window. Escape will cancel and close the window.
End of dialog window.
Условием остановки робота можно считать момент, когда кнопка датчика касания перестаёт быть нажатой.
Задание № 4. Цикл
Многократное повторение команд можно реализовать с помощью блока Цикл:
Как и у многих других блоков, цикл может работать в нескольких режимах: бесконечное повторение до остановки программы, определённое количество повторений, завершение по таймеру и так далее.
✍️ Сделайте самостоятельно
4.1 Пинг-понг
Робот движется между двумя стенами без остановки. Расстояние между стенами может поменяться в процессе работы программы.
Beginning of dialog window. Escape will cancel and close the window.
End of dialog window.
✍️ Сделайте самостоятельно
4.2 Чертёжник
md`Составьте программу с помощью которой робот проедет по сторонам ${d3.shuffle(["восьмиугольника","семиугольника","шестиугольника"])[0]}. Длина стороны многоугольника - *${d3.shuffle([10,15,20])[0]} см*.`
Составьте программу с помощью которой робот проедет по сторонам восьмиугольника. Длина стороны многоугольника - 15 см.
В видео показан пример выполнения задания для пятиугольника.