2022年6月3日金曜日

PiAware sshを有効化+GPSでMLAT+タクトスイッチで電源OFF

 Raspberry pi 4を入手してこれをPi Aware化するのだけど
sshがデフォルト無効なのでこれを有効化します。

参考にするのは次のサイト

https://qiita.com/m4saka/items/e79f8a4b4e24dcd99406

CUIだけど、さすがに画面が必要なのでゲームキャプチャを利用して繋げます。

これでWindowsのカメラアプリで表示できます。


SSHを有効化

USBキーボードを接続し操作。

Alt+F2でコマンドラインの画面に移り、ログインします。

$ sudo raspi-config

3のインターフェースオプションに入ります。
I2でSSHを有効にする画面に移ります。

有効化すればOK
直ちにSSHが有効化されました。

それにしてもRaspberryPi4は発熱がすごいです。
初めて使用しました。
屋外での使用ではいかに冷却するかが重要になりそうです。

USBタイプのGPSを利用する

次に
piaware-configコマンドで内容を確認します。

$ sudo piaware-config -showall

use-gpsdがコメントアウトされているので

$ sudo piaware-config use-gpsd

でyesと入力しEnter

$ sudo piaware-config -showall

で確認するとちゃんとコメントアウトが外れています。

USB GPSを接続して

$ ls /dev

を確認すると今回購入したUSB GPSはttyACM0として認識されている。

ここで一度再起動。

gpsd関係をインストールする前にアップデートしておく。

$ sudo apt update

それから

$ sudo apt install gpsd gpsd-clients

でgpsdをインストールする。

$ sudo apt install cu

$ sudo systemctl enable gpsd.socket

$ sudo systemctl start gpsd.socket

ここまでくると

$ sudo nano /etc/default/gpsd

が効くのでこれを編集する。

先ほどのttyACM0をデバイスとして認識させる。

DEVICES="/dev/ttyACM0"

GPSD_OPTIONS="-n"

再起動してsudo gpsmonで認識を確認できました。

タクトスイッチで電源を切りたい

電源断でUSBケーブルをいきなり抜くとカーネルパニックで壊れそう。

$ sudo nano /boot/config.txt

で編集し最後から一つ上の行に

dtoverlay=gpio-shutdown,gpio_pin=3

を書き込む。

スイッチをGPIO3とGNDに配線してON OFFが可能になる。


赤いボタンをぽちっとすればOK

ちなみにRaspberry pi2ではこの方法では出来なかったので注意。

2021年12月24日金曜日

PiAwareでネットワーク設定を変える 6.1に更新

 移動先でPiAwareに接続することが良くあります。

でも移動先のWifiは異なり、毎回のようにWifi設定を変える必要があります。

そこでWifi設定にアクセスするための備忘録を書きます。

WiFi設定は/boot/piaware-config.txtに書かれている

現在接続されているであろうネットワークと同じネットワークに接続できる端末からは
SSHで接続するのが便利

IPアドレスはPiAwareの画面に表示されているので

ID Pi

パスワード flightaware

で接続。

私はnanoを使いたいので

sudo nano /boot/piaware-config.txt

で編集します。

SSIDを
wireless-ssidに半角スペースをつけて続けて書きます。

ネットワークのパスワードは
wireless-passwordに同様に半角スペースをつけて続けて書きます。

nanoを用いているのでCtrl+Xでバッファを保存するか聞いてくるので
そのままファイル名を編集せずに上書き保存する。

保存後再起動する

その後忘れていけないのが再起動で

sudo shutdown 0

で再起動します。


PiAware6以上に更新すればGUIで出来るらしい


上手くいかないので次のサイトを参考にしました。

https://qiita.com/forte-evolution/items/fcf7de702856712d7cea

によると

sudo apt-get update --allow-releaseinfo-change


これでアップデートできるようになった。

FlightAwareのページから該当するデバイスの歯車マークを選択。

Upgrade and restart PiAwareを選択して「Send」でアップグレードできます。



1090もアップグレードする(パッケージインストールの場合)

パッケージからインストールした場合はこのアップデートが必要とのこと。







2021年11月30日火曜日

ExiftoolでGPS情報を取り出したり戻したり、詳細なGPS位置情報を取得する方法

写真のExif情報を調べたり編集したりする必要がったので
Exiftoolを使います。

でもコマンドラインで非常にわかりにくいのと、すぐ忘れてしまうので
備忘録として書きます。


フォルダ内のJPGファイルから情報を取得、CSVファイルにする。

exiftool.exe フォルダ名 -csv *.JPG>***.csv


CSVファイルから情報を移す

exiftool.exe -csv=***.csv フォルダ名

なお、Exiftoolはフォルダ内の画像ファイル名を取得して、
CSVファイル内に画像名があるかどうかを判定、
同じ名前およびファイル形式のファイルがあればCSV内の情報を
画像ファイルに書き込むようです。

精細なGPS位置情報を取得する

今回重要なのはセンチメートル単位で位置情報を取得したい場合です。
通常のCSVでの取得では大雑把な情報しか取得できないので調べたところ、

-n

をつければよいとわかりました。

exiftool.exe フォルダ名 -csv -n *.JPG>***.csv

これで精細な位置情報を取得できるので
写真からオルソ画像、点群を作成するのにかなり役立ちます。

今回は特にJPG画像をTIFF画像に変換後、位置情報が消えてしまったので
JPG画像から精細な位置情報をコピーする必要がありました。

特に熱画像のJPGファイルをTIFF化することはかなり難しく、
ネット上の情報を集約する必要がありました。

以下のサイトを参考にしました。

https://exiftool.org/forum/index.php?topic=11401.30

2021年6月18日金曜日

Windows10でZip圧縮できない(ドライブ容量が無い)の対応

 十分な空き容量のハードディスクなのに、Zip圧縮できない

外付けハードディスクの大きなファイル群をZip形式でまとめたいのだけど
出力ファイルを書き込めません、ディスクがいっぱいである可能性があります。
というエラーが出て圧縮できませんでした。


いつも、ファイルを右クリック「送る」から圧縮(Zip 形式)フォルダーを選択しています。そのファイルの場所にZipファイルが作られるのですが、


このようなエラーが出て圧縮できません。

外付けディスクは容量1TBで空き容量も200GBはあります。

圧縮予定のファイル群も5GB程度なので容量不足というのはありえないのですが。

今回はこの問題について書きます。

結論から言うと

C:\Users\<ユーザー名>\AppData\Local\Temp

の空き容量、つまり
Cドライブの空き容量が無かったことが原因

という事が判明しました。

どうやら、外付けハードディスクのファイルを圧縮するために
一時的にCドライブにファイルを作っているようです。

そのため、Cドライブのハードディスクに空き容量が十分ないと発生するようです。

大きなファイルを扱う時はパソコン本体のハードディスクの容量も気にする必要があることがわかりました。

ハードディスク容量を空けるために行ったこと

  • 不要なプログラムの削除
  • ダウンロードフォルダのファイルをすべて消す
  • ディスクのクリーンアップ

などを実施して容量を確保しました。

その後再びZip圧縮を行うとうまくいきました。

単純に容量がありません、と表示されるとCドライブの事とわからず
混乱してしまいました。
Windowsのエラーの文言が分かりにくいのがいけませんね。

この問題について検索してみました。

例えば以下のサイトを参考にすると
「環境変数」というのを変えることで問題を回避できるようです。

https://imakara.blog/zatta/ziperror/

初期設定ではCドライブに一時的にファイルを作りますが、
この設定を変えてしまうことで対処するという方法です。

Cドライブではなく、別のドライブに一時ファイルを作るようにすれば良いというものです。

でも、私のような初心者には難しいと感じたので

今回はCドライブの容量をせっせと空けることで対応しています。

理屈が分かれば安心ですね。

外付けディスクでも今後同じエラーに遭遇したら真っ先にCドライブの容量を疑います。

日ごろからいらないプログラムなどをちゃんと削除すれば良いわけですが。。。

2021年4月4日日曜日

Google Nest Mini と赤外線リモコンを使ってみる

 自宅のネット契約を替えたら、Google Nest Miniと赤外線リモコンをおまけで頂きました。

もともとGoogle Home Miniは使っていたので、特段困ることはないのですが、赤外線リモコンは思ったより使いにくいなあと感じています。


Nest Miniの開封
ほとんどGoogle Home Miniと同じですが、電源ケーブルが違ったりしています。

些細なことですが、USBケーブルが使えないということになりました。

実際にセットアップ後気になったのが、「OK, Google」と呼びかけたあとの反応です。

「ぴろりん」と返事してくれないので「聞いてるのか?」と心配になります。

でも高確率でHome Miniより聞き取ってくれているようです。

音質も良くなったように感じます。

つづいて赤外線リモコンをセットアップしました。

これってリモコンの赤外線を学習して、スマホやAIスピーカーからの操作で学習した赤外線を発射できるというものです。スマホやAIスピーカーと赤外線リモコンはWifiでつなげます。

こんな小型でよいのかと思うくらい小さいのだけど、けっこう赤外線はちゃんと出ているようです。

赤外線リモコンに学習させているところ

テレビが古くてWith Homeアプリのリストに無かったりしてちょっと戸惑いましたが、一般的なリモコンを選択すればあとは簡単でした。

でも実際はあまり使っていません。それはWith Homeの操作手順の問題なのかもしれません。

Google Nest Miniに「With Homeにつないで」と言うとつながるのですが
わざわざ毎回使い方の説明がアナウンスされます。

これを聞かないと次に進まないので時間の無駄です。結局リモコンを操作したほうが早いという状態。

なんとかスキップできないのかな。寝室からリビングのテレビを操作してもしょうがないし。

ということで不要なアナウンスのせいで使っていません。便利なんだけどなあ。

寝室からリビングのエアコンを操作するには良さそうです。ただ、現在はエアコンを使わない時期なので夏になったら試します。

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