Buat Animasi LED Web-Menakjubkan dengan Raspberry Pi & Arduino
Komponen dan Perlengkapan
Raspberry Pi 3 Model B
1
Arduino UNO
1
Stripe NeoPixel
1
Aplikasi dan Layanan Online
Arduino IDE
Tentang Proyek Ini
Ringkasan Proyek
Arduino Light Animation (ALA) adalah library Arduino untuk mengontrol LED dan menjalankan animasi berwarna dengan usaha minimum. Library ini menyediakan lebih dari 30 animasi yang telah ditentukan dan beberapa palet warna. Untuk informasi lebih lanjut tentang library ALA Anda dapat mengunjungi blog saya.
Proyek ini memperkenalkan papan Raspberry Pi 3 yang akan menyediakan halaman web yang memungkinkan mengontrol animasi, warna dan kecepatan dari ponsel pintar atau PC menggunakan browser web. Berikut adalah video pendek AlaWeb dalam aksi.
Terdapat beberapa komponen yang diperlukan untuk proyek ini.
Stripe RGB LED WS8212: Stripe ini berisi beberapa LED RGB yang dapat diaddress individu menggunakan antarmuka satu kabel, memungkinkan kontrol penuh atas warna setiap LED RGB.
Arduino: Papan mikrokontroler terkenal akan menjalankan library ALA saya untuk mengemudikan stripe LED menerima perintah dari Raspberry PI melalui port serial USB. Anda dapat menggunakan papan Arduino Uno, Nano dan Mega.
Raspberry PI: PC kecil ini akan menyediakan halaman web untuk mengontrol parameter pencahayaan dan animasi.
Proyek ini cukup sederhana jika Anda akrab dengan papan Arduino dan Raspberry PI. Saya telah membagi proyek menjadi dua langkah untuk memandu Anda melalui proses penyiapan.
Penghubungan
Stripe LED WS8213 sangat mudah dihubungkan. Anda hanya perlu cukup daya untuk mengemudikan semua LED ini. Untuk stripe sangat pendek (tidak lebih dari 10 LED) Anda bahkan dapat memberi daya langsung dari port USB Anda tetapi untuk stripe yang lebih panjang Anda harus memberikan sumber daya yang baik. Sebagai titik awal saya sarankan menggunakan pin 5V Arduino untuk memberi daya pada stripe LED seperti yang Anda lihat dalam video di atas.
Pin GND Arduino ke WS2812 GND
Pin 5V Arduino ke WS2812 5V
Pin 6 Arduino ke WS2812 Ctrl/Din pin
Jika Anda ingin mengemudikan lebih banyak piksel Anda harus memberikan lebih banyak daya. Perhitungannya mudah. Setiap LED RGB menarik 60mA pada putih terang penuh. Misalnya, untuk mengemudikan stripe 2 m panjang dengan 60 LED/meter Anda akan membutuhkan pasokan daya 5V yang menyediakan 2m * 60pixel/m * 60mA = 7,2 A.
Hubungkan pasokan daya Anda, papan Arduino dan stripe WS8212 seperti ini.
Power GND ke Arduino GND dan WS2812 GND
Power 5V ke pin 5V Arduino dan WS2812 5V
Pin 6 Arduino ke pin CTRL WS2812
Perhatikan bahwa memberi daya pada pin 5V Arduino Anda memberikan daya ke Arduino jadi Anda tidak perlu menghubungkannya ke sumber daya kedua pada konektor barrel. Hati-hati saat menggunakan skema penghubungan ini karena pin 5V melewati regulator tegangan dan perlindungan. Untuk detail lebih lanjut Anda dapat membaca panduan ini.
Untuk detail lebih lanjut tentang skema penghubungan stripe LED WS8212 baca panduan ini.
Pengaturan Arduino
Hubungkan papan Arduino Anda ke port USB PC Anda. Buka Arduino IDE dan buka Library Manager (Sketch > Include Library > Manage Libraries) untuk menginstal library ALA terbaru.
Buka contoh RgbStripSerial (Files > Examples > ALA > RgbStripSerial) dan verifikasi bahwa definisi konstanta NUM_PIXELS cocok dengan jumlah led pada stripe RGB Anda. Ingat bahwa jika Anda ingin mengemudikan lebih dari 10 piksel Anda harus menggunakan skema penghubungan yang ditingkatkan.
Anda sekarang dapat mengunggah sketsa ke papan Anda dengan menekan Ctrl+U dari Arduino IDE atau memilih aksi Upload di menu Sketch. Jika Anda mengalami masalah mengunggah sketsa, periksa tipe papan dan port di menu Tools.
Buka Arduino Serial Monitor (Tools > Serial Monitor) dan Anda akan melihat pesan sambutan seperti ini.
Setel ‘Newline’ line ending di kanan bawah dan pastikan baud rate diatur ke 9600.
Sekarang coba perintah berikut (tebal) tanpa spasi:
A=101 - nyalakan led
A=251 - jalankan animasi 'larson scanner'
P=2 - mengatur palet pelangi
A=242 - animasi lain
Itu kan keren?
Anda dapat bereksperimen dengan perintah dan kombinasi berbeda mengikuti referensi singkat ini:
A=[animation code] - Setel animasi. Kode animasi yang tersedia tercantum dalam file header AlaLed.h.
B=[brightness] - Setel kecerahan. Harus dalam rentang [0-100].
D=[duration] - Setel duransi dalam milidetik dari siklus animasi. Nilai standar antara 500 dan 5000.
C=[color] - Setel warna. Harus representasi heksadesimal RGB seperti E8A240.
P=[palette] - Setel palet. Harus dalam rentang [0-5].
Sekarang mari kita kontrol animasi dari ponsel pintar Anda.
Pengaturan Raspberry PI
Dalam bagian proyek ini kita akan menyiapkan papan Rapberry Pi untuk menjalankan web server kecil untuk mengontrol stripe LED dari browser web. Perhatikan bahwa aplikasi yang sama dapat berjalan di PC apa pun dengan Python 3 terinstal.
Prasyarat adalah Raspberry PI Anda sudah dikonfigurasi dan menjalankan OS Raspbian terbaru (Saya telah mengujinya dengan Stretch) dan terhubung ke internet.
Kami pertama-tama perlu menginstal beberapa library untuk Python 3 dengan perintah berikut:
sudo pip3 install pyserial flask
Buat direktori rumah untuk proyek Anda:
mkdir /home/pi/AlaWeb cd /home/pi/AlaWeb
Unduh repositori git AlaWeb ke direktori LightStrip dan ekstrak.
Semua perangkat lunak sekarang siap dan telah diatur. Hubungkan port USB Arduino ke Raspberry PI. Aplikasi AlaWeb yang baru saja Anda unduh akan berkomunikasi dengan papan Arduino melalui koneksi serial USB.
cd AlaWeb-master sudo python3 AlaWeb.py
Aplikasi AlaWeb akan mencantumkan semua port serial USB dan mencoba mendeteksi Arduino secara otomatis. Jika terus looping, hentikan eksekusi dan coba melewati nama port sebagai berikut (mengganti id port sesuai kebutuhan):
sudo python3 AlaWeb.py /dev/ttyACM0
Jika semuanya baik Anda seharusnya melihat sesuatu seperti ini.
Buka browser web dan hubungkan ke URL yang ditampilkan. Anda akan mendapatkan halaman web penuh tombol yang memungkinkan mengontrol stripe LED dari browser web.
Menikmati!
Kode
AlaWeb
AlaWeb adalah web server kecil yang ditulis dalam Python dan Flask untuk mengontrol animasi dari browser web.https://github.com/bportaluri/AlaWeb
ALA
Arduino Light Animation (ALA) adalah library untuk papan Arduino untuk menyederhanakan pengembangan animasi cahaya menggunakan LED dan stripe LED. Kunjungi halaman ini untuk detail lebih lanjut: https://yaab-arduino.blogspot.it/p/ala.htmlhttps://github.com/bportaluri/ALA