สารบัญ:

Skype for Business Status WS2812 RGB LED Desk Underglow: 6 ขั้นตอน
Skype for Business Status WS2812 RGB LED Desk Underglow: 6 ขั้นตอน

วีดีโอ: Skype for Business Status WS2812 RGB LED Desk Underglow: 6 ขั้นตอน

วีดีโอ: Skype for Business Status WS2812 RGB LED Desk Underglow: 6 ขั้นตอน
วีดีโอ: Stair light controller ie 2024, กรกฎาคม
Anonim
Skype for Business สถานะ WS2812 RGB LED Desk Underglow
Skype for Business สถานะ WS2812 RGB LED Desk Underglow
Skype for Business สถานะ WS2812 RGB LED Desk Underglow
Skype for Business สถานะ WS2812 RGB LED Desk Underglow
Skype for Business สถานะ WS2812 RGB LED Desk Underglow
Skype for Business สถานะ WS2812 RGB LED Desk Underglow
Skype for Business สถานะ WS2812 RGB LED Desk Underglow
Skype for Business สถานะ WS2812 RGB LED Desk Underglow

ฉันไม่ใช่คนแรกที่ทำการเปลี่ยนสีแสงตามสถานะของบัญชี Skype for Business ของคุณ แต่ฉันคิดว่าฉันเป็นคนแรกที่เขียนบทช่วยสอนโดยใช้แถบ LED WS2812 ที่สามารถระบุตำแหน่งได้ ฉันชอบไฟเหล่านี้มากกว่าเพราะว่าด้วยฮาร์ดแวร์เพียงเล็กน้อย (แถบไฟ กำลังไฟ/ข้อมูล/กราวด์) คุณสามารถมีไฟ LED จำนวนมากได้ คุณไม่จำเป็นต้องบัดกรีตัวต้านทาน ทรานซิสเตอร์กำลัง หรือแม้แต่สายไฟแยกสำหรับสีแดง/เขียว/น้ำเงิน พวกเขาสามารถทำได้มากกว่าการแสดงสีคงที่เดียวที่ใช้ในโครงการนี้

ขอแสดงความชื่นชมอย่างมากต่อ Hackster สำหรับบทช่วยสอนและโค้ดที่ฉันใช้เป็นพื้นฐานของฉัน - ลองดูสิ พวกเขาน่าจะเขียนได้ดีกว่าฉัน: https://www.hackster.io/matheus-fenner/skype-statu …

โครงการ github ของพวกเขา:

โดยทั่วไปฉันใช้โครงการของพวกเขาและเพิ่มคุณสมบัติเพิ่มเติม มีคำแนะนำอื่นที่นี่ที่ใช้โปรแกรมตรวจสอบที่แตกต่างกันและมีฟังก์ชันแสงจาง ๆ ฉันคิดว่าแอนิเมชั่นดูดี แต่ตัดสินใจว่าสำหรับโต๊ะที่มีแสงน้อยเหมือนของฉัน แสงที่จางลงจะทำให้ทุกคนในสำนักงานเสียสมาธิมากเกินไป

ขั้นตอนที่ 1: วัสดุและเครื่องมือ

วัสดุและเครื่องมือ
วัสดุและเครื่องมือ
วัสดุและเครื่องมือ
วัสดุและเครื่องมือ
วัสดุและเครื่องมือ
วัสดุและเครื่องมือ

ซอฟต์แวร์

  • ดาวน์โหลด Arduino Sketch และ.exe ล่าสุดบน github ของฉัน:
  • คุณจะต้องใช้ Arduino IDE เพื่ออัปโหลดไปยังไมโครคอนโทรลเลอร์ของคุณ
  • หากคุณต้องการแก้ไขโครงการด้วยตัวเอง คุณจะต้องมี Visual Studio

ฮาร์ดแวร์

  • WS2812B แถบ LED - สามารถใช้ชื่อ WS2811/WS2812/WS2812B - เหมือนกันหมด เพียงใส่ใจกับแรงดันไฟฟ้าของแถบ (หรือพิกเซล) [การค้นหา eBay] [การค้นหา Amazon]
  • แม่แรง DC แบบบาร์เรล (ตัวเมีย) พร้อมขั้วสกรู - ไฟต้องการพลังงานมากกว่า USB 2.0 หรือ Arduino Uno สามารถจ่ายไฟได้ ดังนั้นฉันจึงจ่ายไฟให้กับแหล่งจ่ายไฟ 12V สำรอง แม่แรงแบบลำกล้องเหล่านี้เป็นวิธีที่ยอดเยี่ยมในการเชื่อมต่อกับแหล่งจ่ายไฟ DC โดยไม่ต้องตัดแหล่งจ่ายใดๆ ที่จำเป็น [อีเบย์]
  • แหล่งจ่ายไฟ 12V อย่างน้อย 1A ควรใช้ 2A-5A LED เหล่านี้สามารถดึงกระแสไฟได้มากที่ความสว่างเต็มที่ เครื่องคิดเลขออนไลน์ส่วนใหญ่จะบอกว่าคุณต้องการแหล่งจ่ายไฟอย่างน้อย 3.3A สำหรับทุก ๆ 1 เมตรของแถบ 60led/m ซึ่งค่อนข้างรุนแรง แต่ใช้แหล่งจ่ายไฟแยกทางเดียวหรือ อื่น. หรือแหล่งจ่ายไฟ 5V หากคุณใช้แถบ LED 5V
  • สายเชื่อมต่อ - ฉันใช้สายแข็ง 22AWG [eBay] ฉันแนะนำ Remmington Industries
  • Arduino Uno (หรือไมโครคอนโทรลเลอร์อื่น ๆ ที่ไลบรารี FastLED ใช้งานได้)
  • แม่เหล็ก - สำหรับติดไว้ใต้โต๊ะ หากโต๊ะทำงานของคุณไม่ใช่โลหะ คุณควรใช้ Velcro

เครื่องมือ

  • ปืนกาวร้อน
  • หัวแร้ง
  • คีมปอกสายไฟ
  • พีซีที่ใช้ Windows
  • มีด XActo หรือเครื่องตัดกล่องเพื่อตัดกระดาษแข็ง / แผ่นโฟมของคุณให้มีขนาด
  • เจ้านายที่ไม่หวาดระแวงเกี่ยวกับเรื่องบังเอิญที่แอบดูคุณ

ขั้นตอนที่ 2: ข้อมูลพื้นหลัง WS2811/WS2812/b

ข้อมูลพื้นหลัง WS2811/WS2812/b
ข้อมูลพื้นหลัง WS2811/WS2812/b
ข้อมูลพื้นหลัง WS2811/WS2812/b
ข้อมูลพื้นหลัง WS2811/WS2812/b

WS2811 เป็นชื่อของแถบ LED ที่สามารถระบุตำแหน่งได้ราคาถูกและทั่วไป ไฟแต่ละดวงบนแถบนั้นเป็น LED RGB และคุณสามารถควบคุมสีของแต่ละดวงแยกกันได้ จริง ๆ แล้ว WS2811 ไม่ใช่ LED แต่เป็นชิปวงจรรวมที่ใช้โปรโตคอลข้อมูลบางอย่าง [เอกสารข้อมูล] ชิป WS2811 ทุกตัวจะช่วยเพิ่มสัญญาณข้อมูลจนถึงระดับแรงดันไฟที่ใช้งาน คุณจึงไม่ต้องกังวลว่าสัญญาณจะลดลง คุณสามารถขับมากกว่า 1,000 LEDS ที่ 20fps ด้วยโปรโตคอล WS2811

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

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

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

หมายเหตุ - คำศัพท์ WS2811/WS2812/WS2812b ใช้แทนกันได้ทั้งหมด ตามหน้านี้ WS2811 คือ IC ไดรเวอร์ LED และ WS2812 คือ WS2811 ที่วางอยู่ภายในแพ็คเกจ LED 5050 โดยทั่วไปแล้ว WS2811 คือ 12V และสามารถระบุตำแหน่งได้ทุกๆ 3 LED เท่านั้น WS2812 คือ 5V และสามารถระบุตำแหน่ง LED ทุกดวงได้

ขั้นตอนที่ 3: แผนภาพการเดินสายไฟและการประกอบฮาร์ดแวร์

แผนภาพการเดินสายไฟและการประกอบฮาร์ดแวร์
แผนภาพการเดินสายไฟและการประกอบฮาร์ดแวร์
แผนภาพการเดินสายไฟและการประกอบฮาร์ดแวร์
แผนภาพการเดินสายไฟและการประกอบฮาร์ดแวร์
แผนภาพการเดินสายไฟและการประกอบฮาร์ดแวร์
แผนภาพการเดินสายไฟและการประกอบฮาร์ดแวร์
แผนภาพการเดินสายไฟและการประกอบฮาร์ดแวร์
แผนภาพการเดินสายไฟและการประกอบฮาร์ดแวร์

เพียงผูกสายดินไว้ด้วยกันระหว่าง ARDUINO และแหล่งจ่ายไฟ DC ของคุณ อย่าผูก +5V หรือ +12V เข้าด้วยกัน จากไมโครคอนโทรลเลอร์ไปยังแถบ LED ควรมีสายไฟเพียงสองเส้นเท่านั้น: Data และ Gnd

ขั้นแรกให้ตัดกระดาษแข็งหรือแผ่นโฟมเพื่อติดแถบไฟ การติดตั้งแถบเมื่อบัดกรีแถบนั้นง่ายกว่าการใช้มือที่สามเพื่อยึดแถบในอากาศ

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

ฉันใช้ตัวเชื่อมต่อ JST แบบ 3 พินที่ปลายแต่ละด้านของแถบเพื่อให้ทุกอย่างเป็นแบบแยกส่วน แต่คุณสามารถประสานทุกอย่างเข้าที่

ดูบนแถบและควรมีลูกศรทุกสองสามไฟหรือแต่ละด้านจะมีป้ายกำกับ "DO" หรือ "DI" - DI คือข้อมูลเข้า DO คือข้อมูลออก คุณต้องต่อสาย [Arduino][DI]----LED ----[DO][DI]------LED -----[DO][DI] เป็นต้น โดยทั่วไปแล้วสายข้อมูลจาก Arduino ไปที่พิน DI หากมีลูกศร ตรวจสอบให้แน่ใจว่าข้อมูลของคุณ "ไหล" ไปในทิศทางของลูกศร

โดยส่วนตัวแล้วฉันพบว่าการประสานกำลังและกราวด์ไปที่กึ่งกลางของแถบนั้นง่ายกว่าแทนที่จะใช้พินอินพุต - ไม่สำคัญว่าคุณจะวางไว้ที่ไหนเพราะ +/- ทั้งหมดเชื่อมต่อกันเป็นรางขนาดใหญ่ คุณจะเห็นในภาพหนึ่งว่าสำหรับการเปลี่ยนจากแถบ LED หนึ่งไปยังอีกแถบหนึ่ง ฉันเพียงบัดกรีตัวเชื่อมต่อสำหรับสายดาต้า - ใช้งานได้เพราะฉันให้ +12V และ Gnd ทั้งสองแถบ ไม่ทางใดก็ทางหนึ่ง คุณต้องใช้สายกราวด์ทั้งหมดเพื่อผูกเข้าด้วยกันตลอดทั้งโครงการ

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

ขั้นตอนที่ 4: การเขียนโปรแกรม Arduino

การเขียนโปรแกรม Arduino
การเขียนโปรแกรม Arduino

เท่าที่โปรแกรม Arduino ดำเนินไป ฉันคิดว่าอันนี้ค่อนข้างตรงไปตรงมา มันตรวจสอบพอร์ตอนุกรมและเมื่อมีข้อมูลใหม่จะอ่านค่าจำนวนเต็มแล้วเขียน RGB นั้นไปที่ไฟ

คุณจะต้องใช้ไลบรารี FastLED เพื่อคอมไพล์โค้ด คุณสามารถดาวน์โหลดได้จากตัวจัดการไลบรารีของ Arduino IDE หรือจากเว็บไซต์ FastLED:

สิ่งเดียวที่คุณต้องเปลี่ยนคือ PIN และ NUM_LEDS ที่จุดเริ่มต้นของโปรแกรม PIN คือพินดิจิทัลที่คุณเสียบสายดาต้าของไฟ - ฉันใช้พิน 11 NUM_LEDS คือจำนวนไฟ LED ที่กำหนดแอดเดรสได้หรือกลุ่มของไฟ LED ที่มีอยู่ แถบ 12V ของฉันสามารถระบุไฟได้ทุกๆ 3 ดวงเท่านั้น ดังนั้นแม้ว่าจะมี LED แยกกันประมาณ 75 ดวงบนแถบนั้น แต่โค้ด Arduino จะระบุไฟได้เพียง 26 ดวงเท่านั้น (ถ้าผมบอกว่า "เปิด LED 2" ไฟเล็กๆ 3 ดวงจะติดขึ้น)

เพียงเปลี่ยน PIN และ NUM_LEDS เพื่อให้ตรงกับการเดินสายของคุณและอัปโหลดรหัสไปยังตัวควบคุม จากนั้นเรียกใช้ LyncPresenceBridge.exe ตามรายละเอียดในขั้นตอนต่อไป…

ขั้นตอนที่ 5: การติดตั้งและใช้งานซอฟต์แวร์พีซี

การติดตั้งและใช้งานซอฟต์แวร์พีซี
การติดตั้งและใช้งานซอฟต์แวร์พีซี

ดาวน์โหลดจากที่นี่:

ที่จริงแล้วคุณไม่จำเป็นต้องติดตั้งอะไรเลย เพียงเรียกใช้ LyncPresenceBridge.exe มันจะใส่ไอคอนในถาดของคุณ (มุมขวาล่างของหน้าจอ) ที่ดูเหมือนแฟลชไดรฟ์ USB พร้อมไฟที่ด้านล่าง

คลิกขวาที่ไอคอนและเลือก "การตั้งค่า" และตั้งค่าพอร์ตอนุกรมเป็นพอร์ตใดก็ตามที่ Arduino ของคุณเชื่อมต่ออยู่ วิธีที่ง่ายที่สุดในการค้นหาคือเปิด Arduino IDE และไปที่เครื่องมือ > พอร์ต > และดูว่าพอร์ตใดอยู่ในรายการ อีกวิธีในการค้นหาคือการเปิด Device Manager และขยายส่วน "พอร์ต (COM & LPT)" และดูว่ามีอะไรบ้าง Mine แสดงเพียงอันเดียว แต่ถ้ามีหลายอันให้ลองใช้ทั้งหมดจนกว่าคุณจะได้อันที่ใช้งานได้กับซอฟต์แวร์

ใช้

โปรแกรมจะตรวจสอบสถานะ Skype ของคุณและเมื่อเปลี่ยนสถานะจะเขียนชุดค่า RGB ออกจากพอร์ตอนุกรม คุณจึงเปลี่ยนสถานะจาก "ว่าง" เป็น "ไม่ว่าง" ได้ และไฟควรเปลี่ยนจากสีเขียวเป็นสีแดง

คุณสามารถคลิกขวาที่ไอคอนและเลือกการตั้งค่าเพื่อตั้งค่าไฟ เช่น Available, Busy, Away และ Off สิ่งนี้มีประโยชน์หากคุณเบื่อกับไฟเขียว/แดง หรือต้องการปิดไฟโดยสิ้นเชิง

ดับเบิลคลิกที่ไอคอนเพื่อเปิด Color Picker ซึ่งคุณสามารถตั้งค่าสีของไฟให้เป็นสีที่กำหนดเองได้ เช่น สีม่วงหรือสีชมพู คุณยังสามารถเข้าถึงสิ่งนี้ได้จากเมนูคลิกขวา

เมนูการตั้งค่ายังสามารถใช้เพื่อเปลี่ยนความสว่างของไฟและความเร็วของแอนิเมชั่น

ขั้นตอนที่ 6: การปรับเปลี่ยนซอฟต์แวร์

การปรับเปลี่ยนซอฟต์แวร์
การปรับเปลี่ยนซอฟต์แวร์

คุณสามารถเปลี่ยนสีสำหรับแต่ละสถานะได้โดยการแก้ไขไฟล์โซลูชันใน visual studio

ดาวน์โหลดทุกอย่างจากหน้า Github ของฉันและเปิดไฟล์.sln ใน Visual Studio (รุ่นชุมชนใช้งานได้) จากที่นั่น คุณสามารถแก้ไขสีที่จะแสดงผลสำหรับแต่ละสถานะ เพิ่ม/ลบรายการในเมนูบริบท และอื่นๆ อีกมากมาย

รูปภาพที่ใช้เป็นไอคอนจะอยู่ใน Resources.resx ภายใต้คุณสมบัติ LyncPresenceBridge

หากคุณกำลังแก้ไขหลายอย่าง ฉันแนะนำให้ไปที่ Properties, Settings.settings และเปลี่ยนพอร์ตอนุกรมเริ่มต้นเป็นพอร์ตที่คอนโทรลเลอร์ของคุณเชื่อมต่ออยู่ ทุกครั้งที่คุณสร้างโซลูชัน ระบบจะรีเซ็ตพอร์ตเริ่มต้นเป็นพอร์ตเริ่มต้น และพอร์ตเก่าจะต้องเปลี่ยนการตั้งค่าในแต่ละครั้ง

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

แนะนำ: