• 締切済み

PIC 12F629で車速ロックについてなんですが

PIC 12F629で車速ロックについてなんですが http://www.geocities.jp/yu_linus_hp/fielder/fielder_0802.htm こちらの方のHPを参考にして回路を少し変更して、フォトカプラを使用し、Pポジションをマイナスコントロールにし、サイドブレーキでアンロックするようにしたのですが、走行中にサイド(要するにドリフト)を引いた場合もアンロックしてしまいます。 これって、車速パルスを受けている間はアンロックしないようにできるのでしょうか・・・? 当方、回路はある程度わかるのですが、プログラミングは全くの初めてなので、さっぱりわからなく困っております。 どなたか、わかる方が居ましたらお願いします。

この投稿のマルチメディアは削除されているためご覧いただけません。

みんなの回答

回答No.5

動作確認できたようでよかったです。 あと、サイドを引いて停止でアンロックってのは、出来るには出来ると思います。 ただ、変更箇所が多そうなので、こっからは正直勘弁してください(^^;;) このプログラムの作者さんは結構出来る方だと思いますので、 直接、質問なさってはいかがでしょうか? 言語の勉強の件ですが、Cの方が簡単だと思います。 そのCですら、1からやるとなると大変と思いますが。 ただし、8bit系のPIC(特にPIC16やPIC12)は、 C言語との親和性がよろしくありません。 速度やコードのサイズを小さくするのだったら、やはりアセンブラです。 PIC16ならばアセンブラの命令は35個しかありません。 ですから、できあがっているプログラムを読んでいくのは、案外楽です。 はじめは、1つ1つの命令を追いかけていますが、そのうちブロックで考えられるようになります。 そして、いろいろなプログラムを読んでいくと、同じようなブロックが見えてきます。 ここまで来たら、Cでプログラムするのとあまり変わらなくなります。 実際のところ、私はCでプログラムを書いておき、 それをアセンブラに翻訳しています(人間コンパイルなんて読んでますがw) また、フローチャートくらいは書けるようになってください。 車速ロックのサイトの方も掲載されてますよね。フローチャート。 あんなちゃんとしたものでなくていいので、 どんな分岐をして、ループがどこからどこまで何回でなんてのが把握できたらOKです。 (私のフローチャートなんてめちゃくちゃですよ。記号とか規格にそってないしw) こんな感じで、プログラミングをする力をつけていってください。 その上でのポイントをいくつか・・・ (上の勉強の順に書いてあります。) ・勉強するのに使うプログラムは、かならず印刷してください。 初めのうちは、何をしているのかもすぐにはわからないはずです。 ですから、わかったことは、すぐ近くに書いておきます。 さらに、ブロックで何をしているのかも、線で囲って書き込んでいきます。 ジャンプしているところでは、矢印でジャンプ先を書いておくといいです。 また、ジャンプ先でやっていることを、矢印の根本に書いておくといいですね。 ・ノートをとる よく出てくる定石はノートに書き込む。 自分で書くときに手助けになるはずです。 ブログなんかに書いておくのもいいです。 ・何をつくるのか、はっきりさせておく 当たり前のようで、案外やってないことが多いです。 車速ロックの場合、どんなときにロックして、どんなときにアンロックするのか? 車速はどうやって調べるか?どれくらいの速度でロックするか? これを、どんどん具体化させていき、車速クロックが何クロックだったらロックする。とか、 ロック用のピンをLowにするとロックするとか、書いていきます。 また、ここをしっかりしていないと、テストをするときにテスト漏れを起こしやすいです。 長々と書きましたが、修得するためには結構長い時間かかると思います。 車速ロックのプログラムを1から組もうとしたら、1年はかかると思ってください。 でも、自分で組んだプログラムがうまく動いたときは、すごくうれしいものです。 根気よく続けて、すごいもの作ってください!!

mike_cat77
質問者

お礼

本当に、ありがとうございました! 一応サイドの件は解決しましたので、 当分このプログラムで動かしておき、 勉強していきたいと思います。 勉強して理解して、1から自分で組んでみたいですね! とりあえず、アセンブラの方がいいということで、 早速、本を注文しましたので、本を読んでプログラムを印刷して眺めてみます! この度は、本当に助かりました! ありがとうございました!

回答No.4

MT車だったんですね。 ATでドリフト?って思ってたので、納得しました。 さて、おっしゃられる要求仕様なら、プログラムの変更は必要ですね。 割り込み中のP_posの読み込みを変更して、 車速パルスをカウントするようにしないといけません。 ということで、書き換えてみました。 ソースファイルの74行目から書き換えです。 ;***** Parking Position Door Unlock IntPpos btfss ChkFlag,lock ;ChkFlag(lock)=1, skip next return ; movlw d'5' ; movwf ChkCnt ; ChkCnt=5 movlw d'0' movwf TMR0 Ppos_Chk movf GPIO,w ; read GPIO movwf gpbuf ; btfsc gpbuf,p_pos ; if GPIO(p_pos)=0, skip next return ; call Timer100ms ; wait 100msec decfsz ChkCnt,f ; ChkCnt=ChkCnt-1 goto Ppos_Chk ; movf TMR0,w ; movwf tmr0_buf ; tmr0_buf=TMR0 movlw d'5' ; subwf tmr0_buf,1 ; tmr0_buf - w = tmr0_buf btfsc STATUS,0 ; if TMR0 - 5 < 0, skip next return bsf GPIO,unlock ; door unlock sw=on call IntTim500ms ; wait 500msec bcf GPIO,unlock ; door unlock sw=off bcf ChkFlag,lock ; ChkFlag(lock)=0 return ; このままだとわかりにくいと思うので、 スクリーンショットも載せておきます。 左に青丸がついているところが追加した箇所です。 ただ、テストもしてないので、十分検討してください。

mike_cat77
質問者

補足

すいません。補足で返信したつもりだったのですが、返信できていなかったみたいです。。。 本当にありがとうございます! できました! 追加・変更箇所を追加したものを書き込みテスト走行したら 見事、作動します! 一つだけありまして、走行中にサイドを引いてもアンロックしないのはOKで、停止後サイドを引いてアンロックもOK なのですが、 走行中にサイドを引いたまま、停止した場合、車速が0になっても、そのままアンロックしません。 これって、簡単に変更できますか??? 変更できればお願いします。 いつも、本当にありがとうございます。 あと、言語を勉強しようと思っているのですが、 C言語とアセンブラどっちが楽ですか???(使うのはPICだけだとおもいます) よろしくお願いします。

回答No.3

補足ありがとうございます。 これで信号の論理がよくわかりました。 車速を使って判断するようにするには、 不可能ではありませんが、プログラムにかなりの変更を必要とします。 プログラムは全くの初めてということで、 しかも、もともとのソースがアセンブラなので、かなりつらいと思います。 そこで、次のような方法を提案させていただきます。 まず、ドリフト走行時にドアロックが解除ないようにするということなので、 パーキングの信号が12V、サイドブレーキの信号が0Vの時のみ ドアロックを解除するという方法はいかがでしょうか? サイドブレーキの信号を加えた理由がわからないので、これで満足されるかはわかりませんが、 信号待ちでパーキングにしたときに解除されるのを防ぐという目的ならば問題はないと思います。 この条件でよい場合、フォトカプラの出力側Trの結線を変更すれば達成できると思います。 http://www.play-hookey.com/digital/electronics/rtl_gates.html 上記のHP(英語ですが)の最後の方にNANDを得るための結線方法が書かれています。 (Trを縦に直列につなげている回路図です) 寝ぼけた頭で考えていて、間違っているかもしれないので、 実験を行っていただくことをおすすめします(汗) サイドブレーキを引いて、かつ、パーキングにしたときのみ PICの4番ピンにつながっているラインがLo(0V)になり、 それ以外はHi(5V)になってくれれば、大丈夫なはずです。

mike_cat77
質問者

補足

度々、ありがとうございます。感謝です。 なるほどです。 こーゆーやりかたもあるんですねぇ! しかし。。。 やっぱりプログラム変更は私には無理ですかぁ^^;; なぜ、両方ほしいのかというと、 MT車(自分)とAT車(嫁)の両方に対応させたいんです・・・ AT車の方はPでアンロックでなんの問題もないんですが、 問題は自分の車のほうです・・・ MT車なので、P信号がないので上記提案はちょっと厳しいかなとおもいます。 なので、プログラム変更で対応できるみたいだったので、やってみたかったんですが、プログラム未経験ではキツイ物がありましたか・・・

回答No.2

車からの信号の論理が、混乱しているので確認です。 (以下の論理は、Trやカプラを入れない状態で) [シフトレバーのポジション] パーキングのとき → 12V パーキング以外 → 0V [サイドブレーキのポジション] ブレーキがかかっている → 12V ブレーキがリリース → 0V 以上の論理でよろしいでしょうか? また、PICにはI/Oピンの空きがないようですが、 どのように、シフトとサイドの信号を混ぜてますか? ワイヤードOR(それぞれの信号用Trのコレクタ同士を接続)で行われているなら、 少し配線に変更が必要になる気がします。 以上の2点、確認したいです。

mike_cat77
質問者

補足

ありがとうございます。 現在の回路は少し変更してありますが(電源のノイズ等) 基本になっている、回路図を載せておきます。 http://www.joy.hi-ho.ne.jp/k-sekiguchi/lock.gif 素人の回路ですので、なにかヤバイところがあるかもしれません。 一応、当方の車両では問題なく作動します。 >>[シフトレバーのポジション] >>パーキングのとき → 12V >>パーキング以外 → 0V その通りです。 Pにすると12Vが流れることで、フォトカプラのLEDを点灯させ検出しています。 >>[サイドブレーキのポジション] >>ブレーキがかかっている → 12V >>ブレーキがリリース → 0V ではなく、 サイドブレーキのポジション] ブレーキがかかっている → 0V(アースに落ちる) ブレーキがリリース → 0Vというか、なし。 アースに落ちることで、フォトカプラのLEDを点灯させ、検出しています。 また、L端子は無視してください。 一応、こんな感じで全て正常に動作します。 今は、車速ロックご無条件で、サイドブレーキ or Pポジションでアンロックしてしまいますので、 車速を確認後(たとえば、5Km/h以下とは)、アンロックするようにしたいのです。 よろしくお願いします。

回答No.1

車の配線関連については、知識がないので、 サイドブレーキのon/offが得られるかはわかりません。 ただ、サイドブレーキ用のランプがある以上、 メーター類に信号を送っているのは確実です。 この信号が論理(ブレーキのon/offでlo/hi)ならば簡単です。 ナビ用に、サイドブレーキ信号が出ていることがあるようです。 Vitzの場合ですが、参考にてください http://minkara.carview.co.jp/userid/180001/car/331787/553222/note.aspx この信号が取れれば、あとは入出力に入れてやればよいのですが、 ピンが足らないので、PIC12F629では工夫をしないといけません。 (ワイヤードORとか) 何も考えず、18ピンくらいのPICでやるほうが無難かもしれません。

mike_cat77
質問者

補足

ありがとうございます。 サイドブレーキの信号は取れています。 まず、作者のHPの回路ですと、パーキングポジション(+12V)の信号が C1815入り→12F629へ信号を送り、アンロックするという回路になっているのですが、それを当方が、フォトカプラを使用し、本来プラスコントロールのところを、マイナスコントロールにしてあります。 (サイドブレーキの信号は、アースに落ちる信号なので) このフォトカプラを使用した回路で無事アンロックはするのですが、 走行中にサイド(要するにドリフト)を引いたときにもアンロックしてしまうので・・・ 要するに、プログラムの書き換えで解決できるとは思うのですが。。。 プログラムが全くわかりません。。。 プログラムは、、車速パルスによってドアロックされるとスリープモードにはいり、サイドブレーキ信号を検出して、0.5秒後にドアロックを解除します。 サイドブレーキ信号を検出後、車速パルスを確認してからドアロック解除するようにプログラムを変えればいいと思うのですが、どう書いていいのかさっぱりわかりません・・・

関連するQ&A

  • 車速中継コードの灰色の部分は何?車速をとるとTVは見れない?

    車速パルスを取り出すときにつける車速中継コードの途中にある灰色部分は何の役目を果たすものなのでしょうか?(パナソニックのナビです。) 説明書には回路保護部品とあり、切り離ししないで接続してくださいとあります。(繋げる向きまで設定してあります) 不注意でこの中継コードを紛失してしまいまして、もし、普通のコードを使って車速パルスを取り出すとまずいですか? また、今まで車速コードを接続しないでナビを使っておりました。サイドブレーキアースを車体に落としていたので、走行中にもTVが見れたのですが、車速コードを繋げると見れなくなるのでしょうか? ちなみに、ナビはパナソニックのCN-DV3300Xです。 ご存知の方いましたらご教授願います。

  • 車速パルスをもとにリレーをON/OFFする方法

    車速パルスを利用して、走行中はリレーON、停止中はリレーOFFとなる回路を作りたいと思っています。当方PICなどの知識やハードは持ち合わせていないため、これらを使用せずに電子パーツを組み合わせて作りたいと思っているのですが可能でしょうか? 詳しい方がいらっしゃいましたら、ご教授のほどよろしくお願いします。

  • カーナビの配線

    ミライースに自分でカーナビ(ケンウッド製新品)付けようとしています。 その際、車速パルスの配線はサイドブレーキやバックと同じくアースで良いのでしょうか?

  • 純正ナビについて(ベンツ)!!

    ベンツEクラス(W211)を所有しております。 TVキャンセラーを購入しようかと思っているのですが その、商品説明を見ると、オーディオのハンドルコントロールが できなくなるようなことが記載されておりました。 その際に思ったのですが、純正のナビ、また最近のナビは 安全性を考え、サイドブレーキと車速パルスにて自車の停止を 判断しているとの事でした。 そこで、考えたのはそれら、サイドブレーキ・車速パルスに信号を 送れば単純に今の機能はそのままで使用できるのではないかと 思ったしだいです。(ナビ状態の時は、車速パルスが取れないので若干の誤差は出るとは思うのですが、信号を回復・GPS感知で復帰すると思います) 現実に、そういった事は可能なのでしょうか?

  • 純正ナビを走行中も操作するキットで不具合

    走行中の車のナビ操作やDVD鑑賞ができるように、ナビにカプラーを割り込ませるキットを自分で取り付けました。 本来はスイッチで切り替えると操作可能になるのに、そのスイッチが効いたり効かなかったりします。 調子の悪いときに走行中にパーキングブレーキランプを点灯させても症状は変わらず、DVDやサイドカメラの切り替わりも車速が遅くなると普通に切り替わります。これって車速パルスが完全にキャンセルされていないように感じるのですが、そもそもカプラーから交換しているので、配線の間違えは考えにくく、接触不良も逆の作用になるので、一番怪しいのは切り替えスイッチだと思うのですが、他に考えられる不良箇所や、同じような症状があった・・・等の情報をください。 ナビは5年前のマツダメーカーオプションで、サンヨー製(型番不明)。G-BOOKαが使える機種です。

  • 走行中のナビ操作可能改造 キットの価格差はなぜ?

    フィットハイブリッドに、ホンダのディーラーオプションナビVXM-128VSを装備しています。 走行中にナビ操作ができないのが不便なので改善したく、方策を調べています。 現状の仕様としては、シフトレバーがDの状態で停止している時はナビ操作ができ、 走り出して5~10km/h程度に達すると(遅延時間かもしれない)操作ができなくなり、 停車すると1~2秒で再び操作ができるようになります。 停止中に加えて、シフトレバーをパーキングに入れたり、サイドブレーキをかけないと操作できないわけではないので、 インターネットで探すと多くヒットする 「サイドブレーキ信号をアースに落とす」施工やカプラーは、私の車には適合しない処置だと考えていましたが、 実は、私のナビは、車速が入っていないか、又はサイドブレーキ信号が入っているか、 どちらかが満たされると、ナビが操作可能になることが分かりました。 走行中、ナビ操作不能の状態から軽くサイドブレーキを引くと、 ナビ操作が可能になることを、実際に確認しました。 車速が入っていても、サイドブレーキが引かれていれば、ナビ操作可能になるわけです。 つまり、私の車では、サイドブレーキ信号をアースに落としてやるだけで 走行中にナビ操作が可能になるわけですが、 販売されている対応キットの中に、異様に高額なものがあるのを不思議に思っています。 サイドブレーキ信号をアースに落とす施工自体は実に簡単なもので、 ナビに接続されているケーブルの1本を加工するだけなので、実質0円でできます。 その施工が施されたカプラーは2,000円程度で売られており、 これを使うことでケーブル切断を避けられるなら、安いものだと思います。 不思議なのは、15,000円ほどのキットと、20,000円ほどのキットという、高額品です。 ケーブルを1本加工するだけの改造で、そこまでの値段を付けるとは考えられないので、 何か+αかそれ以上のことをしていると考えられるのですが、 具体的に何をしているのか、想像がつきません。 逆に言うと、0円加工や2,000円カプラーでの施工では、何か解決しない不便が残り、 高額キットではそれが解決できるのだろうか、ということになりますが、 安い方法で何か不都合が発生するとも思えません。 2,000円と3,000円の違いだったら、よく分からんけど高い方がいいことあるかも、と 高い方を買うかもしれませんが、15,000円だ20,000円だとなると、そんなレベルを超えています。 ここまでの調査では、2,000円のカプラーを取り付けるのがベストな選択だと思っているのですが、 高額なキットを装着して初めて解決する何らかの問題が残るものなのでしょうか?

  • カーナビの走行中使用制限の解除について

    カーナビの走行中使用制限の解除について(車速パルス対策)走行中のテレビ視聴制限を解除しようと思い、ネットで調べDIYしました。 サイドブレーキ信号をアースする方法を試したのですが、「走行中は音声のみお楽しみください」と表示され失敗でした。 ネットで調べると車速パルス信号解除が必要のようですが、私のナビに適合したTVキットが見つかりません。 ディーラーでは「3000円でやります。」と言っていたので解除する方法があるので、どなたかお知恵を貸してください。 条件は下記のとおりです。 車種 マツダCX-5 ナビ ケンウッド DKX-A800

  • PICでスピードメーターを作るためのプログラムについて

    PIC16F84Aを使用してスピードメーターを自作することを目指しているのですが、 まだ初心者なのでどういったプログラムを組めばよいのかが分からないのですが自分なりに方法を考えてみました。 それは、 車速パルス間の時間をタイマーで計測し、その結果に応じてあらかじめ用意した表示用のデータを出力する。 データを出力したら次のパルス間の計測結果が出るまで表示を続け、次の計測結果が出たらそれを新たに出力する。 というものです。 一般的なメーターもこういう原理なのかも知れませんが・・・。 「Timer0」「プリスケーラ」「割り込み」というものを使用したりするようですが、 正直言ってこれらの具体的な使用方法が分かりませんのでとりあえずスピードメーターを簡素化?したものを学習用として作ることにしました。 それは PICのピンにタクトスイッチを取り付け(チャタリング対策もする)、入力用にする(割り込みが出来るRA4でいいのかな?)。 RBのポートを7セグ表示用のICへ繋ぐ。 という回路で、 電源を入れるとタイマーが計測をはじめ、タクトスイッチを押すと押すまでの時間に応じて結果をポートBに出力する。 電源ON→スイッチ1回目→結果を出力すると同時に2回目までの計測を開始→スイッチ2回目→結果を出力すると同時に3回目までの計測を開始・・・と続く。 この回路での計測結果と出力データの関係は以下のようにします。(適当に考えたものですが) 計測結果が 10秒以上・・・00を表示(2桁はダイナミック点灯で表示) 9~10秒・・・01を表示(厳密には9秒以上10秒未満) 8~9秒・・・・02を表示(厳密には8秒以上9秒未満、以下同じ) 7~8秒・・・・03を表示 6~7秒・・・・04を表示 5~6秒・・・・05を表示 4~5秒・・・・06を表示 3~4秒・・・・07を表示 2~3秒・・・・08を表示 1~2秒・・・・09を表示 0~1秒・・・・10を表示 というものを試しに作ってみようと思います。 アセンブリ言語を使ってプログラムを作るのですが、 Timer0やプリスケーラ、割り込みをプログラムの流れの中でどのように利用すればよいでしょうか? 出来たらソースを作って頂いてそれで詳しく説明を書いていただけると非常に助かります。

  • 175S MOVE ナビ取付について

    純正オーディオ付きの175MOVE(カスタムでない)に、市販のHDDナビを取り付けたいと思います。 ですが、埋め込みナビを取り付けた経験がないので教えてください。 基本的にオーディオの裏まで必要な配線はカプラー(コネクター)で・・来てないですよね。 車速パルスなどはどうやって取るのですか? ACCは純正オーディオで使っていたラインで取れるのですよね? 車種専用のカプラーセット?のような物も一緒に必要ですか? スキルはFDやマジェスタでサスペンション交換・ブレーキキャリパーローター大型化・HID化・ETC取り付け・ラジエター交換・インタークーラーパイプ交換・コンピュータ交換・デイライト取り付け・ブレーキランプ点灯パターン変更・V8ENG+ロータリーENGプラチナプラグ交換です。 宜しくお願いします。

  • エンジンスターター取り付けに関して(ユピテルのスターター)

    こんにちは!当方MH21SワゴンR(プッシュスタートでは無い、イモビ無し)です。 ユピテルのエンジンスターター(VE-E76R)をDIYで取付しようと思っています。(社外HIDやオーディオ取付等できます) このスターター本体にはP・ポジション自動検出機能がありアースのみの簡単配線のようですが、ユピテルの車種別接続情報によるとMHワゴンRでは機能しないようです。 下記の様に記載されています↓ ●P・ポジション自動検出機能は使用できません。 ブレーキ検出線(茶)の接続をしてから、P・ポジションの自動検出の設定を行ってください。 ターボタイマー機能を使用する→Pポジションインジケーターランプ配線に接続します。 ターボタイマー機能を使用しない→フットブレーキスイッチ配線に接続します。 ●エンジンの始動性が悪い場合は、オルタネーター線(白線)をL端子に接続してください。 と、あります。 私はターボタイマー機能を使いたいので、Pポジションに繋ぐ事にします。 ただ、P・ポジション自動検出機能が使用できないのに、接続後に自動検出設定を行ってくださいというのがよく分かりません。 1.これは、 別売り車種別専用ハーネスを使ってポン付けしても自動検出せずエンジン始動等の設定が出来ない為、車種別ハーネスのブレーキ検出線を直接Pポジションに接続すれば設定が出来るということでしょうか? 2.車種別ハーネスのブレーキ検出線をPポジションに接続する時は、分岐させるのでしょうか?それとも配線を切るか・カプラーから抜いてスターター本体側の配線から接続するのでしょうか? 3.よくサイドブレーキかフットブレーキに繋ぐと聞くのですが、Pポジションに繋ぐとサイドブレーキのオンオフに関わらずシフトレバーをパーキングにしている時だけ始動するようになるのでしょうか? 4.オプションでスターターリモコンでのドアロック機能が取り付けられるようです。でも、値が高いのと、ドアロックは純正のキーで充分なので付けないつもりですが、スターターを取り付けると純正キーのドアロックは使えなくなるのでしょうか? 質問が多く申し訳ないのですがどうか宜しくお願い致します。

専門家に質問してみよう