สารบัญ:
- ขั้นตอนที่ 1: รายการวัสดุ
- ขั้นตอนที่ 2: ทดสอบ + ตั้งค่าเครื่องพิมพ์
- ขั้นตอนที่ 3: การออกแบบโปรแกรม
- ขั้นตอนที่ 4: ซอฟต์เซอร์กิต
- ขั้นตอนที่ 5: นำทุกอย่างมารวมกัน
วีดีโอ: เสื้อกันหนาว Merry Grinchmas เครื่องพิมพ์ความร้อน + GemmaM0: 5 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:03
เสื้อสเวตเตอร์ 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) ขั้นตอนสุดท้าย ตรวจสอบให้แน่ใจว่าทุกอย่างเข้าที่แล้วลอง!
แนะนำ:
DIY 37 Leds เกมรูเล็ต Arduino: 3 ขั้นตอน (พร้อมรูปภาพ)
DIY 37 Leds เกมรูเล็ต Arduino: รูเล็ตเป็นเกมคาสิโนที่ตั้งชื่อตามคำภาษาฝรั่งเศสหมายถึงวงล้อเล็ก
หมวกนิรภัย Covid ส่วนที่ 1: บทนำสู่ Tinkercad Circuits!: 20 ขั้นตอน (พร้อมรูปภาพ)
Covid Safety Helmet ตอนที่ 1: บทนำสู่ Tinkercad Circuits!: สวัสดีเพื่อน ๆ ในชุดสองตอนนี้ เราจะเรียนรู้วิธีใช้วงจรของ Tinkercad - เครื่องมือที่สนุก ทรงพลัง และให้ความรู้สำหรับการเรียนรู้เกี่ยวกับวิธีการทำงานของวงจร! หนึ่งในวิธีที่ดีที่สุดในการเรียนรู้คือการทำ ดังนั้น อันดับแรก เราจะออกแบบโครงการของเราเอง: th
BOSEBerry Pi Internet Radio: 4 ขั้นตอน (พร้อมรูปภาพ)
BOSEBerry Pi Internet Radio: ฉันชอบฟังวิทยุ! ฉันใช้วิทยุ DAB ในบ้าน แต่พบว่าการรับสัญญาณค่อนข้างหยาบและเสียงขาดหาย ดังนั้นฉันจึงตัดสินใจสร้างวิทยุอินเทอร์เน็ตของตัวเอง ฉันมีสัญญาณ wifi แรงรอบบ้านและพี่ชายดิจิทัล
นาฬิกาบอกตำแหน่ง 'วีสลีย์' ด้วย 4 เข็มนาฬิกา: 11 ขั้นตอน (พร้อมรูปภาพ)
นาฬิกาบอกตำแหน่ง 'Weasley' แบบมี 4 เข็ม: ดังนั้น ด้วย Raspberry Pi ที่ใช้งานมาระยะหนึ่งแล้ว ฉันต้องการค้นหาโครงการดีๆ ที่จะช่วยให้ฉันใช้งานได้ดีที่สุด ฉันเจอนาฬิกาบอกตำแหน่งวีสลีย์ที่สอนได้ดีเยี่ยมนี้โดย ppeters0502 และคิดว่า
สถานีตรวจอากาศระดับมืออาชีพโดยใช้ ESP8266 และ ESP32 DIY: 9 ขั้นตอน (พร้อมรูปภาพ)
สถานีตรวจอากาศระดับมืออาชีพโดยใช้ ESP8266 และ ESP32 DIY: LineaMeteoStazione เป็นสถานีตรวจอากาศที่สมบูรณ์แบบซึ่งสามารถเชื่อมต่อกับเซ็นเซอร์ระดับมืออาชีพจาก Sensirion รวมถึงส่วนประกอบ Davis Instrument (Rain Gauge, เครื่องวัดความเร็วลม) โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อเป็นสถานีตรวจอากาศแบบ DIY แต่ต้องใช้