2008-03-29

ICウインカーリレー


流れるウインカー基板をテストしているとウインカーの様にON/OFFさせるのがめんどくさくなり作ってしまいました。
パワーMOS-FETを使用しているので車やバイク(12V)でもしっかり使える本格的なものです。
タイトルのリンク先に詳しく製作記事が載っています。
ICやMOS-FETの説明が無いのでぐぐってデータシートを取り寄せて作成しました。
100kΩの抵抗を半固定にして4.7μFのコンデンサを10μFに変更して点滅速度を変更できるようにしてみました。

これでテストが楽になりました。
Posted by Picasa

2008-03-27

プリント基板編集ソフトウェア


いつも汎用基板を使って電子工作をしていましたが、そろそろ基板も作成してみようかと思っています。


水魚堂さんのサイトでプリント基板編集ソフトウェアを公開されているので(詳細はタイトルをクリックしてね)これで勉強中です。


ためしに流れるウインカー基板をイメージだけですが作成してみました。
基板の表(半田面ではない)から見たイメージです。
結構簡単にできてしまいました。

ドアロック連動ミラー格納ユニット 

オデッセイのオーナーから頼まれてドアロック連動ミラー格納ユニットを作成してみました。
タイトルをクリックすると製作の詳しい情報が見れます。

まず自分のムーブで試して上手く出来たので、依頼者の車にもつけました。

最初はもっとコンパクトにしようとWEBに載っているものより部品の配置を考えたつもりなのですが、上手く行かずヒューズを2回もとばしてしまった。
忠実に作り直して全く問題なしで動作しました。
ムーブの場合は常時電源がドアに来ていないのでヒューズボックスからとりました。
自分の車につけたユニットの写真
制作の様子(みんカラの整備手帳)

依頼者と一緒に「なんちゃって高級車!!」といって喜んでいます。

冬までにキャンセルスイッチをつけたいと思っています、自分の住んでいるところは寒いところなので凍結して動かなくなる可能性があるので。
キャンセルスイッチはWEBにあるような完全な切替ではなく、ドアロックの信号線をスイッチで切るようにしたいと思っています、「信号が行かなければ普通の動作だけになる」これでいいと思っています。

2008-03-25

流れるウインカー基板 せぃさんVer PG作成中

ウインカーSWの回路変更のプログラム修正をして動作確認しました。
とりあえずKAYOちゃんバージョンと同じ動きはできました。
パターン追加の要望があったので、その対応とせぃさんバージョンのウェイクアップを考えないといけませんね。

2008-03-24

流れるウインカー基板 せぃさんバージョン 基板完成

流れるウインカー基板 せぃさんバージョン 完成です。
ウインカーSWの回路を変更しているのでプログラムも変更が必要です。
とりあえずKAYOちゃんバージョンと同じ動きをするところまで直したいと思います。

2008-03-23

流れるウインカー基板 せぃさんバージョン 基板作成中

基板のパターンも決まり作成に着手しました。

両面スルーの基板は半田が反対側に流れて意外に使いにくかった、用途を考えて選択する必要があるようですね。
そんな感じで部品はつけたけどパターンの配線ができていません。

2008-03-18

流れるウインカー基板 せぃさんバージョン 着手 

第1作目(KAYOちゃんバージョン)が上手くできたので、2作目に着手しました。
こんどはせぃさんバージョンになります。

まったく同じでは面白くないのでバージョンアップを考えています。
今考えているのは。
・基板はガラスエポキシで両面スルー(ちょっと高級?)を使う。
・ウインカーSWの入力部にフォトカプラ-を使用する。
・基板の配線パターンの最適化。
・ワンタッチウインカー
 (ちょんとSWを入れるだけで一定時間ウインカー動作する)
 この機能は本人に確認しないといけませんね。

部品はほとんどそろったので基板の配線パターンの見直しをしています。
基板の配線パターンを考えるのはパズルみたいで面白いですよ。
きれいにパターンが出来た時には、ちょっとうれしいですね。

2008-03-14

流れるウインカー基板 作成後記  

今回、作成してみて一番はまったのが動作クロックですね。
内部クロックをF88ではプログラムで設定しないといけない。ということに気づかなかった。

プログラムの先頭に4MHzで動作させる場合は次のコマンドが必要です。
OSCCON = %01100100
当然、OPTIONレジスタの設定も必要です。

タイマー割り込み関係のみを抜き出してみました。
参考にしてください。
(空白に全角文字を使っているのでコピペには注意)

program F88WINKER

dim counter as word

’割り込み処理
sub procedure interrupt
 'ここで割り込み処理を記述します。
 inc(counter) ' Increment value of counter on every interrupt
 TMR0 = 64
 INTCON = $20 ' Set T0IE, claer T0IF
end sub

’初期処理
sub procedure init_rtn
 OPTION_REG = $82 ' Assign prescaler to TMR0
 counter = 0 ' Initialize counter
TMR0 = 64
 INTCON = $A0 ' Enable TMRO interrupt
end sub

main:

 OSCCON = %01100100 ' 内部クロックを4MHzに設定

 init_rtn ’初期処理

 while true

  ’メイン処理
  if counter = 200 then ' if counter is 200, then
   ' ここで一定周期ごとの処理をする
   counter = 0
  end if

 wend

end.

2008-03-05

流れるウインカー基板 最終調整

ちょっと、修正して色んなパターンに対応できるようにしました。

・ウェイクアップ動作後、現在の設定パターンがわかるようにハザード動作をするようにした。
・モード切替時に、設定パターンがわかるようにハザード動作をするようにした。
・ON/OFF動作を続けて行うパターンも可能にした。
・パターンを3種類から6種類に増やした。


動作は下記の動画を参照してしてください(重いよ!30MB)


流れるウインカー

2008-03-02

流れるウインカー基板 完成

一応完成です。

PICマイコンの内部クロックが最低速度で動いているのに気付かず、スピードが思うように出ずあせりました。

写真は回路図をおこすために記録としてアップしました。

2008-02-28

流れるウインカー基板 スイッチ入力処理  

複数のパターン処理対応も済み、スイッチ入力の処理に取り掛かっています。
スイッチ入力の骨組みが出来ました。
モード切替、ウインカー右、ウインカー左の入力の処理を作ればほぼ完成のところまできました。

スイッチ入力はチャタリングというものがあり、ONにしただけなのに接触不良当でON/OFFを繰り返す症状をいいます。
これがあるとPICマイコンは処理が早いのでその都度処理が走ってしまい、たとえばモード切替をしたつもりでも何回もボタンを押したことになり、正常に処理が出来ません。
短時間でのON/OFFは処理しないようにプログラムが必要です。
頭の中で一気に考えてコーディングしましたが、すんなり動きました。(良かった!)

週末には一度お披露目できるかも?

2008-02-27

流れるウインカー基板 パターン処理  

パターン処理も骨組みが出来ました。
複数パターンを考慮しスイッチ入力の処理をつければ全体的な骨組みが出来ます。
スイッチ入力が簡単なようで難しいのです、これはちょっと後回しにしています。

参考資料・・・

const ptntbl as byte[15] = ($00,$18,$3C,$7E,$FF,$E7,$C3,$81,$00,$00,$00,$00,$00,$00,$00)
const ptnctl as byte[15] = (1,2,3,4,5,6,7,0,0,0,0,0,0,0,0)
const ptntim as byte[15] = (2,1,0,0,0,0,1,2,0,0,0,0,0,0,0)

こんな感じでパターンの情報をもたせます。
ptntblの変数が実際のパターンを管理します。
上記の場合こんな感じで点灯します。
○○○○○○○○ $00 0番目
○○○●●○○○ $18 1番目
○○●●●●○○ $3C 2番目
○●●●●●●○ $7E 3番目
●●●●●●●● $FF 4番目
●●●○○●●● $E7 5番目
●●○○○○●● $C3 6番目
●○○○○○○● $81 7番目
以下繰り返し
データは16進でセットしています。

ptnctlが次のパターンを示しています。
1,2,3,4,5,6,7,0と順に7番目までセットすると次は0番目に戻りぐるぐる繰り返すように設定しています。

ptntimが時間(回数)です。設定された数値+1回セットします。
これを考慮して説明すると
○○○○○○○○ $00 0番目 2
○○○○○○○○ $00 0番目
○○○○○○○○ $00 0番目
○○○●●○○○ $18 1番目 1
○○○●●○○○ $18 1番目
○○●●●●○○ $3C 2番目 0
○●●●●●●○ $7E 3番目 0
●●●●●●●● $FF 4番目 0
●●●○○●●● $E7 5番目 0
●●○○○○●● $C3 6番目 1
●●○○○○●● $C3 6番目 1
●○○○○○○● $81 7番目 2
●○○○○○○● $81 7番目 2
●○○○○○○● $81 7番目 2
こんな感じになります。

メインの処理です、あくまでも参考です。
main:
init_rtn
while true
if counter > speed then ' if counter is speed, then
led = ptntbl[ptnstep]
inc(ptncnt)
if ptncnt>ptntim[ptnstep] then
ptnstep=ptnctl[ptnstep]
ptncnt=0
end if
counter = 0
end if
sw_chk
PORTB =led
wend
end.

2008-02-26

流れるウインカー基板 確定  

基板は確定でプログラムを作成中です。

一番ベースとなるスピードコントロール処理が出来ました。
次はパターンテーブルからセットする処理を作る予定です。
今は点滅のみです。

2008-02-16

流れるウインカー基板

流れるウインカー基板出来ました。
PICマイコンのプログラムはこれからです。

全部半田で基板のパターンを作ったのでちょっと大変でした。

動作確認用のLED基板も作成して準備完了です、プログラム作成頑張ります。

2008-01-26

流れるウインカー バイク編

本拠地普通車のウインカーを流すの製作記事をのせていましたが、せいさんと力を合わせて今度はバイクのウインカーを流してみたいと思っています。

普通車のウインカーを流すでは、ロジックIC(シフトレジスタ)を使いましたが、自由なパターンでできるようにPICマイコンで制御を考えています。

制御系は自分が担当で実装系はせいさん担当になるのではと思います。

PICの開発はmikroBASICを使う予定ですが、思うようにならないときはアセンブラで切り替える予定です。

いままで色々やりかけましたが、実装系が面倒で挫折していましたが、今回は力を合わせてできるのでいいものができるのではと楽しみにしています。

2008-01-17

VBAUSBIO.DLLのベータ版(Ver0.51) USB-An命令修正 

VBAUSBIO.DLLにUSB-An命令を追加したベータ版を作成中です。
アナログ入力で255までの値しか取り込めないBUGがあり対応させました。
ダウンロードは以下のアドレスです。
http://bake-san.com/download/vbausbio/beta/vbausbio_v051.lzh

参考までに追加されたUSB-An命令の簡単な説明です

【新機能】
USBで電子制御(Km2Net様著者)のサンプルソースで使われている
USB-An用の関数と互換命令を追加しました。

・openUsbIo
関数 :USB-IOオープン
概要 :接続中のUSB-IOを全てオープン
戻り値:発見したUSB-IO数 存在しない場合は 0

・closeUsbIo
関数 :USB-IOクローズ
概要 :オープン中のハンドルクローズ
戻り値:なし

・outputUsbIo
関数 :USB-IO 出力
引数 :int iUsbioNo オープンしたUsbIo 0~
  :int iPort 出力ポート 0 or 1
:int iData 出力データ
概要 :USB-IO の指定ポートを出力
戻り値:0 出力成功 その他エラー

・inputUsbIo
関数 :USB-IO リード
引数 :int iUsbioNo オープンしたUsbIo 0~
:int iPort 入力ポート 0 or 1
概要 :USB-IOの指定ポートを読取
戻り値:0 以上 入力値 0 未満 エラー

・setUsbAnChannel
関数 :USB-An チャンネルセット
引数 :int iUsbioNo オープンしたUsbIo 0~
:int iCh チャンネル
: 8: 8Bit変換 4Ch 2DIO
: 10:10Bit変換 4Ch DIOなし
概要 :USB-Anの読み取りチャンネル設定
戻り値:0 設定成功 その他エラー

・setUsbAnMode
関数 :USB-An モードセット
引数 :int iUsbioNo オープンしたUsbIo 0~
:int iAnModeParam
: 8: 8Bit変換 4Ch 2DIO
: 10:10Bit変換 4Ch DIOなし
概要 :USB-Anの読み取りモードを設定
戻り値:0 設定成功 その他エラー

・inputUsbAn
関数 :USB-An 入力
引数 :int iUsbioNo オープンしたUsbIo 0~
:int iCh 読み込みチャンネル
概要 :指定チャンネルのアナログ値読み取り
戻り値:0 以上 入力値 0 未満 エラー

・outputUsbAnD
関数 :USB-An デジタル出力
引数 :int iUsbioNo オープンしたUsbIo 0~
:int iData 出力データ
概要 :USB-An 出力
戻り値:0 以上 入力値 0 未満 エラー

・inputUsbAnD
関数 :USB-An デジタル入力
引数 :int iUsbioNo オープンしたUsbIo 0~
概要 :USB-An デジタル入力
戻り値:0 以上 入力値 0 未満 エラー

2007-12-25

VBAUSBIO.DLLのベータ版(Ver0.5) USB-An命令追加 

VBAUSBIO.DLLにUSB-An用の命令を「USBで電子制御」の本のサンプルを参考にして追加しているところです。
やっと、動かせるレベルまでできました、引続きテスト中です。

Dim ret As Long
Dim iVolts As Long
Dim sDsipAD As String

ret = openUsbIo
If ret = 0 Then
MsgBox "USB-IOが見つかりません"
Exit Sub
End If

ret = setUsbAnMode(0, 10)
ret = inputUsbAn(0, 0)
iVolts = ret * 5000 / 1023
sDsipAD = "[電圧:" + Str(iVolts) + "] "
Me.lbl1.Caption = sDsipAD

closeUsbIo

こんな感じでアナログ入力が出来ます。
もちろん今までの命令もつかえます。

開発中のベータ版のダウンロード先は下記のとおりです。
http://bake-san.com/download/vbausbio/beta/vbausbio_v050.lzh

2007-12-23

VBAUSBIO.DLLをバージョンアップしました。 

入力時の不具合(不定期、及び定期的に入力値が0になる)を対応しました。
新命令も追加しています。
・uio_getvid n
 n…番号(0~uio_getdevsで得た値) 繋がれている指定するUSB-IOのvidが戻り値に帰ります.
・uio_getpid n
 n…番号(0~uio_getdevsで得た値) 繋がれている指定するのUSB-IOのpidがstatに帰ります.
・uio_selid vid,pid
 vid…ベンダーID pid…プロダクトID 複数のUSB-IOが繋がれている場合にvid,pidで指定します.

以上の3命令です。

ダウンロードは下記のアドレスです。
http://bake-san.com/download/vbausbio/v040/vbausbio_v040.lzh

引続きバージョンアップを考えています、次はKm2Net様のUSB-An用の命令を追加予定です。
これにより、USB-Anを簡単に使えるようになります。(予定)
命令は「USBで電子制御」で使われている関数に合わせる予定です。
流用がしやすくなるのではと思っています。
こちらのベータバージョンは下記のアドレスからダウンロードできます。
http://bake-san.com/download/vbausbio/beta/vbausbio_v050.lzh
残念ながらまだまともに動いていません。

また、ダウンロードがしやすいように http://bake-san.com/download/ 以下のディレクトリーは表示されるようにサーバーの設定をしました。
ダウンロード可能なファイルは閲覧できるようになりました。
今までUPしたファイルも少しずつ整理をして行く予定です。

2007-12-22

VBAUSBIO.DLLのベータ版3 

今回のベータ版の大きな目的はDLLの不具合を対応することでしたが、
やっと目的が達成できそうです。

不具合の内容
uio_inp命令で入力するが時々値が0になることがある。

原因
USB1.1とUSB2.0の動作の違い
XPと2000の動作の違い

症状
 正式バージョンの場合
  USB2.0で不具合(値が時々0になる)がでる。
 ベータ版2の場合
  USB2.0でOSが2000の時不具合がでる。
  Xpは正常動作するようになった(しかし遅い)
 ベータ版3の場合
  不具合なし(であるといいなぁ)
  正式バージョンで症状が出ているテストプログラムでテスト中、今の所問題なし。

ベータ版3は前回と同様の場所からダウンロードできます。
http://bake-san.com/download/vbausbio/beta/vbausbio_beta.lzh

なんか入力が上手く行かないと心当たりがある人は試して見るといいかも。

近いうちに正式バージョンアップします。

ちなみに現在のバージョン(Ver 0.3)は下記の場所からダウンロードできます。
http://bake-san.com/download/vbausbio/v030/vbausbio.lzh

2007-12-20

VBAUSBIO.DLLのベータ版2 

VBAUSBIO.DLLのベータ版を修正して見ました。
今回の症状を自分の環境で再現できていないのですが、あやしいところを修正して見ました。
同様にテストをお願いできればと思います。

最新版のダウンロードは今までと同じところから出来ます。
http://bake-san.com/download/vbausbio/beta/vbausbio_beta.lzh