สารบัญ:

เครื่องกว้านควบคุมด้วย Art-Net: 6 ขั้นตอน
เครื่องกว้านควบคุมด้วย Art-Net: 6 ขั้นตอน

วีดีโอ: เครื่องกว้านควบคุมด้วย Art-Net: 6 ขั้นตอน

วีดีโอ: เครื่องกว้านควบคุมด้วย Art-Net: 6 ขั้นตอน
วีดีโอ: สุภาพบุรุษสุดซอย2022 EP.26 (FULL EP) |ตอน สัมภาษณ์คู่จิ้นวินดิ้นถอยหลังระวังปุ๊กเด้อพี่น้อง|16ก.ค.65 2024, กันยายน
Anonim
เครื่องกว้านควบคุม Art-Net
เครื่องกว้านควบคุม Art-Net

สวัสดีทุกคน ในคำแนะนำนี้ ฉันจะอธิบายว่าฉันสร้างเครื่องกว้านควบคุมด้วย art-net ได้อย่างไร “อะไรของคุณ” ฉันได้ยินคุณถาม ฉันขออธิบายอย่างรวดเร็ว เมื่อสองสามปีก่อน เราได้จัดงานปาร์ตี้กับบ้านพักเยาวชนในท้องถิ่น และในการออกแบบเวที เรามีแนวคิดในการทำหลังคาแบบเคลื่อนย้ายได้

ด้วยรอก 9 อัน (takels) เรายกผ้าขาวขนาดยักษ์ขึ้นและผ่านโปรโตคอล dmx เราควบคุมพวกมัน แต่ในขณะนั้นกว้านเราใช้ที่ 3 เฟสควบคุม เราต้องสร้างระบบรีเลส์ที่ควบคุมโดยเมกะ Arduino ส่วนกลางที่ควบคุมโดยใช้ dmx รีเลย์ที่สลับแรงดันไฟฟ้า 230V และ 12 แอมป์

เพื่อให้เข้าใจได้ง่ายขึ้น เราต้องสร้างสายไฟและสายไฟขนาดมหึมาที่ไม่เสถียร ไม่น่าเชื่อถือ และค่อนข้างอันตราย

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

นั่นคือสิ่งที่ฉันสร้างขึ้นและฉันจะพยายามอธิบายให้คุณฟังว่าฉันทำได้อย่างไร การตั้งค่าทั้งหมดใช้ Raspberry Pi ที่ควบคุมกระบวนการติดตั้ง หนึ่งในการตั้งค่าคือการควบคุมให้กับคอมพิวเตอร์ขนาดเล็ก (Chamsys ฯลฯ..) ที่จะควบคุมกว้านจากที่นั่น

ฉันคิดว่าคุณมีความรู้พื้นฐานเกี่ยวกับ python, arduino และ raspberry pi aswel ที่เข้าใจบางอย่างเกี่ยวกับโปรโตคอลและตัวควบคุม art-net

เสบียง

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

  • ราสเบอร์รี่ปี่
  • Arduino
  • Arduino อีเธอร์เน็ตชิลด์
  • ชิลด์มอเตอร์ Arduino
  • หน้าจอ OLED ใดๆ
  • สายอีเธอร์เน็ต
  • สวิตช์อีเธอร์เน็ต
  • มอเตอร์ DC พร้อมตัวเข้ารหัสที่สร้างขึ้น

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

ตกลง วิธีการทำงานคือ raspberry pi จะใช้งาน Apache และเซิร์ฟเวอร์ MariaDB เซิร์ฟเวอร์ Apache คือโฮสต์เว็บไซต์ MariaDB คือการเก็บฐานข้อมูลที่เราจะจัดเก็บข้อมูลของกว้าน

ฉันจะไม่แนะนำคุณตลอดกระบวนการตั้งค่า pi ด้วย ssh ทั้งหมด หากคุณไม่คุ้นเคย นี่คือบทช่วยสอนที่ดี

ก่อนอื่นเราจะตรวจสอบให้แน่ใจว่า raspberry pi ได้รับการตั้งค่าทั้งหมดแล้ว ในการรันเทอร์มินัลของคุณ:

ในการติดตั้ง apache

sudo apt ติดตั้ง apache2 -y

ในการติดตั้ง mariaDB

sudo apt-get ติดตั้ง mariadb-server

นี่คือส่วนขยายของ python ทั้งหมดที่เราต้องการ

pip3 ติดตั้ง mysql-connector-python

pip3 ติดตั้ง flask-socketio pip3 ติดตั้ง flask-cors pip3 ติดตั้ง gevent pip3 ติดตั้ง gevent-websocket pip3 ติดตั้ง netifaces

สำหรับจอแสดงผล oled เราจำเป็นต้องมีกระบวนการตั้งค่าที่ยากขึ้นอีกเล็กน้อย ซึ่งสามารถพบได้ที่นี่

ตกลงนั่นคือ pi ที่ทำเสร็จแล้ว!

ขั้นตอนที่ 2: ทำความเข้าใจว่าการตั้งค่าจะทำงานอย่างไร

ดังนั้นวิธีที่คุณต้องการติดตั้งกว้านคือการให้ตำแหน่งเริ่มต้นและตำแหน่งสิ้นสุด โดยจะมีการกำหนดช่องสัญญาณที่แน่นอน และด้วยช่องนี้ คุณจะสามารถย้ายระหว่างสถานะที่เลือกและตำแหน่งสิ้นสุดเท่านั้น

ในการเลือกตำแหน่งเหล่านี้ คุณจะต้องย้ายกว้านไปที่ตำแหน่งเหล่านั้น เมื่อคุณอยู่ที่นั่น คุณจะเปลี่ยนช่องบางช่องเป็นค่า 56 เมื่อช่องที่แน่นอนนี้ถึงค่านั้น มันจะรู้ว่านี่คือตำแหน่งเริ่มต้น/สิ้นสุดของเขา ถ้าต้องการเลื่อนขึ้นหรือลง หรือหากต้องการเปลี่ยนค่า artnet การย้ายกว้านทำได้โดยการตั้งค่าช่องสัญญาณเป็น 56 "และทำไม 56" ฉันได้ยินมาว่าคุณสงสัยว่าฉันต้องเลือกอะไร:)

ตำแหน่งคำนวณผ่านตัวเข้ารหัสที่อยู่บนมอเตอร์กระแสตรง

ขั้นตอนที่ 3: แบ็กเอนด์ของ Pi

แบ็กเอนด์ของ Pi
แบ็กเอนด์ของ Pi

แบ็กเอนด์สำหรับระบบสามารถพบได้ใน github ของฉัน ฉันได้เขียนห้องสมุดของตัวเองสำหรับโปรโตคอล Art-net ดังนั้นอย่าลังเลที่จะใช้มัน ฉันจะไม่แนะนำคุณทุกอย่างทีละบรรทัด แต่ฉันจะให้ภาพรวมทั้งหมดแก่คุณ

รหัสเรียกใช้เซิร์ฟเวอร์ขวดที่สื่อสารกับเซิร์ฟเวอร์ apache ที่ทำงานบน pi ใช้โมดูล flask-socketio เพื่อส่งและรับข้อมูลไปยังส่วนหน้า lib art-net ใช้โมดูลซ็อกเก็ตจาก python เพื่อส่งแพ็กเก็ต UDP ไปและกลับจาก Arduino

ทุกวิธีที่เริ่มต้นด้วย @socketio.on('F2B_***') กำลังรอการโทร F2B จากส่วนหน้า เมื่อได้รับแล้วจะดำเนินการตามนั้น ไม่ว่าจะเป็นการส่งคอมมานโด artnet หรือรับข้อมูลจากฐานข้อมูลแล้วส่งกลับไปด้านหน้า

เมธอด oled_show_info() ใช้เพื่อแสดง ip ของ ip (ทั้งบนอินเทอร์เฟซ wlan และ ethernet)

ดังนั้นเพียงแค่เรียกใช้รหัสด้วย

python3 app.py

ขั้นตอนที่ 4: ส่วนหน้าของ Pi

ส่วนหน้าของ Pi
ส่วนหน้าของ Pi

เพื่อให้สามารถแก้ไขส่วนหน้าของ pi ได้ ก่อนอื่นคุณต้องให้สิทธิ์เข้าถึงไดเรกทอรี /var/www/html/ นี่คือที่ที่ apache รับไฟล์เพื่อแสดงบนเว็บไซต์ ในการเข้าถึงให้ดำเนินการ:

sudo chmod 777 /var/www/html/

เสร็จแล้วรับโค้ดสำหรับ frontend ของ github ของฉันและวางไว้ในไดเร็กทอรี /var/www/html/

ส่วนหน้าใช้หลักการเดียวกันกับส่วนหลัง แต่ตอนนี้มันส่งคำสั่ง F2B_*** เมื่อกดปุ่มหรือเลื่อนตัวเลื่อน

และนั่นคือส่วนหน้าเสร็จแล้ว!

ขั้นตอนที่ 5: Arduino

Arduino
Arduino
Arduino
Arduino
Arduino
Arduino

สำหรับการใช้ Arduino คุณจะต้องใช้อีเธอร์เน็ตชิลด์และมอเตอร์ชิลด์ เพียงแค่กดเบา ๆ ลงบน Arduino ตรวจสอบให้แน่ใจว่าคุณไม่ได้ผลักตัวป้องกันมอเตอร์ไปที่แผงป้องกันอีเธอร์เน็ต มิฉะนั้นคุณจะลัดวงจรหมุดมอเตอร์ 2 ตัวที่การเชื่อมต่ออีเธอร์เน็ต!

รหัสสำหรับ Arduino สามารถพบได้ใน GitHub ของฉัน อัปโหลดไฟล์ artnet_winch.ino และทุกอย่างน่าจะดี

ตรวจสอบให้แน่ใจว่าคุณกำหนดพินที่ถูกต้องให้กับพินที่ถูกต้องของมอเตอร์ของคุณ หมุดมอเตอร์ชิลด์จะถูกเลือกด้วยหมุดส่วนหัวที่ด้านบนของตัวป้องกัน หมุดเหล่านี้ถูกเลือกภายใต้ //--- motor config. เช่นเดียวกับพินตัวเข้ารหัสที่ต้องเชื่อมต่อกับพินที่ถูกต้องของ Arduino

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

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

หากได้รับแพ็กเก็ต ArtPoll จะตอบกลับด้วย ArtPollReply ใช้ในฟังก์ชันคำบรรยายในแบ็กเอนด์เพื่อค้นหาอุปกรณ์ที่อยู่ในเครือข่าย

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

ฟังก์ชัน move_takel แปลงค่า DMX ที่กำหนด (ระหว่าง 0-255) เป็นตำแหน่งระหว่างตำแหน่งเริ่มต้นและสิ้นสุด (0 คือจุดสิ้นสุดและ 255 จุดเริ่มต้น) หากตำแหน่งของตัวเข้ารหัสไม่เท่ากับค่าที่แปลงแล้ว กว้านจะเลื่อนขึ้น/ลงขึ้นอยู่กับว่าคุณอยู่ที่ไหน

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

ติดตั้งได้หมด

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

ขั้นตอนที่ 6: เชื่อมต่อทั้งหมด

เมื่อ Arduino และ pi ได้รับการตั้งค่าทั้งหมดเพียงแค่เสียบสายอีเธอร์เน็ตทั้งสองสายในสวิตช์ของคุณและควรเป็นอย่างนั้น!

คุณสามารถทดสอบได้โดยท่องไปที่ wlan ip ที่ให้ไว้บนหน้าจอ oled และคุณควรเห็นไซต์ กดค้นหาอุปกรณ์เพื่อดูว่าคุณสามารถหาอุปกรณ์ได้หรือไม่ หากไม่แสดงอะไรเลย แสดงว่า Arduino ของคุณเชื่อมต่อไม่ดีหรือ IP ที่คุณเลือกไม่อยู่ในช่วงเดียวกับของ PI

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

ตรวจสอบให้แน่ใจว่าคอนโทรลเลอร์ของคุณเสียบเข้ากับเกราะและ IP นั้นอยู่ในช่วงของ PI และ Arduino

แค่นั้นแหละ!

แนะนำ: