Занятие № 2. Плавные повороты. Датчик касания

Задание № 1. Независимое управление двигателями

С помощью блока Независимое управление моторами можно самостоятельно указать мощность левого и правого колеса:

Режимы работы блока совпадают с режимами работы блока Рулевое управление. От соотношения мощностей будет зависеть скорость и направление движения робота:

Робот .

Робот повернёт .

Робот повернёт .

Составьте следующую программу с помощью которой робот проедет прямо 45 см а потом повернёт направо на 135 градусов с помощью поворота на месте. Значения мощностей и необходимое количество оборотов выберите самостоятельно.

Чтобы проехать 45 см, колеса должны сделать оборотов. Для поворота на 135 градусов нужно сделать оборотов.

Video Player is loading.
Current Time 0:00
Duration 0:06
Loaded: 0.00%
Stream Type LIVE
Remaining Time 0:06
 
1x
    • Chapters
    • descriptions off, selected
    • subtitles off, selected

      Задание № 2. Поворот по дуге

      Если мощности двигателей не равны друг другу, но имеют одинаковый знак, робот будет двигаться по дуге окружности определённого радиуса.

      Получим формулу, с помощью которой можно будет рассчитать соотношение мощностей левого и правого моторов k для плавного поворота по окружности радиуса R.

      Мощности левого и правого колёс относятся как радиусы окружностей, которые описывают левое и правое колесо соответственно: PлевPправ=RB2R+B2=2RB2R+B(1) поможет получить значение мощности одного колеса, по выбранной мощности второго колеса, радиусу поворота R и ширине колеи робота B.

      Количество оборотов будем рассчитывать исходя из длины дуги, которую опишет колесо с большим радиус поворота. x=(R+B2)a180d=(2R+B)a360d(2) Используем и , чтобы повернуть робота на 180 градусов по окружности радиусом 20 см. Подставим R=20 см и B=13,8 см в : PлевPправ=0.487 Мощность Pлев возьмём равной 20. Значит Pправ будет равна .

      Рассчитаем количество оборотов с помощью : x=(220+13.8)1803605.6=4.804

      Составьте следующую программу, чтобы проверить правильность вычислений:

      Video Player is loading.
      Current Time 0:00
      Duration 0:06
      Loaded: 0.00%
      Stream Type LIVE
      Remaining Time 0:06
       
      1x
        • Chapters
        • descriptions off, selected
        • subtitles off, selected
          Точность вычислений

          Все вычисляемые значения мощностей и количества оборотов приблизительны. Может понадобится вручную подобрать более точные значения, исходя из поверхности, по которой движется робот.

          ✍️ Сделайте самостоятельно

          Восьмёрка

          Составьте программу движения робота по фрагменту восьмёрки. Повороты должны быть плавными. Расстояние между бочками - 50 см. Стартовая позиция робота находится на расстоянии 25 см от одной из бочек.

          Video Player is loading.
          Current Time 0:00
          Duration 0:12
          Loaded: 0.00%
          Stream Type LIVE
          Remaining Time 0:12
           
          1x
            • Chapters
            • descriptions off, selected
            • subtitles off, selected

              Задание № 3. Датчик касания

              Первое измерительное устройство, которое используем в проектах - датчик касания.

              С помощью датчика касания можно определить три состояния:

              • нажат;
              • не нажат;
              • нажали и отпустили;

              Присоедините к платформе датчик касания так, чтобы он находился в передней части робота. Подключите датчик в порт номер 1.

              Чтобы приостановить выполнение программы до обнаружения одного из состояний датчика, используем блок Ожидание:

              По умолчанию блок приостановит выполнение программы на одну секунду. Для ожидания состояния датчика касания нужно выбрать подходящий режим:

              Теперь первым параметром можно выбрать состояние датчика касания, после которого программа продолжит выполнение:

              Составьте программу после запуска которой робот поедет прямо и остановится после нажатия на датчик касания.

              ✍️ Сделайте самостоятельно

              Где-то перед роботом находится стена. Робот едет вперёд пока не столкнётся со стеной, затем отъезжает назад и поворачивает налево на 90 градусов.

              Video Player is loading.
              Current Time 0:00
              Duration 0:08
              Loaded: 0.00%
              Stream Type LIVE
              Remaining Time 0:08
               
              1x
                • Chapters
                • descriptions off, selected
                • subtitles off, selected
                  ✍️ Сделайте самостоятельно

                  Перед роботом находится коробка. Робот едет вперёд до тех пор, пока не скинет коробку со стола.

                  Video Player is loading.
                  Current Time 0:00
                  Duration 0:08
                  Loaded: 0.00%
                  Stream Type LIVE
                  Remaining Time 0:08
                   
                  1x
                    • Chapters
                    • descriptions off, selected
                    • subtitles off, selected

                      Условием остановки робота можно считать момент, когда кнопка датчика касания перестаёт быть нажатой.

                      Задание № 4. Цикл

                      Многократное повторение команд можно реализовать с помощью блока Цикл:

                      Как и у многих других блоков, цикл может работать в нескольких режимах: бесконечное повторение до остановки программы, определённое количество повторений, завершение по таймеру и так далее.

                      ✍️ Сделайте самостоятельно

                      Робот движется между двумя стенами без остановки. Расстояние между стенами может поменяться в процессе работы программы.

                      Video Player is loading.
                      Current Time 0:00
                      Duration 0:23
                      Loaded: 0.00%
                      Stream Type LIVE
                      Remaining Time 0:23
                       
                      1x
                        • Chapters
                        • descriptions off, selected
                        • subtitles off, selected
                          ✍️ Сделайте самостоятельно

                          Составьте программу с помощью которой робот проедет по сторонам семиугольника. Длина стороны многоугольника - 10 см.

                          В видео показан пример выполнения задания для пятиугольника.

                          Video Player is loading.
                          Current Time 0:00
                          Duration 0:18
                          Loaded: 0.00%
                          Stream Type LIVE
                          Remaining Time 0:18
                           
                          1x
                            • Chapters
                            • descriptions off, selected
                            • subtitles off, selected

                              Для вычисления внутреннего угла используйте формулу:

                              a=(n2)180n

                              n - количество сторон многоугольника.

                              Но поворачивать нужно на внешний угол: b=180a


                              Движение вперёд и поворот лучше поместить внутрь цикл с определённым количеством повторений.