(日々の記録)デジタルオシロを買った。(月)脱線が止まらない。W(以降Raspi0W)に寄り道し、今度は、USBとBluetoothシリアルのブリッジプログラムを書こうとして、Python(パイソン)にはまってしまった。PythonはRasPiのPiはPythonからと言われるようにRaspiの公式言語らしいが、これまで何となく縁がなかった。今や自慢にもならないが、所長は学生時代のFORTRANから50年間、ありとあらゆる計算機言語(今数えたら全部で25以上、アセンブラーだけでも8機種)をかじってきた(ひととおり動かした)。Pythonだけはまだ書いたことがない。人が騒ぐとかえって冷めるという「へそ曲がり」が主な理由だが、「蛇」嫌い(Pythonはニシキヘビのこと)ということもあるかもしれない。本屋でO'ReillyのPython本の表紙を見て何度かのけぞった記憶がある。冗談はともかく、ArduinoのUSBシリアルから、BlootoothのシリアルをつなぐRaspiでの仕掛けは、最初、スクリプトのリダイレクトで出来ると考えていたのだが、どうもリソースの競合で送受信は同時にできないような気がしてきた。実験レベルだが2つ定義するとはねられる。良い機会なのでPythonを知っておこうと気楽にプログラミングを書き始めた。ところがこれが面白いというか、うまく動かなくてすっかり深入りしてしまったのである(CかPerlで書いておけば良かったと思っても後の祭り)。stretchバージョンが原因か(2/21/2018)前記事の通りRaspi3では苦労の末、Bluetoothシリアルそのものは快調に動いた。Raspi0Wではご機嫌が悪い。コマンドレベルでは特に問題なく動くのだが、Bluetoothのシリアル起動スクリプトをデーモンに入れて自動化しようとしたあたりから、つながらなくなった。useというエラーを吐いて何をやっても進まない(再立ち上げ必要)。だいたい、socketなどコマンドでいじれるレベルではないのでバグ臭い。このメッセージをキーに検索すると、山ほど質問サイトがヒットする。決め手になるような対策は見つかっていない。wheesyあたりで良かったのが、Jessieで駄目になったというレポートがあるが、こんどのやつは、JessieからStretchでおかしくなっている。そのうち遂にPCのWin10側までおかしくなった。ペアリングのときにシリアルディバイスではなくてオーディオ機器だとプロファイルを勘違いしはじめる。何度か繰り返すとうまくいくときがあるというのが悩ましい。道具として使えるほど安定していない感じである。bluetoothの情報が、古いのと新しいのが混在し、どれを信じれば良いのかわからない。定番となるものがない。特定のハードウエアに特化し、CUIで動かす汎用的なhciconfigなどのコマンドはサポートが途切れているようだ。Raspi3では機嫌よく動いていたものが、Raspi0ではどうも不調である。Jessie最終バージョンでRaspi0WのBluetooth完動(2/24/2018)Raspi3とRaspi0Wが使うOSは共通である。ハードもこのあたりは変わっていない(と思う)。違うのはOSのバージョンだけである。Raspi0WはJessieではなく最新のStretchを入れている。これがうまくいかない原因である可能性が高くなってきた。そこで、バージョンを落としてみることにした。あの長時間のダウンロードかと覚悟していたが、偶然、Raspiの日本のミラーサイトがあることを発見した。