Оглавление:

Свитер Merry Grinchmas, термопринтер + GemmaM0: 5 шагов (с изображениями)
Свитер Merry Grinchmas, термопринтер + GemmaM0: 5 шагов (с изображениями)

Видео: Свитер Merry Grinchmas, термопринтер + GemmaM0: 5 шагов (с изображениями)

Видео: Свитер Merry Grinchmas, термопринтер + GemmaM0: 5 шагов (с изображениями)
Видео: Merry Grinchmas! #christmas #diy #homemade #shorts #grinch #grinchmas #embroidery 2024, Июль
Anonim
Свитер Merry Grinchmas, термопринтер + GemmaM0
Свитер Merry Grinchmas, термопринтер + GemmaM0
Свитер Merry Grinchmas, термопринтер + GemmaM0
Свитер Merry Grinchmas, термопринтер + GemmaM0
Свитер Merry Grinchmas, термопринтер + GemmaM0
Свитер Merry Grinchmas, термопринтер + GemmaM0
Свитер Merry Grinchmas, термопринтер + GemmaM0
Свитер Merry Grinchmas, термопринтер + GemmaM0

Свитер Merry Grinchmas - это интерактивный предмет одежды, который предоставляет широкий спектр персонализированных печатных сообщений в качестве жалобы всякий раз, когда кто-то дотрагивается до помпона шляпы Гринча. Анти-рождественские сообщения поступают через термопринтер, управляемый Gemma MO, Arduino и Capacitive Sensing.

Шаг 1: Список материалов

- Джемма М. О.

- Термопринтер Guts -

- Лента из проводящей ткани

- Свободный свитер

- Чувствовала

- Ровинг + комплект для валяния

- Проводящее волокно -

- Медная нить

- Резисторы (3,3 кОм + 2,2 кОм)

- Электропитание - 7,5В, 3А

- Li-Po аккумулятор

- припой

- Клей для ткани

- Arduino Uno, зажимы Alligator и макетная плата (для тестирования)

Шаг 2: Тест + настройка принтера

Тест + настройка принтера
Тест + настройка принтера
Тест + настройка принтера
Тест + настройка принтера
Тест + настройка принтера
Тест + настройка принтера

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

Когда выходит тестовая распечатка, пора проверить скорость передачи данных, так как внутренности принтера работают на 9600, а библиотека Adafruits по умолчанию использует 19200, как и другие термопринтеры, которые они продают. Проверьте это здесь:

На рисунке 3 показано, как подключить принтер.

Тест помогает откалибровать различные стили шрифтов для создания любого индивидуального дизайна. (Рисунок 4).

Существует случайное число, которое выбирает из 12 различных предложений, включая разные текстовые стили для заголовка, основного текста и подписи.

Наконец, чтобы добавить любое изображение, его необходимо преобразовать в изображение Bitmap. (Рисунок 6). Здесь выбор пал на Гринча. (Рисунок 7)

И последнее замечание. Использование принтера с Gemma M0 требует некоторых настроек для использования аппаратного последовательного порта (Рисунок 8).

Шаг 3: Разработка программы

Разработка программы
Разработка программы

Чего я ожидаю от своей программы?

1) У меня есть светодиод RGB, который дает визуальную обратную связь о принтере. Зеленый для готовности, красный для печати

Поскольку Gemme M0 имеет встроенный Neopixel, для его кодирования необходимо обращаться к светодиоду, как к светодиодной ленте.

#define NUMPIXELS 1 // Количество светодиодов в полосе

void setup () {

strip.begin (); // Инициализируем выводы для вывода strip.show (); // Выключаем все светодиоды как можно скорее

}

void loop () {

strip.setPixelColor (0, 255, 127, 0);

strip.show ();

}

2) Емкостной датчик, запускающий систему.

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

#include "Adafruit_FreeTouch.h"

int touch = 1000; # определить CAPTOUCH_PIN A0

long oldState = 0;

void checkpress () {// Получить текущее состояние кнопки. long newState = qt_1.measure (); Serial.println (qt_1.measure ()); if (newState> touch && oldState <touch) {// Короткая задержка для кнопки дебаунса. задержка (20); // Проверяем, осталась ли кнопка в низком положении после дебаунса. long newState = qt_1.measure (); } if (newState <touch) {// Ничего не делать} еще {// Сделайте это}

3) Печатайте разные сообщения каждый раз при срабатывании системы

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

void printChristmas () {

randomSeed (analogRead (0) * analogRead (1));

randomNumber = случайный (1, 12);

printer.inverseOn ();

printer.println (F («Подарки компании Xmas Inc.»)); printer.inverseOff ();

switch (randomNumber) {

case 1: // операторы printer.println (F ("")); // Установить выравнивание текста (вправо, по центру, влево) - принимает 'L', 'C', 'R' printer.justify ('L'); printer.println (F («Вот в чем все дело, не так ли? Это то, о чем всегда * было *. Подарки, подарки… подарки, подарки, подарки, подарки, подарки! Вы хотите знать, что происходит с вашими подарками? Они все приходят ко мне. В вашем мусоре. Понимаете, о чем я говорю? В вашем * мусоре *. Я мог бы повеситься со всеми плохими рождественскими галстуками, которые нашел на свалке. И скупостью.. ")); перерыв; case 2: // операторы printer.println (F ("")); // Установить выравнивание текста (вправо, по центру, влево) - принимает 'L', 'C', 'R' printer.justify ('L'); printer.println (F («Ох уж, человечество»)); case 3: // операторы printer.println (F ("")); // Установить выравнивание текста (вправо, по центру, влево) - принимает 'L', 'C', 'R' printer.justify ('L'); printer.println (F («О, нет, сани, подарки, они будут уничтожены, а мне все равно!»)); перерыв; case 4: // операторы printer.println (F ("")); // Установить выравнивание текста (вправо, по центру, влево) - принимает 'L', 'C', 'R' printer.justify ('L'); printer.println (F («Взрывай эту рождественскую музыку. Она радостная и торжественная.»)); перерыв; case 5: // операторы printer.println (F ("")); // Установить выравнивание текста (вправо, по центру, влево) - принимает 'L', 'C', 'R' printer.justify ('L'); printer.println (F («Я ем просто потому, что мне скучно?»)); перерыв; case 6: // операторы printer.println (F ("")); // Установить выравнивание текста (вправо, по центру, влево) - принимает 'L', 'C', 'R' printer.justify ('L'); printer.println (F («Однако есть одна крохотная рождественская традиция, которую я считаю весьма значимой… [показывает омелу] Омела. [кладет омелу себе на попу] Теперь сморщись и поцелуй ее, Хувилль! [шевелит омелой] Бой-йой-йой-йоинг! »)); перерыв; case 7: // операторы printer.println (F ("")); // Установить выравнивание текста (вправо, по центру, влево) - принимает 'L', 'C', 'R' printer.justify ('L'); printer.println (F («А теперь послушайте меня, юная леди! Даже если мы * ужасно искалечены *, на Рождество не будет грустных лиц.»)); перерыв; case 8: // операторы printer.println (F ("")); // Установить выравнивание текста (вправо, по центру, влево) - принимает 'L', 'C', 'R' printer.justify ('L'); printer.println (F («Праздник, кто-быть-что-ее?»)); перерыв; case 9: // операторы printer.println (F ("")); // Установить выравнивание текста (вправо, по центру, влево) - принимает 'L', 'C', 'R' printer.justify ('L'); printer.println (F («Веселого Рождества у тебя празднует?»)); перерыв; case 10: // операторы printer.println (F ("")); // Установить выравнивание текста (вправо, по центру, влево) - принимает 'L', 'C', 'R' printer.justify ('L'); printer.println (F («И они будут пировать, пировать, пировать, пировать. Они будут есть свой пудинг-пудинг и редкое жареное животное. Но это то, чего я просто терпеть не могу. ГОВОРИМ РИФМ! ")); перерыв; case 11: // операторы printer.println (F ("")); // Установить выравнивание текста (вправо, по центру, влево) - принимает 'L', 'C', 'R' printer.justify ('L'); printer.println (F («Жадность никогда не заканчивается! Я хочу клюшки для гольфа. Я хочу бриллианты. Я хочу пони, чтобы я могла ездить на нем дважды, скучать и продавать его, чтобы сделать клей. Слушайте, я не хочу волновать, но это * весь * рождественский сезон … ")); перерыв; }

// Тестируем больше стилей

printer.boldOn (); printer.justify ('R'); printer.println (F («Гринч»)); printer.boldOff (); printer.println (F ("")); printer.justify ('L'); // Тестовый символ двойной высоты при включении и выключении printer.doubleHeightOn (); printer.println (F («Веселых Гринчм!»)); printer.doubleHeightOff (); printer.println (F ("")); printer.println (F (""));

// Распечатать логотип размером 75x75 пикселей в adalogo.h:

printer.printBitmap (grinch_width, grinch_height, grinch_data);

printer.println (F (""));

printer.println (F (""));

printer.sleep (); // Сообщаем принтеру, чтобы он спал

задержка (3000л); // Спящий режим на 3 секунды printer.wake (); // ДОЛЖЕН wake () перед повторной печатью, даже если сбросить printer.setDefault (); // Восстановление настроек принтера по умолчанию}

Шаг 4: Мягкая схема

Мягкая схема
Мягкая схема
Мягкая схема
Мягкая схема
Мягкая схема
Мягкая схема
Мягкая схема
Мягкая схема

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

После тестирования всей схемы с использованием зажимов типа «крокодил» и макета (Рисунки 2 и 3) я сразу же начал размещать временные компоненты на войлоке перед сшиванием и пайкой (Рисунки 4 и 5).

Важное примечание: проводка, включая резисторы, имеет важное значение, поскольку для этой схемы необходим делитель напряжения, чтобы предотвратить повреждение платы током. (Рисунок 6)

Последний шаг здесь, тестирование всего (Изображение 7)

Шаг 5: Собираем все вместе

Собираем все вместе
Собираем все вместе
Собираем все вместе
Собираем все вместе
Собираем все вместе
Собираем все вместе

1) Создание фетровой лицевой стороны шрифта (рисунки 1 и 2)

2) Пришиваем буквы (фото 3)

3) Создайте мешочек для бумажного рулона и конструкцию для принтера и держателя Li-po батареи (рис. 4 и 5). Все пришито к свитеру.

4) Создайте лицо Гринча, которое работает как крышка принтера. Схема продолжается под шляпой слоем тканевой проводящей ленты, которая соединяется с помпоном. Помпон изготовлен из ровинга зеленой шерсти и токопроводящего волокна. (Рисунок 6).

5) Поскольку для питания требуется шнур, я создал чехол из пряжи, используя французскую вязальщицу. (Изображение 7 необязательно).

6) Самый последний шаг, убедитесь, что все на месте и примерьте!

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