Оглавление:
- Шаг 1: список деталей и 3D-печать
- Шаг 2: Сборка
- Шаг 3: программирование
- Шаг 4: Дополнительные советы и хитрости
Видео: ARCA (Очаровательный Android с дистанционным управлением): 4 шага (с изображениями)
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:51
Это руководство было создано во исполнение требований проекта Makecourse в Университете Южной Флориды (www.makecourse.com).
ARCA - это очаровательная Android-система с дистанционным управлением, которую невероятно интересно создавать и с которой играть. Цель этого проекта состояла в том, чтобы создать что-то, что каждый сможет понять и связать, создав очаровательного и функционального робота.
Робот функционирует, отображая различные эмоции на светодиодной матрице 8 на 8, эти эмоции включают радость, сон, любовь, гнев, глупость и взгляд вверх, влево и вправо. Робот также работает как радиоуправляемая машина и может двигаться вперед и поворачивать налево или направо. Робот движется вперед, активируя оба колесных мотора, поворачивает налево, включая правый мотор, и поворачивает вправо, включая левый мотор. Дизайн очень упрощен, но он просто работает, и я хотел сосредоточиться на программировании Arduino, поскольку в душе я программист.
Последние версии всех файлов, используемых в этом руководстве, можно найти в моем репозитории Github ARCA.
Шаг 1: список деталей и 3D-печать
Детали для этого проекта можно напечатать на 3D-принтере или купить в Интернете. Думая о сборке, я хотел сделать ключ к эффективности, а также попытаться (в буквальном смысле) не изобретать велосипед. В этом проекте использовался 3D-принтер Makerbot Replicator. Если вы хотите убедиться, что ваши 3D-отпечатки соответствуют моим, используйте этот принтер.
Структурные компоненты
- Коробка с отверстиями по бокам для колес и рычагов
- Крышка ящика с отверстиями для задних колес и отверстием для ИК-датчика
- Левая рука
- Правая рука
- Ось для двух задних колес
- два соединителя оси для соединения крышки с осью
- 4 колеса (моторы также включены в эту ссылку)
- Маленькие винты (для установки в двигатели)
Электрические компоненты
- Ардуино Уно
- Небольшая макетная плата (я купил комплект Arduino, и он пришел с ним)
- Две матрицы MAX7219 с красными точками с управлением от микроконтроллера
- Инфракрасный приемник и пульт
- Два транзистора TIP 120
- Соединительные провода (я использовал много проводов «папа-мама», а также «папа-папа», и рекомендую использовать длинные провода вместо коротких).
- один резистор 220 Ом
- Два мотор-редуктора
- Подключаемые через USB блоки питания (портативные, используемые для сотовых телефонов)
Шаг 2: Сборка
Структурная сборка
Детали, напечатанные на 3D-принтере, скорее всего, потребуют некоторой очистки, и я рекомендую отшлифовать их мелкой зернистостью и использовать ацетон (жидкость для снятия лака), чтобы удалить любые остатки клея, использованного в процессе 3D-печати. Некоторые детали могут не подходить идеально, и мне пришлось отшлифовать ось, чтобы она была идеально круглой и правильно проходила через отверстия.
Колеса нуждаются в небольшой регулировке, их нужно было просверлить больше, чтобы соответствовать размерам оси сзади и винтов спереди. Используйте сверло диаметром 6 мм, чтобы просверлить отверстия в колесах, чтобы просверлить отверстия большего размера в колесах.
Для этой сборки я использовал различные клеи, но я обнаружил, что жидкий бетон (клей для моделирования) лучше всего подходит для удержания, несмотря на долгое время высыхания, но эпоксидная смола лучше всего подходит для вещей, которые вам нужно быстро высыхать и хорошо держаться, несмотря на то, что они грязные.
Остальная часть сборки довольно проста:
- Прикрепите держатели оси к задней части крышки коробки, используя эпоксидную смолу для герметизации.
- Пропустите ось через держатели оси.
- Приклейте колеса к оси жидким бетоном.
- Проденьте руки в верхние отверстия и приклейте к держателю руки эпоксидной смолой.
- Вкрутите крышку коробки в коробку.
- Оберните изолентой дно коробки, где находятся колеса.
Электрическая сборка
Передние колеса прикреплены непосредственно к двигателям, и вам нужно использовать небольшой винт в двигателе, чтобы сделать его достаточно длинным, чтобы пройти через отверстия в роботе с каждой стороны. Во вращающемся штифте двигателя должно быть небольшое отверстие, и вы можете ввернуть туда винт и приклеить головку винта к колесу после проталкивания винта через отверстие в коробке.
Задняя часть моей макетной платы имела липкую основу, но вы можете использовать изоленту, чтобы приклеить ее, если у вас ее нет. Из соображений безопасности также использовалась изолента для крепления электрических компонентов не на плате. Микроконтроллеры со светодиодными дисплеями были прикреплены к задней части глазниц с помощью изоленты, а двигатели также были прикреплены к бокам коробки рядом с отверстиями с помощью изоленты. Я использовал красную изоленту, чтобы сделать ее более незаметной, на всякий случай, и рекомендую использовать изоленту того же цвета, что и ваша версия ARCA.
Макетная плата и контакты расположены так, как показано на изображении Fritzing. Если вы хотите добавить что-то к этой диаграмме для настройки ARCA, вы можете загрузить файл Fritzing в моем репозитории Github и отредактировать его так, как вам нравится.
Я прикрепил провода к петлям в мотор-редукторах, согнув провода вокруг петель, чтобы они оставались прикрепленными. Вероятно, было бы лучше припаять эти соединения, если у вас есть доступ к паяльнику, но это простое решение, если у вас его нет.
Блок питания подключается к тому же шнуру, который используется для подключения Arduino к компьютеру для загрузки вашей программы, и он просто незакреплен в роботе, поэтому его можно легко снять и зарядить.
Шаг 3: программирование
Вот код, который вы можете загрузить в свой ARCA, чтобы он работал точно так же, как мой, вам также понадобятся следующие две библиотеки для использования кода.
Однако для ясности и настройки я проведу вас через свой код. Не стесняйтесь пропустить этот шаг, если вы не настраиваете своего робота или не планируете менять эмоции.
Во-первых, я включаю две библиотеки для использования в моем коде, что позволяет мне использовать функции и объекты этих библиотек. Я также определяю здесь свои булавки. Если вы решили сделать свои пины отличными от моих настроек на предыдущем шаге, внесите здесь изменения в свой код с помощью соответствующих пинов.
Затем я определил эмоции, объявил необходимые объекты для ИК-датчика и светодиодных дисплеев 8 на 8, а также определил некоторые глобальные переменные. Эмоции объявляются в байтовом массиве, где каждое из шестнадцатеричных чисел в массиве представляет строки в результирующем отображении 8 на 8. Чтобы создать свои собственные эмоции, я рекомендую нарисовать эмоцию, которую вы хотели, в сетке 8 на 8, а затем записать каждую строку 8-битного двоичного числа, где выключенный свет равен 0, а свет включен - 1, а затем создать шестнадцатеричное число из этого и поместите его в массив длиной 8. Я также определил некоторые глобальные переменные для использования в цикле; переменные для механизма мигания и указатели для хранения эмоций и установки их на нейтральное начало.
Теперь мы переходим к циклу настройки, в котором я включаю последовательный мониторинг для тестирования, и это должно быть полезно для тестирования вашего кода с различными ИК-пультами. Затем я инициализировал объекты для левого и правого глаза, используя функции из библиотеки управления светодиодами. Я также установил контакты мотор-редуктора на выход и включил ИК-приемник.
В цикле он, по сути, ожидает ИК-сигнала, который изменит статус-кво робота. Таким образом, если получен ИК-сигнал и он совпадает с одним из кодов от определенной кнопки, то этот оператор if запускается и устанавливает значения для левого и правого глаза соответственно для эмоций. Если кнопка перемещения нажата, например, влево, вправо, вперед и ОК, то контакты записываются в цифровом виде, чтобы они были включены или выключены в зависимости от нажатой кнопки. Просто обратите внимание на коды ИК-приемника: в библиотеке ИК-пульта есть образец кода, который предоставит вам шестнадцатеричные коды для вашего пульта дистанционного управления, если при нажатии кнопок ничего не происходит, откройте эту программу, чтобы убедиться, что коды верны. Все, что вам нужно сделать, это изменить шестнадцатеричное число, которое идет с каждой кнопкой.
Наконец, у вас есть функция, которая выводит эмоции на дисплеи 8 на 8. При этом используются функции setRow из библиотеки управления светодиодами, просто просматриваются массивы, которые вы создали, и соответственно устанавливаются строки. Он принимает два параметра: массив для левого глаза и массив для правого глаза. Это может быть либо байтовый указатель, либо сам байтовый массив (то есть имя «нейтральный»), который действует как указатель.
Шаг 4: Дополнительные советы и хитрости
Конечно, я многому научился во время этого проекта, и я хотел бы поделиться здесь некоторыми дополнительными советами, которые применимы как для этого проекта, так и для других проектов, использующих Arduino.
- Есть много онлайн-ресурсов по Arduino, и, на мой взгляд, наиболее полезными являются веб-сайты Arduino из-за их четких и лаконичных примеров кода.
- Не изобретайте велосипед - существует множество наборов и готовых деталей, которые можно использовать, чтобы упростить свой проект. Я программист, а не инженер-механик, и мне было трудно понять, как я собираюсь заставить этого робота работать, но было легко найти что-то, что можно купить в Интернете и реализовать в своем дизайне, по сравнению с буквально изобретением нового колесо
- Библиотеки - ваш друг в Arduino, а также во всех объектно-ориентированных языках, и они существуют не зря. Соедините это с микроконтроллерами, и программирование светодиода 8 на 8 очень просто. Я программировал один из них вручную раньше, и только один использует почти каждый вывод в Arduino и требует тонны кода. Очень грязно и не очень весело.
- 3D-принтеры - это круто, но не идеально, и можно что-то шлифовать. По этой причине вы бы предпочли увеличить размер при 3D-печати, потому что в большинстве случаев вы можете немного отшлифовать его, чтобы получить идеальную посадку.
- Питание может быть проблемой, потому что я подумал об энергопотреблении в последнюю минуту и подумал, что батарея 5 В сделает свое дело. Тогда, казалось бы, случайным образом, иногда двигатель или светодиодный дисплей не работали. После того, как я перешел на блок питания, проблем больше не было, несмотря на то, что робот был более громоздким.
Рекомендуемые:
Светодиодная лента RGB с дистанционным управлением: 4 шага (с изображениями)
Светодиодная лента RGB с дистанционным управлением: создайте свою собственную светодиодную ленту с дистанционным управлением для индивидуального освещения комнаты! Большинство светодиодных лент RGB управляются с помощью инфракрасного пульта дистанционного управления. Чтобы выключить, включить или изменить цвет, вы должны находиться перед приемником. Это скучно и не
Сборка робота-дворецкого / автомобиля / танка ESP8266 с дистанционным управлением за 15 долларов для iOS и Android: 4 шага
Создайте робота-дворецкого / автомобиля / цистерны ESP8266 с дистанционным управлением за 15 долларов для iOS и Android: вы ненавидите ходить на кухню, чтобы перекусить? Или выпить новую? Все это можно исправить с помощью этого простого дворецкого с дистанционным управлением за 15 долларов. Прежде чем мы продолжим, я сейчас запускаю проект Kickstarter для голосовой светодиодной ленты RGB
Переключатель света Bluetooth с дистанционным управлением: 4 шага (с изображениями)
Выключатель света Bluetooth с дистанционным управлением: это будет первый проект из серии, озаглавленной: «Оптимизированная лень: чрезмерные инженерные решения для замечательно тривиальных проблем». Вы когда-нибудь лежали в постели поздно вечером, читали или смотрели Netflix на своем ноутбуке? Хуже всего, конечно
Двигатель с транзисторным управлением и дистанционным управлением; обзор схемы: 9 шагов
Двигатель с транзисторным управлением и дистанционным управлением; Обзор схемы: Эта схема представляет собой двигатель с транзисторным управлением и дистанционным управлением. Дистанционное управление включает питание. Транзистор включает двигатель. Код программы увеличит скорость двигателя и затем уменьшите скорость двигателя до нуля
Джек-о-фонарь с дистанционным управлением: 3 шага (с изображениями)
Jack-o-Lantern с дистанционным управлением цветом: Как обычно, в этот Хэллоуин я решил создать проект, связанный с сезоном. Используя Prusa I3 и Thingiverse, я напечатал украшение Хэллоуина, где цвет контролируется удаленно через проект Blynk. Проект Blynk позволяет вам создать мобил