«Железяка 1» — робот из «обычного» металлического конструктора
Небольшой дисклеймер. Эта статья нашлась в моих старых «запасах», и она написана несколько лет назад. Но на фоне новости, что компания, которая производит «донора» для робота решила выпустить набор на Arduino, решил показать, что можно сделать похожее самостоятельно. Благо информация до сих пор не устарела, и никто вам не мешает заменить микроконтроллер на что-то другое.
Собрать робота из отечественного металлического конструктора, который многие из моего поколения помнят еще с уроков школьного труда в детстве. Возможно ли? Такой «вызов» я себе поставил, заодно решив посмотреть как возможность данного предприятия, так и для прощупывания почвы создания хоть и не очень сильного, но конкурента импортных наборов, занимающих на российском рынке монопольную долю. Предупрежу, что далее будет много фотографий и текста и что я покажу только как создать управляемую тележку с микроконтроллером, которую вы самостоятельно сможете дооснастить любыми датчиками.
Идея, с одной стороны, разрешимая — зная, что у импортных аналогов «нашего» конструктора, к примеру компании Merkur, есть двигатели и управление можно было ожидать успеха и в этом случае. С другой стороны — у российского конструктора шаг все-таки метрический, а вся электроника и детали увы «заточены» под дюймовый стандарт. Причем задача стояла не использовать по возможности никакие крепежные элементы, кроме деталей конструктора.
Для этих целей на один из Новых Годов я «подарил» себе набор «Грузовик и трактор». Набор конечно же был отобран сыном сразу после появления дома, трактор собран, потом им играли некоторое время, и уже после можно спокойно было разобрать конструкцию обратно на запчасти.
Также из электронно-китайских запасов были взяты мотор-редукторы с колесами и дисками с прорезями для энкодера — 2 щт, самый дешевый драйвер двигателя — 1 шт, блютус-адаптер HC-06 — 1 шт, энкодеры — 2 шт, макетная плата 17×10 — 1 шт, провода для макетной платы, перемычки, а также плата Arduino Leonardo.
После подготовки я имел гору металлических деталей, маленькую горку электронных компонентов и понимание, что сам конструктор страдает некоторыми недостатками — от мягкого железа деталей до иногда само откручивающегося крепежа. Если первое можно было исправить, взяв комплект от другого производителя, то второй недостаток можно было исправить, только купив новые болты и гайки. На деле же к этому прибегать не пришлось, но стоит учесть в будущем.
Но вернемся к деталям — встал вопрос, а что делать? Было решено построить для начала четырехколесную тележку с двумя независимыми мотор-колесами, энкодерами, блютус и управлением со смартфона. В дальнейшем эту тележку планировалось дополнить датчиками и сделать автономной и управляемой по заданной программе.
После некоторого времени кручения железяк конструктора и прикидывания куда и что разместить, родилась следующая конструкция. Собираем основание тележки с мотор-редукторами и энкодерами.
Собираем основание тележки с мотор-редукторами и энкодерами.
Основание тележки мы собираем из двух симметричных половинок. Я буду использовать терминологию для деталей из официальной инструкции набора. Сначала прикрепляем к большой панели пластик 50×20 двумя винтами. Это будет изолирующее основание для энкодеров. Вы можете их не ставить — для управления по блютус или базовых задач по робототехнике они не обязательны.
К боковой стороне прикручиваете две детали — планку сегментную 2 и планку с тремя отверстиями.
Далее устанавливаете скобу I и уголок I как показано на фото. Энкодеры прикручиваете винтами с гайками М3 (у меня под рукой были только M3x15). Скобы чуть отгибаете. Наклон будет нужен для размещения мотор-редуктора в правильном положении.
Устанавливаете мотор-редуктор с припаянными проводами и заизолированной зоной пайки, так чтобы он попал выступом в паз на сегментной планке и закрепляете на ней же винтом с гайкой M3. У меня не было длинного винта M3 длиной 25-30 мм, поэтому я использовал просто винт M3x15, который вставил в отверстие мотор-редуктора. Обращаем внимание на энкодеры, если вы их поставили.
Фиксируем мотор уголком I и зеркально собираем вторую половину основания и скрепляем их между собой.
Колеса
Наша тележка пока имеет только два колеса. Так как мы не планируем делать балансирующего робота, то ей надо добавить еще точки опоры. Вариантов было несколько — третье колесо, два колеса на одной оси или колеса на независимых осях.
От одного колеса сразу отказались — сделать шарнир нужного свойства из оставшихся деталей было проблематично. Решил сделать конструкцию с независимыми колесами (на фото показана тележка уже со смонтированной электроникой, так как сначала собрал неудачный вариант с колесами на общей оси и в итоге переделывал конструкцию уже после сборки всего робота).
Для сборки одной оси нам понадобятся шпилька L=75M4, колесо большое, уголок I, диск большой и винты с гайками. Главная задача при сборке — ось должна быть закреплена неподвижно и законтрена вторыми гайками, а колесо, наоборот, должно вращаться свободно с небольшим люфтом.
Электроника
Переходим к электронике. Так как у нас экспериментальный робот, то все соединения мы будем делать на макетной плате, а также использовать для управления плату Arduino Leonardo.
Из Панели, 4-х Уголков I, пластика 50×20, Скобы большой и 6 стоек под плату 10×3 (можно использовать три стойки и три винта M3x5) сооружаем каркас для установки макетной платы и платы Arduino.
Далее закрепляем на двусторонний скотч макетную плату 10×17 со сдвигом, так как нам надо будет разместить драйвер двигателя. Если у вас драйвер двигателя с прямыми ножками подключения, вы можете не делать такой сдвиг — главное, чтобы после установки платы Ардуино у вас было место для установки остальных плат. Прикручиваем плату Arduino (я использовал опять же стойки, так как у меня их был избыток, а гаек M3 недостаток.
Устанавливаем на макетную плату Bluetooth модуль, плату драйвера и подключаем все провода к макетной плате и плате Arduino по схеме. Энкодеры можно подключить к питанию и Arduino, но я пока их не использовал.
После решил защитить провода и зафиксировать блютус модуль от разбалтывания, поэтому собрал вот такую «защиту» для передней части нашего робота (у нас передние колеса ведущие). Для этого использовали детали: Скоба II — 2 шт, Планка с 10 отв. — 2 шт., Пластик 75×100.
Программное обеспечение
На деле это самая простая часть — в Интернет полно примеров, как заставить такую тележку «бегать» управляя ей со смартфона или другим способом. Для этого используется передача через Serial порт команды в виде буквы и ее последующая обработка. Используя данные производителя платы драйвера двигателей по разводке и таблицу истинности легко задать скетч для Arduino. Конечно, легко на словах — я потратил 4 часа, пытаясь найти проблему работы скетча. Как оказалось для Arduino Leonardo (что кстати написано в документации на сайте) надо использовать Serial1, вместо простого Serial. Поэтому если у вас плата, отличная от Leonardo, используйте нужную подпрограмму для вашей платы (для UNO, к примеру замените все Serial1 на Serial в тексте). Сам код можно найти по ссылке.
Посмотрев код видно, что мы используем стандартную раскладку WASD для движения и T для остановки.
После того как зальете программу в плату, проверьте что моторы подключены правильно и крутятся в нужную сторону, открыв терминал в Arduino IDE и передавая символы команд. Также можете поэкспериментировать со значением PWM.
Теперь приложение для Android. Тут тоже все достаточно просто: мы воспользуемся конструктором приложений MIT AppInventor 2 и создадим вот такую программу. В ней мы используем события TouchUp и TouchDown к элементам управления, передавая символ движения при его касании и остановки при отпускании.
Вы можете установить на смартфон специальное приложение для отладки или сформировать пакет для установки на Android смартфон, подключить к тележке батарею (я использовал внешний аккумулятор для смартфона), подключить bluetooth устройство (HC-06 в моем случае) и наслаждаться тем, что вы сами создали радиоуправляемую тележку.
А далее дело за вашей фантазией по превращению в робота. Можете поставить ультразвуковой датчик расстояния и сделать так, чтобы тележка не натыкалась на препятствия. Можете прикрутить фотодатчики и заставить робота ездить по линии. Можете поставить по периметру датчики касания или прикрутить видеокамеру и погрузиться в мир CV. Основа у вас есть, а металлический конструктор не так страшен в создании новых элементов.
Источник
Робот с планеты Шелезяка
Аннотация:
В практику радио-моделизма в последнее время прочно входят 3D принтеры. Эти устройства позволяют создавать из пластика точные, прочные и легкие детали для моделей автомобилей, катеров, летательных аппаратов и прочих моделей. В настоящей статье предлагается проект радиофицированной игрушки-шутки, которая может стать хорошим подарком любому ребёнку. Игрушка напечатана пластиком на 3D принтере. За прототип взят робот с планеты Шелезяка из популярного мультфильма «Тайна третьей планеты».
Введение
Постановка задачи такая: робот должен оценивать и индицировать уровень шума в помещении и, при превышении некоторого порога, проигрывать фонограммы с micro-SD карты и, при этом, открывать рот в такт со звуком.
В результате решения задачи получилось вот такое суровое на вид устройство:
Рисунок 1.
Внешний вид устройства
Демонстрацию его работы можно посмотреть здесь:
Схема
Схема электрическая принципиальная показана на рисунке:
Рисунок 2.
Схема электрическая принципиальная
Устройство собрано на микроконтроллере ATmega328P. Выбор микроконтроллера обусловлен необходимостью использовать повышенную тактовую частоту для качественного воспроизведения звуковых фонограмм. Тактовая частота микроконтроллера 16 МГц, задается кварцевым резонатором Y1.
Фьюзы МК установлены в следующие позиции:
HIGH=0xD9, LOW = 0xFF, EXT = 0xFF.
Звуковые фонограммы читаются с micro SD карты. Формат звуковых файлов на карте строго: mono, WAV (Microsoft), кодирование — Unsigned 8-bit PCM, частота дискретизации — 22050Гц.
Уровень шума в помещении регистрируется электретным микрофоном BM1, усиливается операционным усилителем DA2.1 (1/2 LM358N), детектируется диодами, VD1, VD2 (1N4148), накапливается на емкости С9 и подается на вход аналогово-цифрового преобразователя МК (контакт ADC0).
МК анализирует уровень поступившего сигнала о шумовой обстановке в помещении и отображает на ступенчатом индикаторе на светодиодах VD3, VD4, VD5, VD6, VD7. Светодиод VD4 (установлен на «голове» робота) индицирует превышение допустимого порога шума в помещении, что является сигналом для проигрывания фонограммы.
Файл фонограммы считывается микроконтроллером с microSD карты и звук воспроизводится с использованием метода ШИМ (широтно-импульсной модуляции) на выходе OC1A. В основу положено известное решение «255-Voice PCM SoundGenerator» (Автор — ChaN, оригинал статьи здесь — http://elm-chan.org/works/sd20p/report.html).
Звуковой сигнал поступает на вход усилителя на микросхеме DA3 (TDA7052A) и воспроизводится динамиком мощностью 1Вт. Громкость воспроизведения может быть отрегулирована потенциометром R12.
Воспроизведение звука сопровождается анимацией «верхней челюстью» головы робота, приводимой в движение сервоприводом M1. Угол поворота вала сервопривода зависит от амплитуды воспроизводимого сигнала. Амплитуда сигнала вычисляется программно на основе данных звуковых отсчетов, прочитанных из звукового файла. С вывода OC0B МК на сервопривод поступает прямоугольный сигнал ШИМ с периодом 20мс и шириной импульса пропорциональной уровню звукового сигнала.
В устройстве применен аналоговый сервопривод MISTERYS-0009.
Его заводские характеристики:
Рисунок 3.
Сервопривод MISTERY S0009.
Питание устройства обеспечивается от трех последовательно включенных батарей формата AA. Напряжение питания 4,5 Вольта. Для питания micro-SD карты напряжением 3.3 Вольта, установлен DC-DC преобразователь на микросхеме DA1 (1117-3.3). Для исключения влияния помех коллекторного двигателя сервопривода на электронную схему питание сервопривода осуществляется через дроссель L1 (50мкГн) конденсатор С15 (0,1мкФ).
Цепочка R16 C14, служит для сброса МК при включении устройства.
Плата.
Печатная плата со стороны деталей показана на рисунке:
Рисунок 4.
Расположение деталей и перемычек.
Разводка печатной платы приведена на рисунке:
Рисунок 5.
Печатная плата.
Расположение деталей внутри устройства показано на следующем рисунке.
Рисунок 6.
Внешний вид платы с деталями.
Рисунок 7.
Батарейный отсек
Конструкция
Корпус Робота из пластика, напечатан на 3D принтере. Состав деталей корпуса приведен на рисунке.
Рисунок 8.
3D детали робота.
1. Верхняя часть головы
2. Нижняя часть головы
3. Ухо
4. Воротник
5. Кольцо для динамика
6. Тело
7. Батарейный отсек
8. Дно
9. Таз
10. Плечо
11. Рука
12. Кисть
13. Нога
14. Башмаки
Файлы *.stl для 3D печати, можно скачать по ссылке в конце статьи.
Источник