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

ケロタン少佐のブログ一覧

2008年08月05日 イイね!

車速感応ドアロックのプログラム・・・♪

みなさん、御無沙汰しております。

ケロタン少佐デあります・・・(^_^)ヾ



カエル部隊、長男誕生ブログにおきましては、

真心からの、温かいコメントを頂戴いたしまして、

誠にありがとうございますm(__)m


大変遅くなりましたが、順にコメントの返信をさせて頂きますので、

御了承くださいませm(__)m




さて、長男誕生という、人生の一大イベントも終了し、
実家から、我が家へと帰ってきて、連日連夜
パドルシフト制御のプログラム修正を行っていました。



懸念されていたタイマープログラムも、
メインルーチンのフレームを大幅修正することにより、
満足のいくものが出来上がりました。
この修正にあわせて、開発言語もアセンブラから
C言語へと変更してあります。今後の開発に
関数を利用するため。


そして、実際に動作を確認する為に、先日、
お友達のkazu23Tさんの実車に装備しに行ってきました。
さて、うまく行くかと取り付けて動作確認をしたところ、
プログラムの暴走・・・!!!!!!

困ったものデあります...orz




その日は、P・S・Cユニットを持ち帰り、自宅で不具合の
調査をしてみました。

ユニット上のROMを取外し、予備のROMを付けて、
実験ボードにて検査してみると、動作は正常でした。
次に、実装されていたROMのデータを吸い上げて
プログラムの比較を行うと、どうもクラッシュしている
様子...orz

そこで、その実装ROMに新たにデータを書き込んで
実験ボードにてテストをしてみると・・・暴走モードへ...orz
どうも、ROM自体がハードクラッシュを起こしているよう
デありますた・・・2個もROMをオジャンにしてしまった...orz

原因を解明すべく考えた結果、どうもアース側から
電流の回り込みがありそうな予感。
ハードの見直しが必要そう・・・。



そこで、回路図を新たに書き直し対策することにしました。
更に追加で他の部分も対策を・・・

・電流回り込み防止の為に、アースラインへ整流ダイオードの追加
・過電流防止の為に、リセッタブルフューズの追加
・車両ノイズによる、誤動作防止の為に、シールドの追加

以上により、ユニットへの入口と出口を保護してやったので、
電流によるROMのクラッシュは防げるものと考えています。



さて、また車両実験にうつりますので、
kazu23T様、よろしくお願い致しますm(__)m




ところで、題名と記事が少し、ずれてしまいました・・・(^_^;)ヾ

表題の通り、『車速感応ドアロック』のプログラムが完成しましたので、
今後は、実験ボードを作って、動作検証作業に移りたいと
思うデあります♪


【追記】
緊急時の脱出装置として、L端子信号遮断時と
燃料ポンプ停止時に、強制ドアロック解除機能を
追加いたしました。



【C言語ソース(AVR)】
(一部抜粋)

/*****************************************************************************

AVR Studio 4 C言語用 Ver1.5(ATtiny2313用) 2008.8.4

車速感応ドアロック プログラム (A・D・L)

Program Name : auto-door-lock-ver1.5.c
Version : 1.5
Language : AVR C言語 (WinAVR)
Device : ATtiny2313
Clock : 1MHz(内蔵RC発振)
Author : ケロタン少佐

******************************************************************************

動作仕様
1.時速15km程度でロック
2.サイドブレーキでアンロック
3.手動でアンロックしドアオープン後は規定速度で再ロック

STATUS LEDの動作
点滅1
車速監視中
規定速度でロックする。
点滅2
ロック後アンロック条件監視中
フットブレーキでアンロック。
ドアオープンで車速監視へ。

******************************************************************************

int main(void){

unsigned char x, x0; // ppos_cnt;Pポジション持続時間カウンタ検出用
// door_cnt;ドアオープン持続時間カウンタ検出用
// speed_cnt;車速持続カウンタ検出用

//初期化
DDRB = 0b11111111; // ポートB全出力
PORTB = 0b00000000; // 初期値0

PORTD = 0b00100011; // bit5,1,0を内部プルアップ,0010 0011
DDRD = 0b11011100; // bit5,1,0を入力,1101 1100

//タイマー0(車速カウンタとして使用)
TCCR0B = 6; // TMR0を立下りエッジでのカウンタモードに
TCNT0 = 0; // タイマー0 初期値0

//タイマー1
TCCR1B = 1; // TMR0プリスケーラ=0
TCNT1 = 0; // タイマー1 初期値0

statusLock = 0; // ドアロックフラグ初期値0
ppos_cnt = 0; // フットブーレキポジションフラグ初期値0
door_cnt = 0; // ドアスイッチフラグ初期値0
speed_cnt = 0; // スピード信号フラグ初期値0
cnt_mode = 0; // カウントフラグ初期値0

x0 = PIND & 0b00100011; // 持続時間カウンタ初期値を代入


//メインループ
while(1) {

//ステータスLED点滅
PORTB ^= _BV(6); // 排他的論理和 PB6を反転
x = PIND & 0b00100011; // スイッチの状態を取込

if (x != x0) {
if ((x & 0b00100010) == 0) { // ppos = ON-st
ppos_cnt = 0; //
cnt_mode = 1; //
count_st(); //
}
if ((x & 0b00100001) == 0) { // door = ON-st
door_cnt = 0; //
cnt_mode = 2; //
count_st(); //
}
if ((x & 0b00000011) == 0) { // speed = ON-st
speed_cnt = 0; //
cnt_mode = 3; //
count_st(); //
}
}
x0 = x; // 前回のスイッチ状況を反映
wait_1ms(10); // 10ms待ち チャタリング防止用wait

//---- ロックしていないとき ----
if (statusLock == 0) {

//Pポジション、ドアオープン時は車速チェックしない
if (PD0 == 0 || PD1 == 0){
ppos_cnt = 0; //
door_cnt = 0; //
} else {
//車速計測
TCNT0 = 0;
wait_1ms(250); // 250ms待ち
wait_1ms(250); // 250ms待ち

//車速チェック
//1秒毎にSパルス(s_pals)以上が1秒( 1s = 15)つづけばロック
if (TCNT0 > 8) { // s_pals 実行スピードパルスを入力
// 例)15キロ時 = 8,
if (speed_cnt > 15) {
//ロック
lock();
statusLock = 1; //
ppos_cnt = 0; //
door_cnt = 0; //
speed_cnt = 0; //
count_end(); //
cnt_mode =0; //
}
} else {
speed_cnt = 0; //
}
}

//---- ロックしているとき ----
} else {

//Pポジションが1秒( 1s = 15)続くと、アンロック
if (PD0 == 0) {
if (ppos_cnt >= 15) {
unlock(); //
statusLock = 0; //
ppos_cnt = 0; //
count_end(); //
cnt_mode = 0; //
}
} else {
ppos_cnt = 0; //
}

//ドアオープンが0.5秒( 0.5s = 8)続くと、ロックしていないと判断
if (PD1 == 0) {
if (door_cnt >= 8) {
statusLock = 0; //
door_cnt = 0; //
count_end(); //
cnt_mode = 0; //
}
} else {
door_cnt = 0; //
}
wait_1ms(100); // 100ms待ち LED点滅変更用wait
}
}
}

/*****************************************************************************
**** END */


Posted at 2008/08/05 10:36:33 | コメント(11) | トラックバック(0) | プログラミング | 日記
2008年07月23日 イイね!

やっと会えましたね。

やっと会えましたね。
みなさん、こんばんわ。

ケロタン父であります(^_^)ゞ


本日、待望のケロタンJr.が誕生したデあります♪


アヒル母隊長も元気であります♪


ご声援下さいました皆様、本当にありがとうございましたm(__)m


とりあえず、ご報告まで…(^_^)ゞ


Posted at 2008/07/23 20:40:20 | コメント(84) | トラックバック(0) | 雑記 | 日記
2008年07月17日 イイね!

ハンドル・オーディオスイッチについての考察

みなさん、こんにちわ。

ケロタン少佐デあります・・・(^_^)ヾ





さてさて、パドル・シフト・制御回路(P・S・C)も完成し、

いよいよ、実際のパドルシフト付き純正ステアリングに

接続する日が近づいてきました。


そこで、いくつかの機能スイッチを、純正ステアリングの

オーディオスイッチに移植しようと考えていました。


実際にDでもらってきた、純正ステアリング部の

オーディオスイッチ回路図を見てびっくり、

IN・OUT間に集合抵抗が配置してあって、

電流変化を起こす仕組みになっているのですね。


うぅ~ん、困ったよマツダさん・・・(汗





【図1. 純正回路図を基に新たに作図】








IN・OUTが1系統だけだと、単純に機能スイッチを

移植することが、できない・・・(汗


これら、オーディオスイッチ群を利用する為には、

電流変化量を測定するデバイスが必要になるではないか。

そこで、A/Dコンバータを利用することに・・・



A/DコンバーターICをそのまま使かってもよい

のだが、ここは、電圧・電流比較器のコンパレータ

使ってみようかと。しかしコンパレーターには

電圧専用もあるので、簡易なオペアンプ

代用してみることにした。




【図2. スイッチのOUT側に自作A/Dコンバーターを追加】





だれも指摘してくれないのね・・・(汗



回路図、間違っていたので、自分で直しておきました・・・(^^;)ヾ


この回路を追加することによって、純正ステアリングの

オーディオスイッチから、信号を取得できるはず。


まだ、試作回路を作成して、実験をしていないので、

なんともいえないが、ココをクリアできれば、

かなり応用用途が広がると思うのデあります・・・(^_^)ヾ


* A/Dコンバータ、コンパレータ、オペアンプの詳細説明リンク





Posted at 2008/07/17 11:18:33 | コメント(9) | トラックバック(0) | 電子工作 | 日記
2008年07月16日 イイね!

一号と二号・・・!!!!

一号と二号・・・!!!!パドル・シフト・コントロール(PSC)

一号と二号の競演!!!!

二号は部品の見直しを行って、
少し小さく作ってみました。

まだまだ、省スペース化の余地ありデあります・・・(^^;)ヾ

Posted at 2008/07/16 23:55:39 | コメント(5) | トラックバック(0) | 電子工作 | 日記
2008年07月14日 イイね!

ハード・ソフト・バージョンアップ完了

ハード・ソフト共にバージョンアップ完了!!!!

テストも無事終了!!!!


『パドルキャンセラー』



対応完了♪・・・(^_^)ヾ



扇風機なしで、半田ゴテとパソコンファンは、さすがに暑い!!!!!
Posted at 2008/07/14 22:35:43 | コメント(5) | トラックバック(0) | MPV | 日記

プロフィール

「お仕事ちうデあります・・・(^_^)ヾ」
何シテル?   09/04 11:33
めぐりめぐって初マツダです。 皆さんよろしくお願いします。 お約束ですが、当ブログの内容を見て整備、修理して不具合が生じても、当プログ主は責任を負えませ...
みんカラ新規会員登録

ユーザー内検索

<< 2025/8 >>

     12
3456789
10111213141516
17181920212223
24252627282930
31      

愛車一覧

マツダ MPV マツダ MPV
家族の為にミニバンにしました。 新型MPVのあまりの出来に家族で 大満足です。 これ ...
ホンダ シビック ホンダ シビック
私に操る楽しさを教えてくれた車です。 VTECのハイカムに入ったときの 加速がたまりま ...
日産 スカイライン 日産 スカイライン
私に整備の楽しさを教えてくれた車です。 かなり高齢でしたが、まだまだ元気でした。 一 ...
その他 その他 その他 その他
ブログ用画像倉庫

過去のブログ

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