Mündəricat:

Merry Grinchmas Kazak, Termal Yazıcı + GemmaM0: 5 Addım (Şəkillərlə)
Merry Grinchmas Kazak, Termal Yazıcı + GemmaM0: 5 Addım (Şəkillərlə)

Video: Merry Grinchmas Kazak, Termal Yazıcı + GemmaM0: 5 Addım (Şəkillərlə)

Video: Merry Grinchmas Kazak, Termal Yazıcı + GemmaM0: 5 Addım (Şəkillərlə)
Video: CHIVILA MERRY CHRISTMAS TIN TIN TIN 2024, Noyabr
Anonim
Şən Grinchmas Kazak, Termal Yazıcı + GemmaM0
Şən Grinchmas Kazak, Termal Yazıcı + GemmaM0
Şən Grinchmas Kazak, Termal Yazıcı + GemmaM0
Şən Grinchmas Kazak, Termal Yazıcı + GemmaM0
Şən Grinchmas Kazak, Termal Yazıcı + GemmaM0
Şən Grinchmas Kazak, Termal Yazıcı + GemmaM0
Şən Grinchmas Kazak, Termal Yazıcı + GemmaM0
Şən Grinchmas Kazak, Termal Yazıcı + GemmaM0

Merry Grinchmas kazak, Grinchin şapka pomponuna kimsə toxunduqda şikayət olaraq çox sayda fərdi çap edilmiş mesajlar təqdim edən interaktiv bir geyimdir. Gemma MO, Arduino və Capacitive Sensing tərəfindən idarə olunan bir termal printerdən gələn Milad əleyhinə mesajlar.

Addım 1: Material siyahısı

- Gemma MO

- Termal printer Guts -

- keçirici parça lenti

- Açıq kazak

- Keç

- Fitil + keçə dəsti

- İletken lif -

- Mis iplik

- Rezistorlar (3.3k + 2.2k)

- Enerji təchizatı - 7.5V, 3A

- Li-Po batareyası

- Lehim

- Parça yapışqan

- Arduino Uno, Timsah Klipləri və çörək taxtası (sınaq üçün)

Addım 2: Test + Yazıcı qurun

Test + Yazıcı Quraşdırma
Test + Yazıcı Quraşdırma
Test + Yazıcı Quraşdırma
Test + Yazıcı Quraşdırma
Test + Yazıcı Quraşdırma
Test + Yazıcı Quraşdırma

Hər şeydən əvvəl, printerin kifayət qədər gücə malik olub olmadığını yoxlamaq, yoxsa test səhifəsini çap etmək üçün printerdəki sıfırlama düyməsini basarkən eyni xətti dəfələrlə çap etməyə davam edəcək (şəkil 1).

Test çapı çıxdıqda, Printer Guts 9600 -də işlədiyi üçün BaudRate -i yoxlamağın vaxtı gəldi və standart olaraq Adafruits Kitabxanası satdıqları digər termal printerlər kimi 19200 -dən istifadə edir. Burada yoxlayın:

Şəkil 3, printeri necə bağlayacağınızı konkret şəkildə göstərir.

Test, hər hansı bir xüsusi dizayn yaratmaq üçün fərqli yazı tiplərini kalibr etməyə kömək edir. (Şəkil 4).

Başlıq, gövdə mətni və imza üçün fərqli mətn üslubları daxil olmaqla 12 fərqli cümlə arasından birini seçən təsadüfi bir rəqəm var.

Nəhayət, hər hansı bir şəkil əlavə etmək üçün onu Bitmap şəklinə çevirmək lazımdır. (Şəkil 6). Burada seçim Grinch idi. (Şəkil 7)

Son bir qeyd. Yazıcının Gemma M0 ilə istifadəsi, Hardware seriyasından istifadə etmək üçün bəzi düzəlişlər tələb edir (Şəkil 8).

Addım 3: Proqramın hazırlanması

Proqramın tərtib edilməsi
Proqramın tərtib edilməsi

Proqramımdan nə gözləyirəm?

1) Çap haqqında vizual rəy verən bir RGB ledim var. Hazır üçün yaşıl, çap üçün qırmızı

Gemme M0 -də gömülü Neopixel olduğu üçün onu kodlaşdırmaq üçün ledə bir LED şeridi kimi baxılmalıdır.

#define NUMPIXELS 1 // Şeriddəki LED sayı

boş quraşdırma () {

strip.begin (); // çıxış zolağı üçün pinləri başladın.show (); // Qısa müddətdə bütün LEDləri söndürün

}

boşluq döngəsi () {

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

strip.show ();

}

2) Sistemi işə salan bir kapasitiv sensor.

Kapasitiv algılama bir kitabxana və bəzi dəyişənlərin təyin edilməsini tələb edir. Kalibr edilməsi lazım olan bir Analog Girişdən istifadə edir. Toxunma dəyərlərini dəyişdirmək üçün bəzi testlərə ehtiyacım ola bilər.

#"Adafruit_FreeTouch.h" daxil edin

int touch = 1000;#CAPTOUCH_PIN A0 təyin edin

long oldState = 0;

void checkpress () {// Cari düymə vəziyyətini əldə edin. uzun newState = qt_1.measure (); Serial.println (qt_1.measure ()); if (newState> touch && oldState <touch) {// Silmək üçün qısa gecikmə. gecikmə (20); // Çıxarıldıqdan sonra düymənin hələ də aşağı olub olmadığını yoxlayın. uzun newState = qt_1.measure (); } if (newState <touch) {// Heç nə etmə} başqa {// Bunu et}

3) Hər dəfə sistem işə salındıqda fərqli mesajlar yazdırın

Proqram hər dəfə işləyərkən proqram bir sıra təsadüfi seçəcək

boş çapChristmas () {

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

randomNumber = təsadüfi (1, 12);

printer.inverseOn ();

printer.println (F ("Xmas Inc təqdim edir")); printer.inverseOff ();

keçid (təsadüfiSayı) {

hal 1: // ifadələr printer.println (F ("")); // Mətn əsaslandırmasını təyin edin (sağda, mərkəzdə, solda) - 'L', 'C', 'R' printerini qəbul edir. Justify ('L'); printer.println (F ("Hamısı budur, elə deyilmi? Həmişə *haqqında *belədir. Hədiyyələr, hədiyyələr … hədiyyələr, hədiyyələr, hədiyyələr, hədiyyələr, hədiyyələr! Hədiyyələrinizin nə olacağını bilmək istəyirsinizmi? Hamısı yanıma gəlir. Zibilliyinizdə. Nə dediyimi görürsünüz? *Zibilliyinizdə. Zibillikdə tapdığım bütün pis Milad boyunbağıları ilə özümü asa bilərdim. Və avarice.. ")); fasilə; hal 2: // ifadələr printer.println (F ("")); // Mətn əsaslandırmasını təyin edin (sağda, mərkəzdə, solda) - 'L', 'C', 'R' printerlərini qəbul edir. Justify ('L'); printer.println (F ("Oh, kim-manity.")); hal 3: // ifadələr printer.println (F ("")); // Mətn əsaslandırmasını təyin edin (sağda, mərkəzdə, solda) - 'L', 'C', 'R' printerini qəbul edir. Justify ('L'); printer.println (F ("Oh, yox, kirşə, hədiyyələr, məhv olacaqlar və mənə əhəmiyyət verir!")); fasilə; hal 4: // ifadələr printer.println (F ("")); // Mətn əsaslandırmasını təyin edin (sağda, mərkəzdə, solda) - 'L', 'C', 'R' printerini qəbul edir. Justify ('L'); printer.println (F ("Bu Milad musiqisini səsləndirin. Zövqlü və zəfərlidir.")); fasilə; hal 5: // ifadələr printer.println (F ("")); // Mətn əsaslandırmasını təyin edin (sağda, mərkəzdə, solda) - 'L', 'C', 'R' printerini qəbul edir. Justify ('L'); printer.println (F ("Sadəcə yorulduğum üçün yemək yeyirəm?"))); fasilə; hal 6: // ifadələr printer.println (F ("")); // Mətn əsaslandırmasını təyin edin (sağda, mərkəzdə, solda) - 'L', 'C', 'R' printerlərini qəbul edir. Justify ('L'); printer.println (F ("Bununla belə, çox mənalı gördüyüm kiçik bir Milad ənənəsi var … [ökseotu tutur] Ökseotu. [ökseotunu ombasının üstünə qoyur] İndi büküb öp, Whoville! [ökseotu qıvrılır] Boi-yoi-yoi-yoing! ")); fasilə; hal 7: // ifadələr printer.println (F ("")); // Mətn əsaslandırmasını təyin edin (sağda, mərkəzdə, solda) - 'L', 'C', 'R' printerini qəbul edir. Justify ('L'); printer.println (F ("İndi sən məni dinlə, gənc xanım! *Dəhşətlə boğulduq *belə, Miladda kədərli üzlər olmayacaq.)); fasilə; hal 8: // ifadələr printer.println (F ("")); // Mətn əsaslandırmasını təyin edin (sağda, mərkəzdə, solda) - 'L', 'C', 'R' printerini qəbul edir. Justify ('L'); printer.println (F ("Bayram kim-nə-ee?")); fasilə; hal 9: // ifadələr printer.println (F ("")); // Mətn əsaslandırmasını təyin edin (sağda, mərkəzdə, solda) - 'L', 'C', 'R' printerlərini qəbul edir. Justify ('L'); printer.println (F ("Müqəddəs, şən bir Milad keçirirsən?")); fasilə; hal 10: // ifadələr printer.println (F ("")); // Mətn əsaslandırmasını təyin edin (sağda, mərkəzdə, solda) - 'L', 'C', 'R' printerini qəbul edir. Justify ('L'); printer.println (F ("Və onlar ziyafət, ziyafət, ziyafət, ziyafət alacaqlar. Kim-Puding və nadir Kim-Qovurmaq Canavarı yeyəcəklər. Amma bu, ən azından dayana bilməyəcəyim bir şeydir. Oh, yox. Mən 'QAFİYƏDƏ DANIŞIRAM! ")); fasilə; hal 11: // ifadələr printer.println (F ("")); // Mətn əsaslandırmasını təyin edin (sağda, mərkəzdə, solda) - 'L', 'C', 'R' printerini qəbul edir. Justify ('L'); printer.println (F ("Xəsislik heç vaxt bitmir! Qolf klubları istəyirəm. Brilyant istəyirəm. Bir pony istəyirəm, ona görə iki dəfə gəzə bilərəm, cansıxıram və yapışqan etmək üçün satıram. Baxın, dalğalar etmək istəmirəm), amma bu * bütün * Milad mövsümü… ")); fasilə; }

// Daha çox üslub sınayın

printer.boldOn (); printer.justify ('R'); printer.println (F ("Qırış")); printer.boldOff (); printer.println (F ("")); printer.justify ('L'); // Yazıçı üzərində iki-yüksəklikdə olan xarakteri yoxlayın.doubleHeightOn (); printer.println (F ("Merry Grinchmas!")); printer.doubleHeightOff (); printer.println (F ("")); printer.println (F (""));

// 75x75 piksellik loqotipi adalogo.h -də çap edin:

printer.printBitmap (grinch_width, grinch_height, grinch_data);

printer.println (F (""));

printer.println (F (""));

printer.sleep (); // Yazıcıya yuxu bildir

gecikmə (3000L); // 3 saniyə yuxu printer.wake (); // printeri yenidən qurmalı olsanız da, yenidən çap etməzdən əvvəl () oyatmalısınız (); setDefault (); // Yazıcıyı standart vəziyyətə qaytarın}

Addım 4: Yumşaq Dövrə

Yumşaq Dövrə
Yumşaq Dövrə
Yumşaq Dövrə
Yumşaq Dövrə
Yumşaq Dövrə
Yumşaq Dövrə
Yumşaq Dövrə
Yumşaq Dövrə

Yumşaq dövrəni sviterin içərisinə etibarlı şəkildə yerləşdirmək lazım olduğu üçün dövrə dizaynına (Şəkil 1) və komponentin yerləşdirilməsinə xüsusi diqqət yetirdim.

Timsah klipləri və çörək taxtası istifadə edərək tam dövrəni sınadıqdan sonra (Şəkil 2 və 3), tikişdən və lehimdən əvvəl keçənin üzərinə müvəqqəti komponentlər qoymağa başladım (Şəkil 4 və 5).

Vacib qeyd: Rezistorlar daxil olmaqla naqillərin olması vacibdir, çünki bu cərəyanın lövhəyə zərər verməməsi üçün bir gərginlik bölücüsünə ehtiyacı var. (Şəkil 6)

Buradakı son addım, hər şeyi sınaqdan keçirir (Şəkil 7)

Addım 5: Hər şeyi bir yerə yığın

Hər şeyi bir yerə yığmaq
Hər şeyi bir yerə yığmaq
Hər şeyi bir yerə yığmaq
Hər şeyi bir yerə yığmaq
Hər şeyi bir yerə yığmaq
Hər şeyi bir yerə yığmaq

1) Keçmiş şrift üzünün yaradılması (Şəkil 1 və 2)

2) Məktub tikmək (Şəkil 3)

3) Kağız rulonu üçün bir çanta və printer və Li-po batareya tutacağı üçün bir quruluş yaradın (Şəkil 4 və 5). Hər şey sviterə tikilir.

4) Yazıcı qapağı kimi işləyən Grinch üzünü yaradın. Dövrə, şapka altında pompona bağlanan bir parça keçirici bant təbəqəsi ilə davam edir. Pompon yaşıl yun fitil və keçirici lifdən hazırlanmışdır. (Şəkil 6).

5) Enerji təchizatı üçün bir şnurun işə salınması tələb olunduğundan, fransız trikotajdan istifadə edərək iplikdən hazırlanmış bir örtük yaratdım. (Şəkil 7 İsteğe bağlı).

6) Son addım, hər şeyin yerində olduğundan əmin olun və sınayın!

Tövsiyə: