İçindekiler:

Merry Grinchmas Triko, Termal Yazıcı + GemmaM0: 5 Adım (Resimli)
Merry Grinchmas Triko, Termal Yazıcı + GemmaM0: 5 Adım (Resimli)

Video: Merry Grinchmas Triko, Termal Yazıcı + GemmaM0: 5 Adım (Resimli)

Video: Merry Grinchmas Triko, Termal Yazıcı + GemmaM0: 5 Adım (Resimli)
Video: How to Play Dr. Seuss Merry Grinchmas 2024, Temmuz
Anonim
Merry Grinchmas Triko, Termal Yazıcı + GemmaM0
Merry Grinchmas Triko, Termal Yazıcı + GemmaM0
Merry Grinchmas Triko, Termal Yazıcı + GemmaM0
Merry Grinchmas Triko, Termal Yazıcı + GemmaM0
Merry Grinchmas Triko, Termal Yazıcı + GemmaM0
Merry Grinchmas Triko, Termal Yazıcı + GemmaM0
Merry Grinchmas Triko, Termal Yazıcı + GemmaM0
Merry Grinchmas Triko, Termal Yazıcı + GemmaM0

Merry Grinchmas kazağı, birisi Grinch'in şapka ponponuna dokunduğunda şikayet olarak çok çeşitli kişiselleştirilmiş basılı mesajlar sağlayan etkileşimli bir giysidir. Gemma MO, Arduino ve Kapasitif Algılama tarafından kontrol edilen bir termal yazıcıdan gelen Noel karşıtı mesajlar.

Adım 1: Malzeme Listesi

- Gemma MO

- Termal yazıcı Guts -

- İletken Kumaş Bant

- Gevşek Kazak

- Keçe

- Fitil + keçe takımı

- İletken Fiber -

- Bakır iplik

- Dirençler (3.3k + 2.2k)

- Güç Kaynağı - 7.5V, 3A

- Li-Po Pil

- Lehim

- Kumaş tutkalı

- Arduino Uno, Timsah Klipleri ve devre tahtası (test için)

Adım 2: Test + Yazıcı Kurulumu

Test + Kurulum Yazıcısı
Test + Kurulum Yazıcısı
Test + Kurulum Yazıcısı
Test + Kurulum Yazıcısı
Test + Kurulum Yazıcısı
Test + Kurulum Yazıcısı

Öncelikle yazıcının yeterli güce sahip olup olmadığını test etmek, aksi takdirde test sayfasını yazdırmak için yazıcının üzerindeki reset düğmesine basıldığında aynı satırı tekrar tekrar yazdırmaya devam edecektir (resim 1).

Test baskısı çıktığında, Yazıcı Bağırsakları 9600'de çalıştığı ve varsayılan olarak Adafruits Kütüphanesi sattığı diğer termal yazıcılar gibi 19200 kullandığı için BaudRate'i kontrol etme zamanı. Buradan kontrol edin:

Resim 3, özellikle yazıcının nasıl kablolanacağını gösterir.

Test, herhangi bir özelleştirilmiş tasarım oluşturmak için farklı yazı tipi stillerini kalibre etmeye yardımcı olur. (Resim 4).

Başlık, gövde metni ve imza için farklı metin stilleri içeren 12 farklı cümle arasından seçim yapan rastgele bir sayı vardır.

Son olarak, herhangi bir resmi eklemek için bir Bitmap resmine dönüştürülmesi gerekir. (Resim 6). Burada seçim Grinch'ti. (Resim 7)

Son bir not. Yazıcıyı Gemma M0 ile kullanmak, Donanım serisini kullanmak için bazı ayarlamalar gerektirir (Resim 8).

Adım 3: Programı Tasarlamak

Programı Tasarlamak
Programı Tasarlamak

Programım hakkında ne bekliyorum?

1) Yazıcı hakkında görsel geri bildirim veren bir RGB ledim var. Hazır için yeşil, baskı için kırmızı

Gemme M0'da gömülü bir Neopiksel bulunduğundan, kodlamak için led'in bir LED şeridiymiş gibi ele alınması gerekir.

#define NUMPIXELS 1 // Şeritteki LED sayısı

geçersiz kurulum() {

strip.begin(); // Çıkış strip.show() için pinleri başlat; // Tüm LED'leri en kısa sürede kapatın

}

boşluk döngüsü(){

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

şerit.göster();

}

2) Sistemi tetikleyen kapasitif bir sensör.

Kapasitif algılama, bir kütüphane ve bazı değişkenlerin tanımlanmasını gerektirir. Kalibre edilmesi gereken bir Analog Giriş kullanır. Dokunma değerlerini değiştirmek için bazı testler isteyebilirim.

#include "Adafruit_FreeTouch.h"

int touch = 1000;#define CAPTOUCH_PIN A0

uzun eskiDurum = 0;

void checkpress() { // Geçerli düğme durumunu al. uzun newState = qt_1.measure(); Serial.println(qt_1.measure()); if (newState > touch && oldState < touch) { // Geri dönme düğmesi için kısa gecikme. gecikme(20); // Geri dönmeden sonra düğmenin hala düşük olup olmadığını kontrol edin. uzun newState = qt_1.measure(); } if (newState <dokunma) { // Hiçbir şey yapma } else { //Bunu yap }

3) Sistem her tetiklendiğinde farklı mesajlar yazdırın

Program, her çalıştığında bir sayıyı rastgele seçecektir.

void printNoel(){

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

rastgeleSayı = rastgele(1, 12);

yazıcı.inverseOn();

printer.println(F("Yılbaşı Hediyeleri")); yazıcı.inverseOff();

geçiş (rastgeleSayı) {

durum 1: // ifadeler printer.println(F("")); // Metin hizalamasını ayarla (sağa, ortaya, sola) -- 'L', 'C', 'R' kabul eder printer.justify('L'); printer.println(F("Her şey bununla ilgili, değil mi? Her zaman *hakkında* oldu. Hediyeler, hediyeler… hediyeler, hediyeler, hediyeler, hediyeler, hediyeler! Hediyelerinize ne olduğunu bilmek ister misiniz? Hepsi bana geliyor. Çöpünde. Ne dediğimi anlıyor musun? *çöpünde*. Çöplükte bulduğum tüm kötü Noel kravatlarıyla kendimi asabilirim. Ve hırsla..")); kırmak; durum 2: // ifadeler printer.println(F("")); // Metin hizalamasını ayarla (sağa, ortaya, sola) -- 'L', 'C', 'R' kabul eder printer.justify('L'); printer.println(F("Oh, Kim-manity.")); durum 3: // ifadeler printer.println(F("")); // Metin hizalamasını ayarla (sağa, ortaya, sola) -- 'L', 'C', 'R' kabul eder printer.justify('L'); printer.println(F("Oh, hayır, kızak, hediyeler, yok edilecekler ve umurumda!")); kırmak; durum 4: // ifadeler printer.println(F("")); // Metin hizalamasını ayarla (sağa, ortaya, sola) -- 'L', 'C', 'R' kabul eder printer.justify('L'); printer.println(F("Bu Noel müziğini patlatın. Neşeli ve muzaffer.")); kırmak; case 5: // deyimler printer.println(F("")); // Metin hizalamasını ayarla (sağa, ortaya, sola) -- 'L', 'C', 'R' kabul eder printer.justify('L'); printer.println(F("Sıkıldığım için mi yiyorum?")); kırmak; case 6: // deyimler printer.println(F("")); // Metin hizalamasını ayarla (sağa, ortaya, sola) -- 'L', 'C', 'R' kabul eder printer.justify('L'); printer.println(F("Ancak, oldukça anlamlı bulduğum ufacık bir Noel geleneği var…[ökse otunu tutar]Ökseotu.[ökse otunu poposuna koyar]Şimdi büzün ve öp onu, Whoville![ökse otunu kıpırdatıyor] Boi-yoi-yoi-yoing!")); kırmak; case 7: // deyimler printer.println(F("")); // Metin hizalamasını ayarla (sağa, ortaya, sola) -- 'L', 'C', 'R' kabul eder printer.justify('L'); printer.println(F("Şimdi beni dinle küçük hanım! *Korkunç bir şekilde dağılmış olsak bile*, Noel'de üzgün yüzler olmayacak.")); kırmak; case 8: // deyimler printer.println(F("")); // Metin hizalamasını ayarla (sağa, ortaya, sola) -- 'L', 'C', 'R' kabul eder printer.justify('L'); printer.println(F("Tatil kim-ne-ee?")); kırmak; durum 9: // ifadeler printer.println(F("")); // Metin hizalamasını ayarla (sağa, ortaya, sola) -- 'L', 'C', 'R' kabul eder printer.justify('L'); printer.println(F("Kutsal, neşeli bir Noel mi geçiriyorsunuz?")); kırmak; case 10: // deyimler printer.println(F("")); // Metin hizalamasını ayarla (sağa, ortaya, sola) -- 'L', 'C', 'R' kabul eder printer.justify('L'); printer.println(F("Ve ziyafet çekecekler, ziyafet çekecekler, ziyafet çekecekler. Pudinglerini ve nadir Who-Roast Beast'lerini yiyecekler. Ama bu benim en azından dayanamayacağım bir şey. Oh, hayır. Ben 'KÖYLE KONUŞUYORUM!")); kırmak; durum 11: // ifadeler printer.println(F("")); // Metin hizalamasını ayarla (sağa, ortaya, sola) -- 'L', 'C', 'R' kabul eder printer.justify('L'); printer.println(F("Hırs asla bitmez! Golf sopası istiyorum. Elmas istiyorum. Bir midilli istiyorum, böylece iki kez binebilirim, sıkılır ve yapıştırıcı yapmak için satarım. Bak, dalga yapmak istemiyorum, ama bu *bütün* Noel sezonu…”); kırmak; }

// Daha fazla stili test et

yazıcı.boldOn(); print.justify('R'); printer.println(F("Grinch")); yazıcı.boldOff(); yazıcı.println(F("")); print.justify('L'); // Karakter çift yüksekliği açık ve kapalı olarak test edin printer.doubleHeightOn(); printer.println(F("Mutlu Grinchmas!")); yazıcı.doubleHeightOff(); yazıcı.println(F("")); yazıcı.println(F(""));

// 75x75 piksellik logoyu adalogo.h'ye yazdırın:

printer.printBitmap(grinch_width, grinch_height, grinch_data);

yazıcı.println(F(""));

yazıcı.println(F(""));

yazıcı.sleep(); // Yazıcıya uyumasını söyle

gecikme (3000L); // 3 saniye uyu printer.wake(); // print.setDefault(); sıfırlansa bile yeniden yazdırmadan önce UYANDIRMALIDIR(); // Yazıcıyı varsayılanlara geri yükle }

Adım 4: Yumuşak Devre

Yumuşak Devre
Yumuşak Devre
Yumuşak Devre
Yumuşak Devre
Yumuşak Devre
Yumuşak Devre
Yumuşak Devre
Yumuşak Devre

Yumuşak devrenin kazak içine güvenli bir şekilde yerleştirilmesi gerektiğinden devre tasarımına (Resim 1) ve parçanın yerleşimine özellikle dikkat ettim.

Timsah klipsleri ve devre tahtası kullanarak tüm devreyi test ettikten sonra (Resim 2 ve 3), dikiş ve lehimlemeden önce keçe üzerine geçici bileşenler yerleştirmeye başladım (Resim 4 & 5).

Önemli not: Dirençleri içeren kablolama, akımın karta zarar vermesini önlemek için bu devre bir voltaj bölücüye ihtiyaç duyduğundan önemlidir. (Resim 6)

Buradaki son adım, her şeyi test etmek (Resim 7)

Adım 5: Her Şeyi Bir Araya Getirmek

Her Şeyi Bir Araya Getirmek
Her Şeyi Bir Araya Getirmek
Her Şeyi Bir Araya Getirmek
Her Şeyi Bir Araya Getirmek
Her Şeyi Bir Araya Getirmek
Her Şeyi Bir Araya Getirmek

1) Keçe yazı tipi yüzünü oluşturma (Resim 1 & 2)

2) Harfleri Dikmek (Resim 3)

3) Kağıt rulosu için bir kese ve yazıcı ve Li-po pil tutucu için bir yapı oluşturun (Resim 4 ve 5). Her şey süveter dikilir.

4) Yazıcı kapağı olarak çalışan Grinch yüzünü oluşturun. Devre, ponponla bağlanan bir kumaş iletken bant tabakası ile şapkanın altında devam eder. Ponpon yeşil yün fitil ve iletken elyaftan yapılmıştır. (Resim 6).

5) Güç kaynağına güç verilmesi için bir kablo gerektiğinden, bir fransız örgü kullanarak iplikten yapılmış bir örtü oluşturdum. (Resim 7 Opsiyonel).

6) Son adım, her şeyin yerinde olduğundan emin olun ve deneyin!

Önerilen: