Колесный энкодер для робота Arduino

Материал из robbo
Ошибка создания миниатюры: Не удаётся сохранить эскиз по месту назначения

Захаров Леонид Сергеевич

Колесный энкодер для робота Arduino

В статье Основы работы в 3D редакторе FreeCad. Часть 3 было подробно описано создание редуктора колеса робота. Теперь опробуем на этом колесе энкодер, созданный на основе китайского датчика TSRT5000.

Ошибка создания миниатюры: Не удаётся сохранить эскиз по месту назначения

Почему этот? Стоимость такого датчика невелика, порядка 300р за 50шт и, придерживаясь своей концепции школьного технопарка, буду и впредь выбирать все, что подешевле. В конце-концов, для того, чтобы отработать алгоритмы, получив вполне работоспособный продукт, не обязательно использовать дорогие и точные устройства. Напечатанное колесо содержало 24 «ребра», почему-то показалось (возможно напрасно), что для такого датчика «ребра» слишком узкие, поэтому было изготовлено другое колесо, такое же, только с 18-ю «ребрами». Для того, чтобы преобразовать аналоговый сигнал с датчика, решено было применить микросхему на основе триггера Шмитта. Графическая выходная характеристика такой микросхемы представляет собой петлю гистерезиса, что позволит избежать «дребезга контактов». На картинках с сайта www.lcard.ru, хорошо видна суть работы триггера Шмитта.

Ошибка создания миниатюры: Не удаётся сохранить эскиз по месту назначения

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

Ошибка создания миниатюры: Не удаётся сохранить эскиз по месту назначения

Как видно из этой схемы, переменный резистор на 330 Ом служит для регулировки яркости излучателя, что позволит подогнать работу датчика под получившееся расстояние от датчика до ребер колеса, а переменный резистор на 22 кОм для регулировки напряжения на входе микросхемы. В устройстве использована микросхема SN74HC14N, которая представляет собой 6 логических элементов «триггер Шмитта». Таким образом, к этой микросхеме можно подключить 6 датчиков.

Ошибка создания миниатюры: Не удаётся сохранить эскиз по месту назначения

Итак, для испытаний схема была выполнена с помощью «подвесного монтажа». Подав питание на схему и слегка поворачивая рукой колесо, ориентируясь по вольтметру, подключенному в точках, отмеченных на схеме красным цветом, регулируем яркость излучателя. Нужно добиться, чтобы разность напряжений при положениях датчика «над ребром» и «над пустотой» была наибольшей. Затем запускаем мотор и с помощью осциллографа снимаем показания с выхода устройства. С помощью второго резистора регулируем напряжение на выходе TCRT5000, чтобы «нули» и «единицы» имели равную длительность. Прошу прощения за качество видео [1], а также за неровно надетую черную оплетку на колесо, из-за которой создается впечатление, что колесо с «восьмеркой». Однако «нули» (0в) и «единицы» (5в) видно на осциллографе хорошо.

Таким образом, мы видим, что эксперимент можно признать успешным, на недорогом датчике TCRT5000 и микросхеме SN74HC14N можно собрать вполне работоспособный энкодер, а поскольку микросхема имеет 6 триггеров Шмитта, то, соответственно, к ней можно подключить еще один датчик со своими резисторами для другого колеса, например на ножки 3-4. А также можно устанавливать по 2 датчика на колесо, для контроля направления вращения, используя ту же самую микросхему. Именно в таком виде, только для двух датчиков, по одному на колесо, планирую перенести схему на печатную плату. Четыре переменных резистора, наверное, много, зато удобно в настройке. Осталось теперь подключить энкодер к Ардуино (советуют подключать на пины прерывания) и написать код. Однако из-за загруженности на работе не хватает времени. Может кто-то возьмется?