สารบัญ:

EqualAir: จอแสดงผล NeoPixel ที่สวมใส่ได้ซึ่งกระตุ้นโดยเซ็นเซอร์มลพิษทางอากาศ: 7 ขั้นตอน (พร้อมรูปภาพ)
EqualAir: จอแสดงผล NeoPixel ที่สวมใส่ได้ซึ่งกระตุ้นโดยเซ็นเซอร์มลพิษทางอากาศ: 7 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: EqualAir: จอแสดงผล NeoPixel ที่สวมใส่ได้ซึ่งกระตุ้นโดยเซ็นเซอร์มลพิษทางอากาศ: 7 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: EqualAir: จอแสดงผล NeoPixel ที่สวมใส่ได้ซึ่งกระตุ้นโดยเซ็นเซอร์มลพิษทางอากาศ: 7 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: Pixel Dust on RGB Matrix displays 2024, มิถุนายน
Anonim
Image
Image

เป้าหมายของโครงการคือการผลิตเสื้อยืดที่สวมใส่ได้ซึ่งแสดงกราฟิกที่ชวนให้นึกถึงเมื่อมลพิษทางอากาศอยู่เหนือเกณฑ์ที่กำหนด กราฟิกได้รับแรงบันดาลใจจากเกมคลาสสิก "เบรกเกอร์อิฐ" โดยที่รถเป็นเหมือนไม้พายที่คายไอเสีย (ซึ่งเหมือนกับลูกบอล) ที่ "ตี" ชิ้นส่วนของปอดและทำให้เสื่อมคุณภาพ เมื่อมลพิษทางอากาศอยู่เหนือธรณีประตู (เช่น เมื่อเดินทางโดยรถยนต์) เสื้อยืดสีขาวที่ไม่เป็นอันตรายจะเริ่มเล่นบนหน้าจอ โครงการนี้สร้างโดย 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:

  1. ตัดแถบ NeoPixel ที่ยาว 1 เมตร (144 NeoPixel) โดยเพิ่มขึ้นทีละ 47 NeoPixel ระวังให้ห้องบางส่วนบัดกรีที่ขอบของแถบ (มีสายโลหะขนาดเล็กที่มองเห็นได้ที่ด้านล่างของ NeoPixels) ตรวจสอบให้แน่ใจว่าได้ตัดโดยที่แผ่นบัดกรีทั้งหมดถูกเปิดออก (เพราะมันมีขนาดเล็กมากสำหรับการเริ่มต้น) เหตุผลที่แถบยาว 47 พิกเซลแทนที่จะเป็น (144/3 = 48) พิกเซลคือคุณจะสูญเสียอย่างน้อยหนึ่งพิกเซลจากการตัดเนื่องจาก NeoPixel อยู่ใกล้กันมาก
  2. จัดวางเสาอย่างระมัดระวัง (เลือกใช้เทปพันสายไฟเพื่อยึดเข้าที่) และตรวจดูให้แน่ใจว่าได้ขนาดตามต้องการ (47x16) จัดวางคอลัมน์ในรูปแบบ S
  3. NeoPixels มีสายสำหรับแรงดันไฟฟ้าขาเข้า อินพุต และกราวด์ที่ควรเชื่อมต่อกับคู่หูในแถบถัดไป ใช้ลวดแบบหลายเส้น ต่อสายนำของคอลัมน์เข้าด้วยกันในรูปแบบ S ระวังที่จะเชื่อมต่อสายนำที่ถูกต้อง
  4. ทิ้งลีดไว้ที่ส่วนท้ายของกริด (ควรมี 2 ปลาย - อันหนึ่งที่คุณเริ่มต้นและอีกอันที่คุณสิ้นสุดรูปแบบ S) และเพิ่มการต่อสายไฟเพื่อความสะดวก คุณยังเลือกปิดเทปหรือยึดสายในตอนท้ายได้ด้วย ติดกาวร้อนบนจุดเชื่อมต่อเพื่อยึดให้แน่น
  5. ตรวจสอบให้แน่ใจว่ากริดที่ประกอบใหม่ของคุณปลอดภัยโดยเพิ่มเทปไฟฟ้าอีกสองสามชั้นหรือกาวอื่นๆ ที่ด้านหลัง

ตอนนี้คุณควรมีตารางการทำงานที่คุณสามารถทดสอบได้ ภายใต้ไลบรารี NeoPixel Matrix คุณสามารถใช้โค้ดตัวอย่าง matrixtest เพื่อดูว่ากริดทำงานตามที่คาดไว้หรือไม่ ถ้าใช่ก็ควรมีลักษณะเหมือนภาพด้านบน (ไม่ต้องสนใจ Arduino Uno ที่ด้านหน้าเพื่อทดสอบอย่างอื่น)

ขั้นตอนที่ 3: การเพิ่มเซ็นเซอร์

ลักษณะสำคัญของโครงการนี้คือเซ็นเซอร์ Adafruit MiCS5524 ซึ่งสามารถตรวจจับก๊าซที่แตกต่างกันในอากาศและส่งสัญญาณความเข้มของก๊าซผ่านอินพุตแบบอะนาล็อก

  1. ขั้นแรก ตรวจสอบให้แน่ใจว่าได้ต่อสายไฟสามสายที่นำไปสู่เซ็นเซอร์ - แรงดันไฟฟ้าเข้า เอาต์พุต และกราวด์ - ได้ต่อสายอย่างถูกต้อง (เลือกใช้ลวดสีที่เหมาะสมเพื่อช่วยในเรื่องนี้)
  2. เชื่อมต่อแรงดันไฟฟ้าเข้ากับเอาต์พุต 5V บนบอร์ด Arduino และเชื่อมต่อกราวด์กับกราวด์บนบอร์ด
  3. จากนั้นเชื่อมต่อเอาต์พุตกับ A0 (หรือพินอะนาล็อกที่คุณเลือก) บนบอร์ด Arduino นี่คือทั้งหมดที่จำเป็นในการเชื่อมต่อเซ็นเซอร์กับ Arduino
  4. หรือใช้จอภาพแบบอนุกรมเพื่อตรวจสอบว่าเซ็นเซอร์รายงานการอ่าน (ค่าที่อ่านได้ควรอยู่เหนือตัวเลขหนึ่งและเปลี่ยนแปลงเมื่อวางเซ็นเซอร์ไว้ใกล้กับแหล่งกำเนิดของคาร์บอนมอนอกไซด์หรือควันอื่นๆ)

ทางออนไลน์ มีคำแนะนำสำหรับการสอบเทียบเซ็นเซอร์นี้โดยเฉพาะ เพื่อให้มีความไวต่อการเปลี่ยนแปลงของสภาพแวดล้อม สิ่งที่เราทำคือปล่อยเซ็นเซอร์ไว้สองสามชั่วโมงเพื่อพิจารณาว่าช่วงการอ่าน "ปกติ" สำหรับห้องนั้นเป็นอย่างไร จากนั้นเพื่อทดสอบ "การกระตุ้น" ของจอแสดงผล เราใช้สำลีชุบแอลกอฮอล์เช็ดถูเพื่อที่ การอ่านค่าของเซ็นเซอร์จะพุ่งขึ้นเหนือขีดจำกัดที่ตั้งไว้เพื่อเริ่มต้นการวนซ้ำของกราฟิก

ขั้นตอนที่ 4: การดีบักโค้ด

Image
Image

สิ่งที่แนบมาคือรหัส สังเกตว่ามีส่วนหัวจำนวนมากรวมอยู่ด้านบน ในการดาวน์โหลดส่วนหัวที่จำเป็น ใน 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: รวบรวมเสื้อยืด

เย้! เมื่อคุณมีจอแสดงผล เซ็นเซอร์ และโค้ดใช้งานได้แล้ว ก็ถึงเวลารวมทุกอย่างเข้าด้วยกัน ในท้ายที่สุด เราจะมีฮาร์ดแวร์ทั้งหมดติดอยู่กับเสื้อชั้นใน และเสื้อชั้นนอกที่ซ่อนทุกอย่างไว้ด้านบน เสื้อยืดมีขนาดใหญ่เกินไป เราจึงตัดแถบด้านล่างออก สิ่งนี้ทำให้เรามีผ้าที่เราต้องการเย็บกระเป๋าเพื่อซ่อนฮาร์ดแวร์

เสื้อชั้นใน:

  1. เริ่มต้นด้วยการวางแถบเทปไฟฟ้าที่ด้านหลังของตาราง NeoPixel เพียงเพื่อยึดให้แน่น (คุณจะรู้ว่าคุณไม่เป็นไรถ้าคุณสามารถพกพากริดไปเป็นชิ้นเดียวได้)
  2. ผ้ากาวตาราง NeoPixel ลงบนเสื้อยืดด้านใน ตรวจสอบให้แน่ใจว่ากริดอยู่ตรงกลางและตรงที่ปอดอยู่
  3. ปล่อยให้กาวแห้งตามความจำเป็น ตรวจสอบให้แน่ใจว่ากาวไม่ซึมไปที่ด้านหลังของเสื้อและปิดเสื้อให้สนิท เมื่อเปิดกริดแล้ว ให้ดูว่า Arduino, แบตเตอรี่ ฯลฯ สามารถวางได้ไกลแค่ไหน สำหรับเรา เราได้บัดกรีสายจัมเปอร์เพื่อให้ชิ้นส่วนอิเล็กทรอนิกส์ของเราอยู่ด้านหลังเสื้อ
  4. เย็บแถบผ้าเพื่อทำกระเป๋าขนาดเล็กสำหรับส่วนประกอบอิเล็กทรอนิกส์ คุณสามารถเย็บส่วนประกอบบางอย่างลงในกระเป๋า (เช่น Arduino) เพื่อให้ปลอดภัยยิ่งขึ้น
  5. ตัดช่องเล็กๆ เพื่อให้เซ็นเซอร์มองออกมา สำหรับเรา นี่คือตรงกลางปกเสื้อที่ด้านหลังเสื้อ

เสื้อตัวนอก: สาเหตุที่ใส่เสื้อตัวนอกเพราะใส่เสื้อตัวนอกจะดูดีกว่า เสื้อชั้นนอกจะซ่อนอุปกรณ์อิเล็กทรอนิกส์และกระจายแสงจาก NeoPixels

  1. ค่อยๆ วางเสื้อตัวนอกทับเสื้อตัวใน
  2. ติดผ้าหรือเย็บเสื้อชั้นในกับเสื้อชั้นนอกเพื่อให้เส้นกริดดูถูกสอนเมื่อติดไฟ (ในภาพ ขีดสีดำคือบริเวณที่ติดกาวผ้า)

ขั้นตอนที่ 6: การแก้ไขปัญหา

ยินดีด้วย! ตอนนี้คุณมีเสื้อยืดที่สวมใส่ได้ซึ่งจะสว่างขึ้นตามระดับมลพิษทางอากาศ หากไม่ แสดงว่าคุณอาจประสบปัญหา (เราพบอุปสรรคมากมาย) ดังนั้นนี่คือคำแนะนำในการแก้ปัญหาบางส่วน:

  • แผ่นบัดกรีบนแถบ NeoPixel มีขนาดเล็กมาก จึงยากต่อการเชื่อมต่อกริดอย่างปลอดภัย เราใช้ตะกั่วบัดกรี ลวดไฟฟ้าหลายเส้น และติดกาวร้อนที่จุดต่อ
  • เนื่องจาก NeoPixel อยู่ชิดกันบนแถบ เราสูญเสียอย่างน้อย 1 พิกเซลทุกครั้งที่เราตัดเส้น การใช้กรรไกรดีกว่าการใช้มีดที่แน่นอน เพียงแค่ลอกเม็ดพลาสติกแล้วตัดออก
  • หากจอแสดงผล NeoPixel แสดงสีแปลก ๆ (เช่น สีซีดจางเป็นสีแดง เฉดสีแดงใด ๆ แทนที่จะเป็นสีขาว) อาจเป็นเพราะกริดไม่ได้รับพลังงานเพียงพอ ในการอัปโหลดโค้ด เราได้ถอดปลั๊กทุกอย่างแล้ว อัปโหลดโค้ด จากนั้นจึงถอดสายคอมพิวเตอร์ เสียบแบตเตอรี่กับ Arduino และสุดท้ายเสียบอะแดปเตอร์แล็ปท็อปเข้ากับกริด
  • หากจอแสดงผล NeoPixel แสดงสีแบบสุ่มทั้งหมดในช่วงเวลาสุ่ม ตรวจสอบให้แน่ใจว่ากราวด์นั้นใช้ร่วมกัน
  • เมื่อใช้กาวผ้า ตรวจสอบให้แน่ใจว่าคุณอย่าใช้มากเกินไปจนซึมผ่านและปิดเสื้อยืด เราวางแผ่นไม้ระหว่างผ้าสองชิ้นที่ไม่เช่นนั้นอาจสัมผัสได้

เราหวังว่าคุณจะสนุกกับคำแนะนำนี้! ขั้นตอนต่อไปคือการเชื่อมต่อโครงข่ายเข้ากับแบตเตอรี่แบบพกพาและนำไปหมุนตามท้องถนน ซึ่งมลภาวะในอากาศจากรถยนต์และสารมลพิษอื่นๆ จะกระตุ้นการแสดงผล

แนะนำ: