Entries

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
この記事に対してトラックバックを送信する(FC2ブログユーザー)
http://kovayashi.blog120.fc2.com/tb.php/319-78f2c74b

-件のトラックバック

-件のコメント

[C209]

こんなのがダッシュボードにあったらテンションあがりますね!

現在、ハチロクに乗ってるのですが、
STACKみたいなメーターを自作できたらかっくいいな!と妄想しています。
  • 2013-02-18
  • ハカセ
  • URL
  • 編集

[C210]

車のメーターかぁ!! 入門工作にはイイかもね! 5V以下なら苦労せず、ECUから一本盗んでくれば、できちゃうのかな。 ちょっとググったかんじ、86はT1-bってタイプのECUで、回転信号の他、圧力信号(負圧?)ってのがあるね。

[C211]

圧力はサージタンクから取っているみたいです。
ちょっと調べてみます!
Arduino組み込み済みの昭和車って、
なんかイイですね!
  • 2013-02-19
  • ハカセ
  • URL
  • 編集

コメントの投稿

投稿フォーム
投稿した内容は管理者にだけ閲覧出来ます

Arduino+KXM52-1050(加速度センサー)

Gディスプレイって装置がありまして、これを車載ビデオ撮る時に置いておくと、車の加重緯度が可視化されるて、プロのテクニックを盗んだりするのにとても良いものがあります。こちらのyoutubeの2:55くらいからに出てきます。

これのマネごとを今回工作してみます。
参考にしたのは以下のページになります。
http://kousaku-kousaku.blogspot.jp/2008/06/arduino_16.html

まずは、秋月電子で加速度センサーKXM52-1050を購入。
IMG_9864.jpg
お値段1000円

で、前回工作した10*10LEDマトリックスの基盤に組み込みます。
IMG_9912.jpg

あとはコードを書いていくだけになります。
まずは、加速度センサーから検出した値の最大値、最小値を求めます。値はシルアルモニタでパソコンの画面から取得します。

int maxX,maxY = 0;
int minX,minY = 10000;

void setup() {
Serial.begin(4800);
}

void loop() {
int x=analogRead(0); //x
int y=analogRead(1); //y

if(x>maxX){maxX=x;} //747
if(x<minX){minX=x;} //741
if(y>maxY){maxY=y;} //285
if(y<minY){minY=y;} //285
Serial.print(maxX,DEC);
Serial.print(",");
Serial.print(maxY,DEC);
Serial.print(",");
Serial.print(minY,DEC);
Serial.print(",");
Serial.println(minY,DEC);
}

これで、加速度センサーから得られるX,Yのレンジが把握できたところで、前回書いたコードを改造していきます。


int dataPin = 2; // 74HC595のDSへ
int latchPin = 3; // 74HC595のST_CPへ
int clockPin = 4; // 74HC595のSH_CPへ
int c_8 = 8;
int c_9 = 9;
int r_8 = 10;
int r_9 = 11;

int maxX = 745;
int maxY = 745;
int minX = 285;
int minY = 285;
int s = 10;

int stepX = (maxX-minX)/s;
int stepY = (maxY-minY)/s;

void setup() {
//Serial.begin(4800);

pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(dataPin, OUTPUT);
pinMode(r_8, OUTPUT);
pinMode(r_9, OUTPUT);
pinMode(c_8, OUTPUT);
pinMode(c_9, OUTPUT);
}

void loop() {
int x=analogRead(0); //x
int y=analogRead(1); //y

x=s-(maxX-x)/stepX;
y=(maxY-y)/stepY;

digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, (1<<x)^0xff);
digitalWrite(c_8, x != 8);
digitalWrite(c_9, x != 9);
shiftOut(dataPin, clockPin, LSBFIRST, (1<<y) & 0xff);
digitalWrite(latchPin, HIGH);
digitalWrite(r_8, y == 8);
digitalWrite(r_9, y == 9);
}

前回はAruduinoのデジタルPINの0番と1番を使用してましたが、今回は2番からにしました。
と、いうのは、Serial.begin(4800);でデバック用にシリアルを開くと、期待した動作が得られなかったからです。
1、2番PINはシリアルを開く時は使えないみたいです。
最初原因がわからず、さんざんググったら、こちらのブログに報告がありました。

で、結果を以下に
https://www.youtube.com/watch?v=KLVjBQcVhSE&list=UUgPTC956LtXnGoPDQB2m4MQ

なんか、イマイチ。 10×10だから、センターを表現できないし、10×10じゃ少なすぎかな。
でも、原理的には、こうですね。
この記事に対してトラックバックを送信する(FC2ブログユーザー)
http://kovayashi.blog120.fc2.com/tb.php/319-78f2c74b

0件のトラックバック

3件のコメント

[C209]

こんなのがダッシュボードにあったらテンションあがりますね!

現在、ハチロクに乗ってるのですが、
STACKみたいなメーターを自作できたらかっくいいな!と妄想しています。
  • 2013-02-18
  • ハカセ
  • URL
  • 編集

[C210]

車のメーターかぁ!! 入門工作にはイイかもね! 5V以下なら苦労せず、ECUから一本盗んでくれば、できちゃうのかな。 ちょっとググったかんじ、86はT1-bってタイプのECUで、回転信号の他、圧力信号(負圧?)ってのがあるね。

[C211]

圧力はサージタンクから取っているみたいです。
ちょっと調べてみます!
Arduino組み込み済みの昭和車って、
なんかイイですね!
  • 2013-02-19
  • ハカセ
  • URL
  • 編集

コメントの投稿

投稿フォーム
投稿した内容は管理者にだけ閲覧出来ます

Appendix

プロフィール

kovayashi

Author:kovayashi
・嫌いなもの
 →好きなもの

・インストール
 →バンドル
・バックアップ
 →アップロード
・努力
 →チート

最近のトラックバック

ブログ内検索

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。