Оглавление:

Прима - робот, играющий на фортепиано: 13 шагов
Прима - робот, играющий на фортепиано: 13 шагов

Видео: Прима - робот, играющий на фортепиано: 13 шагов

Видео: Прима - робот, играющий на фортепиано: 13 шагов
Видео: Золотые слова Алины Кабаевой 😍 2024, Июль
Anonim
Прима - робот, играющий на фортепиано
Прима - робот, играющий на фортепиано

Идея робота, играющего на музыкальном инструменте, всегда увлекала меня, и я всегда хотел построить его сам. Однако у меня никогда не было особых знаний о музыке и музыкальных инструментах, поэтому я никогда не мог понять, как на самом деле начать с этого. До недавнего времени меня интересовало создание музыки, я начал изучать основы создания музыки, а после приобретения MIDI-клавиатуры я понял, что на этом инструменте нетрудно играть, и я действительно могу создать робота, который сможет на нем играть. Так началось создание Prima.

Я не был уверен в успехе этого проекта, поэтому не стал его документировать. Но так как он работал отлично, я решил поделиться подробностями с сообществом Instructables. Это будет не пошаговый журнал сборки, а скорее руководство для начала. Я объясню, как работает каждая часть этого робота, поделюсь их изображениями и кодом для Arduino. Надеюсь, этого будет достаточно, если вы захотите повторить этот проект.

И дизайн был вдохновлен этими инструкциями, привет JimRD!

Итак, приступим

Шаг 1: Обзор всего проекта

Prima - это робот, который может играть на клавишных / пианино или на любом подобном клавишном инструменте. У него есть Arduino Uno в качестве мозга, ЖК-экран для визуального вывода и ультразвуковой датчик для запуска без касания. Любой адаптер питания, который выдает 5 В на 2 А, должен обеспечивать его питание.

Он имеет следующие особенности -

  • Программируемый - можно запрограммировать воспроизведение любой композиции, ограниченной октавой.
  • Регулируемый темп - темп, которому он будет следовать при игре на инструменте, может быть установлен в коде.
  • Бесконтактный запуск - пользователь может запустить игру, просто проведя рукой по датчику, что будет очень полезно, если пользователь занят игрой на другом инструменте и хочет, чтобы Прима играла вместе с ним / ней через определенное время. Игрок-человек играет с игроком-роботом - даже этого можно добиться с помощью этой функции.

Шаг 2: видео

Image
Image

Вы можете посмотреть, как он играет на клавиатуре в видео.

Шаг 3: Создание 3D-модели

Создание 3D-модели
Создание 3D-модели
Создание 3D-модели
Создание 3D-модели

Определив, что он должен делать, я спроектировал тело на TinkerCAD, чтобы я мог приступить к его созданию, имея четкое представление о том, что я делаю.

Этот подход очень помог мне получить аккуратно выглядящего робота, который работает именно так, как он был разработан. Хотя мне пришлось немного изменить исходный дизайн при его создании, тем не менее, 3D-модель сэкономила мне много времени и усилий. Более подробно с 3D-моделью вы можете ознакомиться здесь.

Шаг 4: Детали и инструменты

Детали и инструменты
Детали и инструменты
Детали и инструменты
Детали и инструменты
Детали и инструменты
Детали и инструменты

Для электронной части вам понадобится -

  • Arduino Uno (количество - 1)
  • ЖК-экран 16x2 (количество - 1)
  • Адаптер I2C для ЖК-экрана (Количество - 1)
  • Микро сервопривод TowerPro SG90 (количество - 2)
  • Ультразвуковой датчик HC-SR04 (количество - 1)
  • Тумблерный переключатель (количество - 1)
  • Зуммер (количество - 1)
  • Доска Vero / Dot Board / Perf Board
  • Перемычки между мужчиной и мужчиной и между мужчиной и женщиной

Для изготовления тела -

  • Лист ПВХ 5 мм
  • Циклические спицы (Кол-во - 2)
  • Винты
  • Трубка держателя стержня ручки
  • Аэрозольная краска (если вы хотите ее покрасить)

Инструменты, которые вам понадобятся -

  • Супер клей
  • Пистолет для горячего клея
  • Паяльник
  • Анти-резак (AKA Paper-Cutter)

Шаг 5: Схема

Схема
Схема
Схема
Схема
Схема
Схема

Схема была довольно простой. Я объясняю, как я сделал каждую часть этого -

Сегмент ЖК-дисплея - я использовал адаптер I2C для ЖК-дисплея, чтобы Arduino могла связываться с ним через I2C, что было необязательно, но упростило схему и уменьшило количество проводов. Вы можете использовать стандартный ЖК-дисплей, немного изменив код.

Сегмент питания - я сделал простую схему на плате veroboard, которая состоит из тумблера, зуммера, светодиода (который я потом решил не использовать) и общей шины питания 5В. Шина питания, как и в случае, выводы 5V и заземления сервоприводов, датчика сонара, ЖК-дисплея и Arduino соединены друг с другом соответственно. Один вывод нажимного переключателя подключен к линии 5V +, а другой вывод подключен к выводу VCC источника питания. Линия заземления подключается непосредственно к контакту заземления источника питания. Итак, Prima можно включить / выключить с помощью переключателя. Зуммер и светодиод подключены параллельно, и их вывод VCC идет на вывод 13 Arduino. Их земля подключается к заземлению общей шины питания.

Модификация разъема сервоприводов - поскольку перемычки часто отсоединяются от разъема сервопривода, я отрезал VCC и заземляющий провод от обоих сервоприводов и припаял их непосредственно к силовой шине. Однако для сигнальных контактов я использовал перемычки, чтобы подключить их к Arduino.

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

Arduino - Питание через разъем типа «бочонок».

Который идет к чему -

Триггерный контакт датчика сонара -> контакт A2 Arduino

Вывод эхо-сигнала датчика сонара -> вывод A3 Arduino

Вывод SDA адаптера I2C -> вывод A4 Arduino

Вывод SCL адаптера I2C -> вывод A5 Arduino

VCC зуммера -> вывод D13 Arduino

Нажатие клавиши сигнальный штифт сервопривода -> штифт D9 Arduino

Сигнальный вывод сервопривода оси X -> вывод D8 Arduino

Все выводы VCC и заземления подключены к общей шине питания.

Шаг 6: Крепление датчика сонара

Крепление датчика сонара
Крепление датчика сонара

Картинка говорит сама за себя, просто приклеил L-образную полку к «стене» и приклеил датчик гидролокатора на полку горячим способом.

Шаг 7: Изготовление направляющей оси X

Изготовление рельса оси X
Изготовление рельса оси X
Изготовление рельса оси X
Изготовление рельса оси X

Я позаимствовал концепцию рельса оси X у станков с ЧПУ. Это всего лишь две велосипедные спицы, расположенные параллельно друг другу, а в «стенках» есть отверстия, через которые проходят велосипедные спицы. На других концах стен велосипедные спицы приклеены к стенкам горячим способом, поэтому они не двигаются. Велосипедные спицы достаточно прочные, чтобы поддерживать платформу оси X.

Шаг 8: платформа оси X

Платформа оси X
Платформа оси X
Платформа оси X
Платформа оси X
Платформа оси X
Платформа оси X
Платформа оси X
Платформа оси X

Это часть, которая идет боком, чтобы дотянуться до определенных клавиш, и имеет сервопривод, к которому прикреплен рычаг, который нажимает на клавишу.

У него есть две трубки держателя стержня для ручек, приклеенные к нижней части, через которые проходят велосипедные спицы, позволяя ему скользить по ним. Я получил эту трубку от ручки, вы можете использовать все, что подходит для спиц, например соломинку для питья.

Затем, в середине нижнего листа ПВХ, прямо стоит еще один лист ПВХ. Он имеет отверстие в нижней части, которое подходит к корпусу сервопривода, и сервопривод вставляется через него. Сервопривод закреплен с помощью горячего клея.

Сервопривод имеет соединенный с ним рычаг. Когда робот должен нажать клавишу, сервопривод поворачивает руку вниз, в результате чего нажимается клавиша, а затем поворачивает ее в прежнее положение.

Шаг 9: Перемещение платформы оси X

Перемещение платформы оси X
Перемещение платформы оси X
Перемещение платформы оси X
Перемещение платформы оси X
Перемещение платформы оси X
Перемещение платформы оси X

Сервопривод «перемещения оси X» прикреплен к приподнятой платформе, которая находится с левой стороны робота. Платформа оси X имеет полку наверху, где рычаг соединяется с помощью винта. На другом конце рычага другой рычаг соединен с помощью винта, и этот рычаг соединен с рупором сервопривода. Все шарниры подвижны, и сервопривод может приводить в движение платформу оси X по рельсам оси X, вращая рог влево / вправо, что заставит рычаги толкать / тянуть платформу по рельсам.

Стыки выполняются саморезом.

Шаг 10: Код

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

Код довольно прост и нуждается в улучшении. Если вы хотите, чтобы робот воспроизводил вашу собственную мелодию, вам просто нужно поместить ее в код, что довольно просто.

Шаг 11: Раскрашиваем

Если вы хотите раскрасить его, как мой (я настоятельно рекомендую сделать это, он выглядит лучше нарисованным), сначала сделайте все части тела, убедитесь, что они правильно вырезаны. Затем вымойте их с мылом, чтобы на них не осталось масла и грязи. Обычно перед покраской поверхность шлифуют, но здесь в этом нет необходимости. Сначала нанесите на них слой, дайте ему высохнуть (несколько часов), затем нарисуйте еще один слой. Вы можете приступить к сборке деталей и их склейке после того, как краска высохнет.

Я использовал аэрозольную краску, чтобы покрасить свою

Шаг 12: Размещение и организация электроники

Размещение и организация электроники
Размещение и организация электроники
Размещение и организация электроники
Размещение и организация электроники

Я прикрутил Arduino к основному листу ПВХ и приклеил горячим клеем силовую цепь и ЖК-дисплей к основной плате. Организовал провода горячим клеем.

Шаг 13: Заключение: Спасибо, что прочитали инструкции

Итак, вот как я построил Приму. Надеюсь, журнал сборки был понятным и понятным. Если у вас есть вопросы, не стесняйтесь оставлять их в разделе комментариев, я постараюсь ответить как можно раньше.

Планы на будущее с этим проектом -

  • Сделать программу для программирования Prima проще.
  • Добавлена функция определения темпа, чтобы вы могли просто нажать кнопку для регулировки темпа.
  • Замена сервоприводов на более тихие и быстрые

Если вы построите это, оставьте картинки в комментариях, я бы хотел увидеть ваше!:)

Рекомендуемые: