RedditユーザーのEmbarrassedOctopus氏が、自宅の窓から見える川を通る船舶の情報をリアルタイムで表示する電子ペーパーディスプレイを開発した。船舶が自ら発信する電波を直接受信して情報を表示するため、インターネット接続なしで動作するのが特徴だ。
このプロジェクトの最大の特徴は、船舶が発信するAIS(船舶自動識別装置)信号を直接受信している点。多くの船舶追跡サービスがインターネット経由でデータを取得するのに対し、このシステムは船舶が161〜162MHz帯で発信する位置情報や船舶情報の電波を直接受信する。
ハードウェアは「Raspberry Pi Zero 2W」、7.3インチ電子ペーパーディスプレイ「Pimoroni Inky Impression 7.3」、そしてAIS信号を受信する「Wegmatt Daisy Mini」で構成。Daisy Miniが船舶からの電波を受信・解読し、Raspberry Piが情報を処理して電子ペーパーに表示する仕組みだ。
表示モードは3種類。「マップ」モードでは過去5分間に受信したすべての船舶の位置を地図上に表示。「テーブル」モードでは最近通過した20隻の船舶リストを表示。そして「ジオフェンス」モードでは、自宅の窓から見える特定エリアに入った最新の船舶情報を詳しく表示する。
特にユニークなのが、ジオフェンスモードで表示される船舶の「設計図」。船の長さと幅を正確に描画し、GPS受信機の位置を点で表示する。EmbarrassedOctopus氏によると、「大型船舶ではGPS受信機の位置がブリッジ(操舵室)の位置を示すため、船の構造が把握できる」という。
当初は実際の船舶写真を表示する予定だったが、適切な価格のAPIサービスが見つからなかったため、この設計図表示を採用。結果的に「インターネット不要で動作する」という利点につながった。
受信距離は窓際に設置した場合で約3マイル(約4.8km)、大型アンテナを使用すれば4〜5マイルまで拡大可能。ただし、これは船舶側の送信出力の制限によるもので、「AISは近隣の船舶に届けばよいため、それほど強力な信号を発信していない」とEmbarrassedOctopus氏は説明する。
Reddit投稿には多くのコメントが寄せられ、技術的な議論も活発に行われた。あるユーザーが「船舶が直接データを発信しているなんて知らなかった」と驚くと、EmbarrassedOctopus氏は「船舶は2つの無線チャンネルで位置や状態の情報をブロードキャストしている。これは他の船舶向けの信号だが、適切にチューニングされた受信機があれば誰でも受信できる」と説明。
また、「飛行機でも同じことができるのでは」という質問には、複数のユーザーが飛行機のADS-B信号を受信する「FlightAware」プロジェクトを紹介。船舶と同様の仕組みで航空機の追跡も可能だという。
描画処理について尋ねられると、「PythonのPILライブラリを使用して3つのレイアウトクラス(テーブル、マップ、ジオフェンス)を作成し、それぞれが船舶データを参照して画像キャンバスに描画する」と技術的な詳細も共有した。
EmbarrassedOctopus氏は「より新しいバージョンのInkyディスプレイへの対応と設定機能の改善を行った後、GitHubでソースコードを公開する予定」と述べている。現在のバージョンでは初期設定が複雑なため、より使いやすくしてから公開したいという。
An epaper display to show which ships are sailing past – Reddit