DroidScript
DroidScript
инструменты для мобильной разработки

TRIK Studio: энкодерная модель

Робототехника  
02.10.2018

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

Для программирования энкодерных моделей вместо блока "Таймер" используется блок "Ждать энкодер", а перед выполнением движения необходимо добавить блок "Сбросить показания энкодера".

Энкодерная модель

Номера энкодеров соответствуют номерам моторов. Энкодер E3 соответствует мотору M3. При прямолинейном движении число оборотов валов обоих двигателей одинаково и можно использовать значение энкодера, соответствующего любому из них.

При запуске программы может вызвать удивление тот факт, что тележка переместилась на небольшое расстояние, при достаточно большом количестве совершенных оборотов. Это объясняется наличием редуктора - механизма для понижения скорости вращения оси колёс с целью увеличения крутящего момента.

По аналогии с данным примером можно составить подпрограммы для поворота тележки. В моём случае для резкого поворота тележки на 360 градусов требуется порядка 2270 оборотов. Для имитации разряда батареи установите значение скорости равным 70% и убедитесь в том, что тележка повернулась примерно на тот же угол, как и при значении скорости 100%. Пройденный путь энкодерной модели не зависит от скорости движения, как это имеет место быть в тайм-моделях. Для прохождения известного лабиринта на разных скоростях для энкодерной модели нужно будет составить одну программу, а для тайм-модели - по одной для каждой из них.

Энкодер считает количество оборотов в обе стороны и при движении тележки назад значение числа оборотов будет вычитаться из текущего значения. Если в начале тележка ехала вперёд и двигатель сделал не менее 2000 оборотов, то для возвращения её в исходное положение нужно задать условие движения так, чтобы предел оборотов был не более 0.

Вы обратили внимание на то, что даже при разговоре с моделью часто используется слово примерно? А нельзя ли точно переместить модель на заданное расстояние и повернуть на требуемый угол?

Один из недостатков компьютерной имитации состоит в том, что при её использовании постоянно хочется работать или с целыми значениями, или с дробными значениями, но максимально высокой точности. Мы привыкли к тому, что компьютер выполняет многие операции с большой точностью и ждём того же и от имитации управления роботами. Но TRIK Studio не учитывает (практически не учитывает) физику и свойства реальных моделей. Можем долго и упорно рассчитывать все шаги, но на практике из-за нехватки тяги устройство не сможет преодолеть препятствие на своём пути или из-за проскальзывания колёс не доедет до места нужного поворота и упрётся в стену. Даже при работе с моделями следует учитывать физику при работе с реальными устройствами.

В рассматриваемых до сих пор моделях отсутсвует возможность получения информации о внешней среде и обратная связь для коррекции параметров при взаимодействии с этой средой. Это похоже на то, как если бы человек заблудился в лесу. Только в случае с нашей тележкой всё ещё хуже. Она вообще ничего не знает о том, где она находится, какие предметы её окружают, в каком направлении будет происходить её движение вперёд и др. Ей остаётся только надеяться на то, что программист не загрузит программу, выполнение которой приведёт к её поломке. Для получения информации о внешней среде тележку необходимо оборудовать датчиками. Выбраться из леса нам помогают тропинки, а тележке поможет линия, датчик света для её обнаружения и регулятор для управления её движением при помощи отрицательной обратной связи.

Робототехника  
© 2016-2018 Александр Страшко