суббота, 27 февраля 2016 г.

Большой железный робот. Часть 3. Энкодеры и звук

Энкодеры


Мы давно строим роботов из LEGO Mindstorms и привыкли к тому, что повернуть вал мотора на определенный угол или заставить вращаться мотор с заданной скоростью - задача простая, ведь каждый NXT/EV3-мотор имеет встроенные энкодеры (датчики угла поворота), позволяющие работать с точностью до 1 градуса. Во всех роботах, которых мы строили из Arduino таких полезных штук не было, соответственно эти роботы не могли перемещаться на строго заданное расстояние или поддерживать заданную скорость.
В проекте "большого железного робота" мы решили попробовать сделать энкодеры своими руками. Энкодеры нам нужны для следующих задач:

  • Перемещение на заданное расстояние
  • Поворот на заданный угол относительно текущего направления
  • Поддержание заданной скорости
  • Одометрия - использование данных с энкодеров для оценки перемещения
  • Компенсация разницы в скоростях вращения колес для сохранения заданного направления движения. Эту задачу можно решать разными способами, например используя компас, но наличие энкодеров как нам кажется облегчит решение
Наш робот - не станок с ЧПУ, а учебная модель, с которой работают дети, поэтому энкодеры будем делать простые в изготовлении и наглядные в работе. В качестве датчиков будем использовать популярные Arduino Line Sensor  (KY-033), выглядят они вот так:

Эти датчики работают на отраженный свет. Датчик важно смонтировать таким образом, чтобы была возможность плавной регулировки высоты и угла установик датчика к диску энкодера. Мы сделали вот такую конструкцию из U-образного профиля, крышки кабель канала и винтов М4:




На обратную сторону колесных дисков прикрепим "полосатые диски", на которые будут смотреть датчики. Такие симпатичные и полезные роботу диски мы сделали из ненужных CD/DVD-болванок с приклеенными сверху распечатками:

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



Звук


Молчаливый робот - это не интересно. В нашем роботе будет аудиосистема и мы надеемся что робот сможет применять ее с умом - озвучивать системные сообщения, сигнализировать о событиях, да и просто - болтать. 
Для сборки аудиоподсистемы робота нам потребуются следующие компоненты:
  • Динамик
  • Усилитель мощности
  • Акустического оформление для динамика
В качестве динамика мы используем автомобильный коаксиальный динамик Supra SSB-5 диаметром 13 см


Динамики продаются парой, нам же понадобится в роботе только один.
Динамик SSB-5 не слишком тяжел для мобильного робота, недорог и обладает приемлемыми характеристиками для наших задач (4 Ом, до 140 Вт).
Чтобы усилить звук Raspberry Pi мы воспользуемся усилителем НЧ на базе микросхемы TDA7297

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


Лист ДСП (мы использовали готовую мебельную полку из строительного магазина размерами 300x800x16) можно раскроить так:

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


Внутрь поместим немного синтепона, динамик крепим через уплотнительное резиновое кольцо, вырезанное из старой автомобильной камеры, отверстие, через которое выходит провод герметизируем кусочком спички и клеем ПВА.



Теперь наш робот выглядит вот так (фото ниже). В задней части - будущий отсек для монтажа силовой электроники (драйвер двигателей, усилитель мощности НЧ, предохранители).



Для сборки аудиоподсистемы нам понадобились:

- Автодинамик 13 см с комплектным проводом (Supra SSB-5) - 1 шт.
- Усилитель НЧ на базе микросхемы TDA7297
- Лист ДСП ("полка мебельная") 300x800x16 мм
- Саморезы 3,5 x 30
- Шпатлевка по дереву, герметик
- Краска

Для энкодеров пригодились:

- Пара CD/DVD болванок (мы использовали прозрачные, такие встречаются на дне упаковки)
- Arduino Line Sensor  (KY-033) 2 шт.
- профиль аллюм. U-обр. 20x10x20x2
- заглушка кабель-канала 15 мм
- винты М3 и М4 с гайками

Комментариев нет:

Отправить комментарий

Самое популярное