สารบัญ:

RPi 3 Starboard / เครื่องกำเนิดอนุภาค: 6 ขั้นตอน (พร้อมรูปภาพ)
RPi 3 Starboard / เครื่องกำเนิดอนุภาค: 6 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: RPi 3 Starboard / เครื่องกำเนิดอนุภาค: 6 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: RPi 3 Starboard / เครื่องกำเนิดอนุภาค: 6 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: Adding a 7" Display to the Raspberry Pi 3 2024, พฤศจิกายน
Anonim
Image
Image
ประกอบ LED Board
ประกอบ LED Board

คุณรู้สึกเบื่อกับ Raspberry Pi ของคุณหรือไม่? คุณพร้อมหรือยังที่จะสั่งการกองกำลังพื้นฐานของจักรวาล เรียกและกำจัดโฟตอนตามใจชอบ? คุณแค่ต้องการแขวนสิ่งที่น่าสนใจในห้องนั่งเล่นของคุณหรือโครงการแฟนซีที่จะโพสต์บน Facebook เพื่อแสดงให้ Denise เห็นว่าคุณทำได้ดีในวันนี้ ขอบคุณมาก? คุณติดอยู่ในการจำลองด้วยคอมพิวเตอร์และใช้เวลาหลายชั่วโมงจนกว่าคุณจะเป็นอิสระหรือถูกลบไปหรือไม่? หากมีสิ่งใดหรือทั้งหมดอธิบายคุณ [เสียงผู้ประกาศ] ยินดีต้อนรับ!

บทช่วยสอนนี้จะแสดงวิธีประกอบและตั้งค่าการแสดงเครื่องกำเนิดอนุภาคโดยใช้ Raspberry Pi 3 และแผงเมทริกซ์ RGB บางตัว ควรใช้เวลาประมาณหนึ่งถึงสองชั่วโมง และผลิตภัณฑ์สำเร็จรูปจะมีขนาดประมาณ 30"x8" (ไม่รวม Pi) และติดตั้งกับผนังได้ มันทำให้การตกแต่งสวยเย็นสำหรับห้องนั่งเล่น สำนักงาน ห้องเล่นเกม หรือที่อื่น ๆ ที่คุณต้องการวางไว้.

ก่อนที่คุณจะเริ่มต้น นี่คือสิ่งที่คุณต้องการ และค่าใช้จ่ายโดยประมาณคือ:

  • Rpi 3 + การ์ด SD + เคส + พาวเวอร์ซัพพลาย: $70 (จาก Canakit แต่คุณอาจจะได้ชิ้นส่วนที่ถูกกว่าถ้าคุณซื้อแยกต่างหาก)
  • 4x 32x32 RGB LED Matrix (ควรเป็น p6 ในอาคารพร้อมสแกน 1/16): $80-$100 จัดส่งใน Alibaba หรือ Aliexpress; $ 160 สำหรับ Adafruit หรือ Sparkfun
  • หมวก Adafruit RGB Matrix: $25
  • แหล่งจ่ายไฟ 5V 4A: $15
  • คลิปพิมพ์ 3 มิติ: 1 เหรียญสหรัฐ (สำหรับเชื่อมต่อแผงและแขวนไว้บนผนัง หากคุณไม่มีเครื่องพิมพ์ 3 มิติ คุณสามารถใช้แถบขนเพื่อยึดเข้าด้วยกันและวงเล็บบางส่วนจากร้านฮาร์ดแวร์ไปยัง แขวนมันจากผนัง ฉันพยายามค้นหาไฟล์การออกแบบหรือ.stls สำหรับสิ่งเหล่านี้ แต่ดูเหมือนว่าจะผ่านไปจากโลกแล้ว คลิปเหล่านี้ค่อนข้างง่ายที่จะสร้างแบบจำลอง)
  • น็อต M4x10 14x: $5ish
  • สายเคเบิล IDC 4x8 สี่เส้นและสายไฟสามเส้นสำหรับเมทริกซ์ RGB (ฉันไม่รู้ว่าสิ่งเหล่านี้เรียกว่าอะไร!) สิ่งเหล่านี้ควรรวมอยู่ในแผง LED ของคุณแล้ว
  • ทั้งหมด: ประมาณ $200 ให้หรือรับ

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

นอกจากนี้ยังถือว่าคุณมีความรู้พื้นฐานเกี่ยวกับวิธีการทำสิ่งต่างๆ จากบรรทัดคำสั่งใน Linux และคำแนะนำเกี่ยวกับโค้ดจะถือว่าคุณรู้พื้นฐานของ Python (แต่ - คุณไม่จำเป็นต้องปฏิบัติตามคำแนะนำแบบโค้ดเพื่อให้สามารถสร้างและ เรียกใช้เครื่องกำเนิดอนุภาค) หากคุณติดอยู่ในขั้นตอนใด ๆ อย่าลังเลที่จะถามคำถามหรือโพสต์ใน /r/raspberry_pi (ซึ่งก็คือฉันคิดว่าเป็นผู้ชมหลักสำหรับคำแนะนำนี้)

ขั้นตอนที่ 1: ประกอบ LED Board

ประกอบ LED Board
ประกอบ LED Board

ขั้นแรก คุณจะต้องประกอบแผง LED ขนาด 32x32 แต่ละแผงให้เป็นแผงขนาดใหญ่ 128x32 แผงเดียว คุณจะต้องดูที่กระดานของคุณและหาลูกศรเล็กๆ ที่ระบุลำดับการเชื่อมต่อ ของฉันอยู่ใกล้กับตัวเชื่อมต่อ HUB75 / 2x8 IDC ตรวจสอบให้แน่ใจว่าคุณมีลูกศรชี้จากตำแหน่งที่ Rpi จะเชื่อมต่อ (ไปทางขวาในภาพด้านบน) ลงไปตามความยาวของกระดาน

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

เนื่องจากสายไฟที่มากับบอร์ดของฉันสั้นมาก ฉันจึงต้องต่อสายหนึ่งโดยเสียบขาของขั้วจอบเข้ากับขั้วต่อของอีกสายหนึ่ง (ซึ่งค่อนข้างตรงไปตรงมา - คุณอาจจะต้องงอขั้วจอบเข้าด้านในเล็กน้อย แต่ฉัน' ได้รวมรูปภาพไว้ในกรณี) ฉันลงเอยด้วยขั้วต่อจอบสองชุดและขั้วต่อ IDC ขนาด 2x8 หนึ่งตัวที่ด้านขวาของบอร์ด LED ที่ขยายออกตอนนี้

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

เมื่อคุณเชื่อมต่อแผงทั้งหมดพร้อมกับคลิป สายเคเบิล IDC 2x8 และสายไฟ คุณก็พร้อมที่จะไปยังขั้นตอนต่อไป!

ขั้นตอนที่ 2: เตรียม Raspberry Pi

ต่อไป คุณจะต้องวางบอร์ด LED ไว้ (สำหรับตอนนี้) และเตรียม Pi 3 ให้พร้อมสำหรับใช้งาน เราจะใช้ Raspbian Stretch Lite และไลบรารี RGB matrix ของ hzeller (แทนที่จะเป็นไลบรารีเมทริกซ์ของ Adafruit ซึ่งเก่ากว่าและไม่มีการบำรุงรักษา)

ขั้นแรก คุณจะต้องเขียนอิมเมจ Raspbian Lite ลงในการ์ด SD เมื่อคุณทำเสร็จแล้ว ให้ต่อจอภาพและคีย์บอร์ดเข้ากับ pi แล้วเปิดเครื่อง (คุณสามารถทำสิ่งนี้แบบไม่มีหัวได้ ไม่ว่าจะผ่าน ssh หรือตัวเชื่อมต่อแบบอนุกรม แต่ถ้าเป็นแบบนั้น คุณอาจไม่ต้องการให้ฉันบอกวิธีดำเนินการ) คุณจะต้องเชื่อมต่ออินเทอร์เน็ตสำหรับสิ่งนี้; หากคุณมี wifi ให้เชื่อมต่อ Pi กับเครือข่ายไร้สายของคุณโดยแก้ไข /etc/wpa_supplicant/wpa_supplicant.conf และเรียกใช้ wpa_cli -i wlan0 กำหนดค่าใหม่ (หากคุณไม่เคยทำเช่นนี้ คุณสามารถรับคำแนะนำได้ที่นี่)

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

sudo apt-get update

sudo apt-get ติดตั้ง git python-dev python-pil

โคลน git

ตอนนี้เราต้องคอมไพล์และติดตั้งโค้ดเมทริกซ์ ดังนั้นคุณจะเข้าไปในโฟลเดอร์ที่มีไลบรารี่:

cd rpi-rgb-led-เมทริกซ์

และรวบรวม (อาจใช้เวลาสักครู่):

make && make build-python

และติดตั้งการผูกหลาม:

sudo make install-python

หากคุณได้รับข้อผิดพลาดใดๆ ขณะรวบรวมโค้ดไลบรารี ให้กลับไปตรวจสอบให้แน่ใจว่าคุณติดตั้ง python-dev และ python-pil อย่างถูกต้อง! การเชื่อมโยงหลามจะไม่คอมไพล์หากไม่มีการติดตั้งทั้งสองแพ็คเกจ

คุณจะต้องปิดเอาต์พุตเสียงของ Pi (เสียงออนบอร์ดรบกวนรหัสเมทริกซ์) โดยแก้ไข /boot/config.txt มองหาบรรทัดที่ระบุว่า dtparam=audio=on และเปลี่ยนเป็น dtparam=audio=off

หากทุกอย่างเรียบร้อยดี (คุณจะได้รับคำเตือนเล็กน้อยเกี่ยวกับ Wstrict-protoypes) pi ของคุณควรพร้อมที่จะเรียกใช้เมทริกซ์บอร์ด ไปข้างหน้าและปิดเครื่อง (ปิดเครื่อง sudo ทันที) ถอดปลั๊ก แล้วเราจะเชื่อมต่อบอร์ดไฟกับ pi ในขั้นตอนต่อไป

ขั้นตอนที่ 3: เชื่อมต่อ Pi + Matrix Hat + LED Board

เชื่อมต่อ Pi + Matrix Hat + LED Board
เชื่อมต่อ Pi + Matrix Hat + LED Board

ตอนนี้ Pi ของคุณปิดและถอดปลั๊กแล้ว ให้เชื่อมต่อเมทริกซ์แฮทกับ pi และบอร์ด LED กับหมวกเมทริกซ์ หาก Pi ของคุณไม่อยู่ในเคส ตอนนี้เป็นเวลาที่เหมาะสมที่จะใส่มันเข้าไป

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

เมื่อคุณสวมหมวกแล้ว ให้วาง Pi ไว้ทางด้านขวาของบอร์ด LED ที่ประกอบแล้ว (ตรวจสอบการต่อสายไฟอีกครั้ง และตรวจสอบให้แน่ใจว่าลูกศรชี้จาก Pi ลงมาตามความยาวของบอร์ด) และเชื่อมต่อ IDC สายเคเบิลไปยังหมวกเมทริกซ์

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

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

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

แต่ไม่ว่าจะหุ้มหรือแกะออก - ขั้วจอบเชื่อมต่อกับแผงขั้วต่อ และเราพร้อมที่จะไปยังขั้นตอนต่อไป

ขั้นตอนที่ 4: ทดสอบ RGB Matrix

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

หากคุณมีปัญหาในการบูต Pi โดยเปิดหมวกเมทริกซ์ ตรวจสอบให้แน่ใจว่าคุณใช้แหล่งจ่ายไฟที่เพียงพอสำหรับ Pi (2A+ น่าจะดี) และลองเสียบทั้งแหล่งจ่ายไฟสำหรับหมวกและสำหรับ Pii ลงในปลั๊กพ่วงหรือสายไฟต่อเดียวกัน แล้วเปิดเครื่องเข้าด้วยกัน

เมื่อ Pi บู๊ตแล้ว เราก็พร้อมที่จะทดสอบเมทริกซ์ ไปที่ตำแหน่งของตัวอย่างการผูกงูหลาม (cd /rpi-rgb-led-matrix/bindings/python/samples) และลองใช้ตัวสร้างบล็อกแบบหมุนด้วยคำสั่งต่อไปนี้:

sudo./rotating-block-generator.py -m adafruit-hat --led-chain 4

คุณต้องเรียกใช้เป็น sudo เนื่องจากไลบรารีเมทริกซ์ต้องการการเข้าถึงฮาร์ดแวร์ระดับต่ำเมื่อเริ่มต้น -m ระบุวิธีที่พาเนลเชื่อมต่อกับ pi (ในกรณีนี้คือหมวก adafruit) และ --led-chain ระบุ - คุณเดาได้ - เราเชื่อมโยงพาเนลกี่พาเนลด้วยกัน แถวและคอลัมน์ต่อแผงมีค่าเริ่มต้นเป็น 32 ดังนั้นเราจึงทำได้ดี

ตอนนี้ - เมื่อคุณรันโปรแกรมแล้ว หนึ่งในสอง (หรือจริงๆ แล้ว หนึ่งในสาม) จะเกิดขึ้น:

  • ไม่มีอะไรเกิดขึ้น
  • คุณได้บล็อกหมุนที่ดีอยู่ตรงกลางของกระดานไฟของคุณ
  • บอร์ดไฟใช้งานได้ เอ่อ ฉันคิดว่า แต่มันดู … แปลก (ครึ่งหนึ่งเป็นสีเขียว บางแถวไม่สว่าง ฯลฯ)

หากไม่มีอะไรเกิดขึ้น หรือหากแผงควบคุมดูแปลก ให้กด ctrl+c เพื่อออกจากโปรแกรมตัวอย่าง ปิด pi และตรวจสอบการเชื่อมต่อทั้งหมดของคุณ (สายเคเบิล IDC, ไฟ, ตรวจสอบให้แน่ใจว่าได้เสียบปลั๊กอุปกรณ์จ่ายไฟทั้งสองเครื่องแล้ว เป็นต้น) ตรวจสอบให้แน่ใจว่าได้เชื่อมต่อหมวกอย่างถูกต้อง หากไม่สามารถแก้ไขได้ ให้ถอดไปที่แผงเดียว (ตรวจสอบให้แน่ใจว่าใช้ --led-chain 1 เมื่อทำการทดสอบ) และดูว่าแผงใดแผงหนึ่งอาจเสีย หากไม่ได้ผล ให้ดูเคล็ดลับการแก้ปัญหาของ hzeller หากยังใช้งานไม่ได้ ให้ลองโพสต์ไปที่ /r/raspberry_pi (หรือฟอรัม Adafruit หากคุณได้รับแผงจาก Adafruit หรือการแลกเปลี่ยนสแต็ก ฯลฯ)

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

ขั้นตอนที่ 5: อัตราการทวีคูณและการสแกน (หรือ: การเบี่ยงเบนชั่วขณะบนถนนสู่หลุมฝังศพ)

ดังนั้น ข้อผิดพลาดอย่างหนึ่งที่ฉันทำเมื่อสั่งแผงชุดแรกออกจากอาลีบาบาก็คือ ฉันได้แผงภายนอกอาคาร (ทำไมล่ะ ฉันคิดว่ามันกันน้ำได้และสว่างกว่า!) และเมื่อฉันต่อมันเข้ากับหมวกเมทริกซ์ของฉัน สิ่งต่างๆ ก็ดู.. ไม่ถูกต้อง

เพื่อให้เข้าใจว่าทำไมถึงเป็นเช่นนั้น เราจะใช้เวลาสักครู่เพื่อดู Phil Burgess จากคำอธิบายของ Adafruit ว่าแผงเหล่านี้ทำงานอย่างไร คุณจะสังเกตได้ว่า Burgess ชี้ให้เห็นว่าพาเนลไม่เปิดไฟ LED ทั้งหมดในคราวเดียว แต่จะสว่างเป็นชุดของแถว ความสัมพันธ์ระหว่างความสูงของแผงเป็นพิกเซลและจำนวนแถวที่สว่างพร้อมกันเรียกว่า อัตราการสแกน ตัวอย่างเช่น บนแผงขนาด 32x32 ที่มีการสแกน 1/16 แถวสองแถว (1 และ 17, 2 และ 18, 3 และ 19 เป็นต้น) จะสว่างขึ้นพร้อมกัน ไปจนถึงแผงหน้าปัด จากนั้นตัวควบคุมจะทำซ้ำ. ไลบรารี่ส่วนใหญ่ที่ขับเคลื่อนเมทริกซ์ RGB นั้นสร้างขึ้นสำหรับพาเนลที่อัตราการสแกนเท่ากับ 1/2 ของความสูงเป็นพิกเซล กล่าวคือ พวกมันจะขับ LED สองแถวพร้อมกัน

แผงภายนอก (และแผงในอาคารบางส่วน - ตรวจสอบให้แน่ใจว่าคุณได้ดูข้อกำหนดก่อนสั่งซื้อ) มีอัตราการสแกนที่ 1/4 ของความสูงเป็นพิกเซล ซึ่งหมายความว่าพวกเขาคาดว่าจะขับเคลื่อนสี่บรรทัดในครั้งเดียว สิ่งนี้ทำให้พวกเขาสว่างขึ้น (ซึ่งเป็นสิ่งที่ดี) แต่ทำให้โค้ดมาตรฐานจำนวนมากใช้ไม่ได้กับมัน (ซึ่งไม่ดี) นอกจากนั้น ยังมีแนวโน้มที่จะมีพิกเซลที่ไม่เป็นระเบียบภายใน ซึ่งต้องมีการแปลงค่า x และ y ในซอฟต์แวร์เพื่อระบุพิกเซลที่ถูกต้อง เหตุใดจึงทำเช่นนี้? ฉันไม่รู้. คุณรู้หรือไม่? ถ้าเป็นเช่นนั้นโปรดบอกฉัน มิฉะนั้นก็จะต้องยังคงเป็นปริศนา

ดังนั้นหากคุณมีแผงกลางแจ้งที่แปลกประหลาดสักชิ้นหนึ่ง คุณ (อาจ) โชคดี! hzeller เพิ่งเพิ่มการสนับสนุนสำหรับการกำหนดค่าทั่วไปของแผงประเภทนี้ในไลบรารีของเขา คุณสามารถอ่านเพิ่มเติมเกี่ยวกับมันได้ในหน้า github สำหรับโครงการ แต่คุณสามารถส่ง --led-multiplexing={0, 1, 2, 3} ไปยังโค้ดตัวอย่างได้ (คุณอาจต้องแสร้งทำเหมือนว่าคุณมี ห่วงโซ่ความยาวสองเท่าของแผงครึ่งความยาว) และควรใช้งานได้

มีรูปแบบการแปลงพิกเซลบางรูปแบบที่ไม่รองรับ - และ (เดาสิ) แผงของฉันมีรูปแบบใดรูปแบบหนึ่ง! ดังนั้น ฉันต้องเขียนโค้ดการแปลงของตัวเอง (ฉันด้วย - ไม่ว่าจะด้วยเหตุผลใดก็ตาม - ต้องบอกให้ห้องสมุดทำเหมือนว่าฉันมีแผง 16x32 แปดแผงที่ถูกล่ามโซ่ไว้ด้วยกัน) ซึ่งเป็นดังนี้:

def transformPixels(j, k): effJ = j % 32

effK = k % 32

modY = k

modX = j

#modX และ modY คือ X และ Y ที่แก้ไขแล้ว

#effJ และ effK ตรวจสอบให้แน่ใจว่าเราแปลงเป็นเมทริกซ์ขนาด 32x32 ก่อนกด

ถ้า ((effJ) > 15):

modX = modX + 16

ถ้า ((effK) > 7):

modY = modY - 8

modX = modX + 16

ถ้า ((effK) > 15):

modX = modX - 16

ถ้า ((effK) > 23):

modY = modY - 8

modX = modX + 16

#จากนั้น เราผลักพวกมันไปยังตำแหน่งที่ถูกต้อง (แต่ละ x+32 ย้ายหนึ่งแผง)

ถ้า (j > 31):

modX += 32

ถ้า (j > 63):

modX += 32

ถ้า (j > 95):

modX += 32

ผลตอบแทน (modX, modY)

หากคุณมีแผงเช่นฉัน สิ่งนี้อาจใช้ได้ หากไม่เป็นเช่นนั้น คุณจะต้องเขียนข้อความของคุณเอง โชคดีและรวดเร็ว

ขั้นตอนที่ 6: โปรแกรม Starboard (หรือ: Back on Track และ Ready to Pixel)

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

โคลน git

คุณควรมีโฟลเดอร์ใหม่ กราบขวา ซึ่งมีสามไฟล์: LICENSE.md, README.md และ starboard_s16.py ลองใช้โปรแกรมกราบขวาโดยเรียกใช้ผ่าน python:

sudo python./starboard_s16.py

และคุณควรได้รับอนุภาคจำนวนมากที่เคลื่อนที่ด้วยความเร็วต่างกันและสลายตัวในอัตราที่ต่างกัน ทุกๆ 10, 000 ขีดหรือมากกว่านั้น (คุณสามารถเข้าสู่สคริปต์ python เพื่อแก้ไข/เปลี่ยนแปลงสิ่งนี้) มันจะเปลี่ยนโหมด (มีสี่โหมด: RGB, HSV, Rainbow และ Greyscale)

ดังนั้นตอนนี้สิ่งเดียวที่ต้องทำคือทำให้รหัสทางกราบขวาทำงานเมื่อเริ่มต้น เราจะทำโดยแก้ไข (ด้วย sudo) /etc/rc.local สิ่งที่คุณต้องการทำคือเพิ่มบรรทัดต่อไปนี้ก่อน "exit 0" ในสคริปต์:

หลาม /home/pi/starboard/starboard_s16.py &

หลังจากที่คุณทำเช่นนั้น ให้รีบูต pi - เมื่อมันทำงานผ่านลำดับการบู๊ต สคริปต์ starboard_s16.py ควรเริ่มทำงานทันที!

หากคุณต้องการสำรวจในสคริปต์ ทำได้โดยง่าย - ได้รับอนุญาตภายใต้ GNU GPL 3.0 หากสคริปต์ไม่ทำงานสำหรับคุณ หรือคุณมีปัญหากับมัน โปรดแจ้งให้เราทราบหรือส่งข้อบกพร่องบน github แล้วเราจะดูว่าสามารถแก้ไขอะไรได้บ้าง!

สิ่งสุดท้ายที่คุณอาจต้องการทำคือตั้งค่า SSH บน pi เพื่อให้คุณสามารถจากระยะไกลและปิดเครื่องได้อย่างปลอดภัย คุณจะต้อง / แน่นอน / ต้องการเปลี่ยนรหัสผ่านของคุณ (ผ่านคำสั่ง passwd) และคุณสามารถค้นหาคำแนะนำสำหรับการเปิดใช้งาน ssh (จากบรรทัดคำสั่ง) ได้ที่นี่

แนะนำ: