2022年9月11日 星期日

SqueezeBox Boom 網路電台收聽

自從Hinet公告HiChannel撥放電台廣播的服務即將在2022/9/30停止服務後,就一直思考我的Squeezebox Boom收聽廣播的這件事是不是會因此中斷,回想十多年前網路收音機蓬勃發展,因為HiNet的HiChannel改變了串流放送格式,讓各家的網路收音機都成了電子垃圾,曾幾何時,Logitech Squeezebox Boom也撐過這段時間,我也沒放棄它。之前沒放棄,我想這次應該也不會放棄吧 ! 

 搜尋了幾個電台網站的線上收聽方式,發現只要抓取到串流的M3U8檔案,加入Logitech Media Server的Favorite List, 就可以撥放了 ! 




問題來了 ! 怎樣才能抓到各個電台的串流檔案呢 ? 以下是我參照網上其他人的建議方式,不保證一定都可以,至少我想聽的電台都還可以抓到。

首先打開微軟Edge瀏覽器,Google搜尋想聽的電台網站,找到撥放電台的Widget,按滑鼠右鍵選擇 "檢查".

先找一個電台 News XX 試試,網頁中有一個撥放的介面,點選後會開始串流。滑鼠在上面按右鍵出現選單後選擇 "檢查"。




網站右方會出現一堆子分頁視窗,會有一個網路頁。




點選網路頁面後會出現撥放串流的內容如下:



在這個撥放檔案再按滑鼠右鍵儲存連結。


貼上Logitech Media Server Favorite List即可。

 再來就可以從Favorite 點選想聽的網路電台了 !!


這些連結是當下從瀏覽器抓下來的,不確定這個連結在一段時間之後是否會失效,有幾個連結似乎都還沒有問題,其餘的就有待時間來確認了!

NEWS 98
佳音台北台
佳音現代音樂台
佳音經典音樂台
台北廣播電台
好事 903 電台
好事 935 電台
好事 989 電台
幸福電台
栗子輕音樂
桃園Go Go Radio
港都 983 電台
羅東電台 FM90.3
警廣全國治安交通網
飛揚調頻 895

2022年4月16日 星期六

樹莓派外觀再進化 - DIY音響機箱




自從換了面板之後,越來越覺得現有的外殼好像還是和4吋面板格格不入,先前就有想過弄一個全鋁金屬機箱來玩玩,無奈能夠提供客製化的機箱選擇不是太多,找遍了露天賣家提供的機箱,為了能和TEAC DAC擴大機疊在一起,面板寬度限制在215mm,高度能塞得下4吋面板,找了好久終於找到一個215mmx90mmx220mm,應該還蠻適合的,詢問賣家可以代客挖孔面板後,便開始如火如荼的畫起草圖 !

前面板

前面板厚度有8mm厚,考慮LCD疊在後面會看到厚厚的邊框,決定把鋁板背面挖深一塊區域,然後整塊LCD面板可以鎖在鋁板上,讓LCD面板更貼近鋁板外面 。

3D示意圖

後面板因為可以挖孔,樹莓派的輸出介面可以完整的和機殼開孔對位,完整度應該會更高 !
後面板

給師傅的尺寸圖不小心失誤,RCA端子孔位和數莓派孔位重疊到了,還好師傅發現幫我修正,超感激的!  由於最近香港疫情升溫,物流中途耽擱,盼了將近一個月才等到貨,終於可以組裝訂製的機箱了 !



詳細比對了一下,還是有一點失望,師傅並沒有完全照設計的尺寸圖開孔,前面板的電源開關孔廠商竟然漏掉了,螢幕開窗挖深的區域偏中間了,後面板的RCA孔也沒照圖面開在正確的位置。所幸液晶面板模組可以嵌進挖深3.5mm的區域內,螺絲孔位都還正確,顯示面板貼在鋁板開窗處,沒有太突兀,其他的部份也只能將就了 ! 第一次自己畫設計圖再和廠商溝通細節,就算圖面沒問題,廠商製作時還是很容易發生失誤,下次有機會應該要讓廠商先拍照片確認再寄出才對。



中間在等待機箱的過程,同時尋找適合的電源供應和排線端子座,電源是用明緯的5V3A工業電源供應器,機箱看起來空蕩蕩的,尺寸小巧塞得進機箱中。


前面板還算簡潔

背板孔位還算到位


由於機箱會放在電視櫃裡面,坦白說觸控的功能實用性不大,反倒是手持遙控器會比較方便,
本來想找一個紅外線遙控器搭配一個紅外線接收感測器,後來發覺金屬機箱也沒有額外的開孔,紅外線遙控的方式可能不太行 !

      靈機一動拿了手邊的機上盒2.4G無線遙控器試試 ! USB接收器插在樹莓派USB埠上會偵測一個滑鼠裝置及鍵盤裝置。按了上,下,左,右,及OK鍵,Home鍵,返回鍵,甚至音量鍵都是可運作的,真是太完美了 ! 客製化1 ~ 5按鈕指定撥放,暫停,停止,就可以完整操作了 !




使用明緯工業用電源供應器,原本擔心聲音訊號會不好,還好我是木耳,感覺不出來 !接下來可以好好的聽音樂了 !

後來還是沒忍住硬是找廠商開了一個按鈕的孔,但是還是耍白癡給錯數字,開孔的位置偏了,只能將就了!



2022年2月28日 星期一

樹莓派 PiCorePlayer 顯示功能再進化

話說樹莓派換新機殼後也用了幾個月了,對於陽春的HMI面板顯示撥放的資訊還算差強人意,只是有一天在網路上看到其他玩家把樹莓派加上顯示面板後能夠顯示更多的視覺變化的真是嘆為觀止,心中也醞釀了好一陣子,趁著連假前敗了一個4吋HDMI介面加電阻觸控功能的面板,要在連假把我的樹莓派換裝成更酷炫的顯示效果!




網路上搭配樹莓派的PiCorePlayer有許多附加的功能可以嘗鮮,今天的重點是Jivelite. 它是在PiCorePlayer系統上實現類似SqueezeBox 撥放器的介面選單,搭配顯示面板後可以表現得就像Logitech Squeezebox Touch一樣,話說當年的Logitech Squeezebox Touch要價不斐,樹莓派搭上一個7吋面板就能有類似的功能,對鍾情Logitech Media Server的我來說真是一大福音。



這次選用的是4吋800x480 HDMI面板,考慮的是介面標準,免得搞不定就麻煩了!  面板和樹莓派連接很簡單,一個是26Pin的接頭和樹莓派的40pin靠第一Pin的位置對插,再把廠商附的HDMI對插連接器把面板和樹莓派連接即可。



關於PiCorePlayer的設定,研究了一下廠商的資料,不難上手,只不過還是需要一些時間摸索就是了! 首先還是要用Putty.exe連接上樹莓派,必須要設置HDMI驅動的一些參數,讓面板的顯示符合想要的條件,譬如橫屏顯示等等。


安裝Jivelite 模組
選擇PiCorePlayer Tweaks頁面


更新及下載相關的套件,並設置AutoStart為Yes


掛載SD卡的檔案系統 : 
tc@piCorePlayer:~$ m1
cd /mnt/mmcblk0p1

編輯config.txt
修改設定如下: 參考連結 : RPiconfig
hdmi_group=2     - 指定 DMT 視訊格式
hdmi_mode=87    - 指定解析度,網路上查不到,估計是廠商
hdmi_timings=480 0 40 10 80 800 0 13 3 32 0 0 0 60 0 32000000 3
#dtoverlay=ads7846,cs=1,penirq=25,penirq_pull=2,speed=50000,keep_vref_on=0,swapx
dtoverlay=ads7846_waveshare - 掛載廠商提供的觸控驅動模組
hdmi_drive=1 - 
display_rotate=3 - LCD轉270度
disable_splash=1 - 取消廠商開機畫面

關於觸控模組,需要從廠商網站下載,複製ads7846_waveshare.dtbo到overlay目錄中。

tc@piCorePlayer:~$ pcp bu     - 備份資料檔

重開機可以看見漂亮的選單介面了!

不過發現點選觸控滑鼠游標會亂跑,參照網路上的說明需要對觸控校正。
tc@piCorePlayer:~$ sudo rm /usr/local/etc/pointercal - 刪除觸控校正舊資料
tc@piCorePlayer:~$ sudo TSLIB_FBDEVICE=/dev/fb0 TSLIB_TSDEVICE=/dev/input/event0 ts_calibrate     - 觸控校正
tc@piCorePlayer:~$ sudo TSLIB_FBDEVICE=/dev/fb0 TSLIB_TSDEVICE=/dev/input/event0 ts_test     - 觸控測試

新的pointercal產生,把它加入備份清單,修改/opt/.filelist
加入一行
/usr/local/etc/pointercal

tc@piCorePlayer:~$ pcp bu     - 備份一下


檢視/usr/local/etc/init.d/pcp_startup.sh 搜尋jivelite發現以下幾行:

#-------------------------------------------------------------------------------
# Start Jivelite.
#-------------------------------------------------------------------------------
if [ "$JIVELITE" = "yes" ]; then
        echo -n "${BLUE}Starting Jivelite...${NORMAL}"
        eventno=$( cat /proc/bus/input/devices | awk '/FT5406 memory based drive
        if [ x"" != x"$eventno" ]; then
                export JIVE_NOCURSOR=1
                export TSLIB_TSDEVICE=/dev/input/$eventno
                export SDL_MOUSEDRV=TSLIB
                export SDL_MOUSEDEV=$TSLIB_TSDEVICE
        fi
        export HOME=/home/tc
        # Alternative jivelite script, mainly used for waveshare devices.  Locat
        if [ -x ${TCEMNT}/tce/jivelite.sh ]; then
                sudo -E -b ${TCEMNT}/tce/jivelite.sh >/dev/null 2>&1
                echo " ${GREEN}Done.${NORMAL}"
        elif [ -x /opt/jivelite/bin/jivelite.sh ]; then
                sudo -E -b /opt/jivelite/bin/jivelite.sh >/dev/null 2>&1
                echo " ${GREEN}Done.${NORMAL}"
        else
                echo "${RED}There is a problem with the Jivelite installation. P
        fi

有幾點要留意的是  這個程式會自動抓觸控的裝置,但是搜尋的是FT5406,不是Ads7846,想要改這行指令卻被防寫,不知道怎麼解開,網上其他人的建議是另外在建立一個jivelite.sh 在/mnt/mmcblk0p2/tce目錄中.

首先先了解觸控裝置是否被偵測到
tc@piCorePlayer:~$ cat /proc/bus/input/devices

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="ADS7846 Touchscreen"
P: Phys=spi0.1/input0
S: Sysfs=/devices/platform/soc/3f204000.spi/spi_master/spi0/spi0.1/input/input0
U: Uniq=
H: Handlers=mouse0 event0
B: PROP=0
B: EV=b
B: KEY=400 0 0 0 0 0 0 0 0 0 0
B: ABS=1000003


新增的jivelite.sh內容是從/opt/jivelite/bin目錄下複製而來,內容如下:
#!/bin/sh

export LOG=/var/log/jivelite.log

if [ -f /usr/local/sbin/config.cfg ]; then
    source /usr/local/sbin/config.cfg
fi

if [ ! -z ${JL_FRAME_BUFFER} ]; then
    export SDL_FBDEV=$JL_FRAME_BUFFER
    echo "Using $SDL_FBDEV as frame buffer device." >> $LOG
fi

if [ -z ${JL_FRAME_RATE} ]; then
    JL_FRAME_RATE=22
fi

export JIVE_FRAMERATE=$JL_FRAME_RATE

echo "Frame rate set to $JIVE_FRAMERATE frames per second." >> $LOG

if [ -z ${JL_FRAME_DEPTH} ]; then
    JL_FRAME_DEPTH=32
fi

/usr/sbin/fbset -depth $JL_FRAME_DEPTH >> $LOG

echo "Frame buffer color bit depth set to $JL_FRAME_DEPTH." >> $LOG

if [ ! -z ${SDL_TOUCHSCREEN} ]; then
    export JIVE_NOCURSOR=1
fi

export JIVE_NOCURSOR=1    - 隱藏滑鼠游標
export HOME=/home/tc
export SDL_VIDEODRIVER=fbcon
export SDL_FBDEV=/dev/fb0
export SDL_MOUSEDEV=/dev/input/event0    - 這裡的裝置號是先前偵測的數字
export SDL_MOUSEDRV=TSLIB

while true; do
    sleep 3
    /opt/jivelite/bin/jivelite >> $LOG 2>&1
done


隨著音樂的律動而變化,視覺效果真不錯!

沒撥放音樂時換顯示日期和時間!









2022年1月29日 星期六

TOYOTA DA主機 DIY 升級 倒車顯影

 自從上次升級藍芽和手機無線鏡像後, 心中小惡魔又不斷招喚,想繼續加持VIOS 的倒車顯影功能,於是又在沒屋頂賣場尋找DA-7的線材,網路上已經有許多人分享如何拉線,原本對於加裝倒車鏡頭會破壞車子外觀的疑慮,廠商提供貼心的DIY倒車攝像頭產品,不需破壞車體就可以滿足需求,也讓我對此次的DIY更加放心了!


這次選用的線材是要配合DA-7主機後面 28pin和6pin的接頭,6 pin是轉出CVBS輸入訊號可以連接攝像頭的影像訊號,28pin轉接線是為了能夠連動倒車檔,觸發DA-7主機切換顯示畫面到倒車畫面。



廠商附上的攝像頭接線有6米,兩頭除了CVBS接頭之外,還有一條紅色的線,這條線就是透過打倒檔開啟倒車燈的方式觸發DA-7主機切換到倒車影像。


接線圖示如下:


利用年假第一天動工,無奈光是要把牌照燈罩給拆下來就花了我兩個小時,還把舊的燈罩給扯壞了,果然不是專業,手腳不夠俐落,新的燈罩和牌照燈座的尺寸也不是很吻合,還需要稍打磨才能把牌照燈座塞進去



攝像頭安裝好了,先把線理一理走到左側倒車燈的附近!


另一個重點是要把攝像頭的電源連接到倒車燈座上,先確認了左邊倒車燈座上紅藍相間的是12V, 旁邊黑色的是地線,攝像頭的正極和負極要接在倒車燈座上。採用的是這個所謂的烏龜夾,可以不拆燈座線頭的情況下搭接攝像頭的線!

接完線的樣子補上照片!

拉線是另一項大工程,幸好之前拆主機中控飾板已經有經驗了,比較陌生的是要從後車廂牌照燈的位置穿線到駕駛座,車側有穿線板可以拉線!從後車箱沿著車體左側走線,要先把後座的椅墊先提起來分離一部份,再把椅背往前搬這樣可以露出連通後車廂的穿線孔,線是從後車廂穿過來,我先把線頭纏繞一個小螺絲起子,從後車箱的穿線孔塞進去,再從後座椅背縫隙中很容易就抓到螺絲起子,接下來就沿著椅座側邊走到地板,把線塞進穿線板一路到駕駛座,後來發現好像駕駛座左邊沒什麼路徑可以走到中控台,索性從駕駛座的地毯走到中控台,完成了艱鉅的走線任務!


從後座走線到駕駛座
從駕駛座左側進入地毯

從駕駛座右側進入中控區

DA-7主機後面的接頭都插滿了!上方左邊是觸發倒車影像輸入訊號線,會和六米長線一端的紅線連接,DA-7背板右邊直立的接頭就是接到攝像頭的CVBS訊號。


打倒車檔就會強制切到倒車鏡頭,看到後面的清晰影像,以後倒車就可以一目了然了!




樹莓派功能再升級 - 控制介面實體化

自從DIY了金屬面板機殼後,樹莓派的外觀大升級,串流功能滿足了大部份的收聽需求,現在大部份是放在電腦旁邊使用,不過在使用了兩年後,感覺到有些許不滿足的地方: 一、操控音量需要用遙控器、手機APP或電腦網頁界面,在機器面板上沒有直接操控的旋鈕,不夠方便。 二、PiCorePlaye...