2019-01-01

Roland AE-05 連接Linux

拿到一支Roland AE-05(Aerophone Go), 從說明書看,它可以透過藍牙跟手機連接,
然後利用手機來設定AE-05,或是用手機接受AE-05來播放額外的MIDI音源,因為
AE-05內建只有11種音源(包括一組打擊樂器),如果用手機可以播放額外幾十種音源,
不過這時要把AE-05本身的音量關到零。

首先遇到的問題就是手機無法連上AE-05的藍牙,裝了Aerophone Go APP也是連不到,
經過確認是安鳳無法連AE-05,只能用哀鳳或哀Pad連!(需要iOS 11或以上)

把AE-05透過USB線插到電腦後可以看到VID/PID

lsusb
Bus 006 Device 002: ID 0582:01d1 Roland Corp.

cat /proc/asound/cards
 0 [Intel          ]: HDA-Intel - HDA Intel
                      HDA Intel at 0xd4500000 irq 30
 1 [AE05           ]: USB-Audio - AE-05
                      Roland AE-05 at usb-0000:00:1d.1-1, full speed

cat /proc/asound/AE05/usbid
0582:01d1

cat /proc/asound/AE05/usbmixer
USB Mixer: usb_id=0x058201d1, ctrlif=0, ctlerr=0
Card: Roland AE-05 at usb-0000:00:1d.1-1, full speed

dir /dev/snd/by-id/
total 0
lrwxrwxrwx 1 root root 12 12月 30 20:33 usb-Roland_AE-05_FFFFFFFEFFFF-00 -> ../controlC1

以上確認Linux能夠看到Roland AE-05的device, 再來檢查一下是否能收到AE-05送過來
的訊號?

aconnect -i
client 0: 'System' [type=kernel]
    0 'Timer           '
    1 'Announce        '
client 14: 'Midi Through' [type=kernel]
    0 'Midi Through Port-0'
client 20: 'AE-05' [type=kernel]
    0 'AE-05 MIDI 1    '

指定 port 20
aseqdump -p 20

這時按AE-05的鍵或是吹氣出聲,都會從螢幕上列出一大串MIDI的值
 20:0   Control change          0, controller 2, value 95
 20:0   Control change          0, controller 11, value 95
 20:0   Control change          0, controller 2, value 90
 20:0   Control change          0, controller 11, value 90
 20:0   Control change          0, controller 2, value 82
 20:0   Control change          0, controller 11, value 82
 20:0   System exclusive           F0 41 10 00 00 00 4E 12 00 27 34 2C 00 00 00 79 F7
 20:0   System exclusive           F0 41 10 00 00 00 4E 12 00 27 34 2F 00 0F 64 03 F7
 20:0   Control change          0, controller 2, value 90
 20:0   Control change          0, controller 11, value 90
 20:0   Note on                 0, note 47, velocity 100
 20:0   Note off                0, note 45, velocity 0
 20:0   System exclusive           F0 41 10 00 00 00 4E 12 00 27 34 2C 00 00 00 79 F7
 20:0   System exclusive           F0 41 10 00 00 00 4E 12 00 27 34 2F 00 0F 60 07 F7
 20:0   System exclusive           F0 41 10 00 00 00 4E 12 00 27 34 2C 00 00 00 79 F7
 20:0   System exclusive           F0 41 10 00 00 00 4E 12 00 27 34 2F 00 0E 60 08 F7
 20:0   Control change          0, controller 2, value 82
 20:0   Control change          0, controller 11, value 82
 20:0   Note on                 0, note 65, velocity 100
 20:0   Note off                0, note 47, velocity 0
 20:0   System exclusive           F0 41 10 00 00 00 4E 12 00 27 34 2C 00 00 00 79 F7
 20:0   System exclusive           F0 41 10 00 00 00 4E 12 00 27 34 2F 00 06 60 10 F7
 20:0   System exclusive           F0 41 10 00 00 00 4E 12 00 27 34 2C 00 00 00 79 F7
 20:0   System exclusive           F0 41 10 00 00 00 4E 12 00 27 34 2F 00 06 40 30 F7
 20:0   Control change          0, controller 2, value 74
 20:0   Control change          0, controller 11, value 74

還未解決的問題是能否吹奏AE-05 讓腦裡來播出各種MIDI?

2018-12-28

墨西哥簽證與美國簽證

在台灣簽墨西哥簽很麻煩,因為一天只受理30個人,有可能你要早上六點多
就要到基隆路的墨西哥辨事處排隊,等大樓七點開放才能進入到15樓的辨事處
門外再排一次隊,然後大樓警衛還會來叫你不要蹲或坐地上,要一直站著等到
九點,辨事處開門進去抽號碼牌,如果你是排在第31位,那明天請早。

然後簽證辨事員各種刁難,這個不行那個不行,遇過同樣去簽的人說來第四次!
墨西哥簽一次只給六個月,六個月後還要去墨西哥的話還要來做同樣浪費時間的事!

如果不是趕時間的話,直接去AIT簽個最簡單的B1/B2,一次給五年,拿這個
就可以進入墨西哥(ESTA不行進入),省事多了,而且B1/B2面談很簡單,問幾句
沒什意外的話馬上就approve了!

既然B1/B2都簽了,那就順便再辨個Global Entry, 台灣是符合Global Entry
的國家,而且Global Entry的面談可以在AIT或是到美國機場再面談,只是你
要先安排適合的時間面談,這樣進入美國就可以快速通關。

用Micropython玩MCU

很久沒玩microcontroller 最近買了一支ESP32, 發現它也被micropython 支援了!
http://micropython.org/download 包括舊的 ESP8266 也有比一兩年前更好的
支援,不論ESP8266或ESP32 都可以玩micropython.

ESP32 或 ESP8266 出廠都不是燒micropython, 所以第一次燒micropython 要先清除
esptool.py --chip esp32 erase_flash
再把micropython 燒在 0x1000 的起始位置
esptool.py --chip esp32 --port /dev/ttyUSB1 write_flash -z 0x1000 \
esp32-20180511-v1.9.4.bin
20180511-1.9.4 目前是stable 版本(32/8266都是)
ESP32 可以選用最新版 esp32-20181228-v1.9.4-762-gfa50047bb.bin

micropython用的是python3

2018-09-16

觸控螢幕 touchegg

公司配用的Notebook有觸控螢幕,但是很少去用它,最多使用的還是touchpad,
因為手指的移動距離比較遠,synclient加上Ctrl就可以zoom in/out, 所以也就不太
會去用touch screen.

其實touch screen比較直覺,只要裝了touchegg就可以用了。
不過在捲動螢幕的方向時touchegg的default正好跟動作是相反的,手指把螢幕
往上推時,它的內容卻是往下跑,所以還是改一下
$HOME/.config/touchegg/touchegg.conf
裡面原本的INVERTED=false改成true
在以下這一段
gesture type=DRAG fingers="2" direction="ALL"
   action type="SCROLL" SPEED=7:INVERTED=true /action
/gesture       
       

就可以更直覺的翻動螢幕。

2018-08-25

Port 80h LED 的小工具

如果要檢測 server上的 Port 80 LED, 可以找這個
https://pypi.org/project/portio/

可以不用pip 來安裝, 直接compile so來用也可以, 攜帶方便。

tar zxvf portio-0.5.tar.gz
cd portio-0.5

gcc -I/usr/include/python2.7 -c -fPIC portio.c -o portio.o
(或是 -I/usr/include/python3.6)
(-fPIC Position Independent Code)

(接下來從 .o 來產出 .so)
gcc -shared -o portio.so portio.o

使用時可以把 .so 放在 .py 同一目錄即可,不必install
----程式start
import portio
portio.ioperm(0x80, 3, 1) #先打開
# N 可以從 0 到 255, 0是全滅, 255是全亮
portio.outb(N, 0x80)
portio.ioperm(0x80, 3, 0) #關閉
----程式end

2018-07-15

好力屋、日本阿嬤

這次飛過去除了在空中看見山丘上寫著大大的「好力屋(Hollywood)」之外,回程
在空中第一次看到圓型耕作,大約在北緯32.82431, 西經109.92879, 11088公尺的
空中看到的。

查了一下,叫做Center pivot irrigation, 中文翻成「中樞灌溉系統」

差不多就是這段影片所說的
https://www.youtube.com/watch?v=DE3tJzL-LT0

水從一個固定點,借由直的管線,像時鐘指針那樣旋轉、噴水灌溉,所以耕作面積
呈現圓形。

********
在LA轉機時還發生一個有趣的事,一位日本阿嬤問我轉機的事,很巧的是,她也是
要飛到EL PASO!

一聽她說的是非常日本腔的英語,然後又發現她的英語非常有限,就開始試著用我
稍微能用的日語跟她交談起來。

這位日本阿嬤86歲,看起來還蠻健康,她家住在日本最大湖泊「琵琶湖」附近的
近江八幡市,一個人從東京羽田機場搭機到LA,要去找她在EL PASO當醫生的60歲
女兒。

從EL PASO機場出來時,她背著背包,然後拖一個行李箱,86歲行動都還很靈活,
說她女兒會開車來載她,不必為她擔心,還跟我握手道謝,我就搭車去飯店了

2018-07-02

抗噪音耳機

長途飛行最令人難以忍受的就是飛機引擎加上機體與空氣磨擦所產生的噪音,
從台灣飛鄰近亞洲國家,如日本、韓國、中國或馬來的話,大概兩三個小時或
頂多四個多小時,忍一下就到了。飛十幾個小時的話就很不好受,也難睡著。

這次出差前領到一支SONY主動式消除噪音耳機(Noise Cancelling Headphone),
效果相當不錯。這支耳機除了消除噪音,也可以當一般耳機聽音樂、電影。這次
在看機上電影,劇情場景進行到寧靜公園裡,出現鳥聲時,還真有點訝異!在
飛機上怎麼會有這麼像真的公園鳥鳴聲?

這種主動式消除噪音耳機是內建電池的,它含有一個微型運算器,會根據收到
的外在環境音波,計算出一個反向波,把規律的噪音抵消掉,這樣你就會有身處
安靜環境的感覺。

缺點就是,它跟飛行員戴的耳機相似(不是耳塞式的),所以有相當的重量,以及
夾住你的頭的壓力。

這款SONY WH-1000XM2有一個缺點,就是在不接藍牙也不插3.5mm音源線後,
它五分鐘到就斷電關機。為了只用來消除噪音,不想聽音樂的時侯,可以在它的
耳機孔插入一個3.5mm音源插頭,這樣它就不會斷電了。

聲明:我不是SONY公司的人, 也沒有SONY股票

2018-07-01

在EL PASO同時看到金水兩星

今天在北緯31.7811632西經106.3963542度,UTC時間7月1日03:25左右
看見金星(約19度仰角)水星(約7度仰角)在西方, 以及高掛天空的木星.

同事卻把木星及週圍幾個星認為是夏天三角.
所謂夏天三角應該在仲夏的午夜會出現在中天, 這個時間怎麼可能高掛頭頂 ?

剛才看星星的時間是當地的晚上九點二三十分左右, 查一下星圖軟體,
這時間夏天大三角還在東方不到45度的天邊.

2018-06-26

低頻噪音的測量

我國法令對低頻噪音的規範為20到200Hz。
低頻噪音對人體的危害包括對人體會產生壓迫感、對睡眠及生心理的影響大,可能
導致神經衰弱、憂鬱症等等。
最近辦公室座位異動,結果新座位區域鄰近是主要機房,而機房的空調壓縮機就日夜
放送低頻噪音了!
手機很方便,用來量測低頻噪音的軟體很多,試用之後覺得這個不錯用:
"Sound Analyzer Free"
https://play.google.com/store/apps/details?id=jp.nokubi.nobapp.soundanalyzer.free&hl=en_US
可以量出那個壓縮機不斷放送的低頻為90Hz,其它軟體使用上不太方便,這個可以
用手指拉放,找出峰值圖。

2018-04-05

玩Android不註冊不綁信用卡

使用Android phone最令人討厭的就是要你註冊,還要綁信用卡。
不然就不能在google play 安裝app(apk)!
當然還有很多地方可以下載apk, 但各有優劣,對於Linux用戶來說有個比較
簡單的辦法,就是利用gplaycli來搜尋、下載。
https://github.com/matlink/gplaycli
https://github.com/matlink/gplaycli/releases/

python3 setup.py install 之後,視你系統現有的環境,可能需要裝一些額外的
packages 如 libffi-dev, libssl-dev, python3-dev.... 才能有 xxxxx.h 的.
完成之後的用法是
gplaycli -s flightradar24 (用來搜尋某個app)
gplaycli -d com.flightradar24free (用來下載某個app, app名稱就是
搜尋後看到的AppID)
(但有時候它會一直說server busy, 要試很多次才能下載,但有時候一次就下載成功)

最後就是用 adb install com.flightradar24free.apk (安裝)
如果試了一下發現不好用,馬上
adb uninstall com.flightradar24free (不必加 .apk)

當然你的手機要先打開「開發人員選項」,這在出廠值之下是沒有的,要特別去按
某些地方才會有,以Nougat(Android 7.x.x)來說,要進「關於手機」找到
「版本號碼」這項,一直按,然後回到上層就會看到多出一項「開發人員選項」。

2018-03-10

漢文化沒有愛、自由的元素

漢文化(也可以說包括朝鮮、扶桑、安南)開口閉口的總是忠、孝、節、義,
影響所及的各國完全找不出「愛、自由」,所以昭和的日本可以發動太平洋戰爭、
以及戰爭末期的自殺攻擊。二戰的中國可以鼓吹各種犧牲自我去送死愛國的戰術,
這些都是源自漢文化陰暗的忠、孝、節、義教育,從漢文化的小說、戲曲裡硬是
找不到除了忠、孝、節、義之外的元素。

漢文化沒有「愛、自由」更表現在「筷子寓言」,漢文化同時也是筷子的發源地,
然而「筷子寓語」卻強調要把筷子綑綁在一起、強調這樣才能團結,殊不知筷子
就是要一支一支分開,才能組成一雙一雙,用來餵飽每一個人,把筷子綑綁成一把
只會讓人沒有吃飯的工具。

2018-02-28

人類捕魚的big data

BBC的報導
http://www.bbc.com/news/science-environment-43169824

提到漁撈是跟政治、文化綁在一起的產業活動,它並不會受季節、氣侯影響。

因為依照規定,大型漁船要裝設自動識別器,它每幾秒就會發出自己航向、位置
、速度的識別訊號,所以只要從天空的衛星就能收集全世界的漁船在哪裡、在什
麼時間從事漁撈作業。(GMSK, 9600bps, 161.975 MHz, 162.025 MHz)


中國是作業時間最多的國家,在2016年,超過一千六百多萬小時,
幾乎快要等於全世界的作業量。


整個中國的東到東南沿海的漁撈作業!

迴音定位,人類也可以像蝙蝠

根據BBC這一篇,有些盲人是可以被訓練得能夠用自己的口腔
來發聲,然後聽取回音,但主要是面前的物體,側面或後面
的物體就要花更多時間去偵測。
http://www.bbc.com/news/science-environment-43173613
而最能辨識的物體高度大約在臉部到胸部之間,這可以補償
白手杖所無法偵測到的範圍。

這篇有詳細的實驗解說
http://rspb.royalsocietypublishing.org/content/285/1873/20172735

是不是可以用現在電子設備的達到相同的目的?
有沒有已經有類似的商品?
像已經可以用Arduino搭配超音波迴音測距儀(例如HC-SR04)來做一些
自動裝置。 

2018-01-09

UART with FTDI/PL23

一般來說ARM SBC是丟在某個角落, 只要它乖乖做事, 是不會去看它的. 最近拿到
一支OrangePi Zero, 就是以這個目的來使用, 這是一支沒有video out的SBC(RaspPi
有HDMI), 好處是它有獨立的UART debug port(RaspberryPi要另外config兩支GPIO
來當RX/TX才能接UART/TTL), 拿一台NB接上就能進系統改東西.

一般是在NB上插一支USB/TTL轉接器, 跑miniterm.py, 結果只有看到boot時的
messages, 但是messages到一個階段後就再也沒有東西出來, 也就是沒有login prompt.

於是東查西查(現在都改用systemd, 沒有/etc/inittab), 也查了systemctl的
getty@ttyS0以及/etc/systemd/system/ 還有 /lib/systemd/ 下面各種可能造成
沒有login的原因, 但是仍找不出來.

這支USB/TTL用在RaspberryPi 完全正常, 因此一直沒懷疑它, 今天想到之前用在
ESP8266時, 不同支ESP8266對不同USB/TTL的反應不一樣, 因此換一支FTDI的,
結果就能看到OrangePi Zero送出來的login prompt了!

看來這隻OPiZero的UART電壓可能跟RPi的不太一樣.

miniterm.py /dev/ttyUSB0 115200 --eol LF --raw
加--eol LF以及--raw 才能避開各種控制碼造成的混亂.

2017-12-02

telegram-cli觀察記

已經觀察了六天,發現telegram-cli拉高CPU loading的時間不一定,有時連續
一整天每個小時都出現很多(幾十次)衝到50%以上的情形,有時卻好幾個小時都
不曾出現10%以上的loading,但可以確定的是「不是OS造成程式loading high的
問題」,懷疑是網路通訊連接到telegram server有阻礙,因此一直retry導致
loading high。這六天的紀錄也沒有出現70%以上的(使用A10 single core)。

"-P XXXX"好用的地方在於telegram-cli仍可以續繼操作,又可以接受外部程式
送來的payload,並將它送出。

2017-11-26

telegram-cli 使用後記

telegram-cli使用兩年多好像沒什麼不良,但最近卻發現主機常常system reboot,
查來查去,推測是telegram-cli把CPU loading拉很高,最後引發system reboot.

好吧,那來加個監測CPU loading並且把情況回報給自己的帳號,這樣就可以找到
最後的黑盒子內容。
telegram-cli 加上 -P 2323 的參數,開一個小門來讓外部程式送訊

監視CPU的程式可以用
pn = popen('pidof telegram-cli').readline().strip()
P='top -bn1 -p %s|tail -n1|awk \'{print $9}\''%pn
while True:
   L = popen(P).readline().strip()
   如果 L 大於 10 就送個簡訊
   system('echo "msg XXX_YY %s %s"|nc localhost 2323 -q1'%(L,strftime('%T')))
   如果 L 大於 90 就把它殺了
   system('sudo pkill telegram-cli')

2017-09-04

釵、十手、古武道

最近看了2016年的時代劇「傳七捕物帳」,劇中主角傳七是江戶時代的捕快,
他的隨身武器叫做「十手(Jutte)」,十手是鈍器,但它的側邊有一支L型的護具,
就是用它來鉗住日本刀,同時可能再從身上拿出另一支十手來打彎或甚至打斷日本刀,
進而制服對手。











網路上有一篇談「十手」的文章在結尾說
『十手在硫球空手道體系中系統性地演化並發展出特定的套路,成為硫球空手道的經典兵器。』
這似乎有誤,琉球古武道的武器並沒有「十手」而是另一種叫「釵(sai)」的武器。
「釵」是鈍器,在「忍者龜」裡被誤導成利器!

在台灣老一輩武術界稱為「鐵尺」或「太子手」,它是雙手各一支、一對使用的演武法,可以搭配「拳」
來練習使用。釵的武技是藉由翻轉釵身,可以往前突刺或以長過手肘那一小段往後突刺對
手,以及翻轉時敲打對手。


「釵」在主體的左右兩側各有一支突出物,跟「十手」類似,但不同的是「釵」的這兩支
突出物與「釵」主體的距離比「十手」大,為的就是讓手能反握。而「十手」在演技上
並不翻轉,主要是用來鉗制對手的刀具,也因此突出的那一支與主體的距離是較小的,這樣才足以發揮鉗夾的功能。

為了能輕易翻轉「釵」,近年來販售的釵身在「monouchi」這一段被短化了,以便重心落在接近yoku跟釵身交叉處,結果monouchi 大約是tsuka 的兩倍多一點點。

但這也造成另一個問題,就是monouchi 本來設計的長度是比手肘長出大約半寸,反握(握在monouchi 而不是握tsuka)之後,可以用比手肘略長那一段攻擊身後的敵人,但這種短化的設計就少了那一段,殺傷力也變小了。

真是兩難,如果monouchi 比手肘長,在翻轉釵身的時候會比較費力。
最後這張回是傳統釵的長短比例。

2017-09-02

小行星Florence的月球

9月1日掠過地球的小行星Florence(直徑4.5公里)竟然帶著兩粒月球!
這兩粒月球的直徑大約在100-300公尺之間。
內圍的月球大約8小時繞Florence一圈,外圍的月球大概22-27小時繞一圈。

https://cneos.jpl.nasa.gov/news/news199.html

這是NASA在Florence接近地球時用70公尺直徑的大天線以電波偵測出來的
https://www.jpl.nasa.gov/spaceimages/details.php?id=PIA17792

https://en.wikipedia.org/wiki/Goldstone_Deep_Space_Communications_Complex

2017-08-31

PM8546 UART python 讀取資料

最近因為要透過PM8546 UART去讀取後面的資料,才用到更高的230400 baud速度.
基本上python 可以利用兩種方式讀取 serial port data:
1. pexpect 的 before 來獲取
  用spawn()去呼叫 miniterm.py, 新舊版的參數方式稍有不同
  舊版: pexpect.spawn('miniterm.py -d /dev/ttyUSB0 -b 230400 --lf')                                         
  新版: pexpect.spawn('miniterm.py /dev/ttyUSB0 230400 --eol LF --raw')
  (加--lf 或 --eof LF 是為了避免一次得到兩行空行)
2. serial 的 read()
  利用while 來使Serial.read() 不斷累加,獲取到達特定字元(例如 '>' 提示符號)之前的所有字串

從PM8546上讀出來的string再用 split('\r')來分隔每一行,最後從每一行的字串
裡去判讀最終目標字串。

2017-08-26

福衛五進入軌道

這幾天的主要新聞包括台灣福衛五號在8/24昇空,8/25進入軌道。

新衛星的TLE在8/24還不太好找,因為還沒列出FORMOSAT-5,
還好找到一個8/24發射的2017-049A 然後再找到 42920
就找到TLE了.

1 42920U 17049A   17237.24511176 -.00000044  00000-0  00000+0 0  9993
2 42920  98.2909 311.6421 0009843 225.0388 135.0120 14.50730944    72

用earthtrack 畫出來
前不久經過台灣附近
即將經過台灣附近

不過有新聞提到Xspace公司這次發射福衛五號是陪本生意,因為用一支很大的
火箭來射一粒小小的福衛五就像開一列捷運車,卻只載了一個客人。