สารบัญ:
- ขั้นตอนที่ 1: รวบรวมวัสดุของคุณ
- ขั้นตอนที่ 2: การประกอบ NeoPixel Grid
- ขั้นตอนที่ 3: การเพิ่มเซ็นเซอร์
- ขั้นตอนที่ 4: การดีบักโค้ด
- ขั้นตอนที่ 5: รวบรวมเสื้อยืด
- ขั้นตอนที่ 6: การแก้ไขปัญหา
วีดีโอ: EqualAir: จอแสดงผล NeoPixel ที่สวมใส่ได้ซึ่งกระตุ้นโดยเซ็นเซอร์มลพิษทางอากาศ: 7 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:04
เป้าหมายของโครงการคือการผลิตเสื้อยืดที่สวมใส่ได้ซึ่งแสดงกราฟิกที่ชวนให้นึกถึงเมื่อมลพิษทางอากาศอยู่เหนือเกณฑ์ที่กำหนด กราฟิกได้รับแรงบันดาลใจจากเกมคลาสสิก "เบรกเกอร์อิฐ" โดยที่รถเป็นเหมือนไม้พายที่คายไอเสีย (ซึ่งเหมือนกับลูกบอล) ที่ "ตี" ชิ้นส่วนของปอดและทำให้เสื่อมคุณภาพ เมื่อมลพิษทางอากาศอยู่เหนือธรณีประตู (เช่น เมื่อเดินทางโดยรถยนต์) เสื้อยืดสีขาวที่ไม่เป็นอันตรายจะเริ่มเล่นบนหน้าจอ โครงการนี้สร้างโดย Jordan, Mary, Nick และ Odessa สำหรับชั้นเรียนที่เรียกว่า The Art and Science of Making
ขั้นตอนที่ 1: รวบรวมวัสดุของคุณ
แสดง:
- 6 * Adafruit NeoPixel Digital RGBW LED Strip - PCB สีขาว 144 LED/m
- 1 * Arduino Mega (ตามเว็บไซต์ Adafruit การใช้ NeoPixel มากกว่าสองแถบต้องใช้ Arduino Mega)
- 1*9 โวลต์แบตเตอรี่
- 1 * ที่ชาร์จแล็ปท็อป
การตรวจจับ:
1 * เซ็นเซอร์ Adafruit MiCS5524 (นี่คือเซ็นเซอร์มลพิษทางอากาศที่เราใช้เพราะราคาถูก ข้อเสียคือสามารถตรวจจับก๊าซหลายชนิดและไม่แยกความแตกต่างระหว่างกัน)
อื่น:
เสื้อยืดสีขาว 2 * (เราแนะนำให้ซื้อเสื้อยืดที่ใหญ่เกินไปเพราะ 1) ต้องมีที่ว่างสำหรับฮาร์ดแวร์ และ 2) คุณจะต้องตัดผ้าส่วนเกินออกเล็กน้อยเพื่อทำกระเป๋า ซ่อนฮาร์ดแวร์)
เครื่องมือ:
- จัมเปอร์
- โปรโตบอร์ด
- ตัวเก็บประจุ
- ตัวต้านทาน
- เครื่องตัดลวด
- เครื่องบัดกรี
- วัสดุเย็บผ้า และ/หรือ กาวติดผ้า
ขั้นตอนที่ 2: การประกอบ NeoPixel Grid
ในการประกอบตาราง NeoPixel แถบ NeoPixel ดั้งเดิมจะต้องถูกตัดและบัดกรีใหม่ตามขนาดกริดที่ต้องการ สำหรับการออกแบบนี้ เรากำลังสร้างตาราง NeoPixels ขนาด 47x16:
- ตัดแถบ NeoPixel ที่ยาว 1 เมตร (144 NeoPixel) โดยเพิ่มขึ้นทีละ 47 NeoPixel ระวังให้ห้องบางส่วนบัดกรีที่ขอบของแถบ (มีสายโลหะขนาดเล็กที่มองเห็นได้ที่ด้านล่างของ NeoPixels) ตรวจสอบให้แน่ใจว่าได้ตัดโดยที่แผ่นบัดกรีทั้งหมดถูกเปิดออก (เพราะมันมีขนาดเล็กมากสำหรับการเริ่มต้น) เหตุผลที่แถบยาว 47 พิกเซลแทนที่จะเป็น (144/3 = 48) พิกเซลคือคุณจะสูญเสียอย่างน้อยหนึ่งพิกเซลจากการตัดเนื่องจาก NeoPixel อยู่ใกล้กันมาก
- จัดวางเสาอย่างระมัดระวัง (เลือกใช้เทปพันสายไฟเพื่อยึดเข้าที่) และตรวจดูให้แน่ใจว่าได้ขนาดตามต้องการ (47x16) จัดวางคอลัมน์ในรูปแบบ S
- NeoPixels มีสายสำหรับแรงดันไฟฟ้าขาเข้า อินพุต และกราวด์ที่ควรเชื่อมต่อกับคู่หูในแถบถัดไป ใช้ลวดแบบหลายเส้น ต่อสายนำของคอลัมน์เข้าด้วยกันในรูปแบบ S ระวังที่จะเชื่อมต่อสายนำที่ถูกต้อง
- ทิ้งลีดไว้ที่ส่วนท้ายของกริด (ควรมี 2 ปลาย - อันหนึ่งที่คุณเริ่มต้นและอีกอันที่คุณสิ้นสุดรูปแบบ S) และเพิ่มการต่อสายไฟเพื่อความสะดวก คุณยังเลือกปิดเทปหรือยึดสายในตอนท้ายได้ด้วย ติดกาวร้อนบนจุดเชื่อมต่อเพื่อยึดให้แน่น
- ตรวจสอบให้แน่ใจว่ากริดที่ประกอบใหม่ของคุณปลอดภัยโดยเพิ่มเทปไฟฟ้าอีกสองสามชั้นหรือกาวอื่นๆ ที่ด้านหลัง
ตอนนี้คุณควรมีตารางการทำงานที่คุณสามารถทดสอบได้ ภายใต้ไลบรารี NeoPixel Matrix คุณสามารถใช้โค้ดตัวอย่าง matrixtest เพื่อดูว่ากริดทำงานตามที่คาดไว้หรือไม่ ถ้าใช่ก็ควรมีลักษณะเหมือนภาพด้านบน (ไม่ต้องสนใจ Arduino Uno ที่ด้านหน้าเพื่อทดสอบอย่างอื่น)
ขั้นตอนที่ 3: การเพิ่มเซ็นเซอร์
ลักษณะสำคัญของโครงการนี้คือเซ็นเซอร์ Adafruit MiCS5524 ซึ่งสามารถตรวจจับก๊าซที่แตกต่างกันในอากาศและส่งสัญญาณความเข้มของก๊าซผ่านอินพุตแบบอะนาล็อก
- ขั้นแรก ตรวจสอบให้แน่ใจว่าได้ต่อสายไฟสามสายที่นำไปสู่เซ็นเซอร์ - แรงดันไฟฟ้าเข้า เอาต์พุต และกราวด์ - ได้ต่อสายอย่างถูกต้อง (เลือกใช้ลวดสีที่เหมาะสมเพื่อช่วยในเรื่องนี้)
- เชื่อมต่อแรงดันไฟฟ้าเข้ากับเอาต์พุต 5V บนบอร์ด Arduino และเชื่อมต่อกราวด์กับกราวด์บนบอร์ด
- จากนั้นเชื่อมต่อเอาต์พุตกับ A0 (หรือพินอะนาล็อกที่คุณเลือก) บนบอร์ด Arduino นี่คือทั้งหมดที่จำเป็นในการเชื่อมต่อเซ็นเซอร์กับ Arduino
- หรือใช้จอภาพแบบอนุกรมเพื่อตรวจสอบว่าเซ็นเซอร์รายงานการอ่าน (ค่าที่อ่านได้ควรอยู่เหนือตัวเลขหนึ่งและเปลี่ยนแปลงเมื่อวางเซ็นเซอร์ไว้ใกล้กับแหล่งกำเนิดของคาร์บอนมอนอกไซด์หรือควันอื่นๆ)
ทางออนไลน์ มีคำแนะนำสำหรับการสอบเทียบเซ็นเซอร์นี้โดยเฉพาะ เพื่อให้มีความไวต่อการเปลี่ยนแปลงของสภาพแวดล้อม สิ่งที่เราทำคือปล่อยเซ็นเซอร์ไว้สองสามชั่วโมงเพื่อพิจารณาว่าช่วงการอ่าน "ปกติ" สำหรับห้องนั้นเป็นอย่างไร จากนั้นเพื่อทดสอบ "การกระตุ้น" ของจอแสดงผล เราใช้สำลีชุบแอลกอฮอล์เช็ดถูเพื่อที่ การอ่านค่าของเซ็นเซอร์จะพุ่งขึ้นเหนือขีดจำกัดที่ตั้งไว้เพื่อเริ่มต้นการวนซ้ำของกราฟิก
ขั้นตอนที่ 4: การดีบักโค้ด
สิ่งที่แนบมาคือรหัส สังเกตว่ามีส่วนหัวจำนวนมากรวมอยู่ด้านบน ในการดาวน์โหลดส่วนหัวที่จำเป็น ใน Arduino IDE ให้คลิก Sketch รวมไลบรารี แล้วจัดการไลบรารี ก่อนที่คุณจะสามารถอัปโหลดไฟล์ที่แนบมาได้ คุณจะต้องดาวน์โหลดไลบรารีต่อไปนี้:
- อดาฟรุต NeoPixel
- อดาฟรุต NeoMatrix
- ห้องสมุด Adafruit GFX
เมื่อคุณดาวน์โหลดไลบรารี่เหล่านี้แล้ว ใน Arduino IDE ภายใต้ file ตัวอย่าง คุณจะพบโค้ดตัวอย่างที่สามารถแก้ไขได้เพื่อทดสอบ ตัวอย่างเช่น strandtest และ matrixtest มีประโยชน์มากสำหรับการทดสอบตาราง NeoPixel ทางออนไลน์ ยังง่ายต่อการค้นหาตัวอย่างการทดสอบเซ็นเซอร์มลพิษทางอากาศ
ก่อนที่คุณจะสามารถอัปโหลดไฟล์และดูตารางการทำงาน ต่อไปนี้คือโค้ดบางบรรทัดที่สามารถแก้ไขได้:
#กำหนด PIN 6
#define SENSOR_PIN A0
ควรเปลี่ยนพิน 6 เป็นหมายเลขพินที่ต่อกับกริด NeoPixel กับ Arduino ด้วย
ควรเปลี่ยนพิน AO เป็นหมายเลขพินที่เซ็นเซอร์ติดอยู่กับ Arduino ด้วย
#กำหนด STOP 300
#define NUM_BALLS 8
Adafruit_NeoMatrix matrix = Adafruit_NeoMatrix(GRID_COLS, GRID_ROWS, PIN, NEO_MATRIX_TOP + NEO_MATRIX_LEFT + NEO_MATRIX_COLUMNS + NEO_MATRIX_ZIGZAG, NEO_GRB + NEO_KHZ800);
ตัวเลข 300 กำหนดจำนวนพิกเซลของปอดที่เสื่อมลงเพื่อนับเป็นหนึ่งรอบของการแสดงผล การเพิ่มจำนวนจะทำให้วัฏจักรยาวนานขึ้น (เช่น ปอดถูกทำลายมากขึ้น) และในทางกลับกัน
เลข 8 กำหนดจำนวน "บอล" (ท่อไอเสีย) ที่ออกมาจากรถ
ตอนนี้ หากคุณทำตามคำแนะนำเพื่อสร้างกริดอย่างถูกต้อง การกำหนดค่าของ NeoMatrix ควรใช้งานได้ อย่างไรก็ตาม เป็นเรื่องดีที่จะสังเกตว่าสิ่งที่การตั้งค่านี้พูดคือพิกัด 0, 0 อยู่ที่ด้านบนซ้าย เราเชื่อมต่อคอลัมน์ของแถบและแถบเชื่อมต่อในรูปแบบ S ดังนั้น หากกริดของคุณดูสมบูรณ์แบบ ยกเว้นว่ามีการทำมิเรอร์หรือ 90 องศา เป็นไปได้ว่าคุณตั้งค่ากริดแตกต่างออกไป และควรเปลี่ยนโค้ดที่นี่ เมื่อสิ้นสุดขั้นตอนนี้ คุณควรมีบางอย่างที่ดูเหมือนวิดีโอ เรากำลังทริกเกอร์เสื้อยืดด้วยสำลีชุบแอลกอฮอล์ถูกราฟิก กำลังเล่นหนึ่งวน และไม่สามารถเรียกซ้ำได้จนกว่าวนซ้ำ เสร็จสิ้น.
ขั้นตอนที่ 5: รวบรวมเสื้อยืด
เย้! เมื่อคุณมีจอแสดงผล เซ็นเซอร์ และโค้ดใช้งานได้แล้ว ก็ถึงเวลารวมทุกอย่างเข้าด้วยกัน ในท้ายที่สุด เราจะมีฮาร์ดแวร์ทั้งหมดติดอยู่กับเสื้อชั้นใน และเสื้อชั้นนอกที่ซ่อนทุกอย่างไว้ด้านบน เสื้อยืดมีขนาดใหญ่เกินไป เราจึงตัดแถบด้านล่างออก สิ่งนี้ทำให้เรามีผ้าที่เราต้องการเย็บกระเป๋าเพื่อซ่อนฮาร์ดแวร์
เสื้อชั้นใน:
- เริ่มต้นด้วยการวางแถบเทปไฟฟ้าที่ด้านหลังของตาราง NeoPixel เพียงเพื่อยึดให้แน่น (คุณจะรู้ว่าคุณไม่เป็นไรถ้าคุณสามารถพกพากริดไปเป็นชิ้นเดียวได้)
- ผ้ากาวตาราง NeoPixel ลงบนเสื้อยืดด้านใน ตรวจสอบให้แน่ใจว่ากริดอยู่ตรงกลางและตรงที่ปอดอยู่
- ปล่อยให้กาวแห้งตามความจำเป็น ตรวจสอบให้แน่ใจว่ากาวไม่ซึมไปที่ด้านหลังของเสื้อและปิดเสื้อให้สนิท เมื่อเปิดกริดแล้ว ให้ดูว่า Arduino, แบตเตอรี่ ฯลฯ สามารถวางได้ไกลแค่ไหน สำหรับเรา เราได้บัดกรีสายจัมเปอร์เพื่อให้ชิ้นส่วนอิเล็กทรอนิกส์ของเราอยู่ด้านหลังเสื้อ
- เย็บแถบผ้าเพื่อทำกระเป๋าขนาดเล็กสำหรับส่วนประกอบอิเล็กทรอนิกส์ คุณสามารถเย็บส่วนประกอบบางอย่างลงในกระเป๋า (เช่น Arduino) เพื่อให้ปลอดภัยยิ่งขึ้น
- ตัดช่องเล็กๆ เพื่อให้เซ็นเซอร์มองออกมา สำหรับเรา นี่คือตรงกลางปกเสื้อที่ด้านหลังเสื้อ
เสื้อตัวนอก: สาเหตุที่ใส่เสื้อตัวนอกเพราะใส่เสื้อตัวนอกจะดูดีกว่า เสื้อชั้นนอกจะซ่อนอุปกรณ์อิเล็กทรอนิกส์และกระจายแสงจาก NeoPixels
- ค่อยๆ วางเสื้อตัวนอกทับเสื้อตัวใน
- ติดผ้าหรือเย็บเสื้อชั้นในกับเสื้อชั้นนอกเพื่อให้เส้นกริดดูถูกสอนเมื่อติดไฟ (ในภาพ ขีดสีดำคือบริเวณที่ติดกาวผ้า)
ขั้นตอนที่ 6: การแก้ไขปัญหา
ยินดีด้วย! ตอนนี้คุณมีเสื้อยืดที่สวมใส่ได้ซึ่งจะสว่างขึ้นตามระดับมลพิษทางอากาศ หากไม่ แสดงว่าคุณอาจประสบปัญหา (เราพบอุปสรรคมากมาย) ดังนั้นนี่คือคำแนะนำในการแก้ปัญหาบางส่วน:
- แผ่นบัดกรีบนแถบ NeoPixel มีขนาดเล็กมาก จึงยากต่อการเชื่อมต่อกริดอย่างปลอดภัย เราใช้ตะกั่วบัดกรี ลวดไฟฟ้าหลายเส้น และติดกาวร้อนที่จุดต่อ
- เนื่องจาก NeoPixel อยู่ชิดกันบนแถบ เราสูญเสียอย่างน้อย 1 พิกเซลทุกครั้งที่เราตัดเส้น การใช้กรรไกรดีกว่าการใช้มีดที่แน่นอน เพียงแค่ลอกเม็ดพลาสติกแล้วตัดออก
- หากจอแสดงผล NeoPixel แสดงสีแปลก ๆ (เช่น สีซีดจางเป็นสีแดง เฉดสีแดงใด ๆ แทนที่จะเป็นสีขาว) อาจเป็นเพราะกริดไม่ได้รับพลังงานเพียงพอ ในการอัปโหลดโค้ด เราได้ถอดปลั๊กทุกอย่างแล้ว อัปโหลดโค้ด จากนั้นจึงถอดสายคอมพิวเตอร์ เสียบแบตเตอรี่กับ Arduino และสุดท้ายเสียบอะแดปเตอร์แล็ปท็อปเข้ากับกริด
- หากจอแสดงผล NeoPixel แสดงสีแบบสุ่มทั้งหมดในช่วงเวลาสุ่ม ตรวจสอบให้แน่ใจว่ากราวด์นั้นใช้ร่วมกัน
- เมื่อใช้กาวผ้า ตรวจสอบให้แน่ใจว่าคุณอย่าใช้มากเกินไปจนซึมผ่านและปิดเสื้อยืด เราวางแผ่นไม้ระหว่างผ้าสองชิ้นที่ไม่เช่นนั้นอาจสัมผัสได้
เราหวังว่าคุณจะสนุกกับคำแนะนำนี้! ขั้นตอนต่อไปคือการเชื่อมต่อโครงข่ายเข้ากับแบตเตอรี่แบบพกพาและนำไปหมุนตามท้องถนน ซึ่งมลภาวะในอากาศจากรถยนต์และสารมลพิษอื่นๆ จะกระตุ้นการแสดงผล
แนะนำ:
เกม Arduino จอแสดงผล LED แบบอินไลน์: 7 ขั้นตอน (พร้อมรูปภาพ)
เกม Arduino จอแสดงผล LED แบบอินไลน์: หรือที่รู้จักว่าระบบเกมแสดงบันได LED Attiny-85 ที่ติดตั้งฮาร์ดแวร์และซอฟต์แวร์เพื่อเล่นแอ็กชัน "วิดีโอ" เกมบนจอแสดงผล LED แบบอินไลน์ มีจอแสดงผลแลดเดอร์ LED 12 ดวงแบบมัลติเพล็กซ์ และรองรับอินพุตปุ่มสูงสุด 6 ปุ่มและออปติ
ต่อเนื่อง - จอแสดงผล LED Art แบบสโลว์โมชั่น: 22 ขั้นตอน (พร้อมรูปภาพ)
Continuum - จอแสดงผล LED Art แบบสโลว์โมชั่น: Continuum คือการแสดงผลงานศิลปะแบบไลท์อาร์ตที่เคลื่อนไหวอย่างต่อเนื่อง โดยมีตัวเลือกให้เคลื่อนที่อย่างรวดเร็ว ช้า หรือช้าอย่างเหลือเชื่อ ไฟ LED RGB ในจอแสดงผลได้รับการอัปเดต 240 ครั้งต่อวินาที โดยจะมีการคำนวณสีที่ไม่ซ้ำกันในแต่ละการอัปเดต สไลเดอร์ด้านข้าง
จอแสดงผล P10 DMD พร้อม Arduino และ RTC DS3231: 4 ขั้นตอน (พร้อมรูปภาพ)
จอแสดงผล P10 DMD พร้อม Arduino และ RTC DS3231: จอแสดงผล P10 เป็นอาร์เรย์ของ LED ดอทเมทริกซ์ P10 led เป็นที่รู้จักกันทั่วไปว่าเป็น Dot Matrix Display หรือ DMD display มันขึ้นอยู่กับการลงทะเบียนกะโดยทั่วไปจะใช้การลงทะเบียน 74595shift พวกเขาสามารถเรียงต่อกันด้วยกระดานที่คล้ายกันจำนวนมากขึ้น NS
จอแสดงผล Ferrofluid ที่ชวนให้หลงใหล: ควบคุมโดยแม่เหล็กไฟฟ้าอย่างเงียบ ๆ : 10 ขั้นตอน (พร้อมรูปภาพ)
การแสดง Ferrofluid ที่ชวนให้หลงใหล: ควบคุมโดยแม่เหล็กไฟฟ้าโดยไร้เสียง: ข้อจำกัดความรับผิดชอบ: คำแนะนำนี้ไม่ได้ให้แนวทางที่ตรงไปตรงมาในการสร้างจอแสดงผลเฟอร์โรฟลูอิดขนาดใหญ่เช่น "ดึงข้อมูล" ของเรา โปรเจ็กต์นั้นใหญ่และแพงมากจนใครก็ตามที่ต้องการสร้างบางสิ่งที่คล้ายคลึงกันจะมีความแตกต่าง
จอแสดงผล RGB 7 ฟุต 7 ส่วนพร้อมแอพ BT: 22 ขั้นตอน (พร้อมรูปภาพ)
จอแสดงผล RGB 7 ฟุต 7 ส่วนพร้อมแอพ BT: นี่เป็นความฝันระยะยาวของฉันที่จะสร้างนาฬิกาขนาด 6 ฟุต (แต่นี่คือจอแสดงผล 7 ฟุต) แต่สำหรับมันเป็นแค่ความฝันเท่านั้น นี่เป็นขั้นตอนแรกในการสร้างตัวเลขแรก แต่ในขณะที่ทำงาน ฉันรู้สึกว่าไม่มีเครื่องจักรอย่างเช่น เครื่องตัดเลเซอร์ มันยากมากที่จะทำเ