• 車種別
  • パーツ
  • 整備手帳
  • ブログ
  • みんカラ+

黒っ9(クロック)のブログ一覧

2014年07月12日 イイね!

超高速データロギングに挑戦♪(車両慣性データ)

超高速データロギングに挑戦♪(車両慣性データ)”車の位置/姿勢をロギングする”
と一言で言っても、利用する目的や内容、そして要求精度によってもソフト&ハードの構成が変わってきます.低サンプリングデータを後に内挿するのか、あるいは高サンプリングで忠実に記録するのかは議論が分かれるところですが、後者の方がより統計的処理ができるので分析する側としては好まれます.


ググってみると気付きますが、市販のマイコンチップとお手頃なSDカードを使ってロガーを作ることは、それほど物珍しくないことに気付きます.物理センサやGPSデータ、ECUデータを低サンプリング(~5Hz)で保存することはそんなにハードルは高くありません.では、さらに1桁や2桁サンプリングレートを上げるにはどうしたらよいのでしょうか?

単純にSDカードに保存する間隔を短くすればいいんじゃない? と思って実行してみましたが、実はSDカードに保存するプロセスは凄く遅いし(※1:10~50ms)ばらつきもあるため、短い間隔でデータを保存できないことが分かりました.流れてくるデータをいちいち相手にして保存していては解がないということです.
※1:マイコンで操作しやすいSPI方式の場合

ではどうすればよいか? こんな方法を考えてみました.
簡単に言うと、AとBの2個のバケツを用意します. 高速で流れてくるデータをバケツAに流し込み一杯になるまで待ちます.バケツAが満たされたらすぐにデータの流れをバケツBに移します.それと同時にバケツAのデータをSDカードに保存する方法です.これをA/Bで繰り返します.この方法ならば、他方のバケツが一杯になるまでにSDカードとのやりとりを終わらせればよいことになります. イラストにするとこんな感じ.

    Fig.高速データロギングアルゴリズム
    ※マイコンのSRAM領域をバケツA/Bに割り当てます.


このやりとりをプログラムで表現するにはどうしたらいいんでしょう(ToT;;
ちょっと悩みましたが、ほんの数行で実現できるようにしてみました.
※5msecの割込処理で実行します.


とってもシンプルなプログラムですが、その実力を見てみましょう.
200Hzでデジタル6DOF-IMU(加速度/ジャイロ)データを取り込んでみました♪

time
omegaX
omegaY
omegaZ
accX
accY
accZ
sec
deg/s
deg/s
deg/s
G
G
G
0.000 0.6300 -10.7538 43.4438 0.4528 0.1872 0.9997
0.005 -3.7713 -11.3925 45.5700 0.4216 0.2028 0.9685
0.010 -6.9125 -11.5500 48.8950 0.4841 0.2185 0.9997
0.015 -10.1763 -12.7050 50.5050 0.3278 0.2341 0.9997
0.020 -13.3788 -11.5588 51.7388 0.3747 0.2341 0.9997
0.025 -14.6300 -13.9475 53.0425 0.3122 0.2341 0.9685
0.030 -16.2050 -14.2275 55.7900 0.3747 0.2653 0.9060
0.035 -14.0438 -9.4238 58.9050 0.4216 0.2810 0.9216
0.040 -12.2325 -6.6413 60.0600 0.5153 0.2966 0.9685
0.045 -8.3563 -7.1313 61.6613 0.4997 0.3278 1.0153
0.050 -4.9000 -11.4800 63.2625 0.5466 0.3435 1.0310
0.055 -2.8700 -17.4300 65.6688 0.4372 0.3435 0.9997
0.060 -1.5400 -21.2450 69.0550 0.4841 0.3278 0.9528
0.065 -1.1288 -20.4488 71.0150 0.4685 0.3122 0.9060
0.070 -1.5925 -17.9813 71.6450 0.4528 0.3122 0.8903
0.075 -1.4175 -9.3100 72.7300 0.2341 0.3278 0.9060
0.080 0.5688 -4.0338 73.1238 0.2028 0.3591 0.9528
0.085 3.8763 -3.5000 72.3450 0.5466 0.3591 0.9997
0.090 9.3975 -5.9588 71.7500 0.4216 0.3747 0.9997
0.095 15.7238 -11.4450 71.4963 0.3278 0.3591 0.9997
0.100 18.2263 -16.6425 70.5338 0.3122 0.3278 0.9841
0.105 16.5025 -20.8775 68.5650 0.2810 0.2810 0.9528
0.110 13.6675 -18.0513 68.9063 0.1872 0.2810 0.9216
0.115 9.8175 -14.9975 67.6200 0.0000 0.2966 0.8903
0.120 8.6888 -9.6338 66.4738 0.1560 0.3435 0.8903
0.125 7.3413 -5.7313 65.9750 0.3278 0.3435 0.9216
0.130 7.3413 -5.7313 65.1875 0.4372 0.3435 0.9372
0.135 7.3413 -5.7313 65.1875 0.4216 0.3435 0.9372
0.140 7.3413 -5.7313 65.1875 0.3278 0.3435 0.9372
0.145 7.3413 -5.7313 65.1875 0.3903 0.3435 0.9372
0.150 7.3413 -5.7313 65.1875 0.3903 0.3435 0.9372
0.155 7.3413 -5.7313 65.1875 0.3903 0.3435 0.9372
0.160 -40.1188 12.7050 52.1850 0.3903 0.1247 0.7497
  数十万行続くので、表示はここまで.
             

※ センサ値の更新は400Hz以上で更新されるためレスポンスとしては十分です.
※ロギングを終了するときは、両方のバケツをSDカードに流し込むだけ.
※数時間ロギングしましたがデータ欠損も皆無です.
※50Hz更新のGPSデータ(NMEA)も楽ちんでした♪


見た目はちっぽけなプログラムですが、非常に強力なアルゴリズムになっていることが確認できました(^0^/
データ量にもよりますが、数百Hz(~1000Hz)のロギングも安いマイコンで実現できちゃいますネッ.
この方法を使えばSDカードだけでなく、例えば無線通信を使ったデータ転送にも応用できます.
ちなみに画像の左下のやつはBluetoothユニット.無線でPCとデータの送受信を行ってます♪


こういった慣性データと古典制御理論あるいは現代制御理論を組み合わせて、
何かオモチャを作ってみるのもおもしろそーだなぁ~

↓以前作った6DOFセンサを使ったお遊び動画↓

Posted at 2014/07/13 00:12:07 | コメント(1) | トラックバック(0) | PIC+電子工作 | 日記
2014年04月14日 イイね!

アンリミさんにおじゃまして、キャリパーキット装着♪

アンリミさんにおじゃまして、キャリパーキット装着♪今日はアンリミさんにおじゃまして、キャリパーキットを装着してきました!

お店の場所は、埼玉からだとちょっと交通の便が悪くてなかなか訪れる機会がなかったんだけど、今回アンリミさんのキャリパーキットということでドライブがてら足を伸ばしてみました.
2時間くらい余裕見て出発したけど、道中の1車線規制と渋滞にはまって開店11時ぴったりに到着.余裕見といてよかった(^^;


すぐに作業が始まったかと思うと終始手際よく分担され、キャリパー外し/バックプレート加工/キャリパー装着/フルード満たし/エア抜きと、2時間半程で作業が完了してしまいました.さすが、プロですね!


【道中のインプレ】
街乗りではもっと違和感あるかなと思ったけど、ビッグキャリパって言われないと分からないほど純正と同じテイストで、ちょっとびっくりしました.ただ、信号で止まるときのローターが共振する独特の”クォー、クォー”音がたまにするけど、あれは結構好きかな.ブレーキ周りいじってるな!ってきな.
 一方で、少し強めに踏むと懐の深さが垣間見れます.パッドの当たりが出るまでガッツリ踏むのはやめますが、足裏に強めの荷重をかけてみると純正の効きとは明らかに別の感触を味わえます.言うならば、Sタイヤが欲しくなる感触.慣らしが終わったら、サーキット走らせてみたいな~♪

【フロント】 Brembo 8pot Caliper(モノブロック)+Rdd(φ360) + SPEC-R(パッド8枚 @o@;;)
そして、アンリミオリジナルのステンメッシュブレーキホースを組んでもらいました.フルードはATEのDOT4.



◆ボビンにスリットが切ってあるカチャカチャ防止タイプ.
 ロータは新品に換えて間もないのでパッド摺動面がま~きれい.ロータ交換もアンリミさんです.

【リア】 F360 Brembo 4pot Caliper+Rdd(φ355)

◆リアはドラムリングもあるので3ピース構造になってます.
 こちらも、ものすごく状態イイですね♪

横から見るとロータが大きいのが分かるくらい.キャリパは目立ちません(ToT;


お土産は東京ばな奈♪
Posted at 2014/04/14 22:33:42 | コメント(5) | トラックバック(0) | サーキット関連---> | 日記
2014年03月23日 イイね!

エボXのブレーキ強化♪

エボXのブレーキ強化♪エボ9のボディに比べるとグローバル化されたエボXのそれは、例えるならマッスルまっちょボディ.ロータ径やキャリパもサイズアップされているとはいえ、ミニサーキットで楽しむには熱容量的にもちょっと心配.エボ9のアスリートボディですらブレーキキャパ一杯一杯でした.走行経験が少ないので、マネジメントノウハウがなかったというのもありますけどね(^^;

てことで、サーキットで楽しむ前にキャリパだけは交換しておこうと、ずっとあれこれ悩んでました.コスト重視ならキャリパだけポン付けのエンドレス? でもそれなりのロータに交換すると・・・・
お財布の底が見えちゃう・・・


同僚のGRBインプは6podキャリパ&大径ロータ投入してるけど・・・どうしよう・・・


For FRONT

For REAR
※画像はアンリミさんのHPから抜粋.

ですが、アンリミの佐藤さんに相談済(^^o
パワーとかトルクも欲しいけど、まずは素人の黒っ9でも安心してサーキットで遊べるようにブレーキ強化から始めてみました.ノーマル車輌に一点豪華なキャリパはミスマッチ感たっぷりですね.
Posted at 2014/03/23 00:19:45 | コメント(4) | トラックバック(0) | サーキット関連---> | クルマ
2014年02月08日 イイね!

ステッピングモータをつかってみる♪ EDFCとかのあれ

ステッピングモータをつかってみる♪ EDFCとかのあれ雪スゲ-(@0@ ・・・・

お昼にワイパー上げに外でたら、ま~雪がこんこんふってること.
明日も続くみたいですね.こーさむいと、部屋でのんびり.
前回コメントでステッピングモータに関して質問頂いたので、
せっかくなので、挑戦してみました.



ステッピングモータ.概念は知っていますが、実際に使ったこと無い.でもGoogleで調べると、ずらっと使い方から制御方法まで出てきます.水曜に注文していたモータが昨日届いていたのでちょいと試してみました.世の中では至る所に使われているけど、車ではメータやブーストコントローラ、スロットル調整など、機械的に回転を発生させて制御する物に使われてるようです.

ステッピングモータはパルスを1回与えると、決まった量だけ回転させることができるので、オープン制御が可能になります.そして駆動回路に関しても、モータの磁気回路を順番にスイッチングしてくれる専用のICも用意されているので、とても簡単に使えるようです. ドライバICは色々あって用途に応じて選びます.マイクロステップ制御ができるICなら高精度に角速度をコントロールできますね.

能書きは、Google検索にゆだねるとして黒っ9が試した構成はこんな感じ.秋月で注文しました.
内 容
型 番
購入先/備考
ステッピングモータ
SPG20-1362
ユニポーラ, 1(deg/pulse)
ドライバIC
TA7774PG
バイポーラ用(二相励磁)
マイコン
PIC18F25K22
8bit, 64MHz

このモータは360ステップで1回転するので、1秒間に360回パルスを送ると、1秒で1回転します.とても単純ですね.パルスを変えてあげれば、任意の回転速度と回転角度を制御できることになります.ドライバICは、小型で安かったのでコレにしました(^^;

モータのトルク特性は入力パルスの周波数で決まります.負荷をかけた状態で始動できる回転トルクは、グラフの実線を見ると分かります.60Hzでは 36[mN*m] つまり、0.36[kg*cm]という結構なトルクが得られます.指で本気でぎゅっとつまんでも到底かないません.

任意の角速度(rpm)と回転角を指定して、モータを動かすプログラムを書いてみました.
たったこれだけのプログラムなので、あっという間に完成です(^ー^ モータ発熱防止も制御してます.



モータの状態を表す変数は構造体で定義し、配列にして管理してみました(4個のモータまで可).


モータドライブは80usec単位で 超正確に駆動させるために割込関数内で制御してみました.
メイン関数では、センサ処理やLCD表示、ユーザからの指令定義などを行えるようにするためです.

※プログラムはド素人です.もっと効率的な方法があるかもしれません(^^;


主となるプログラムはたったこれだけ.あとは、モータ毎の構造体に変数を入れてあげればOK♪ なぜ割込関数内に書いたのか? もしメイン関数内に書いてしまうと、usec単位での時間管理ができない.そして、1このモータを動かしている間に、別のモータを動かす指令を与えたりすることができない.センサーやLCDと同時に通信できない.といった、残念なことになるからです・・・.

↓動画:いろんなパラメータで自動運転してみた↓


①左回転, 10rpm, 180度,繰り返し:1回
②左回転, 80rpm,1800度,繰り返し:1回
③右回転, 60rpm, 870度,繰り返し:1回
④左回転,110rpm, 90度,繰り返し:5回
⑤右回転, 50rpm, 60度,繰り返し:10回
⑥右回転,130rpm,原点復帰,繰り返し:1回

いとも簡単に動かすことができちゃいました(^^



車高調のバルブをコントロールするEDFC(テイン製).大きなステッピングモータが使われてますね.この回路で、ユニポーラ、バイポーラなら他のモータでもOK.トルク的には今回のモータでもいけるかな? 制御は超簡単なので、はじめて自作する題材としても良いかもしれませんね(^^
このプログラムをちょいと変更すれば良いだけですから♪
車高調への取り付けステイも、簡単に作れちゃいますしネッ.

本家テインのようにGPSと同期させても良いけれど、サーキットのコース長が分かっていれば、フィードフォワードで減衰調整してあげた方が現実的かな.でもEDFCは制御対象としてはつまらない.やっぱり、センシングしてフィードバック制御をつかったアカデミックな物を作ってみたいですね/ 複素領域でゴニョゴニョするあれ.





Posted at 2014/02/08 20:40:13 | コメント(0) | トラックバック(0) | PIC+電子工作 | 日記
2013年12月22日 イイね!

(追補)♪ OLEDでアナログメータやってみた!

(追補)♪ OLEDでアナログメータやってみた! OLEDを使った電子工作.
とても多くのアクセスありがとうございます♪
使い方次第では、ちょっとした小型ディスプレイが魅力的なアイテムに.今回は前回の機能をちょっぴり拡張してみたので、OLEDを予定しているかたは参考にしてちょ.



前回YouTube動画が気になってたアナログ風描画.簡単に”らしく”表示できました/
※今回はアルゴリズムに注力してるので、画面デザインはやっつけ.

そして、3D描画も高速化.超低速通信のI2Cで3Dグリグリしてる人は、YouTube広しともいないはず. このOLEDはSPIでも使えるので、I2Cとは比べものにならない高速通信できるSPIで3Dや複雑な描画するほうが簡単なのですが~、超低速通信のI2Cでも実現できるよ~というのが今回の見所♪ 

SPIならプログラムを工夫しなくてもデータ流せば実現できるのが長所.なので、複雑な描画してる人がSPI使うのもうなずけますね/

↓まずは、完成動画から↓


画面更新レートを上げるためにシングルバッファから、ダブルブッファに変更しました.
  Buffer1:スタティック領域・・・変化のない文字列やBmpの配置
  Buffer2:アクティブ領域・・・動的な文字列,動的な図形の配置

画面の更新は、動的な部分の書き換えだけでOK.複雑な表示も簡単で高速に.


追加してみた機能
①SSD1306の全関数を完全ダブルバッファ化
②アナログメータ演算
    針の描画、メータ枠の表示.
③部分反転表示
    画面の任意の場所を反転表示できる.文字列の選択ハイライトとか.
④スモールBmpの任意配置
⑤様々なフォントを一括して扱う関数の作成
    任意のフォントサイズに対応/任意のスタートアドレスに対応/縦・横フォントアレイに対応
    vertical ceiling,horizon ceilingのフォントアレイに対応したので、
   ネットで見つけたFont、サクッと自作したFontも使えちゃう.
⑥レイヤー修正関数の作成
   各レイヤーの部分消去など
⑦仮想空間サイズの拡大
    前回は、画面外に描画することができませんでした.当然、画面の外は想定外(笑)
    なので今回は、仮想空間に描画したラインから、実画面(表示領域)を取り出す処理を追加しました.
    これでバッチリ.
 

ま~、色々能書きかいたけど、要はちょっぴり変更しましたってこと(^^;
縦/横共に、256dots.奥行きは潤沢にとってます.原点は画面左下を(0,0)としました.
これで大きなモデルもグリングリン回転できます(^ー^o 
でも画面が小さいので、あまりモデルが大きいとよく分かりません・・・トホホ

YouTubeで気になったテクニックはこんなかんじかな♪
小型画面にいろんな情報を表示できるデバイスってなんかカッコイイですよね/
グラフ/バーグラフ/数字/3Dで、ナウいデバイス作ってみます. なうってぇww


Posted at 2013/12/22 22:48:52 | コメント(0) | トラックバック(0) | PIC+電子工作 | クルマ

プロフィール

「倉庫から色々出てきたでござる http://cvw.jp/b/194408/41272537/
何シテル?   03/27 20:35
黒っ9(クロック)といいます。 黒のエボ9オーナーだったので クロック(笑) 休日は主にドライブです♪ 旅先の露天風呂なんか最高だね! 手作...
みんカラ新規会員登録

ユーザー内検索

<< 2025/9 >>

 123456
78910111213
14151617181920
21222324252627
282930    

リンク・クリップ

自作♪パルスジェネレータ(車&バイク用) 
カテゴリ:その他(カテゴリ未設定)
2017/01/30 21:33:58
自作♪GPI++:ギアポジションインジケーターVer5(MT用) 
カテゴリ:≡ 電子工作にチャレンジ♪
2016/08/27 23:18:43
【PSI++】自作ドライビングモニター でけたぁ~♪ 
カテゴリ:≡ 電子工作にチャレンジ♪
2014/09/16 23:08:56

愛車一覧

三菱 ランサーエボリューションX 三菱 ランサーエボリューションX
セクシーなXにあこがれて9GTから乗り換えました♪ ファントムブラックの5MTです. ...
三菱 ランサーエボリューションIX 三菱 ランサーエボリューションIX
納車されました(^^ セクシーなエボⅨにあこがれて思い切って買い換えました。ん~黒のボで ...
三菱 パジェロ 三菱 パジェロ
幼少の頃からパリダカで活躍するパジェロに興味があり、初めての車にパジェロを物色していると ...
三菱 ランサーエボリューションVII 三菱 ランサーエボリューションVII
頭文字D見てマニュアルの車にあこがれ、ワイルドスピード×2見て刺激され買ってしまいました。

過去のブログ

2018年
01月02月03月04月05月06月
07月08月09月10月11月12月
2016年
01月02月03月04月05月06月
07月08月09月10月11月12月
2015年
01月02月03月04月05月06月
07月08月09月10月11月12月
2014年
01月02月03月04月05月06月
07月08月09月10月11月12月
2013年
01月02月03月04月05月06月
07月08月09月10月11月12月
2012年
01月02月03月04月05月06月
07月08月09月10月11月12月
2011年
01月02月03月04月05月06月
07月08月09月10月11月12月
2010年
01月02月03月04月05月06月
07月08月09月10月11月12月
2009年
01月02月03月04月05月06月
07月08月09月10月11月12月
2008年
01月02月03月04月05月06月
07月08月09月10月11月12月
2007年
01月02月03月04月05月06月
07月08月09月10月11月12月
2006年
01月02月03月04月05月06月
07月08月09月10月11月12月
ヘルプ利用規約サイトマップ
© LY Corporation