2021-09-19

孤兒Pi的救星Armbian

英國Raspberry Pi推出後大受歡迎,中國廠商也紛紛跳進去搶食這塊市場,因此出現
各種香蕉、芭樂、蓮霧……Pi, 但是在若干年後的現在一些比較早期出廠的中國品牌Pi
,廠商已經沒再推出新版OS,因此往往會有力不從心、軟體受到OS限制而無法更新
的問題,特別像是一些沒有Video out的小型Pi變成孤兒了。

 還好有一群熱心的自由軟體支持者在維護著"armbian"這套Linux OS for ARM.
https://github.com/armbian
可以到這裡找找有沒有適用你的孤兒Pi的版本?
https://www.armbian.com/download/?device_support=Supported

這裡的Download會有兩種流派Linux可以選,Ubuntu或Debian, 目前Ubuntu的版本
有Focal, 也就是20.04, 建議有興趣的人可以選這一支,它有一個好處就是LTS(Long Term 
Support), 就是一直到2025年都還會有來自Ubuntu的update可用, 因為Ubuntu在每
偶數年份會推出LTS, 為期五年。 

如果你的Pi一直健在,也可以換下一個LTS版本22.04,因為它又有另一個五年期到2027年的支援。

2021-07-17

Linux環境下的IR receiver

在Linux環要用紅外線遙控器來做一些事,找到最多都文章都是用lirc, 但是我發現
可以完全不用lirc, 只要裝了ir-keytable加上python pexpect就可以做任何事了。

對於有GPIO腳可以裝IR sensor的機器來說,例如各種pi(主要都是ARM電腦), 只要把
IR sensor三支腳的
信號腳接到GPIO
一支腳接供電
一支腳接地
就可以利用IR遙控你的電腦了。

至於沒有GPIO腳的電腦(例如一般X86電腦),最簡單的方法是買一支RTL-SDR(露天或
PCHome大約400元)它上面就有IR sensor, 而且附紅外線發射器。

至於要怎麼把接IR sensor的GPIO腳enable ?

在ARM電腦可能稍微麻煩一點,有的要在/boot/config.txt設定(如Raspberry Pi),
有的要用distribution附的工具設定(例如armbian-config).

而x86電腦只要把RTL-SDR插入就可以了,不用任何設定IR sensor.

再來就是要安裝 ir-keytable, 每個Linux distribution應該都有這個package,
用系統工具(例如apt-get, yum)就能裝好。

必需以root身份執行 ir-keytable,如果不知道發射器的協定,就用
sudo ir-keytable -c -p all -t
如果知道那個搖控器的protocol, 例如 NEC, 那就可以用
sudo ir-keytable -c -p nec -t
(我還在用網樂通的遙控器,它就是NEC protocol, 感謝黎智英先生,很多台灣人都有
黎先生贈送的網樂通,可惜香港蘋果已經在2021/6/24被中國政府強迫關門了)

然後拿著紅外線遙控器對著電腦把每個遙控鍵都按一遍,記錄一下每個鍵的值,
再來就是寫個程式讓你要的動作對應某個按鍵(或按鍵組合),這程式用
python3 + pexpect 就夠用了

import pexpect
ir = pexpect.spawn('sudo ir-keytable -c -p nec -t')

ir.timeout = None

while True:
    ir.expect("EV_SYN")
    T = ir.before.split()
    if not b'repeat' in T:
	K = str(T[-4])
	if '902' in K:	print('Mute') #0x732902
	elif '91e' in K:     print('Home')  #0x73291e
	elif '91d' in K:     print('Power') #0x73291d
        elif '940' in K:     print('Blue')  #0x732940
        elif '909' in K:     print('Up')    #0x732909
把對應按鍵的值找出來,做為你要執行的動作代碼,就能完全不必用鍵盤、螢幕來
操作一台電腦,不管是X86或是ARM。
用一台小小的什麼ARM pi,透過espeak-ng可以做為報時、報氣象、網路收音機,
不過pi本身的音效不太好,最好就是接一台USB DAC來撥放高品質的音樂。

2021-06-25

有關心靈成長的Youtube video

五月中旬,抵抗了一年多的武漢瘟疫最終還是在台灣爆開來,公司馬上改成居家上班,讓大家盡量避開傳染。

 這段期間免不了會出現擔憂恐懼與不安的心情,不過能躲在家裡上班,有比較多的時間可以尋找未知領域的東西,youtube是相當好的資訊來源。

這裡介紹幾個值得參考的,有關心靈成長,不是講些虛幻的天堂、地獄、來世、前生……那種傳統宗教空洞、畫虎爛威脅恐赫人的屁話,而是真正講到人的意識活動,像是mind, conscious, cognition, emotion等等心智活動,能幫助人面對自己。

  1.  Eckhart Tolle    談 now, present, presence, 用漢語來說感該就是「當下」,    「活在當下」是人們常說的一句口頭禪,但是整天把「活在當下」掛在嘴上的人大概一萬個人裡面找不到一個能真正能活在當下的,因為人的mind一直在想過去或是想未來,而否定當下。Eckhart先生曾經寫過一本「The power of Now」台灣有翻譯本,對「活在當下」有很好的闡釋以及實踐方法。
  2. Yongey Mingyur 談 awareness, 用漢語來說應該就是「覺查、覺知」,跟Eckhart的「當下」有很好的銜接,Yongey Mingyur談的 meditation 也有很好的實踐性,感覺他有一種類似達賴的調調。
  3. 「純正的佛法」,這位解說者沒說出名字,人相當年輕,使用簡體漢字,應該是中國人,他對傳統佛教的一些經文、教法,有很好、很正確的觀點,能突破傳統佛教徒與佛教工作者的無知盲點。可以先看一下他解說「心經」的video。

    另外日本學者Susumu Shimazono在2004用英文出的書 "From Salvation to Spirituality: Popular Religions Movements in Modern Japan", 這本書台灣有翻譯本,叫做「由救贖到靈性︰當代日本的大眾宗教運動」,島薗進,聯經出版,從這本書可以看到隨著人類歷史不斷的往自由、人權、人道、個人主義前進,傳統宗教已經越來越沒有市場,因為宗教救不了任何人,只有像毒品麻醉人的功能。

    人的自我覺醒、靈性成長才是解脫苦難之道。
    或者應該說,無可渡之人、亦無可渡之法!一切都在自我心靈之中。

2021-05-30

閱讀youtube字幕

 Youtube的影片非常多,如果每個影片都要從頭到尾看,相當花時間,當然我們可以
跳著看,但這也是花時間的事。有一個能偷時間的方法,就是「只看字幕」!

可以透過 youtube-dl 這個工具,就能下載影片或以及影片裡的字幕
https://github.com/ytdl-org/youtube-dl

基本上,字幕大都是以影片的原始語言存在的,例如日語影片會有日文字幕,然而
大部份影片會有英文字幕,所以我們可以指定要下載的字幕語文
youtube-dl --write-sub --sub-lang en https://www.youtube.com/watch?v=xxyyzz123

如果不想下載完整的影片,可以在下載完字幕(xxxx.vtt)之後按 Ctrl-C 中斷。

下載來的字幕至少會有兩種格式,都需要人工處理一下才適合閱讀

  1. 最簡單處理的是只要濾掉時間那一行,也就是以00開頭(或影片超過一小時就會有01開頭的)
  2. 比較複雜的字幕除了時間之外,內容也會重複兩次,這個要處理
    • 有這個關鍵字 :start position: 的一行不要
    • 有兩個減號 -- 的一行不要
    • 再來用python寫個小工具把重複的行刪除
 fout = open(argv[1]+'.out', 'w')
Line_old = ''
for line in f:
    if line == Line_old:
       pass
    else:
       print(line)
       Line_old = line
       fout.write(line)

f.close()
fout.close() 
當然只看字幕有時也會有些問題,例如字幕是不會分別主持人跟受訪者的對話內容,
所以不知道這段話是受訪者或主時人說的。

但是先看看字幕,覺得值得花時間看影片時,再去看吧! 

2021-04-25

辨識是否在WSL或正常Linux環境

 例用python來播放網路影音的script, 為了在標準Linux或是在WSL環境都能通用,
首先需要辨識環境,再啟用對應的播放軟體。

我們可以用 os.uname() 或 platform.uname() 來判別是在正常Linux環境或是在WSL
下的Linux環境,再呼叫指定的播放器。

在WSL環境的Linux可以直接執行Windows的播放器,例如VLC, 它在WSL裡的路徑是
/mnt/c/Program\ Files/VideoLAN/VLC/vlc.exe

platform.uname()或是os.uname() 如果是在WSL裡的linux執行會列出:
uname_result(system='Linux', node='MY_LAPTOP', release='5.4.72-microsoft-standard-WSL2', version='xxxxxx', machine='x86_64')

import csv, platform, os
from sys import argv, exit

LIST="""\
Classic Portland,http://allclassical-ice.streamguys.com/ac96kmp3
Classic NL,http://playerservices.streamtheworld.com/pls/CLASSICFM.pls
Clarinet obbo,http://213.141.131.10:8002/clarinet
Caprice cello, http://79.111.14.76:8002/cello
Chamber music,http://chambermusic.stream.publicradio.org/chambermusic.mp3
WMNF,http://stream.wmnf.org:8000/wmnf_hd3
Taiwan PBS,http://stream.pbs.gov.tw:1935/live/mp3:PBS/playlist.m3u8
ICRT,http://live.leanstream.co/ICRTFM-MP3"""

MENU = csv.reader(LIST.split('\n'))
n = 1

if len(argv) == 1:
   for x,y in MENU:
       if n%3 == 0:
          END = '\n'
       else:
          END = '\t'
       print('\033[32;1m'+str(n)+'.\033[m' +x,end=END)
       n+=1
   print('\n')
   exit(1)
else:
   for x,y in MENU:
       if argv[1].isdigit():
           if n == int(argv[1]):
               MusicLink = y
               break
           else:
               n+=1

if 'WSL' in platform.uname().release:
      PLAYER = '/mnt/c/Program\ Files/VideoLAN/VLC/vlc.exe'
else:
      PLAYER = 'mpv'

os.system('%s %s '%(PLAYER,MusicLink))

 

2021-04-05

在Linux對Raspberry Pi Pico改裝micropython

 這是在純文字的 Linux shell 裡對 Pico 進行的基礎動作。
(也可以用來對 BBC micro:bit 動作)

使用 lsusb 可以看到這個 Pico 是這樣
Bus 001 Device 017: ID 2e8a:0003 Raspberry Pi RP2 Boot
再用 cat /proc/partitions 可以看到它預設 partition 已經割出一個
   8       32     131072 sdc
   8       33     131071 sdc1
(因為我已經插了一支 USB 佔掉 sdb, 所以這裡顯示 sdc)

如果用 fdisk -l 可以看到
/dev/sdc1 1 262143 262143 128M e W95 FAT16 (LBA)

在這裡可以下載 micropython for Pico
https://micropython.org/download/rp2-pico/

rp2-pico-20210403-unstable-v1.14-132-gd87f42b0e.uf2 (目前最新的)

按住 Pico USB旁邊的 BOOTSEL 然後插上 micro USB 到你的電腦
用手動掛載 Pico:
mount /dev/sdc1 /media/sdc1
再把下載來的 micropython 的 uf2 檔直接 copy 到 Pico 的 partition 1
cp rp2-pico-20210205-unstable-v1.14-8-g1f800cac3.uf2 /media/sdc1

然後 Pico 自己會 reboot 進入 micropython mode

使用 miniterm (只要裝了 python serial 就會有的一個好用 terminal)
miniterm /dev/ttyACM0 115200 --raw  就連進 Pico 的 micropython 提示符號

2021-03-31

Raspberry Pi 也發售微控器了

 2021年Raspberry Pi推出這一款微控器:
https://tutorials-raspberrypi.com/raspberry-pi-pico-programming-with-the-affordable-microcontroller/

這個Raspberry Pi Pico, 是一個比一般 Arduino 腳位多,還有 dual cores
售價一百多元台幣的 micro controller.
注意,它不是之前所有的 RPi 那種小型ARM電腦!

板上有26支 GPIO, 因為有 dual cores, 在使用 micropython 時可以跑兩個 threads.
133MHz, 內建溫度感測sensor.
Arduino IDE有支援,所以可以藉由Arduino來開發程式。

特點之一是低耗電,所以可以撐很久。
缺點之一是沒有對外連線,不過Microcontroller本來就不負責連線的事,只要加上週邊設備就能連了。

2021-02-28

在Linux環境用真實遙控器來飛虛擬飛機

 在Linux環境的crrcsim是一個能夠連接真實遙器來練習操作的軟體,就是
把真正控制飛機的遙控器透過實體線路接到serial port或USB port就可以
操作crrcsim裡的各種飛機。

多年前一台亞拓(ALIGN)的飛機摔壞之後就沒再使用那台5 channel遙控器,
最近在Linux裡裝了crrcsim,透過serial port接到電腦之後試了一下,
可以操控crrcsim裡的飛機。

我這台電腦有內建serial port,連接與設定如下:
Options --> Control --> Input Method
選擇FMSPIC /dev/ttyS0 9600
Configure --> Custom
Aileron --> 3 Inv
Elevator --> 1
Rudder --> 0
Throttle --> 2
再進入Options --> Controls
Configure --> Calibrate
把搖桿推到最大值,校正各個操作channel
Next --> Finish --> OK
Simulation --> Restart 就可以飛了

有個問題:
日本手左邊是Elevator + Aileron 或是 Elevator + Rudder ?

2021-01-29

TDoA 定位計算的應用

Time Difference of Arrive 利用訊號到達不同點,或是相反從不同點來的訊號
來計算出單一點的位置。小到室內定位,大到地球表面的定位,都可以用 TDoA 來算出。

原理相同,但做法不同,室內定位是多個發射源對單一接收點,來算出那個單一點的
位置。地表定位,是利用多個接收點,來算出單一發射源的位置。

在業餘無線電的短波頻帶,三不五時就有脈衝電波出現,台灣從南到北都在那種脈衝
訊號的強大干擾下!

從接收機發出來的聲音,聽起來跟冷戰時代的西伯利亞啄木鳥(前蘇聯的短波雷達)不
太一樣,但是訊號強大,推斷應該就是一種短波雷達,它是利用短波可以來回在地表
與電離層之間反射,像打水漂一樣可以超越地平線,去偵測遠方的飛行物。

但不管是前蘇聯或現在收到的這個,經常在業餘短波帶發射,非常大的干擾,讓業餘
無線電玩家十分厭惡,但又無法反制,因為這種電波是國家級的發射站,出力都是以
萬瓦計算的,不是小小業餘無線電玩家能有力氣反制的。

不過我們還是可以來看看到底是哪個流氓國家在這樣搞?

有幸的是現在Internet網際網路很發達,加上SDR也發達,全世界各地都有人提供
SDR讓人無償使用,其中一種KiwiSDR的網頁就有提供TDoA的運算。

任何人都可藉由 http://rx.linkfanel.net/ 的地圖來開啟一台KiwiSDR,例
如收到那種另人厭惡的短波脈衝訊號,調好頻率(例如:7050KHz),然後在頁面
右下角的操作介面的extension拉下來到 TDoA, 這時頁面左下角會出現另一個
操作介面,這時候先不用動它,而是在頁面上半出現的地圖上,去找幾個其他的
KiwiSDR,用滑鼠按它之後會在左下角那個介面裡出現站台呼號,基本上至少找
三台,更多台是會更準確一些,但也不用選太多,先找四台來試應該夠,選好之後
,按左下角介面的左下角黃色的Submit,它就會開始錄音,等候一分鐘,它會
開始運算,可能要算一兩分鐘,然後頁面上半的地圖會顯示一些線條,以及它推測
出來的發射源經緯度。

最近幾次的干擾不論是出現在7MHz或14MHz,用這種方式算出的結果,都指向中國
內蒙,推測應該是中國在內蒙的雷達站使用短波脈衝。

2020-12-09

為你的MMDVM Pi-Star註冊密碼

 MMDVM的DMR使用者最近可能有無法通訊的問題發生,主要有兩個癥結:

  1.  Pi-Star default Mrandmeister Master是BM_United_Kindom_2341 這個站的IP改變了,而Pi-Star沒有更新到。
  2.  DMR Configuration的 BM Hotspot Security 沒有設密碼,因為以往常有人冒用別人的呼號跟DMR ID來設在他的MMDVM/Pi-Star,造成真正呼號持有者無法通連。

 所以各BM站紛紛要求使用者要設定密碼,沒有密碼就無法連上BM站台進行通連。

這個DMR Hotspot的密碼不是只在自己的MMDVM任意設一個就可以,必需先到Brandmeister網站註冊,並且在裡面設定密碼,註冊的URL在:

https://brandmeister.network/?page=login

註冊後要等一小段時間他們會寄到你留的email地址確認,再連進該站,找到

Service --> Selfcare --> Hotspot Security

設定密碼,然後到Pi-Star的

DMR Configuration --> BM Hotspot Security

把在brainmeister 網站設定密碼填到這裡。Apply Changes之後再連到任一個BM_xxxx_xxxx 就可以通連了。

目前還不是每一個 BM 站都要密碼,但是已經在進行中,未來應該每個 BM 站都會要求有密碼,所以使用者一定要去註冊並設定密碼。

2020-11-15

MMDVM Pi-Star 安裝與使用

https://www.pistar.uk/downloads/
這裡的 Pi-Star_RPi_V4.1.2_20-May-2020.zip 安裝後瀏覽器連接時出現
"502 Bad Gateway" ngnix
試了 google 上面幾種方法都無法改善,最後降版安裝
Pi-Star_RPi_V4.1.0_26-Mar-2020.zip 並沒有這個問題。

安裝後 Update 很慢,最後也有些資料不全,特別是 DMR ID 的對照
會只出現編號,沒有顯示呼號。

DMR ID 的資料檔是放在 /usr/local/etc/ 之下的 DMRIds.dat
從這裡取得:
https://database.radioid.net/static/user.csv
或是 https://database.radioid.net/database/dumps#! 從這裡選
cat user.csv |cut -d',' -f1-3|sed 's/,/\t/g' > DMRIds.dat
把 csv 前三欄轉出來成為 dat 檔。

因為 MMDVM 只是在家自用,所以功率不需要全開,default 是 100 我改成 2
手機接收也是將近滿檔
Configuration --> Expert --> MMDVMHost --> Modem --> RFLevel

如果不喜歡 default 的磚紅色,可以進入 CSS Tool 來改背景色。

如果要用 DMR 協議,你必需要先取得 DMR ID, 以台灣呼號申請 DMR ID 還要提供
機器文件,也就是要買特定廠商的機器,改用美國(或其他國家)呼號申請,完全
沒有這樣的問題,有興趣的人如果想考美國執照,可以查一下 ARRL VE Taiwan,
參考一下這裡

http://www.ctarl.org.tw/bv5ya/2007-9/FCC-ARRL-VEC.pdf

http://www.hamtalk.asia/thread-5991-1-1.html

日本較多人使用的是 D-Star, 但是透過 MMDVM 可以在
DMR/D-Star(Icom)/YSF(Yaesu)的數位通訊協定之間互轉。

發現把 rasbian 的 repository 改成台灣的話,update 就順利多了
/etc/apt/sources.list 裡面的
deb http://raspbian.raspberrypi.org/raspbian/ buster main contrib non-free rpi
改成
deb http://free.nchc.org.tw/raspbian/raspbian buster main contrib non-free rpi

2020-10-30

單層布飛行傘Single Skin Paraglider 以及OpenSource遙控器

最近看到遙控飛行傘的影片,發現跟之前的式樣不太一樣,以前認知的飛行傘是有
進氣口,但是這次看到的飛行傘是沒有進氣口,所以懷疑是因為遙控玩具,廠商為
了降低成本做成那樣。

之後繼續查google跟youtube, 發現真的有這種沒有進氣口的飛行傘,它只有
上層布,沒有下層布用來構成中間的氣室。這種叫做 single skin paraglider,
最早是2014年在遙控界開使有廠商生產,到了2019年不是遙控玩具的真正戴人的
飛行傘被廠商生產出來上市。

據youtube上面看到的計價是它甚至比傳統雙層布的飛行傘更加穩定,成本也減少,
重量減輕,收納空間也減小,有殊多好處。

在遙控器方面,不少品牌是採用OpenTX firmware, 可以考慮購買這些品牌
遙控器:
http://www.open-tx.org/radios.html

2020-09-29

KiwiSDR開放全世界天空

隨著電子科技不斷進步,這幾年SDR產品越來越多,因為成本相對的低,所以甚至有不少SDR都開放在網路上任人操作,其中一個就是KiwiSDR,這是一款只有接收的SDR(有些SDR是可以發射電波的)。只要你有適合的環境(天線是必備的),買了它的產品後就可以架設網路站台,讓任何人透過網路來操作你這一台SDR。

http://www.kiwisdr.com/
這是它的官網,任何人有興趣都可以點開它的全世界分部站
http://rx.linkfanel.net/

然後依照你想聽的地方去找看看有沒有人提供服務

目前台灣唯一的一台是BM2KVV所架設提供的服務,點進去,它的default是接收本地的AM電台
http://jplin53.proxy.kiwisdr.com:8073/

你可以操作右下角的控制面板來改變頻率、模式、Waterfall的參數……等等
例如老鼠移到藍色waterfall轉動中央滾輪,可以改變大小(放大、縮小),或左右拖動來改變範圍。

建議把 Waterfall調到 0dB 比較不刺眼,WF Rate也把它調到 Med 或Slow,如果你不是那麼想看它的變化。



KiwiSDR的接收範圍主要是0到30MHz,不過也有少數KiwiSDR台是以接收航空波段,像是這裡有列出所有公開的KiwiSDR站台。
http://kiwisdr.com/public/

日本JP1ODJ有提供一台從118到140MHz的航空波段,位於東京附近,以及俄羅斯也有一台從108到138MHz的航空波段是在莫斯科附近。








由於AM電台從上個世紀到現在仍然在人類社會活得好好的,全世界都有,所以可以透過KiwiSDR聽到全世界各地最原汁原味的廣播,當然你只要能聽懂當地語言,就可以盡情的收聽,而不像短波廣播基本上都由有相當強大資源的政府或宗教來主持,local的AM電台就是小市民的日常生活。

例如想聽聽祖國的廣播,可以按這裡,這是在祖國首都附近的KiwiSDR接收台

http://83.87.152.133:8073/

它除了可以聽到祖國當地的廣播,也可以收到對岸的廣播


不出門也可以週遊全世界,聽到最原汁的當地語言。

2020-08-23

espeak講台灣國語

 台灣「國語」跟中國「普通話」之間除了發音不同之外,語調規則也有不同,網路有些
東西因為台灣人不關心,漸漸的被中國侵蝕,像電子產品的語音幾乎都是用中國發音。

在open source裡一個已經很多年的語音合成程式espeak原本只有歐語,後來有人把
它加了漢語,可能是中國人去加的,所以是用中國人的發音方式,台灣人如果仔細聽的話
應該會發覺它跟我們日常發音不一樣。

例如「暴露」:
台灣發音 ㄆㄨˋㄌㄨˋ(PùLù)
中國發音 ㄅㄠˋㄌㄨˋ BàoLù
 

「質量」
台灣發音 ㄓˊㄌㄧㄤˋ (ZhíLiàng) (質:二聲)
中國發音 ㄓˋㄌㄧㄤˋ Zhìliàng (質:四聲)
 

「企業」
台灣發音 ㄑㄧˋㄧㄝˋ (Chí yè) (企:四聲)
中國發音 ㄑㄧˇㄧㄝˋ Qǐ  yè  (企:三聲)
 

「期待」
台灣發音 ㄑㄧˊㄉㄞˋ (Chí dài) (期:二聲)
中國發音 ㄑㄧ ㄉㄞˋ Qi dài  (期:一聲)
 

「說服」
台灣發音 ㄕㄨㄟˋ ㄈㄨˊ (shuì fú) 四聲+母音不同
中國發音 ㄕㄨㄛ  ㄈㄨˊ shuō fú  一聲+母音不同

就像美語與英語一樣,分流之後各有各的特點,文化多樣性是人類文明重要的一環,
就跟生物多樣性一樣重要,把異己通通消滅、歸於一統,將是文明的災難。

把espeak改為台灣發音方式的方法:
1. 到這裡下載 https://drive.google.com/open?id=1ArwjaKM6lYby4lxKuv5F8_S6qexjY0pp
 

2. unzip zh_dictionary-calvin_2018-10-30.zip

  copy
  zh_list, zh_listx, zh_rules,
  到
  /usr/lib/x86_64-linux-gnu/espeak-data

  cd /usr/lib/x86_64-linux-gnu/espeak-data
  espeak --compile=zh

現在就可以用espeak唸出台灣發音
espeak -vzh 今天可以講台灣國語
or
espeak -g11 -s150 -vzh 今天可以講台灣國語

 

2020-07-19

把聲音丟到別台電腦

在同一個LAN內設好某一台已經接上喇叭的電腦做為audio server, 然後在別台電腦
播放的聲音,都可以丟到這台server放出聲音。

固然個別的應用軟體可以把聲音丟到特定的一台電腦,例如:
mpv --pulse-host=192.168.5.10 http://stream.srg-ssr.ch/m/rsc_fr/aacp_96

但是每個產生聲音的應用程式都要加上遠端server的參數就有一點麻煩,如果直接
在電腦總控聲音的設定檔寫好遠端電腦的傳輸協定,就可以一次搞定,不必每一個
應用軟體都設定。

可以利用pulseaudio來達成這個目的。
要做為音效server的電腦:
/etc/pulse/default.pa
load-module module-native-protocol-tcp \
auth-ip-acl=127.0.0.1;192.168.5.0/24 [auth-anonymous=1]
以上是接受整個網段其他電腦都可以把聲音丟過來。
(記得firewall要打開4713)

同一段LAN內其他client電腦:
/etc/pulse/default.pa
load-module module-tunnel-sink \
sink_name=NEO server=tcp:192.168.5.10:4713
(那一台server電腦是NanoPi NEO, 名字可以隨便寫)

設定好之後執行一下 pulseaudio -k; pulseaudio --start

這樣在同一個LAN內的任何電腦(client)都可以把任何程式產生的聲音丟給NEO,
包括在看youtube所產生的聲音也一樣會被丟到server.


2020-06-22

用偏光鏡看日蝕

2020年6月21日這次在台灣可以看到日蝕,特別是在嘉義可以看到全蝕,
不過,在台北也能看到偏蝕。

很多年前我就發現用兩個偏光鏡疊起來,再轉動方向就能把光線阻絕,甚至
可能到完全零透光,因為沒有電焊用的面具,所以這次也是用這種方式。
就可以肉眼看向日蝕的太陽了。

奇怪的是把這個方法貼在某個群組,竟然不少人認為這樣不可行,還有人
貼了「每日頭條(kknews.cc)」這個垃圾農場網站的文章來說不行,其中
有一篇是說會把相機燒毀!

也有人認真問我是從哪裡看來的資料讓我用兩片偏光鏡看太陽?我回答那
是自己的觀察跟實驗出來的,於是我開始孤狗看有沒有跟我相同作法的文章
,竟然完全找不到!不論中文、英文都沒找到。

有人貼了一篇說用偏光鏡不能拍太陽的文章,內容一看,它是講用單一片
偏光鏡,而不是我用兩片重疊再轉動阻絕光線的方式。

孤狗搜尋不到,大家也都認為一行的這一件事,
難不成我還是全世界第一個這樣作法的人嗎?

後來我找到一篇解說偏光鏡如何阻絕光線的文章,確實隨著鏡片的轉向,
可以逐漸把光線阻絕。

當轉動兩片偏光鏡的軸,交叉成90度,理論上通過的光會是 "0".

下面的截圖來自這個網頁:

https://www.microscopyu.com/techniques/polarized-light/introduction-to-polarized-light