Mục lục:

Bắt đầu buổi trình diễn ánh sáng Giáng sinh của bạn bằng một nút: 5 bước
Bắt đầu buổi trình diễn ánh sáng Giáng sinh của bạn bằng một nút: 5 bước

Video: Bắt đầu buổi trình diễn ánh sáng Giáng sinh của bạn bằng một nút: 5 bước

Video: Bắt đầu buổi trình diễn ánh sáng Giáng sinh của bạn bằng một nút: 5 bước
Video: BURN IT UP DANCE - MINH ANH - LAMITA STAR MV 2024, Tháng mười một
Anonim
Bắt đầu trình diễn ánh sáng Giáng sinh của bạn bằng một nút
Bắt đầu trình diễn ánh sáng Giáng sinh của bạn bằng một nút

Khi chạy chương trình ánh sáng Giáng sinh được đồng bộ hóa với âm nhạc, bạn có thể muốn bắt đầu chương trình bằng cách nhấn một nút. Hướng dẫn này chỉ áp dụng cho chương trình được điều khiển thông qua Falcon Pi Player (FPP) chạy trên Raspberry Pi. Nếu bạn đang chạy FPP thì có thể bạn đang sử dụng bộ điều khiển Falcon và sử dụng xLights hoặc LightORama để trình tự chương trình của mình. Nếu không có từ nào trong số đó có ý nghĩa đối với bạn, hướng dẫn này có lẽ hơi khó hiểu lúc này và bạn nên bắt đầu bằng cách đọc wiki này https://auschristmaslighting.com/wiki/ và tham gia một nhóm Facebook như dưới đây

  • xLights:
  • Tổng quát về đèn Giáng sinh nâng cao:
  • Trình phát Falcon Pi:
  • Chia sẻ ý tưởng kèm theo / đề xuất:
  • "Không cụ thể xLights hoặc LOR Liên quan":
  • Các nhà cung cấp xLights Holiday Light:
  • Do It Yourself Christmas:

Bước 1: Danh sách bộ phận

Bạn sẽ cần các mục sau:

  • Một nut bâm. Tôi đã sử dụng cái này với đèn LED vòng quanh nó: [Amazon]
  • Một điện trở. Tốt nhất là 200Ω trở lên (2 trong số này nếu bạn đang sử dụng nút LED) Tiêu chuẩn 1 / 4W hoặc 1 / 8W là ổn
  • Đầu nối dây. Thước đo bạn nên sử dụng phụ thuộc vào khoảng cách nút này so với số Pi của bạn. Tôi đã sử dụng dây 18awg trong khoảng 10 feet từ Pi của tôi và nó hoạt động hoàn hảo
  • Một cách để kết nối dây với chân GPIO của Pi. Bạn có thể sử dụng cáp ruy-băng với breadboard đột phá hoặc bạn chỉ có thể sử dụng một số đầu nối cái như tôi đã làm. Chúng tôi chỉ cần 3 dây - Nối đất, 5V và dữ liệu cho nút. [Amazon]
  • (Tùy chọn) Một đầu nối chống thấm nước ở mỗi đầu để dễ bảo trì. Tôi sử dụng đầu nối cấp hàng hải 3 chân: [Amazon]
  • (Tùy chọn) Đầu nối mông co nhiệt [Amazon]

Bước 2: Sơ đồ đấu dây

Sơ đồ hệ thống dây điện
Sơ đồ hệ thống dây điện
Sơ đồ hệ thống dây điện
Sơ đồ hệ thống dây điện
Sơ đồ hệ thống dây điện
Sơ đồ hệ thống dây điện
Sơ đồ hệ thống dây điện
Sơ đồ hệ thống dây điện

Các hình ảnh hiển thị sơ đồ đấu dây cho nút không có đèn LED đi kèm và nút có đèn LED. Cách tôi thiết lập sơ đồ nối dây cho phép bạn chạy một nút và một đèn (sáng liên tục) chỉ với 3 dây.

Đối với chân GPIO, hãy chọn bất kỳ chân GPIO nào trên pi. Sử dụng cả chân + 5V và Gnd. Bạn có thể tránh sử dụng chân 3,3V, nhưng điện áp giảm trên vài feet dây có thể làm cho tín hiệu không đáng tin cậy hoặc không đủ để làm sáng đèn LED.

LƯU Ý: Đầu nối 3 chân sẽ không khớp qua lỗ bạn cần khoan cho nút có đèn LED vòng. Vì vậy, hãy gắn đầu nối sau khi đặt nút vào tấm che mặt của bạn.

Bước 3: Thiết lập cơ bản cho Falcon Pi Player

LƯU Ý - FPP liên tục được cập nhật và hoàn toàn có thể họ sẽ cải thiện khả năng hỗ trợ tập lệnh của mình hoặc họ sẽ bao gồm "nút nhấn để bắt đầu" làm tính năng mặc định yêu cầu ít lập trình hơn.

Tôi đã làm theo video ở trên để bắt đầu thiết lập mọi thứ.

Tôi thấy video nhàm chán và chậm, vì vậy đây là tóm tắt về nó:

  • Nhập trình tự của bạn vào fpp bằng trình quản lý tệp
  • Tạo một danh sách phát với trình tự trong đó. Đối với các bước tiếp theo, danh sách phát sẽ được gọi là "playme"
  • Mở tệp notepad trống và nhập như sau:

    • #! / bin / sh
    • fpp -P playme
  • Lưu nó dưới dạng tệp.sh trên máy tính của bạn
  • Đi tới trình quản lý tệp trong FPP và tải lên tệp tập lệnh của bạn. Chuyển đến tab "Tập lệnh" và đảm bảo rằng nó ở đó
  • Trong Trạng thái / Kiểm soát, chuyển đến Sự kiện
  • Tạo một sự kiện mới. ID sự kiện 1/1, Tên sự kiện bất kỳ, Chuỗi hiệu ứng KHÔNG, Tập lệnh sự kiện
  • Đi tới Thiết lập Đầu vào / Đầu ra và nhấp vào trình kích hoạt GPIO
  • Chuyển đổi ghim mà nút của bạn được gắn vào. Nếu nó sẽ xuống thấp khi bạn nhấn nút thì hãy đặt sự kiện vào tùy chọn Giảm, nếu nó hoạt động ở mức cao thì hãy đặt sự kiện vào Tăng.
  • Nhấp vào nút Khởi động lại bằng cảnh báo nó bật lên sau khi bạn thực hiện tất cả các thay đổi

Sau khi thực hiện tất cả những điều này, bạn sẽ có thể nhấn nút để chương trình của bạn bắt đầu. Tuyệt vời!

Tuy nhiên, phương pháp này có một số hạn chế. Nếu bạn nhấn lại nút trong khi danh sách phát đang chạy, thì nút 1) sẽ không làm được gì hoặc 2) sẽ làm hỏng FPP và từ chối thực hiện bất kỳ điều gì với nút của bạn cho đến khi bạn khởi động lại nó. Vì vậy, nếu bạn chỉ sử dụng một nút như một cách kịch tính để chơi chương trình của bạn theo lệnh, thì phương pháp trên sẽ là tất cả những gì bạn cần.

Nếu bạn cần thêm thứ gì đó, hãy tiếp tục bước tiếp theo

Bước 4: Tập lệnh mạnh mẽ hơn

Dưới đây là kịch bản mà cuối cùng tôi đã đến. Bạn có thể xem script trên Github tại đây: [Gist. Github]

  • Nếu ai đó nhấn nút trong giờ "đêm", nó sẽ phát Tiger Rag (Bài hát 1 của tôi) và sau đó chuyển đến trình tự chờ lặp lại vô hạn.
  • Nếu nút được nhấn trong khi Tiger Rag đang phát thì nó sẽ bắt đầu bài hát thứ hai của tôi, Hallelujah, và sau đó sẽ chuyển sang trình tự chờ vô thời hạn.
  • Nhưng nếu ai đó nhấn nút vào ban ngày hoặc rất muộn vào ban đêm, nó sẽ chơi Tiger Rag một lần và sau đó tắt tất cả đèn.

Điều này cho phép nút hoạt động bất kỳ lúc nào trong ngày nhưng đèn không nhất thiết phải luôn sáng. Nó cũng cho phép phát nhiều bài hát từ 1 nút bằng cách xác định bài hát nào hiện đang phát, kết thúc bài hát đó và phát bài hát "tiếp theo".

Bạn có thể tìm thêm tài nguyên để viết script trong FPP tại đây: https://github.com/FalconChristmas/fpp-scriptsĐể có logic phức tạp hơn, chỉ cần google “bash script _” trong đó dấu gạch dưới là những gì bạn đang cố gắng thực hiện. Bạn có thể kiểm tra các tập lệnh của mình bằng cách sử dụng FPP Shell (con chim ưng mật khẩu fpp tên người dùng) Các lệnh cơ bản như sau.

Chú ý đến cách viết hoa !!

  • Viết hoa -P sẽ phát một danh sách phát một lần, -p viết thường sẽ lặp lại danh sách đó.
  • fpp -v 66 Đặt âm lượng thành 66%
  • fpp -c stop Dừng chương trình ngay lập tức
  • fpp -C dừng Điều này có thể dừng hiển thị một cách duyên dáng
  • fpp -p thisPlaylistName Phát lặp lại bài hát nàyPlaylistName (vì vậy bài hát giới thiệu sẽ phát một lần, sau đó nội dung chính sẽ được lặp lại vô thời hạn.
  • fpp -P thisPlaylistName Phát thisPlaylistName một lần
  • eventScript "$ {MEDIADIR} / scripts / $ {thisScriptVariable}" Chạy một tập lệnh. Trong trường hợp bên trái, nó hoạt động nếu bạn đã lưu tên tập lệnh của mình vào một biến ở đâu đó ở trên, như thisScriptVariable =”PlayTheSong.sh”

ButtonSuperScript.sh

#! / bin / sh
###########################################################
# Để chạy nếu nút được nhấn.
# Bạn nên có hai danh sách phát cho mỗi bài hát - một danh sách có
# chỉ là bài hát là "Lần chơi đầu tiên" và không có gì trong chính,
# và một bài hát khác với bài hát là lần phát đầu tiên và chế độ chờ của bạn
# trình tự làm trình tự "Chính". (Ít nhất nếu bạn muốn
# để làm chính xác công việc mà tôi đang làm)
#
# Ví dụ: nếu bài hát của bạn là Tiger Rag, bạn nên có
# danh sách phát "TigerRag", "TigerRagStandby" và "Chế độ chờ"
#
###########################################################
# Danh sách phát sẽ chạy nếu nằm trong khoảng từ 6 đến 11
NightSong1 = "TigerRagStandby"
NightSong2 = "HallelujahStandby"
NightStandby = "Chế độ chờ"
# Danh sách phát sẽ chạy trong ngày hoặc sau 11 giờ
DaySong1 = "TigerRag"
DaySong2 = "Hallelujah"
DayStandby = "Chế độ chờ"
# Thời gian bật và tắt trong thời gian 24 giờ. Nếu bạn muốn phút, chúc may mắn
OnHour = 17
OffHour = 23
###########################################################
# Ruột của tập lệnh. #
###########################################################
# Nhận trạng thái hiện tại của chúng tôi (IDLE = 0, PLAYING = 1, Dừng có duyên = 2)
TRẠNG THÁI = $ (fpp -s | cut -d ',' -f2)
# Lấy danh sách phát đang chạy và cắt thành 7 chữ cái
PLAYLIST = $ (fpp -s | cut -d ',' -f4 | cut -c1-7)
# Đây sẽ là "cả hai" nếu nó đang phát một bài hát và "chuỗi" nếu nó ở chế độ chờ
# được sử dụng để xác định xem trình tự Chờ có đang chạy hay không
STANDBYSTRING = $ (fpp -s | cut -d ',' -f5)
# 7 chữ cái đầu tiên của tên danh sách phát để so sánh
# Chỉ 7 chữ cái để "Song1Standby" và "Song1" giống hệt nhau
# Được rồi, thực ra nó phải là x chữ cái đầu tiên và x phải là tên bài hát ngắn nhất mà bạn có
StandbyPlaylist = $ (echo $ NightStandby | cut -c1-7)
Song1Playlist = $ (echo $ NightSong1 | cut -c1-7)
Song2Playlist = $ (echo $ NightSong2 | cut -c1-7)
STARTITEM = ""
# Lấy giờ hiện tại theo giờ quân sự
Hiện tại = $ (ngày + "% H")
# In trạng thái của một số thứ - "echo" giống như "print" trong hầu hết các ngôn ngữ
# Hữu ích để thử nghiệm nếu nhiều thứ khác nhau được cắt hoặc tính toán chính xác
echo CurrentHour là $ CurrentHour
echo Danh sách phát đang chạy là: $ PLAYLIST
echo Song2Playlist là: $ Song2Playlist
echo Trạng thái là: $ STATUS
# Đặt âm lượng thành 80% vào ban đêm, 100% nếu không
# Vì vậy, nếu tôi đang ngủ, nó không ồn ào
#if [$ CurrentHour -lt $ OffHour -a $ CurrentHour -ge 11]; sau đó
# fpp -v 100
#khác
# fpp -v 80
#fi
# Kiểm tra xem chúng tôi có điều gì đó có ý nghĩa không
if [-z "$ {STATUS}"]; thì
echo "Lỗi với giá trị trạng thái"> & 2
lối ra 1
fi
# Hành động trên tình trạng hiện tại
trường hợp $ {STATUS} trong
# IDLE
0)
#Night time - phát Song1 ở chế độ chờ
if [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; sau đó
echo Playing NightSong1
fpp -c dừng lại
fpp -p "$ {NightSong1}" $ {STARTITEM}
# Ngày giờ hoặc thực sự muộn - phát bài hát 1 lần sau đó tắt đèn
khác
echo Playing DaySong1
fpp -c dừng
fpp -P "$ {DaySong1}" $ {STARTITEM}
fi
;;
# PLAYING hoặc STOPPING DUY NHẤT (sẽ có duyên xảy ra nếu bạn nhấn nút khi danh sách phát đã lên lịch kết thúc)
1 | 2)
#Standby đang chạy - điều này hoạt động vì chế độ chờ là chuỗi không phải phương tiện duy nhất của tôi
if ["$ STANDBYSTRING" == "chuỗi"]; sau đó
#Night time - phát Song1 ở chế độ chờ
if [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; sau đó
echo Playing NightSong1 cho ban đêm
fpp -c dừng
fpp -p "$ {NightSong1}"
# Ngày giờ hoặc thực sự muộn - chơi giẻ hổ một lần rồi tắt đèn
khác
echo PlayingDaySong1 từ chơi
fpp -c dừng lại
fpp -P "$ {DaySong1}"
fi
#Để hỗ trợ nhiều bài hát hơn, hãy sao chép phần này và thay đổi "Song2Playlist" trong phần trước thành Bài hát # Playlist
# Song1 đang chạy
elif ["$ PLAYLIST" == "$ Song1Playlist"]; sau đó
#Night time - chơi Hallelujah ở chế độ chờ
if [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; sau đó
echo Đang chơi HallelujahStandby từ Tiger Rag đang chạy
fpp -c dừng
fpp -p "$ {NightSong2}"
# Ngày hoặc thật muộn - phát Song2 một lần rồi tắt đèn
khác
echo Chơi Hallelujah một lần từ Tiger Rag đang chạy
fpp -c dừng lại
fpp -P "$ {DaySong2}"
fi
# BÀI HÁT ĐANG CHẠY - CHƠI STANDBY
elif ["$ PLAYLIST" == "$ Song2Playlist"]; sau đó
#Night time - phát chế độ chờ trên vòng lặp
if [$ CurrentHour-lt $ OffHour-a $ CurrentHour-ge $ OnHour]; sau đó
echo Phát ở chế độ chờ khi lặp lại
fpp -c dừng lại
fpp -p "$ {NightStandby}"
# Ngày giờ hoặc thực sự muộn - phát chế độ chờ một lần
khác
echo Chơi ở chế độ chờ một lần
fpp -c dừng lại
fpp -P "$ {DayStandby}"
fi
khác
echo Vì một số lý do mà elsecase cuối cùng được thực thi.
fpp -c dừng lại
fpp -P "$ {DaySong1}"
fi
;;
esac

xem rawButtonSuperScript.sh được lưu trữ với ❤ bởi GitHub

Bước 5: (Tùy chọn) Mặt nạ cho nút

Tôi có quyền truy cập vào một máy cắt laser tại Clemson thông qua Makerspace, vì vậy tôi nhanh chóng phác thảo một thiết kế để cắt + khắc. Có một lỗ ở giữa cho nút của tôi, dòng chữ "Push Me" bằng phông chữ Giáng sinh và một bông tuyết xung quanh nút. Tôi phun sơn màu trắng lên gỗ và sau đó dùng băng keo che lại (để máy cắt laser không làm cháy những phần tôi không muốn khắc). Tệp tôi đã sử dụng được đính kèm.

Đề xuất: