2021年3月23日火曜日

PiAwareで航空機のADS-Bを受信+デコードする

 無人航空機(いわゆるドローン等)を飛行させる際
有人航空機の飛行を妨げないように回避する義務があります(航空法)

でも、有人航空機に気が付かないというか、監視をどう行うのか
まったく明確になっていません。

FISSなどはもちろん登録するけど、メール通知が来ても気づきにくい場合もある。
特に携帯電話回線がない環境ではどうするんでしょう。

そんな中、有人航空機の多くはADS-Bという信号を送信しながら飛行していると知りました。
この信号の中には航空機の座標や高度、速度が含まれているので航空ファンはこれを受信して楽しんでいるようです。

安いアンテナやレシーバーをアンドロイドタブレットに接続し、アプリで閲覧できることも知りました。

しばらくその仕組で運用していましたが、アプリは携帯電話などインターネットに繋がっていないと十分機能しないものばかりでした。

山奥など携帯電話が使用できない場所では困っていましたが、Raspberry piを使うと携帯電話電波がなくてもわかるらしい事が判明しました。

今回はこの仕組の構築を行います。

基本的には次のpiawareのサイトを参考にしています。

https://ja.flightaware.com/adsb/piaware/build

まずはこのサイトの動画を理解する必要がありました。


/usr/share/dump1090-fa/html/config.js


$ sudo piaware-config use-gpsd

$ sudo piaware-config -showall

$ sudo service piaware restart

$ sudo apt-get update

$ dmesg | grep Prolific

$ ls /dev/ttyUSB*

インターネットに接続した状態で

$ sudo apt-get install gpsd gpsd-clients python-gps

途中でYesのy

$ sudo apt-get install cu

$ sudo apt-get install gpsd gpsd-clients

$ sudo systemctl enable gpsd.socket

$ sudo systemctl start gpsd.socket

$ sudo nano /etc/default/gpsd

DEVICES="/dev/ttyUSB0"

GPSD_OPTIONS="-n"

GPS端末を変えたら同じttyUSB0でも
gpsd:ERROR: can't run with neither control socket nor devices
となってしまった。

そこでGPSD_OPTIONS=""に戻したら無事に認識された。
一度認識されると-nのオプションを付けなおしても認識は続く。

$ sudo gpsmon







/usr/share/dump1090-fa/html/config.js

// -- Output Settings -------------------------------------

// The DisplayUnits setting controls whether nautical (ft, NM, knots), 

// metric (m, km, km/h) or imperial (ft, mi, mph) units are used in the 

// plane table and in the detailed plane info. Valid values are

// "nautical", "metric", or "imperial".

DisplayUnits = "nautical";


SiteCircles = true; // true to show circles (only shown if the center marker is shown)

// In miles, nautical miles, or km (depending settings value 'DisplayUnits')

DefaultSiteCirclesCount = 3;

DefaultSiteCirclesBaseDistance = 100;

DefaultSiteCirclesInterval = 50;


// The google maps zoom level, 0 - 16, lower is further out

DefaultZoomLvl   = 7;

この記事を執筆中にver4.0から5.0への更新がありました

更新方法はネット上からできます。






https://flightaware.com/

$ sudo nano /usr/share/skyaware/html/config.js

https://ja.flightaware.com/adsb/piaware/advanced_configuration


以下のサイトを参考にさせていただきました。

全体的にはこちら
https://www.techscore.com/blog/2016/12/17/adjust_clock/

ls /dev/tty*コマンドはこちら
https://taku-info.com/raspi-usbconnection/

AndroidでLINEに不具合?どうも日本語入力で固まるんだけど webview更新で直ったけど偶然?

 と妻から帰宅するなり相談をうける。

見てみると特定のアプリを開くと黒くなって動かなくなる。

よくよく見てみると、日本語入力を行うと固まる。

Webの検索もできない。

どうやらLINEは開いた直後日本語入力が始まるようで
黒く固まるらしい。

入力系アプリを強制停止したり、再起動を試したがだめ。


そこで、Google Playをのぞくと、Webviewが更新されずにいることに気が付いた。

Webviewを更新してみた。

すると、日本語入力可能に。

偶然?


この記事が役立つといいな。


---追記

あ、やっぱりWebviewだった。

何も調べず偶然たどり着けたけど、よかった。

https://k-tai.watch.impress.co.jp/docs/news/1313898.html