สารบัญ:

Pumpkin Pi Digital Decoration Controller: 5 ขั้นตอน (พร้อมรูปภาพ)
Pumpkin Pi Digital Decoration Controller: 5 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Pumpkin Pi Digital Decoration Controller: 5 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Pumpkin Pi Digital Decoration Controller: 5 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: Paint a Pumpkin for Halloween - Digital Pumpkin Carving Challenge 2024, พฤศจิกายน
Anonim
Pumpkin Pi Digital Decoration Controller
Pumpkin Pi Digital Decoration Controller
Pumpkin Pi Digital Decoration Controller
Pumpkin Pi Digital Decoration Controller

สวัสดีทุกคน ขอแนะนำให้รู้จักกับ Pumpkin Pi พูดง่ายๆ ว่ามันคือตัวควบคุม I/O สำหรับ Raspberry Pi ที่มีเอาต์พุตที่ตั้งโปรแกรมได้สิบสองเอาต์พุต แต่ด้วย hocus-pocus เล็กน้อย (หรือโค้ด Python สำหรับคุณและฉัน) มันจะกลายเป็นตัวควบคุมการตกแต่งดิจิทัลที่มีเอาต์พุตวิดีโอสองรายการพร้อมเสียงและแสง FX ซิงค์กับวิดีโอ

BackgroundLast Halloween ฉันตัดสินใจสร้างการแสดงหน้าต่างธีม Witching เมื่อเร็วๆ นี้ค้นพบการตกแต่งดิจิทัลของ AtmosFX ฉันรู้สึกว่าได้รับแรงบันดาลใจที่จะใช้ประโยชน์จากสิ่งเหล่านี้ให้เป็นประโยชน์และรวมไว้ในจอแสดงผลของฉัน

ฉันต้องการวิธีเล่นเพลย์ลิสต์วิดีโอสองรายการสลับกันบนจอแสดงผลสองจอ (ทีวีและโปรเจ็กเตอร์) โดยที่วิดีโอไม่ทับซ้อนกันโดยไม่ได้ตั้งใจ ฉันยังต้องการรวมแสง FX เพื่อเพิ่มบรรยากาศ

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

  • ควบคุม LED แต่ละดวงสูงสุด 12x (หรือแถบ RGB 4x) ผ่านเอาต์พุตที่ตั้งโปรแกรมได้ 12x
  • ทำงานที่ 12v ผ่านแหล่งจ่ายไฟภายนอกของตัวเอง
  • อาร์เรย์ทรานซิสเตอร์ NPN แบบ Quad 3x เพื่อรองรับกระแสเอาต์พุต 1 แอมป์ต่อการเชื่อมต่อ
  • รวมตัวเลือกของ PIR / เซ็นเซอร์ตรวจจับความเคลื่อนไหวที่เรียกใช้การเล่นและการกระทำ
  • การเล่นวิดีโอและเสียงโดยใช้ความสามารถด้านวิดีโอของ Raspberry Pi
  • สามารถเล่นวิดีโอสองรายการพร้อมกันหรือสลับกันได้ด้วยการเชื่อมโยง Pis ทั้งสองผ่าน GPIO เพื่อกระตุ้นการทำงานที่ตั้งโปรแกรมได้และป้องกันไม่ให้วิดีโอทับซ้อนกัน
  • ซิงค์แสง FX กับการเล่นวิดีโอ
  • ไฟ LED ในตัวเพื่อระบุสถานะเอาต์พุตแต่ละรายการ

การใช้งานทางเลือก คุณยังสามารถใช้ Pumpkin Pi เป็นบอร์ดฝ่าวงล้อมด้วย Raspberry Pi ตัวเดียวและยังคงมีเอาต์พุตที่ตั้งโปรแกรมได้ 12x เพื่อควบคุม LED, มอเตอร์, รีเลย์ ฯลฯ

หมายเหตุ: ต้องการดูว่าฉันใช้ Pumpkin Pi ในการแสดงฮัลโลวีนอย่างไร ตรวจสอบการแสดง Witching Hour Halloween Display ของฉัน

ขั้นตอนที่ 1: สิ่งที่คุณต้องการ

สิ่งที่คุณต้องการ
สิ่งที่คุณต้องการ

ในการสร้าง Pumpkin Pi ขึ้นมาใหม่ คุณจะต้องใช้เครื่องมือและส่วนประกอบต่อไปนี้:

เครื่องมือ

  • หัวแร้ง
  • มัลติมิเตอร์
  • เครื่องตัดลวด
  • ไขควง (ฉันใช้ใบมีดแบนขนาดเล็กกับขั้วต่อเทอร์มินัล)
  • ดอกสว่านและดอกสว่าน (ฉันใช้ดอกสว่านคาร์ไบด์ 0.7 มม. และ 1.0 มม.)
  • ชุดแกะสลัก PCB

ส่วนประกอบ

  • 1x ทองแดง PCB Board (102 มม. X 70 มม. โดยประมาณ)
  • ตัวต้านทาน 14x 1kΩ
  • ตัวต้านทาน 2x10kΩ
  • ตัวต้านทาน 1x4k7Ω
  • ตัวเก็บประจุ 1x (อุปกรณ์เสริม)
  • 1x LED สีแดง 5 มม. และตัวต้านทานกระแสไฟที่เหมาะสม
  • ไฟ LED สีเหลือง 5 มม. ขนาด 12x พร้อมตัวต้านทานในตัวสำหรับการจ่ายไฟ 12v
  • 3x ULN2074B Quad NPN อาร์เรย์ทรานซิสเตอร์คู่ดาร์ลิงตัน
  • 3x 16-Way IC Socket
  • 1x DC แจ็ค
  • 1x ส่วนหัว 2 ทาง
  • 2x 40-Pin 2x20 ส่วนหัวชาย
  • 7x 3-Way 5mm Vertical PCB Mount Screw Terminal Block
  • 1x PIR เซนเซอร์ (อุปกรณ์เสริม)

ราสเบอร์รี่ Pi

คุณจะต้องใช้ Raspberry Pi (หรือสองอัน) พร้อมทุกสิ่งที่จำเป็นในการใช้ Pi ซึ่งรวมถึงแหล่งจ่ายไฟ Pi การ์ด MicroSD และซอฟต์แวร์ Raspbian เพื่อประสิทธิภาพวิดีโอที่ดีที่สุด ฉันขอแนะนำ Raspberry Pi 3

สำหรับการเล่นวิดีโอ เราจะใช้ OMXPlayer กับ OMXPlayer-Wrapper (แต่จะเพิ่มเติมในภายหลัง!)

หมายเหตุ: คำแนะนำนี้ถือว่าคุณมีประสบการณ์หรือความรู้ในการทำงานเกี่ยวกับอุปกรณ์อิเล็กทรอนิกส์ การบัดกรี การประดิษฐ์ PCB และ Raspberry Pi หากคุณกำลังพยายามใช้ทักษะเหล่านี้เป็นครั้งแรก เราขอแนะนำให้คุณดูแหล่งข้อมูลต่อไปนี้:

  • คลาสอิเล็คทรอนิคส์. รวมคู่มือการเริ่มต้นใช้งานและครอบคลุมสิ่งต่างๆ เช่น การบัดกรีและส่วนประกอบพื้นฐาน
  • การทำ PCB สอนได้โดย ASCAS ครอบคลุมเทคนิคการสร้างการถ่ายโอนผงหมึกที่ใช้ที่นี่
  • หากคุณต้องการใช้ Circuit Boards ต่อไป ให้ดูที่ Circuit Board Design Class
  • คลาส Raspberry Pi ค้นหาข้อมูลเกี่ยวกับ Raspberry Pi เรียนรู้วิธีตั้งค่าและวิธีใช้งาน

ขั้นตอนที่ 2: อุปกรณ์อิเล็กทรอนิกส์

เครื่องใช้ไฟฟ้า
เครื่องใช้ไฟฟ้า
เครื่องใช้ไฟฟ้า
เครื่องใช้ไฟฟ้า
เครื่องใช้ไฟฟ้า
เครื่องใช้ไฟฟ้า

การสร้างวงจร

สิ่งแรกที่คุณต้องทำคือสร้างวงจรของคุณ วิธีที่ง่ายที่สุดในการผลิตซ้ำคือการสร้าง PCB โดยใช้วิธีการถ่ายโอนผงหมึกพร้อมกับ PDF วงจรพิมพ์ที่แนบมา หากคุณยังไม่เคยลองวิธีนี้มาก่อน มันง่ายกว่าที่คุณคิดมาก และคุณต้องการเพียงไม่กี่รายการเพื่อเริ่มต้น ฉันแนะนำ DIY Customized Circuit Board (PCB Making) ที่สอนโดย ASCAS เสมอ

หมายเหตุ: ฉันได้รวมไฟล์การออกแบบ PCB ที่ฉันสร้างโดยใช้ DesignSpark ด้วย

คุณจะต้องใช้หัวแร้งและทักษะการบัดกรีขั้นพื้นฐานเพื่อประกอบทุกอย่างบน PCB มีคำแนะนำมากมายเกี่ยวกับการบัดกรีในกรณีที่คุณยังใหม่กับมัน มี Instructables Electronics Class ที่ดีเช่นกัน!

หากกระบวนการทำ PCB ไม่เหมาะกับคุณ คุณสามารถสร้างใหม่ได้บนกระดานแถบ (vero) หรือบนเขียงหั่นขนม (ฉันทำบอร์ดต้นแบบตามที่แสดงในภาพด้านบน) ในต้นแบบของฉัน ฉันใช้ทรานซิสเตอร์คู่ดาร์ลิงตัน NPN แต่ละตัว ตรงข้ามกับอาร์เรย์ทรานซิสเตอร์บน I. C. (วงจรรวม).

มันทำงานอย่างไร

โดยทั่วไปจะเป็นบอร์ดฝ่าวงล้อมสำหรับ Pi ที่เชื่อมต่อพิน GPIO สิบสองพินของ Pi กับทรานซิสเตอร์คู่ดาร์ลิงตัน NPN (ในรูปแบบของอาร์เรย์ทรานซิสเตอร์สามตัว) เมื่อเอาต์พุต Pi ที่เกี่ยวข้องสูง มันจะสลับทรานซิสเตอร์เพื่อทำให้วงจรสมบูรณ์

นอกจากนี้ยังมีหมุด GPIO อีกสองตัวที่ 'เชื่อมโยง' Pis สองตัวเข้าด้วยกันผ่านตัวต้านทานแบบดึงลงที่ทำหน้าที่เป็นทริกเกอร์ (เพิ่มเติมเกี่ยวกับสิ่งนี้ในขั้นตอน 'การเขียนโปรแกรม Pi' ในภายหลัง)

มันขับเคลื่อนอย่างไร

Pumpkin Pi ใช้พลังงานจากแหล่งจ่ายไฟ 12v ภายนอกของตัวเอง ด้วยการใช้ทรานซิสเตอร์ที่ฉันเลือก จึงสามารถกระแสได้ถึง 1.75 แอมป์ต่อเอาต์พุต (หรือ 1 แอมป์ในกรณีนี้เนื่องจากการเลือกขั้วสกรูของฉัน) Pis ใช้พลังงานจากแหล่งจ่ายไฟ Pi ของตัวเอง Pumpkin Pi ใช้ความสามารถด้านพลังงานของ Pi น้อยมาก เนื่องจากใช้เพื่อเปลี่ยนทรานซิสเตอร์เท่านั้น วงจรมีตัวเลือกของตัวเก็บประจุแบบปรับให้เรียบ แต่ไม่จำเป็น ฉันใช้ 2200uF ที่ได้รับการจัดอันดับที่ 16v (ซึ่งเกินความสามารถ แต่ฉันมีให้)

ไฟ LED แสดงสถานะและตัวต้านทาน

มีไฟ LED แสดงสถานะเอาต์พุตสีเหลืองสิบสองดวงและ LED แสดงสถานะพลังงานสีแดงหนึ่งดวง ตรวจสอบให้แน่ใจว่าใช้ LED จำกัด กระแสไฟที่ถูกต้องกับ LED แสดงสถานะสีแดงของคุณ ของฉันมีแรงดันไปข้างหน้า 3.2v และกระแสไฟไปข้างหน้า 20mA ดังนั้นฉันจึงเลือกตัวต้านทาน470Ω (ตามกระแสอินพุต 12v) หากคุณไม่แน่ใจว่าจะเลือกตัวต้านทานที่ถูกต้องสำหรับ LED ของคุณอย่างไร ให้ลองดูตัวช่วยสร้างเครื่องคิดเลขนี้

คุณอาจสังเกตเห็นว่าไม่มีตัวต้านทานบนวงจรสำหรับไฟ LED แสดงสถานะสีเหลืองทั้งสิบสองดวง เนื่องจากฉันต้องการประหยัดพื้นที่บน PCB ฉันจึงเลือกการออกแบบเพื่อใช้ LED ที่มีตัวต้านทานในตัวสำหรับการจ่ายไฟ 12v

Motion Trigger (เซ็นเซอร์ PIR) และการแทนที่

วงจรมีตัวเลือกของทริกเกอร์การเคลื่อนไหว มันใช้ตัวต้านทานแบบดึงขึ้น ดังนั้นเมื่อใดก็ตามที่พินสัญญาณเตือน (ที่มีป้ายกำกับว่า AL บน PCB) ต่ำ มันจะทริกเกอร์การดำเนินการ สิ่งนี้มีประโยชน์หากคุณต้องการเปิดใช้งานการเล่นการตกแต่งดิจิทัลของคุณ

วงจรยังรวมถึงการแทนที่ทริกเกอร์ เมื่อการแทนที่อยู่ในสถานะปิด จะเชื่อมโยงอินพุตกับกราวด์ ช่วยให้คุณทริกเกอร์การดำเนินการได้ด้วยตนเอง ใช้ส่วนหัวแทนที่สองพินพร้อมสวิตช์หรือ 'จัมเปอร์'

ขั้นตอนที่ 3: การตั้งค่า Raspberry Pi

การตั้งค่า Raspberry Pi
การตั้งค่า Raspberry Pi

การติดตั้ง Raspbian

ในการเริ่มต้นตั้งค่า Raspberry Pi คุณต้องเตรียมการ์ด MicroSD ของคุณด้วยภาพ Raspbian ดาวน์โหลดรูปภาพล่าสุดได้ที่นี่ (Raspbian Stretch เป็นเวอร์ชันล่าสุดในขณะที่เขียน).

เมื่อการ์ด MicroSD ของคุณพร้อม ใส่ลงใน Pi และเพิ่มพลัง คุณอาจต้องการเชื่อมต่อทีวี คีย์บอร์ด และเมาส์ ณ จุดนี้ โดยค่าเริ่มต้น Pi ควรบูตเข้าสู่ระบบปฏิบัติการเดสก์ท็อป GUI ฉันแนะนำให้คุณตั้งค่าวันที่และเขตเวลาที่ถูกต้องบน Pi ของคุณ และอาจเชื่อมต่อกับ WiFi ของคุณ

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

หมายเหตุ: คำแนะนำนี้อนุมานว่าคุณคุ้นเคยกับ Raspberry Pi อยู่แล้ว หากไม่เป็นเช่นนั้น คุณสามารถปฏิบัติตามคู่มือ Raspberry Pi อย่างเป็นทางการสำหรับการติดตั้งอิมเมจระบบปฏิบัติการในสภาพแวดล้อมของคุณได้ที่นี่: Windows, MacOS, Linux

เคล็ดลับ: หากคุณยังใหม่กับ Raspberry Pi อย่างสมบูรณ์ ฉันแนะนำให้คุณดู Instructables Class นี้

เมื่อ Pi ของคุณเริ่มทำงานด้วย Raspbian และการตั้งค่าพื้นฐานเสร็จสมบูรณ์ คุณก็พร้อมที่จะใช้งานเป็นเครื่องเล่น Digital Decoration ที่รองรับการเล่นเสียงและวิดีโอ จำไว้ว่าหากคุณใช้ Raspberry Pi สองตัวสำหรับฟังก์ชันการเล่นแบบคู่ คุณจะต้องทำซ้ำขั้นตอนเหล่านี้ทั้งหมดใน Pi ตัวที่สอง

OMXPlayer-Wrapper สำหรับ Python

ในการเล่นวิดีโอการตกแต่งดิจิทัลของเรา เราจะใช้ OMXPlayer รองรับวิดีโอความละเอียดสูง (รวมถึง HD) ในรูปแบบวิดีโอทั่วไปหลายรูปแบบ แม้ว่า OMXPlayer จะรวมอยู่ใน Raspbian 'แบบสำเร็จรูป' เพื่อให้เล่นได้ดีกับสคริปต์ Python ที่กำหนดเอง เราจะสร้าง คุณจะต้องติดตั้ง OMXPlayer-Wrapper

ก่อนติดตั้ง wrapper ฉันแนะนำให้อัปเดตแพ็คเกจของระบบ เรียกใช้คำสั่งต่อไปนี้จากเทอร์มินัล CLI (ต้องเชื่อมต่อ Pi กับอินเทอร์เน็ตเพื่อให้ใช้งานได้):

อัปเดตรายการแพ็คเกจของระบบ:

sudo apt-get update

อัปเกรดแพ็คเกจที่ติดตั้งทั้งหมดของคุณเป็นเวอร์ชันล่าสุด:

sudo apt-get dist-upgrade

ล้างพื้นที่ที่ใช้ในการดาวน์โหลดแพ็คเกจการอัพเดท:

sudo apt-get clean

ถัดไป คุณจะต้องดาวน์โหลด OMXPlayer-Wrapper เอง เมื่อต้องการทำสิ่งนี้ให้รันคำสั่งต่อไปนี้อีกครั้งจากเทอร์มินัล CLI ที่ Pi เชื่อมต่อกับอินเทอร์เน็ต:

ติดตั้ง OMXPlayer-Wrapper:

sudo python3 -m pip ติดตั้ง omxplayer-wrapper

สำหรับข้อมูลเพิ่มเติมเกี่ยวกับ omxplayer-wrapper โปรดดูเอกสารที่นี่

เคล็ดลับ: หากคุณพบข้อผิดพลาดในการเชื่อมต่อ DBUS เมื่อพยายามเล่นวิดีโอโดยใช้ OMXPlayer-Wrapper ให้ลองติดตั้ง python3-dbus ด้วยคำสั่งต่อไปนี้:

sudo apt-get ติดตั้ง python3-dbus

การตั้งค่าและการปรับแต่งอื่น ๆ

เอาต์พุตเสียงเริ่มต้น

Raspberry Pi รองรับการเล่นเสียงผ่าน HDMI หรือแจ็ค 3.5 มม. อย่างไรก็ตาม หาก Pi ตรวจพบว่าอุปกรณ์ HDMI ที่เชื่อมต่อรองรับเสียง อุปกรณ์ HDMI จะเป็นค่าเริ่มต้น หากเช่นฉัน คุณมีอุปกรณ์ HDMI ที่รองรับเสียง แต่คุณต้องการให้เอาต์พุตเสียงของคุณเป็นค่าเริ่มต้นที่แจ็ค 3.5 มม. แทน คุณสามารถบังคับให้ทำโดยเพิ่มบรรทัดต่อไปนี้ในไฟล์ config.txt บน Pi:

hdmi_ignore_edid_audio=1

ตั้งค่าเอาต์พุตคอนโซลเป็น Blank

หากคุณไม่ต้องการให้เอาต์พุตวิดีโอของ Pi แสดงหน้าจอคอนโซลหลังจากบูตเครื่อง คุณสามารถตั้งค่าคอนโซลให้ว่างโดยเพิ่มสิ่งต่อไปนี้ที่ส่วนท้ายของไฟล์ /boot/cmdline.txt บน Pi โปรดทราบว่าเป็นพารามิเตอร์คำสั่งเคอร์เนลและต้องอยู่ในข้อความบรรทัดเดียว:

consoleblank=0

แนะนำ: