Mundarija:

Merry Grinchmas kazak, termal printer + GemmaM0: 5 qadam (rasmlar bilan)
Merry Grinchmas kazak, termal printer + GemmaM0: 5 qadam (rasmlar bilan)

Video: Merry Grinchmas kazak, termal printer + GemmaM0: 5 qadam (rasmlar bilan)

Video: Merry Grinchmas kazak, termal printer + GemmaM0: 5 qadam (rasmlar bilan)
Video: CHIVILA MERRY CHRISTMAS TIN TIN TIN 2024, Iyul
Anonim
Quvnoq Grinchmas kozok, termal printer + GemmaM0
Quvnoq Grinchmas kozok, termal printer + GemmaM0
Quvnoq Grinchmas kozok, termal printer + GemmaM0
Quvnoq Grinchmas kozok, termal printer + GemmaM0
Quvnoq Grinchmas kozok, termal printer + GemmaM0
Quvnoq Grinchmas kozok, termal printer + GemmaM0
Quvnoq Grinchmas kozok, termal printer + GemmaM0
Quvnoq Grinchmas kozok, termal printer + GemmaM0

Merry Grinchmas kozok - bu interaktiv kiyim bo'lib, u shaxsiy bosma xabarlarning keng assortimentini beradi, kimdir Grinchning shlyapali pomponiga tegsa, shikoyat qiladi. Rojdestvoga qarshi xabarlar Gemma MO, Arduino va Capacitive Sensing tomonidan boshqariladigan termal printer orqali keladi.

1 -qadam: Materiallar ro'yxati

- Gemma MO

- Guts termal printeri -

- Supero'tkazuvchilar mato tasmasi

- Bo'sh kozok

- Kigiz

- aravachalar + felting to'plami

- Supero'tkazuvchilar tolalar -

- Mis ip

- Rezistorlar (3.3k + 2.2k)

- Quvvat manbai - 7,5V, 3A

- Li-Po batareyasi

- Lehim

- mato yopishtiruvchi

- Arduino Uno, Alligator kliplari va non paneli (sinov uchun)

2 -qadam: Test + Printerni sozlash

Test + Printerni sozlash
Test + Printerni sozlash
Test + Printerni sozlash
Test + Printerni sozlash
Test + Printerni sozlash
Test + Printerni sozlash

Birinchidan, printerni yetarli quvvatga ega ekanligini tekshirish, aks holda, sinov sahifasini chop etish uchun printerdagi reset tugmasini bosganingizda, u bir xil chiziqni qayta -qayta bosib chiqarishni davom ettiradi (1 -rasm).

Sinov nashri chiqqanda, BaudRate -ni tekshirish vaqti keldi, chunki Printer Guts 9600 da ishlaydi va Adafruits kutubxonasi odatdagidek 19200 -ni ishlatadi, ular boshqa termal printerlarni sotadilar. Bu erda tekshiring:

3 -rasmda printerni qanday ulash kerakligi aniq ko'rsatilgan.

Sinov har qanday dizaynni yaratish uchun turli xil shrift uslublarini kalibrlashga yordam beradi. (4 -rasm).

Sarlavha, asosiy matn va imzo uchun turli xil matn uslublarini o'z ichiga olgan 12 xil jumlani tanlaydigan tasodifiy son mavjud.

Va nihoyat, har qanday rasmni qo'shish uchun uni Bitmap rasmga aylantirish kerak. (6 -rasm). Bu erda tanlov Grinch edi. (7 -rasm)

Oxirgi eslatma. Printerni Gemma M0 bilan ishlatish uchun qo'shimcha uskunalar seriyasini ishlatish uchun ba'zi o'zgarishlar talab qilinadi (8 -rasm).

3 -qadam: Dasturni loyihalash

Dasturni loyihalash
Dasturni loyihalash

Men o'z dasturimdan nimani kutmoqdaman?

1) Menda printer haqida ingl. Tayyor uchun yashil, chop etish uchun qizil

Gemme M0 ko'milgan Neopixelga ega bo'lganligi sababli, uni LED tasmasi kabi hal qilish kerak.

#define NUMPIXELS 1 // chiziqdagi LEDlar soni

bo'sh o'rnatish () {

strip.begin (); // chiqish stripi uchun pinlarni ishga tushiring.show (); // Tez orada barcha LEDlarni o'chiring

}

void loop () {

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

strip.show ();

}

2) tizimni ishga tushiradigan sig'im sensori.

Kapasitiv sezish uchun kutubxona va ba'zi o'zgaruvchilarni aniqlash kerak. U kalibrlanishi kerak bo'lgan bitta analog kirishni ishlatadi. Tegish qiymatlarini o'zgartirish uchun menga ba'zi sinovlar kerak bo'lishi mumkin.

#"Adafruit_FreeTouch.h" ni qo'shing

int touch = 1000; #define CAPTOUCH_PIN A0

long oldState = 0;

void checkpress () {// Joriy tugma holatini olish. long newState = qt_1.measure (); Serial.println (qt_1.measure ()); if (newState> touch && oldState <touch) {// O'chirish tugmachasining qisqa kechikishi. kechikish (20); // O'chirishdan keyin tugma hali ham pastligini tekshiring. long newState = qt_1.measure (); } if (newState <touch) {// Hech narsa qilmang} boshqa {// Buni qiling}

3) Tizim ishga tushganda har xil xabarlarni chop eting

Dastur har safar ishga tushganda, raqam tasodifiy bo'ladi

bo'sh bosimChristmas () {

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

randomNumber = tasodifiy (1, 12);

printer.inverseOn ();

printer.println (F ("Xmas Inc. taqdim etadi")); printer.inverseOff ();

almashtirish (tasodifiy raqam) {

1 -holat: // bayonotlar printer.println (F ("")); // Matn asoslanishini o'rnating (o'ngda, o'rtada, chapda) - 'L', 'C', 'R' printerini qabul qiladi. Justify ('L'); printer. Hammasi mening oldimga keladi. Sizning axlatxonangizda. Siz nima demoqchi ekanimni ko'ryapsizmi? Sizning axlatxonangizda. Men axlatxonada topilgan yomon Rojdestvo galstuklari bilan o'zimni osib qo'ygan bo'lardim. Va baxillik.. ")); tanaffus; 2 -holat: // bayonotlar printer.println (F ("")); // Matn asoslanishini o'rnating (o'ngda, o'rtada, chapda) - 'L', 'C', 'R' printerini qabul qiladi. Justify ('L'); printer.println (F ("Oh, kim-manity.")); 3 -holat: // bayonotlar printer.println (F ("")); // Matn asoslanishini o'rnating (o'ngda, o'rtada, chapda) - 'L', 'C', 'R' printerini qabul qiladi. Justify ('L'); printer.println (F ("Yo'q, chana, sovg'alar, ular yo'q qilinadi va men g'amxo'rlik qilaman!")); tanaffus; 4 -holat: // bayonotlar printer.println (F ("")); // Matn asoslanishini o'rnating (o'ngda, o'rtada, chapda) - 'L', 'C', 'R' printerini qabul qiladi. Justify ('L'); printer.println (F ("Bu Rojdestvo musiqasini yoqing. Bu quvonchli va zafarli.")); tanaffus; 5 -holat: // bayonotlar printer.println (F ("")); // Matn asoslanishini o'rnating (o'ngda, o'rtada, chapda) - 'L', 'C', 'R' printerini qabul qiladi. Justify ('L'); printer.println (F ("Men zerikkanim uchun ovqatlanyapmanmi?"))); tanaffus; 6 -holat: // bayonotlar printer.println (F ("")); // Matn asoslanishini o'rnating (o'ngda, o'rtada, chapda) - 'L', 'C', 'R' printerini qabul qiladi. Justify ('L'); printer. Boi-yoi-yoi-yoing! ")); tanaffus; 7 -holat: // bayonotlar printer.println (F ("")); // Matn asoslanishini o'rnating (o'ngda, o'rtada, chapda) - 'L', 'C', 'R' printerini qabul qiladi. Justify ('L'); printer.println (F ("Endi sen menga quloq sol, yosh xonim! Agar biz *dahshatli tarzda o'ralgan bo'lsak ham, Rojdestvoda qayg'uli yuzlar bo'lmaydi.")); tanaffus; 8 -holat: // bayonotlar printer.println (F ("")); // Matn asoslanishini o'rnating (o'ngda, o'rtada, chapda) - 'L', 'C', 'R' printerini qabul qiladi. Justify ('L'); printer.println (F ("Bayram kim-nima-ee?")); tanaffus; 9 -holat: // bayonotlar printer.println (F ("")); // Matn asoslanishini o'rnating (o'ngda, o'rtada, chapda) - 'L', 'C', 'R' printerini qabul qiladi. Justify ('L'); printer.println (F ("Sizda Rojdestvo bayrami muborak bo'ladimi?")); tanaffus; 10 -holat: // bayonotlar printer.println (F ("")); // Matn asoslanishini o'rnating (o'ngda, o'rtada, chapda) - 'L', 'C', 'R' printerini qabul qiladi. Justify ('L'); printer. 'QO'YIMDA GAPIRAMAN! ")); tanaffus; 11 -holat: // bayonotlar printer.println (F ("")); // Matn asoslanishini o'rnating (o'ngda, o'rtada, chapda) - 'L', 'C', 'R' printerini qabul qiladi. Justify ('L'); printer., lekin bu * butun * Rojdestvo mavsumi … ")); tanaffus; }

// Ko'proq uslublarni sinab ko'ring

printer.boldOn (); printer.justify ('R'); printer.println (F ("Grinch")); printer.boldOff (); printer.println (F ("")); printer.justify ('L'); // Printer.doubleHeightOn () belgisini ikki balandlikda tekshirish. printer.println (F ("Merry Grinchmas!")); printer.doubleHeightOff (); printer.println (F ("")); printer.println (F (""));

// 75x75 pikselli logotipni adalogo.h da chop eting:

printer.printBitmap (grinch_width, grinch_height, grinch_data);

printer.println (F (""));

printer.println (F (""));

printer.sleep (); // Printerga uxlashni ayting

kechikish (3000L); // 3 soniya uxlang printer.wake (); // qayta chop etishdan oldin, majburiy ravishda () uyg'oting, hatto printer.setDefault (); // Printerni standart holatga qaytarish}

4 -qadam: Yumshoq elektron

Yumshoq davr
Yumshoq davr
Yumshoq davr
Yumshoq davr
Yumshoq davr
Yumshoq davr
Yumshoq davr
Yumshoq davr

Yumshoq sxemani qozoqqa xavfsiz joylashtirish kerak bo'lgani uchun men sxemaning dizayniga (1 -rasm) va komponentning joylashishiga alohida e'tibor qaratdim.

Alligator qisqichlari va non paneli yordamida to'liq sxemani sinovdan o'tkazgandan so'ng (2 va 3 -rasmlar), men tikuvchilik va lehimlashdan oldin namat ustiga vaqtinchalik qismlarni joylashtirdim (4 va 5 -rasm).

Muhim eslatma: Rezistorlarni o'z ichiga olgan simlar muhim ahamiyatga ega, chunki bu oqim tokka zarar etkazmasligi uchun kuchlanish taqsimlagichga muhtoj. (6 -rasm)

Bu erda oxirgi qadam, hamma narsani sinab ko'rish (7 -rasm)

5 -qadam: Hammasini bir joyga to'plash

Hamma narsani bir joyga to'plash
Hamma narsani bir joyga to'plash
Hamma narsani bir joyga to'plash
Hamma narsani bir joyga to'plash
Hamma narsani bir joyga to'plash
Hamma narsani bir joyga to'plash

1) namat shrift yuzini yaratish (1 va 2 -rasm)

2) Harflarni tikish (3 -rasm)

3) Qog'oz rulonli sumkani va printer va Li-po batareyasi ushlagichining tuzilishini yarating (4 va 5-rasm). Hamma narsa kozokka tikilgan.

4) Printer qopqog'i sifatida ishlaydigan Grinch yuzini yarating. Devor shlyapa ostida pomponga ulanadigan mato o'tkazuvchi lenta qatlami bilan davom etmoqda. Pompon yashil junli arqon va o'tkazgich tolasidan qilingan. (6 -rasm).

5) Quvvat manbai shnurni talab qiladi, shuning uchun men frantsuz trikotajidan ipdan yasalgan qopqoq yaratdim. (7 -rasm ixtiyoriy).

6) Oxirgi qadam, hamma narsa joyida ekanligiga ishonch hosil qiling va harakat qilib ko'ring!

Tavsiya: