Isi kandungan:

Mulakan Pertunjukan Cahaya Krismas Anda Dengan Butang: 5 Langkah
Mulakan Pertunjukan Cahaya Krismas Anda Dengan Butang: 5 Langkah

Video: Mulakan Pertunjukan Cahaya Krismas Anda Dengan Butang: 5 Langkah

Video: Mulakan Pertunjukan Cahaya Krismas Anda Dengan Butang: 5 Langkah
Video: A Girl disguise herself a Boy and entered into all boys school..now the boys are trying to find her 2024, November
Anonim
Mulakan Pertunjukan Cahaya Krismas Anda Dengan Butang
Mulakan Pertunjukan Cahaya Krismas Anda Dengan Butang

Semasa menjalankan pertunjukan cahaya Krismas yang diselaraskan dengan muzik, anda mungkin ingin memulakan pertunjukan dengan menekan butang. Tutorial ini hanya berlaku untuk rancangan yang dikendalikan melalui Falcon Pi Player (FPP) yang berjalan di Raspberry Pi. Sekiranya anda menjalankan FPP maka anda mungkin menggunakan pengawal Falcon dan menggunakan xLights atau LightORama untuk menyusun rancangan anda. Sekiranya tiada kata-kata itu memberi makna kepada anda, tutorial ini mungkin sedikit untuk anda buat sekarang dan anda harus bermula dengan membaca wiki ini https://auschristmaslighting.com/wiki/ dan menyertai kumpulan Facebook seperti di bawah

  • xLights:
  • Lampu Krismas lanjutan umum:
  • Pemain Falcon Pi:
  • Perkongsian idea kandang / prop:
  • "Tidak khusus berkaitan dengan xLights atau LOR":
  • Penjual xLights Holiday Light:
  • Lakukan Sendiri Krismas:

Langkah 1: Senarai Bahagian

Anda memerlukan item berikut:

  • Butang. Saya menggunakan yang ini dengan lampu cincin LED di sekelilingnya: [Amazon]
  • Perintang. Sebaiknya 200Ω atau lebih besar (2 ini jika anda menggunakan butang LED) Standard 1 / 4W atau 1 / 8W baik-baik saja
  • Wayar penyambung. Tolok yang harus anda gunakan bergantung pada sejauh mana butang berada dari Pi anda. Saya menggunakan wayar 18awg selama kira-kira 10 kaki dari Pi saya dan ia berfungsi dengan sempurna
  • Kaedah untuk menyambungkan wayar ke pin GPIO Pi. Anda boleh menggunakan kabel pita dengan papan pemisah, atau anda boleh menggunakan beberapa penyambung wanita seperti saya. Kami hanya memerlukan 3 wayar - Ground, 5V, dan data untuk butang. [Amazon]
  • (Pilihan) Penyambung kalis air di setiap hujungnya untuk penyelenggaraan yang mudah. Saya menggunakan penyambung kelas laut 3-pin: [Amazon]
  • (Pilihan) Penyambung pantat pengecutan panas [Amazon]

Langkah 2: Diagram Pendawaian

Gambarajah pendawaian
Gambarajah pendawaian
Gambarajah pendawaian
Gambarajah pendawaian
Gambarajah pendawaian
Gambarajah pendawaian
Gambarajah pendawaian
Gambarajah pendawaian

Gambar menunjukkan rajah pendawaian untuk butang tanpa LED yang disertakan, dan butang dengan LED. Cara saya menyusun rajah pendawaian membolehkan anda menjalankan butang dan lampu (berterusan) dengan hanya 3 wayar.

Untuk pin GPIO, pilih mana-mana pin GPIO pada pi. Gunakan pin + 5V dan Gnd juga. Anda mungkin dapat melepaskan dengan menggunakan pin 3.3V, tetapi penurunan voltan pada beberapa kaki wayar mungkin menjadikan isyarat tidak boleh dipercayai atau tidak cukup untuk menyalakan LED.

CATATAN: Penyambung 3 pin tidak akan masuk melalui lubang yang anda perlukan untuk menggerudi butang dengan lampu cincin LED. Oleh itu, pasangkan penyambung selepas meletakkan butang di pelat muka anda.

Langkah 3: Persediaan Asas Pemain Falcon Pi

CATATAN - FPP sentiasa dikemas kini, dan sangat mungkin mereka akan meningkatkan sokongan skrip mereka atau mereka akan memasukkan "butang tekan untuk memulakan" sebagai ciri lalai yang memerlukan pengaturcaraan yang lebih sedikit.

Saya mengikuti video di atas kerana pada mulanya menyiapkan semuanya.

Saya mendapati video membosankan dan lambat, jadi berikut adalah ringkasannya:

  • Import urutan anda ke fpp menggunakan pengurus fail
  • Buat senarai main dengan urutan di dalamnya. Untuk langkah seterusnya senarai main akan dipanggil "playme"
  • Buka fail notepad kosong dan taipkan yang berikut:

    • #! / bin / sh
    • fpp -P playme
  • Simpan sebagai fail.sh di komputer anda
  • Pergi ke pengurus fail di FPP dan muat naik fail skrip anda. Pergi ke tab "Skrip" dan pastikan terdapat di sana
  • Di bawah Status / Kawalan pergi ke Acara
  • Buat acara baru. ID Peristiwa 1/1, Nama acara apa sahaja, Urutan Kesan TIADA, Skrip Acara
  • Pergi ke bawah Input / Output Setup dan klik pencetus GPIO
  • Togol pin yang dilekatkan pada butang anda. Sekiranya ia akan menjadi rendah ketika anda menekan butang kemudian letakkan acara pada pilihan Jatuh, jika aktif tinggi maka letakkan acara di Rising.
  • Klik butang Reboot dengan amaran yang muncul selepas anda membuat semua perubahan

Setelah melakukan semua ini, anda seharusnya dapat menekan butang untuk memulakan rancangan anda. Woohoo!

Walau bagaimanapun, kaedah ini mempunyai beberapa batasan. Sekiranya anda menekan butang sekali lagi semasa senarai main berjalan, 1) tidak akan melakukan apa-apa atau 2) akan merosakkan FPP dan menolak untuk melakukan apa-apa dengan butang anda sehingga anda menghidupkannya semula. Oleh itu, jika anda hanya menggunakan butang sebagai kaedah dramatik untuk memainkan rancangan anda berdasarkan arahan, kaedah di atas adalah semua yang anda perlukan.

Sekiranya anda memerlukan sesuatu yang lebih, teruskan ke langkah seterusnya

Langkah 4: Skrip Yang Lebih Kuat

Berikut adalah skrip yang akhirnya saya sampaikan. Anda boleh melihat skrip di Github di sini: [Gist. Github]

  • Sekiranya seseorang menekan butang pada waktu "malam", ia akan memainkan Tiger Rag (My Song1) dan kemudian pergi ke urutan siap sedia yang melambung tanpa henti.
  • Sekiranya butang ditekan semasa Tiger Rag dimainkan maka ia akan memulakan lagu kedua saya, Hallelujah, dan kemudian akan pergi ke urutan siap sedia selama-lamanya.
  • Tetapi jika seseorang menekan butang pada waktu siang atau sangat larut malam, ia akan memainkan Tiger Rag sekali dan kemudian mematikan semua lampu.

Ini membolehkan butang berfungsi pada bila-bila masa sepanjang hari tetapi lampu tidak semestinya menyala sepanjang masa. Ini juga memungkinkan beberapa lagu dimainkan dari 1 butang dengan mengenal pasti lagu mana yang sedang dimainkan, mengakhiri lagu itu, dan memainkan lagu "berikutnya".

Anda boleh mendapatkan lebih banyak sumber untuk skrip dalam FPP di sini: https://github.com/FalconChristmas/fpp-scriptsUntuk logik yang lebih rumit, cukup google "bash script _" di mana garis bawah adalah apa yang anda cuba lakukan. Anda boleh menguji skrip anda menggunakan FPP Shell (nama pengguna fpp password falcon) Perintah asasnya adalah seperti berikut.

Perhatikan penggunaan huruf besar !!

  • Capital -P akan memainkan senarai main sekali, huruf kecil -p akan mengulanginya.
  • fpp -v 66 Tetapkan kelantangan hingga 66%
  • fpp -c berhenti Hentikan tayangannya dengan segera
  • fpp -C stop Ini mungkin berhenti tunjuk dengan anggun
  • fpp -p thisPlaylistName Main iniPlaylistName diulang (jadi lagu intro dimainkan sekali, maka Main item akan diulang selama-lamanya.
  • fpp -P iniPlaylistName MemainPlaylistName ini sekali
  • eventScript "$ {MEDIADIR} / skrip / $ {thisScriptVariable}" Menjalankan skrip. Dalam kes di sebelah kiri berfungsi jika anda menyimpan nama skrip anda ke dalam pemboleh ubah di suatu tempat di atas, seperti iniScriptVariable = "PlayTheSong.sh"

ButtonSuperScript.sh

#! / bin / sh
###########################################################
#Untuk dijalankan sekiranya butang ditekan.
# Anda harus mempunyai dua senarai main untuk setiap lagu - satu dengan
# hanya lagu sebagai "Main pertama" dan tidak ada yang utama,
# dan yang lain dengan lagu sebagai permainan pertama dan siaga anda
# urutan sebagai urutan "Utama". (Sekurang-kurangnya jika anda mahu
# untuk melakukan perkara yang tepat yang saya lakukan)
#
# Sebagai contoh, jika lagu anda adalah Tiger Rag, anda semestinya memilikinya
# senarai main "TigerRag", "TigerRagStandby", dan "Siap sedia"
#
###########################################################
# Senarai main untuk dijalankan jika antara 6 dan 11
NightSong1 = "TigerRagStandby"
NightSong2 = "HallelujahStandby"
NightStandby = "Bersedia"
# Senarai main untuk dijalankan pada siang hari atau selepas 11
DaySong1 = "TigerRag"
DaySong2 = "Hallelujah"
DayStandby = "Bersedia"
# Waktu dan mati dalam masa 24 jam. Sekiranya anda mahu minit, semoga berjaya
OnHour = 17
OffHour = 23
###########################################################
# Ikut skrip. #
###########################################################
# Dapatkan status semasa kami (IDLE = 0, BERMAIN = 1, Berhenti dengan Anggun = 2)
STATUS = $ (fpp -s | potong -d ',' -f2)
#Dapatkan senarai main yang sedang berjalan dan potong menjadi 7 huruf
SENARAI MAIN = $ (fpp -s | cut -d ',' -f4 | cut -c1-7)
#Ini akan menjadi "keduanya" jika memainkan lagu, dan "urutan" jika siap
#digunakan untuk menentukan sama ada urutan Siaga berjalan
STANDBYSTRING = $ (fpp -s | cut -d ',' -f5)
# 7 huruf pertama nama senarai main untuk perbandingan
#Hanya 7 huruf supaya "Song1Standby" dan "Song1" sama
#Okay sebenarnya sebenarnya huruf x pertama dan x mestilah nama lagu terpendek yang anda ada
Senarai Main Sedia = $ (echo $ NightStandby | cut -c1-7)
Song1Playlist = $ (gema $ NightSong1 | cut -c1-7)
Song2Playlist = $ (gema $ NightSong2 | potong -c1-7)
STARTITEM = ""
#Dapatkan jam semasa dalam masa ketenteraan
CurrentHour = $ (tarikh + "% H")
#Cetak status beberapa perkara - "echo" seperti "cetak" dalam kebanyakan bahasa
#Berguna untuk menguji jika pelbagai perkara dipangkas atau dikira dengan betul
echo CurrentHour ialah $ CurrentHour
senarai main echo Running ialah: $ PLAYLIST
echo Song2Playlist ialah: $ Song2Playlist
Status echo ialah: $ STATUS
# Tetapkan kelantangan hingga 80% pada waktu malam, 100% sebaliknya
#Jadi jika saya tidur, ia tidak sekuat
#if [$ CurrentHour -lt $ OffHour -a $ CurrentHour -ge 11]; kemudian
# fpp -v 100
#selamat
# fpp -v 80
#fi
# Periksa bahawa kita mendapat sesuatu yang bermakna
jika [-z "$ {STATUS}"]; maka
gema "Ralat dengan nilai status"> & 2
jalan keluar 1
fi
# Bertindak mengikut status semasa
kes $ {STATUS} dalam
# IDLE
0)
#Malam malam - mainkan Song1 dengan bersedia
jika [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; maka
echo Bermain NightSong1
hentian fpp -c
fpp -p "$ {NightSong1}" $ {STARTITEM}
#Waktu atau benar-benar lewat - mainkan lagu 1 sekali kemudian matikan lampu
yang lain
echo Bermain DaySong1
hentian fpp -c
fpp -P "$ {DaySong1}" $ {STARTITEM}
fi
;;
# BERMAIN atau BERHENTI DENGAN SEGERA (anggun berlaku sekiranya butang ditekan semasa senarai main yang dijadualkan berakhir)
1 | 2)
#Standby sedang berjalan - ini berfungsi kerana standby adalah satu-satunya urutan bukan media saya
jika ["$ STANDBYSTRING" == "urutan"]; maka
#Malam malam - mainkan Song1 dengan bersedia
jika [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; maka
echo Bermain NightSong1 untuk waktu malam
hentian fpp -c
fpp -p "$ {NightSong1}"
#Waktu atau benar-benar lewat - mainkan kain harimau sekali kemudian matikan lampu
yang lain
echo PlayingDaySong1 dari bermain
hentian fpp -c
fpp -P "$ {DaySong1}"
fi
#Untuk menyokong lebih banyak lagu, salin bahagian ini dan ubah "Song2Playlist" di bahagian terakhir menjadi Song # Playlist
# Song1 sedang berjalan
elif ["$ PLAYLIST" == "$ Song1Playlist"]; kemudian
#Malam malam - mainkan Hallelujah dengan bersedia
jika [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; maka
echo Bermain HallelujahStandby dari Tiger Rag sedang berjalan
hentian fpp -c
fpp -p "$ {NightSong2}"
#Day time atau betul-betul lewat - mainkan Song2 sekali kemudian matikan lampu
yang lain
echo Bermain Hallelujah sekali dari Tiger Rag sedang berjalan
hentian fpp -c
fpp -P "$ {DaySong2}"
fi
#LAGU TERAKHIR BERJALAN - BERMAIN STANDBY
elif ["$ PLAYLIST" == "$ Song2Playlist"]; kemudian
#Malam malam - main siaga dalam keadaan gelung
jika [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; maka
echo Memainkan bersedia semasa diulang
hentian fpp -c
fpp -p "$ {NightStandby}"
#Day waktu atau benar-benar lewat - main siap sedia sekali sahaja
yang lain
echo Main Bersedia Sekali
hentian fpp -c
fpp -P "$ {DayStandby}"
fi
yang lain
echo Atas sebab tertentu elsecase terakhir dilaksanakan.
hentian fpp -c
fpp -P "$ {DaySong1}"
fi
;;
esac

lihat rawButtonSuperScript.sh yang dihoskan dengan ❤ oleh GitHub

Langkah 5: (Pilihan) Plat muka untuk Butang

Saya mempunyai akses ke pemotong laser di Clemson melalui Makerspace, jadi saya dengan cepat membuat reka bentuk untuk memotong + etch. Terdapat lubang di tengah untuk butang saya, kata-kata mengatakan "Push Me" dalam fon Krismas, dan kepingan salji di sekitar butang. Saya menyemburkan cat kayu putih dan kemudian menutupnya dengan pita pelekat (supaya pemotong laser tidak melecet bahagian yang saya tidak mahu terukir). Fail yang saya gunakan dilampirkan.

Disyorkan: