Оглавление:

Magic Answers Ball с Arduino Pro Mini и TFT-дисплеем: 7 шагов
Magic Answers Ball с Arduino Pro Mini и TFT-дисплеем: 7 шагов

Видео: Magic Answers Ball с Arduino Pro Mini и TFT-дисплеем: 7 шагов

Видео: Magic Answers Ball с Arduino Pro Mini и TFT-дисплеем: 7 шагов
Видео: Трюмный бак 126 — СОВЕРШЕННО НОВЫЙ ПИКАД! 2024, Июль
Anonim
Magic Answers Ball с Arduino Pro Mini и TFT-дисплеем
Magic Answers Ball с Arduino Pro Mini и TFT-дисплеем
Magic Answers Ball с Arduino Pro Mini и TFT-дисплеем
Magic Answers Ball с Arduino Pro Mini и TFT-дисплеем
Magic Answers Ball с Arduino Pro Mini и TFT-дисплеем
Magic Answers Ball с Arduino Pro Mini и TFT-дисплеем

Некоторое время назад мы с дочерью разобрали шар Magic 8, чтобы она могла заменить двадцать ответов на ответы по своему выбору. Это был подарок ее другу. Это заставило меня задуматься о том, как сделать это в большем масштабе. Можно ли получить больше 20 ответов? С электронной версией мы можем!

Итак, здесь будет описано, как я разобрал Mattel Magic 8 Ball (извините, Mattel) и использовал круглый TFT-дисплей, чтобы показать невероятное количество дополнительных ответов (самая маленькая карта micro-SD, которую я смог найти, была 8 ГБ, так что это действительно избыточно для для чего он используется). Мяч использует доску Sparkfun Wake-on-shake для запуска реакции и последующего выключения мяча для экономии заряда батареи. Плата для подзарядки используется для зарядки аккумулятора через USB-соединение.

Запасы

Части:

Arduino Pro Mini 328 - 3,3 В / 8 МГц

SparkFun Wake on Shake

Литий-ионный аккумулятор - 400 мАч

Органайзер 12 шт. Зарядный модуль TP4056 5V Micro USB 1A 18650 Зарядная плата литиевой батареи с защитным модулем зарядного устройства (вам нужен только один из них, но пакет из 12 стоил меньше 9 долларов)

DAOKI 5Pcs Micro SD Storage Board (опять же, вам нужна только одна, но пакет из 5 стоил меньше 9 долларов)

Модуль дисплея DFRobot 2,2 дюйма TFT LCD

Kingston 8 ГБ microSD (у вас дома может быть старая из них)

Макетная плата Perma-Proto четвертого размера (вы также можете просто использовать любую печатную плату, которая вам нравится)

Волшебный шар 8

FTDI Basic breakout 3.3V (возможно, у вас уже есть один из них, если вы делали аналогичный проект с Arduino Pro Mini или аналогичной платой)

4-контактный корпус с штекером 2,54 мм JST XH, штекер / гнездо, комплект разъемов для проводов Dupont (необязательно, но рекомендуется для подключения аккумулятора)

Прочие основные принадлежности:

Sugru Moldable Glue (можно использовать клейкую ленту и горячий клей, но мне это больше нравится)

Скотч

Двусторонняя лента на поролоне

Проволока

Инструменты:

Паяльник

Ротационный инструмент по вашему выбору (например, Dremel)

Мебельный зажим

Шаг 1: разрежьте Magic 8 Ball пополам

Разрежьте Magic 8 Ball пополам
Разрежьте Magic 8 Ball пополам
Разрежьте Magic 8 Ball пополам
Разрежьте Magic 8 Ball пополам

Сначала вам нужно будет разделить Magic 8 Ball пополам. Я закрепил свой на рабочем столе плоской стороной вниз с помощью мебельного зажима. Используя дремель с прикрепленным к нему основным режущим диском, прорежьте шов шара. Вам нужно будет резать глубоко, насколько позволяет отрезной диск. Помедленней. Даже после того, как вы полностью обрезали, вам может потребоваться отвертка с плоской головкой или зубило, чтобы выполнить окончательное разделение. Внутри находится цилиндр, в котором находится «волшебная» жидкость и икосаэдр (двадцатигранная форма - да, мне пришлось это посмотреть). Просто выбросьте это или используйте в другом проекте. Если вы все же используете его в другом проекте, дайте мне знать, что вы сделали, чтобы я знал, что делать со своим.

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

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

Шаг 2: приготовьте мяч

Подготовьте мяч
Подготовьте мяч
Подготовьте мяч
Подготовьте мяч
Подготовить мяч
Подготовить мяч

Нам нужно будет внести две модификации в пластиковые половинки мяча.

Во-первых, на открытой половине, той, на которой нарисована цифра «8», нам нужно будет вырезать область, достаточно большую, чтобы наша зарядная плата USB могла сидеть с торчащим USB-портом. Я использовал свой Dremel с прикрепленным барабаном для грубого шлифования. Вы хотите, чтобы это было настолько тонким, насколько вы можете получить, не проходя чистую. Затем вырежьте небольшое отверстие, достаточно большое, чтобы порт USB мог выходить наружу. Я использовал штангенциркуль, чтобы измерить USB-порт, но вы, вероятно, могли бы взглянуть на это, если вам нужно. Я снова использовал Dremel с небольшой режущей насадкой, чтобы проделать отверстие. Первые два изображения показывают отверстие и то, как он выглядит с платой USB за ним.

Во-вторых, в другой половине, с отверстиями на ОБЕИХ сторонах и белой пластиковой кромкой, подготовьте место для дисплея. Сразу внутри проема, где будет располагаться дисплей, есть пластиковые выступы и резиновый (?) Фланец с внутренней стороны проема. Выньте фланец и отложите его в сторону. Мы вернем это позже, но мы хотим убрать это с пути на этом этапе. У дисплея есть прямоугольный выступ с одной стороны, который не позволит ему сесть в проеме, если не удалить некоторые из этих выступов. Снова используя барабан для грубой шлифовки на Dremel, максимально сбрите их. Заходите через отверстие, где дисплей будет под лучшим углом. Когда все будет готово, он должен выглядеть как на картинках. Обратите внимание: на фотографиях показан дисплей на месте, но НЕ ПРИКРЕПЛЯЙТЕ ЕГО.

Шаг 3. Подготовьте ответы на карте Micro-SD

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

Намерение состоит в том, что мы можем дать мячу любой список строк, которые будут использоваться в качестве возможных ответов, и они будут центрированы на экране без каких-либо разрывов между словами. Мы не хотим выполнять эту обработку на микроконтроллере, и нам нужен файл со статическим размером записи, чтобы иметь возможность быстро найти любую конкретную строку.

Несмотря на то, что дисплей круглый, функционально это виртуальный прямоугольный дисплей, на котором видны только пиксели внутри круга. На дисплее может отображаться текст разного размера, но мы используем только самую маленькую версию - 6 x 8 пикселей. Используя этот размер, дисплей может отображать на экране 315 символов (21 символ в строке, умноженный на 15 строк), но видны только 221 символы, и каждая строка имеет разное количество видимых символов. Видите проблему?

Я написал программу на Java, которая принимает файл с неформатированными ответами и конвертирует их в полностью центрированные записи, которые можно легко отобразить на круглом TFT-экране. (ссылка для загрузки файла "FormatToPicksFileFullyCentered.java").

Не вдаваясь в объяснение всего кода, общая идея заключается в том, что мы работаем в обратном направлении от центра (иш) и вставляем пробелы, чтобы убедиться, что мы не разбиваем слова на видимых строках, а затем делаем то же самое из центрфорвард. Наконец, мы перебираем все строки и центрируем каждую строку внутри полных 21 символьной строки, чтобы создать запись размером ровно 316 байт (315 буквенно-цифровых символов плюс символ новой строки). Код фактически работает с тремя шрифтами, x 3, x 2 и x 1, чтобы увидеть, какой из шрифтов является наибольшим, который можно использовать и по-прежнему соответствовать тексту. К сожалению, центрирование шрифтов x 2 и x 3 немного не по центру. Будьте осторожны с символами, занимающими более одного байта, они могут испортить выводимый файл.

Скопируйте файл "picks.txt" на карту micro-SD.

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

Шаг 4. Загрузите код в Arduino Mini

Загрузить код в Arduino Mini
Загрузить код в Arduino Mini
Загрузить код в Arduino Mini
Загрузить код в Arduino Mini
Загрузить код в Arduino Mini
Загрузить код в Arduino Mini

Во-первых, если вы никогда раньше не использовали Arduino Pro Mini, вы не можете просто подключить USB-кабель и загрузить его; вы должны использовать плату FTDI и подключить провода к соответствующим контактам на мини. Я не буду давать здесь руководство по этому поводу, в сети есть много информации. Что касается меня, я не хотел припаивать постоянный разъем к плате микроконтроллера, который будет использоваться только один раз для загрузки кода, поэтому я создал небольшой зажим, который можно использовать для программирования mini без пайки (см. Рисунки). Это было вдохновлено такими продуктами, как Fiddy, но у меня нет легкого доступа к 3D-принтеру, поэтому я сделал свой собственный из зажима для картофельных чипсов. Если людям интересно, сделаю для этого инструкцию.

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

В функции настройки есть приличный объем кода, который имеет дело с получением хорошего случайного начального числа. По моему опыту, типичный метод использования аналогового считывания с неподключенного контакта не дает достаточно разнообразного отклика. Я получаю число от 477 до 482. Поскольку случайная функция Arduino имеет одну и только одну последовательность, а начальное число определяет, с чего начать в этой последовательности, такой узкий диапазон в конечном итоге не даст достаточного количества возможных ответов. Имейте в виду, что этот код по существу запускается заново каждый раз, когда плата Wake-on-shake выключает и снова включает питание, поэтому исходное положение последовательности, определяемое начальным значением, имеет решающее значение. Чтобы помочь с этим, я записываю очень маленький файл на SD-карту, чтобы отслеживать последнее начальное число, и добавляю его к новому значению, поступающему с неподключенного вывода.

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

Необходимые внешние библиотеки:

Библиотека ST7687S

Библиотека DFRobot-Display

Шаг 5: Подключите компоненты

Подключите компоненты
Подключите компоненты
Подключите компоненты
Подключите компоненты

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

На прилагаемой схеме TFT-дисплей представлен разъемом, а не изображением всего дисплея (для которого я не смог найти деталь Fritzing). Я пометил провода / штыри в зависимости от того, как они обозначены на детали. Точно так же SD-карта не та, которую я использовал, но я пометил провода / контакты для указанной детали.

Есть один компонент, который я не спаял на этом этапе: аккумулятор. Вместо этого я использовал четырехконтактный разъем с удаленными двумя средними контактами (второй рисунок). Это позволило мне протестировать все компоненты, соединенные вместе, а затем отсоединить аккумулятор, пока я прикрепляю все к шару.

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

Убедитесь, что все работает

Шаг 6: прикрепите компоненты к шару

Прикрепите компоненты к шару
Прикрепите компоненты к шару
Прикрепите компоненты к шару
Прикрепите компоненты к шару
Прикрепите компоненты к шару
Прикрепите компоненты к шару
Прикрепите компоненты к шару
Прикрепите компоненты к шару

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

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

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

С помощью небольшого отрезка двусторонней ленты из пеноматериала прикрепите зарядную плату USB. Двусторонняя лента не должна закрывать всю нижнюю часть зарядной платы, потому что конец с прикрепленными проводами будет свисать над центральным краем белого выступа. Таким образом, лента должна покрывать примерно три четверти нижней поверхности доски. Сначала прикрепите ленту к нижней части доски, затем прижмите ее к месту, которое вы выбрали. Разъем USB должен находиться на краю шара, входить в черную область пластика, но не выходить за пределы шара. Наконец, нанесите еще немного Sugru поверх доски и закрепите с обеих сторон. Это просто добавляет дополнительную прочность, когда кабель вставляется в порт USB.

Вставьте карту micro-SD в модуль SD-карты сейчас

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

Шаг 7: соедините две половинки вместе

Соедините две половинки вместе
Соедините две половинки вместе
Соедините две половинки вместе
Соедините две половинки вместе

Дважды убедитесь, что вы вставили SD-карту и протестировали все компоненты вместе.

Хорошо, если вы готовы, сделайте длинную змейку из клея Sugru и проведите ею по краю половины шара с белой губой (первое изображение). Клей следует наносить прямо на стык, где сходятся черные и белые участки пластика. Нанесение клея здесь гарантирует, что у вас есть прочная связь, сводя к минимуму количество клея, которое выдавливается из трещины после соединения двух половин.

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

Если у вас есть немного клея, который выдавился из стыка, не стесняйтесь соскребать его пальцем или гладкой тканью / бумажным полотенцем.

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