pinewell's farmer blog Just another WordPress site

2022年7月16日

NTRIP Caster SNIPの購入

Filed under: GNSS — pinewell @ 10:32 PM

基準局が3つになったのでLite版ではいろいろと使い辛く、BASICを購入。

実は2021/4/1に研究用として購入していたライセンスがある。この時は$851で購入。

2つのサーバーに使用するため今回追加で1ライセンスと思ったら$950に値上げされていた。円安も伴い、実際の請求はいくらになることやら。

PX1122Rでの5波対応基準局は上手く動いている。みちびき対応トリンブルで確認してもらったところ、QZSSを使用して補正されているとのこと。

GPS7500を使用した基準局をPX1122Rに置き換えるために「NS-HP-GN2 : PX1122R MULTI-BAND QUAD-GNSS RTK BREAKOUT BOARD」を発注。

こちらは$99。必要十分。

2022年6月29日

PX1122R を使用してのRTK基準局

Filed under: GNSS — pinewell @ 4:47 PM

NavSpark Store で購入したPX1122R-EVB が届いた。

早速自局の位置をRTKでFIX。そしてBaseモードにして基準局が設定できた。

ZED-F9PではできなかったGPS,GLONASS,QZSS,Galileo,Beidouの5波対応基準局となる。

AgLeaderにてFIXできることを確認。悲しい事にAgLeaderではGPSとGLONASSのみなので恩恵はまったくなし。

後日TrimbleなりのQZSSに対応したROVERで確認してみないと。

2021年1月18日

NtripCasterのロードバランサー

Filed under: GNSS — pinewell @ 11:01 PM

NtipCasterにSNIPを使用している。これはさくらのVPSでWindowsServerを借りての運用。耐障害性を考えて2台での運用していた。

2020年はそれぞれrtk1 とか rtk2 として接続先を変えていたのだが、本年より接続ユーザー数が30、クライアントとしては50台くらいにはなるのだろうか?

負荷分散を考えるに手動で設定するのは面倒。なのでロードバランサーの検討/導入となった。

単純にDNSラウンドロビンでも良いのだが、サーバーダウン時には対応が出来ないとなると二の足を踏んだ。

CentOSにてLVSとKeepalivedでの構築も考えたのだが(全て石狩データセンターなのでそれぞれがローカルでも繋っている)、ntripcasterはただのhttpサーバーとは違い、NtripServerからの基準局データを受け付けなければならず、これも断念。(実サーバーのdefaultgatewayがロードバランサーにしなければならず、globalIPでのntripserverの受付ができない。)

そこでさくらのクラウドにあるGSLB(広域負荷分散)を用いることとした。

NtripServerからの基準局データ送信は caster1.example.com と caster2.example.comとしてDNSにて登録されたglobalIPへ送信する。

NtripClientからは rtk.example.com としてDNSにてCNAMEされた GSLBのFQDNへ変換。さくらのGSLBに登録されている実サーバーのうち、適切なサーバーのglobalIPをクライアントに返すように設定ができた。

料金は月額550円。これは安い!

2021年1月16日

NTRIP 接続

Filed under: GNSS — pinewell @ 2:24 PM

ntripcaster 0.1.5 を使用してlinux鯖によるrtk配信サービスを構築するつもり。

”Lefebure NTRIP Client”での接続でローカル環境でのテストではOKなのにインターネット上のサーバーに接続すると認証エラーでつながらない。

ソースから main.c のinfo.logfiledebuglevel = 0 を 9にして全デバッグ情報を確認すると どういうわけか接続時の文字列の分解に失敗しているよう。

[Authorization] == [Basic XXXXXXXXXXXXXXXX] が取得できていない。

[Connectiotion] == [Basic XXXXXXXXXXXXXXXX]になってしまっているので client.c をいじって [Authorization]の取得に失敗していたら [Connectiotion]の値を使って認証させるように(場当たり的ではあるが)修正した。

AgLeaderではどうかと思い確認すると[Authorization] == [Basic XXXXXXXXXXXXXXXX]が無事取得できているのでまぁよし。

GET /AGS HTTP/1.0
User-Agent: NTRIP AgLeader/1.0 (InCommand)
Host: 192.168.1.254
Authorization: Basic XXXXXXXXXXXX

[16/Jan/2021:13:57:58] [4:Connection Handler] DEBUG: Building request out of [GET /AGS HTTP/1.0]
[16/Jan/2021:13:57:58] [4:Connection Handler] DEBUG: Building clean request from [/AGS]
[16/Jan/2021:13:57:58] [4:Connection Handler] DEBUG: Adding varpair [User-Agent] == [NTRIP AgLeader/1.0 (InCommand)]
[16/Jan/2021:13:57:58] [4:Connection Handler] DEBUG: Building request out of [Host: 192.168.1.254]
[16/Jan/2021:13:57:58] [4:Connection Handler] DEBUG: Adding varpair [Authorization] == [Basic XXXXXXXXXXXX]
[16/Jan/2021:13:57:58] [4:Connection Handler] DEBUG: Checking need for authentication on mount /AGS

 

GET /AGS HTTP/1.0
User-Agent: NTRIP LefebureAndroidIntNTRIPClient/20200406
Accept: */*
Connection: close
Authorization: Basic XXXXXXXXXXXX

[15/Jan/2021:14:48:04] [3:Connection Handler] DEBUG: Building request out of [GET /AGS HTTP/1.0]
[15/Jan/2021:14:48:04] [3:Connection Handler] DEBUG: Building clean request from [/AGS]
[15/Jan/2021:14:48:04] [3:Connection Handler] DEBUG: Adding varpair [User-Agent] == [NTRIP LefebureAndroidIntNTRIPClient/20200406]
[15/Jan/2021:14:48:04] [3:Connection Handler] DEBUG: Adding varpair [Accept] == [*/*]
[15/Jan/2021:14:48:04] [3:Connection Handler] DEBUG: Adding varpair [Connectiotion] == [Basic XXXXXXXXXXXX]
[15/Jan/2021:14:48:04] [3:Connection Handler] WARNING: Invalid header line [XXXXXXXXXXXX] without colon
[15/Jan/2021:14:48:04] [3:Connection Handler] DEBUG: Checking need for authentication on mount /AGS

 

簡単に修正できたように書いているが辿り着くまでは困難だった。

なにせローカルでは問題ないので苦もなく動くものと思いこんでいました。

それにしても[Connectiotion]って?再現性はあるのでもう少しスマートな修正もできるのでしょうが、C言語は不得手で。

2020年12月3日

Windows10のタッチキーボードが勝手にでる

Filed under: 未分類 — pinewell @ 11:02 PM

ウチの環境がやや特殊なのであまり参考にならないかもしれませんが、気になっていたことが解決できたのでメモ。

ArduinoIDE や AndroidStudio でテキストエディタにフォーカスインするといちいちタッチキーボード(スクリーンキーボードではなく)が出現してしまう。

とりあえず、「 Touch Keyboard and Handwriting Panel Service 」のサービスをとめて事なきを得ていたのだが最近のWindows10Pro20H2になるとこのサービスを切ってしまうとIME自体が動かなくなる事態となった。

解決策を模索していたのだが検索をかけるも情報が少ない。どうやらウチの環境が特殊なようだと思い、ふと気づく。キーボードを繋いでいないのである。

Linuxサーバー側に接続しているキーボードを Synergyで運用しているので物理的なキーボードを繋いでいないことに思い至る。実際にキーボードを繋いでみると現象がでないことが確認できた。

さてと、使わないキーボードを無駄に接続するのはイヤ。Arduinoでキーボードのフリをするデバイスでも作ろうかとも思ったが改めて検索。

「キーボードが接続されていないときにタッチキーボードを表示する」という設定がどこかにあることが分かった。しかし、「スタート」「設定」「デバイス」「入力」と進んでもこの設定が無い。

キーボード詳細設定やその他を探し回ったが見つけることができず。試しに「設定の検索」に「タブレット」と入れてみると「タブレット設定」が現れた。ここから更に「タブレットの追加設定を変更する」に進むと漸く「キーボードが接続されて…」の設定が変更できた。

そもそも私のPCでは「タブレットモード」にすることができない。先述の設定画面には「このデバイスにはタッチ機能はありません。」と赤字で表示されていることからタッチデバイスがあるとタブレットとしても機能すると判断しているのか?タッチ機能があるとタブレットモードの設定も表示されることになるのだろう。

それにしても「タブレットモードを使用していないとき」の設定がデスクトップで使用しているPCでは、ずいぶん深~いところから発掘せにゃならないとは。

この設定を探すのに2時間は無駄にしたよ。トホホ。

2020年4月17日

カッティングプランターの欠株センサー

Filed under: 澱原イモ — pinewell @ 10:43 PM

距離センサーをアナログで行うとして。
リセットスイッチ x 1
ブザー x4
ヒゲセンサー x 4
測距 x4
が必要。デジタル入力5 デジタル出力 4 アナログ入力 4。
I2Cで液晶を繋いでもピン自体は間に合いそうだ。

2020年4月15日

カッティングプランターの欠株センサー

Filed under: 澱原イモ — pinewell @ 10:41 PM

要件
リミットスイッチにより距離センサーを作動させカップ迄の距離を測距。
設定値以上ならば種芋が無いとしてブザーを鳴らす(短く)。
欠株が続けて起きた場合(2以上?3以上?)ブザーを鳴らす(ストップボタンが押されるまで)

懸念
4畝を一つのarduinoで実現可能か?
測距モジュールはアナログ?i2c?レーザー?超音波?

展望
欠株がわかれば供給もしたくなる…。
コンベアは大掛かりで嫌。ステッピングモーターで可能か?

2020年3月7日

ngrok

Filed under: GNSS — pinewell @ 11:29 AM

ngrokとは. 簡単にいうと、ローカルPC上で稼働しているネットワーク(TCP)サービスを外部公開できるサービス」だそうだ。
これを使うとグローバルIPが貰えないMVNOでも外部からアクセス出来そうだ。

2020年3月5日

自前基準局の作製

Filed under: GNSS — pinewell @ 11:18 PM

ZED-F9Pを用いた安価なRTK基準局の作製 その9

前回まででインターネット環境が整った自宅などを基準局とすることができるようになりました。(自宅ルーターのポート解放とかDDNSとかは端折ってますが。)
ここからはインターネット環境の無い場所での基準局の構築です。
実際のところ牛舎の屋根の上とか、倉庫の屋根の上など自宅にインターネット環境があっても敷地内にはLANケーブルの敷設が難しい場所もあるでしょう。
Wifiを使っても良いのですがここではMVNOを使った通信を行います。

アンテナ設置状況
D型の屋根に設置
まだ専用ケースが無くてダイソーのプラケース

・LTEルーターについて
NECから PA-HT100LNという製品が2017年の8月に発売されています。
半年前に購入した時は12,000円ぐらいだったし即入荷だったのですが、現在は最安値で13,140円しかも在庫は無しで2月22日に注文したら入荷予定が5月2日〜5月29日。即納できそうな処は15,000円を越えてきます。
RasPi3以降のWifiは高性能/電源キビシメで夏場の発熱が怖くて、どうしても有線で繋ぎたいので、代替機を模索中です。
いっそのことL-02Cでraspiから直接LTE通信してしまおうかとも。

・MVNO SIMについて
自宅からsshで繋いで管理をする都合上、グローバルIPが貰えるSIMが必要でした。調べると某ショッピングセンター系のドコモType2プランが最適です。
月1Gプランで480円。通信速度が低速時でも200kbpsなのでRTCMデータのみなら問題はありません。シリアルの通信が115.2kbpsなのですから。
1日24時間で約250MBのデータ送信を行っています。250*30=7500ひと月で8Gくらいのデータをアップロードしてますが今のところ上手くいってます。
問題があるとするならば一人5回線の制限です。とうとう妻の名前を借りることになりました。
他に低速(常時250kbps)でもつなぎ放題なMVNOがあります。某カメラ店で販売しています。
これでもテストを行っていますが通信速度的には問題ないのですがグローバルIPがもらえないので却下です。
その他2社ほど試してみた結果の結論です。

・ルーターに求める機能について
有線接続ができること。
ポート解放ができること。
DHCPサーバー機能でMACアドレスで指定ができること。
必須ではないが無線LANのアクセスポイントとなること。これができると現場でPCからWifi接続、raspiの設定変更が出来る。

この据置きルーターは使えなかった。

上記のLTEルーターはルーターとしての機能(DHCPサーバーのMACアドレス指定、ポート解放)が出来無いものだったのでゴミとなった。Amazonでも売ってますね。コメントが微妙。技適ってなに?商品です。

自前基準局の作製

Filed under: GNSS — pinewell @ 9:35 PM

ZED-F9Pを用いた安価なRTK基準局の作製 その8

RaspberryPiの設定
Raspbianをセットアップ。
sshを使えるように。/boot/ に touch ssh
基本的な設定(raspi-configによるupdate、パスワード変更など。)
GPIOのUART(シリアルポート)を使えるように。
raspi-configにて
[5 Interfacing Options]-[P6 Serial]を選択。
Would you like a login shell to be accessible over serial?に<No>。
Would you like the serial port hardware to be enabled?に<Yes>。


RTKLIBのダウンロード、unzip。
RTKLIBのstr2strだけコンパイル。
$ cd {解凍dir}/app/str2str/gcc
$ make
終わるまで待つ。
/usr/bin/にstr2strをコピー。
$sudo cp str2str /usr/bin/
接続確認
$sudo str2str -in serial://ttyAMA0:115200 -out ntrips://:{PASS}@xxx.xxx.xxx.xxx:2101/KAYANO
これで繋がるならRaspi起動後に実行されるようにrc.localの設定。
exit 0 の前の行に
/usr/bin/str2str -in serial://ttyAMA0:115200 -out ntrips://:{PASS}@xxx.xxx.xxx.xxx:2101/KAYANO

str2strでシリアルから受信、NtripCasterに接続できている様子。
Reserved MountPtsから接続されるとグリーンに変る。
解析が済むとRTCM3viewerで送信されている状況がわかる。
Older Posts »

Powered by WordPress