Оглавление:

Тыква - Тетрис Тыква: 10 шагов (с изображениями)
Тыква - Тетрис Тыква: 10 шагов (с изображениями)

Видео: Тыква - Тетрис Тыква: 10 шагов (с изображениями)

Видео: Тыква - Тетрис Тыква: 10 шагов (с изображениями)
Видео: Развитие и уход за грудным ребенком в 11-12 месяцев. 2024, Июль
Anonim
Тыква - Тетрис Тыква
Тыква - Тетрис Тыква

Кому нужны улыбающиеся лица и свечи, если в этот Хэллоуин можно съесть интерактивную тыкву? Играйте в свою любимую игру по укладке блоков на сетке 8x16, вырезанной на лицевой стороне тыквы, освещенной светодиодами и используя шток в качестве контроллера. Это в меру продвинутый проект и требует опыта пайки и программирования в среде Arduino. Вы будете работать с органическими веществами и всеми присущими им причудами, поэтому измерения, возможно, придется адаптировать к тыкве, которую вы используете.

Шаг 1. Необходимые материалы

Необходимые материалы
Необходимые материалы
Необходимые материалы
Необходимые материалы

Чтобы построить свой собственный Pumpktris, вам понадобится следующее: Компоненты

  • 128 5-миллиметровых желтых светодиодов (я использовал их от Mouser) Купите дополнительные, чтобы покрыть любые ошибки или тесты. У меня 140. Янтарь больше всего напоминает пламя, которое было бы внутри традиционного фонаря из тыквы, но вы можете использовать любой цвет, который вам нравится.
  • Микроконтроллер Arduino
  • Термоусадочная трубка 1/16 дюйма (отрезки длиной 11 футов или 256 1/2 дюймов)
  • Аркадный джойстик со съемной ручкой (мне понравился этот от SparkFun)
  • Нейлоновые анкеры для гипсокартона 4 # 6 Это не тот тип с переключателями, а тот, который выглядит как винты с глубокой резьбой
  • 4 шурупа длиной полдюйма того же размера и типа, что и анкеры для гипсокартона. Те, которые идут с якорями, будут слишком длинными.
  • Болт 6 мм x 50 мм (или любой другой размер, соответствующий креплению для ручки джойстика)
  • Стяжная гайка 6 мм (или любого другого размера, необходимого для соответствия указанному выше болту) Стяжная гайка выглядит как обычная гайка, но имеет длину около дюйма и используется для соединения двух болтов или частей стержня с резьбой.

И последнее, но не менее важное: вам понадобится 1 тыква. Вам нужен только один, но я рекомендую два, чтобы у вас был один, который можно использовать для тренировки сверления и резки. Ваша светодиодная матрица будет покрывать область размером примерно 4 дюйма в ширину на 8 дюймов в высоту, поэтому вам нужна тыква с областью такого размера как можно более гладкой и плоской, чтобы ваша матрица не заворачивалась слишком далеко. Вы можете использовать тыкву с пеной, но где в этом волшебство? Я не могу говорить о технике резьбы по тыкве из поролона. Инструменты и расходные материалы

  • Паяльник
  • Припой
  • Кусачки
  • Инструмент для зачистки проводов
  • Электрическая дрель
  • Ножовка
  • X-Acto нож
  • Сверло 13/64 дюйма
  • Сверло 1-1 / 8 дюйма (я использовал сверло Форстнера, но и лопаточное сверло тоже может подойти)
  • Пенопласт 1/4 дюйма

Шаг 2: построение светодиодной матрицы

Создание светодиодной матрицы
Создание светодиодной матрицы
Создание светодиодной матрицы
Создание светодиодной матрицы
Создание светодиодной матрицы
Создание светодиодной матрицы

Каждая матрица состоит из 64 светодиодов и 128 отрезков провода. Проще всего заранее отрезать и зачистить все провода для каждой матрицы. Разрежьте 112 на 2,5-дюймовые части и снимите 1/4 дюйма с каждого конца. Разрежьте оставшиеся 16 на 12-дюймовые части и зачистите оба конца. Чем точнее вы получите провода, тем легче будет их собрать и установить.

Вы начнете с построения шестнадцати восьмисегментных цепочек проводов, каждая из которых состоит из 7 коротких и 1 длинного провода. Скрутите каждый конец вместе со следующей деталью и припаяйте. Чтобы подключить провода к светодиодам, вам понадобится приспособление для крепления светодиодов. Нарисуйте сетку 8x8 с шагом в полдюйма на куске пенопластовой плиты толщиной 1/4 дюйма, затем с помощью шила проткните отверстие чуть меньше диаметра светодиода на каждом пересечении. У вас будет 64 отверстия, когда все готово. В верхний ряд отверстий вставьте 8 светодиодов. Сердечник из вспененного материала будет растягиваться по размеру светодиодов и будет плотно удерживать их. Выровняйте светодиоды так, чтобы более длинная ножка - анодный вывод - была обращена к вам на каждом. Еще раз проверьте, потому что, если вы ошибетесь, матрица не будет работать. Обрежьте каждый анодный вывод примерно на 1/4 дюйма в длину и залудите его припоем, чтобы упростить соединение проводов. Разрежьте 8 кусков термоусадочной трубки на сегменты 1/2 дюйма. Наденьте кусок трубки на первое соединение провода, сдвиньте его назад, чтобы на него не повлияло тепло припоя, затем припаяйте соединение провода к аноду светодиода. Продвиньте трубку вниз по соединению, когда оно остынет. Перейдите к следующему индикатору, повторяя еще семь раз процесс скольжения по части трубки, пайки соединения, а затем опускания трубки на соединение. Когда у вас есть набор из восьми светодиодов, все подключенных друг к другу, снимите их с зажимного приспособления и повторите еще раз для еще семи рядов, убедившись, что все соединения подключены к анодному проводу каждого светодиода. Вы можете использовать любой ряд зажимного приспособления, до которого легче всего добраться, так как вы работаете только с одним за раз. После того, как все восемь рядов будут спаяны, пришло время соединить столбцы и сделать матрицу. Вставьте все светодиодные цепочки в сделанное вами приспособление. Держите длинный провод на том же стороны каждой цепочки. Обрежьте и залудите катодный вывод каждого светодиода в первом столбце. ммн, точно так же, как вы сделали, чтобы построить строку. Возьмите еще одну проволочную цепочку и повторите процесс припаивания ее к светодиодам, только на этот раз вы подключаете ее под углом 90 градусов к первому набору проводов, который вы сделали. Держите длинный провод на одной стороне матрицы. Когда вы закончите каждую колонку, снимите ее с зажимного приспособления для пенопласта и сложите в сторону, чтобы обеспечить доступ к следующей колонке. Когда вы все сделаете, у вас будет 64 светодиода, объединенных в 8 рядов и 8 столбцов. К сожалению, вам нужно повторить процесс еще раз для второй матрицы. Если вам нужен перерыв, перейдите к шагам 3, 4 и 5, чтобы поработать над кодом, а затем вернитесь к этому.

Шаг 3: Управление светодиодами

Управление светодиодами
Управление светодиодами
Управление светодиодами
Управление светодиодами
Управление светодиодами
Управление светодиодами
Управление светодиодами
Управление светодиодами

Изготовленные вами светодиодные матрицы будут управляться двумя светодиодными матричными рюкзаками Mini 8x8 от Adafruit. Каждый контроллер позволяет управлять 64 светодиодами с помощью всего двух проводов от Arduino, и вы можете связать несколько контроллеров вместе на тех же двух проводах. Следуйте инструкциям, прилагаемым к рюкзаку LED Matrix Backpack, чтобы припаять 4-контактный разъем питания / данных / часов. Затем вместо пайки идущей в комплекте светодиодной матрицы припаяйте к рюкзаку два ряда гнездовых разъемов. Вставьте прилагаемую мини-светодиодную матрицу в разъемы. Вставьте матрицу в макет и подключите следующим образом:

  • Подключите вывод CLK на рюкзаке к аналоговому выводу 5 на Arduino.
  • Подключите вывод DAT к аналоговому выводу 4 на Arduino.
  • Подключите GND к контакту заземления на Arduino.
  • Подключите VCC + к источнику питания 5 В.

Загрузите библиотеку Adafruit LED Backpack и библиотеки Adafruit GFX и установите их на свой компьютер, скопировав каждую из них в папку «libraries» в папке скетчей Arduino на вашем компьютере. Загрузите файл "matrix8x8" на ваш Arduino и убедитесь, что светодиодный рюкзак работает. Штырьки светодиодной матрицы могут плохо контактировать с гнездовыми разъемами, поэтому вам может потребоваться пошевелить или частично удалить его, чтобы установить контакт и дать возможность светиться всем строкам и столбцам. Повторите процесс со вторым светодиодным рюкзаком, но на этот раз вам нужно будет установить для него новый адрес, припаяв перемычку к контактным площадкам A0 на рюкзаке. Выполните код «matrix8x8» еще раз, но измените строку «matrix.begin (0x70)» на «matrix.begin (0x71)», чтобы код адресовал новый светодиодный рюкзак.

Шаг 4: Подключение джойстика

Подключение джойстика
Подключение джойстика
Подключение джойстика
Подключение джойстика

На вашем джойстике должно быть четыре переключателя с двумя выводами на каждом. Когда вы перемещаете джойстик вправо, он запускает переключатель слева, когда вы перемещаете его вниз, он запускает переключатель вверху и так далее. К одной клемме каждого переключателя припаяйте 3-дюймовый провод. Скрутите другой конец всех четырех этих проводов вместе и припаяйте их к 12-дюймовому проводу. Это общая земля для всех четырех переключателей. Припаяйте 12-дюймовый провод к оставшейся клемме каждого переключателя, затем подключите их следующим образом:

  • Подключите нижний переключатель (активируется при нажатии вверх) к аналоговому выводу 0 на Arduino.
  • Подключите левый переключатель (активируется при нажатии вправо) к аналоговому выводу 1 на Arduino.
  • Подключите верхний переключатель (активируется при нажатии) к аналоговому выводу 2 на Arduino.
  • Подключите правый переключатель (активируется при нажатии влево) к аналоговому выводу 3 на Arduino.
  • Подключите общий провод заземления к контакту заземления на Arduino.

Шаг 5: программирование игры

Программирование игры
Программирование игры

Загрузите прикрепленный Pumpktris.ino.zip, разархивируйте его и откройте файл в среде разработки Arduino. Скомпилируйте и загрузите его на свой Arduino. Теперь у вас должна быть возможность играть на мини-светодиодной матрице, которую вы установили на предыдущем шаге. Я попытался прокомментировать код как можно больше, но вот общий обзор основных процессов: Описание форм Есть семь тетромино, каждое с 4 пикселями и каждое с четырьмя возможными поворотами. Мы храним все это в многомерном массиве: первое измерение, состоящее из семи форм, второе измерение, содержащее четыре поворота для каждой формы, третье, содержащее четыре описания пикселей, каждое из которых состоит из координат X и Y. Например, здесь описывается Т-образная форма: / * T * / {/ * угол 0 * / {{0, 1}, {1, 1}, {2, 1}, {1, 2}}, / * угол 90 * / {{1, 0}, {1, 1}, {2, 1}, {1, 2}}, / * угол 180 * / {{1, 0}, {0, 1}, {1, 1}, {2, 1}}, / * угол 270 * / {{1, 0}, {0, 1}, {1, 1}, {1, 2}}}

Отслеживание активной пьесы Для отслеживания текущей пьесы программа поддерживает переменную activePiece. Это индекс активной формы на самом высоком уровне массива. Он также сохраняет переменную вращения, содержащую индекс текущего вращения. Переменная xOffset отслеживает, насколько далеко слева или справа (0-7) находится каждая фигура, а yOffset отслеживает, насколько далеко (0-15) доска упала. Чтобы нарисовать активную часть, программа добавляет значения смещения X и Y к координатам X и Y каждого пикселя, извлеченного из текущего поворота выбранной части. Отслеживание фиксированных частей Программа использует 16-байтовый массив для отслеживания фиксированных элементов. частей, причем каждый байт представляет собой строку. Например, приведенный ниже массив будет представлять L-образную форму, сидящую в центре двух нижних строк (на что указывают единицы в последних двух байтах): byte sampleGrid [16] = {B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00000000, B00100000, B00111000}; Обнаружение столкновений Когда делается попытка переместить активную фигуру, программа сначала проверяет новую позицию по массиву фиксированных частей. Если коллизий нет, ход разрешен и матрица перерисовывается. Если столкновение обнаружено при попытке перемещения влево, вправо или поворота, действие запрещается. Если при попытке бросить кусок обнаруживается столкновение, то он фиксируется в своем положении и добавляется к массиву фиксированных пикселей. Автоматическое падение куска Темп игры контролируется переменными gravityTrigger и stepCounter. Каждый цикл программы увеличивает stepCounter, и каждый раз, когда stepCounter достигает счетчика, хранящегося в gravityTrigger, он сбрасывает активную часть на один уровень. По мере прохождения игры gravityTrigger уменьшается, так что активная фигура падает все чаще и чаще, пока, наконец, не падает в каждом цикле программы. Каждый раз, когда активный кусок прикрепляется к сетке, программа проверяет наличие полных байтов / строк (B11111111). Если они обнаруживаются, он мигает их три раза, затем удаляет их и опускает ряды выше, чтобы заполнить пробел. значение передается в строках «matrixTop.setRotation (1);» и / или «matrixBottom.setRotation (1);» в цикле "setup ()". Если части начинаются с неправильной матрицы, измените физическое расположение каждой матрицы или переверните адреса, объявленные в "matrixTop.begin (0x70);" и «matrixBottom.begin (0x71);» строки цикла "setup ()". Если некоторые строки или столбцы не светятся, пошевелите мини-светодиодной матрицей в женских заголовках. Возможно, они не поддерживают хороший контакт.

Шаг 6: Подключение светодиодной матрицы

Подключение светодиодной матрицы
Подключение светодиодной матрицы
Подключение светодиодной матрицы
Подключение светодиодной матрицы
Подключение светодиодной матрицы
Подключение светодиодной матрицы

Когда весь код и элементы управления были проверены как работающие с миниатюрными светодиодными матрицами, пришло время подключить большие светодиодные матрицы, которые вы припаяли самостоятельно.

Вы можете подключить каждый провод к разъемам на матричном рюкзаке по отдельности, но вы, вероятно, будете делать много подключений и отключений, так что это может стать настоящей проблемой. Вместо этого вы хотите припаять каждый провод к штыревому разъему и вставить его в матричный рюкзак. Я установил полоски заголовка на макетной плате, чтобы я мог подсоединять и отсоединять все 16 контактов вместе. Ряды 1-4 подключаются к контактам 1-4 на рюкзаке матрицы (нумерация контактов начинается в верхнем левом углу, когда вы смотрите вниз на рюкзак с 4-контактными контактами питания / заземления / данных / часов сверху). Колонки 1-4 подключаются к контактам 5-8. Нумерация штифтов наматывается так, чтобы штифт 9 находился внизу справа. Строки 5-8 подключаются к контактам 12-9, а столбцы 5-8 подключаются к контактам 16-13. См. Диаграмму для большей ясности. Поместите каждую матрицу в рюкзак и запустите ту же программу «matrix8x8», которую вы делали для мини-светодиодных матриц на шаге 4. Если каждая из них работает, вы можете загрузить игровую программу. Если это не сработает, убедитесь, что строки и столбцы большой светодиодной матрицы вставлены в правильные контакты рюкзака. Установка светодиодной матрицы в приспособление для вспененного сердечника, которое вы сделали для сборки, может упростить тестирование всей системы.

Шаг 7: вырезание из тыквы

Резьба по тыкве
Резьба по тыкве
Резьба по тыкве
Резьба по тыкве
Резьба по тыкве
Резьба по тыкве

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

Найдите самую плоскую сторону тыквы, чтобы светодиодная панель не загибалась слишком далеко, а затем прорежьте отверстие на противоположной стороне. Будьте щедрыми; вам понадобится место для работы. Вы не собираетесь обрезать верхнюю часть, как на традиционной тыкве, потому что ее нужно оставить нетронутой для джойстика. Тыквенная слизь и электроника - не самые лучшие друзья, поэтому хорошо очистите внутреннюю часть. Чтобы тыква выглядела лучше всего, вам нужно, чтобы ваша сетка светодиодов была прямой и хорошо выровненной с тыквой. PDF-файл прикреплен с интервалом 8x16 на расстоянии полдюйма друг от друга. Распечатайте его (или сделайте его самостоятельно с вашим собственным интервалом), обрежьте края и прикрепите липкой лентой к передней части тыквы. Убедитесь, что он прямо вверх и вниз. С помощью гвоздя, зубочистки или другого подобного инструмента проделайте пилотное отверстие в центре каждого светодиода, отмеченного на бумаге. Не рекомендуется сверлить бумагу напрямую, потому что она может сместиться или порваться. После того, как все пилотные отверстия будут протыканы, удалите бумажный шаблон и используйте сверло 13/64 дюйма в своей дрели, чтобы просверлить каждое отверстие. Не выравнивайте сверло перпендикулярно поверхности тыквы! Если вы это сделаете, кривизна тыквы может привести к тому, что отверстия, расположенные снаружи на полдюйма друг от друга, встретятся внутри, и будет сложно вставить светодиоды. Вместо этого постарайтесь, чтобы все отверстия были параллельны. Когда все отверстия просверлены, используйте нож X-Acto, чтобы вырезать квадратный «пиксель» вокруг каждого отверстия. Наклоните нож к центру каждого отверстия и оставьте примерно 1/8 дюйма между пикселями. Я предлагаю купить тренировочную тыкву и использовать ее для совершенствования техники сверления и пиксельной резьбы. Освойте это там, прежде чем рискнуть испортить идеальную тыкву, которую вы нашли для готового продукта.

Шаг 8: Установка штока на джойстик

Установка штока на джойстик
Установка штока на джойстик
Установка штока на джойстик
Установка штока на джойстик
Установка штока на джойстик
Установка штока на джойстик
Установка штока на джойстик
Установка штока на джойстик

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

Обрежьте стебель как можно ближе к основанию. Если срез неровный и чистый, используйте шлифовальный блок, чтобы разгладить его. Просверлите отверстие диаметром 1-1 / 8 дюйма прямо через основание стержня и в тыкву. Отвинтите шар джойстика и совместите стержень с центром отверстия с внутренней стороны тыквы. Убедитесь, что передняя часть джойстик имеет прямоугольную форму с передней стороной тыквы - когда вы играете, вы хотите, чтобы перемещать части, двигая их влево и вправо, а не под углом. тыква над монтажными отверстиями в основании джойстика. Снимите джойстик. Кусачками отрежьте выступающие кончики анкеров для гипсокартона так, чтобы они были короче, чем толщина кожи тыквы. Привинтите эти укороченные, курносые анкеры для гипсокартона в проделанные вами пилотные отверстия. Детали следующей части будут зависеть от купленного вами джойстика. Тот, который я использовал от SparkFun, имел 6-миллиметровую насадку для шариковой ручки, которая будет заменена штоком. Если ваш джойстик другой, используйте гайки и болты любого размера. Найдите центр стержня и просверлите отверстие 13/64 дюйма (того же размера, что вы использовали для отверстий для светодиодов, по совпадению) примерно на дюйм прямо внутрь стержня. Это будет хорошим шагом для проверки вашей тренировочной тыквы, чтобы убедиться, что болт плотно ввинчивается в отверстие. Отрежьте головку болта 6 мм x 50 мм ножовкой. Нанесите эпоксидную смолу или столярный клей на резьбу рядом с обрезанным концом винта и ввинтите его в стержень. Вам нужен дюйм или около того в стержне и дюйм снаружи. Накрутите стяжную гайку 6 мм на вал джойстика, но пока не устанавливайте джойстик в тыкву.

Шаг 9: размещение светодиода и джойстика

Размещение светодиодов и джойстика
Размещение светодиодов и джойстика

Вставляйте светодиоды с внутренней стороны тыквы, ряд за рядом, в их отверстия, пока их основания не будут на одном уровне с внутренней поверхностью тыквы. Когда все на месте, используйте бамбуковую шпажку, чтобы протолкнуть их глубже вперед. Я оставил их передний край примерно на 1/4 - 3/8 дюйма ниже внешней поверхности. Если они находятся слишком глубоко под поверхностью, свет попадет на плоть тыквы, и каждый пиксель будет менее четким.

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

Шаг 10: Игра в игру

Игра в игру
Игра в игру

Поместите миску или пластиковый контейнер для хранения продуктов на дно тыквы, чтобы свисающая электроника не касалась дна. Подключите джойстик к Arduino, светодиодные рюкзаки - к Arduino, а светодиодные матрицы - в рюкзаки. Подключите источник питания к вашему Arduino. Теперь поиграйте в тыкву! Идеи для дальнейших исследований Вместо того, чтобы устанавливать джойстик на верхнюю часть тыквы со светодиодами, вы можете использовать удаленную тыкву, либо по беспроводной сети, либо с кабелем, украшенным в виде виноградной лозы. Вместо игры вы можете отображать сообщения с прокруткой на своем фонарике. Вы можете установить матрицы сбоку (16 в ширину на 8 в высоту) или даже использовать только одну матрицу. Неизбежный гниль Ваша тыква со временем начнет гнить, и на ней появится плесень и грибок. Это может быть опасно для вашего здоровья и привести к сбоям в работе вашей электроники. Лучше всего вынуть всю свою электронику, как только вы увидите какой-либо рост на тыкве или в ней, чтобы вы могли повторно использовать их позже, не требуя очистки Haz-Mat.

Конкурс хеллоуинских украшений
Конкурс хеллоуинских украшений
Конкурс хеллоуинских украшений
Конкурс хеллоуинских украшений

Второй приз в конкурсе хеллоуинских украшений

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