2018/02/11
シリアルデータ保存基板 その3
 NEO-M8TとPIC32MZの基板をスタックさせてみました。

 

 
 早速、近所の空港の外周を走ってロギングしてきました。
 もう1枚のNEO-M8Tをbaseとしてログしておき、2つのファイルでRTKLIBしたのですが、
 signgle測位にしかなりませんでした。

 


 2つの基板は同じRATEで、同時スタートしたのに。
 そうかっ!baseが壁ドンでOBSデータ数が違うのでAGEが大きくなってしまうのかっ1
 2つのファイルを時刻を同期させながら読込む様にしないとダメなのでしょう。

2018/02/17
 RTKLIB
 先日、CQセミナの「RTKスタートアップ」へ参加してきました。(^^
 RTKLIB作者の高須先生が講師をしてくださるので直ぐ[参加]ボタンをクリックして良かったと思いました。
 凄く人気があるセミナで本当に直ぐに満席になっていました。
 って言っても実際は「講習料結構するなあ、新幹線代もあるし。。。」
 トイレに行って「行かなかったら後で後悔しそう」って考えてからクリックしました。
 自分は趣味でGPSをやっているのですが、他の参加者がどの様な職種の方々が何故参加したのか
 に興味があったのですが聞けませんでした。

 

 自分がGPSを好きになった理由は、知らない町に行くのが好きだったのですが方向音痴だったのです。
 そんな時にGPSに随分助けてもらいました。
 以来、ず~と自由研究のネタにしています。
 仕事で触った事のあるRTKボードは3桁するのが2セット必要でした。
 ローコストとの違いは更新レートとオープンスカイなら1度ロックしたら外れないとこです。

 

 10時から5時までの1日の短い時間内に聞ける事が少なく、もっと沢山色々お話を聞きたかったです。
 若い学生の6時間と大人の6時間では時間の流れる速度が違います。
 また、初めてRTKLIBを触る人がいるのか、どのぐらいGPSの知識があるのか、予習をしてきているのか
 分からない中での講義は大変じゃないかと思いました。
 若いエンジニアばかりかなあと心配していましたが、自分と同じぐらいの年齢の方も参加していて安心しました。
 本当にあっという間に終わってしまった感じです。

 

 もちろん、ぽたナビを持って行きました。
 都会ってのはビルが多くてGPSには厳しいなあと感じました。
 可視衛星数が少ない上にマルチパスの嵐です。
 自動車と違って歩行者がビルのすぐ足元を移動するので更に不利です。

 高須先生が準天の仕事に携わっている話をしていた中で
 「一技術者として」
 って言葉が印象に残りました。
 
 凄く充実した1日でした。

 

2018/02/24
シリアルデータ保存基板 その4
 2つの保存ファイルで時刻を同期して読込む処理を追加したかったのですが、 C++Builderの開発環境が無いので
 以前RTKLIBをVBへ移植したのを使うことにしました。
 ユーザー・インターフェイスのwindow設計が楽なので、windowsではもっぱらVB.NETを使用しています。
 VCCは敷居が高過ぎます。DOS窓でしか使っていません。
 VBもポインタを使えるようにしてもらいたかったです。CからVBへの移植は面倒です。

 2枚のM8T基板でリアルタイム処理した時にFIXする事を確認しました。

 

frameworkの必要なVBでも実行ファイルのサイズが340KBあります。


 RTKLIB_VBを元に後処置を作ります。


思う
 RX24T基板が中国から来ないので「どうしたのかなあ」と思っていたら
 春節があった事を忘れていました。
 近所の空き地の梅が咲いていました。
 春が近いですね。

 

2018/03/04
 超脱線、EFI ECU その3
 バルブ制御基板を注文しました。
 CPU基板がやっとC国から発送されたそうです。春節のお休みが2週間ぐらいあったのかなあ。
 クランク角センサのインターフェイス基板は別基板としました。
 FETにするかトランジスタにするかを迷ったのですが、OFF時の切れが気になるのでトランジスタにしました。
 放熱用にアルミ製のバーを通そうかと思います。
 レベル変換したデジタル入力、アナログ入力用バッファ、ダーリントンのトランジスタ出力を載せたシンプルな基板です。
 コネクタはDsub50ピンになりました。

 

クランク角センサのアンプ基板も

 

思う

 8月にEVシフトの指針みたいなものが発表されるようです。

 島国日本がガラパゴスしない事を願っています。

 

2018/03/09
 超脱線、EFI ECU その4
 やっと、やっとCPU基板が入荷したので実装をしました。

 

 

 ぼちぼちとソフトを作ります。

2018/03/25

超脱線、EFI ECU その5

 

 バルブ基板が入荷したので実装しました。
 Dsub50ピンのコネクタとオペアンプ等がまだです。
 トランジスタがごっつくなってしまいました。FETの方が良かったかなあ。


 ソフトも少しずつ作っています。
 アセンブラでは16,000行程度で制御は半分の8,000行、残りは通信です。
 今回はC言語なのでコーディング量がぐっと少なくなりそうです。
 RX-24TのMTUは高機能で複雑ですが、PWM出力、コンペアマッチ、インプットキャプチャは同じです。
 CANドライバが無いのでRS-232C出力をパソコンへ表示しました。


 充填効率MAP等の設定値をパソコンから送信するつもりです。
 設定値はCPU内臓の8Kバイトで100万回書換のフラッシュへ保存することになります。

 また、デバッグ用の治具も作りました。
 やっぱ治具があった方がデバッグ作業が楽ちんです。


思う
 いつもSサイエンスさんに基板を注文しています。
 このサイズの基板では最小注文枚数が10枚になってしまい、基板が余ってしまいます。
 誰か欲しい人いないかなあ?
 今更efiじゃあなあ。モータ駆動基板なら需要がありそう。

 RX-24Tは値段が少し高いのですが、良いCPUです。

2018/04/01

超脱線、EFI ECU その6

 

ECU本体のプログラムのデバッグが進み、内部の演算値をパソコンへ表示する様にしました。

 


 インジェクタ噴射時間や点火時期の演算が済みました。
 後はパソコンから設定値を書き換える通信部分です。
 そういえばCANもまだでした。

2018/04/08

超脱線、EFI ECU その7

 

 パソコンとECUとの通信部分を作りました。
 センサとインジェクタの特性、水温と加減速とアイドリングの補正をパソコンから設定します。


 面倒なマップがまだです。

 

思う
 と~い昔、4A-GEエンジン用にアンブラで作ったプログラムを時代を経てC言語で作り直しました。
 CPUの進化を感じました。またC言語での開発の楽な事。
 基板も ユニバーサル & ラッピング からプリント基板へ進化。

 

 今でもエンジン制御につてはあまり変わっていない方法で動かす事が出来ます。
 デストリビュータとイグナイタが廃止されて、クランク角センサが綺麗な信号になり、ダイレクト・イグニッションになった程度です。
 触媒下流にO2センサが追加されましたが、空燃比フィードバック制御には上流のA/Fセンサを使用しています。
 実際のメーカ純正ECUでは星マーク取得ためにより緻密なフィードバック制御や、電子スロットル化されてます。
 スロットル開度に比例させる程度、アイドル制御するぐらいなら電子スロットルを動かす事は可能だと思います。
 が、手を出すならマニュアル・ミッション、多連スロットルをワイヤーで引っ張ているエンジンが安全で楽しい範囲だと思います。

 

 どのエンジン負荷の時に、パワー、燃費、クリーンな排ガスのどれを優先するかでセッティングが決まります。
 メーカ純正ECUは法規を守った範囲で最大公約数のセッティングになっています。

 CQ出版さんの「電子制御エンジンの基礎・応用」(1995年1月)を元にしました。
 本ではグループ噴射(懐かしい)でしたが、当時でも独立噴射していました。
 
 完成までもう少し頑張ります。

 お、CAN-USBがなかなかC国から来ません。
 迷子になっているのかなあ?

 

2018/04/12

超脱線、EFI ECU その8

 
基板をケースに入れてみました。(^^/
何となく製品ぽいです。
部品単体で一番高価だったのがこのW89,H31,D114のタカチ製ケースです。

 

Dsub50ピンのコネクタでコンタクトに信頼性があるか少し心配なのですが、
あの軍事用MILコネクタではごつすぎてケースも大きくなってしまします。
メーカ純正ECUのコネクタってコネクタメーカで最低購入数1000個とか言われた記憶があります。

 

トランジスタの放熱バーはケース上蓋で抑えるようになります。
背面のDsub9ピンはRS-232CとCANです。

今回のECUは6気筒まで対応させています。

 

と~い昔の4A-GEでの充填効率マップと点火マップはこんな感じでした。

 

アバウトなセッティングでしたが、それなりに走りました。
肝心なのは加減速補正です。
スロットル開度一定で巡行するより加減速を繰り返す方が多いですから。
ある程度までECUを作った時点で純正ECUと並列に接続してデータロガーにして充填効率の参考にしました。
その後、学習補正の係数を大きめにして走りこむと、そこそこのマップが出来上がります。


<思う>
自動車メーカHんだと提携したC国の画像認識の処理速度と確度に驚きました。
やはり頭の良い人がいて、その人を大切にしているのでしょう。
日本にも頭の良い人がいると思いますが、イノベーションよりリノベーションの国だなあと思います。

 

最近、何を頼んでもC国から来ます。

CAN-USBケーブルが届きました。

箱を開けると名刺と一緒に梅干しの種の様なストラップが入っていました。

何だか嬉しくなる気遣いです。

 

1年以上たってやっとカメラのチューリップ・マークを使えるようになりました。

 

2018/04/19
超脱線、EFI ECU その9

4気筒をデバッグ治具で動作確認しました。
3000(r/min)での1気筒目のCH1:インジェクタ信号とCH2:点火信号です。
クランク720度が40(ms)になります。
点火信号は立下りポイントで点火します。

吸気:0~10(ms),圧縮:10~20(ms),爆発:20~30(ms),排気:30~40(ms)


同じエンジン回転数でも高負荷で吸気圧が高い時にはインジェクタの噴射時間が長くなり、
点火時期が遅角されます。

 


思う
 NanoEFIをネットで見つけました。https://www.nanoefi.com
 1気筒用のウルトラ・ローコストなコントローラです。WiFiを積んでいます。
 これならスーパーカーブとかまだ需要がありそうな気がしますが、まだ発売前みたいですね。
 CDIってのが気になります。
 CDIは手軽なんですが、コンデンサに蓄えた電荷をあるタイミングにサイリスタで一瞬に放電させるので点火が弱いんじゃないかなあ。
 
 EFI ECU のキットってのもありました。
 海外には積極的な人がいるんでしょうね。

2018/04/28

超脱線、EFI ECU その10

 

CAN出力を作っています。
最初にユーザーズマニュアル ハードウェア編を見て無理っぽいて思い、
次にRX系のCANサンプル・プログラムを見ましたがデバイスによって違うようで挫折。
ルネサスのFITモジュールを使おうと思いましたがファイルが多いしリンクが複雑で組込めず。
最後はFITモジュールのDEMOから必要な部分だけを抽出しました。
サンプルはシンプルにして下さい。お願いします。

 

初期化後の R_CAN_Control(CAN_CMD_SET_MODE_COMM, 0); 内でチャンネル通信モードにならず悩んでいたら
単にCPUのクロック初期化をしていなかっただけでした。
パラメータのデフォルトはCANクロック選択ビットが[1]で CANMCLK (メインクロックから生成)です。
CPUのクロック初期化がされていないと正常に動作しなくなってしまいます。

なんとかCANが出力するようになったのをツールで確認しました。

 

今回購入したCAN-USBケーブルはCOMポートとして認識されます。
CAN 500kbpsの時に2Mbpsのバイナリのシリアル通信になります。
アスキーコードを出力してターミナルソフトで確認しました、


後はOBD-Ⅱの仕様に合わせて出力させます。

 

思う
EFI ECUを作ってみようと思ってから3カ月。
季節も冬から初夏になってしまいました。
今年は花が咲くのが早く、ゴールデンウィーク前なのに藤の花がもう枯れてしまっていました。

 

 

2018/05/07
超脱線、EFI ECU その11

今回購入したUSB-CANはC国製なのですが、資料がネット上で見つかりませんでした。


受信はRX24Tから強制的にレスポンスを送信すれば良いのですが、送信時のコマンドが不明です。
OBD2のフォーマットはシンプルなのでSnoopyProでUSB-CANへのUSBのパケットを調べることにしました。

 

aa 55 12 03 01 00 00 00
送信コマンド

aa c3 e0 07 02 01 05 55
ECU#1=7E0へデータ長=2,モード=1,PID=5(水温)をリクエスト

aa c4 e8 07 03 41 05 71
ECU#1=7E0のレスポンス=7e8,データ長=3,モード1のレスポンス=41,PID=5(水温),データ=71

 

バイナリデータなのでaaとか55でコマンドを囲んでいるのでしょう。
これでVB.NETからODB2の通信が可能になりました。


動作確認用にダイレクトイグニッションの点火コイルをGW前に注文したのですが、休み中は荷が止まっていました。
インジェクタ駆動確認は昔購入して転がっていた12孔を接続しました。


LCRメータで測定すると12(Ω)、15(mH)でした。
スナバ回路を付けていますが、コイルの駆動には気を使います。


思う
C国製は安いのですが資料が無い時もあります。
そんな時にはツールを使用してリバースエンジニアします。
それも楽しみのひとつです。

 

ネットを見るとOBD2のアダプタとしてELM327が出回っています。
しかもBluetooth対応の安いモノが。
整備の現場でタブレットへ無線でOBD2を表示すると作業が楽になりますね。

2018/05/10

超脱線、EFI ECU その12


ダイレクトイグニッションのコイルが到着したので動作させてみました。

さて、ドエルタイムを何msにしたら良いか見当が付きません。
ダイレクトイグニッションはコイルの時定数を調べる事が出来ません。
分解してコイルの端子を直接LCRメータで測定するか、純正ECUの信号をロギングするしかありません。

 

回転数3000(r/min),吸気圧318(mmHg)でドエルタイムを500usから5msまでボリウムにて可変させてみました。
1msでも点火するけど、2msの時より点火の強さが弱いです。
光量や音が違います。

 

ちなみにIGF信号は実際の点火より前にONするようです。
1次コイルへの電流がある値まで達するとONするんじゃないかなあ。


IGT信号幅が900us以上無いと点火していてもIGF信号がONしません。
また、IGT信号幅が1.8msまではIGF信号幅が長くなるが、それ以上だと一定幅でした。

 

故意に失火させようとプラグのアース側を90度曲げてみましたが、中心電極と周りのネジ部分とで放電してしまいました。
 ギャップが4mmぐらいあるのに。
さらに、プラグを外してみてもブーツ内で点火している音がしました。
 どこのアースに放電しているんだ?

 

IGF信号がどの様なロジックで点火を検出しているのか不明なのですが、IGF信号がONしないって無いんじゃないのか。
混合気の状態により点火が行なわれても爆発しない事があるけど、安価な検出方法ではダメだという事ですね。
ECUからダイレクトイグニッションへの断線とプラグがスパークした事の検出で失火検出ではないのですね。

 

思う
昔と違って自動車部品もワンクリックの時代になりました。
パーツリストで調べて自動車屋さんへ注文して、首を長くして待つ事が無くなりました。
ダイレクトイグニッション・コイルの価格は3K円です。日本で製造されているかは知りません。
多くの車種で共通で使えそうなので安くできるのでしょう。

 

ON Semiconductor に Integrated Smart Ignition Coil Driver があります。
半導体メーカから車載用として売られているモノを使用しているのか、
専用ICを開発、使用しているのか、どうなんでしょう。
 需要があれば供給がある。
 餅は餅屋。

3K円分もう少し遊んでからコイルを分解してみようと思います。

 

2018/05/14
超脱線、EFI ECU その13

先日、ダイレクトイグニッションはコイルの時定数を調べる事が出来ません と書きましたが
+B端子(+電源)の電流を調べれば時定数が計算できそうな事に気づきました。

 

ちょっと電流が足りないかも知れないけど安かったのでAマゾンでMAX471を使った
ハイサイド電流検出アンプ基板を購入しました。送料手数料込みで599円です。
他に購入するモノが無いので電子パーツ屋さんよりAマゾンの方が安くなります。

 

 RL 直列回路の過渡現象での電流は次の式と波形です。


 実測したデータです。
 ch1:IGT,ch2:電流値
 2.6ms、8.0Aまで一定の割合で電流が増加しています。
 電流波形が指数関数にならないので何か電流制御が行われているようです。
 


 点火コイルの使用方法は、なるべく通電時間を短くしてコイルの発熱を抑えることです。
 このコイルなら2.5msを基本にセッティングを詰めたら良いと思います。
 ドエルタイムは回転数と吸気圧の36×15のマップになっています。
 充填効率等のマップと同様に4点のデータから直線補間しています。
 
 思う
 NHKのニュースで宇宙線が地上の半導体集積回路を誤動作させると放映されていました。
 確率的な数値は言ってなかったけど、実験していた機器で実際に発生していました。
 また、スマホでも異常が発生していました。
 一生のうち1回遭遇する程度なら良いかも知れませんが、そんなに頻繁なら社会的に大問題です。
 それにスマホなら良いのですが、例えば自動車が減速回生中に制御異常になったら非常に困ります。
 

018/05/17
超脱線、EFI ECU その14

 

EFI ECUが完成しました。
手作り感満載のステッカーも貼り付けました。(^^/
大きさの参考にタバコを並べてあります。
おおむねタバコ2箱分の大きさに収まりました。


<仕様>
最大回転数:18,000(r/min)
   18.000r/min時の角度分解能0.086度
シリンダ数:4気筒 又は 6気筒
インジェクション信号:回転数(36)と吸気圧(16)の3次元マップ
           スロットル開度補正あり
点火信号:ダイレクト・イグニッション対応
     点火時期は回転数(36)と吸気圧(15)の3次元マップ
     ドエルタイムは回転数(36)と吸気圧(15)の3次元マップ
アイドル制御:ロータリ式ソレノイドバルブ
カム進角:回転数により2段階制御
O2センサによる空燃比フィードバック
CAN出力:OBD2仕様
燃費制御:軽負荷時に空燃比を薄くする制御あり
学習モード:基本噴射時間とスロットル開度補正マップに学習処理あり
その他制御:クーリング・ファン
      キャニスタ・パージ
      エアコン・カット
通信機能:パソコンとRS-232Cにて通信
     リアルタイムのモニタ表示
     設定値の表示と変更

 

現在のECUに比べてアイドル制御とカム進角が劣っています。
ステッピング・モータの駆動は可能なのですが、原点をどうしているのか不明です。
まあ何世代か前のマニュアル車対応ってとこです。
協調制御は有りません。スタンドアローンな存在です。
回転数はもっと余裕がありますが、シングルのインジェクタでは大容量になり
細かな制御が出来なくなりそうです。

 

使用しているCPUはルネサスのRX-24Tです。
80MHzで動作していますがカウンタが沢山あるので余裕の処理速度です。
元々2モータのインバータ用みたいです。
バラ売り価格で千円のCPUでもこれだけ動作します。
何事も安く早くがポリシーなのです。

 

ECUは各チューニングメーカさんから随分前に発売されていました。
今ではベース車両が無いので需要が少なそうです。
昔のNSXのV6エンジンあたりをベンチで回してみたいですね。

 

2018/06/04

MEO-M8P

最近トラ技にRTKの記事が連載されています。
以前制作したM8P+920MHzを屋外で動作させました。

1)baseから1sec毎にRTM3で補正情報を送信
2)roverで200ms毎に測位してbaseへGNGGAを送信
3)baseにてroverから受信したGNGGAをパソコンへ送信
4)パソコンにてroverとbaseのGNGGAを表示と保存

 

W115,D65,H60のケースに入れてあります。
920MHzのアンテナが大きく感じます。
右側はGPSアンテナと電源ケーブル/USBケーブルです。
蓋をするとモニタLEDが見れない状態です。(TT

直径100mmの薄い銅板を金切りばさみで切り、適当な板に張り付けてあります。
銅板は錆びるけど、自分で切れる薄くて柔らかい銅板にしました。
錆びたら交換すれば良いしね。
100mmってのはL1波長190mmの1/2から来るのでしょうか?
GPSみたく低仰角から天頂まで高度が変化する場合にはグランドプレーンの影響がどの様になるのかなあ。

 

初めにroverが920MHz経由でRTCM3が受信出来ているかを確認しておきます。

 

建物の近くや木の陰ではfloatになってしまいます。
丸いところは砂場です。

公園が狭いので120mまでしかありません。
920MHzが1kmまで届くのでもっと広い場所で実験したいなあ。

 

同じコースでは同じ感じになります。
駐車場で台車に載せて白線の上を移動して評価しないとダメですね。

NEO-M8P の Nav.update rate は 5 Hz、Carrier phase data は 10Hz になっています。
秒速1mで歩くと20cm間隔でしかデータをサンプルできません。
 この遅さがM8Pの問題点です。
やはり20Hzが欲しいです。

 

ほぼオープンスカイでサンプル数が少ないので全体的にfix率が高いです。

baseの受信状態が悪いままroverで移動しました。

全然fixしませんでしたが、1kmまではRTCM3が送信可能です。

 

 

baseのTMODE3の設定
最寄りの電子基準点で実験してきました。
  北緯34.75204256
  東経137.68077701

baseの座標がわかっていればFixed Modeにします。
Hot Start なら4秒で3種類のRTCCM3が出力されます。

 

baseの座標が不明な時は Survey-in Mode にします。

Standalone での Horizontal position accuracy が 2.5 m CEP なので 2.5m に設定します。
オープンスカイなら180secで Mean 3D StdDev. が 2.5m~3.0mに落ち着きます。

Not started yet 時には TMODE3 の設定を[send]しないといけません。
baseの電源を再投入した時には[send]が必要です。

Successfuly finished にならないとRTCM3 1005 Stationary RTK reference station ARP が出力されません。
RTCM3 1005 が出力されないとroverがfixしません。

 

Survey-inした座標は電子基準点の座標に比べ西へ0.403m,北へ0.520mでした。
何時間かサンプリングしないとダメですね。
baseの座標がズレているとroverのfixした座標もズレてしまいます。
baseの座標が大きくズレているとroverがfixしなくなります。
roverの単独測位した値とRTK演算の結果が2.5m以上ズレているとfixとしないようにしているんじゃないかと思います。

トラ技セミナーでのM8P基板からM8Pを外して自分で起こした基板へ移植しました。
M8Pは半田ごて2本あれば基板から外す事が出来ます。
エフェメリスのバックアップ用電池があるとHotStartが可能になります。

 

思う
DGPSはFMで配信されていました。
RTCM3もFMで配信して貰いたかったなあ。
更に10kmに分割してVRSを。
帯域が足りなかったら多チャンネルにしてでも。
技術的、コスト的にも十分可能なんじゃないかなあ。
素人の考え、いや欲望です。

 

u-bloxさんの次の ZED-F9P は素晴らしい性能です。
多周波で20Hz。
ただ、お値段が気になるのと手ハンダが無理っぽいのが困った点です。
現状ではM8TのRAWを外部CPUでRTKLIB処理した10Hzが安くて好きです。
M8Tは無くなってしまうのかなあ?
RAWだけ20Hz出力が欲しい!

 

2018/06/12
RTK M8T

M8Tでも屋外実験を行いました。

 

baseの920MHzモジュール FEP01TJ のシリアルポート端子の信号です。
baseからroverへRTCM3の補正データが3パケット送信されています。
roverから $RTKPL を200ms毎に受信しています。
920MHzの無線モジュールで送受信を行うと送信5回と受信5回ぐらいが限界です。
baseとroverの送信タイミングを各々 TIME PULS と同期させて各々の送信タイミングをずらしています。

RTKLIBの演算は100ms毎ですが、$RTKPL 2回分をまとめて200ms毎に送信しています。
$RTKPL は今回の実験用に文字数が少なくなるように作ったメッセージです。

 $RTKPL,hhmmss.ss,baseからのX(m),baseからのY(m),測位ステータス,ratio,衛星数,age*チェックサム

 

roverが920MHz経由でbaseのOBSを受信出来ているかをRTKLIBで確認しました。
 roverで受信したOBSをシリアルで出力
 baseはM8TのUBS出力

QZSSを含めて正しく受信しています。
NEO-M8Pには無いRTCM3メッセージ1117です。

920MHzのデータ数を減らすよう35(dBm)以下はbaseから送信しません。

 

先ず壁ドンの状態で動作確認を行いました。
なかなかfixしないし、fixしても座標が流れていきます。

 

オープンスカイなのに全然fixしませんでした。

RTCM3を2.4GHzで送信しようかと思い「2.4GHz通信テスト」を行いました。
XBee ZigBee (S2C)をBoost modeで使用したのですが、920MHzの半分しか届きませんでした。
まあ400m程度が実用範囲です。

 

思う
QZSS2~4が停止していました。
L1信号だけは送信停止しないで欲しいです。

 

M8PはCPU速度とRAM容量の関係でQZSSやSBASが使えない、測位周期5Hzまでと実感しました。
PIC32MZの200MHzで測位周期10Hzが可能なのは10衛星程度まででした。

 

M8Tと920MHzを組み合わせるなら送信用と受信用に別々に2個のモジュールを使った方が良さそうです。
送信専用ならRTCM3を5Hz(0.2sec)毎に可能になります。

2018/06/15
PIC32MZ DA その1

タッチパネルを触ってみたいと思い PIC32MZ DA を使うことにしました。
PICの中でも最上級クラスで、176ピンの0.4mmピッチです。
176ピンの0.4mmピッチはピッチ変換基板が売っていないし、パスコンや1.8Vのレギュレータは傍に置きたいので基板を起こしました。


PIC32MZ DA の特徴
 200MHz/330DMIPS MIPS32
 FLASH 2MB
 RAM 640KB
 32MB DDR2 SDRAM 内臓
 3 レイヤ グラフィック コントローラ
 高性能 2D グラフィック処理ユニット (GPU)

 

高性能なだけあって、お値段もPICとは思えないぐらい高いです。

2018/06/25 M8T RTK システム powered by RTKLIB タブレットPC仕様 その1 基地局の巻

M8TとタブレットPCと920MHzを使ったRTKシステムを作ります。まだ制作途中ですので過程をお楽しみ下さい。
今回は基地局(base)のタブレットPC内でRTCM3変換、移動局(rover)のPC内でRTKNAVIを動作させます。
M8T+RTKLIBの利点は以下の点です。
 1)NEO-M8Tモジュールの価格が安い 250元  NEO-M8Nの5倍  NEO-M8Pの1/5~1/6
 2)10Hz高速演算
 3)対応した衛星種類数が多い(GPS,SBAS,QZSS,BeiDou,Galileoに対応)

 

タブレットPCはCPUが高速なのでRTKLIBをバックグラウンドで動作させながら上位のアプリケーションを動作させる事が可能です。
当然、タッチパネルが付いているのでヒューマンインターフェイスを表示可能です。
安いwindowsのタブレットPCなら1万円からあります。
高価なタブレットPCなら防水機能がありますが、USBコネクタの部分の防水が気になります。

roverのアプリケーションとして「かなり低価格なGPSガイダンス」や「かなり低価格な地図作成ソフト」を検討しています。
基地局(base)と移動局(rover)は同じサイズですが、移動局(rover)には9軸ジャイロが入り車両の傾きを計算しています。
傾斜のある地面に対して高い位置にGPSアンテナを設置した場合に地面との接触位置を補正します。

 

また、かなり低価格なので移動局にM8Tを2個使えば、移動局の姿勢をより精密に検出できます。

基地局のソフトウェアを作成しました。
基地局モードは「Fixed Mode」と「Survey In」の2種類から選択出来ます。

 

Visual C++ で作成したアプリケーションをバックグラウンドで動作させ、M8TのRAWデータからRTCM3へ変換します。
VB.NETで上位のアプリケーションを作成し、RTCM3を920MHzで送信します。

 

RTCM3変換はC言語のままにしたかったので Visual C++ を使っています。
RTKLIBの中から必要最低限の部分のみ抽出しています。
ユーザー・インターフェイスと920MHz制御は楽ちんなVB.NETです。
2つのアプリケーション間でデータを共有しています。

roverがRTCM3を受信している事を確認しました。
1005基地局座標と5種類の衛星(GPS,SBAS,QZSS,BeiDou,Galileo)をバッチリと受信しています。

基地局からは送信する920MhzのRTCM3データ数を減らすために最小SNR 35(dBHz)以上のみを送信しています。
最小SNRは設定可能です。
920MHZのデータ送信速度から、0.5sec毎までのRTCM3送信となりました。


GPSガイダンスなら相対的な座標を計算するだけで済むので、基地局の絶対値な座標はラフでも良いと思います。
1回設置した基地局の位置にマーキングして次から同じ場所に設置すれば移動局の絶対値座標は同じになります。
基地局を立てる理由は「通信費」です。「かなり低価格な基地局」なら通信費を気にしなくて済みます。
1周波でも5種類の衛星があれば仰角を30(度)、SNRは40(dBHz)以上の設定をしても10個以上の衛星を使えます。


思う
 改めて「RTKLIB」は 「すごい!すばらしい!」 と感じました。
 このソフトが無償で、ソース・ファイルまで公開されているなんて信じられません。
 高価なRTKを低価格で使うことが出来ます。

 

 高精度測位都市に住んでいます。
 都市って場所じゃなくて田舎ですが広域農業はありません。
 自分は使っていませんが善意の基準局からのサービス範囲です。

 

 もっと、もっと「RTKLIB」が普及して欲しいです。
 例えば校庭のライン引きに手軽に「RTKLIB」はどうでしょうか?
 ソフトボール投げの角度範囲を簡単にマーキング出来ます。
 野球場の1塁とホームベース、3塁の角度をきっちり90度にできます。

 

 以前、GPS世界で有名な某SHOPのM8T基板を2枚購入していたのですが、SNRが異常に低かったのです。
 例の如く基板からNEO-M8Tを半田ゴテで外して自分の起こした基板へ移植したらSNRが高くなりました。
 アンテナはTW2710を屋外に固定したまま同じ条件なので、単純に基板のパターンが良くなかったのかと思います。
 基板サイズや基板形状の都合があると思いますがっ、「配線は太く短く、高周波はインピーダンスも気にしてね」です。
 また、某SHOP基板はボタン電池フォルダに収まる電池を探せませんでした。

2018/07/07 M8T RTK システム powered by RTKLIB タブレットPC仕様 その2 基板の巻

 


ケースに納め易いよう、また、使用する基板を選べるように4種類の基板を起こしました。
基板間の信号は線材を半田付けします。電源2本とシリアル2本ですから。
基板サイズはM8NTP基板と同じです。同一サイズでシリーズ化しました。
Sサイエンスさんのビューワで表示出来なかったので、手持ちのガーバービューワーで表示させました。
穴が開いていません。雰囲気だけです。

 

いつもの920MHzのFEP01TJ以外に2.4GHzのTWELITE赤を試そうかと思っています。
3倍の距離になったらしいのですが、多分FEP01TJと同じ距離になったかと予想しています。
ただし、通信速度に期待しています。楽しみです。

 

MPU9250基板はクオータニオンから角度を計算してシリアル出力用にPIC32MZを載せています。
I2Cのままではパソコンと相性が悪いのでシリアル出力に変換しています。
PIC32MZの組み込みソフトは出来上がっています。
また、この基板は基地局にタブレットPCを使わない時にはPIC32MZだけを載せて
M8TのRAWからRTCM3の演算と無線基板の制御を行います。

 

FT4232H基板はタブレットPCと各基板を1つのUSBケーブルで接続するために使います。
M8T,MPU9250,FEP01TJで計3CHです。

 

一気に4種類ですが、実はもう1種類失敗作があります。
まだ基板が入荷していないのですが、似た基板でソフトを作っていて既にNG基板になってしまいました。
RX110+MPU9250なのです。
RXでのI2Cを色々試したのですがダメで、STOPコンディション前にSTARTコンディションを連続出来なかったので諦めました。

 

 Master  S AD+W   RA   S AD+R   NACK    P
 Slave         ACK  ACK      ACK    DATA

 

RESTARTじゃなくてSTARTを連続出来るのかを根気よく調べる気もなくNGとしました。
更にMPU9250の初期設定の構造体もそのままでコンパイル出来なかった事もあります。
そしてシリアル通信速度の上限が115,200bpsなのもNGにした理由です。

 

思う
 今日は七夕です。
 1年に1度しか会えない二人はどうだったのかなあ。
 地上でどんなに雨が降っていても雲の上は晴れているから大丈夫だったでしょう。


 GPS衛星が飛んでいても、宇宙ってロマンがあります。

 空気も無く、音もない空間を物凄い速度で衛星が飛んでいるところを想像すると
 それだけでロマンです。

 

2018/07/09 M8T RTK システム powered by RTKLIB タブレットPC仕様 その3 移動局(rover)デバッグの巻

 

 移動局(rover)の表示部分をデバッグするのに「SimulationRTK」を作りました。
 通常、rtknaviからはxyz座標が出力されるように設定しているので、その代わりとなるプログラムしました。
 設定した方位、速度、時間でxyz座標を計算しています。

  北固定の表示です。
  「SimulationRTK」が正常に動作しているかを確認するために表示させた程度です。
  速度と方位はM8TからのRMCセンテンスを使わずに座標から計算しています。
 その他にヘディングアップとバードビューを準備しています。

思う

 2050年ごろに「電動車」にする目標が発表されました。

 はるか先になりそうです。

 

2018/08/03 M8T RTK システム powered by RTKLIB タブレットPC仕様 その4 移動局(rover)デバッグの巻2

 

 けん引している作業機を確認し易いように線で表示して、ヘディング・アップしたムービーです。
 使っているパソコンがチープなのか1秒間に10回ある座標データを4回で表示しています。
 GDI+とAPIではこんな程度かも知れません。
 バードビューを行うためにはグラフィック・チップの手助けがあるDirectXやOpenGL、OpenCV等の

 何かが必要そうです。

 

思う
 またしても資金難になってしまいました。(TT
 2.4GHzの実験が遠のいてしまい、とても悲しいです。
 資金難の時にはソフトウェアを作るしかありません。

2018/08/10 M8T RTK システム powered by RTKLIB タブレットPC仕様 その4 移動局(rover)デバッグの巻3

三角形か四角形の圃場を想定しています。五角形以上は三角形で分割することになります。
四隅の座標は基準局からの位置を数値で入力するか、移動局を測定点まで移動させて[位置取得]ボタンをクリックします。
スタートする位置と次の位置を指定して、作業方向を「交互」にするか「2本飛ばし」にするかを選択します。
四辺の一番長い辺を開始ラインにした方が効率的なのですが、太陽の方角に対して作業方向が決まる場合もあるかも知れません。

 

作業方向が「交互」だとトラクターの回転半径が厳しい時には「2本飛ばし」が良いでしょう。
作業方向は実際の使用方法をもう少し考えて増やします。

 

入力した圃場を一覧に表示させ、その中から圃場を選択するようになります。
この例では1006番以降は同じ圃場を入力しています。実際はファイルをコピーしてファイル名を変えているだけです。

ナビ画面に戻って来た時に、別の設定画面での作業機幅から計算して目標となるラインを表示させています。
同じ圃場でも作業機幅が違う時があるので、圃場設定とは別にしました。
三角関数と連立方程式を用いて計算しています。
このラインを目標にしてインジケータを表示させます。

 

思う
 日本の食料自給率が38%と発表されていました。
 三日に1日のみ国産食で、残り二日は外国産ってことかなあ。
 元農地って感じの空き地を見かけます。廃業したらしい施設園芸とか。
 農業は休日が無いってイメージがあります。
 人を楽にするために技術があると思います。

 

2018/08/16 TWELITE(RED) 2.4GHz電界強度実験

RTCM3や演算結果を高速に送受信したいので、TWELITE(RED)にて2.4GHz電界強度実験を行いました。
TWELITE(RED)は従来品TWELITE(BLUE)に比べて3倍の送信出力になったそうです。

上から、MPU9250+PIC32MZ, NEO-M8N, TWELITE(RED)基板を実験用に配線しています。
MPU9250+PIC32MZはNEO-M8Nからの$GNGGAにヘッダとフッタを追加してTWELITE(RED)へ送信します。
また、baseからの受信OKを受信してLEDを点滅し、通信が正常に出来ているかをモニタしています。

TWELITE(RED)と2CHシリアル-USB変換器FT2232Hを載せています。
FT2232HはTWELITE(RED)のプログラマとしても動作するのでApp_Uartを書き込んでいます。

 

同じ場所での実験なので、TWELITE(RED)2.4GHz、XBee2.4GHz、FEP01TJ920MHzの比較が可能です。
TWELITE(RED)は書式モードのバイナリ形式、拡張形式で通信しています。
pdfファイルの取説が無く、ホームページのあっちこっちを見ながら、何とか通信書式を理解しました。
自分には理解しにくい説明でした。
データ部にアドレスやコマンドが含まれることが変だと思います。

 

取得した通信品質LQI値から電界強度[dBm]の推定可能なので、距離と電界強度をグラフに表示させました。


非常に残念な結果になってしまいました。
従来品のTWELITE(BLUE)を実験した人のホームページでは河原にて200m程度でしたが、それと変わらない距離です。
市街地では200mもまともに届いていません。
XBeeの400mの半分以下です。

 

送信出力の設定は「3(デフォルト)」で再送なし・最強出力です。
周波数チャンネルの設定は3種類設定しています。

 

たしかに親機のアンテナは壁に近い場所に設置されていますが、XBeeでも同じでした。
親機、子機共に無指向のxBee用アンテナをSMA-U.FL変換ケーブル(120mm) テフロンでTWELITE(RED)へ接続しています。
アンテナ直出しではないので同軸分の減衰はありますが、それにしても、何故?って感じです。
指向性アンテナを使う以外に何か改善の余地があるのかなあ。

 

思う
色々な無線モジュールを同じ場所で実験しているのホームページがあると良いのだけれどなあ。
まあ、部品代を出しても自分でやってみるしかないようです。

2018/08/19 M8T RTK システム powered by RTKLIB タブレットPC仕様 その4 移動局(rover)デバッグの巻4

 

圃場内をトラクターが走るようにシミュレーションのデータを設定しました。
表示が遅くてカクカクしています。
ただ今、表示方法の勉強中です。
トラクター(rover)に使用するつもりのタブレットPCは2万円以下のものを検討しています。
低価格のパソコンでもスムーズな表示をしたいと思っています。


夏休み前にケースを注文しました。
手のひらサイズの基板アッセンブリが入る小さな防水ケースです。
ハードウェアがシンプルなので、その分ソフトウェアを頑張らないといけません。
表示部分が開発の重点ポイントになります。


youtubeでアグリナビのムービーを何本か見ましたが、
運転に忙しそうで画面を見る余裕が無い状態でした。
人が画面を見ながらフィードバック制御(運転)をするには、もっと視点の遠い場所にマーカを
表示させないとダメじゃないかなあ。
夜間ならレーザー・ポインタで進行方向を示唆可能そうです。
昼間はゴーグル等に表示された風景の中に進行方向を表示させるか、
トラクタ前方に取り付けた進行方向を示す棒を左右に動かすってのも良さそうです。
目標ラインと自車位置の差をモータへ出力してオート・ステアリング。
でも、柔らかな土の上をロールしながらのフィードバック制御は難しそうです。

 

2018/09/05 M8T RTK システム powered by RTKLIB タブレットPC仕様 その5 箱入り


基板をケースに入れました。
サイズは80mm×82mm×55mmです。
基板サイズ40mm×35mmの2倍の大きさですが、取り扱い易いサイズになりました。
小さ過ぎるよりも良かったと思います。

名前は「ANavi」となりました。
あっ、ナビが付いている!ってのと、アグリナビから「ANavi」です。

あナビ」と呼んで下さい。

ステッカーは防水シールの手作りです。

 

このシステムはUSBでタブレットパソコンと接続します。
本来USBは恒久的に接続するコネクタではないので使用中に抜けないようにしないといけません。
USB 伝送線路に推奨される特性インピーダンスは、差動インピーダンス 90Ω±15%だそうです。
インピーダンスが保証された小型な防水コネクタが無かったので適当に選びましたが使用できそうです。

 

基準局は3mの三脚の先端に垂直に取り付けます。
トラクター側は進行方向を合わせて屋根へ水平にに取り付けます。

基準局から半径1kmへRTCM3を920MHzで1秒毎に送信します。
対応する衛星は、GPS,QZSS,BeiDou,SBAS,Galileoの5種類です。

 

思う
 今月中にタブレットPCと三脚を準備します。
 アルミ製のGPSアンテナのグランドプレーンやユニット取付板もネット注文です。
 M8TとタブレットPCで作る基準局は最も安い基準局の1つです。
 基準局にタブレットPCを使わずにPIC32MZで作り、
 トラクター側のタブレットPCから基準局へ無線で設定値を送るようにすれば
 基準局のタブレットPCが不要になります。
 基準局の設定はServeIn ModeかFixed Modeの選択程度ですので、次のバージョンで作ります。

 

2018/09/14 M8T RTK システム powered by RTKLIB タブレットPC仕様 その6 ケース入りオープンスカイ

ケースに入れたのでオープンスカイで実験してきました。
でも何故かFIXできない状態でした。
RTKNAVIで直接シリアル入力してもダメで、QZSSを除外したらなんとかなりました。
920MHz経由でFIXしたのをRTKPLOTしてみました。


Ageが無線通信の時間、1秒遅れています。
衛星数が10個程度に収まるように仰角マスクは40度にしています。
1台のパソコンで基準局のプログラムとバックグラウンドのRTM3変換プログラム、
移動局のプログラムとバックグラウンドのRTKNAVIを動作させるとCPUの稼働率が98%まで上がります。
使っているノートパソコンがチープだから仕方ありません。
早くタブレットPCを購入しないと。。。

 

思う
 同じ箱入りのM8Pバージョンも作ってみたくなりました。
 M8Pをもう1つ購入しようか迷っています。
 M8Pを使えばパソコンの処理部分がかなり軽減されますが、
 値段が高い、衛星種が少ない、処理速度が遅いところが問題です。
 まあ、時間とお金に余裕が出来たら作ります。

 

2018/09/14
PIC32MZ DA その2

PIC32MZ DAからのLCD信号をHDMIに変換して出力する基板を注文しました。

直接LCDに接続するのが本来の使用方法ですが、汎用的な表示器を使いたいのでHDMI変換します。

 

 

思う

 ああ、今月もピンチです。

 どこかに援助してくれる人いないかなあ。

 Hinjya募集とか。(^^

 

 

2018/09/19

 簡易画像処理 その1

 ふと500円30万画素のCCDで何かできないかと思い基板を起こすおこにしました。

OV7675にPSOC5の組み合わせです。

FPGAより安価にPLDを使えます。

駆動回路とちょとした処理程度ならVerilogで組み込めそうです。

 

2018/09/28 簡易画像処理 その2

PSoC5 は PSoc Creator で開発を行います。
PSoC5 には 24個の UDB(universal digital block) があり、verilog で作ったロジック回路を書き込めます。
どのくらいのサイズの回路が作れるのか比較表からでは不明で、ビルドしてエラーにならなければOKです。
ちょこっと verilog のコードを追加しただけでオーバーフローします。かなり小さいと思います。

 

初めは OV7675 の制御用のI2Cモジュールと、作成したカメラ制御モジュールを I2C slave で接続しようとしましたが、
全然サイズに収まらなくなってしましました。
固定のハードウェアで内臓されている機能を積極的に使って、UDB の使用を極力抑えないといけません。
また、Avalon MM のように CPU バスに直結する方法が探せませんでした。
よって今回は GPIO でパラレルに接続しました。

 

ビルド後の UDB サイズが 65.6% になっています。
カメラがデジタル出力なのでPSoC の売りであるアナログ部分は未使用です。

 

 

PSoC5 はQFN パッケージがあるので手ハンダがギリ可能で価格か安いのが利点です。
でも、1000個なら500円なのですが、1個だと1,000円になってしまします。

 

PSoC Creator の注意点は、信号線を交差しないようにすることです。
バグがあると思います。
TOPの回路図cyschで信号線を削除しても、そこから自動作成されたtextファイルが正しく修正されないので
エラーが無くなりません。

念のために verilog のコードをコピーして Quartus9.1 でシミュレーションしました。
正常に動作しそうです。
Total logic elements は113になっていました。
PSoc Creatorで 24UDB が 192マクロセル で、116マクロセル を使っているので Quartus9.1 の 113elements と考えると
1マクロセル = 1element に相当しそうです。
PSoC5は 192elements しかないってことで、非常に小さいんですね。

 

ソフトは基板が入荷してから作ります。

 

思う
ハードウェア CPU と PLD の組み合わせも楽しいですね。
CY8C5888LIT-LP097とデバッグ用のCY8C5868LTI-LP039を載せた基板が1,500円で売っています。
何でそんなに安くなるんでしょう?

 

そゆえば、トラ技に F9P の価格が載っていました。
想像していた半値、欲しくなっちゃいます。
ただ、リフローしないといけないのと、補正データをどう受け取るかが問題です。
どうしても公共のキャリアを使わないようにするには、920MHzのモジュールを複数使って
マルチ・チャンネル化しないといけません。
早く2.4GHzのモジュールが高出力化してほしいです。
法律では高出力になっているのに、抑えこまれているなんて悲しなあ。
電波は限られた資源なので有益に使ってもらいたいです。
K帯に割り振り過ぎ。

 

既にarduino用の基板を作っている人がいるようですねえ。羨ましいです。
あの海外のshopからモジュールを載せただけのシンプルな基板が発売されたら購入したいな。
オーブンのリフローキットとメタルマスク、何とかなりそうだけどコスパが悪いしなあ。
リフロー前提の形状になったのは、放熱でもなく、GND が沢山欲しいのでもなく、
手ハンダさせないようにするためじゃないかと思います。
この測位精度と速度はアマチュアには手を出してもらいたくないってことですね。

 

ローコスト基準局は VCP で作ったソフトの配置方法で悩んでいます。
単なる DOS窓なのに余分に必要な DLL があるのも理解していません。
frame work より使いにくいよう。

2018/10/01 ANavi基準局 記念撮影

基準局を持って近くの電子基準点で撮影してきました。
場所はいつもの所です。
台風一過の晴天で、神々しい電子基準点の左隣に小さくお月様が写っています。

GPSアンテナの下に100φのグランド・プレーンを取り付けました。
SUS304で作りたかったのですが、試作なので自分で穴を追加工できるA5052Pにしました。
このアンテナも年季が入っています。

 

GPSアンテナから「下振り」を付けました。
センチ・メータ単位の測位なので、測位点を明確にしなければなりません。
それと、測定している点がここですという意思表示のようなものです。

 

全体はこんな感じです。
伸ばすと2.4mになる三脚の一番上にANavi基準局が取り付けてあります。
ここから920MHzでRTCM3を送信しています。
中央に8インチのタブレットPCが付いています。
全体的に華奢な作りになっています。
軽いので持ち運びが楽で、直ぐに設置して撤収可能です。

 

ANavi基準局をズームするとこんな感じです。
A5052Pの板へ取り付けたものを三脚へネジ止めしてあります。
文字の上の黒いのは、Roverのアンテナ取り付け穴と共通の箱なのでメクラをしてあります。

 

せっかく手作りしたPC用サンバイザーを持って行くのを忘れてしまいました。(TT
予想通り屋外での液晶は非常に見にくい状態でした。
サーベイン・モード180秒の設定で座標を決めています。


この電子基準点はT字の交差点を曲がって行った先にあります。
目印となる自販機とポスト(?)らしきものがあります。


思う
今日は市内のほとんどで停電でした。
撮影チャンスと思い、即実行したのですが。。。
アップロードできませんでした。

 

VCPの配置は depends22_x64 で調べた vcruntime140.dll ではなく、vcruntime140d.dll が必要でした。