Situasi
Saya menjadi sukarelawan untuk organisasi kecil, kami mengadakan pesta, konser, dll.
Kami memiliki konsol kontrol cahaya yang mahal (Avolites Titan Quartz). Kami hanya menggunakannya untuk pertunjukan besar dan kontrol manual. Konsol terhubung ke perangkat LAN2DMX (dmXLAN Buddy) yang mengubah protokol Art-Net menjadi sinyal yang dapat dipahami oleh perangkat DMX.
Kami membutuhkan perangkat yang dapat merekam program dari konsol utama, dan kemudian memainkan preset ini tanpa henti. Ini harus mudah digunakan tanpa perlu membeli dan merawat peralatan yang mahal dan rumit.
Keputusan
Besi
- Raspberry Pi. Versi apa pun bisa digunakan, mungkin. Saya menggunakan detik yang ada
- Layar LCD. Saya menggunakan 16x2 dengan pelindung I2C sudah terpasang
- Rotary Encoder. Sesuatu yang bisa dipelintir dan disadap sebagai alat masukan. Saya membeli yang sudah jadi, dengan semua resistornya.
- Pelompat. Atau hanya kabel, jika disolder dengan erat ke sisir RPi
- Hal-hal kecil: casing, kabel mikro usb, tombol power
Menghubung
Tampilan :
- GND ke Pin 6 (Ground)
- VCC ke Pin 4 (daya 5V)
- SDA ke Pin 3 (GPIO 2)
- SLC pada Pin 5 (GPIO 3)
Pemintal :
- CLK ke Pin 12 (GPIO 18)
- DT ke Pin 13 (GPIO 27)
- SW ke Pin 11 (GPIO 17)
- + ke Pin 1 (daya 3V3)
- GND ke Pin 14 (Ground)
Catu daya :
Saya baru saja memutuskan kabel USB mikro, menyolder tombol. Saya mengeluarkan konektor daya bulat, yang lebih mudah digunakan.
Perangkat lunak
Sumbu
Kami mengambil Raspberry Pi OS (32-bit) Lite standar dan menginstalnya di SD menggunakan Etcher.
Tambahkan file "ssh" ke / boot untuk mengaktifkan SSH, karena Anda tidak ingin menghubungkan monitor dan keyboard.
SSH ke RPi:
youruser@homepc:~ $ ssh pi@[Pi-IP-address]
Kami memperbarui untuk semua orang:
pi@raspberrypi:~ $ sudo apt-get update
pi@raspberrypi:~ $ sudo apt-get dist-upgrade
Buka Arsitektur Petir
Instal paket untuk membangun inti perangkat kami - Open Lightning Architecture.pi@raspberrypi:~ $ sudo apt-get install git autoconf libtool bison flex uuid-dev libcppunit-dev python-protobuf python-numpy protobuf-compiler libmicrohttpd-dev libprotoc-dev i2c-tools python3-smbus python3-gpiozero python3-pip3
pi@raspberrypi:~ $ git clone https://github.com/OpenLightingProject/ola.git
pi@raspberrypi:~ $ cd ola
kompilasi dan instal. terlalu malas untuk mengumpulkan paket, dan saya berharap setelah proyek berakhir, tidak ada yang akan melihat ke dalam. akan memakan banyak waktu. pada RPi 2 dan kartu SD yang melambat, saya tinggalkan semalaman.
pi@raspberrypi:~/ola $ autoreconf -i
pi@raspberrypi:~/ola $ ./configure --enable-rdm-tests
pi@raspberrypi:~/ola $ make
pi@raspberrypi:~/ola $ sudo make install
Kami memuat atau memeriksa kinerja:
pi@raspberrypi:~/ola $ sudo ldconfig
pi@raspberrypi:~/ola $ olad -l 3
buka http: // [Pi-IP-address]: 9090 / ola.html dan lihat bahwa semuanya terbuka. pada kenyataannya, kita tidak membutuhkan server web, kita dapat menyembunyikannya di file konfigurasi dan membangunnya tanpa itu.
membuat layanan untuk systemd
pi@raspberrypi:~ $ sudo nano /etc/systemd/system/olad.service
[Unit]
Description=OLA daemon
After=network.target
StartLimitIntervalSec=0
[Service]
Type=simple
Restart=always
RestartSec=1
User=pi
ExecStart=olad
[Install]
WantedBy=multi-user.target
dan menjalankannya
pi@raspberrypi:~ $ sudo systemctl start olad
pi@raspberrypi:~ $ sudo systemctl enable olad
I2C
Anda harus mengaktifkan I2C untuk berinteraksi dengan tampilanpi@raspberrypi:~ $ sudo raspi-config
Di dalam "Opsi Antarmuka"> "I2C"> "aktifkan" lalu boot ulang.
Kami melihat alamat tampilan di bus I2C, kami akan membutuhkannya
pi@raspberrypi:~/dmx-priest $ sudo i2cdetect -y 1
Milik saya adalah 3f, itu harus didaftarkan di RPi_I2C_driver.py. Secara teori, akan lebih baik untuk membaca variabel sistem dari program, tetapi saya terlalu malas untuk menyelesaikannya setelah semuanya berfungsi.
IP statis
Beberapa konsol bagus dalam penyiaran, beberapa perlu didaftarkan secara manual, jadi mari kita buat alamat IP statis yang dapat dimengerti dan dapat diakses oleh semua perangkat dmx.
pi@raspberrypi:~ $ sudo nano /etc/dhcpcd.conf
# Example static IP configuration:
interface eth0
static ip_address=2.150.43.69/24
static routers=2.124.1.1
static domain_name_servers=2.124.1.1
dmx-pendeta
Program yang ditulis sendiri untuk bekerja dengan tampilan, twist, dan ola. Python Saya tidak tahu, PR dipersilahkan.
Menarik ola_patch untuk mendengarkan masukan (untuk merekam dari konsol) atau keluaran (untuk bekerja sendiri). Menggunakan ola_recorder untuk merekam dan memutar ulang.
Install:
pi@raspberrypi:~ $ sudo pip3 install git+https://github.com/Virusmater/dmx-priest
Tambahkan ke startup:
pi@raspberrypi:~ $ nano /etc/systemd/system/dmx-priest.service
[Unit]
Description=dmx-priest
Requires=olad.service
After=network.target olad.service
StartLimitIntervalSec=0
[Service]
Type=simple
Restart=always
RestartSec=1
User=pi
ExecStart=dmx-priest
[Install]
WantedBy=multi-user.target
pi@raspberrypi:~ $ sudo systemctl start dmx-priest
pi@raspberrypi:~ $ sudo systemctl enable dmx-priest
Yuzai
- Putar ke kanan 20 kali untuk menemukan mode perekaman. 20 kali agar pengguna tidak sengaja menulis apa pun. Tampilan: "Mode rekam - tekan kenop".
- Dorong: "Siap merekam - tekan untuk memulai"
- Mempersiapkan konsol utama untuk pemutaran. Kami menuntut terang dengan cara yang benar
- Klik untuk mulai merekam: "Rekaman sedang berlangsung - tekan untuk berhenti"
- Kami menunggu beberapa saat, tergantung pada program di konsol utama.
- Klik untuk berhenti merekam. Kami kembali ke menu: "Mode Putar - tekan kenop"
- Klik untuk masuk ke menu pemutaran. Preset yang baru direkam akan dalam format YYYY.mm.dd JJ: MM
- Klik pada preset atau klik 99_blackout untuk keluar dan mematikan semua lampu
Kode sumber
https://github.com/Virusmater/dmx-priest