Оглавление:

Создайте голову говорящего робота на базе Arduino !: 26 шагов (с изображениями)
Создайте голову говорящего робота на базе Arduino !: 26 шагов (с изображениями)

Видео: Создайте голову говорящего робота на базе Arduino !: 26 шагов (с изображениями)

Видео: Создайте голову говорящего робота на базе Arduino !: 26 шагов (с изображениями)
Видео: Свидание в 16 vs 26 лет 😨😳 2024, Июль
Anonim
Собери голову говорящего робота на базе Arduino!
Собери голову говорящего робота на базе Arduino!

Изначально эта голова робота была построена в рамках проекта на конец года для моего класса физических вычислений, но за лето она «научилась» говорить. Голова питается от двух Freeduinos, 3 чипов TLC5940NT и Adafruit Industries Wave Shield, которые можно найти здесь: www.ladyada.net/make/waveshield/. Голова в настоящее время подключена к компьютеру двумя USB-кабелями, один для питания, другой для отправки ей последовательных команд о том, что говорить / эмоции. Как только голова получает набранные команды о том, что сказать / выражать эмоции, она воспроизводит отдельные файлы слов, чтобы создать предложение или несколько предложений. Он также меняет свои эмоции в соответствии с эмоциональными командами, посылаемыми с компьютера. Эта голова робота является основой для многих возможных приложений, поскольку она может сказать все, что у нее есть словарный запас. Прямо сейчас я работаю над тем, чтобы подключить его к Интернету и заставить его проверять и читать мою электронную почту через PHP-скрипт. Я буду обновлять эту инструкцию по мере продвижения вперед. Вот видео этого в действии: Head все еще находится в стадии разработки, поэтому любые комментарии по поводу чего-либо здесь более чем приветствуются! Особая благодарность Лиз Арум за помощь мне во всем! Обновление: по многочисленным просьбам я теперь добавил видео говорящего и самовыражающего робота! Наслаждайтесь на досуге!

Шаг 1: Соберите все материалы / детали / электронику

В этой головке робота используются: 1 макетная плата (она должна быть длиной более 48 рядов с зазором, идущим по центру платы для подключения микросхем IC. Также необходима шина питания и заземления, проходящая вдоль боковой стороны макета). 2 светодиода RGB (для разноцветных глаз) Общий анод. 1,50 - 1,95 доллара за штуку. 2 X 1,75 доллара = 3,5036 красных светодиода (для рта) где-то в диапазоне 40-50 центов за каждый. 36 X 0,45 доллара США = 16,202 доллара США Микро-сервоприводы HXT900 (для перемещения бровей) Можно найти по адресу: https://www.hobbycity.com/hobbycity/store/uh_viewItem.asp?idProduct=662 2 X 3,65 доллара США = 7,303 доллара США TLC5940NT (To приводить / зажигать все светодиоды и управлять сервоприводами) можно найти на Digi-key https://search.digikey.com/scripts/DkSearch/dksus.dll?Detail&name=296-17732-5-ND, где они указаны по цене 4,28 доллара США. 3 X 4,28 долл. США = 12,84 долл. США или https://www.mouser.com/ProductDetail/Texas-Instruments/TLC5940NT/?qs=sGAEpiMZZMu8%252bGBKj8XSFEjwsgnt5grMZ49G/W4nR14%3d3 выходных конденсаторов сервоприводы) Восстановлен из старого блока питания компьютера. Free2 Original Freeduinos или Arduinos. Freeduinos можно купить на https://www.freeduino.org/buy.html. Они стоят 23,99 каждая. 2 X 23,99 доллара США = 47,98 доллара США или www.sparkfun.com/commerce/product_info.php для Arduinos. По цене 29,95 долларов США за штуку. 2 X 29,95 доллара = 59,90 доллара. Предупреждение: Freeduinos требует определенных знаний в области пайки, если вы не хотите паять свои платы, купите Arduino. Предупреждение: это руководство в любом случае требует некоторых знаний в области пайки, так почему бы не начать сейчас?:) 1 Waveshield от Adafruit Industries (чтобы робот мог разговаривать) Можно купить по адресу: https://www.ladyada.net/make/waveshield/ По цене 22 доллара за штуку. Ориентировочная общая стоимость всех высокотехнологичных деталей (не включая доставка) если вы купили Freeduinos вместо Arduinos, это…. 109,82 доллара! Общая стоимость всех высокотехнологичных деталей, если вы купили Arduinos вместо Freeduinos, составляет…. 121,74 доллара! А что касается нетехнологичных материалов, вам понадобятся: картонная коробка того же размера, что и ваша голова; небольшой кусок картона; клейкая лента; провод, совместимый с макетной платой (калибр 22, сплошной); провод для крепления вещей к другим вещам; небольшой блок. из дерева Электрическая дрель. Нагревание Термоусадочная трубка для изоляции оголенных проводов и чего-то, что выдувает горячий воздух, чтобы сжать их с помощью (пистолета с горячим воздухом) коробчатого резака.

Шаг 2: Соберите и припаяйте все печатные платы и экраны

Соберите и припаяйте все печатные платы и экраны
Соберите и припаяйте все печатные платы и экраны

Припаяйте Freeduinos (как я) или не обращайте внимания на эту линию, если вы купили Arduino. Вот ссылка на их инструкции по сборке для всех, кто купил Freeduinos: mcukits.com/2009/03/12/assembly-the-freeduino-board-kit/Solder the Waveshields. У леди Ады есть очень хорошее руководство о том, как это сделать, на ее веб-сайте https://www.ladyada.net/make/waveshield/solder.html Примечание: в дополнение к пайке Waveshield, как описано. Добавьте длинный провод, припаянный к резистору R7 на стороне, ближайшей к микросхеме усилителя. Он будет подключен к аналоговому входу 1 на Freeduino, который управляет светодиодами головы робота. (Пока не беспокойтесь о том, куда подключить другой конец провода, это будет подробно объяснено позже.) См. Рисунок для пояснения того, где припаять провод.

Шаг 3. Создайте голову робота

Создайте голову робота
Создайте голову робота

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

Шаг 4: Создайте голову робота: вырезайте глаза

Создайте свою голову робота: вырезая глаза
Создайте свою голову робота: вырезая глаза

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

Шаг 5: Создайте голову робота: создание светодиодной матрицы для рта

Создайте свою голову робота: создание светодиодной матрицы для рта
Создайте свою голову робота: создание светодиодной матрицы для рта
Создайте свою голову робота: создание светодиодной матрицы для рта
Создайте свою голову робота: создание светодиодной матрицы для рта
Создайте свою голову робота: создание светодиодной матрицы для рта
Создайте свою голову робота: создание светодиодной матрицы для рта

Каждый светодиод во рту загорится независимо. Для этого нужно сделать светодиодную матрицу для рта. (Чтобы получить представление о том, что такое светодиодная матрица, см. Рисунок 1) Возьмите лист бумаги, который должен быть ртом, и с помощью карандаша и линейки разделите лист бумаги на 36 частей (9 X 4), По одному для каждого светодиода в сетке. После этого приклейте кусок бумаги к дереву и будьте осторожны, чтобы не просверлить пол (это случилось со мной, поэтому я рекомендую сверлить поверх картонной коробки. Просверлите отверстия в местах пересечения линий сверлом 1/4 дюйма, чтобы светодиоды плотно прилегали. Размер сверла, очевидно, зависит от размера ваших светодиодов, поэтому для небольших светодиодов используйте сверло меньшего размера. (Начните с малого и продвигайтесь вверх!) Посмотрите на рисунки 2 и 3, чтобы прояснить процесс сверления / маркировки.

Шаг 6: Изготовление светодиодной матрицы для рта: Припаивание светодиодов

Изготовление светодиодной матрицы для рта: впайка светодиодов
Изготовление светодиодной матрицы для рта: впайка светодиодов
Изготовление светодиодной матрицы для рта: впайка светодиодов
Изготовление светодиодной матрицы для рта: впайка светодиодов
Изготовление светодиодной матрицы для рта: впайка светодиодов
Изготовление светодиодной матрицы для рта: впайка светодиодов

Прежде чем делать что-либо еще, убедитесь, что все светодиоды не перегорели и не потускнели. Вы можете сделать это, найдя небольшую батарейку на 3 В и прикрепив ножки светодиодов к аккумулятору (помните, что длинная ножка - положительная, а короткая - отрицательная). Затем вставьте светодиоды по одному ряду за раз в просверленное приспособление для сетки. Сложите длинные ножки так, чтобы они были параллельны друг другу, и припаяйте их, ряд за рядом (см. Рисунки 2 и 3). Спаяйте вместе длинные ножки, так как вы будете использовать TLC для управления этими светодиодами, а TLC являются потребителями энергии. Это означает, что они управляют светодиодами, изменяя разность напряжений между питанием и землей.

Шаг 7: Изготовление светодиодной матрицы для рта: припаивание управляющих проводов к светодиодам

Изготовление светодиодной матрицы для рта: пайка управляющих проводов на светодиоды
Изготовление светодиодной матрицы для рта: пайка управляющих проводов на светодиоды
Изготовление светодиодной матрицы для рта: пайка проводов управления на светодиоды
Изготовление светодиодной матрицы для рта: пайка проводов управления на светодиоды
Изготовление светодиодной матрицы для рта: пайка проводов управления на светодиоды
Изготовление светодиодной матрицы для рта: пайка проводов управления на светодиоды

Припаяйте длинные провода, которые могут поместиться в макетную плату (калибр 22), на все катодные выводы светодиода. Эти провода будут управлять светодиодами. После этого обязательно изолируйте все отдельные провода изолентой (не весело) или термоусадочной трубкой (рекомендуется). В дополнение к пайке проводов на все катодные выводы светодиодов припаяйте 2 или 3 провода к анодной части сетки (Та часть, которая все спаяна). Эти провода будут служить источниками питания, распределяющими мощность по всей сети. Они будут подключены к 5В.

Шаг 8: Установите сервоприводы перемещения бровей внутри головы робота

Установите сервоприводы для перемещения бровей внутри головы робота
Установите сервоприводы для перемещения бровей внутри головы робота
Установите сервоприводы для перемещения бровей внутри головы робота
Установите сервоприводы для перемещения бровей внутри головы робота
Установите сервоприводы для перемещения бровей внутри головы робота
Установите сервоприводы для перемещения бровей внутри головы робота

Перед установкой мини-сервоприводов внутри головы робота приклейте горячим клеем длинный прочный (но все же гибкий) провод к сервомеханизму. Этот провод поднимется внутрь вашего робота, выйдет из верхней части и сползет вниз, чтобы сдвинуть брови. (См. Изображения для пояснения.) Возьмите мини-сервоприводы (с присоединенными проводами) и приклейте их горячим клеем к внутренней части головы робота, прямо под глазами, убедившись, что провода могут перемещаться из стороны в сторону.

Шаг 9: Установите сетку внутри головы робота

Установите сетку внутри головы робота
Установите сетку внутри головы робота
Установите сетку внутри головы робота
Установите сетку внутри головы робота

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

Шаг 10: Припаиваем светодиоды RGB

Припаиваем светодиоды RGB
Припаиваем светодиоды RGB

Припаяйте вывод светодиода RGB с общим анодом к длинному проводу. Затем припаяйте цветной провод (красный, зеленый, синий) к соответствующему выводу светодиода RGB (цвет отдельного вывода можно узнать, используя кнопочную батарею 3 В для поочередного включения каждого вывода светодиода). Не забудьте заизолировать провода!

Шаг 11: Установите светодиоды RGB внутри головы робота

Установите светодиоды RGB внутри головы робота
Установите светодиоды RGB внутри головы робота
Установите светодиоды RGB внутри головы робота
Установите светодиоды RGB внутри головы робота

Установите светодиоды внутри головы робота, поместив их там, где вы хотите, а затем сложите и приклейте провода к внутренней части коробки. Помещение соломинки для питья под светодиодный индикатор также помогает удерживать ее на месте. (См. Изображения для пояснения)

Шаг 12: Завершаем создание глаз

Завершаем создание глаз
Завершаем создание глаз
Завершаем создание глаз
Завершаем создание глаз

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

Шаг 13: Подключите микросхемы TLC5940NT

Подключите микросхемы TLC5940NT
Подключите микросхемы TLC5940NT
Подключите микросхемы TLC5940NT
Подключите микросхемы TLC5940NT
Подключите микросхемы TLC5940NT
Подключите микросхемы TLC5940NT

На этом шаге вам нужно будет подключить 3 TLC5940NT в гирляндное соединение, чтобы получить в общей сложности 42 светодиодных выхода (36 для рта, 6 для разноцветных глаз). Люди на игровой площадке Arduino имеют очень хорошо задокументированное руководство по подключению соедините 3 TLC5940NT вместе. Вот он в сжатом виде: вывод 13 Arduino -> SCLK (вывод 25 TLC) вывод 11 Arduino -> SIN (вывод 26 TLC) вывод 10 Arduino -> пустой (вывод 23 TLC) вывод 9 Arduino -> XLAT (вывод 24 TLC) Вывод 3 Arduino -> GSCLK (вывод 18 TLC) -------------- U ------------ Выход светодиода 1 | 1 28 | LED Out 0LED Out 2 | 2 27 | GNDLED Out 3 | 3 26 | SIN (контакт 11 Ard) LED Out 4 | 4 25 | SCLK (контакт 13 Ard)… | 5 24 | XLAT (контакт 9 Ard)… | 6 23 | ПУСТО (Ard pin 10)… | 7 22 | GND… | 8 21 | VCC (5V)… | 9 20 | 2K резистор к земле… | 10 19 | 5V… | 11 18 | GSCLK (вывод Ard 3)… | 12 17 | SOUT (подключен к SIN следующего TLC в Daisychain)… | 13 16 | XERR Out 14 | 14 15 | LED Out 15 ----------------------------- Примечание: мы подключаем 3 TLC к последовательному соединению, поэтому SIN первого TLC подключен к Arduino штырь 11. Остальные TLC имеют свой SIN, подключенный к SOUT предшествующего ему TLC. Все ПУСТОТЫ соединены друг с другом (ПУСТОЙ TLC1 соединен с ПУСТОЙ TLC2 и т. д.) Все XLAT подключены. SCLK подключены. Все GSCLK подключены. Уровень заряда не так важен, но он должен быть рассчитан на 5 В или выше. Эти конденсаторы будут действовать как фильтр, отфильтровывая все недостатки (шумы) в источнике напряжения, создаваемом TLC. Это важно, потому что Waveshield, который мы будем использовать, имеет то же заземление, что и TLC, и ДЕЙСТВИТЕЛЬНО не любит электрический шум (он издает странный щелкающий шум).

Шаг 14: Подключите светодиоды к TLC

Подключите светодиоды к TLC
Подключите светодиоды к TLC
Подключите светодиоды к TLC
Подключите светодиоды к TLC

Подсоедините все светодиоды к TLC, ряд за рядом, начиная с светодиода в верхнем левом углу и переходя к светодиоду прямо справа. Вот сетка всех выводов светодиодов TLC, включенных для вашего удобства. См. Изображения для пояснения. Рот: 0 1 2 3 4 5 6 7 89 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 Сейчас также хорошее время для подключения ваших светодиодных RGB-глазков к TLC, вот и выводы… RGB-светодиодные глазки: Слева: RGB Справа: RGB 36 40 38 37 41 39 Не забывайте подключить универсальные провода питания для светодиодов Grid и RGB к 5V!

Шаг 15: Подключите сервоприводы к TLC

Подключите сервоприводы к TLC
Подключите сервоприводы к TLC

Подключите питание и заземление сервоприводов к источнику питания и заземлению на макетной плате. Подключите управляющий провод левого сервопривода (ваша левая сторона, если смотреть на робота.) К контакту 43 (помните, что начало с нуля), а правый сервопривод - к контакту 44. Вам потребуется подключить резистор 3,3 кОм к обоим контактам. до 5 В, потому что TLC являются потребителями энергии и требуют мощности для потребления.

Шаг 16. Теперь вы вступаете в мир программного обеспечения и кода! (в основном)

Пожалуйста, не вторгайтесь…

Шаг 17: Загрузите библиотеку TLC

Последнюю библиотеку TLC для Arduino можно найти на их кодовой странице Google по адресу: code.google.com/p/tlc5940arduino/. Загрузите последнюю версию библиотеки и вставьте распакованную папку «Tlc5940» в [папку последней версии Arduino] / hardware / библиотеки /

Шаг 18: Протестируйте TLC

Загрузите мой тестовый набросок последовательного выражения, который вы можете скачать ниже. Загрузите его в Freeduino и введите несколько команд в монитор последовательного порта, чтобы проверить, что все работает. Вот список команд: Beeppybesadbemadfullmouthlinemouthoffmouthffeyesbluegreeneyesredeyesblueeyesopenmouthtalkmouth (Он не говорит, но делает движения ртом)

Шаг 19: Загрузите улучшенную, поддерживающую (в некоторой степени) высокопроизводительную библиотеку Waveshield

Загрузите новый улучшенный волновой щит Adafruit из кода Google (спасибо, мистер Fat16, за создание этой улучшенной библиотеки): code.google.com/p/wavehc/ Снова вставьте распакованную папку в папку hardware / libraries /.

Шаг 20: Отформатируйте и загрузите SD-карты

Вставьте SD-карты в компьютер и отформатируйте их с использованием файлового типа FAT или FAT16. НЕ FAT32! Затем загрузите свои SD-карты с речевыми файлами с отличного сайта AT&T по преобразованию текста в речь www.research.att.com/~ttsweb/tts/demo.php#top Переименуйте файлы в имя слова, которое он произносит в файле, и усеките это имя файла на что-то, содержащее 6 или меньше букв. (Волновой щит может обрабатывать только файлы, имена которых состоят из 6 символов или меньше.) Пример. Если вы загрузили файл для "Instructables.com" -> назовите его instrc.wav Если привет -> hello.wav

Шаг 21: проверьте свой волновой щит

Загрузите и запустите мой серийный тестовый набросок Waveshield. Вы должны иметь возможность через последовательный терминал ввести предложение, и Waveshield воспроизведет его (если у него есть нужные файлы.wav). Он возьмет первое слово, добавит ".wav" и проиграет его перед тем, как перейти ко второму. Например, вы набираете: Здравствуйте, меня зовут Боб. Он будет воспроизводить: hello.wavmy.wavname.wavis.wavbob.wav Примечание.: Протестируйте Waveshield на другом Freeduino (тот, который не подключен к TLC), потому что и Waveshield, и TLC используют контакты 13, 12, 11 и 10 (на Freeduino). Это связано с тем, что эти контакты имеют аппаратную поддержку интерфейса, называемого последовательным периферийным интерфейсом (SPI), который требуется как TLC, так и Waveshield. Эти контакты нельзя использовать совместно, поэтому нам придется связать два Freeduinos вместе с помощью интерфейса I2C, чтобы они могли передавать информацию между собой. Подробнее об этом на шаге 22.

Шаг 22: Подключите интерфейс I2C между обоими Freeduinos

Подключите интерфейс I2C между обоими Freeduinos
Подключите интерфейс I2C между обоими Freeduinos

Подождите … Зачем нам нужно подключать интерфейс I2C между двумя Freeduinos? Почему мы не можем просто подключить Waveshield и TLC к одному Freeduino? Вот почему: и Waveshield, и TLC используют контакты 13, 12, 11 и 10 на Freeduino. Причина этого в том, что эти выводы имеют аппаратную поддержку интерфейса, называемого последовательным периферийным интерфейсом (SPI), который требуется и не может совместно использоваться TLC и Waveshield. Это означает, что нам придется связать два Freeduinos вместе, используя какое-то соединение для передачи данных, чтобы они оба работали вместе в тандеме. Последовательный порт не подходил, потому что мой компьютер уже использовал его для связи с Waveshield Freeduino, поэтому после некоторых интенсивных поисков в Google я нашел удивительно удобный и простой способ связи. I2C! Вот как подключить интерфейс: Подключите контакт 4 аналогового входа к обоим Freeduinos (это SDA или линия последовательной передачи данных). Подключите контакт 5 аналогового входа к обоим Freeduinos (это SCL или линия последовательных часов). Подключите заземление. на обоих Freeduinos (в противном случае интерфейс I2C не будет работать.) Подключите провод, который вы припаяли в начале этой инструкции, от резистора R7 на волновом щите к контакту 1 аналогового входа на TLC, управляющем Freeduino (этот провод предназначен для проверки громкости слова, произносимые Waveshield и не являющиеся частью интерфейса I2C). (См. Рисунок для пояснения)

Шаг 23: Включите I2C на TLC Controlling Freeduino

Включите I2C на Freeduino, который вы использовали для управления TLC, загрузив этот скетч. Он будет получать информацию о выражениях от Waveshield, а также будет проверять громкость речевого вывода на Waveshield Freeduino и будет двигать ртом для имитации разговора в зависимости от громкости произносимого слова. Определение I2C: I2C также известен как TWI (Двухпроводный интерфейс) это простой способ соединения нескольких устройств (до 128!) С двумя проводами данных и общей землей. Обновление: я добавил функцию мигания в Arduino Sketch. Теперь робот будет мигать с интервалом 2-11 секунд, как человек.

Шаг 24: Протестируйте интерфейс I2C

Загрузите этот скетч и загрузите его в Waveshield Freeduino, он отправляет слова «поведение»; а затем "бесчестие"; через интерфейс I2C к TLC, управляя Freeduino с двухсекундными интервалами, надеясь, что робот будет переходить от счастливого к грустному с двухсекундными интервалами.

Шаг 25: Почти готово! Просто код для загрузки…

Загрузите финальную версию кода Waveshield Freeduino. Он должен принимать любые слова, которые вы вводите в монитор последовательного порта, и произносить их (при условии, что для этого есть файлы.wav), а также передавать команды выражения, такие как "behaviorppy;" и "бесад"; на Freeduino, управляя TLC через интерфейс I2C. Примечание: список команд такой же, как и в предыдущем тестовом коде TLC (см. шаг 17), за исключением того, что вы должны добавлять точку с запятой к каждой команде выражения. EX. Если вы хотите, чтобы робот грустил и говорил «Мне грустно», введите: besad; Мне грустно. Обновление: в эскизе волнового щита теперь правильно используется пунктуация (то есть точки и запятые, но без восклицательных знаков).

Шаг 26: Установите все на ящик для головы робота, и готово

Установите все на ящик для головы робота, и готово!
Установите все на ящик для головы робота, и готово!
Установите все на ящик для головы робота, и готово!
Установите все на ящик для головы робота, и готово!

Закрепите все Freeduinos на задней части коробки с помощью проводов. Закройте верхнюю крышку коробки проводами и готово! Если бы только он мог проверить мою электронную почту. Хмммм ……. Спасибо, что прочитали это руководство! Комментарии всегда приветствуются!

Второй приз в конкурсе Arduino

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