今まではPICといえば、16F84Aを使っていたのですが、今これを買おうとすると結構高い!!
なのでPIC16F648Aを購入して試しています。
16F84Aに比べると機能がいっぱいあり楽しみです。
とりあえず、LEDをつけてみることにしました。
初心に戻って始めましたが、早速はまりました。
どう設定してもRA4だけ出力が出来ないのです、
データシートを確認するとRA5はInputのみなので出力できなくていいのですがRA4はOutput出来るはずなのです。
1晩なやんで今日バスの中でデータシートをながめていたら、内部回路がRA4だけおかしいなぜかRA4だけオープンドレインになっています。
さらにデータシートをよく読むとRA4だけオープンドレインになっていると記述があった。
どうりで、ということはLEDを付け直せば大丈夫ですね。流れ込みの回路で家に帰ったら試して見よう!
ロジックレベルで使用するにはプルアップ抵抗が必要になりますね。
16F84Aを使っていたころは諸先輩方の回路とプログラムを参考にしていたので問題にならなかったようです。
データシートはよく読まないといけませんね。
2007-04-25
2007-04-24
PIC Writer 509 作成
前回のPICプログラマーのUSB電源化では、秋月のPICプログラマーを使いましたが、ちょっと大きいので前から気になっていたPIC Writer 509を作成して見ました。
サポートしているPICも結構多く(自分が使いたいPICは全てOK)、サクサク書き込みが出来ています。
写真の右側(緑色の基板)がUSシリアル変換モジュールです。
左側の基板の上半分がPIC Writer 509です。
左側の基板の下半分が5Vから13Vを作り出す、昇圧回路です。(PICプログラマーのUSB電源化で紹介したものと同じもの)
コンパクトになり持ち運びに便利になりました。
PICプログラマーのUSB電源化
秋月のUSBシリアル変換モジュールを取り付けました。
電源はこのUSBシリアル変換モジュールから5Vを取っています。
当初はRS232CレベルコンバータIC部分を取り除いて直接つなげようと思っていましたが、パターンが小さく上手く取り除けそうに無いのであきらめました。
USBは1口だけですむようになり便利になりました。
2007-04-20
PCでLED電流制限抵抗を求める
HPではなく、鍋テックの鍋電卓(PCで動作する関数電卓)でLED電流制限抵抗を求められるようにしました。
あまり、意味は無いかもしれませんが、いちいちIEを立ち上げて・・・とせずに、
鍋電卓を立ち上げてすぐ計算が出来ます。
ノートを持ち歩いて・・・電子工作・・・しない気がしてきた。
せっかく作ったのでソースを載せておきます。
以下、ソース
----------
cls
print "LED電流制限抵抗を求める"
input "電源の電圧(V) ?", be
print "電源の電圧"; be; "V"
input "LEDの電流(A) ?", la
print "LEDの電流";la; "A"
input "LEDの電圧(V) ?", le
print "LEDの電圧";le; "A"
input "LEDの直列個数 ?", n
print "LEDの直列個数";n; "個"
print "---------------------"
lr = (be - le * n)/la
rw = lr * la * la
print "抵抗=";lr; "Ω ";rw;"W"
end
----------
ソースはここまで
あまり、意味は無いかもしれませんが、いちいちIEを立ち上げて・・・とせずに、
鍋電卓を立ち上げてすぐ計算が出来ます。
ノートを持ち歩いて・・・電子工作・・・しない気がしてきた。
せっかく作ったのでソースを載せておきます。
以下、ソース
----------
cls
print "LED電流制限抵抗を求める"
input "電源の電圧(V) ?", be
print "電源の電圧"; be; "V"
input "LEDの電流(A) ?", la
print "LEDの電流";la; "A"
input "LEDの電圧(V) ?", le
print "LEDの電圧";le; "A"
input "LEDの直列個数 ?", n
print "LEDの直列個数";n; "個"
print "---------------------"
lr = (be - le * n)/la
rw = lr * la * la
print "抵抗=";lr; "Ω ";rw;"W"
end
----------
ソースはここまで
2007-04-17
携帯でLED電流制限抵抗を求める
AUの携帯限定ですが、EZアプリでプログラムが可能な電卓があります。
てくの電卓を参照してください。
要注意:ダウンロードする時のみ315円必要です(2007/04/17現在)
このてくの電卓用のLED電流制限抵抗を求めるプログラムを作成しました。
PCが無い所で(店で)使えるようになり、自分は便利になりました。
このためだけに300円は高いかも、いろいろ使えそうなので
もっとたく活用(プログラムを作成するなど)すれば安いと思います。
出来たら携帯用サイトで計算できるものを作りたいと思っています。(いつになるやら?)
以下プログラムソース
----------
P(start LED R)
HALT
P(LED I)
HALT
STM[1]
P(LED E)
HALT
STM[2]
P(LED N)
HALT
STM[3]
P(BATT E)
HALT
STM[4]
(
M[4]
-
M[2]
*
M[3]
)
/
M[1]
=
HALT
*
M[1]
*
M[1]
=
HALT
----------
プログラムはここまで
使い方
実行させる
「start LED R」が表示される。
=(中ボタン)で進める
「LED I」が表示される。
LEDに流したい電流をAで入力(20mAの場合は0.02)
「LED E」が表示される。
LEDに加える電圧をVで入力(白色LEDなどは3.6)
「LED N」が表示される。
LEDの個数(直列接続のみ対応)を入力
「BATT E」が表示される。
電源電圧をVで入力
LED電流制限抵抗が表示される。
=(中ボタン)で進める
LED電流制限抵抗のワット数が表示される。
実際に抵抗を購入するときはここで計算された
値の倍以上のワット数のものにする。
以上。
てくの電卓を参照してください。
要注意:ダウンロードする時のみ315円必要です(2007/04/17現在)
このてくの電卓用のLED電流制限抵抗を求めるプログラムを作成しました。
PCが無い所で(店で)使えるようになり、自分は便利になりました。
このためだけに300円は高いかも、いろいろ使えそうなので
もっとたく活用(プログラムを作成するなど)すれば安いと思います。
出来たら携帯用サイトで計算できるものを作りたいと思っています。(いつになるやら?)
以下プログラムソース
----------
P(start LED R)
HALT
P(LED I)
HALT
STM[1]
P(LED E)
HALT
STM[2]
P(LED N)
HALT
STM[3]
P(BATT E)
HALT
STM[4]
(
M[4]
-
M[2]
*
M[3]
)
/
M[1]
=
HALT
*
M[1]
*
M[1]
=
HALT
----------
プログラムはここまで
使い方
実行させる
「start LED R」が表示される。
=(中ボタン)で進める
「LED I」が表示される。
LEDに流したい電流をAで入力(20mAの場合は0.02)
「LED E」が表示される。
LEDに加える電圧をVで入力(白色LEDなどは3.6)
「LED N」が表示される。
LEDの個数(直列接続のみ対応)を入力
「BATT E」が表示される。
電源電圧をVで入力
LED電流制限抵抗が表示される。
=(中ボタン)で進める
LED電流制限抵抗のワット数が表示される。
実際に抵抗を購入するときはここで計算された
値の倍以上のワット数のものにする。
以上。
2007-04-07
PICプログラマーのUSB電源化
PICプログラマーをノートコンピュータを使ってどこでもつかえるように電源をUSB化して見ました。
以前はPICプログラマー自体を作成しようと考えていましたが、USBtoシリアルケーブルの問題で上手くできませんでした。
今回は市販のPICプログラマーを使い電源のみの改造になります。
フォトライブラリーに記録を残しておきました。
詳しくはRight Stuff Wrong Stuffの秋月のPICプログラマーをUSB化する を参照してください。
電源はRight Stuff Wrong Stuffの出来るだけ安価に5Vから13Vを作るの回路をそのまま使用しています。
良く調べていたら参考にしたRight Stuff で販売している5U-KIT(5V系ロジック回路をUSBポートに接続できるようにするキット)を使えば 参考にしたサイトの記事と同じようにUSBに直接接続できそうです。
近いうちにトライしたいですね。
4月11日、秋月でFT232RL USBシリアル変換モジュール を注文しました。
このモジュールのRS232CレベルコンバータICの部分を取り除き取り付けてやろうかと考えています。
以前はPICプログラマー自体を作成しようと考えていましたが、USBtoシリアルケーブルの問題で上手くできませんでした。
今回は市販のPICプログラマーを使い電源のみの改造になります。
フォトライブラリーに記録を残しておきました。
PICプログラマーU |
電源はRight Stuff Wrong Stuffの出来るだけ安価に5Vから13Vを作るの回路をそのまま使用しています。
良く調べていたら参考にしたRight Stuff で販売している5U-KIT(5V系ロジック回路をUSBポートに接続できるようにするキット)を使えば 参考にしたサイトの記事と同じようにUSBに直接接続できそうです。
近いうちにトライしたいですね。
4月11日、秋月でFT232RL USBシリアル変換モジュール を注文しました。
このモジュールのRS232CレベルコンバータICの部分を取り除き取り付けてやろうかと考えています。
2007-03-16
LEDを使った光のビーズ
最近、電子工作に時間がほとんど取れていないので他の方の製作記事を紹介します。
お気に入りでも紹介しているRLCさんのブログでLEDを使った光のビーズ、これは電子工作(特にLED関係)マニアとしてはとても興味ある内容です。
仕組みはLEDを使った光のビーズのしくみで紹介されています。
LEDを使うときに極性を意識せず、電圧も広い範囲で使える便利な回路です。
RLCさんも書かれていましたけど、LEDメーカーがこの回路を組み込んだLEDを出せばいいのにねと思います。
今後、LEDはもっと使いやすいようになっていくのではと思います。
LEDを使った光のビーズ、自分でも作ってみたいですね、それに色々応用ができそう。
お気に入りでも紹介しているRLCさんのブログでLEDを使った光のビーズ、これは電子工作(特にLED関係)マニアとしてはとても興味ある内容です。
仕組みはLEDを使った光のビーズのしくみで紹介されています。
LEDを使うときに極性を意識せず、電圧も広い範囲で使える便利な回路です。
RLCさんも書かれていましたけど、LEDメーカーがこの回路を組み込んだLEDを出せばいいのにねと思います。
今後、LEDはもっと使いやすいようになっていくのではと思います。
LEDを使った光のビーズ、自分でも作ってみたいですね、それに色々応用ができそう。
2007-02-18
汎用USB-IOのVBA専用DLLのVista対応 WDK
結局、まだ対応ができていません。
ドライバーの切り口から調べ始めると、どんどん深みにはまっている感じです。
DDKのサンプルソースのフォルダー構成が98からXpまではWDM(Windows 98/Me/2000/XPで共通して使えるデバイスドライバを開発するための枠組み。)というくくりになっていたのですが、
VistaからのWDKではWDMというくくりが無くなりいきなりHIDになっていましたね。
同じサンプル(hclient)を探すのに手間取ってしまいました。
今回の参考になりそうなサンプルを確認して見ました。
2000のOS上でDDKの環境でコンパイルテストもOK。
VistaのOS上でWDKの環境でコンパイルテストもOK。
なんかこの辺りを調べると解決策がありそうなので引き続き調査中です。
ドライバーの切り口から調べ始めると、どんどん深みにはまっている感じです。
DDKのサンプルソースのフォルダー構成が98からXpまではWDM(Windows 98/Me/2000/XPで共通して使えるデバイスドライバを開発するための枠組み。)というくくりになっていたのですが、
VistaからのWDKではWDMというくくりが無くなりいきなりHIDになっていましたね。
同じサンプル(hclient)を探すのに手間取ってしまいました。
今回の参考になりそうなサンプルを確認して見ました。
2000のOS上でDDKの環境でコンパイルテストもOK。
VistaのOS上でWDKの環境でコンパイルテストもOK。
なんかこの辺りを調べると解決策がありそうなので引き続き調査中です。
2007-02-08
汎用USB-IOのVBA専用DLLのVista対応
Vista用のドライバー開発の知識が必要なのかぁ。
VistaからはDDKではなくWDK(Windows Driver Kit )になるようなのでとりあえずダウンロードしてセットアップしてみました。
サンプルもインストールされたので見ていますが命令が違いますね。
自分の予想では今までの命令を使う前におまじないの命令を実行して権限を与えてるのではと思ったのですがだいぶ違うのでどこをどうしたら良いのか分からない状態です。
いいサンプルが無いか探している所です。
VistaからはDDKではなくWDK(Windows Driver Kit )になるようなのでとりあえずダウンロードしてセットアップしてみました。
サンプルもインストールされたので見ていますが命令が違いますね。
自分の予想では今までの命令を使う前におまじないの命令を実行して権限を与えてるのではと思ったのですがだいぶ違うのでどこをどうしたら良いのか分からない状態です。
いいサンプルが無いか探している所です。
2007-02-06
汎用USB-IOのVBA専用DLLのVista対応
VBからAPIで呼ぶ場合とVC++から呼ぶ場合で何か違うのでしょうか?
同じ命令なのにVC++で作成したDllでは上手く動きません。
Vistaの正式バージョンでもVBはしっかり動きます。
VB6をサポート対象にしているので
VB6だったらという、何か特殊なことをしているのでしょうか?
やっぱり、何かの権限なんでしょうか。
引き続き調査をします。
同じ命令なのにVC++で作成したDllでは上手く動きません。
Vistaの正式バージョンでもVBはしっかり動きます。
VB6をサポート対象にしているので
VB6だったらという、何か特殊なことをしているのでしょうか?
やっぱり、何かの権限なんでしょうか。
引き続き調査をします。
2007-02-05
汎用USB-IOのVBA専用DLLのVista対応 その後
Vistaが発売されてもまだ対応が出来ていません、すみません。
正式バージョンを購入して試しましたが、やっぱりダメですね。
VBのソースとDLLのソースを見比べながら、組みなおしを考えています。
Vistaを触っていますが、標準セットアップ以外のことをしようとすると、分からないことが多いですね。
悪戦苦闘中です。
正式バージョンを購入して試しましたが、やっぱりダメですね。
VBのソースとDLLのソースを見比べながら、組みなおしを考えています。
Vistaを触っていますが、標準セットアップ以外のことをしようとすると、分からないことが多いですね。
悪戦苦闘中です。
2007-01-02
あけましておめでとうございます。
2006-11-29
汎用USB-IOのVBA専用DLLのVista対応 その3
USBデバイスを直接制御しようとしているのでどうもはねられている感じがします。
でも、VB6.0からは上手く動いているのが納得いきません。
納得いかないのですが、今度VBでDllを作成してみようかと思っています。
正式にリリースされたらVBからも動かなくなる可能性がありそうでちょっと心配。
でも、VB6.0からは上手く動いているのが納得いきません。
納得いかないのですが、今度VBでDllを作成してみようかと思っています。
正式にリリースされたらVBからも動かなくなる可能性がありそうでちょっと心配。
2006-11-27
汎用USB-IOのVBA専用DLLのVista対応 その2
現在、Dllを単体のEXEで動作できるようにプログラムを修正してデバッグ中です。
どうも権限か何かでUSBの情報が正常に取得出来ていないようです。
実行ファイルのプロパティで管理者権限で動作させてみたり、色々やっているのですが上手く動いていないようです。
最近のトラブルで多いのはOS自体がセキュリティを強化して、結局今まで動いていたものが動かないという症状です。(これにはまっているのかなぁ)
Windows Live OneCareという物も試用しているので、これも影響しているかもしれません。
時間が無いので、ちょっとあせってきています。
情報が少ないものネックになっています。
どうも権限か何かでUSBの情報が正常に取得出来ていないようです。
実行ファイルのプロパティで管理者権限で動作させてみたり、色々やっているのですが上手く動いていないようです。
最近のトラブルで多いのはOS自体がセキュリティを強化して、結局今まで動いていたものが動かないという症状です。(これにはまっているのかなぁ)
Windows Live OneCareという物も試用しているので、これも影響しているかもしれません。
時間が無いので、ちょっとあせってきています。
情報が少ないものネックになっています。
2006-11-26
PICライター 作成中!!
RS232Cインタフェースで書き込みが出来るシリアルPICライターです。
シリアルPICライターは電力をシリアルの信号から取っているのでUSBシリアルなどでは書き込みに失敗することもあるそうです、今回のPICライターは外部電源をつけて確実に書き込みが出来るものです。
http://www16.ocn.ne.jp/~kenju/programmerX/progX20.html ここを参照してみてください。
本来なら15V程度のACアダプターを使うのですが、せっかくUSBがあるのでそれから供給するように考えてみました。
USBの電圧は5VなのでロジックICで発信させチャージポンプ方式で4倍の20Vまで昇圧させて使う予定です。
写真の上側がその回路で下側がPICライターの部分です。
これでUSB2口あれば電源無しで(USBシリアルのケーブルは必要、シリアルポートがついていればこれも不要になりUSB1口あれはOK)PICが書き込めます。
それにこれは特別な部品を使っておらず、部品代も2000円以内です。
上手くゆけば画期的だと思うのですが、上手くうごくかな?

2006-11-16
汎用USB-IOのVBA専用DLLのVista対応
WindowsVistaをインストールしたので、早速現在公開しているVBA専用Dllを動作確認しましたが、みごとに動きません。
すべてVBで作成された(APIを呼んでいる本来のサンプル)ものでは正常に動作しています。
タイミングが悪いのではと思っています。
Dllの開発環境のVCもセットしてデバッグを考えています。
Vistaの発売に間に合うように、対応をしないといけませんね。
すべてVBで作成された(APIを呼んでいる本来のサンプル)ものでは正常に動作しています。
タイミングが悪いのではと思っています。
Dllの開発環境のVCもセットしてデバッグを考えています。
Vistaの発売に間に合うように、対応をしないといけませんね。
2006-11-10
Linux(FC6,FC5)で汎用USB-IO(ビット操作)サンプル
汎用USB-IOの問い合わせで一番多いのがビット操作の仕方です。
今回のサンプルはコマンドのオプションパラメータを与えることにより、任意のビットをON/OFFできるようにしてみました。
状態の表示もビット単位で可能です。
環境作成やコンパイルの仕方はLinux(FC5)で汎用USB-IOを使うための環境を参照してください。
本拠地のUSB-IOをFC5(Linux)で使用するにも詳しく書いてあります。
使い方は管理者権限がある状態で(rootユーザーか、SUで権限を与えてください)
./usbio と入力すれば実行されます。
この時に表示されるUsage:を参照してください。
例)
./usbio -h -p0 -b1 でPort0のビット1をHi(1)にします。
実行すると Port01 : h のように現在の状態を表示します。
ヘッダーファイル msubiobase.h の内容です。
内容はいっしょですが、テクノキット用のプロダクトIDが違っていましたので修正しています。
musbiobase.h
次にサンプルソースです、これは簡単な出力と入力を行っています。
usbio.c
今回のサンプルはコマンドのオプションパラメータを与えることにより、任意のビットをON/OFFできるようにしてみました。
状態の表示もビット単位で可能です。
環境作成やコンパイルの仕方はLinux(FC5)で汎用USB-IOを使うための環境を参照してください。
本拠地のUSB-IOをFC5(Linux)で使用するにも詳しく書いてあります。
使い方は管理者権限がある状態で(rootユーザーか、SUで権限を与えてください)
./usbio と入力すれば実行されます。
この時に表示されるUsage:を参照してください。
例)
./usbio -h -p0 -b1 でPort0のビット1をHi(1)にします。
実行すると Port01 : h のように現在の状態を表示します。
ヘッダーファイル msubiobase.h の内容です。
内容はいっしょですが、テクノキット用のプロダクトIDが違っていましたので修正しています。
musbiobase.h
次にサンプルソースです、これは簡単な出力と入力を行っています。
usbio.c
2006-10-23
オートライト作成中
だいぶいい感じになってきたので微調整中です。
主な問題点は以下の通りでした。
・プログラムにBUGがあった。
これでかなり混乱してしまった、
判断文のところをきれいに消して組みなおすと
結構いい感じで動作していました。
・組みなおしをする時にプロジェクトを名前を付けて保存すると
色んな設定が初期の状態になり、
CONFIGの設定が変わり、動作自体が出来なくなった。
作り直す時にコピーしてから作業すべきでした。
・動作タイミングの問題
前回の書き込みでは2個センサーをつけてと
思っていましたが、45度の角度をつけて1つのセンサーに
することにしました。
これで、車が向いている方向の明るさで判断できるように
なり、自分的には満足しています。
以上ですが、まだまだ問題が出てきそうです。
納得できる物が出来たらソース、回路図を作成したいと思います。
主な問題点は以下の通りでした。
・プログラムにBUGがあった。
これでかなり混乱してしまった、
判断文のところをきれいに消して組みなおすと
結構いい感じで動作していました。
・組みなおしをする時にプロジェクトを名前を付けて保存すると
色んな設定が初期の状態になり、
CONFIGの設定が変わり、動作自体が出来なくなった。
作り直す時にコピーしてから作業すべきでした。
・動作タイミングの問題
前回の書き込みでは2個センサーをつけてと
思っていましたが、45度の角度をつけて1つのセンサーに
することにしました。
これで、車が向いている方向の明るさで判断できるように
なり、自分的には満足しています。
以上ですが、まだまだ問題が出てきそうです。
納得できる物が出来たらソース、回路図を作成したいと思います。
2006-10-20
オートライトは奥が深い!!
MOVEにオートライトをつけよう!ということで試作品を作っているところです。
実際に試作品を作ってライトの替わりにLEDで試してみたのですが、色々問題が発生です。
PIC(12F675)を使用したので調整はプログラムの定数になっていますが、意外と調整が難しい。
部屋の明かりと運転をしている時の感覚ではだいぶ違うようです。
PICで作るのでスモールライトとヘッドライトを違うタイミングで点くようにしてみました。
このタイミングが難しい!! オートライトの一番の問題は点いてほしい時に点いて、消えてほしい時に消えるというあたりまえの機能が難しいのです。
実際に試すと分かるのですが、昼間にトンネルに入ると当然、自動で点くのですが、トンネル内の照明が間隔を置いてつけてあるので反応を良くすると常にパッシングをしている状態になります。
反応を鈍くするとトンネルに入って少し時間が経たないと点かない、トンネルから出てもすぐに消えない、となってしまいます。
点く明るさと消える明るさを変えて一度点いたらちょっとの変化では消えないようにしていますが、これも差をつけすぎると点かない、消えない物になってしまいます。
曇りの時に森林を通ると木の陰に反応してしまいます。
こちらはスモールがパッシング状態!
ちょっとしたガードをくぐってもパッシング状態(これは良く見かけますよね) メーカー純正でもある程度はなるのですが、なんとかならないかと思っています。
今回はPICのメモリーがかなりあまっているので、オートライトごときなのですが複雑なロジックを組んでみようかと思っています。
センサーを複数つけるといいかも、現在はセンサーを上に向けているのですが、センサーを前方に向けた物をつけて複合的に判断させてはどうかと思っています。
実際に試作品を作ってライトの替わりにLEDで試してみたのですが、色々問題が発生です。
PIC(12F675)を使用したので調整はプログラムの定数になっていますが、意外と調整が難しい。
部屋の明かりと運転をしている時の感覚ではだいぶ違うようです。
PICで作るのでスモールライトとヘッドライトを違うタイミングで点くようにしてみました。
このタイミングが難しい!! オートライトの一番の問題は点いてほしい時に点いて、消えてほしい時に消えるというあたりまえの機能が難しいのです。
実際に試すと分かるのですが、昼間にトンネルに入ると当然、自動で点くのですが、トンネル内の照明が間隔を置いてつけてあるので反応を良くすると常にパッシングをしている状態になります。
反応を鈍くするとトンネルに入って少し時間が経たないと点かない、トンネルから出てもすぐに消えない、となってしまいます。
点く明るさと消える明るさを変えて一度点いたらちょっとの変化では消えないようにしていますが、これも差をつけすぎると点かない、消えない物になってしまいます。
曇りの時に森林を通ると木の陰に反応してしまいます。
こちらはスモールがパッシング状態!
ちょっとしたガードをくぐってもパッシング状態(これは良く見かけますよね) メーカー純正でもある程度はなるのですが、なんとかならないかと思っています。
今回はPICのメモリーがかなりあまっているので、オートライトごときなのですが複雑なロジックを組んでみようかと思っています。
センサーを複数つけるといいかも、現在はセンサーを上に向けているのですが、センサーを前方に向けた物をつけて複合的に判断させてはどうかと思っています。
登録:
投稿 (Atom)