İçindekiler:

Art-Net Kontrollü Vinç: 6 Adım
Art-Net Kontrollü Vinç: 6 Adım

Video: Art-Net Kontrollü Vinç: 6 Adım

Video: Art-Net Kontrollü Vinç: 6 Adım
Video: #3- Asp.NET Core 6 + Angular İle Mini E-Ticaret | Onion Architecture Altyapısında İnşa 2024, Haziran
Anonim
Art-Net Kontrollü Vinç
Art-Net Kontrollü Vinç

Herkese merhaba, bu derste art-net kontrollü vincimi nasıl oluşturduğumu açıklayacağım. "Senin neyin?" diye sorduğunuzu duydum, çok hızlı bir şekilde açıklamama izin verin. Birkaç yıl önce yerel gençlik evi ile bir parti verdik ve sahne tasarımı olarak hareketli bir çatı yapma fikrimiz vardı.

9 vinçle (tekler) dev beyaz bir örtü kaldırdık ve protokol dmx ile kontrol ettik. Ama o zamanlar kullandığımız vinçler 3 faz kontrollüydü. Bu yüzden, yukarı ve aşağı gitmesini sağlamak için, dmx kullanılarak kontrol edilen merkezi bir Arduino mega tarafından kontrol edilen bir röle sistemi oluşturmamız gerekiyordu. 230V ve 12 amperlik anahtarlama voltajlarının olduğu röle.

Daha anlaşılır terimlerle ifade etmek gerekirse, süper kararsız, güvenilmez ve aslında oldukça tehlikeli olan dev bir kablo ve röle karmaşası yaratmamız gerekiyordu.

Bu yüzden kendi kendimize, bunu yapmanın daha iyi bir yolu olması gerektiğini düşündük. Düşünmeye başladık ve bunu yapmanın en iyi yolunun Art-Net protokolü üzerinden kontrol edilen modüler bir vinç sistemi aracılığıyla olacağı sonucuna vardık, bu yüzden sadece bir voltaj kaynağına ve bir ethernet kablosuna ihtiyacımız olacaktı.

İşte tam olarak bunu yarattım ve size nasıl yaptığımı açıklamaya çalışacağım. Tüm kurulum, kurulum sürecini kontrol eden bir ahududu pi'ye dayanır. Kurulumu, kontrolü oradan vinçleri kontrol edecek hafif bir bilgisayara (Chamsys, vb.) veriyor.

Art-net protokolü ve denetleyiciler hakkında bir şeyler anladığınız gibi temel python, arduino ve ahududu pi bilgisine sahip olduğunuzu varsayıyorum.

Gereçler

Neye ihtiyacınız olacak:

  • ahududu pi
  • Arduino
  • Arduino Ethernet kalkanı
  • Arduino motor kalkanı
  • Herhangi bir OLED ekran
  • Ethernet kablosu
  • ethernet anahtarı
  • Enkoder yapılı DC Motor

Adım 1: Raspberry Pi'yi Ayarlama

Tamam, bunun çalışma şekli, ahududu pi'nin bir Apache ve bir MariaDB sunucusu çalıştırmasıdır. Apache sunucusu web sitesini barındırmak, MariaDB ise vinçlerin verilerini depolayacağımız bir veritabanı tutmaktır.

Pi'yi ssh ile kurmanın tüm süreçlerinde size rehberlik etmeyeceğim, eğer aşina değilseniz, işte iyi bir eğitim.

Öncelikle, terminal çalıştırmanızda ahududu pi'nin tamamen kurulduğundan emin olacağız:

apache'yi yüklemek için

sudo apt apache2'yi yükleyin -y

mariaDB'yi yüklemek için

sudo apt-get install mariadb-server

İhtiyacımız olan tüm python uzantıları bunlar

pip3 mysql-connector-python'u kurun

pip3 flask-socketio kurulumu pip3 flask-cors kurulumu pip3 kurulumu gevent pip3 kurulumu gevent-websocket kurulumu pip3 netifaces kurulumu

Oled ekran için burada bulunabilecek biraz daha zor kurulum sürecine ihtiyacımız var.

Tamam pi bu kadar!

Adım 2: Kurulumun Nasıl Çalışacağını Anlama

Yani vinci nasıl kurmak istersiniz, ona bir başlangıç konumu ve bir bitiş konumu vererek. Belirli bir kanala atanacak ve bu kanal ile sadece seçilen stat ve bitiş pozisyonu arasında hareket edebileceksiniz.

Bu konumu seçmek için vinci onlara hareket ettirmeniz gerekecek, oraya vardığınızda belirli bir kanalı 56 değerine çevireceksiniz. Bu tam kanal bu değere ulaştığında bunun onun son başlangıç / bitiş konumu olduğunu bilecektir., yukarı veya aşağı hareket etmesi gerekiyorsa veya artnet değerlerini değiştirmesi gerekiyorsa. Vinci hareket ettirmek de belirli bir kanalı 56'ya ayarlayarak yapılır. "Peki neden 56" diye merak ettiğinizi duydum, bir şey seçmem gerekiyordu:).

Konum, DC motor üzerinde bulunan enkoder üzerinden hesaplanır.

Adım 3: Pi'nin Arka Ucu

Pi'nin arka ucu
Pi'nin arka ucu

Sistemin arka ucu benim github'ımda bulunabilir. Art-net protokolü için kendi kütüphanemi yazdım, bu yüzden onu kullanmaktan çekinmeyin. Size her şeyi satır satır anlatmayacağım ama size her şeyin büyük resmini vereceğim.

Kod, pi üzerinde çalışan apache sunucusuyla iletişim kuran bir şişe sunucusunu çalıştırır. Ön uca veri göndermek ve almak için flask-socketio modülünü kullanır. art-net lib, arduino'ya ve arduino'dan UDP paketleri göndermek için python'dan soket modülünü kullanır.

@socketio.on('F2B_***') ile başlayan her yöntem, ön uçtan bir F2B çağrısı beklemektedir. Alındıktan sonra buna göre eylemi gerçekleştirecektir. İster bir artnet komando gönderin, ister DB'den veri alın ve onu öne geri gönderin.

oled_show_info() yöntemi ipin ipini görüntülemek için kullanılır (hem wlan hem de ethernet arayüzlerinde).

bu yüzden sadece kodu çalıştırın

python3 uygulaması.py

Adım 4: Pi'nin Ön Yüzü

Pi'nin ön ucu
Pi'nin ön ucu

Pi'nin ön ucunu düzenleyebilmek için önce kendinize /var/www/html/ dizinine erişim vermeniz gerekir. Burası apache'nin dosyalarını web sitesinde görüntülemek için aldığı yerdir. Erişimi almak için şunu çalıştırın:

sudo chmod 777 /var/www/html/

Şimdi hepsi bitti, github'ımın ön ucunun kodunu alın ve /var/www/html/ dizinine yerleştirin.

Ön uç, arka uç ile aynı prensibi kullanır, ancak şimdi bir düğmeye basıldığında veya kaydırıcı hareket ettirildiğinde F2B_*** komutlarını gönderir.

Ve işte önyüz yapıldı!

Adım 5: Arduino

Arduino
Arduino
Arduino
Arduino
Arduino
Arduino

Arduino'yu kullanmak için ethernet kalkanını ve motor kalkanını kullanmanız gerekecek. Onları nazikçe arduinoya itin. Motor blendajını ethernet blendajına fazla itmediğinizden emin olun, aksi takdirde ethernet bağlantısındaki 2 motor pinini kısa devre yapacaksınız!

Arduino'nun kodu benim github'ımda da bulunabilir. artnet_winch.ino dosyasını yükleyin ve her şey yolunda olsun.

Doğru pinleri motorunuzun doğru pinlerine tanımladığınızdan emin olun. Motor kalkanı pimleri, kalkanın üstündeki başlık pimleri ile seçilir. Bu pinler //--- motor konfigürasyonu altında seçilir. Arduino'nun sağ pinlerine bağlanması gereken enkoder pinleri gibi.

Ayrıca kalkanın MAC adresinin doğru olduğundan emin olun. Bu, kalkanın altındaki bir çıkartmada bulunabilir ve MAC değişkeninde düzenlenebilir. Pi için kullandığınız IP'nin PI ile aynı aralıkta olması gerekir, bu normalde oled ekranında bulunabilir.

Kod biraz fazla görünüyor ama anlaşılması o kadar da zor değil. Temel olarak ethernet kalkanı sürekli gelen udp paketlerini okur. Bu paket bir Artnet paketiyse, kodunu çözer ve ihtiyaç duyduğu bilgiyi ondan alır. Farklı artnet paketleri, Art-Net web sitesinde güzel bir şekilde açıklanmıştır, bu yüzden eğer ilgileniyorsanız, hepsinin ne yaptığını okuyabilirsiniz.

Bir ArtPoll paketi alırsa, bir ArtPollReply ile yanıt verecektir. bu, ağda hangi cihazların olduğunu bulmak için arka uçtaki belirtme işlevinde kullanılır.

ArtDMX paketi alırsa, paketin kodunu çözer ve verilen verileri belirli kurulum komutlarını yürütmek veya vinci yerine hareket ettirmek için kullanır.

move_takel işlevi, verilen DMX değerini (0-255 arasında) başlangıç ve bitiş konumu (0 bitiş ve 255 başlangıç) arasındaki bir konuma dönüştürür. Enkoderin konumu dönüştürülen değere eşit değilse, vinç bulunduğunuz yere bağlı olarak yukarı/aşağı hareket edecektir.

Konumuna ayak uydurabilmesi için PI ve arduino arasında bir geri bildirim döngüsü üzerinde çalışıyordum ama arduinomun programı depolamak için belleği tükendi:).

hepsini monte etmek

Montajı için motoru metal bir tutucuya bağladım ve üstüne bir tür boru koydum. Daha sonra tüpe bir kordon bağlayıp ağırlık olarak bir rulo bant kullandık. Bu çok basit ve onu monte etmek istediğiniz şekilde çok yaratıcı olabilirsiniz.

Adım 6: Hepsini Bağlama

Arduino ve pi kurulumu tamamlandıktan sonra, anahtarınıza her iki ethernet kablosunu da takmanız yeterlidir, hepsi bu kadar!

Oled ekranında verilen wlan ip'e girerek test edebilir ve siteyi görmelisiniz. Aygıtı bulup bulamayacağınızı görmek için aygıt bul'a basın. Hiçbir şey göstermiyorsa, arduino'nuz iyi bağlanmamıştır veya seçtiğiniz IP, PI ile aynı aralıkta değildir.

Cihazı gördüğünüzde sadece kuruluma basın. Kurulum menüsünde vinci okları kullanarak hareket ettirebilir ve kaydırıcı ile başlangıç ve bitiş konumlarının doğru olup olmadığını test edebilirsiniz.

Denetleyicinizin kalkana da takılı olduğundan ve IP'sinin PI ve arduino aralığında olduğundan emin olun.

Bu kadar!

Önerilen: