สารบัญ:
- เสบียง
- ขั้นตอนที่ 1: การตั้งค่า Raspberry Pi
- ขั้นตอนที่ 2: ทำความเข้าใจว่าการตั้งค่าจะทำงานอย่างไร
- ขั้นตอนที่ 3: แบ็กเอนด์ของ Pi
- ขั้นตอนที่ 4: ส่วนหน้าของ Pi
- ขั้นตอนที่ 5: Arduino
- ขั้นตอนที่ 6: เชื่อมต่อทั้งหมด
วีดีโอ: เครื่องกว้านควบคุมด้วย Art-Net: 6 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:03
สวัสดีทุกคน ในคำแนะนำนี้ ฉันจะอธิบายว่าฉันสร้างเครื่องกว้านควบคุมด้วย 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
แบ็กเอนด์สำหรับระบบสามารถพบได้ใน 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 ได้ ก่อนอื่นคุณต้องให้สิทธิ์เข้าถึงไดเรกทอรี /var/www/html/ นี่คือที่ที่ apache รับไฟล์เพื่อแสดงบนเว็บไซต์ ในการเข้าถึงให้ดำเนินการ:
sudo chmod 777 /var/www/html/
เสร็จแล้วรับโค้ดสำหรับ frontend ของ github ของฉันและวางไว้ในไดเร็กทอรี /var/www/html/
ส่วนหน้าใช้หลักการเดียวกันกับส่วนหลัง แต่ตอนนี้มันส่งคำสั่ง F2B_*** เมื่อกดปุ่มหรือเลื่อนตัวเลื่อน
และนั่นคือส่วนหน้าเสร็จแล้ว!
ขั้นตอนที่ 5: 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
แค่นั้นแหละ!
แนะนำ:
Art Glove: 10 ขั้นตอน (พร้อมรูปภาพ)
Art Glove: Art Glove เป็นถุงมือที่สวมใส่ได้ซึ่งมีเซ็นเซอร์ประเภทต่างๆ เพื่อควบคุมกราฟิกอาร์ตผ่าน Micro:bit และ p5.js นิ้วจะใช้เซ็นเซอร์การโค้งงอที่ควบคุมค่า r,g,b และมาตรความเร่งใน Micro: บิตควบคุม x, พิกัด y
โครงการ Spin Art Turbine Remix: 4 ขั้นตอน
โครงการ Spin Art Turbine Remix: หากคุณสนใจศิลปะการหมุน มีปัญหาและปัญหานั้นคือ คุณต้องถือสว่านด้วยมือข้างหนึ่งขณะที่คุณวาดภาพด้วยอีกมือหนึ่ง ซึ่งบางครั้งอาจดูน่ารำคาญ แต่ผมรู้สึกว่าผมเจอแล้ว โซลูชันด้วยเทอร์ไบน์ที่เรียบง่ายนี้ คุณสามารถสร้าง
ไอเดียโครงการ DIY Inventive ART ด้วยไฟ LED และเสียง: 3 ขั้นตอน
ไอเดียโครงการ DIY Inventive ART Project ด้วยไฟ LED และเสียง: ในวิดีโอนี้ฉันจะแสดงวิธีสร้างโครงการศิลปะที่ไม่เหมือนใครที่บ้านโดยใช้แถบ LED และเสียง
ต่อเนื่อง - จอแสดงผล LED Art แบบสโลว์โมชั่น: 22 ขั้นตอน (พร้อมรูปภาพ)
Continuum - จอแสดงผล LED Art แบบสโลว์โมชั่น: Continuum คือการแสดงผลงานศิลปะแบบไลท์อาร์ตที่เคลื่อนไหวอย่างต่อเนื่อง โดยมีตัวเลือกให้เคลื่อนที่อย่างรวดเร็ว ช้า หรือช้าอย่างเหลือเชื่อ ไฟ LED RGB ในจอแสดงผลได้รับการอัปเดต 240 ครั้งต่อวินาที โดยจะมีการคำนวณสีที่ไม่ซ้ำกันในแต่ละการอัปเดต สไลเดอร์ด้านข้าง
Sketch to Digital Art - ไอรอนแมน: 10 ขั้นตอน
Sketch to Digital Art - Iron Man: ฉันเพิ่งหัดทำการ์ตูนบ้าง สิ่งที่ฉันทำมากเมื่อตอนที่ฉันยังเด็ก ฉันได้ทำงานสองสามชิ้นเมื่อเร็ว ๆ นี้เช่น Batman, Cyborg Superman และ The Flash ทั้งหมดนี้ทำด้วยมือ รวมทั้งการระบายสี สำหรับการ