Полоса здоровья для Magic: The Gathering
Посмотрите здесь видео о том, как это выглядит, когда оно работает:
https://www.instagram.com/p/DC7ZvZqqY5L/?igsh=ZG85azRucWNyZ2Ry
Кроме того, пишите мне туда, если у вас возникнут вопросы.
Описание:
Я сделал счетчик жизней в стиле панели здоровья для MtG, используя Adafruit Trinket M0 (хотя подойдет любой контроллер, я просто не думаю, что какой-либо другой поместится в мой корпус).
Детали и сборка:
Я использовал светодиодные ленты Adafruit NeoPixel 2x20 (144/м, потому что это довольно плотная конструкция).
Вам также понадобится поворотный энкодер (я использовал 318-ENC130175F-12PS, в паспорте также указано REF. TW-700198, изображение прилагается).
Просто припаяйте контакт данных двух полосок к контактам 3 и 4 брелка M0.
Контакты CLK и DT (левый и правый из трех передних) поворотного энкодера должны подключаться к контактам 0 и 2 соответственно, а контакт SW (л��вый из двух сзади для нажатия кнопки) должен подключаться к контакту 1.
Два других контакта должны быть заземлены, поскольку на всех из них я запрограммировал подтягивающие резисторы.
Я использовал USB-кабель на 5 В (подойдет любой блок питания или разъем USB-к питания на другом конце) и припаял его непосредственно к макетной плате Trinket M0.
Я бы порекомендовал припаять брелок с одной стороны, а поворотный энкодер с другой.
Я использовал небольшой полумакет Adafruit, он почти точно соответствует размерам корпуса.
Чтобы закрыть корпус, я использовал 3 винта с потайной головкой М3 (длиной 16 мм) и 3 гайки М3, которые можно вставить внутрь корпуса с каждой стороны.
Файлы .stls с пометкой «маленький» не являются обязательными. Я использовал их для заполнения меток в верхней части корпуса, но вы также можете просто раскрасить их, если хотите.
Я напечатал все с толщиной 0,2 мм на принтере Prusa MK4 с использованием Prusament PETG.
Как это работает:
Вы просто вращаете поворотный регулятор, чтобы увеличить или уменьшить общее количество жизней каждого игрока.
При нажатии на поворотную кнопку происходит переключение плеера (т.е. на какую светодиодную ленту это влияет).
Здесь вы можете найти мой код:
#include
// Входы поворотного энкодера
#определить CLK 0
#определить DT 2
#определить ПО 1
#define LED_PIN_1 3
#define LED_PIN_2 4
bool thatPlayer = ложь;
интервал жизниTotalOne = 20;
ИНТ lifeTotalTwo = 20;
интервал счетчика = 0;
ИНТ CurrentStateCLK;
ИНТ LastStateCLK;
uint32_t curColors[20];
Строка currentDir="";
Adafruit_NeoPixel Strip1(20, LED_PIN_1, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel Strip2(20, LED_PIN_2, NEO_GRB + NEO_KHZ800);
беззнаковый длинный LastButtonPress = 0;
//массив базовых цветов
#include
uint32_t base_colors[20] = {
0xB20000, // Ярко-красный
0xB21300,
0xB22600,
0xB24700,
0xB25900,
0xB26B00,
0xB27E00,
0xB29000,
0xB2A300, // Желтовато-красный
0xB2B300, // Желтый
0x99B300, // Зеленовато-желтый
0x8FB300,
0x7AB300,
0x6EB300,
0x59B300,
0x4CB300,
0x3FB300,
0x33B300,
0x26B300,
0x00B200 // Ярко-зеленый
};
uint32_t green_to_blue[20] = {
0x00B200, // Ярко-зеленый
0x00B213,
0x00B226,
0x00A313, // Средняя точка: сине-зеленый
0x00B23F,
0x00B259,
0x00A326,
0x008F3F,
0x007359,
0x00B26B,
0x00B27E,
0x00B290,
0x00B2A3,
0x00B2B5, // Светло-зеленый
0x005959, // Переход в сине-зеленый цвет
0x004C66,
0x003373,
0x002680,
0x001399,
0x0000B2 // Ярко-синий
};
uint32_t blue_to_purple[20] = {
0x0000B2,
0x0500B2,
0x0A00B2,
0x1000B2,
0x1400B2,
0x1900B2,
0x1E00B2,
0x2300B2,
0x2800B2,
0x2D00B2,
0x3200B2,
0x3800B2,
0x3C00B2,
0x4100B2,
0x4600B2,
0x4B00B2,
0x5000B2,
0x5500B2,
0x5A00B2,
0x6100B2 // Светло-фиолетовый
};
uint32_t Purple_to_orange[20] = {
0x6100B2, // Темно-фиолетовый
0x6C00A9, // Фиолетовый
0x76009F, // Фиолетовый-фиолетовый
0x860096, // Фиолетовый
0x93008C, // Пурпурно-розовый
0x9E0083, // Розовато-фиолетовый
0xA60078, // Розовый-пурпурный
0xB2006B, // Пурпурный
0xB21366, // Пурпурно-красный
0xB23359, // Красно-оранжевый
0xB24C4D, // Ярко-красный-оранжевый
0xB25940, // насыщенный оранжево-красный
0xB26B33, // Темно-оранжевый
0xB26B33, // Яркий оранжевый
0xB27E33, // Ярко-оранжевый
0xB2A33F, // Желтовато-оранжевый
0xB2B23F, // Оранжево-желтый
0xB2B539, // Теплый желто-оранжевый
0xB2B239, // Яркая ва





























