Dropbox

ちゃんと中国語を勉強していない私も時間が経てば自然と中国語のwebも読んでみようという気になります。ネット通販のためだったりガジェット情報を得るためなのでわざわざ辞書を取り出して読みを覚えようとか言う気にはなりません。それでも意味を調べたり発音を調べたりする必要はあるわけで、なるべな労力をかけずに辞書引きをしてみようとChromeの拡張機能のZhongWenというのをまずは入れてみました。

他にも同様の拡張機能が有るようですが、もうこれで十分です。他の拡張機能を調べてみようと思いません。
– オフオンが簡単なので必要のない時はポップアップしない。
– ショートカットキーとかも有るようですが、何も覚えなくても自動的に現れるポップアップ機能だけで十分に役に立つ。
といった感じでChromeを使っている人にはかなりオススメです。

ZWDict

小米盒子はApple TVライクな製品で中国生活の強い味方です。専用のビデオ配信サービスから各種映画やドラマが視聴出来るほか応用商店から専用の追加アプリを入れて音楽番組を楽しんだり、iOSからのAirPlayも出来ます。

ベースはAndroidであるのは周知の事実で、外部から提供されているAPKも入るのは分かっていましたが長い間ルート化が必要だと思い込んでいました。実際には標準機能でUSBメモリーから任意のAPKファイルを指定して導入する事が出来ました。

手順は以下の通りです。

– USBメモリーにAPKファイルを用意する。
– 小米盒子の標準版にはマイクロUSBコネクターしか無いのでOTGケーブルを使用してUSBメモリーを接続します。
– 小米盒子の標準アプリから応用商店/応用管理/本地案装でUSBメモリー上のAPKファイルの一覧が表示されるので必要なものを選択して導入します。

普通のAndroidアプリを導入する事が出来ますが、さすがに小米盒子のリモコンではうまく操作出来ませんでした。Android TVや小米盒子に特化したアプリを導入する必要があります。私の試したのは映画とかドラマを視聴するための以下の2つのアプリです。

– MoreTV http://www.moretv.com.cn
– 泰捷视频TV版 http://www.togic.com/livetv

どちらも大体同じ機能です。MoreTVの方は一般のTV放送を遡って視聴できる機能が特徴です。ドラマや映画は、各種動画サイトのポータル的な機能になっています。タイトルを選ぶと优酷とか搜狐とかから映像を取ってくるような感じですのでiOSデバイスやAndroidで単独アプリを使用するより勝手が良いです。

Mac OS XはGUIアプリケーションが洗練されていることのみならず、shell script、PythonそれにPerlがそのまま使える事が一部のユーザーにとっては意義のあることになっています。

ターミナル上で簡単に実行出来るスクリプトも便利なものです。常用するスクリプトはパスを通したりaliasで簡単に起動させることで実用になります。しかしながら、場合によってはGUIは無くても良いけどアイコンをクリックして起動させたいと思うこともあります。

スクリプトの.app化については既に多くの情報が出回っていますが、アイコンの作成まで含めると複数の情報を組みあせなければなりませんでした。また、私の目的であるperlスクリプトの実行後に画面を残して置くためには一工夫が必要でした。というわけで、自分への覚え書きにするとともに新たな.app化サンブルの提供を行うことにしました。

細かい説明は省いて、ガシガシとサンプルの作成を行なって行きます。

[ アプリケーション・バンドルの作成 ]
参考webページ: 技術/MacOSX/シェルスクリプトを”.app”(“Bundle”)化する

ターミナルを開いて適当な作業場所に移動します。

mkdir WhatDate.app
cd WhatDate.app
mkdir Contents
cd Contents
mkdir MacOS
mkdir Resources

WhatDate.app/Contents/MacOS/WhatDate.pl を以下の内容で作成。またchmod +xで実行属性も付けておく。

#!/usr/bin/perl
system("date");
print "EPOCH: ", time, "¥n";
@localtime = localtime;
print "JULIAN: $localtime[7]¥n";

コマンドラインから実行してみて動作を確認。

WhatDate.app/Contents/MacOS/WhatDate.bash を以下の内容で作成。これも同様にchmod +xで実行属性を付ける。

#!/bin/bash
BASEDIR=$(dirname $0)
open -a Terminal "${BASEDIR}/WhatDate.pl"

コマンドラインから実行してみる。今度は別のウインドウが開いて先のPerlスクリプトが実行されます。

WhatDate.app/Contents/Info.plist を以下の内容で作成します。これがアプリケーションの詳細を記述した重要なファイルです。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleExecutable</key>
<string>WhatDate.bash</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleSignature</key>
<string>????</string>
</dict>
</plist>

もうこれでアプリケーション・バンドルとしては成立しています。アイコンをクリックして起動できるかどうか確認してみましょう。

[ アイコンの作成 ]

インターネットで調べるとIcon Composerを使うべしという情報が沢山見つかりますが、今時は iconutil というコマンドライン・ツールを使用します。

参考リンク: MacアプリのRetina対応アイコン(*.icns)を作成する方法

まずはアイコン画像をでっち上げますが、解像度に応じて沢山作らないといけません。ガイドによると全て作らなくても良いと書いてありますが、どれを作っておけば良いかは書いてないので今回は全部用意することにします。

まずは適当な場所にフォルダー作ります。
mkdir WhatDate.iconset

その下に以下の画像ファイルを作成します。
icon_16x16.png
icon_16x16@2x.png
icon_32x32.png
icon_32x32@2x.png
icon_128x128.png
icon_128x128@2x.png
icon_256x256.png
icon_256x256@2x.png
icon_512x512.png
icon_512x512@2x.png

WhatDateIcons

ファイル名の512×512は想像通り画素数です。後ろに@2xが付いている場合は倍の画素数になります。すなわちicon_512x512@2x.pngは1024×1024の画像ファイルを作成します。icon_16x16@2x.pngとicon_32x32.pngは同じ画素数ですが、あくまでもicon_16x16.pngの高解像度版です。場合によっては解像度によって違うデザインを使うこともあります。その場合、icon_16x16@2x.pngはicon_16x16.pngと同じデザインを使用するということです。

以下のコマンドを実行するとWhatDate.icnsが出来上がります。
iconutil -c icns WhatDate.iconset

出来上がった WhatDate.iconset を WhatDate.app/Contents/Resources/ 下にコピーする。

WhatDate.app/Contents/Info.plistに以下の2行を適当な場所に追加する。
<key>CFBundleIconFile</key>
<string>WhatDate.icns</string>

改めてWhatDate.app/Contents/Info.plistを全部書き出すとこんな具合です。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleExecutable</key>
<string>WhatDate.bash</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleIconFile</key>
<string>WhatDate.icns</string>
<key>CFBundleSignature</key>
<string>????</string>
</dict>
</plist>

これで完成です。実際のアイコンは直ぐには表示されないかも知れません。

[ 配布 ]

これを配布する場合はディスクイメージにするのが簡単です。

まず適当なところにフォルダを作ります。フォルダ名は分かりやすくアプリケーション名と同じにしたりします。その中に、作成したアプリケーション・バンドルをコピー。必要に応じてReadme.txtみたいな説明も入れておきます。

ディスクユーティリティを起動。
「ファイル/新規/フォルダからのディスクイメージ」を選択します。
ファイル・ダイアログが表示されるので先に作ったフォルダを指定すれば配布用のディスクイメージが出来上がります。
配布先ではWhatDate.dmgをダブルクリックして開いた中にWhatDataアプリケーションが見えますので、適当なところにコピーして使用します。

参考までに、 作成したWhatData.dmgをサンブルとして置いておきます。

普段使いのイヤーフォンは消耗品ですので、あまり高いものは買いにくいものです。ということで安価で評判の良いソニーXBA-10を店頭で試聴してみました。安価ながら十分に良い音がします。しかしながらケーブルの擦れ音がかなり大きいです。上位機種のXBA-30などは全く擦れ音がしません。これでちょっとばかり迷ってしまいました。

その後、ケーブルの擦れ音対策で「シュアー掛け」という装着方法があることを知り試してみると、かなり擦れ音が軽減されます。これは耳の後ろにコードを回すことにより擦れ音を直接耳に届かないようにする方法です。実際の装着方法については「シュアー掛け」でググって画像を見ていただくのが理解は速いと思います。

普通に装着し無音状態で胸の前に垂れているケーブルに触れると大きく不快な音が発生します。シュアー掛けにすると、これが大幅に軽減されます。普通に音を鳴らしていれば、ほぼ気にならない気がします。

これはイケるかも知れないということでXBA-10を購入しました。ポーチ、コード長アジャスター、クリップ、それと9セットものイヤーピースが値段の割に立派な箱に入っています。それくらい気を使うならケーブルを良くしてくれと思わないでもないです。

常時持ち歩き一週間ほど使用していますが十分に満足しています。コストパフォーマンスの良さは抜群ですのでお勧めです。

RTL2832U広帯域受信機によるADS-Bの受信は付属していた簡単なホイップアンテナで行なっていました。それでも200Kmくらい先の航空機からの信号が受信できていたので十分に使える物でした。というわけで受信状況の改善のためというより、アンテナを作ってみたいという欲求にかられてADS-B専用のアンテナを作ってみました。

どんなアンテナが良いか色々と考えてみましたが手持ちの材料だけで出来る、かつ工作が容易であることからコリニアアンテナを作ることにしました。注) 送信も含めて真面目に調整しようと思うとコリニアアンテナはかなり大変な物だと思います。

ColinearElements

材料は例によって余っていたテレビ用の同軸ケーブルです。これを短く切ってアンテナのエレメントにします。今回は10段のコリニアアンテナにするため10本のエレメントとインピーダンスをマッチさせるためのスタブとして更に短く切ったケーブルを用意しました。各エレメントは1/2λ、波長の半分に同軸ケーブルの短縮率を乗じた長さにします。同軸ケーブルはRG6と書かれています。色々とネットで調べて短縮率を67%で計算することにしました。ということで各エレメント長は92mmほどです。むき出しになったシールドも含めてこの長さにします。スタブは1/4λですので更に半分の長さです。

ColinearConnectionColinearStub

各エレメントは互い違いに芯線とシールドをハンダ付けして繋いでいきます。この時、シールドどうしがショートしないように絶縁のために紙を挟みました。電波は1/2波長ごとに極性が反転するので、このようにエレメントを反転させて積み重ねることにより、ちょうど乾電池を直列に繋いだようにゲインを上げることが出来ます。先端はインピーダンスを合わせなければなりません。同軸ケーブルのインピーダンスである75Ωの抵抗をターミネータとして接続しても良いのですが、どうせ同軸ケーブルが余っているので1/4波長のスタブを作り同様にハンダ付けします。1/4波長のところでインピーダンスが最大になるはずなので、その先は開放してもショートしてもインピーダンス的に構いません。一般的にはショートするようです。注)技術的な説明は話半分でお願い致します。

ColinearCompColinearOnWindow

各接続部分はハンダ付けしてあるだけなので強度がありません。ビニルテープをしっかり巻きつけて補強します。屋外に設置するちゃんとしたアンテナの場合は、これをグラスファイバーポールなどに収めて元のところに同軸ケーブル用のコネクターを取り付けます。わたしの場合は屋内に簡単に設置するだけなので、そのままむき出しです。給電用のケーブルも直接ハンダ付けしました。給電用同軸ケーブルの長さも計算はしましたが短縮率が怪しいしあまり意味ないかもしれません。

結局のところ受信だけですし、かなりざっくりとアンテナを作りました。それでも付属のアンテナと付け替えたところ、最大距離はあまり変わらない気がしましたが、受信できる飛行機の数が増えました。

 

USBmeterrgb400さんがUSBアダプター型の電圧電流計を購入されているのを見て、同じものを中国の通販サイト(taobao.com)で買いました。一個18元(+送料10元)でした。

写真のようにUSBコネクターに刺すとUSBの線にかかっている電圧と流れている電流を計測することが出来るものです。能動的に何かをするわけではありません。

使用目的は充電状況を具体的な数値で確認することです。最近の大容量バッテリーを備えたデバイスでは使用している充電器やUSBケーブルにより充電時間が異なったり、場合によっては100%まで充電できないような状況が発生します。使っているうちに、このケーブルはダメとか、この充電器あるいはモバイルバッテリーは充電が遅いとか分かってきますが、具体的に電流値を見れば簡単に判断出来ます。

試しに手持ちのマイクロUSBケーブルで充電時の電流を調べてみました。明らかに充電できていなかったNOKIAの短いケーブルは普通のケーブルに比べて1/10しか電流が流れていませんでした。意外であったのは太くで短い如何にも電流が沢山流れるように見えるケーブルが調子の良いものに比べて70%くらいしか電流値が出ませんでした。この辺りになると、おそらく充電時間に明らかな差が出るものと思います。また、それを経験から見出すのはなかなか困難でしょう。ということで18元の価値は十分にあったと思います。

蛇足ですが、今回はじめてtaobaoのコンビニ受け取りを使用しました。なかなか便利です。留守がちであることに加え、自宅に配達してもらうと留守の場合、宅配業者から電話で問い合わせが来たりします。従って中国語を話さないと行けないわけですが、コンビニ受け取りだとSMSで来たお知らせの内容を指定したコンビニで伝えるだけなので外人にも優しいと言えるかもです。

RT2832Uチューナーの次の目的は航空無線の受信です。我が家は上海虹橋空港に近いのでタワーの交信も聞けるはずと期待しての挑戦です。RTL2832Uドングルの詳細については過去記事を御覧ください。

RT2832Uに付属しているアンテナは目的とする120MHzから130MHzを受信するには適していません。まずはアンテナの作成からです。市販品も手頃な値段で売っていますが、簡単なものでもアンテナを作ること自体が楽しいです。

[ アンテナの作成 ]
手持ちの材料で簡単に作ってみました。
使用した材料:
– そこそこの太さの被覆されたコード、中に細い銅線が詰まったものです。元々は電源コードだったものを使用。
– TVアンテナ用の同軸ケーブルF型コネクター付き。未使用で余っていたものです。
mcxtofconn– MCX-F変換コネクタ。RT2832Uドングルには小型の同軸コネクター(MCX)が付いています。それをTV用の同軸ケーブルに付いているF型コネクターに接続するためのアダプターです。通販(Taobao)にて12元で購入しました。送料が10元かかっているので合計22元です。

作成するのは構造が簡単なダイポール・アンテナです。設置場所の都合とおそらくは航空無線は垂直偏波であると思うので、垂直ダイポールにします。作り方はいたって簡単で被覆コードを約60cmにカットしたものを2本用意します。同軸ケーブルの被覆を剥がして芯線とシールドを露出させます。60cmにカットした被覆コードの一本を芯線、もう一本をシールドに半田付けしてまっすぐに伸ばせば完成です。短縮率がどれくらいになるか分かりませんが、60cmでおそらくは中心周波数120MHz付近になると思います。

アンテナとしての形を保つためには何かしら構造物が必要ですが、これもごく簡単に窓ガラスにテープで貼り付けました。
RT2832UwithCoaxdiporeant

[ 受信の設定 ]
受信にはMac OS X上のgqrxというSDRアプリケーションを使用しました。ちゃんと受信出来るまでに随分と手こずりました。キモはFilterの設定をWideにするということでした。FilterがNormalのままだとキャリアが出ているのは分かるのですが、まったく音声として復調出来ません。ということで設定は、

Filter: Wide
Mode: AM
AGC: Fast

でOKです。

airbandongqrxあとは適当に115MHzくらいから135MHzを探すか、ネット上で公開されている(中国の場合baidu.comで”航空频率”で検索)周波数に合わせてみます。空港に近いためか、かなりクリアーに交信の様子が聞けます。まだじっくり聴きこんではいませんが、航空無線は英語が基本かと思ったら、結構中国語の会話も聞こえてきます。

Raspberry PiにRT2832Uを接続しMac OS X上のgqrxからTCP/IPで接続し受信することも出来ますがMacBook Airに直接RT2832Uを接続した場合に較べてノイズが多くなります。USBケーブルでノイズを拾うという話しもありますので、時間があればノイズ対策を試してみたいです。

PCさえあれば格安に航空無線の受信環境が得られます。興味の有る方はお試しあれ。

phem一部の方々には懐かしいPalm OSがAndroid端末上でそのまま再現できるPHEMの紹介です。 Palmについて多くを語る必要は無いでしょう。PHEMはM68kベースなPalmのハードウェアのエミュレータです。純粋にエミュレータだけですので稼働するためにはPalm OSのROMイメージファイルが必要です。ここが若干、敷居を高くしてる感じがありますがROMイメージファイルさえ入手出来れば動作させるのは難しくありません。PHEMを日本語で紹介されているミニーの独り言さんのブログには英語版ROMイメージの入手方法が紹介さています。もし実機を持っている場合は実機からROMイメージファイルを作成する方法もあります。

PHEMはGoogle Playで有料で公開されています。有料と言っても99円ですので気軽に購入出来ます。

起動するとROMイメージファイルの導入先のディレクトリーがメッセージで示されます。私のTCL Heroの場合は/storage/sdcard0/phem/romでした。そこにROMイメージファイルを保管します。複数のイメージファイルを持たせて必要に応じて選択する事が出来ます。この辺りの操作は分かりやすく作られていますので、実際に試せば迷うことは無いでしょう。

私はパームウェアの開発を行っていましたので古いHDDに幾つものROMイメージファイルを持っていましたので、それでPHEMを起動しました。上のキャプチャー画面のように日本語ROMイメージも動きました。本当はCLIEのハイレゾ画面で稼働したかったのですが現在のところPHEMではCLIEのROMイメージファイルは起動できません。この辺りの事情もミニーの独り言さんKaleidoscopeOnPHEMが詳しく書かれています。

無事PalmOSが起動できたのでアプリケーションを導入してみます。Androidのストレージの適当なところにパームウェアのファイル(拡張子がprc等のもの)を保管しておきます。

phemInstall PHEM上部の左のアイコンをタップするとファイルを選択するダイアログが出ますのでパームウェアのファイルを選択すると導入が行われます。右のキャプチャー画面は私の唯一の公開パームウェアである「かれいどすこーぷ」を実行した画面です。このパームウェアは出来ればハイレゾ画面で起動したいところです。

SDR_Touch

 

Twitterで教えてもらったのですがUSBホストモードを備えたAndroidデバイスであればRTL2832Uドングルをそのまま接続して広帯域受信機として使用できます。必要なソフトはRTL2832U driverSDR Touchの2つだけです。SDR Touchは無料のお試しモードで使用しています。

2つのソフトを導入しOTGケーブルでRTL2832Uドングルを接続するだけで簡単に使用可能です。私はあまり長時間試していませんが、かなり電池を消費するようです。

 前回のgqrxのエントリーにあるようにRaspberry Pi上のrtl_tcpにSDR Touchを接続することも出来ます。これだと電池の消費が改善しそうですが、残念ながら私の環境では安定した接続が出来ませんでした。

FM977

ADS-Bの受信に使用しているRTL2832U+R820TなUSBドングルは広い帯域を持ったSDR(Software Defined Radio)として使用できます。Mac OS Xで使用する場合はgqrxのOS X版を使用するのが簡単です。私はgqrx_8.dmgというのを利用しました。これひとつ導入するだけでOKです。そのままMacのUSBポートにRTL2832Uドングルを挿入すれば使えるようになります。

本当は航空無線を聞きたかったのですが、設置位置やアンテナの問題かうまく聞くことが出来ていません。とりあえずFM放送で動作を確認しました。キャプチャー画面のようにある幅でスペクトラムが見えますので、どの周波数で信号が出ているかが目視出来るのは面白いです。

[ リモート接続 ]
私の場合Raspberry PiにRTL2832Uを常時挿入しています。grpxからネットワーク経由でRaspberry Piに接続して動作させる方が便利です。

Flightradar24データ提供計画 – ハードウェア編
Flightradar24データ提供計画 – 基本ソフトウェア編
ADS-B関連アプリケーションとの同時稼働は出来ません。dump1090を止めてから rtl_tcp -a 0.0.0.0 を起動すればRaspberry Pi側の準備は完了です。

後はgqrxの設定でRaspberry PiのIP addressとポート1234を指定すれば後はMacのUSBポートにRTL2832Uを挿入した場合と同様に操作出来ます。