İçindekiler:
- Adım 1: Malzeme Listesi
- Adım 2: Test + Yazıcı Kurulumu
- Adım 3: Programı Tasarlamak
- Adım 4: Yumuşak Devre
- Adım 5: Her Şeyi Bir Araya Getirmek
Video: Merry Grinchmas Triko, Termal Yazıcı + GemmaM0: 5 Adım (Resimli)
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:17
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
Ö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ı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 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
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:
DIY 37 Ledli Arduino Rulet Oyunu: 3 Adım (Resimli)
DIY 37 Led Arduino Rulet Oyunu: Rulet, adını Fransızca küçük tekerlek anlamına gelen kelimeden alan bir kumarhane oyunudur
BOSEBerry Pi İnternet Radyosu: 4 Adım (Resimli)
BOSEBerry Pi İnternet Radyosu: Radyo dinlemeyi çok seviyorum! Evimde bir DAB radyo kullanıyordum, ancak alımın biraz düzensiz olduğunu ve sesin kesilmeye devam ettiğini fark ettim, bu yüzden kendi internet radyomu kurmaya karar verdim. Evimin çevresinde güçlü bir wifi sinyali var ve dijital kardeşim
4 Elli 'Weasley' Konum Saati: 11 Adım (Resimli)
'Weasley' 4 Elli Konum Saati: Bir süredir ortalıkta dolaşan bir Raspberry Pi ile, onu en iyi şekilde kullanmamı sağlayacak güzel bir proje bulmak istedim. ppeters0502 tarafından hazırlanan bu harika Eğitilebilir Kendi Weasley Konum Saatinizi Oluşturun ile karşılaştım ve düşündüm ki
3D Baskılı Twin Paddle Cw Key (566gr.): 21 Adım (Resimli)
3D Baskılı Twin Paddle Cw Key (566gr.): Şimdiye kadar hassas, yumuşak ve ağır hizmet tipi bir twin paddle anahtarına sahip olmak çok para harcamak anlamına geliyordu. Bu anahtarı tasarlarken amacım kürek yapmaktı:a)- Ucuz --- Standart bir 3d yazıcı ile plastikten yapılmıştırb)- Dayanıklı --- Top kullandım
BT'li 8x8 Matris Ekran: 5 Adım (Resimli)
BT'li 8x8 Matris Ekran: Birkaç ay önce Ebay'den (Çin) 4 panelli bir 8x8 matris satın aldım. Örneklerin çoğunda yukarıdan aşağıya değil, yan yana sabit kablolu olduğunu fark ettiğimde biraz hayal kırıklığına uğradım. net yazılıyor! 2. adıma bakın. Sanırım daha fazla