이 인터넷 라디오 및 MP3 플레이어는 터치 스크린 3.5 HDMI LCD가 작동합니다. 원래 프로젝트는 Adafruit에서 발행했으며 MPC, MPD 및 Pygame을 사용합니다.

라즈베리 파이 3의 인터넷 라디오 구성 요소 및 mp3 플레이어

라즈베리 파이 3에 인터넷 라디오 및 mp3 플레이어 설치

  • raspbian을 다운로드하고 이미지를 microSD 8GB 이상으로 굽습니다. 또한 SSH를 통해 라즈베리 파이에 연결하는 방법을 알아야 합니다. 키보드와 마우스 연결
  • 라즈베리파이에 LCD 화면을 부착합니다.
  • 터미널 창을 열고 입력

sudo raspi 구성

  • 시간 및 입력 언어에 대한 초기 설정
  • 이동 추가 옵션 VNC, SSH를 활성화하고 해상도를 640x480으로 설정하십시오.
  • 라즈베리파이 재부팅
  • 이미지에는 음악을 저장하는 데 필요한 공간을 차지하는 프로젝트에 불필요한 프로그램이 포함되어 있으므로 Pi에서 마우스를 사용하여 Wolfram 및 Libreoffice를 제거하고 추가/제거 또는 SSH를 통해 선택합니다.

sudo apt-get 제거 wolfram-engine libreoffice* -y

sudo apt-get clean

sudo apt-get 자동 제거

sudo apt-get 업데이트

sudo apt-get 업그레이드

  • 업데이트가 끝나면 필요한 것을 설치할 준비가 된 것입니다. 이제 LCD 드라이버를 설치합니다.

자식 클론 https://github.com/goodtft/LCD-show.git

chmod -R 755 LCD 쇼

sudo ./MPI3508_600_400-show

  • Pi 라디오와 함께 사용되는 해상도는 640x480이므로 config.txt를 변경해야 합니다.

sudo nano /boot/config.txt

  • 파일 하단의 해상도를 640x480으로 변경합니다. 저장, 종료 및 재부팅(재부팅).
  • 이 시점에서 Pi는 데스크탑과 터치 스크린으로 부팅되어야 합니다. 이제 Pi-radio 파일을 설치합니다.

sudo apt-get 설치 mpc mpd

자식 클론 https://github.com/granpino/Pi-Radio-mp3-.git

chmod -R 755 파이-라디오-mp3-

cd 파이-라디오-mp3-

sudo ./install.sh

  • 설치 파일은 mp3 및 인터넷 라디오에 필요한 재생 목록을 생성합니다. 라즈베리 바탕 화면에 아이콘이 있어야 합니다. Pi-radio를 열려면 라디오 바로 가기를 두 번 클릭합니다. 클릭 한 번으로 바탕 화면을 변경하려면 다음으로 이동하십시오. 파일 관리자, 편집을 클릭하고 맨 아래에서 속성을 선택하십시오. "한 번의 클릭으로 파일 열기"를 선택하십시오.
  • LCD 화면을 사용하는 동일한 Pi에서 다른 앱을 실행하고 싶기 때문에 데스크탑에서 앱을 실행하기로 결정했습니다. 테스트를 위해 몇 가지 샘플 mp3 파일과 라디오 방송국을 포함했습니다. 재생 목록에 다른 라디오 방송국을 추가하려면 http://www.radiosure.com/stations/로 이동하여 링크를 M3U에 복사하십시오.

mpc 세이브 플레이리스트

  • 또는 파일 편집

sudo nano ~/var/lib/mpd/playlists/playlist

  • mp3 파일 추가, 음악 폴더로 이동

sudo ls -1 /home/pi/Music/*.mp3 > /var/lib/mpd/playlists/mp3.m3u

이 프로젝트에서 우리는 Raspberry Pi를 강력한 FM 라디오 방송국으로 바꿀 것입니다! 집, 집에서 만든 야외 드라이브인 극장, 고등학교 야구장, 오토바이 퍼레이드까지 충분히 커버할 수 있는 범위가 있습니다.

프로젝트의 경우 Pi의 기능을 크게 향상시키는 PiFM 프로그램과 특정 길이의 와이어가 필요합니다. 즉, Raspberry Pi를 제어하려면 최소한의 구성 요소가 필요합니다. SD 카드, 전원 공급 장치, 보드 자체입니다. 라즈베리 파이(AliExpress에서 구매)- 철사 한 조각을 추가합니다. 결과는 소수의 구성 요소 중에서 가장 멋진 Pi 장치여야 합니다.

PiFM 프로그램은 원래 Oliver Mattos와 Oskar Weigl이 만든 다음 Ryan Grassel이 재설계했습니다. 제공된 조언에 대해 전체 PiFM 커뮤니티에 특별한 감사를 표하고 싶습니다. MAKE Lab이 프로젝트에 기여했습니다 - 스크립트 해적 라디오.파이, 명령줄을 사용하지 않고도 음악 파일을 재생할 수 있으며 자동 처리 및 관리 기능도 제공합니다. 각본은 MAKE Labs의 인턴인 Wynter Woods가 작성했습니다. 소스 코드를 찾을 수 있습니다.

노트:라즈베리파이의 방송 주파수는 1MHz에서 250MHz까지 다양하며 정부 대역과 겹칠 수 있습니다. 표준 FM 대역 87.5MHz - 108.0MHz로 전송을 제한하는 것이 좋습니다(3단계 참조). 허가된 방송사와 주파수가 겹치지 않도록 항상 아직 사용하지 않는 주파수를 선택하십시오.

1단계: 안테나 만들기

  • 안테나를 만드는 데 필요한 것은 한 조각의 전선입니다. 이렇게 하려면 75cm 와이어를 핀 4에 연결해야 합니다(이렇게 하면 FM 중반 영역에서 100MHz에서 반파장 다이폴 안테나를 적절하게 생성할 수 있습니다). 40cm 단선 12AWG(2.053mm) 와이어를 사용했습니다. 와이어가 더 길면 장치가 망가지기 시작했기 때문입니다.
  • 암 연결 와이어를 자르고 벗겨냅니다. 안테나의 한쪽 끝에 납땜하고 열수축 튜브를 사용하여 납땜된 부분을 절연합니다.
  • 연결 주위에 워밍업 접착제를 바르고 Raspberry Pi의 GPIO 핀 4 위로 밀어 넣습니다. 접착제를 사용하면 안테나 구조가 더 단단해져서 똑바로 서 있을 수 있습니다.
  • 노트: Raspberry Pi 스타터 키트가 있고 급한 경우 Cobbler 확장 보드에 연결된 수 커넥터를 사용할 수 있습니다! (둘 다 포함). 작동하지만 범위가 40cm 단선 12AWG(2.053mm) 구리선에 비해 거의 절반으로 변경됩니다.

2단계: 디스크 이미지를 SD 카드에 다운로드하고 음악 추가

  • 시스템을 구성할 때 시간을 절약하기 위해 MAKE Labs는 디스크 이미지를 만들었습니다. 여기에서 다운로드하십시오(필요한 고급 사용자만 원천이 문서의 세 번째 단락에서 다운로드 각주를 찾을 수 있습니다.
  • 원래 PiFM 코드는 인상적인 결과를 보여주었습니다. MAKE 이미지는 맵의 분할을 수행하여 맵을 생성합니다. 시스템 파티션및 데이터 섹션. 또한 데이터 파티션을 자동으로 마운트할 수 있습니다. 이미지는 원본 코드의 일부를 사용하며 MP3, FLAC 및 기타 형식을 재생할 수 있습니다. 스크립트는 시작 시 실행됩니다. 해적 라디오. 파이, 따라서 라디오 송신기가 로드된 후 즉시 음악이 방송됩니다. 결국 많은 시간을 절약할 수 있습니다. 하지만 그냥 SD 카드에 파일을 복사할 수는 없습니다. 카드는 작업을 위해 준비해야 합니다.
  • 이미지를 SD 카드에 다운로드합니다. 이 작업을 수행하는 방법을 모른다면 놀라지 마십시오. 모든 것이 매우 간단합니다. Windows에서 Win32DiskImager를 사용하거나 작업 지침을 사용할 수 있습니다. 명령줄(1) OSX 컴퓨터를 사용하는 경우. 나는 그것이 리눅스 사용자명령줄에 더 익숙합니다.
  • OSX 및 Linux 사용자의 경우 PirateRadio 섹션을 열고 시작하기만 하면 됩니다. Windows 사용자는 WinSCP를 사용하여 SSH를 통해 Pi를 연결하는 지침을 따라야 합니다.
  • 음악을 추가하려면 아티스트 또는 앨범 폴더를 SD 카드의 "Pirate Radio" 루트 디렉토리에 복사하기만 하면 됩니다. 음악 파일은 이 폴더 안에 있으므로 모든 음악을 기본 디렉터리에 함께 덤프할 필요가 없습니다.

3단계: 구성 파일 편집

파일에서 방송에 필요한 주파수를 설정할 수 있습니다. 해적 라디오. 구성. 파일 열기 텍스트 에디터. 다음이 표시되어야 합니다.

주파수 = 108.2 셔플 = True repeat_all = True

  • 라디오에서 방송할 방송국의 주파수를 설정합니다. 표준 FM 주파수는 일반적으로 87.5MHz에서 108.0MHz 사이입니다(108.2는 테스트 라디오가 도달할 수 있는 가장 높은 주파수이며 다른 방송국과 중복되지 않음).
  • 셔플 옵션을 True로 설정하거나 False로 설정하여 알파벳 순서로 재생합니다.
  • 재생 목록을 루프로 재생하려면 repeat_all 매개변수를 True로 설정하십시오.

4단계: 시작합니다!

FM 라디오를 원하는 주파수로 조정하고 Raspberry Pi를 시작하십시오. 마이크로컴퓨터를 시작하는 데 약 15초가 걸립니다. 그 후에는 음악을 크고 또렷하게 들어야 합니다.

5단계: PiFM 프로그램 작동 방식


  • PiFM 위키에서 발췌: "이 프로그램은 Raspberry Pi 하드웨어를 사용합니다. 이는 강력한 FM 라디오를 위해 GPIO 핀에서 광대역 동기화 신호를 생성한다는 것을 의미합니다. 이는 Raspberry Pi를 와이어 조각(약 20cm)으로 연결하기만 하면 됨을 의미합니다. long) GPIO 핀 4에 삽입하고 프로그램 코드를 실행하십시오."
  • 주파수 변조는 "분할 분배기로 주파수를 조정하여 수행"됩니다. 예를 들어 100MHz의 목표 주파수를 얻으려면 신호가 100.025MHz와 99.975MHz 사이에서 변경되어 오디오 신호가 생성됩니다.
  • 프로그램 코드 Python에서 기본 주파수는 임의 파일 재생 및 음악 목록 반복이 비활성화된 87.9FM입니다. 이 프로그램은 SD 카드에서 음악 파일을 검색하고 설정한 옵션에 따라 목록을 만듭니다. 구성파일. 또한 각 파일은 유형에 따라 디코더로 전송됩니다. 그 후, 각 파일은 PiFM이 이해할 수 있는 모노 형식으로 트랜스코딩됩니다. 이를 통해 WAV 파일뿐만 아니라 MP3, FLAC, M4A, AAC 또는 WMA 파일도 재생할 수 있습니다.

6단계: 최종 단계

대도시에 살면서 간단한 라디오 수신기만 있으면 VHF 대역의 수십 개의 라디오 방송국을 매우 좋은 품질로들을 수 있습니다. 이것으로 충분할 것 같습니다 ...

그러나 공중파 라디오 방송국에는 몇 가지 단점이 있습니다. 첫째, 이것은 일부 지역에서 불확실한 신호 수신이며 둘째, 명백한 다양성에도 불구하고 음악적 취향에 완전히 부합하는 라디오 방송국을 찾기가 항상 쉬운 것은 아닙니다. 또한 - 성가신 광고 및 대부분의 방송국의 다소 제한된 레퍼토리.

이제 많은 사용자가 World Wide Web에서 방송하는 라디오 방송국을 선호하는 것은 놀라운 일이 아닙니다. 현재 인터넷 라디오 방송국의 수는 이미 10,000개를 초과했습니다. 인터넷을 통해 세계 거의 모든 국가에 있는 방송국의 프로그램을 들을 수 있으며 가장 많이 방송되는 다른 언어들. 하지만 라디오를 듣기 위해 컴퓨터를 켜는 것은 조금 불편하다. 어떻게 든 더 친숙하고 더 편리합니다-그는 손잡이를 비틀었습니다-역에 맞춰졌습니다 ...

그래서 인터넷 라디오 수신기를 만들 것입니다. 이 생각은 훨씬 더 강력한 Raspberry Pi 2를 구입한 후 작업이 중단된 Raspberry Pi 모델 B 마이크로컴퓨터를 사용할 프로젝트를 결정할 때 떠올랐습니다.

Raspberry Pi에는 많은 인터넷 라디오 프로젝트가 있습니다. 내가 찾은 최고는 Pi Radio입니다. 작가 - 밥 래스본- 이 프로젝트를 2년 이상 진행했습니다. 특히 주목할만한 것은 모든 정보의 개방성과 가용성, 그리고 하드웨어 및 소프트웨어 구성 방법에 대한 매우 상세한 설명입니다.

내가 반복하기로 결정한 것은 바로 이 전개였습니다. 물론 그냥 무작정 카피한 것이 아니라 창의적으로 접근해 나만의 것을 더했다.

그리고 파이 라디오는 무엇입니까? 이것은 온라인 라디오 방송국을들을 수있게 해주는 인터넷 수신기입니다. 또한 플래시 드라이브 또는 네트워크 드라이브안에 홈 네트워크. 이 프로그램에는 타이머, 알람 시계, RSS 뉴스, 팟캐스트 등 다양한 서비스 기능이 포함되어 있습니다.

인터넷 연결은 유선 또는 WiFi 중 하나일 수 있습니다. 수신기의 기본은 인기 있는 Raspberry Pi 마이크로 컴퓨터이며 B, B +, 2 또는 Zero와 같은 모든 모델을 사용할 수 있습니다.

Bob Rathbone은 여러 회로 및 소프트웨어 옵션을 개발했습니다. 인코더와 버튼을 사용하여 2줄 또는 4줄 문자 LCD 디스플레이에 정보를 표시하는 제어가 가능합니다. 리모컨으로 수신기를 제어할 수 있습니다.

디스플레이는 Raspberry Pi의 I/O 포트에 직접 연결하거나 I2C 버스를 통해 PCF8574 기반 보드를 사용하여 연결할 수 있습니다. 저자는 I2C 인터페이스가 있는 AdaFruit LCD와 SPI 인터페이스가 있는 PiFace CAD의 두 가지 유형의 디스플레이를 더 사용할 수 있는 가능성을 제공했습니다.

I/O 포트 및 인코더 제어에 2줄 디스플레이를 직접 연결하여 옵션을 반복했습니다. 결과는 나를 완전히 만족 시켰으므로 다른 수신기가 필요할 때 두 번째 버전을 만들었습니다. 모든 것이 동일하지만 버튼을 제어합니다. 다음에서는 이 두 가지 수정 사항을 정확하게 설명하겠습니다.

처음에는 PCF8574 보드를 사용하여 I2C 버스를 통해 디스플레이를 연결하려고 했습니다. 설정에 많은 시간을 보냈지만 결국 이 옵션을 포기해야 했습니다. 소프트웨어상당히 복잡하고 방대합니다. 분명히 저자는 자신의 라디오에 대한 모든 옵션을 철저히 테스트할 수 있는 힘과 능력이 없습니다.

특히 리모콘에서 명령을 보낼 때 프로그램이 계속 끊어졌습니다. 여기에서 무슨 일이 일어나고 있는지 알아내기가 어렵습니다. 그러나 디스플레이를 Raspberry Pi에 직접 연결하는 옵션은 안정적으로 작동합니다. 따라서 이 수신기에서 I2C 또는 SPI 버스를 사용하지 않는 것이 좋습니다.

제 생각에 저자는 모든 종류의 보조 기능에 너무 많은 관심을 기울여 주요 기능을 손상 시켰습니다. 결국 LCD 표시기의 기능은 매우 제한적이며 예를 들어 뉴스를 읽는 것이 그리 편안하지 않습니다. 수신기를 알람 시계로 사용하는 것은 매우 위험합니다. 어떤 이유로 인터넷이 없으면 라디오도 없을 것입니다. 그리고 밤에 전기가 끊길 수도...

그러나 일반적으로 모든 것이 해결되었으며 수신기를 사용할 수 있습니다.

실제로 라디오 수신기는 디스플레이와 2개의 인코더가 연결된 I/O 포트에 Raspberry Pi 보드입니다. 그 중 하나의 도움으로 스테이션이 선택되고 두 번째의 도움으로 볼륨이 조정됩니다. 사용된 디스플레이는 16자 2줄용 HD44780 컨트롤러를 기반으로 하는 가장 일반적인 디스플레이입니다. 인코더 대신 5개의 버튼을 탐색에 사용할 수 있습니다.

고음질을 좋아하는 분들을 위해 AUDIO 대신 Raspberry Pi 출력을 사용할 수 있습니다. 외부 USB사운드 카드.

물론 수신기에는 전원 공급 장치가 필요합니다. 선택할 수 있는 많은 옵션이 있습니다 - 최소 1.5A의 전류가 있는 5볼트의 안정화된 전원 공급 장치가 작동합니다.전화 충전기가 작동하지 않는다는 점을 명심하십시오. 안정화된 전원 공급 장치가 필요하며 부하 상태의 전압은 작동하지 않아야 합니다. 4.8V 아래로 떨어지고 5.2V 이상으로 부하가 상승하지 않습니다.

음, 어떻게든 음악을 들어야 합니다. 스테레오 앰프 또는 액티브 스피커가 필요합니다. 또한 모든 취향(소문)과 지갑에 대한 많은 옵션이 있습니다.

나는 이 프로젝트를 위해 아마추어 라디오 정크 박스를 최대한 활용하기로 결정했습니다. 여기에는 필요한 전류 및 전압에 대한 우수한 주전원 변압기, LM2576-ADJ 스위칭 안정기 미세 회로 및 다소 강력한 스테레오 저음 증폭기 LM1876의 미세 회로가 포함되어 있습니다.

저자는 단순히 전원 스위치로 수신기를 켜고 끌 것을 제안합니다. 이것이 라즈베리 파이에 해를 끼치지는 않지만 불행한 상황에서 라즈베리 파이를 손상시킬 수 있습니다. 파일 시스템 SD 카드에. 따라서 시스템을 올바르게 종료하고 전원을 끄는 회로로 장치를 보완하기로 결정했습니다. 또한 작성자는 이러한 모드를 제공했습니다. "메뉴" 버튼을 3초 동안 누른 다음 30초 더 기다렸다가 전원을 꺼야 합니다. 동의합니다. 매우 불편합니다.

결과는 이 계획입니다. 이것은 인코더 제어가 포함된 첫 번째 버전입니다. 내 추가 사항은 파란색으로 강조 표시됩니다.

튜닝 및 볼륨은 각각 버튼 SA1, SB1 및 SA2, SB2가 있는 인코더를 사용하여 제어됩니다. 버튼 SB1 - "메뉴", SB2 - "음소거" 모드로 들어갑니다. 인코더는 90도만큼 이동된 펄스 시퀀스를 출력해야 합니다. 저는 ES110501S-HA2 5핀 타입을 사용했습니다. 이 표시 아래 상점의 가격표에 나열되었습니다.

트랜지스터 VT3 ... VT7 및 저항 R11 ... R23은 표시기용 3.3 - 5V 논리 레벨 변환기입니다. 이러한 항목은 선택 사항입니다. 실습에서 알 수 있듯이 5볼트 표시기는 3.3V 논리 레벨에서 정상적으로 작동하지만 문제가 발생하면 표시기의 작은 보드에 레벨 변환기를 직접 장착할 수 있습니다. 3.3V로 전원이 공급되는 표시기를 사용하는 것이 훨씬 낫지 만 이러한 표시기는 매우 드물고 비용이 훨씬 많이 듭니다.

DA1은 TV용 리모콘 수신기로, 공통 이미터가 있는 회로에 따라 출력에 트랜지스터가 있고 컬렉터 회로에 약 30KΩ의 부하 저항이 있어 레벨 매칭 문제가 없다. HL2 - 원격 제어 활동 표시기.

그것은 실제로 전체 수신기이며 왼쪽에 파란색으로 강조 표시된 회로 부분이 전원 회로입니다. 나는 일반 변압기 전원 공급 장치를 사용했습니다. 오프 상태에서는 모든 회로의 전원이 차단되고 대기 모드가 없습니다. SB4 버튼을 누르면 변압기에 전원이 공급됩니다. 나는 당신의 주의를 끕니다 - 버튼은 래칭이 아니며 220V를 전환하도록 설계되어야 합니다. C4, C5, L1, L2 - 네트워크 필터간섭, 등급 L1, L2는 중요하지 않습니다.

스태빌라이저의 출력에서 ​​5V의 전압이 Raspberry Pi의 microUSB 커넥터에 공급되고 PIC 컨트롤러 DD1. 컨트롤러의 핀 7(GP0)에서 높은 논리 레벨이 설정되고 트랜지스터 VT1이 열리고 릴레이 K1이 활성화되고 접점으로 전원 버튼을 차단합니다.

컨트롤러의 핀 3(GP4)에서 0 레벨이 설정되며 시스템 부팅 및 종료 중에 ULF 입력을 단락시키는 데 사용됩니다. 사실 USB 사운드 카드를 활성화하는 과정에는 불쾌하고 다소 큰 소리가 수반됩니다. Raspberry Pi의 내장 AUDIO 출력을 사용하려는 경우 K2 릴레이를 생략할 수 있으며 이 경우 컨트롤러의 GP4 출력은 어디에도 연결되지 않습니다.

전원이 공급되면 HL1 LED가 약 50초 동안 깜박이며 시스템이 부팅 중임을 나타냅니다. 이 시간이 지나면 수신기가 작동할 준비가 되고 핀 3(GP4)에 높은 논리 레벨이 설정되고 ULF 입력이 잠금 해제되고 HL1이 계속 켜집니다. HL1 및 HL2의 경우 하나의 바이컬러 공통 음극 LED를 사용했습니다.

수신기를 끄려면 SB3 버튼을 짧게 눌러야 합니다. 이 경우 컨트롤러 5(GP2)의 출력은 낮은 논리 레벨로 설정되어 SB1 "메뉴" 버튼을 누르는 것을 시뮬레이션합니다. 3초 후 시스템이 닫히기 시작하고 ULF 입력이 차단되고 HL1이 다시 깜박여 닫힘을 알립니다. 약 40초 후에 시스템이 닫히고 핀 7(GP0)이 0이 되고 릴레이 K1이 꺼지고 시스템의 전원이 차단됩니다.

컨트롤러는 PIC12F629 또는 PIC12F675와 같이 프로그램을 약간 수정하여 사용할 수 있습니다(모든 PIC).

변압기의 2차 권선의 전압은 다소 크지만 가용성에서 진행했습니다. 나는 5V용 스위칭 전압 레귤레이터를 사용해야 했다. 일반적인 회로에 따라 포함된 LM2576-ADJ에 조립된다. 저항 R1의 값은 릴레이 동작의 정격 전류와 전압을 기반으로 옴의 법칙에 따라 계산됩니다. L2, C3 - 임펄스 노이즈의 추가 필터. L1의 값은 LM2576의 데이터시트에 제공된 권장 사항에 따라 입력 전압 및 작동 전류를 기반으로 선택됩니다. L2의 값은 중요하지 않습니다.

회로의 유일한 노하우는 6.8V의 안정화 전압을 갖는 VD3형 D815B 제너 다이오드입니다. 이는 스태빌라이저의 동작에 참여하지 않으며, 스태빌라이저의 경우 전압 상승으로부터 부하를 보호하기 위해 설치됩니다. 부조. 동의 - 5V 대신 24V를 회로에 적용하면 결과가 매우 슬플 것입니다.

여기에서는 방열판이없는 보드에 장착 된 너트가있는 금속 케이스에 오래된 제너 다이오드를 사용해야합니다. 어떤 이유로 안정기 출력의 전압이 7V 이상으로 상승하면 제너 다이오드를 통해 큰 전류가 흐르고 변압기 권선 회로의 퓨즈가 끊어집니다.

글쎄, 퓨즈 대신 못이 설치되면 제너 다이오드가 과열되고 그 안에있는 크리스탈이 녹아서 출력을 단락시킵니다. 라즈베리파이가 저장됩니다. 유리 케이스에 저전류 제너 다이오드를 사용하는 경우 과부하가 걸리면 단순히 폭발하여 부하를 보호하지 못합니다.

저주파 증폭기에는 기능이 없으며 LM1876의 일반적인 회로에 따라 조립됩니다. 요소 C9...C12 및 R12...R17 - 2개의 고정 위치 Classic 및 Rock용 톤 컨트롤. 첫 번째 경우 주파수 응답선형, 두 번째 - 낮은 주파수와 높은 주파수의 상승이 수행됩니다. 세 위치에 대해 SA1 토글 스위치를 사용하는 경우 중간 위치에서 모든 접점이 열리면 낮은 주파수만 상승합니다. 톤 컨트롤은 SA1 핀에 표면 장착됩니다.

계전기 K2의 상시 폐쇄 접점은 시스템 부팅 및 종료 중에 증폭기 입력을 단락시킵니다. 다이어그램은 24V 권선이 있는 릴레이의 연결을 보여주지만 사용되는 전원 공급 장치에 따라 12V 또는 5V에도 사용할 수 있습니다. 이미 썼듯이 이 릴레이는 USB 사운드 카드와 고품질 음향에만 필요합니다.

튜닝 저항 R4를 사용하여 채널에서 이득이 균등화됩니다(스테레오 균형). 온라인 조정을 위해 이 저항을 출력할 필요는 없습니다. ULF 이득은 저항 값 R8 / (R3 + R4) 및 R9 / R7의 비율에 의해 결정됩니다.

증폭기는 변압기의 별도 권선에 의해 전원이 공급됩니다. 수신기의 아날로그 및 디지털 부분에 공통 전원 공급 장치를 사용하는 경우 모든 종류의 "호버 플라이" 및 "바이올린"과 같은 Raspberry Pi에서 생성된 간섭을 제거하기가 더 어려울 것입니다. 아날로그 및 디지털 "접지"는 VLF 입력 커넥터의 한 지점에서만 연결해야 합니다. 더 나은 아직, 별도의 외부 증폭기 LF 또는 활성 스피커.

버튼 제어가 가능한 두 번째 버전의 수신기 구성표는 다음과 같습니다.

"음소거" 모드는 "볼륨 업" 및 "볼륨 다운" 버튼을 동시에 누르면 활성화됩니다. 저항 R27-R31은 가장 오래된 Raspberry Pi 모델 B rev.1 모델에만 필요합니다. 개정을 위해. 2 및 B+, 2 및 Zero 모델은 설치할 필요가 없습니다.

전원 공급 장치 펄스 5V, 2A. 저항 R26, R27은 네트워크가 켜져 있을 때 돌입 전류를 제한하고 퓨즈 역할도 합니다. 다이오드 VD2 - VD4는 5-3.3V의 레벨을 일치시키는 데 사용됩니다. 권선이 5V인 계전기 K1. 두 쌍의 접점이 있는 이러한 계전기를 구입할 수 없는 경우 한 쌍의 한 쌍과 병렬로 두 개의 계전기를 켤 수 있습니다. 각. 이 경우 더 많이 사용해야 할 수도 있습니다. 강력한 트랜지스터 VT1. ULF 대신 5V(USB)로 구동되는 액티브 스피커를 사용했습니다. 그들은 Raspberry Pi의 AUDIO 출력에 연결합니다. 회로의 나머지 요소는 인코더 옵션과 유사합니다.

모든 보드의 도면을 Sprint Layout에만 게시하여 "기준으로 삼을" 수 있도록 합니다. 페이지 끝에 있는 링크. 1:1을 반복하는 것은 권장하지 않습니다. 보드의 치수와 구성은 우선 케이스에 따라 결정됩니다.

두 개의 수신기 옵션에 대한 PIC 펌웨어가 다릅니다. 인코더가 있는 옵션의 경우 이것은 파일입니다. piсrdo_enc.hex, 버튼이 있는 옵션의 경우 - piсrdo_but.hex. 펌웨어는 PIC12F629 및 PIC12F675 모두에 적합합니다. 펌웨어가 있는 아카이브에는 프로그램의 소스 텍스트 파일도 있습니다. 필요한 경우 수신기를 켜고 끄는 지연 시간을 쉽게 변경할 수 있습니다.

액세서리는 어디서 구입하나요? Raspberry Pi는 여전히 중국에서 주문하는 것이 더 저렴합니다(2015년 말). Aliexpress에서 가격은 모델에 따라 30...40 USD입니다. 필요한 경우 같은 장소에서 전원 공급 장치와 USB 사운드 카드를 매우 합리적인 가격으로 픽업할 수 있습니다.

USB 사용 사운드 카드음향이 충분히 좋은 경우에만 의미가 있습니다. 스피커 가격이 50달러 미만인 경우 Raspberry Pi의 내장 AUDIO 출력은 괜찮습니다. 스피커 선택은 러시아 전자 제품 매장에서 상당히 큽니다. 물론 인터넷 라디오에서 Hi-End 사운드를 기대하지 마십시오. 그러나 테니스 공 크기의 트위터가 최선의 선택은 아닙니다.

러시아어 지원이 필요한 경우 러시아에서 표시기를 구입하는 것이 좋습니다. 밝은 배경에 어두운 문자가 있는 모델을 선호해야 합니다. 흰색 문자와 파란색 백라이트가 있는 인기 표시기는 멋지게 보이지만 매우 "관성"입니다. 러닝 라인을 따라가는 것은 어려울 것입니다.

표시기에 러시아 문자 대신 상형 문자가 표시되면 괜찮습니다. 이 수신기에서 사용할 수 있습니다. 러시아어 텍스트만 라틴어로 표시됩니다. 소매점에서 인코더를 구입하는 것이 더 낫습니다. 최소한 브랜드는 알려질 것이므로 데이터 시트에서 매개 변수를 명확히 할 수 있습니다.

질문이 있는 경우 질문하기 전에 설명의 모든 부분을 주의 깊게 읽고 Pi Radio 작성자의 문서도 읽으십시오.

아시다시피 완벽에는 한계가 없습니다. 수제비에도 휴대용 음향, 사용자 대상에는 한 사람만 포함됩니다. 매우 까다롭고 때로는 광적으로 완고한 사람. Pi-Sonos에 대한 첫 번째 게시물이 공개된 지 거의 5개월이 지났습니다. 이 기간 동안 이 음향 내부의 소프트웨어는 두 번이나 극적으로 변경되었습니다. 변경 이유는 다음과 같습니다. 유용한 팁들 habravchan, 그리고 자신의 UX.

Pi-Sonos는 Sonos Play 1에서 영감을 받은 수제 소형 스피커입니다. 이 스피커의 목적은 무엇보다도 인터넷 라디오 방송국의 음악을 재생하는 것이었습니다. 그것을 만들 때 나는 미니멀리즘과 편리함을 최우선으로 생각합니다. 전원 콘센트에 꽂은 다음 집안 어디에서나 스마트폰/컴퓨터/태블릿의 음악을 제어합니다.


이 기사는 무엇에 관한 것입니까?

먼저 이상으로 가는 길에 대한 인내와 호기심에 대해. 컷인 username 아래에는 일부 글로벌 문제에 대한 솔루션도 없고 새로운 고유 기술에 대한 설명도 없습니다. 이 기사에서는 Raspberry Pi의 인기 있는 미디어 센터를 비교하고 장단점과 인터넷 라디오 수신기를 위한 최적의 프레임워크에 대한 개인적인 비전을 보여줍니다. 사실, 스피커용 소프트웨어를 작업하는 동안 Volumio 제작자의 길을 부분적으로만 반복하여 처음부터 기능 중 하나만 구현했습니다("다른 자전거 발명" 참조).
이 기사가 소프트웨어 개발 주제를 다루고 있다는 사실에도 불구하고 기사의 목적은 구현 프로세스가 아니라 아이디어와 기능을 설명하는 것이기 때문에 거기에는 코드가 없습니다. 코드 주제가 habravchans에게 관심이 있다면 개발 프로세스를 설명하는 별도의 기사를 마스터하려고 노력할 것입니다.


처음에는 OSMC가 어쿠스틱을 부드럽게 채우는 방식이었지만 댓글의 현명한 사람들은 Kodi(일명 OSMC)가 인터넷 라디오 방송국의 "두뇌"로서 너무 대담하다는 사실에 주목했습니다. 너무 똑똑하고 큽니다. 오디오 프로젝트에만 Volumio가 더 적합합니다. 사실, 그렇게 되었습니다. Volumio는 더 가볍고 웹 기반이며 더 발전되고 개발하기 쉬운 API를 가지고 있습니다. 또한 Volumio는 모든 브라우저에서 완벽하게 사용자 정의할 수 있으므로 뒷면에서 HDMI 케이블이 튀어나올 필요가 없습니다.

그러나 Volumio는 또한 몇 가지 중요한 단점을 보여주어 더 많은 연구를 하게 되었습니다. 이것은 첫 번째로 로딩 시간이고 두 번째로 자동 재생 기능이 없다는 것입니다. 공식 문서( 음악 플레이어 Daemon)), 나는 이러한 문제를 해결할 RPi-Radio라는 자체 js 래퍼를 작성할 때라고 결정했습니다. 그 중 서버 부분은 Node.js에서 실행되고 React.js를 사용하는 클라이언트 부분(GUI)은 OSMC부터 준비되었으므로 약간만 수정하면 됩니다. 현재 스마트폰 화면에는 다음과 같이 표시됩니다.


다음은 각 프레임워크의 단점과 장점을 명확하게 보여주는 표입니다.
표준 OSMC 볼루미오 RPi 라디오
로딩 시간 35초 45초 20초
시작 시 자동 재생 아니* 아니*
즐겨찾기 목록에서 라디오 방송국을 선택하기 위해 스마트폰의 "네이티브" GUI 메인 화면에서 탭한 횟수** 5+1 스크롤 4 1
모니터, 키보드 및 마우스 필요*** 아니 아니
웹 컨트롤 부분적인 완벽한 부분적인
방송국 목록 편집 그저 그래 규범 그저 그래
초기 설정 용이 그저 그래 엄청난 평범한
스마트폰 제어를 위해 내 GUI와 통합 목발로 목발로 박스에서
일상적인 사용의 편리함 ☆☆ ☆☆☆
* 사실, 그렇습니다. 하지만 목발을 만들어 Raspbian 자동 로드에 넣어야 합니다. OSMC의 경우 목발은 python으로 작성되고 Volumio의 경우 js 또는 bash로 작성됩니다. 그러나 두 경우 모두 여전히 원하는 대로 작동하지 않습니다.
** OSMC와 Volumio의 경우 이것은 매우 중요한 매개변수, 이 모든 타파스 스크롤은 열을 켤 때마다 수행되어야 하기 때문입니다. RPi-Radio의 경우 이 매개변수는 최소이지만 스피커가 켜질 때 자체 재생을 시작하기 때문에 여전히 그렇게 중요하지 않습니다.
*** 의미 물리적 연결모니터, 키보드 및 마우스를 Raspberry Pi 자체에 연결합니다. 내장된 웹 인터페이스 또는 ssh 연결을 사용할 수 없는 경우.

이 스포일러 아래에는 각 비교 지점에 대한 자세한 설명이 숨겨져 있습니다.

제 생각에 20초의 로드 시간은 이 프로젝트의 Raspbian 최적화에 뛰어들지 않고도 달성할 수 있는 최소값입니다. OS를 로드하고 mpd 서비스를 시작하는 데 "라즈베리"가 걸리는 시간입니다. 아마도 이 결과는 microSDHC를 읽기/쓰기 속도가 더 높은 microSDXC로 교체하면 개선될 수 있습니다(가능한 경우 확인하겠습니다). 놀랍게도 가볍고 민첩한 척하는 Volumio는 OSMC 몬스터 수확기보다 로딩 시간이 더 오래 걸립니다. 45초의 기다림은 편안한 작동의 문턱을 넘어, 이것이 볼루미오를 떠나게 된 주된 이유였다.

자동 재생은 기본적으로 mpd에 포함되어 있으므로 활성화하기 위해 아무 것도 할 필요가 없습니다. 편리합니다! Volumio에서는 mpd용 래퍼이지만 멋진 환영 소리를 위해 이 기능을 억제했습니다. 이미 썼듯이 스크립트를 만들어 자동 로드에 넣을 수 있습니다. 상황은 OSMC와 유사합니다.

OSMC에서 대부분의 사용자 상호 작용은 모니터를 통해 발생합니다. 아름다운 인터페이스, 비디오, 사진, 뉴스, 날씨를 볼 수 있는 기능이 있습니다. 내 칼럼에서 평생 하지 않을 많은 것들이 있습니다.

그러나 OSMC의 웹 관리는 매우 제한적이며 라디오 플러그인에서 원격으로 즐겨찾는 방송국 목록을 설정할 수도 없습니다. 모니터를 통해서만 가능합니다. Volumio는 반대입니다. 모든 것이 웹 인터페이스를 통해서만 가능합니다. 데스크탑/노트북의 브라우저에서 스테이션 목록을 편집하는 것이 가장 편리하지만 원하는 경우 스마트폰에서도 가능합니다. RPi-Radio를 사용하면 웹 인터페이스를 통해서만 방송국을 선택하고 사운드를 조정할 수 있습니다. 스테이션 목록과 다른 모든 것은 ssh를 통해 콘솔을 통해 수행해야 합니다. 방송국 목록이 가장 어렵습니다. OSMC와 Volumio에 광범위한 인터넷 라디오 방송국 라이브러리가 있는 경우 RPi-Radio에서 내가 좋아하는 방송국의 주소를 JSON 형식으로 수동으로 입력해야 했습니다. 불편하지만 일생에 한 번(또는 여러 번)만.

에서 초기 설정 OSMC에서 최악의 경우. 먼저 모니터를 "라즈베리"에 연결하고 라디오 플러그인을 구성한 다음 콘솔이나 ssh를 통해 외부 IQAudio DAC(Suptronics X400 보드에 있는 것)에 대한 사운드 출력도 구성해야 합니다. RPi-Radio에는 동일한 DAC 설정이 있지만 적어도 다른 모든 작업은 ssh를 통해 수행됩니다. 물론 이 후보의 선두주자는 Volumio입니다. 외부 DAC를 통해 사운드를 출력하려면 설정 메뉴의 드롭다운 목록에서 적절한 항목을 선택하기만 하면 됩니다. 공식 Suptronics 웹 사이트 (http://www.suptronics.com/xseries/x400.html)에도 비교가 있습니다.

RPi-Radio의 GUI는 React.js로 구현된 간단한 웹 페이지입니다. 클라이언트 GUI와 mpd 간의 상호 작용을 담당하는 서버 부분은 Node.js에서 실행되며 Socket.io + http + express 번들을 기반으로 하는 간단한 HTTP 및 WebSocket 서버입니다. mpd 서비스가 시작된 직후 시스템 시작 시 서비스로 Raspbian에서 실행되며 mpd를 제어하기 위해 mpc-js 모듈을 사용합니다. 클라이언트 GUI는 "라즈베리"의 IP 또는 호스트 이름으로 홈 네트워크의 모든 브라우저에서 액세스할 수 있습니다. 완벽한.


RPi-Radio 소스 게시

여러 번 말했듯이 미니 PC의 다양성에는 한계가 없습니다. 독특한 프로젝트를 만들려면 프로그래밍 분야의 기본 지식과 자유 시간이면 충분합니다. 그러나 모든 사람에게 여분의 시간이 있는 것은 아니지만 저는 제 손으로 무언가를 하고 싶습니다. 그래서 인터넷이나 플러그인을 이용해 라즈베리에서 라디오를 듣는 방법에 대한 짧은 글을 준비했습니다.

Raspberry Pi의 인터넷 라디오

이 방법을 사용하여 라디오 방송국을 만들려면 적절한 모듈이 장착된 가제트 모델이 필요합니다. 더 큰 편의를 위해 내장 Wi-Fi 모듈로 이전 수정 사항을 사용할 수 있으므로 많은 추가 전선을 버릴 수 있습니다. 그런 다음 아래 지침에 따라 Raspberry Pi로 인터넷 라디오 수신기를 만들기 시작합니다.

  1. 우리는 음악을 재생할 오디오 장치 보드에 연결합니다. 선택적으로 가제트에 대한 케이스와 작은 화면을 선택할 수 있습니다.
  2. 라디오 방송을 포함하여 가장 일반적인 오디오 파일 형식을 재생할 수 있는 미니 PC에 플레이어를 설치하는 "sudo_apt-get_install_mplayer" 명령을 작성합니다.
  3. 운영 체제가 설치된 스마트폰 또는 태블릿에 설치 안드로이드 애플리케이션, 키보드를 연결하지 않고도 Raspberry에서 명령을 실행할 수 있습니다. 우리의 경우 이것은 Raspi SSH입니다. 또한 개별 버튼을 가제트에 납땜하고 적절한 명령을 작성하여 라디오 방송국을 켜고 중지할 수 있습니다.
  4. 라디오 "mplayer_-playlist_http://라디오 방송국에 대한 직접 링크"를 켜는 명령을 작성합니다. 이 경우 등록된 라디오 방송국만 재생된다는 점에 유의해야 합니다. 다른 것으로 전환하려면 명령을 다시 입력해야 합니다. 공식 링크는 해당 웹 사이트에서 찾을 수 있으며 빠른 탐색을 위해 편리한 위치에 저장할 수 있습니다.
  5. 청취 후 라디오를 끄려면 "killall_mplayer" 명령을 입력하여 가제트 손상 위험을 최소화하면서 응용 프로그램을 종료한 다음 전원에서 미니 PC의 연결을 끊습니다.

또한 Raspberry에서 인터넷 라디오를 들으려면 적절한 응용 프로그램을 지원하는 "OS"를 설치하거나 기성품 유틸리티(Github에서 사용 가능)와 함께 펌웨어를 사용할 수 있습니다. 이제 RTL-SDR 수신기와 함께 Raspberry를 사용하는 기능을 살펴보겠습니다.

영구적인 인터넷 연결에서 미니 PC를 분리하려면 사용 가능한 온라인 상점에서 Raspberry Pi용 소형 SDR 수신기와 대각선이 2.8인치 이상인 디스플레이(PiTFT)를 구입할 수 있습니다. 그런 다음 지침을 따르십시오.

  • 디스플레이 연결 및 설정. 이렇게 하려면 필요한 모든 소프트웨어(직접 링크 adafruit-download.s3.amazonaws.com/2015-02-16-raspbian-pitft28r_150312.zip)와 함께 이미지를 다운로드하고 가제트의 메모리 카드를 플래시합니다. OS가 이미 Raspberry에 설치되어 있고 중요한 데이터를 잃지 않으려면 수동으로 설정을 수행할 수 있습니다(고급 사용자만 해당).
  • Raspberry Pi RTL-SDR에서 라이브러리를 다운로드합니다(Github에서 필요한 모든 것이 포함된 기성 아카이브를 찾거나 각 라이브러리를 수동으로 처방할 수 있으므로 권장하지 않음).
  • Python용 모듈 래퍼를 설치합니다. 이를 위해 "sudo_pip_install_pyrtlsdr" 명령을 작성하고 메모리 카드에서 설치가 완료될 때까지 기다립니다.
  • 신호 수신 모니터링 및 향후 라디오 청취 기능을 제공하는 FreqShow 애플리케이션을 설치하십시오. 이렇게 하려면 "cd_~ Paragraph git_clone_https://github.com/adafruit/FreqShow.git Paragraph cd_FreqShow" 명령을 작성하세요.
  • "sudo_python_freqshow.py" 명령으로 애플리케이션을 시작하고 모든 기능 로드가 완료될 때까지 기다립니다.
  • rtl_fm 프로그램을 사용하여 "rtl_fm_-f_104.7M(모든 주파수 가능) -M_wbfm_-s 200000_-r_48000_-_|_aplay_-r_48k_-f_S16_LE" 명령을 사용하여 무선 신호를 재생합니다. 이 방법공식 라디오 방송국의 주파수뿐만 아니라 라디오 모듈의 캡처 영역을 통과하는 모든 신호도 들을 수 있습니다.

또한 Raspberry Gqrx에서 SDR 모듈을 사용하여 더 나은 사운드를 제공할 수 있습니다. 그러나 이러한 모듈이 작동할 때 원하는 신호를 포착하고 구성하는 것이 훨씬 더 어렵습니다. 안정적인 작업미니 PC에서는 Raspberry 사용자 커뮤니티에서 덜 일반적입니다.

그게 다야 유용한 정보라디오를 듣기 위해 Raspberry에서 인터넷과 SDR을 사용하는 방법에 대해 설명합니다. 좋아하는 라디오 방송국의 순수한 사운드를 컴팩트한 패키지로 즐기고 작은 장치의 힘으로 친구들에게 깊은 인상을 남깁니다.