สารบัญ:

เสื้อกันหนาว Merry Grinchmas เครื่องพิมพ์ความร้อน + GemmaM0: 5 ขั้นตอน (พร้อมรูปภาพ)
เสื้อกันหนาว Merry Grinchmas เครื่องพิมพ์ความร้อน + GemmaM0: 5 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: เสื้อกันหนาว Merry Grinchmas เครื่องพิมพ์ความร้อน + GemmaM0: 5 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: เสื้อกันหนาว Merry Grinchmas เครื่องพิมพ์ความร้อน + GemmaM0: 5 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: Print Then Cut for Beginners! (Updated 2021) 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 เป็นเสื้อผ้าแบบอินเทอร์แอคทีฟที่มีข้อความพิมพ์เฉพาะบุคคลหลากหลายประเภทเพื่อบ่นเมื่อใดก็ตามที่มีคนสัมผัสหมวก Pompon ของ Grinch ข้อความต่อต้านคริสต์มาสที่ส่งผ่านเครื่องพิมพ์ความร้อนที่ควบคุมโดย Gemma MO, Arduino และ Capacitive Sensing

ขั้นตอนที่ 1: รายการวัสดุ

- เจมม่า MO

- เครื่องพิมพ์ความร้อน Guts -

- เทปผ้านำไฟฟ้า

- เสื้อกันหนาวหลวม

- รู้สึก

- ชุดเที่ยว+สักหลาด

- ไฟเบอร์นำไฟฟ้า -

- ด้ายทองแดง

- ตัวต้านทาน (3.3k + 2.2k)

- พาวเวอร์ซัพพลาย - 7.5V, 3A

- แบตเตอรี่ Li-Po

- ประสาน

- กาวผ้า

- Arduino Uno, คลิปจระเข้ & เขียงหั่นขนม (สำหรับการทดสอบ)

ขั้นตอนที่ 2: ทดสอบ + ตั้งค่าเครื่องพิมพ์

ทดสอบ + ตั้งค่าเครื่องพิมพ์
ทดสอบ + ตั้งค่าเครื่องพิมพ์
ทดสอบ + ตั้งค่าเครื่องพิมพ์
ทดสอบ + ตั้งค่าเครื่องพิมพ์
ทดสอบ + ตั้งค่าเครื่องพิมพ์
ทดสอบ + ตั้งค่าเครื่องพิมพ์

ก่อนอื่น ทดสอบเครื่องพิมพ์เพื่อดูว่ามีพลังงานเพียงพอหรือไม่ มิฉะนั้น เมื่อกดปุ่มรีเซ็ตบนเครื่องพิมพ์เพื่อพิมพ์หน้าทดสอบ เครื่องจะพิมพ์บรรทัดเดิมซ้ำแล้วซ้ำอีก (ภาพที่ 1)

เมื่องานพิมพ์ทดสอบออกมา ก็ถึงเวลาตรวจสอบ BaudRate เนื่องจาก Printer Guts ทำงานที่ 9600 และโดยค่าเริ่มต้น Adafruits Library ใช้ 19200 เช่นเดียวกับเครื่องพิมพ์เทอร์มอลอื่นๆ ที่พวกเขาขาย ตรวจสอบได้ที่นี่:

ภาพที่ 3 แสดงวิธีการต่อสายเครื่องพิมพ์โดยเฉพาะ

การทดสอบช่วยปรับเทียบรูปแบบฟอนต์ต่างๆ เพื่อสร้างการออกแบบที่กำหนดเอง (ภาพที่ 4).

มีตัวเลขสุ่มเลือกระหว่าง 12 ประโยคที่แตกต่างกัน รวมถึงรูปแบบข้อความที่แตกต่างกันสำหรับส่วนหัว ข้อความเนื้อหา และลายเซ็น

สุดท้ายนี้ หากต้องการเพิ่มรูปภาพ จะต้องแปลงเป็นรูปภาพบิตแมป (ภาพที่ 6) ที่นี่ทางเลือกคือกรินช์ (ภาพที่ 7)

โน้ตตัวสุดท้าย การใช้เครื่องพิมพ์กับ Gemma M0 จำเป็นต้องมีการปรับเปลี่ยนบางอย่างเพื่อใช้ฮาร์ดแวร์ซีเรียล (ภาพที่ 8)

ขั้นตอนที่ 3: การออกแบบโปรแกรม

การออกแบบโปรแกรม
การออกแบบโปรแกรม

ฉันคาดหวังอะไรเกี่ยวกับโปรแกรมของฉัน?

1) ฉันมีไฟ LED RGB ที่ให้ความคิดเห็นเกี่ยวกับเครื่องพิมพ์ สีเขียวสำหรับพร้อม สีแดงสำหรับการพิมพ์

เนื่องจาก Gemme M0 มี Neopixel ฝังอยู่ในโค้ด จึงจำเป็นต้องแก้ไข LED ราวกับว่าเป็นแถบ LED

#define NUMPIXELS 1 // จำนวน LED ในแถบ

การตั้งค่าเป็นโมฆะ () {

แถบ.begin(); // เริ่มต้นพินสำหรับเอาต์พุต strip.show(); // ปิดไฟ LED ทั้งหมดโดยเร็วที่สุด

}

วงเป็นโมฆะ (){

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

แถบ.show();

}

2) เซ็นเซอร์ capacitive ที่ทริกเกอร์ระบบ

การตรวจจับแบบ Capacitive ต้องใช้ไลบรารี่และการกำหนดตัวแปรบางตัว มันใช้อินพุตแบบอะนาล็อกหนึ่งตัวที่จำเป็นต้องปรับเทียบ ฉันอาจต้องการการทดสอบบางอย่างเพื่อเปลี่ยนค่าของการสัมผัส

#รวม "Adafruit_FreeTouch.h"

int touch = 1,000;#define CAPTOUCH_PIN A0

oldState ยาว = 0;

โมฆะ checkpress () { // รับสถานะปุ่มปัจจุบัน newState ยาว = qt_1.measure(); Serial.println(qt_1.measure()); if (newState > touch && oldState < touch) { // หน่วงเวลาสั้น ๆ เพื่อ debounce ปุ่ม ล่าช้า (20); // ตรวจสอบว่าปุ่มยังคงต่ำหลังจากดีบักหรือไม่ newState ยาว = qt_1.measure(); } if (newState < touch) { // ไม่ต้องทำอะไร } อื่น { // ทำเช่นนี้ }

3) พิมพ์ข้อความต่างๆ ทุกครั้งที่ระบบทำงาน

โปรแกรมจะสุ่มเลขทุกครั้งที่โปรแกรมรัน

โมฆะ printChristmas(){

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

randomNumber = สุ่ม (1, 12);

เครื่องพิมพ์.ผกผันOn();

printer.println(F("Xmas Inc. นำเสนอ")); เครื่องพิมพ์.ผกผันOff();

สวิตช์ (สุ่มหมายเลข) {

กรณีที่ 1: // คำสั่ง printer.println(F("")); // ตั้งค่าการจัดข้อความให้เหมาะสม (ขวา กลาง ซ้าย) -- ยอมรับ 'L', 'C', 'R' printer.justify ('L'); printer.println(F("นั่นคือสิ่งที่มันเกี่ยวกับ ใช่ไหม นั่นคือสิ่งที่มันเป็น *เกี่ยวกับ* มาโดยตลอด ของขวัญ ของขวัญ… ของขวัญ ของขวัญ ของขวัญ ของขวัญ ของขวัญ! คุณอยากรู้ว่าของขวัญของคุณจะเป็นอย่างไร? พวกเขาทั้งหมดมาหาฉัน ในถังขยะของคุณ คุณเห็นสิ่งที่ฉันพูดไหม ใน *ขยะ* ของคุณ ฉันสามารถแขวนคอตัวเองกับเนคไทคริสต์มาสแย่ๆ ที่ฉันพบที่กองขยะ และความโลภ..")); หยุดพัก; กรณีที่ 2: // คำสั่ง printer.println(F("")); // ตั้งค่าการจัดข้อความให้เหมาะสม (ขวา กลาง ซ้าย) -- ยอมรับ 'L', 'C', 'R' printer.justify ('L'); printer.println(F("โอ้ บุรุษผู้ยิ่งใหญ่")); กรณีที่ 3: // คำสั่ง printer.println(F("")); // ตั้งค่าการจัดข้อความให้เหมาะสม (ขวา กลาง ซ้าย) -- ยอมรับ 'L', 'C', 'R' printer.justify ('L'); printer.println(F("โอ้ ไม่นะ เลื่อน ของขวัญ พวกมันจะถูกทำลาย และฉันสนใจ!")); หยุดพัก; กรณีที่ 4: // คำสั่ง printer.println(F("")); // ตั้งค่าการจัดข้อความให้เหมาะสม (ขวา กลาง ซ้าย) -- ยอมรับ 'L', 'C', 'R' printer.justify ('L'); printer.println(F("Blast this Christmas music. It'sjoyful and Triumphant.")); เครื่องพิมพ์ หยุดพัก; กรณีที่ 5: // คำสั่ง printer.println(F("")); // ตั้งค่าการจัดข้อความให้เหมาะสม (ขวา กลาง ซ้าย) -- ยอมรับ 'L', 'C', 'R' printer.justify ('L'); printer.println(F("ฉันแค่กินเพราะฉันเบื่อหรือเปล่า?")); หยุดพัก; กรณีที่ 6: // คำสั่ง printer.println(F("")); // ตั้งค่าการจัดข้อความให้เหมาะสม (ขวา กลาง ซ้าย) -- ยอมรับ 'L', 'C', 'R' printer.justify ('L'); printer.println(F("อย่างไรก็ตาม มีประเพณีคริสต์มาสเล็ก ๆ อย่างหนึ่งที่ฉันพบว่ามีความหมายมาก…[ถือมิสเซิลโท]มิสเซิลโท[วางมิสเซิลโทเหนือก้นของเขา]ตอนนี้ย่นและจูบมัน Whoville![กระดิกมิสเซิลโท] บอย ย้อย ย้อย ย้อย!”)); หยุดพัก; กรณีที่ 7: // คำสั่ง printer.println(F("")); // ตั้งค่าการจัดข้อความให้เหมาะสม (ขวา กลาง ซ้าย) -- ยอมรับ 'L', 'C', 'R' printer.justify ('L'); printer.println(F("เธอฟังฉันนะ สาวน้อย! แม้ว่าพวกเราจะ *พังยับเยิน* วันคริสต์มาสก็จะไม่เศร้า")); หยุดพัก; กรณีที่ 8: // คำสั่ง printer.println(F("")); // ตั้งค่าการจัดข้อความให้เหมาะสม (ขวา กลาง ซ้าย) -- ยอมรับ 'L', 'C', 'R' printer.justify ('L'); printer.println(F("วันหยุด ใครจะเป็นอะไร?")); หยุดพัก; กรณีที่ 9: // คำสั่ง printer.println(F("")); // ตั้งค่าการจัดข้อความให้เหมาะสม (ขวา กลาง ซ้าย) -- ยอมรับ 'L', 'C', 'R' printer.justify ('L'); printer.println(F("คุณมีฮอลลี่คริสต์มาสครึกครื้นไหม?")); หยุดพัก; กรณีที่ 10: // คำสั่ง printer.println(F("")); // ตั้งค่าการจัดข้อความให้เหมาะสม (ขวา กลาง ซ้าย) -- ยอมรับ 'L', 'C', 'R' printer.justify ('L'); printer.println(F("และพวกเขาจะเลี้ยง งานเลี้ยง งานเลี้ยง งานเลี้ยง พวกเขาจะกิน Who-Pudding และ Who-Roast Beast ที่หายาก แต่นั่นคือสิ่งที่ฉันไม่สามารถยืนได้อย่างน้อย โอ้ ไม่ ฉัน 'ฉันพูดในสัมผัส!")); หยุดพัก; กรณีที่ 11: // คำสั่ง printer.println(F("")); // ตั้งค่าการจัดข้อความให้เหมาะสม (ขวา กลาง ซ้าย) -- ยอมรับ 'L', 'C', 'R' printer.justify ('L'); printer.println(F("ความโลภไม่มีที่สิ้นสุด! ฉันต้องการไม้กอล์ฟ ฉันต้องการเพชร ฉันต้องการม้า ฉันจะได้ขี่มันสองครั้ง เบื่อแล้วขายมันไปทำกาว ฟังนะ ฉันไม่อยากทำคลื่น, แต่ *ทั้ง* เทศกาลคริสต์มาสนี้คือ…")); หยุดพัก; }

// ทดสอบสไตล์เพิ่มเติม

เครื่องพิมพ์.ตัวหนา(); printer.justify ('R'); printer.println(F("กรินช์")); เครื่องพิมพ์.ตัวหนา(); printer.println(F("")); printer.justify ('L'); // ทดสอบตัวอักษร double-height on & off printer.doubleHeightOn(); printer.println(F("Merry Grinchmas!")); เครื่องพิมพ์.doubleHeightOff(); printer.println(F("")); printer.println(F(""));

// พิมพ์โลโก้ 75x75 พิกเซลใน adalogo.h:

printer.printBitmap(grinch_width, grinch_height, grinch_data);

printer.println(F(""));

printer.println(F(""));

เครื่องพิมพ์. สลีป (); // บอกให้เครื่องพิมพ์เข้าสู่โหมดสลีป

ล่าช้า (3000L); // สลีปเป็นเวลา 3 วินาที printer.wake(); // ต้องปลุก () ก่อนพิมพ์อีกครั้ง แม้ว่าจะรีเซ็ต printer.setDefault(); // คืนค่าเครื่องพิมพ์เป็นค่าเริ่มต้น }

ขั้นตอนที่ 4: ซอฟต์เซอร์กิต

ซอฟต์เซอร์กิต
ซอฟต์เซอร์กิต
ซอฟต์เซอร์กิต
ซอฟต์เซอร์กิต
ซอฟต์เซอร์กิต
ซอฟต์เซอร์กิต
ซอฟต์เซอร์กิต
ซอฟต์เซอร์กิต

เนื่องจากต้องใส่ซอฟต์เซอร์กิตไว้ในเสื้อสเวตเตอร์อย่างปลอดภัย ฉันจึงให้ความสนใจเป็นพิเศษกับการออกแบบวงจร (ภาพที่ 1) และการจัดวางส่วนประกอบ

หลังจากทดสอบวงจรทั้งหมดโดยใช้คลิปหนีบปากจระเข้และเขียงหั่นขนม (รูปภาพที่ 2 และ 3) ฉันก็รีบวางส่วนประกอบชั่วคราวบนสักหลาดก่อนเย็บและบัดกรี (รูปภาพที่ 4 & 5)

หมายเหตุสำคัญ: การเดินสายรวมถึงตัวต้านทานเป็นสิ่งจำเป็น เนื่องจากวงจรนี้ต้องการตัวแบ่งแรงดันไฟเพื่อป้องกันกระแสไฟที่สร้างความเสียหายให้กับบอร์ด (ภาพที่ 6)

ขั้นตอนสุดท้ายที่นี่ ทดสอบทุกอย่าง (ภาพที่ 7)

ขั้นตอนที่ 5: นำทุกอย่างมารวมกัน

รวมทุกอย่างไว้ด้วยกัน
รวมทุกอย่างไว้ด้วยกัน
รวมทุกอย่างไว้ด้วยกัน
รวมทุกอย่างไว้ด้วยกัน
รวมทุกอย่างไว้ด้วยกัน
รวมทุกอย่างไว้ด้วยกัน

1) การสร้างฟอนต์เฟซสักหลาด (ภาพที่ 1 &2)

2) เย็บจดหมาย (ภาพที่ 3)

3) สร้างกระเป๋าสำหรับม้วนกระดาษและโครงสร้างสำหรับเครื่องพิมพ์และที่ใส่แบตเตอรี่ Li-po (ภาพที่ 4 & 5) ทุกอย่างถูกเย็บเข้ากับเสื้อสเวตเตอร์

4) สร้างหน้ากรินช์ที่ใช้เป็นฝาครอบเครื่องพิมพ์ วงจรดำเนินต่อไปภายใต้หมวกด้วยชั้นของเทปผ้าที่เชื่อมต่อกับพู่ Pompon ทำจากขนแกะสีเขียวและเส้นใยนำไฟฟ้า (ภาพที่ 6)

5) เนื่องจากแหล่งจ่ายไฟต้องใช้สายไฟ ฉันจึงสร้างฝาครอบที่ทำจากเส้นด้ายโดยใช้เครื่องถักแบบฝรั่งเศส (ภาพที่ 7 ไม่บังคับ).

6) ขั้นตอนสุดท้าย ตรวจสอบให้แน่ใจว่าทุกอย่างเข้าที่แล้วลอง!

แนะนำ: