|
  
|
[測試] esp8266 做網路收音機, 只聽 RTHK2
本帖最後由 xiao 於 2017-7-1 11:50 編輯
實驗完畢, 算是總結學習報告, 有 firmware 及燒錄工具, 可供快速試用, 可以下載, https://github.com/xiaolaba/ESP8266_MP3_DECODER
不需要千辛萬苦自己建立, 以免失了興趣停滯不前. 要試用的話, 燒好 firmware, 再把自家的 ROUTER 設定臨時改一下就立馬可以實驗聽網台,
ROUTER 設定,
wifi ssid : xiaolaba_tap
pwd : 123456789
耳機可以直接聽, 接擴大機也可以, 嫌高音破音刺耳可以加 RC filter, 1k - 3.3uF.
想玩但是礙於困難重重不知如可開始的, 可以一試.
硬件買 NodeMCU 較簡單, 玩過懂得基本的可以便宜可以選 ESP-12E / ESP-12F / ESP-12S. 只要知道怎樣進入 BOOT LOAD 模式就可以.
追求 HIFI / HI-END 的話會嗤之以鼻, 這種玩具或者MP3都是不入流的, 聽說有 http://www.foobar2000.org/ 無損音質的數碼聲音, 聽過但木耳沒啥感覺, 可能是環境及機器沒有好, 暫且不表. 既然這個玩具響了, 看看作者說的 I2S 轉 5 bit PWM 聲音是如何製造出來的, 實際上聽感也是毛躁的. 抄了他的源碼如下, 暫時有讀沒懂,看得出來 fakepwm 開頭有定義32個常數 (5bit table), 除了這個推斷, 其他還沒明白, 哪個可以指點一下,- //https://github.com/espressif/ESP8266_MP3_DECODER/blob/master/mp3/user/user_main.c
- //Array with 32-bit values which have one bit more set to '1' in every consecutive array index value
- //table of 5 bit PWM = 32 sampling point ??
- const unsigned int ICACHE_RODATA_ATTR fakePwm[]={
- 0x00000010, 0x00000410, 0x00400410, 0x00400C10,
- 0x00500C10, 0x00D00C10, 0x20D00C10, 0x21D00C10,
- 0x21D80C10, 0xA1D80C10, 0xA1D80D10, 0xA1D80D30,
- 0xA1DC0D30, 0xA1DC8D30, 0xB1DC8D30, 0xB9DC8D30,
- 0xB9FC8D30, 0xBDFC8D30, 0xBDFE8D30, 0xBDFE8D32,
- 0xBDFE8D33, 0xBDFECD33, 0xFDFECD33, 0xFDFECD73,
- 0xFDFEDD73, 0xFFFEDD73, 0xFFFEDD7B, 0xFFFEFD7B,
- 0xFFFFFD7B, 0xFFFFFDFB, 0xFFFFFFFB, 0xFFFFFFFF
- };
- static int sampToI2sPwm(short s) {
- //Okay, when this is enabled it means a speaker is
- //connected *directly* to the data output. Instead of
- //having a nice PCM signal, we fake a PWM signal here.
- static int err=0; //??
- int samp=s; //16 bit PCM data, sound sample
-
- samp=(samp+32768); //to unsigned //聲音數據上移, 0 - 65526, 正號
- samp-=err; //Add the error we made when rounding the previous sample (error diffusion)
- //clip value, 限幅
- if (samp>65535) samp=65535;
- if (samp<0) samp=0;
- //send pwm value for sample value
- samp=fakePwm[samp>>11]; //保留最高 5bit PCM 聲音數據
- err=(samp&0x7ff); //Save rounding error. //保存餘下 11bit PCM 聲音數據
-
- return samp; //?
- }
複製代碼 .
.
最後把這帖標題更新了.
原來這帖標題, esp8266 做網路收音機 想知道電台網址和格式
請教的開端如下:
請問本地幾個大的電台網路放送有沒有mp3格式或ogg格式
有的話網址是甚麼
謝謝
https://github.com/Edzelf/Esp-radio/blob/master/README.md
http://hackaday.com/2015/06/06/e ... worked-mp3-decoder/ |
|
|
|