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

2021年2月22日月曜日

第6世代V-NAND SSDで高速化+RAMを16GBへ

家庭用のPC、超遅いです。

予算が無くてSocket 1151LGAのIntel Pentium G4560プロセッサ
ASRock B250M-HDVで組んでいます。

RAMは8GBでWindows10だけどHDDがWD Blue 3.5inch 7200rpm 500GBという
ケチりすぎて激遅いPCになっていました。

5年間だましだまし使っていましたが、ハングアップも頻発し「もう限界」という家族の要望から、買い替えるか改造するか検討することに。

遅さの原因はHDDだと分かっていたのでSSD化+メモリ増量ということに決定。

予算3万円とのことだったけど、1万7000円に抑えました。

SSDは第6世代V-NANDを採用したものが発売されたばかりと知り、
サムスンのSSD 870 EVOを導入することに決定。
ツクモのネットショップで購入。


RAMはドスパラで中古を探し、16GB(8GB×2)を購入。

どちらも2日以内に届きました。

M.2 SSDも検討しましたが、データコピーの簡単なやり方を知らず、調べたり試行錯誤するより「玄人志向 HDDスタンド USB3.0接続 KURO-DACHI/CLONE/U3 パソコンなしでHDDのまるごとコピー機能付き」を使いたかったのでSATAのSSDに決めました。

結果、起動5分→30秒となりやっと普通のパソコンになりました。

今回は良いタイミングで低価格に改善できたと思います。

それにしても第6世代のV-NAND SSDってかなり高速だと思います。
ノートパソコンもこれに変更しようかな。

特に今回感じているのはWebブラウジングや動画鑑賞、オフィスソフト程度のPCでは
CPUはとにかく遅くても良いということです。
(マザーボードが第7世代までの対応だけど)Coreiシリーズへの変更も考えたけど、今のままPentiumで十分だなと感じています。

でもあと五年頑張るのかなあ、ううむ。

そしたら中古のCoreiで頑張ろうかな。

2020年7月28日火曜日

CF-AX2 諸悪の権化は内臓バッテリーの劣化

Panasonic Let's note CF-AX2を愛用していけど
いろいろな症状が出ていたのでお蔵入りしていました。

  • 内臓バッテリーが充電できなくなる
  • 交換可能なバッテリーも充電できなくなる
  • 充電できないのでバッテリー残量補正ユーティリティーが働かない
  • キーボードが効かなくなる(交換したが動作がおかしい)
  • ACアダプターを接続していてもバッテリー残量が低いと言ってシャットダウンしてしまう。(ACアダプターも交換したけど改善せず)
さすがに困ったのですが、内臓バッテリーがおかしいから
交換可能なバッテリーも充電できないのではないか?と思いました。

内臓バッテリーを外してみるとちゃんと交換可能バッテリーが充電されるようになりました!
起動しても10分程度で電源落ちていたマシンがよみがえりました。
よかった!

内臓バッテリーを取り外すために底面パネルを外しますが、以前の記事をご参考にしてください。

ACアダプター買い替えなくても良かったのかも。。。

内臓バッテリー君、君だったのか。
いままでありがとう。

2019年9月21日土曜日

外付けハードディスクのファイルシステム、FAT32からNTFSに変えたい。

外付けハードディスクを購入したらFAT32のファイルシステムだった。
気にせず使っていたけど、大きなファイルを扱うことになりました。
そこでフォーマットせずにファイルシステムをより大きなファイルを扱えるNTFSに変換したい。
Windowsだけで出来るらしい。
以下のサイトを参考にしました。
https://wind-mill.co.jp/iwashiblog/2016/04/hdd-fat32-ntfs/

まずはコマンドプロンプトを管理者で実行するというやったことない事。
右クリック、、、
いやそもそもコマンドプロンプトってどこにあるの?

いつもWinキー+Rで「cmd」なんだけど、、、

そこでWinキーを押してから「cmd.exe」で検索。
アイコンが出てくるので右クリックで「管理者として実行」
Eドライブに割り当てられているのだけど
ボーリュームラベルを入力してください
というところで「e」と入力しても
無効あつかい。

ボリュームラベルとは自分でつけた名前らしい。
外付けハードディスクのアイコンを右クリック
プロパティで名前をコピー

コマンドプロンプトで右クリックして貼り付け
エンターキーでやっと処理が進みました。

大きなファイルがあると処理が遅いみたい。
変換が完了したらOK
ファイルは壊れていないみたい。

2019年7月16日火曜日

マイクロドローンに挑戦Cinebee75HD

※書きかけです

購入するだけ購入したけどどうしていいのかわからない。

CineBee 75HD
かわいいデザインでカーボンが特徴的。
https://www.iflight-rc.com/index.php?route=product/product&product_id=780

まずはBetaFlightのソフトを準備

購入後Youtubeなどで調べるけど
フライト前の事はあまり情報がない。
とりあえずドローンとパソコンを接続しようか迷うけど
変なドライバーがあてられると厄介なので

そこでこちらのサイトを見つけ
https://052.jp/betaflight-configurator-10-5-1-release/

次のサイトからBeteFlightの設定ソフトをダウンロード
https://github.com/betaflight/betaflight-configurator/releases

Windows10なので
betaflight-configurator-installer_<version>_win32.exe
をダウンロードしました。

問題なくインストールでき自動的に起動しました。
日本語です。ありがとうございます。
初めてパソコンとドローンをUSBマイクロケーブルで接続。

BataFlightConfiguratorの右上の「接続」をクリック。
問題なく認識されました。ここまでは簡単。

しかしUSBの差し込みが甘いと通電する癖に認識されません
ハマったので注意。


ソフトの内容をざっと見る。

左のカラムに「セットアップ」とあるのでこれを見ていく。
「水平キャリブレーション」が目に留まる。
まずはキャリブレーションだろうと思い込みでキャリブレーションをやってみる。
よくわからないけどあっという間に終了。

機体を手で持って傾けると画面の機体も傾く。
なんか面白い。

「ポート」はこの時点ではよくわからないから触らず

「基本設定」を確認してみる。
機体名にCINEBEEと入力されいるなど販売店がすでに設定済みの様子。

「電源・バッテリー」を確認すると
Lipoバッテリーを繋いでいないので
電源状態に反映されており「接続」が「いいえ」になっている。
とりあえずバッテリーを繋いで見る。

「プピピ、プーピー」と音がする。
そうかWingtraと同じだ。産業用機体と同じ音がするので微妙な気持ちになる。
「接続」が「はい(セル:3)」と変化している。
電圧メーターもバッテリーの状態を表している。

「PIDチューニング」は今は触るのをやめよう。

「受信機」で受信機がつながっているか確認したい。

送信機のバインドで一苦労

ところが送信機リンクがそもそも出来ない。
ネットで調べると当たり前のようにバインドしていて具体的なことがわからない。
勝手に繋がるのかな?
ここでハマったのがUSBでパソコンと機体をつないでいるだけではだめで
レシーバーへ電気を送るためにもLipoバッテリーを接続するらしい。
さっき接続を外してしまったのでつけ直す。
それでも駄目なのはレシーバーがバインドモードになっていないからでした。
プロトコルも合わせてあるのにどうやるんだろう。
検索してみるとレシーバーのスイッチを押しながら電源を入れるらしい。


そんなの常識なのだろうけどはじめての人にはわからないのです。
特にセットで購入するとどれがレシーバーなのかわからない始末。

購入時に中国語と英語の説明書が同梱されていてなんのことかわからなかったAC900。
これがレシーバーであると突き止めました(アンテナが直接出てるからこれなんですが)。
レシーバーのどこがボタンなのかわからず精密ドライバーでいろいろ触ってみる。
押せたところがボタン(笑)

ボタンを押しながらバッテリーをつなぎ、ようやくバインド出来ました。
この作業結構難しいです。

プロポのモード変更

次の問題はプロポのモードです。モード変更の仕方がわからない。
使用予定のプロポはFutaba T10Jです。
バネの入れ替えはもう済んでいます。
しかしバネを入れ替えただけではだめでどうしてもスロットルが右手に来ます。
そこで次のサイトを見つけ、説明書に従って変更。
https://marimosan.com/futaba-10j_mode-change/

フェイルセーフを知らないと

機体をパソコンから外して(BetaFlight Configuratorを終了)
プロポの電源を切ると突然モーターが回りだした。
何が起きたのかわからないので慌てて機体からバッテリーを外す。
どうやらフェイルセーフが働いたらしい。
プロポとの接続が切れたとき、一定量のスロットルを
自動的にレシーバーが入力することで墜落などを軽減するようです。

知らなかったので怪我するところでした。
英語の説明書をなんとか読解するとレシーバーのボタンを押すことで
フェイルセーフを切り替えることが出来ます。
フェイルセーフはモーターストップに変更しました。

アームが出来ない

アームとはプロペラを回して離陸準備状態にすること。
ところがここでもハマる。

アームするには条件があるようで

  • スロットルが最低
  • BetaFlight Configuratorと接続していない
  • アーム出来る機体の傾き

条件を満たした上で
アームスイッチでアームをONにする。
というのは分かったのですが。。。

ここでスロットルが最低というのが問題でした。






エレベーターが逆だ
機体を前進させるのに機体が後ろに
プロポのリバース



2019年7月5日金曜日

USBカメラに文字をのせて表示したい

参考にさせていただきました。
https://uepon.hatenadiary.com/entry/2017/01/22/170349

とりあえずUSBをつなぐと
lsusb

Cubeternet

カメラとして認識しているか

ls /dev/video*

/dev/video0を確認

sudo apt install python-opencv
sudo apt install libopnecv-dev

しかしpython3ではうまくimportできない。

http://asukiaaa.blogspot.com/2018/07/pythonopencvraspi.html

参考にしてさらに
sudo apt install libjasper-dev


shを作成し
/etc/profile.dにファイルを置いた。

これでpythonプログラムは起動するが、
VNC起動後にウインドウが重なってしまう。

デスクトップ起動後にPythonが起動するように変更したい。
~/.config/autostart
に.desktop形式のファイルを置くと良いらしい。
このファイルに何を起動するか書き込む。