Mục lục:

Radio cao cấp - Raspberry Pi: 8 bước
Radio cao cấp - Raspberry Pi: 8 bước

Video: Radio cao cấp - Raspberry Pi: 8 bước

Video: Radio cao cấp - Raspberry Pi: 8 bước
Video: Raspberry Pi 4 - Software defined radio - SDR Install guide - 2022 2024, Tháng bảy
Anonim
Radio cao cấp - Raspberry Pi
Radio cao cấp - Raspberry Pi

Dự án đài phát thanh cao cấp là một thiết bị vô tuyến internet được thiết kế có thể truy cập mã nguồn mở với cả thành phần phần cứng và phần mềm. Nó được thiết kế để được sử dụng cho những người dùng quen với việc điều khiển radio bỏ túi trong đó các nút quay điều khiển âm lượng và kênh radio đã chọn. Dự án được thực hiện với thiết kế lấy người dùng làm trung tâm, tập trung vào người dùng muốn có kích thước và khả năng điều khiển tương tự như một đài phát thanh cầm tay tiêu chuẩn.

Nó được xây dựng để đáp ứng nhu cầu cho phép những người khiếm khuyết có thể nghe hàng nghìn nội dung phát trực tuyến trên internet khác nhau mà thường chỉ có sẵn thông qua trình duyệt internet. Nhiều người không có khả năng sử dụng một thiết bị như vậy một cách dễ dàng, vì vậy thiết kế này nhằm mục đích tạo ra một giao diện quen thuộc cho một công nghệ hiện đại.

Chức năng cốt lõi nằm trên Github, được lưu trữ trong một chương trình python 3.7.3 có tên là SeniorRadio.py. Nó đọc và ghi một tệp json để lưu trữ trạng thái của đài phát thanh, vì vậy khi bạn tắt nó đi, nó sẽ ghi nhớ mức âm thanh hiện tại và đài đã chọn. Ngoài ra, nó đọc một tệp json được lưu trữ trực tuyến mà bạn có thể thay đổi! Điều này cho phép bạn cập nhật các đài phát thanh từ xa nếu bạn đang đưa cái này cho người khác.

Nó hiện được tạo ra để kết nối với loa bluetooth, nhưng cũng có thể dễ dàng được thực hiện để phát ra loa tích hợp.

Người tạo ra thiết bị này có thể không phải là người dùng và cần ít nhất một số kinh nghiệm về điện tử và kiến thức lập trình cơ bản. Trải nghiệm Linux cũng rất hữu ích.

Đối với người dùng, chức năng rất đơn giản:

Khi bật nguồn, nó sẽ phát kênh cuối cùng được chọn trên thiết bị âm thanh mặc định. Quay số bên trái điều khiển đài, nơi một vài lần nhấp vào mặt số sẽ thay đổi thành một URL mới. Nó sẽ lật lại sau lần nhập cuối cùng hoặc đầu tiên. Nút xoay bên phải điều khiển mức âm thanh. Đèn LED cho biết chương trình đang bật. Và nút bấm tạm dừng hoặc "tắt" đài. Vì vậy, sau khi bật nguồn, người dùng có thể chỉ cần nhấn vào nút để tạm dừng / phát hoặc "tắt / bật", radio và hai nút xoay để điều khiển nó.

Quân nhu

Được liên kết trên mỗi mục là mục cụ thể mà tôi đã sử dụng. Chi phí cho tôi tổng cộng khoảng 60 đô la với rất nhiều nguồn cung cấp còn lại!

Kiến thức cơ bản về điện tử và linux - để lắp ráp và gỡ lỗi

Raspberry Pi Zero W (Zero WH có tiêu đề được hàn sẵn và có thể hữu ích)

Thẻ MicroSD-8 GB + và khả năng o

Bộ chuyển đổi nguồn MicroUSB 5V - Link cũng bao gồm bộ chuyển đổi microHDMI và bộ chuyển đổi microUSB OTG sang USB A để thiết lập nếu bạn cần chúng

Loa Bluetooth

Cáp nhảy M / F và M / M

2 Bộ mã hóa quay - liên kết tương tự như trên

Breadboard nhỏ

Nút bấm

Đèn LED (tùy chọn) - đèn LED đã mua + nút nhấn ở trên

Hộp để đóng gói

Bước 1: Thiết lập (không đầu) Raspberry Pi W

Thiết lập (không đầu) Raspberry Pi W
Thiết lập (không đầu) Raspberry Pi W

Chúng ta cần thiết lập hệ điều hành trên raspberry pi để chạy phần mềm. Không ai trong số này là duy nhất cho dự án này. Để gỡ lỗi, tôi khuyên bạn nên thiết lập nó để bạn cũng có thể truy cập nó ở chế độ không đầu. Điều này có nghĩa là bạn truy cập pi qua mạng WiFi của mình thông qua GUI hoặc thiết bị đầu cuối SSH và không cần bàn phím, chuột và màn hình để sử dụng nó mọi lúc. Bạn có thể làm điều này mà không cần kết nối với màn hình / chuột / bàn phím nếu bạn am hiểu công nghệ hơn. Một số hướng dẫn ví dụ ở đây. Tuy nhiên, nó ít thẳng về phía trước, và dưới đây là một cách khác để thiết lập nó.

Lần đầu tiên này, bạn có thể sẽ cần:

  • Raspberry Pi W
  • Bộ chuyển đổi thẻ nhớ MicroSD sang thẻ SD [để ghi hệ điều hành vào thẻ SD]
  • Thẻ MicroSD (~ 8 GB +) [để lưu trữ hệ điều hành và chương trình của chúng tôi]
  • Nguồn MicroUSB (5V)
  • MicroUSB sang USB A [dành cho chuột / bàn phím]
  • Bộ chuyển đổi Mini HDMI sang HDMI [cho đầu ra màn hình]
  • Bàn phím
  • Chuột
  • Màn hình

Đầu tiên, bạn cần cài đặt hệ điều hành vào thẻ micro SD rPi.

Tôi đã sử dụng raspian buster, bạn tải nó xuống máy tính có đầu đọc / ghi thẻ SD và sau đó flash hệ điều hành raspian vào thẻ SD. BalenaEtcher là một phần mềm dễ dàng để làm điều này

Tiếp theo đưa thẻ SD vào khe pi, kết nối màn hình, bàn phím và nguồn. Tiến hành các bước thiết lập mà raspian nhắc bạn, bao gồm kết nối nó với mạng WiFi của bạn và ghép nối loa bluetooth của bạn thông qua GUI. Thực hành tốt là cập nhật nó bằng các lệnh sau

sudo apt-get cập nhật

sudo apt-get nâng cấp

Nếu bạn muốn bao gồm việc đánh dấu số pi không có đầu của mình, trước tiên chúng tôi sẽ cần lấy địa chỉ ip của số pi. Thông qua một thiết bị đầu cuối, bạn có thể tìm thấy nó thông qua

ifconfig

chỉ huy. Sau đó, bạn cần bật SSH và VNC qua các tùy chọn giao diện trong

sudo raspi-config

Sau khi khởi động lại, bây giờ bạn có thể kiểm tra việc truy cập pi qua SSH hoặc VNC. SSH chỉ là giao diện đầu cuối và bạn có thể thấy việc sử dụng GUI để ghép nối loa bluetooth dễ dàng hơn. Bạn có thể sử dụng một chương trình như VNC connect để dễ dàng truy cập số pi của bạn trên một máy tính riêng trong mạng của bạn. Bạn có thể sử dụng một chương trình như putty để SSH vào đó.

Ngoài ra, bạn có thể thiết lập tài khoản đám mây VNC để có thể truy cập thiết bị khi không có mạng nếu cần

Bước 2: Cài đặt Phần mềm Radio Cao cấp

Cài đặt phần mềm radio cao cấp
Cài đặt phần mềm radio cao cấp

Điều này có thể được thực hiện từ một cửa sổ đầu cuối của pi raspberry. Trước tiên, hãy đảm bảo rằng bạn đã cài đặt git

sudo apt-get install git

Tùy thuộc vào hệ điều hành bạn đã cài đặt, các bước này có thể khác nhau vì bạn có thể cần phải cài đặt thêm các gói, hệ thống sẽ cho bạn biết nếu có. Trước tiên, chúng ta cần tải xuống mã radio cao cấp từ github. https://github.com/Bunborn/seniorRadio Tốt nhất là bạn đang tạo repo của riêng chúng tôi để bạn có thể thực hiện thay đổi và dễ dàng thay đổi các đài phát thanh theo cách giống như tôi. Fork repo nếu vậy

Tuy nhiên, bạn có thể sử dụng giống như của tôi, không vấn đề gì nếu bạn muốn lưu trữ tệp radio json của mình ở một nơi khác

Sau đó sao chép repo ở bất kỳ vị trí nào bạn muốn. Thư mục mặc định là tốt. Nhận URL cho repo github mà bạn muốn bằng cách nhấn vào nút sao chép hoặc tải xuống màu xanh lá cây.

Quay lại cửa sổ đầu cuối, git sao chép

Bây giờ bạn sẽ thấy một thư mục bổ sung có tên là SeniorRadio khi sử dụng ls. Tuyệt vời!

Mã có nghĩa là tự ghi lại tài liệu, xem qua nó sẽ hữu ích. Đặc biệt là cho mục đích gỡ lỗi và nếu bạn đang thay đổi hệ thống.

Bước 3: Cài đặt phần mềm bổ sung

Cài đặt phần mềm bổ sung
Cài đặt phần mềm bổ sung

Trước khi chúng tôi chuyển sang mạch và thử nghiệm nó, chúng tôi cũng cần tải xuống VLC và api python cho nó. Bạn có thể đã cài đặt VLC. Hai lệnh đầu tiên sẽ cập nhật số pi và hai lệnh cuối cùng bên dưới sẽ cài đặt VLC và sau đó là api python

sudo apt-get cập nhật

sudo apt-get nâng cấp

sudo snap cài đặt VLC

sudo apt-get install vlc-python

Ngoài ra, cũng cài đặt gpiozero, mà chúng tôi sẽ sử dụng để giao tiếp với các chân GPIO của pi. Bạn có thể đã cài đặt nó tùy thuộc vào hệ điều hành của bạn.

sudo apt-get install gpiozero

Bước 4: Tìm Luồng đài phát thanh

Tìm các luồng đài phát thanh
Tìm các luồng đài phát thanh

Tiếp theo, một trong những phần thú vị nhất! Đã đến lúc chọn bất kỳ luồng nào bạn muốn.

Trong tệp internetStations.json của tôi, bạn có thể thấy các liên kết luồng của tôi, chủ yếu dành cho tin tức và âm nhạc. Nhưng có rất nhiều nội dung được lưu trữ trên mạng. Chìa khóa ở đây là tìm địa chỉ URL luồng trực tiếp. Ví dụ: các đài tin tức và âm nhạc của BBC có thể được tìm thấy ở đây trên blog này. Các luồng trực tiếp này sẽ không có bất kỳ giao diện đồ họa nào và sẽ tự động phát luồng thông qua trình phát phương tiện của trình duyệt của bạn. Đây là những URL chúng tôi cần để VLC có thể đọc chúng! Bạn có thể nhanh chóng kiểm tra bất kỳ liên kết nào trong trình quản lý web của mình hoặc thông qua VLC trên máy tính thông thường của bạn để đảm bảo rằng nó sẽ hoạt động trên pi.

Để tìm các đài này, bạn có thể tìm luồng trực tiếp trực tuyến nếu dịch vụ lưu trữ nó. Một cách nhanh chóng cũng có thể là phát luồng, nhấp chuột phải vào trình duyệt và nhấn "phần tử kiểm tra". Điều hướng đến tab mạng và nó sẽ chỉ ra URL 'trực tiếp' của luồng. Video youtube này chứng minh điều này. Làm mới trang với tab đang mở sẽ hữu ích.

Khi bạn có các đài của mình, bạn muốn đưa chúng trực tuyến để chương trình pythonRadio cấp cao của bạn có thể lấy chúng. Có nhiều tùy chọn để thực hiện việc này, bạn có thể sử dụng các trang web như Github, bitbucket hoặc thậm chí sourceforge. Mục đích chính của việc lưu trữ danh sách này trực tuyến là để người dùng thiết lập nó có thể thay đổi danh sách luồng trực tuyến từ xa.

Khi bắt đầu chương trình python, có một biến được gọi là url, chỉ cần thay đổi biến này thành URL của tệp json của bạn với các liên kết URL trạm

Bạn có thể làm theo cùng một định dạng với tệp internetStation.json của tôi. Nếu bạn cũng muốn sử dụng github, bạn có thể chỉ cần tách kho lưu trữ SeniorRadio của tôi và chỉnh sửa tệp internetStation.json của riêng bạn và trỏ nó đến URL "thô" đó. Bạn có thể tìm thấy điều đó bên dưới trong GUI Github khi bạn nhấp vào tệp.

Bước 5: Tạo mạch

Tạo mạch
Tạo mạch

Bây giờ chúng ta cần thiết lập mạch. Điều này sẽ thay đổi dựa trên thiết bị của bạn, nhưng dưới đây là cách tôi thiết lập mỏ.

pinout.xyz/ để tham khảo xem đó là chân nào. Vì chúng tôi đang sử dụng thư viện gpiozero, chúng tôi chỉ quan tâm đến việc đánh số pin BCM. Lưu ý rằng tôi đã mua thêm một vài bộ mã hóa quay KY040 - các mặt số - để kiểm tra chúng vì chúng không phải tất cả đều có độ chính xác như nhau. Mỗi cái sẽ có một số "nảy", hoặc đơn giản là đầu ra không chính xác, vì vậy tôi đã chọn cái tốt nhất trong số hai cái mà tôi có. Trong đoạn mã, bạn sẽ lưu ý rằng có một số bước để hạn chế việc trả lại này.

Tôi đã kết nối nút bấm của mình với chân BCM 17 và nối đất

Đèn LED của tôi đến một điện trở 1k ohm rồi đến chân BCM 27 và nối đất

Bộ mã hóa quay KY040 của tôi có + dẫn đến 5V, GND nối đất và ngắt kết nối SW. Chúng được kết nối qua một breadboard mini

Chân dt của bộ mã hóa quay trạm được kết nối với chân BCM 21

Chân clk của bộ mã hóa quay trạm được kết nối với chân BCM 20

Chân dt của bộ mã hóa quay mức âm thanh được kết nối với chân BCM 19

Chân clk bộ mã hóa quay mức âm thanh được kết nối với chân BCM 16

Nếu bạn thay đổi các chân này, chỉ cần cập nhật số trong chương trình python cũng như nơi nó thiết lập trình xử lý

Tôi đã sử dụng một breadboard mini để làm điều này dễ dàng hơn. Tôi cũng đã sử dụng dây nhảy M / M và M / F để tạo thuận lợi cho giao diện. Tôi đã hàn một số dây dẫn jumper vào các chân của nút bấm / đèn LED mà tôi đã mua trước đó. Để không bị hàn, bạn có thể nhận các nút nhấn và đèn LED đã có dây dẫn jumper hoặc có thể dễ dàng kết nối với một.

Bước 6: Kiểm tra nó

Bây giờ, bạn sẽ có một hệ thống hoạt động! Hãy kiểm tra nó ra. Điều hướng đến thư mục có chương trình python, có thể:

cd cao cấpRadio

python3 SeniorRadio.py

Hiện tại, có độ trễ 45 giây khi bắt đầu chương trình để có thời gian tìm loa bluetooth bật nguồn. Bạn có thể bình luận dòng này nếu bạn không cần nó trong quá trình thử nghiệm. Chương trình có thể cho bạn biết rằng bạn cần cài đặt các gói bổ sung, hãy tiếp tục nếu vậy. Cũng có thể cần cài đặt phiên bản Python mới hơn.

sudo apt-get install python3.7

Một số sự cố có thể xảy ra ngay cả khi chương trình chạy:

Tôi không nghe thấy âm thanh

Đảm bảo rằng loa được bật và được chọn trong pi raspberry của bạn. Thông qua GUI, bạn sẽ có thể ghép nối nó và sau đó chọn nó làm thiết bị đầu ra âm thanh của mình. Hơn nữa, hãy kiểm tra trình điều khiển âm thanh của bạn. Một vấn đề phổ biến là bạn có thể cần cài đặt lại gói pulseaudio

Âm thanh bị ngắt quãng hoặc ngắt quãng

Thử di chuyển thiết bị đến gần bộ định tuyến WiFi của bạn hơn. Ngoài ra, hãy đảm bảo rằng loa bluetooth ở gần. Cũng có thể là vấn đề về trình điều khiển âm thanh

Bước 7: Đặt vào một vỏ bọc vĩnh viễn

Đặt vào một bao vây vĩnh viễn
Đặt vào một bao vây vĩnh viễn

Tiếp theo, đặt nó vào hộp hoặc thiết bị tương tự để nó tồn tại vĩnh viễn. Tôi khuyên bạn nên có một cái mà bạn vẫn có thể truy cập sau này để gỡ lỗi. Tôi đã mua chiếc hộp gỗ nhỏ này tại một cửa hàng thủ công với giá 2 đô la và liên kết nó trên trang cung cấp. Một người bạn của tôi đã giới thiệu một hộp xì gà.

Sau đó, tôi khoét các lỗ ở mặt trước cho nút nhấn và công tắc xoay, đồng thời khoan một lỗ ở mặt sau của hộp cho dây nguồn microUSB.

Tôi đã thử nghiệm thú cưỡi và đảm bảo rằng nó hoạt động, và voilà!

Cuối cùng, tôi sử dụng keo siêu dính để giữ nút ấn. Breadboard của tôi có một chất kết dính ở dưới cùng mà tôi đã kết nối với một phần của hộp. Tôi đã sử dụng một dải băng keo nhỏ để cố định mặt sau của số pi vào hộp, để có thể di chuyển nó sau này nếu cần.

Bước 8: Thiết lập chương trình để chạy khi khởi động

Cuối cùng, bạn có thể sẽ muốn chương trình python này chạy khi khởi động raspberry pi, vì vậy bạn không cần phải làm điều đó theo cách thủ công. Có nhiều cách để làm điều này mà bạn có thể tìm thấy trên mạng.

Cá nhân tôi thiết lập nó bằng cách thứ hai trong hướng dẫn SparkFun này:

Ở đây, nó đợi hệ thống vào màn hình đồ họa trước khi chạy chương trình. Sau đó, chương trình python sẽ trì hoãn 45 giây để hệ thống có thời gian kết nối lại với loa bluetooth. Nếu bạn đang sử dụng loa tích hợp, bạn có thể loại bỏ độ trễ này. Lưu ý rằng loa bluetooth phải được bật trước! (cho giải pháp bluetooth)

Bây giờ bạn có thể thử tắt nguồn và bật lại số pi của mình! Sau khoảng 90 giây số pi của bạn sẽ bắt đầu phát lại các luồng radio. Khi nhấn nút, nó sẽ tạm dừng / phát. Lưu ý rằng trong những lần khởi động lại này, nó sẽ đọc lại tệp json internetStations đó, vì vậy nếu bạn thay đổi các trạm của mình, bạn cần khởi động lại thiết bị để chúng hoạt động. Xin chúc mừng!

Nếu bạn đã thực hiện điều này hoặc thực hiện các sửa đổi đối với dự án, vui lòng cho tôi biết!

Trang Github:

Đề xuất: