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

にゃんカラのブログ一覧

2017年02月14日 イイね!

ゼビウスの効果音演奏プログラム

Arduino でゼビウスのブザーを演奏するプログラムを公開しておきます。
IPIN1 で指定したピン(デジタルピンの番号)が HIGH になった時に、曲が演奏されます。
他励式の圧電スピーカーを接続するのは、PINNO で指定したピン(デジタルピンの番号)と GND です。圧電スピーカーの両端を PINNO のピンと GND にそれぞれ接続して下さい。

なお、melody 配列で指定している音程を全て NOTE_CS7 にすれば、B型以降の純正のブザーと同じ音程の音になるハズです。
ゼビウスの効果音がお嫌いな方は、そちらでどうぞ。


#define IPIN1  3  // 入力ピン(HIGH のとき音を出す)

#define BEAT 300  // 音の長さを指定
#define PINNO 2   // 圧電スピーカを接続したピン番号
#define TMPO 11   // 演奏テンポ

// 音程の定義
#define NOTE_B0  31
#define NOTE_C1  33
#define NOTE_CS1 35
#define NOTE_D1  37
#define NOTE_DS1 39
#define NOTE_E1  41
#define NOTE_F1  44
#define NOTE_FS1 46
#define NOTE_G1  49
#define NOTE_GS1 52
#define NOTE_A1  55
#define NOTE_AS1 58
#define NOTE_B1  62
#define NOTE_C2  65
#define NOTE_CS2 69
#define NOTE_D2  73
#define NOTE_DS2 78
#define NOTE_E2  82
#define NOTE_F2  87
#define NOTE_FS2 93
#define NOTE_G2  98
#define NOTE_GS2 104
#define NOTE_A2  110
#define NOTE_AS2 117
#define NOTE_B2  123
#define NOTE_C3  131
#define NOTE_CS3 139
#define NOTE_D3  147
#define NOTE_DS3 156
#define NOTE_E3  165
#define NOTE_F3  175
#define NOTE_FS3 185
#define NOTE_G3  196
#define NOTE_GS3 208
#define NOTE_A3  220
#define NOTE_AS3 233
#define NOTE_B3  247
#define NOTE_C4  262
#define NOTE_CS4 277
#define NOTE_D4  294
#define NOTE_DS4 311
#define NOTE_E4  330
#define NOTE_F4  349
#define NOTE_FS4 370
#define NOTE_G4  392
#define NOTE_GS4 415
#define NOTE_A4  440
#define NOTE_AS4 466
#define NOTE_B4  494
#define NOTE_C5  523
#define NOTE_CS5 554
#define NOTE_D5  587
#define NOTE_DS5 622
#define NOTE_E5  659
#define NOTE_F5  698
#define NOTE_FS5 740
#define NOTE_G5  784
#define NOTE_GS5 831
#define NOTE_A5  880
#define NOTE_AS5 932
#define NOTE_B5  988
#define NOTE_C6  1047
#define NOTE_CS6 1109
#define NOTE_D6  1175
#define NOTE_DS6 1245
#define NOTE_E6  1319
#define NOTE_F6  1397
#define NOTE_FS6 1480
#define NOTE_G6  1568
#define NOTE_GS6 1661
#define NOTE_A6  1760
#define NOTE_AS6 1865
#define NOTE_B6  1976
#define NOTE_C7  2093
#define NOTE_CS7 2217
#define NOTE_D7  2349
#define NOTE_DS7 2489
#define NOTE_E7  2637
#define NOTE_F7  2794
#define NOTE_FS7 2960
#define NOTE_G7  3136
#define NOTE_GS7 3322
#define NOTE_A7  3520
#define NOTE_AS7 3729
#define NOTE_B7  3951
#define NOTE_C8  4186
#define NOTE_CS8 4435
#define NOTE_D8  4699
#define NOTE_DS8 4978

int melody[][8] = {   // メロディー
  {NOTE_CS6, NOTE_CS7, NOTE_C7, NOTE_CS7,
  NOTE_F7, NOTE_CS7, NOTE_C7, NOTE_CS7},
 
  {NOTE_C6, NOTE_CS7, NOTE_B6, NOTE_CS7,
  NOTE_F7, NOTE_CS7, NOTE_B6, NOTE_CS7},

  {NOTE_CS6, NOTE_CS7, NOTE_AS6, NOTE_CS7,
  NOTE_F7, NOTE_CS7, NOTE_AS6, NOTE_CS7},

  {NOTE_C6, NOTE_CS7, NOTE_A6, NOTE_CS7,
  NOTE_F7, NOTE_CS7, NOTE_A6, NOTE_CS7},
};

int noteDurations[][8] = {  // テンポ
  {TMPO, TMPO, TMPO, TMPO,
  TMPO, TMPO, TMPO, TMPO},

  {TMPO, TMPO, TMPO, TMPO,
  TMPO, TMPO, TMPO, TMPO},
  
  {TMPO, TMPO, TMPO, TMPO,
  TMPO, TMPO, TMPO, TMPO},
  
  {TMPO, TMPO, TMPO, TMPO,
  TMPO, TMPO, TMPO, TMPO}
};

int melcnt = 0; // フレーズのカウンタ
int melloop = sizeof(noteDurations) / sizeof(noteDurations[0]); // フレーズの数

void setup() {
  pinMode(IPIN1, INPUT);
}

void playsound(int cnt) {
  for (int i = 0; i < sizeof(noteDurations[cnt]) / sizeof(noteDurations[cnt][0]); i++) {
    int dur = 1000 / noteDurations[cnt][i];
    tone(PINNO, melody[cnt][i], dur);
    int pause = dur * 1.30;
    delay(pause);
    noTone(PINNO);
  }
}

void loop() {
  if(digitalRead(IPIN1) == HIGH) {
    playsound(melcnt);
    melcnt %= melloop;
  } else {
    melcnt = 0;
  }
}
Posted at 2017/02/14 21:40:21 | コメント(0) | トラックバック(0) | 日記
2016年11月03日 イイね!

Defi ADVANCE のメーターをコントロール



自分でメーターを作ってみたいと思っていて、既存の追加メーターと置き換えようと考えています。
当初の計画では、HKS のコントローラでメーターだけ付け替えようと思っていました。
しかし、HKS のメーターの通信プロトコルは、解析が困難でした。

で、方針を変更。
Defi-Link の通信プロトコルは解析した方がいらっしゃいます。
旧式のコントローラ(II じゃないやつ)がヤフオクで安かったので購入し、プロトコルを確かめてみました。確かに、解析されている通りのプロトコルでした。

そこで、Defi-Link のセンサーをヤフオクで買おうとしましたが、あんまり安くないんです。出品数が少ないし、結構人気で競り合いになってしまう。
むしろ、Defi ADVANCE で揃えた方が安い感じ。

いろいろ調べたところ、センサー本体は Link も ADVANCE も同じモノのよう。ケーブル(コネクタ)が違うだけ。
ADVANCE 用のセンサーを揃えても、コネクタさえ準備すれば Link でも使えるハズ。

どうしようか考えていたところに、ヤフオクに安めの ADVANCE がセットで出ていたので、買ってしまいました。
で、解析してみたら通信プロトコルが判明。
解析した結果をもとに、メーターをコントロールするプログラムを作ってみました。

一番上の動画が、ブースト計をコントロールしてみたところです。
下の動画が、ブースト計とタコメータ(80Φ)を同時にコントロールしてみたところ。




・・・お気付きの方もいるかもしれませんが、メーターを自作するのにこのプログラムは全く必要ありません。
なぜなら、このプログラムはコントローラの機能を模倣していますが、作りたいのはメーター側だから。

この方がビジュアル的にインパクトがあるかと思って作ってみましたw
Posted at 2016/11/04 01:21:26 | コメント(2) | トラックバック(0) | 日記
2016年09月24日 イイね!

HKS ブースト計をオクにて購入

HKS ブースト計をオクにて購入ヤフオクにて、HKS のブースト計一式を購入しました。



で、自分で見た目が面白いブースト計のメーター部分を作る計画なので、少し調査しました。

気圧センサーからの電圧を測ると、1気圧(目盛り 0)のときにだいたい 1.1V くらい。
そこで、1.1V 前後の電圧を I/F ユニットのセンサーの入力コネクタに入れてみました。



↑ 1.6 V のとき、0.5




↑ 2.1 V のとき、1.0




↑ 2.6 V のとき、1.5




↑ 3.1 V のとき、2.0

1気圧以下も確認。



↑ 0.6 V のとき、-0.5
(-1.0 は、低い電圧を作れなかったので未確認です。)

つまり、約 1.1V が1気圧(目盛り 0)で、100 kPa で 1V 。10 kPa は、0.1V。
ブースト計の目盛りで言うと、1V が 1 。0.1 V が 0.1 。とってもわかり易いセンサーです。


HKS の I/F 付きの電子式メータについて、事前によく調べずに購入しました。
センサーを利用して、見た目が面白いメータを作ってみようと思っていました。
メーターの部分も、使える部分は流用しようかと考えていましたが、調べてみると、油温計や水温計など、他のメーターもブーストメーターにカスケード接続できるようです。



同じ電線を複数のメーターが共有しています。
これは、LAN が引かれているってことなんじゃないの?

ちょっと I/F の中を見てみましょう↓。
あー、やっぱり・・・。



上の写真の赤枠のチップは、LIN のコントローラチップです。ISO 9141 (K-Line) で通信してます。LIN は簡易 LAN です。
黄色枠のチップは、日立 H8 CPU (ルネサス製)です。

もっと単純な仕組みかと思っていましたが、LAN を引いてました。
センサーの電圧は整然としていて自作に使えそうですが、メーターの方はやや高度な電子機器でした。

うーん、どうしようか・・・。
K-Line の通信を解析するか・・・?
そういえば、以前 ELM 社から取り寄せた ELM327 は、K-Line の受信もできたハズ。

↓ELM327 を使って、K-Line 受信の回路を組んでみてます。多分、次回に続きます。




ここから2つに分岐する予定です。
1.見た目が面白いメーター自作のルート
2.ブースト計の設置のルート(一旦、普通に設置してみようかと)

2の方、普通のみんカラ記事になりそうですが、8-4-8 のホースジョイナーについて、ちょっと面白いことが判っています。
Posted at 2016/09/25 01:11:52 | コメント(0) | トラックバック(0) | 日記
2016年04月22日 イイね!

レヴォーグ(など)のエアコンスイッチ その3 取り消し編

続きです。

トヨ@5150 サマのパーツレビューを見て、「おー同じことやってる」と思っていると・・・

「72311FJ030」 おー、同じ型番だー

「アイストしました」 ・・・あれ?

「アイストしました」 ???

いかん、何か間違ったかな・・・

・・・そういえば、「アイストしない」ことの検証が曖昧でした。

変換装置が繋がっちゃってるので、プログラムを書き換え。
何も変換せずに、そのまま CAN BUS ヘデータを流すようにしました。

「アイストするじゃん・・・」

・・・ということは、今までの分析は全部間違い。全部ムダ。
だって、「アイストする」エアコンスイッチと「アイストする」エアコンスイッチを比べて、違いを探してたんだもの。

念のため、検証。
CAN ID 0x280 の3バイト目のデータをすべて「0」にして CAN に流してみました。

アイストします・・・
つまり、このデータはアイストに全く関係ないということ。

「アイストしない」データがないから、解析できない・・・
得意げに記事にしてみましたが、全くの間違い。

という訳で、全く間違いでした。
しかも、これ以上解析もできません。

お騒がせいたしました。m(_ _)m
Posted at 2016/04/22 21:01:43 | コメント(0) | トラックバック(0) | 日記
2016年04月18日 イイね!

レヴォーグ(など)のエアコンスイッチ その2

レヴォーグ(など)のエアコンスイッチ その2エアコンスイッチの続きです。

SporVita の AV パネルが安いというお話が lago. サマの整備手帳にありました。

これイイ!
さっそく、注文。
で、インプスポーツ(GP7A)のエアコンスイッチ(72311FJ030)を取り付けてみました。(マイクの移植がちょっと手間取りました)

ただ付けただけでは終わりませんよ!
せっかく車両側のコネクタがあるので、前回の解析結果の「ビット入れ替え」を、レヴォーグでも動くように入れ替え直してみました。

また変換ケーブルを作成w
配線コムでもう片方のコネクタを購入して、こんなの↓を車体ハーネスとエアコンスイッチの間に入れました。
CAN だけ取り出して、間にビット変換装置を入れてみました。
(ノートに書いてある構想は失敗してますので、参考にしないでください。変換ケーブルだけみてください。)



ビットの変換には、こんな↓モノを使っています。




Arduino Nano と、中華製のアヤシイ 200円 CAN デバイスを2つ使用。エアコンスイッチから出るデータを変換して、車内の CAN に流す装置です。

CAN の ID 0x280 の3バイト目のデータ 0x80, 0x90 を、レヴォーグ用の 0x10, 0x18 に変換しています。その他のデータはそのまま CAN BUS に流しています。

結果、ちゃんとアイドリングストップしています↓(ちょっと見にくいですが)



だからどうしたんだ、と言われればそれまでですがw
私はアイドリングストップを使っていないので単なる実験ですが、ホントにスイッチを使い回しできないようにしてるだけな気がします。


赤い LED のスイッチは、夜間に綺麗ですね!(下のポケットにあるのが、変換装置です。)

Posted at 2016/04/18 21:54:37 | コメント(2) | トラックバック(0) | 日記

プロフィール

「[整備] #レヴォーグ ツイーターバッフル 3Dプリント https://minkara.carview.co.jp/userid/2407630/car/3056290/8313411/note.aspx
何シテル?   07/27 22:49
にゃんカラです。 単なる自慢ではなく、役に立つことを書きたいと思います。 よろしくお願いします。
みんカラ新規会員登録

ユーザー内検索

<< 2025/8 >>

     12
3456789
10111213141516
17181920212223
24252627282930
31      

リンク・クリップ

VNレヴォーグ(E型)/CAN通信調査(3) Mのギア等 
カテゴリ:その他(カテゴリ未設定)
2025/05/23 01:41:24
アクセサリーライナースイッチ D型へ交換 
カテゴリ:その他(カテゴリ未設定)
2025/03/31 00:01:17
STIレザーシート塗装補修 
カテゴリ:その他(カテゴリ未設定)
2024/07/03 00:38:09

愛車一覧

スバル レヴォーグ スバル レヴォーグ
VM4から乗り換えました。車体色はまたレッドです。 初めてローンを使って購入しました。ロ ...
スバル インプレッサスポーツワゴン スバル インプレッサスポーツワゴン
重い車体に 1.5L NAエンジンで非力でしたが、挙動が素直なクルマでした。 扁平率82 ...
スバル レガシィツーリングワゴン スバル レガシィツーリングワゴン
10年乗りましたが、不注意で少しコスってしまって入庫した時にオイル漏れなどがわかり、いろ ...
スバル レヴォーグ スバル レヴォーグ
現在スバル車3台目です。 A型は初めてです。

過去のブログ

2018年
01月02月03月04月05月06月
07月08月09月10月11月12月
2017年
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月
ヘルプ利用規約サイトマップ
© LY Corporation