Mục lục:
- Quân nhu
- Bước 1: Mô tả phần Raspberry:
- Bước 2: Mã từ xa IR
- Bước 3: Chương trình chính
- Bước 4: Phần Raspberry: tự động khởi động và thêm tệp mới
- Bước 5: Quản lý nguồn thông qua Arduino Nano
- Bước 6: Hệ thống cáp
- Bước 7: Hộp
Video: Raspitone: Dễ sử dụng Jukebox: 7 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:32
Xin chào, dự án tiếp theo của tôi, như tôi thường làm, là một dự án không hữu ích lắm:
Đây là một máy hát tự động dựa trên Raspberry 3 B +
Tôi biết, những việc như thế này có thể dễ dàng thực hiện với điện thoại thông minh và loa Bluetooth.
Nhưng đối với dự án của tôi, tôi có hai điều kiện tiên quyết khó khăn:
Tôi muốn làm một cái gì đó "cổ điển".
Và nhìn chung, với thực tế là phụ nữ của tôi hoàn toàn không còn hy vọng gì với máy tính hoặc bluetooth hoặc bất cứ thứ gì khác từ thế kỷ 21, (và thậm chí cả thế kỷ 20), tôi đã phải làm một cái gì đó rất đơn giản để sử dụng ………
Vì vậy, các thông số kỹ thuật như sau:
Một nút nhấn duy nhất để khởi động máy
Một màn hình cảm ứng (rất đơn giản) để quản lý nhạc.
Một lần chạm vào màn hình để dừng máy.
Và để có một âm thanh hay ………
Quân nhu
Đối với điều này, tôi đã sử dụng:
1 Raspberry 3 B +
1 rạp chiếu phim gia đình cũ không dùng được do đầu đọc DVD OOS (một chiếc Samsung 2.1 cũ có loa trầm và 2 loa mà tôi đã sửa đổi để vừa với hộp)
1 bo mạch HIFIBERRY DIGI + (với đầu ra quang học cho Amp công suất)
1 màn hình cảm ứng điện dung 7 (của tôi là Makeasy cho mâm xôi với đầu vào HDMI và được cấp nguồn qua USB nhưng bất kỳ màn hình cảm ứng HDMI nào cũng được)
1 nguồn 5V 5A
1 lá chắn tiếp điện
1 Arduino nano để quản lý quá trình BẬT / TẮT nguồn
1 IR được dẫn để điều khiển rạp chiếu phim gia đình (được dẫn bởi một bóng bán dẫn NPN 2N2222)
1 bộ thu IR (đối với phần học mã IR của dự án, tôi lấy từ một đĩa cứng Đa phương tiện cũ với lệnh từ xa)
3 dẫn
1 công tắc cho chế độ bảo trì
1 công tắc để làm việc trên arduino (trong quá trình tải lên, arduino được đặt lại)
một số kết nối JST và Dupont
Và cho cái hộp
Gỗ và ván ép (nhưng tôi sẽ không mô tả sâu về việc tạo ra hộp). chỉ cần nói rằng, liên quan đến boomer bên trong hộp, ván ép 10 mm và gỗ 18 mm là bắt buộc nếu bạn không muốn thấy Jukebox băng qua phòng khách trong khi chơi !!!!
Bước 1: Mô tả phần Raspberry:
Raspi phải quản lý những thứ khác nhau:
1) các lệnh đến rạp chiếu phim gia đình (thông qua điều khiển từ xa IR)
2) các tập tin nhạc
3) màn hình cảm ứng
4) Nhịp tim của Arduino (quản lý Wdt (bộ đếm thời gian cho chó xem))
Tôi bắt đầu từ bản phân phối trải nghiệm Raspbian trên thẻ SD 16 G (Vì chúng tôi sẽ chỉ đọc các tệp từ thẻ SD nên việc sử dụng ổ cứng là không cần thiết). Tôi sẽ không dành thời gian cho phần này vì trên web có đầy đủ các hướng dẫn về nó..
Hãy xem các phần khác nhau trong các bước tiếp theo….
Bước 2: Mã từ xa IR
Vì tôi không thể tìm thấy sơ đồ mạch điện của rạp chiếu phim tại nhà, tôi quyết định lái nó qua lệnh từ xa
Bước đầu tiên tôi phải hoàn thành là học cách Raspi các mã của lệnh điều khiển từ xa tại rạp chiếu phim tại nhà. Vì vậy, tôi đã sử dụng các hướng dẫn rất tốt trong Các mã nguồn từ Austin Stanton IR
Tôi đã có một số khác biệt, có thể là do phiên bản mới vì các hướng dẫn đã khá cũ, tệp tin Hard.conf không còn tồn tại (ít nhất là tôi không tìm thấy nó)
Có vẻ như bóng bán dẫn được sử dụng trong hướng dẫn là bóng bán dẫn PNP, về phần tôi, tôi đã sử dụng bóng bán dẫn 2N2222 là NPN nhưng kết quả là giống nhau. (Ngoại trừ cáp !!!!!!!!)
Việc gán mã pin được đưa ra trong /boot/config.txt:
#autorisation de lirc le 2019-07-08dtoverlay = lirc-rpi, gpio_out_pin = 22, gpio_in_pin = 23
IR LED sẽ được kết nối với chân 22 của Raspi.
Một lưu ý quan trọng: khi học các mã cho Raspi, bắt buộc phải sử dụng các từ khóa được liệt kê trong lệnh
không thể ghi - danh sách-không gian tên
Đây là tệp tôi đã tạo cho máy hát tự động của mình:
pi @ raspitone: / etc / lirc $ cat lircd.conf
# Vui lòng dành thời gian để hoàn thành tệp này như được mô tả trong # https://sourceforge.net/p/lirc-remotes/wiki/Check… # và cung cấp cho người khác bằng cách gửi đến # #
# Tệp cấu hình này đã được tạo tự động
# using lirc-0.9.4c (mặc định) vào Thứ Năm ngày 9 tháng 5 17:33:37 2019 # Dòng lệnh được sử dụng: -d / dev / lirc0 /root/lircd.conf
# Phiên bản hạt nhân (uname -r): 4.14.98-v7 + # # Tên từ xa (kể từ tệp cấu hình): jukebox
# Thương hiệu của thiết bị điều khiển từ xa, thứ bạn cầm trên tay: # Kiểu thiết bị điều khiển từ xa nr:
# Url thông tin thiết bị từ xa:
# Thiết bị từ xa có thiết bị chụp ảnh đi kèm không e. g., a
# USB dongle?:
# Đối với thiết bị USB đi kèm: id nhà cung cấp usb, id sản phẩm
# và chuỗi thiết bị (sử dụng dmesg hoặc lsusb):
# Loại thiết bị được kiểm soát
# (TV, VCR, Audio, DVD, Satellite, Cable, HTPC,…):
# (Các) thiết bị được điều khiển bởi điều khiển từ xa này:
bắt đầu từ xa
máy hát tự động tên
bit 16
cờ SPACE_ENC | CONST_LENGTH
eps 30
tiếng bíp 100
tiêu đề 4470 4496
một 542 1693
số không 542 581
ptrail 553
pre_data_bits 16
pre_data 0xC2CA
khoảng cách 107863
toggle_bit_mask 0x0
tần số 38000
bắt đầu mã
KEY_POWER 0x807F
KEY_AUX 0x8877
KEY_VOLUMEUP 0xCC33
KEY_VOLUMEDOWN 0xDC23
mã kết thúc
kết thúc điều khiển từ xa
Như bạn thấy, tôi chỉ cần 4 lệnh để điều khiển Home Cinema
Bật / tắt nguồn)
AUX => để chuyển sang kênh đầu vào quang học (vì HC luôn khởi động trên đầu đọc DVD)
Và Âm lượng +/-
Các lệnh liên quan được thực hiện thông qua các lệnh LIRC:
ví dụ: "irsend SEND_ONCE máy hát tự động KEY_VOLUMEUP"
Bước 3: Chương trình chính
Chương trình chính được viết bằng Python:
Vì tôi là người mới sử dụng Python, tôi đoán có thể thực hiện được rất nhiều cải tiến nhưng nó vẫn chạy….
Các thông số kỹ thuật:
1) quản lý màn hình đồ họa:
Đối với điều này, tôi đã sử dụng APPJAR là TKINTER nhưng văn minh cho sinh viên (trường hợp của tôi), điều này có nghĩa là dễ sử dụng hơn nhiều, có lẽ với ít khả năng hơn, nhưng nó đủ cho mục đích của tôi.
2) phát các tệp mp3:
Tôi đã sử dụng mplayer cho python.
3) tạo các số ngẫu nhiên để chơi ở chế độ trộn:
Vì tôi không muốn nghe cùng một bài hát mỗi quý, nên tôi đã xây dựng một chương trình nhỏ để kiểm tra xem số có không xuất hiện trong danh sách x số trước đó hay không (x tùy thuộc vào độ dài của danh sách phát).
Hàm randint trong python không quá "ngẫu nhiên" như tôi đã thấy.
4) gửi "nhịp tim" đến Arduino
5) quản lý trình phát tệp:
Vì Mplayer không đồng bộ, khi tệp được khởi động, không có cách nào để biết đối với Python khi nào nó hoàn thành (ít nhất là tôi đã không tìm thấy một cách đơn giản)
Để giải quyết vấn đề đó, tôi đã sử dụng các lệnh mplayer cung cấp độ dài của tệp và tiến trình trong tệp hiện tại
Đối với cả 4 và 5, tôi đã sử dụng khả năng do Appjar đưa ra để tạo một nhiệm vụ định kỳ (vì appjar là một chương trình sự kiện nên đây là một cách để tạo một sự kiện định kỳ). chức năng là:
# ******************* start taskman ********************** app.registerEvent (taskman)
p.setPollTime (1000)
Taskman cho "trình quản lý tác vụ" là một định nghĩa trong chương trình quản lý tất cả những gì không phải là sự kiện trên màn hình (kết thúc tệp đã phát, điền thanh tiến trình, gửi nhịp tim đến Nano,….)
Sau khi bắt đầu, màn hình trông như thế này:
Đây là chương trình: (có thể mở bằng Notepad ++ hoặc Geany)
Bước 4: Phần Raspberry: tự động khởi động và thêm tệp mới
Nếu bạn nhìn vào chương trình, bạn có thể thấy rằng tôi sử dụng một số tệp bash:
1) Start_jukebox:
Trên thực tế, mục đích là để bật nguồn rạp chiếu phim Gia đình và chuyển sang đầu vào D. IN (đầu vào quang học trong rạp chiếu phim Gia đình của tôi)
pi @ raspitone: / bin $ cat start_jukebox #! / bin / bash
irsend SEND_ONCE máy hát tự động KEY_POWER
ngủ 7
irsend SEND_ONCE máy hát tự động KEY_AUX
ngủ 2
2) stop_jukebox:
Cách tắt nguồn rạp chiếu phim tại nhà
pi @ raspitone: / bin $ cat stop_jukebox
#! / bin / bash
irsend SEND_ONCE máy hát tự động KEY_POWER
Hai tệp bash này được Python gọi bằng lệnh os.system
Để bắt đầu tập lệnh Python, tôi đã thực hiện một bước nhỏ
pi @ raspitone: ~ $ cat dem_jukebox.bash #! / bin / bash
cd / home / pi
python jukebox_gui.py
Để tự động khởi động ở chế độ GUI, tôi vừa sửa đổi tệp tự khởi động trong / etc / xdg / lxsession / LXDE-pi
pi @ raspitone: / etc / xdg / lxsession / LXDE-pi $ cat autostart @ lxpanel - tập tin LXDE-pi
@pcmanfm --desktop - hồ sơ LXDE-pi
@xscreensaver -no-splash
@lxterminal --command = "dem_jukebox.bash"
point-rpi
Thêm tệp mp3 mới:
Để thêm các tệp mới, tôi muốn tạo một tập lệnh Python nhỏ chuyên dụng:
new_song_file.py
Đầu tiên tôi sẽ giải thích về tổ chức tệp hệ thống:
Tất cả các tệp đều nằm trong / home / pi
các tệp mp3 được lưu trong thư mục / home / pi / Music
Mỗi nghệ sĩ có thư mục con riêng của mình để lưu trữ các tệp mp3 liên quan
pi @ raspitone: ~ / Music / Mike_oldfield $ ls -lt tổng số 760516
-rwxr ----- 1 pi pi 2254923 juin 30 2017 A_New_Beginning.mp3
-rwxr ----- 1 pi pi 2691736 juin 30 2017 Arrival.mp3
-rwxr ----- 1 pi pi 8383244 juin 30 2017 Ascension.mp3
-rwxr ----- 1 pi pi 5410816 juin 30 2017 Blue_Night.mp3
-rwxr ----- 1 pi pi 13125199 juin 30 2017 Castaway_ (Nhạc cụ).mp3
-rwxr ----- 1 pi pi 12903583 juin 30 2017 Castaway.mp3
-rwxr ----- 1 pi pi 2969869 juin 30 2017 Celt.mp3
-rwxr ----- 1 pi pi 9047745 juin 30 2017 Chariots_ (Instrumental).mp3
-rwxr ----- 1 pi pi 9403263 juin 30 2017 Chariots.mp3
Trong thư mục Documents, chúng ta có thể tìm thấy danh sách các tệp đã xây dựng để chơi.
pi @ raspitone: ~ / Tài liệu $ cat list.txtFranz_Ferdinand / Michael_live.mp3
Franz_Ferdinand / evil_and_a_heathen.mp3
Franz_Ferdinand / Walk_Away_live.mp3
Franz_Ferdinand / love_and_destroy.mp3
Franz_Ferdinand / his_fffire.mp3
Franz_Ferdinand / eleanor_put_your_boots_on.mp3
Franz_Ferdinand / thiếu_you.mp3
Franz_Ferdinand / this_fire_ (playgroup_remix).mp3
Franz_Ferdinand / Jacqueline.mp3
Chúng tôi cũng có thể tìm thấy dữ liệu danh sách phát (nhưng dữ liệu này được tạo bởi tập lệnh Python)
Tập lệnh Python nhỏ thêm các bài hát mới, được lưu trong Nhạc, trong list.txt sau khi đã định dạng các tittles ở định dạng UNIX
Đây là tập lệnh: (có thể mở bằng Notepad ++ hoặc Geany)
Bước 5: Quản lý nguồn thông qua Arduino Nano
Vì tôi muốn có một cái gì đó dễ dàng để bắt đầu, tôi quyết định thực hiện nó bằng một nano nhỏ:
Nguyên tắc:
Khi nhấn nút khởi động, tất cả các thiết bị đều được cấp nguồn, nano sẽ khởi động (1 hoặc 2 giây) và tiếp quản việc quản lý nguồn bằng cách kích hoạt một rơ le làm tắt các điểm tiếp xúc của nút nhấn.
Sau đó, Nano đợi 35 giây để nhận nhịp tim từ Raspberry (có nghĩa là quá trình bắt đầu hoàn tất và chương trình máy hát tự động chạy).
Miễn là nano nhận được nhịp tim, nó sẽ tiếp tục bật (Đồng hồ hẹn giờ cho chó)
Nếu không còn nhịp tim nữa (có nghĩa là chương trình máy hát tự động bị dừng) Nano đợi trong 20 giây (để chắc chắn rằng raspi đã dừng hoàn toàn) để nhả rơ le nguồn.
Máy hát tự động sau đó hoàn toàn bị Tắt nguồn
Tôi đã thêm một công tắc để kích hoạt đầu vào của nano để chỉ ra chế độ bảo trì (tôi sử dụng máy hát tự động để quản lý các máy chủ raspi khác của mình thông qua ssh et vnc). Sau đó, Nano sẽ vô hiệu hóa quy trình canh gác
Nhận xét:
đầu vào cho nhịp tim từ Raspi cần được kéo xuống (nhưng 3.3V từ Raspi được Nano coi là mức cao)
Nó có thể được thực hiện với NE555 nhưng tôi rất buồn và luôn có một số nano trong ngăn kéo của mình !!!!
Đây là chương trình C ngắn (có thể mở bằng Notepad ++)
Bước 6: Hệ thống cáp
Đối với màn hình:
Cáp HDMI và cáp USB được sử dụng trên Raspi để cấp nguồn và điều khiển màn hình.
Đối với bảng điều khiển phía trước:
Một cáp USB cũng được kết nối từ Raspi để có thể tải lên các tệp mới hoặc tạo bản sao lưu.
Cáp USB được kết nối từ Nano để có thể truy cập phần mềm (để sửa đổi nếu cần)
Tôi cũng cắm một dongle bàn phím không dây trên mâm xôi để có thể bảo trì mà không cần sử dụng đầu cắm USB bên ngoài
Vì Raspberry và Arduino được sử dụng, hệ thống cáp khá đơn giản.
Tất cả đều nằm trên một bảng ma trận dải.
GPIO từ mâm xôi 2 được sử dụng:
Pin22 cho đèn LED hồng ngoại
Pin 27 cho nhịp tim với Arduino
trên Arduino
Pin 2 được sử dụng làm chân ngắt nhịp tim từ Raspi.
Các chân từ 3 đến 5 được sử dụng để điều khiển đèn led (Khởi động, Wdt, Bảo dưỡng).
Chân 6 dành cho công tắc bảo trì.
Chân 7 là đầu ra cho lá chắn rơ le.
Đây là tệp fritzing:
Bước 7: Hộp
Tôi sẽ không mô tả nhiều về những gì tôi đã làm vì nó phụ thuộc vào bộ khuếch đại công suất và vào loa được sử dụng.
Như thông tin rạp chiếu phim gia đình nằm ở dưới cùng của hộp.
Chỉ qua loa:
1 loa trầm
2 loa trung bình, mà tôi đã sửa đổi để lắp chúng vào hộp.
Ở trên đỉnh:
Mặt trước với màn hình, đèn LED, công tắc và phích cắm USB.
Gỗ:
Đối với loa, tấm ván bên trên và dưới cùng, tôi sử dụng ván gỗ 18 mm.
Mặt trước là ván ép 10 mm với các vít 40 mm.
Để tạo thuận lợi cho việc đi dây và bảo trì (nếu cần !!!) Tôi đặt mạch điện trên một ngăn kéo phía sau pannel phía trước
Để tránh quá nóng, một lỗ lớn được thực hiện ở dưới cùng của pannel phía sau và tôi đặt một quạt 5V (8 cm) trên pannel phía sau ngay bên cạnh mạch điện.
Hình ảnh trên chỉ là để cung cấp cho một ý tưởng.
À chính nó đấy !!!!!!!!!
Cảm ơn bạn đã đọc tôi
Và hẹn gặp lại bạn trong những chuyến phiêu lưu mới lần sau
Đề xuất:
Bút cảm ứng điện dung cho bút dùng một lần: 6 bước (có hình ảnh)
Bút cảm ứng điện dung cho bút dùng một lần: Tôi có một tá bút bi siêu nhỏ Uni-ball. Tôi muốn thêm bút cảm ứng điện dung vào nắp trên một trong số chúng. Sau đó, có thể di chuyển nắp và bút stylus từ bút này sang bút khác khi hết mực. Tôi biết ơn Jason Poel Smith vì
Làm thế nào để đạt được bất kỳ điện trở / điện dung nào bằng cách sử dụng các thành phần bạn đã có!: 6 bước
Làm thế nào để đạt được bất kỳ điện trở / điện dung nào bằng cách sử dụng các thành phần bạn đã có !: Đây không chỉ là một máy tính điện trở nối tiếp / song song khác! Chương trình này tính toán cách kết hợp các điện trở / tụ điện mà bạn hiện có để đạt được giá trị điện trở / điện dung mục tiêu mà bạn cần
[2020] Sử dụng ứng dụng IPhone hoặc IPad và Micro: bit Game Pad để điều khiển ô tô RC: 23 bước
[2020] Sử dụng ứng dụng iPhone hoặc iPad và Micro: bit Game Pad để điều khiển ô tô RC: Bạn đã nghĩ đến việc sử dụng iPhone hoặc iPad để điều khiển micro: bit của mình chưa? Bạn có biết Tổ chức giáo dục Micro: bit cung cấp ứng dụng iOS trong Cửa hàng ứng dụng? Tìm kiếm " micro: bit " trong App store và bạn có thể tải xuống ứng dụng miễn phí. Các
Kiểm tra Arduino trần, với phần mềm trò chơi sử dụng đầu vào điện dung & đèn LED: 4 bước
Thử nghiệm Arduino Trần, Với Phần mềm Trò chơi Sử dụng Đầu vào Điện dung & Đèn LED: " Push-It " Trò chơi tương tác sử dụng bảng Arduino trần, không cần bộ phận bên ngoài hoặc dây dẫn (sử dụng đầu vào 'cảm ứng' điện dung). Hình trên cho thấy nó chạy trên hai bo mạch khác nhau. Để nhanh chóng chứng minh / v
Xây dựng Trình theo dõi chuyển động có thể đeo (BLE Từ Arduino đến Ứng dụng Android Studio tùy chỉnh): 4 bước
Xây dựng Trình theo dõi chuyển động có thể đeo (BLE Từ Arduino đến Ứng dụng Android Studio tùy chỉnh): Bluetooth Low Energy (BLE) là một hình thức giao tiếp Bluetooth công suất thấp. Các thiết bị đeo được, chẳng hạn như quần áo thông minh mà tôi giúp thiết kế tại Prediction Wear, phải hạn chế mức tiêu thụ điện năng ở mọi nơi có thể để kéo dài tuổi thọ pin và thường xuyên sử dụng BLE.