Mục lục:

Trình ghi phát lại với Raspberry Pi: 7 bước (có hình ảnh)
Trình ghi phát lại với Raspberry Pi: 7 bước (có hình ảnh)

Video: Trình ghi phát lại với Raspberry Pi: 7 bước (có hình ảnh)

Video: Trình ghi phát lại với Raspberry Pi: 7 bước (có hình ảnh)
Video: Mở hộp Màn hình Cảm ứng 7 Inch từ Raspberry Pi 2024, Tháng bảy
Anonim
Image
Image
Vật liệu cần thiết
Vật liệu cần thiết

Chào mọi người, Trong phần hướng dẫn này, tôi giải thích cách tôi tạo một trình ghi phát lại bằng Raspberry Pi. Thiết bị này là Raspberry Pi model B +, có 7 nút nhấn ở phía trên, loa được kết nối với một trong các cổng usb của Pi và micrô được kết nối với các cổng usb khác. Mỗi nút được liên kết với một âm thanh, vì vậy nó có thể phát 7 âm thanh khác nhau. Âm thanh được phát sau một lần nhấn nút ngắn. Để ghi âm thanh mới, chỉ cần nhấn nút trong hơn 1 giây, ghi âm sau tiếng bíp và nhả nút ở cuối bản ghi. Nó không nhận được bất kỳ đơn giản hơn thế!

Bước 1: Vật liệu cần thiết

Vật liệu cần thiết
Vật liệu cần thiết
Vật liệu cần thiết
Vật liệu cần thiết

Đối với dự án này, tôi cần:

  • Một Raspberry Pi mô hình B + và thẻ micro SD - 29,95 đô la + 9,95 đô la
  • Vỏ nhựa Raspberry Pi - 7,95 USD
  • Loa USB - 12,50 USD
  • Một micrô USB - 5,95 đô la
  • Một bảng perma-proto có kích thước bằng một nửa - 4,50 đô la
  • 7 nút nhấn tạm thời - 2,50 đô la

Tôi cũng cần:

  • Một số dây điện
  • Tiêu đề nữ góc phải
  • Một số gỗ, sơn đen và keo cho hộp nút
  • Một mỏ hàn và thuốc hàn

Bước 2: Các nút

Các nút
Các nút
Các nút
Các nút
Các nút
Các nút

Các nút được sử dụng khá cao (6mm) để chúng có thể đi qua độ dày của vỏ máy.

Tôi đã đặt 7 nút của mình trên một bảng perma-proto, nó giống như một bảng mạch, ngoại trừ các thành phần được hàn trên đó. Điều này mạnh mẽ hơn một breadboard và rẻ hơn in một pcb. Mỗi nút liên kết mặt đất với một GPIO trên Raspberry Pi. Tôi không có điện trở ở đây vì Pi đã có điện trở kéo lên / xuống bên trong sẽ được thiết lập trong chương trình. Trong trường hợp này, tôi đã đặt chúng thành pull-up (xem chương trình bên dưới).

Các nút được đặt mỗi 4 hàng hoặc mỗi 0,4 inch.

Bước 3: Hộp đựng các nút

Hộp đựng các nút
Hộp đựng các nút
Hộp đựng các nút
Hộp đựng các nút
Hộp đựng các nút
Hộp đựng các nút

Tôi đã làm một chiếc hộp rất đơn giản cho các nút, với các tấm ván ép và chốt vuông bằng gỗ. Kích thước chốt phải đủ lớn để chứa đế nút và bo mạch, nhưng đủ nhỏ để có thể để nút trên ra khỏi vỏ. Tôi đã sử dụng 1/4 in x 1/4 in dowel.

Sau khi đảm bảo bo mạch phù hợp với vỏ, các chốt được dán vào tấm đế. Sau đó, các lỗ được khoan trên tấm trên cùng (bảng có thể được sử dụng để tạo dấu chính xác sau mỗi 0,4 inch). Tất cả các bộ phận bằng gỗ đều được sơn, bảng được đặt trong hộp và tấm trên cùng được dán lên trên.

Bước 4: Raspberry Pi

Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi
Raspberry Pi

Tôi không muốn hàn dây trực tiếp với Pi, trong trường hợp tôi muốn sử dụng Pi cho việc khác trong tương lai. Do đó, tôi đã hàn dây vào các tiêu đề nữ góc phải và cắm các tiêu đề trên Pi.

Các GPIO được sử dụng là 21, 26, 20, 19, 13, 6 và 5. Chân nối đất cũng được sử dụng.

Microphone và loa được cắm đơn giản vào 2 trong 4 cổng usb.

Pi được cấp nguồn qua ổ cắm micro-usb

Bước 5: Lập trình

Để lập trình Pi, tôi đã kết nối nó với internet bằng cáp ethernet và điều khiển nó từ một máy tính từ xa bằng VNC viewer. Tuy nhiên, bạn không thể sử dụng thiết lập này trong lần đầu tiên kết nối với Pi, vì hệ điều hành chưa được cài đặt và SSH chưa được gỡ bỏ. Vì vậy, bạn sẽ cần kết nối màn hình, bàn phím và chuột, ít nhất là lần đầu tiên.

Khá rắc rối khi tìm các lệnh để ghi và phát âm thanh trên sound card bên phải. Đây là những lệnh phù hợp với tôi:

  • aplay -D plughw: CARD = Device_1, DEV = 0 0.wav

    Chơi 0.wav

  • arecord 0.wav -D sysdefault: CARD = 1 -f cd -d 20

    Ghi tối đa 20 giây trong tệp 0.wav, với chất lượng cd

Các tệp âm thanh được đặt trong thư mục mặc định (/ home / pi). Một tệp âm thanh cho tiếng bíp cũng cần thiết, được đặt trong thư mục mặc định và được gọi là beep.wav.

Bản thân mã python như sau:

mã python cho trình ghi phát lại Raspberry Pi

nhập RPi. GPIO dưới dạng GPIO
thời gian nhập khẩu
nhập hệ điều hành
#biến:
butPressed = [True, True, True, True, True, True, True] # nếu tôi được nhấn nút, thì butPressed là False
pin = [26, 19, 13, 6, 5, 21, 20] #GPIO chân của mỗi nút
recordBool = False # True nếu một bản ghi đang được xử lý
GPIO.setmode (GPIO. BCM)
cho tôi trong phạm vi (0, 7):
GPIO.setup (pin , GPIO. IN, pull_up_down = GPIO. PUD_UP) # đặt các điện trở bên trong của Pi để kéo lên
trong khi Đúng:
cho tôi trong phạm vi (0, 7):
butPressed = GPIO.input (pin ) # kiểm tra xem một nút có được nhấn không
if butPressed == False: # nếu một nút được nhấn
beforeTime = time.time ()
while butPressed == False và recordBool == Sai:
butPressed = GPIO.input (pin )
if time.time () - beforeTime> 1.0: # nếu nút được nhấn trong hơn một giây, thì recordBool là True
recordBool = True
if recordBool == True: #if recordBool là True, nó sẽ phát âm thanh bíp và sau đó ghi lại
os.system ("aplay -D plughw: CARD = Device_1, DEV = 0 beep.wav")
os.system ("arecord% d.wav -D sysdefault: CARD = 1 -f cd -d 20 &"% i) #records trong tối đa 20 giây trong tệp i.wav, với chất lượng cd
while butPressed == False:
butPressed = GPIO.input (pin )
os.system ("pkill -9 arecord") # bản ghi bị dừng khi thả nút hoặc sau 20 giây
recordBool = Sai
khác: #if recordBool là False, nó phát âm thanh i.wav
os.system ("aplay -D plughw: CARD = Device_1, DEV = 0% d.wav"% i)
time.sleep (0,1)

xem trình ghi rawPlayback được lưu trữ với ❤ bởi GitHub

Bước 6: Chạy Python Script tại mỗi lần khởi động

Để chạy tập lệnh python khi khởi động mỗi Pi, các dòng sau được đặt trong một tệp có tên là playback.desktop trong thư mục /home/pi/.config/autostart/

chạy playback.py khi khởi động Raspberry Pi

[Mục nhập trên máy tính để bàn]
Mã hóa = UTF-8
Loại = Ứng dụng
Tên = Phát lại
Nhận xét = Đây là một ứng dụng phát lại
Exec = python /home/pi/playback.py
StartupNotify = false
Terminal = true
Ẩn = sai

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

Bước 7: Kết thúc ghi chú

Vui lòng cho tôi biết bạn nghĩ gì về dự án này trong phần bình luận, cho tôi biết về các đề xuất của bạn và bình chọn cho tôi trong cuộc thi Raspberry Pi nếu bạn thích nó.

Mong được bạn đọc!

Đề xuất: