2010-10-30
PICkit2購入
前から欲しいと思っていたのですが秋月で部品を購入するときに衝動買いをしてしまいました。
これにピン配列変換ケーブル、ICテストクリップ、ブレッドボードを追加購入して使っています。
PICkit2はICSP方式なので書き込みアダプターを自作するなどして皆さんは使われているようですね。
自分の場合はPICに合わせてPICkit2とICテストクリップをつなげてPICをそのクリップで挟んで書き込みをしています。
ブレッドボードテスト回路を組んでPICをブレッドボードにつけたままできるようになり便利に使っています。
もちろん、PICkit2とブレッドボードを直接つなげてもできるのですが、つけたり外したりが楽なのでクリップを使っています。
また実装した後でもICSP用のピンを用意しなくても挟むだけで書き換えができます。
回路設計は面倒になりますが、実装した後でも書き換えができるのは便利ですね。
2010-05-26
USB-FSIO(汎用USB-IOの後継)がキャンペーン価格で購入できます。
Km2Netさんから2010/05/28から出荷予定のUSB-FSIOです。
今までの汎用USB-IOと同サイズにもかかわらず、かなり機能アップしています。
今はキャンペーン中で今までの汎用USB-IOの1500円に+500円の2000円で購入出来るようです。
Km2Netさんの意気込みが感じられますね、購入を検討されている方は耳よりな情報だと思います。
自分が公開しているvbausbio.dllは現在対応作業中です。
おそらく、USB-FSIOのコマンド追加という形で今までのUSB-IOも使えるものになるのではと思います。
VB.NET(VB2008)のサンプルはKm2NetさんのHPで入手出来ます。
Linuxのサンプルは私が公開しているソースを手直ししていただいているのでそれが使えると思います。vbausbio.dllの対応を優先しているのでそのソースのテストが出来ていません、時間をみてテスト予定です。
未テスト了解のもとであれば以下のリンクから入手出来ます。
http://bake-san.com/download/usbfsio/linux/
また、前回のブログにもあるようにRubyにも対応を考えています。
とりあえずは従来の汎用USB-IOに対応させて、USB-FSIOにも対応を考えています。
USB-FSIOの概要は以下の通り。
・USBインターフェイスを使った入出力基盤で、デジタル入出力、アナログ入力、PWM制御が行える入出力基板です。
・USB 2.0(FullSpeed)で入出力制御を行います。
・デジタル入出力最大19ピン、アナログ入力最大5Ch、PWM制御最大5Chが利用可能です。
※モーター、RCサーボ、LED調光が簡単に行えます。
・1回の命令で複数の出力が出来るようになり、効率的に信号送信が可能です。
・62Byteのユーザー用フラッシュロムを利用すれば、シリアル番号の登録やセキュリティーデバイスも作成可能です。
使ってみての感想
PICと同様に電流が扱えるのでLEDも直接点灯出来ます(Max200mA、LEDで10~20個、電流制限抵抗は必要です)
どのピンをデジタル、アナログ、PWMの割り当てもPIC同様にコマンド出来るのもいいですね。
ブレッドボードで使えるようにピン配列が変更されているので便利になりました。
USB-FSIOから電源を取る場合は右側のフリースペースにVCC、GNDが用意されているのでリード線を付ければ取れますが、USBの規格上500mAまでなので200mAを超える場合は外部電源を用意したほうがいいと思います。
今までの汎用USB-IOと同サイズにもかかわらず、かなり機能アップしています。
今はキャンペーン中で今までの汎用USB-IOの1500円に+500円の2000円で購入出来るようです。
Km2Netさんの意気込みが感じられますね、購入を検討されている方は耳よりな情報だと思います。
自分が公開しているvbausbio.dllは現在対応作業中です。
おそらく、USB-FSIOのコマンド追加という形で今までのUSB-IOも使えるものになるのではと思います。
VB.NET(VB2008)のサンプルはKm2NetさんのHPで入手出来ます。
Linuxのサンプルは私が公開しているソースを手直ししていただいているのでそれが使えると思います。vbausbio.dllの対応を優先しているのでそのソースのテストが出来ていません、時間をみてテスト予定です。
未テスト了解のもとであれば以下のリンクから入手出来ます。
http://bake-san.com/download/usbfsio/linux/
また、前回のブログにもあるようにRubyにも対応を考えています。
とりあえずは従来の汎用USB-IOに対応させて、USB-FSIOにも対応を考えています。
USB-FSIOの概要は以下の通り。
・USBインターフェイスを使った入出力基盤で、デジタル入出力、アナログ入力、PWM制御が行える入出力基板です。
・USB 2.0(FullSpeed)で入出力制御を行います。
・デジタル入出力最大19ピン、アナログ入力最大5Ch、PWM制御最大5Chが利用可能です。
※モーター、RCサーボ、LED調光が簡単に行えます。
・1回の命令で複数の出力が出来るようになり、効率的に信号送信が可能です。
・62Byteのユーザー用フラッシュロムを利用すれば、シリアル番号の登録やセキュリティーデバイスも作成可能です。
使ってみての感想
PICと同様に電流が扱えるのでLEDも直接点灯出来ます(Max200mA、LEDで10~20個、電流制限抵抗は必要です)
どのピンをデジタル、アナログ、PWMの割り当てもPIC同様にコマンド出来るのもいいですね。
ブレッドボードで使えるようにピン配列が変更されているので便利になりました。
USB-FSIOから電源を取る場合は右側のフリースペースにVCC、GNDが用意されているのでリード線を付ければ取れますが、USBの規格上500mAまでなので200mAを超える場合は外部電源を用意したほうがいいと思います。
2010-05-06
Rubyで汎用USB-IOを使う Windows、VBA用Dllを使用
最近、Rubyを良く聞くようになってきたので、すこしずつ触ってみているところです。
目的が無いとすぐ飽きてしまいそうなので、汎用USB-IOを使えるようにしてみたいと思っています。
まず、簡単なところから、Windows限定になりますが、自分が公開しているVBA用Dll(vbausbio.dll)で使えるようにしてみました。
RubyはWindows版 で下記 1.8.7 のインストールをしています。
Ruby MSI Packages 安定版配布サイト
http://arton.hp.infoseek.co.jp/indexj.html
ActiveScriptRuby 1.8.7(p249) with-winsock2 tcl-stub
http://arton.hp.infoseek.co.jp/ActiveRuby.msi
最新版のVBA用Dllをダウンロードしソースを格納するフォルダーにコピーしてください。
RubyでVBA用Dllが使えるように定義をしたソースをダウンロードして同じくソースを格納するフォルダーにコピーしてください。
usbio.rb というファイル名の定義ファイル(プログラム)です。
あとは以下のようにプログラムを記述すれば汎用USB-IOを制御できるようになります。
require 'usbio'
p USBIO.find()
p USBIO.out(0,0,0)
p USBIO.out(1,0,0)
16.times do |j|
USBIO.out(1,j,0)
256.times do |i|
USBIO.out(0,i,0)
end
end
p USBIO.free()
サンプルソース等は以下の場所にUPしています。
まだ、テストが出来ていないので不具合がでるかもしれません。
不具合等あれば、連絡を頂けたらと思います、よろしくお願いいたします。
http://bake-san.com/download/sample/ruby/
目的が無いとすぐ飽きてしまいそうなので、汎用USB-IOを使えるようにしてみたいと思っています。
まず、簡単なところから、Windows限定になりますが、自分が公開しているVBA用Dll(vbausbio.dll)で使えるようにしてみました。
RubyはWindows版 で下記 1.8.7 のインストールをしています。
Ruby MSI Packages 安定版配布サイト
http://arton.hp.infoseek.co.jp/indexj.html
ActiveScriptRuby 1.8.7(p249) with-winsock2 tcl-stub
http://arton.hp.infoseek.co.jp/ActiveRuby.msi
最新版のVBA用Dllをダウンロードしソースを格納するフォルダーにコピーしてください。
RubyでVBA用Dllが使えるように定義をしたソースをダウンロードして同じくソースを格納するフォルダーにコピーしてください。
usbio.rb というファイル名の定義ファイル(プログラム)です。
あとは以下のようにプログラムを記述すれば汎用USB-IOを制御できるようになります。
require 'usbio'
p USBIO.find()
p USBIO.out(0,0,0)
p USBIO.out(1,0,0)
16.times do |j|
USBIO.out(1,j,0)
256.times do |i|
USBIO.out(0,i,0)
end
end
p USBIO.free()
サンプルソース等は以下の場所にUPしています。
まだ、テストが出来ていないので不具合がでるかもしれません。
不具合等あれば、連絡を頂けたらと思います、よろしくお願いいたします。
http://bake-san.com/download/sample/ruby/
移転しました
バケさんの電子工作(ブログ)は移転をしました。
http://bake-san.com/bdenshi/ から
http://bake-san.blogspot.com/ に変更しました。
セキュリティ面から見直しをして変更することになりました。
当分の間過去のブログは両方で見れるように考えています。
ご迷惑をおかけしますが、よろしくお願いいたします。
http://bake-san.com/bdenshi/ から
http://bake-san.blogspot.com/ に変更しました。
セキュリティ面から見直しをして変更することになりました。
当分の間過去のブログは両方で見れるように考えています。
ご迷惑をおかけしますが、よろしくお願いいたします。
2010-02-27
1.2VでLED点灯回路の明暗センサー改良? @バケさん
簡単な回路で暗くなると点灯させていたのですが、明るい時に発振を止めて昇圧しないようにしてLEDを点灯させないようになっています。
これでは消えている時でもLEDに1.2Vがかかってしまいます。
LEDは点灯に必要な電圧より低くなると電流も流れにくくなりますが、効率を考えると無視できないと思います。
そこで、CDSの抵抗値で電源自体をON/OFFして消灯時の電流をできるだけ少なくするように回路を考えてみました。
トランジスタ1個でも可能なのですがトランジスタを2段にして、点灯時の消費電力も抑えるようにまた反応が良くなるように考えています。
トランジスタを1つ介して点灯する形になるので、そのトランジスタが抵抗(電圧降下して)になり、少し暗くなった感じがします。
簡単な回路では無くなりつつありますが、効率がよくなればと思い考えてみた回路です。
まだまだ、改良の余地がありますね、またいい回路が思いつけばアップします。
補足:CDSと直列にある5kの抵抗を変えることにより、ON/OFFするタイミングを変えれます。
また電源の電圧にも影響するので調整が必要になります。
2010-01-29
LED照明を作る2 @バケさん
出来ました、20Wぐらいの明るさですね。
直下は明るいのですが、離れるとくらいです。次の課題ですね。
直下は明るいのですが、離れるとくらいです。次の課題ですね。
テスターで測ると30mA、3Wでした。
こんなもんかな、といった感じです。
常夜灯に使うナツメ球が5W程度なのでそれより省電力になります。
ちなみに回路は家庭電源用LED電球の製作の通りに作っています。
2010-01-28
LED照明を作る @バケさん
製作記事としては珍しくないと思いますが、日曜大工で子供部屋を作成中なので照明も作ってしまおう!と思い作り始めました。
簡単に効率がいいものを考えてトランスレス電源を使う事にしました。
今回はサイトにあった回路でそのまま作成しています。回路図はまたアップします。
写真の右側が電源回路で左側がLEDです。
基板のサイズをあわせたので2段構造にする予定です。
回路の原理がわかったので、これで上手くできれば次回は自分で回路設計をして作りたいと思います。
2009-12-12
1.2Vで白色LED、明暗センサー付き @バケさん
間違い! ガーデニングLEDライトをばらしてみた
この回路をちょっと変更してLEDを直列に4つでもつけれるようにできそうです。

ためしに並列に4つつけてみましたが、これもOKのようです。
また、上側の回路の抵抗と並んでいるコンデンサー(103)は0.01μFですが、0.1μFでも、1μFでもOKでした。
しかし、下側の回路は0.01μFでないとだめでした。
部品は入手可能なものでよさそうです。
発生している電圧を測ってみたらLEDを付けない状態で上側の回路で14V、下側の回路で20Vまででていました。
LED1個では2.8Vまで落ちます。
直列の数を増やしてゆくとそれに合わせて電圧が高くなる感じでした。
上側の回路は1つ問題があって、2個のインダクタ(コイル)は離れているとダメでできるだけくっつけたほうがいいようです。
注意、LEDを増やしても点くことは点くのですが、個数を増やすとその分電流が少なくなり、暗くなってしまいます、今回の部品構成では2個が限度のような気がします。
この回路をちょっと変更してLEDを直列に4つでもつけれるようにできそうです。
ためしに並列に4つつけてみましたが、これもOKのようです。
また、上側の回路の抵抗と並んでいるコンデンサー(103)は0.01μFですが、0.1μFでも、1μFでもOKでした。
しかし、下側の回路は0.01μFでないとだめでした。
部品は入手可能なものでよさそうです。
発生している電圧を測ってみたらLEDを付けない状態で上側の回路で14V、下側の回路で20Vまででていました。
LED1個では2.8Vまで落ちます。
直列の数を増やしてゆくとそれに合わせて電圧が高くなる感じでした。
上側の回路は1つ問題があって、2個のインダクタ(コイル)は離れているとダメでできるだけくっつけたほうがいいようです。
注意、LEDを増やしても点くことは点くのですが、個数を増やすとその分電流が少なくなり、暗くなってしまいます、今回の部品構成では2個が限度のような気がします。
2009-12-10
2009-11-17
1.2Vで7色LED点灯、暗くなると点灯 @バケさん
点灯回路はDC/DC用ICを使用して5Vを発生させ、7色LEDを点灯させています。
ソーラーバッテリーの電圧を監視して暗くなると点灯させるように回路を作成しています。
LEDライトを使って明るくしてON/OFFをテストしてみました、その様子の動画をUPしています。
2009-11-13
電圧低下でOFFにする回路 @バケさん
ソーラーパネルをつけてバッテリーに充電してLED照明や携帯電話の充電につかっていますが、電圧が低下したまま使うとバッテリーの性能が悪くなってしまいます。
電圧が低くなればOFFにしてバッテリーを保護しようと考えたのが今回の回路です。
なんだか複雑になっていますが理由があります。
OFFになる電圧とONになる電圧を変えたかったからです、シュミットトリガーの動作ですね。
電流を多く流すと電圧降下してOFFになりますが負荷がなくなれば電圧が上がってONになる。
これを繰り返して点滅状態になるのを防ぐためです。
基本はフリップフロップ回路で状態を保持できるようにして、ON、OFFそれぞれの電圧でスイッチしています。
本当はマイコンで作れば簡単なのですが、トランジスタで作ってみたかったので今回の回路になりました。
もっと簡単にできるのではと始めましたが、結局今回の回路しか考えれませんでした。
シュミットトリガー回路をぐぐってみましたが電源電圧自体が変動しているので上手く応用できなかった。
アハッと思えるような回路が見つかったらまらUPします。
動作の様子を動画でUPしました。
11.50V辺りでOFFになり、12.10Vまで復旧すればONなるように設定しています。
1.2Vで白色LEDを点滅に明暗センサー @バケさん
エレ工房さくらいさんのサイトを参考にして明暗センサーを付けてみました。
薄暗い時が不安定な動作をして点きっぱなし(おそらく点滅速度がかなり遅くなっている)になったりしますが、上手く動作しています。
また、LEDに電流が流れすぎて動作が不安定になったのでLEDに電流制限抵抗を付加してみました。
動画もUPしておきます、蛍光灯の下で少し暗かったので点きっぱなしになったりした様子も撮れています。
2009-11-12
1.2Vで白色LED点滅回路 @バケさん
写真 : ガーデニングLEDライトを保安灯に! @バケさん
バケさんの電子工作 : ガーデニングLEDライトを保安灯に! @バケさん
実際に点滅回路を組み込んだ状態の写真です。
LEDは色々差し替えて使えるように丸ピンソケットをつけています。

動画もUPしてみました。
実際に点滅回路を組み込んだ状態の写真です。
LEDは色々差し替えて使えるように丸ピンソケットをつけています。
動画もUPしてみました。
2009-11-11
間違い! ガーデニングLEDライトをばらしてみた @バケさん
バケさんの電子工作 : ガーデニングLEDライトをばらしてみた @バケさん
正しい回路はこちら
この回路だと思っていたのですがちょっと違っていました、すみません。
回路を確認してまた報告します。
この回路は実際に手持ちの部品を使って試したものです、LEDもしっかりつくと思います。
コイルは100μHのマイクロインダクタを使っています。
2個ありますが通常はくっつけて配置します。
抵抗は10k、コンデンサは103(0.01μF)、トランジスタはC1815と一般的な部品を使っています。
自分がテストした環境では抵抗と並列にあるコンデンサがあると安定してLEDが光っています。
ベースをマイナスに落とすと光らなくなるので、ここに点滅回路を仕掛けると簡単に点滅できそうです。
前回の点滅回路は電源を直接ON/OFFしているので部品が多くなっています。
他に応用はできると思うので参考にはなりますが、ちょっと複雑になりすぎました。
もう少し回路を考えてみます。
正しい回路はこちら
ガーデニングLEDライトを保安灯に! @バケさん
ガーデニングLEDライトをばらしてみた @バケさん
ガーデニングLEDライトが安く販売されていた(480円)ので買ってしまいました。
回路を起こしてみるとブロックング発振回路が使われており、トランジスタ1個で明暗センサー回路まで実現されていました。
素晴らしい回路ですね、これ以上単純な回路は専用ICを使わないと無理だと思います。
また、一般的にサイトで紹介されている回路より優れているところが1点あり、トランジスタのベースにつながれている抵抗と並列にコンデンサがつけられています。
このコンデンサがあるとより効率良くLEDを明るくつけることができます。
LEDを1.5v(1.2v)で点灯させる、お手本のような回路でした。
残念なのはソーラーは小さいので天気が悪いとすぐつかなくなります。
照明としてはちょっとくるしいあかるさなので、保安灯としてつかえるように、点滅させるようにしてできるだけ長い時間点灯できるように改造したいと思っています。
回路を起こしてみるとブロックング発振回路が使われており、トランジスタ1個で明暗センサー回路まで実現されていました。
素晴らしい回路ですね、これ以上単純な回路は専用ICを使わないと無理だと思います。
また、一般的にサイトで紹介されている回路より優れているところが1点あり、トランジスタのベースにつながれている抵抗と並列にコンデンサがつけられています。
このコンデンサがあるとより効率良くLEDを明るくつけることができます。
LEDを1.5v(1.2v)で点灯させる、お手本のような回路でした。
残念なのはソーラーは小さいので天気が悪いとすぐつかなくなります。
照明としてはちょっとくるしいあかるさなので、保安灯としてつかえるように、点滅させるようにしてできるだけ長い時間点灯できるように改造したいと思っています。
※回路が間違っていました、使用している部品が同じなので決めつけてみてしまいました、すみません。
正しい回路はこちら
2009-11-06
Sqlite3 で Ruby On Rails @バケさん
OracleでうまくいったのでRubyではデフォルトになっている、Sqlite3を試してみました。
以下のサイトを参照しました、Oracle部分をSqlite3用に置き換えて確認しています。
http://www.oracle.com/technology/pub/articles/haefel-oracle-ruby.html
以下のサイトにアクセスしてワンクリックRubyをダウンロードしてインストールします。
gemも一緒にインストールします。
http://rubyinstaller.rubyforge.org/.
"One-Click Ruby Installer for Windows 1.8.6-26 Final Release".
Rubyがインストールできたら、コマンドプロンプトで操作します。
gemを最新の状態にします。
c:\> gem update --system
Railsをインストールします。
c:\> gem install rails -v 2.3.2
SQLite3 の DLL を www.sqlite.org からダウンロードします。(sqlitedll-3_6_20.zip)
ZIP 形式で圧縮されているので、
PATH の通っているディレクトリ(C:\ruby\bin など)に展開します。
Rails アプリを起動するだけなら、コマンドラインプログラム(sqlite3.exe)は不要です。
以上で環境構築は完了です。
次からRailsでのアプリ開発になります。
Railsの新規プロダクトを作成します。
(プロダクト名:comics_catalog、データベース:sqlite3)
c:\> rails comics_catalog
作成出来たらcomics_catalogのフォルダーができているので、
そのフォルダーに移動します。
c:\> cd comics_catalog
c:\comics_catalog>
データベースの設定は変更ぜず、デフォルトのまま使います。
WEBアプリケーションをRailsの機能で作成します。
テーブル名と項目を指定してTABLEを編集するプログラムを作成しています。
c:\comics_catalog> ruby script/generate scaffold comic title:string issue:integer publisher:string
データベースをまだ作成していないならばRakeコマンドで簡単にテーブルも作成できます。
C:\comics_catalog> rake db:migrate
以上でアプリケーションと必要なテーブルまで作成できました。
comicという名称で指定していますが、
実際のテーブルは複数形になってcomicsになります。
テスト用WEBサーバーを起動します。
C:\comics_catalog> ruby script/server
起動できたら、IEなどで以下のアドレスを開いてください。
作成したアプリケーションが表示されます。
http://localhost:3000/comics/
以下のサイトを参照しました、Oracle部分をSqlite3用に置き換えて確認しています。
http://www.oracle.com/technology/pub/articles/haefel-oracle-ruby.html
以下のサイトにアクセスしてワンクリックRubyをダウンロードしてインストールします。
gemも一緒にインストールします。
http://rubyinstaller.rubyforge.org/.
"One-Click Ruby Installer for Windows 1.8.6-26 Final Release".
Rubyがインストールできたら、コマンドプロンプトで操作します。
gemを最新の状態にします。
c:\> gem update --system
Railsをインストールします。
c:\> gem install rails -v 2.3.2
SQLite3 の DLL を www.sqlite.org からダウンロードします。(sqlitedll-3_6_20.zip)
ZIP 形式で圧縮されているので、
PATH の通っているディレクトリ(C:\ruby\bin など)に展開します。
Rails アプリを起動するだけなら、コマンドラインプログラム(sqlite3.exe)は不要です。
以上で環境構築は完了です。
次からRailsでのアプリ開発になります。
Railsの新規プロダクトを作成します。
(プロダクト名:comics_catalog、データベース:sqlite3)
c:\> rails comics_catalog
作成出来たらcomics_catalogのフォルダーができているので、
そのフォルダーに移動します。
c:\> cd comics_catalog
c:\comics_catalog>
データベースの設定は変更ぜず、デフォルトのまま使います。
WEBアプリケーションをRailsの機能で作成します。
テーブル名と項目を指定してTABLEを編集するプログラムを作成しています。
c:\comics_catalog> ruby script/generate scaffold comic title:string issue:integer publisher:string
データベースをまだ作成していないならばRakeコマンドで簡単にテーブルも作成できます。
C:\comics_catalog> rake db:migrate
以上でアプリケーションと必要なテーブルまで作成できました。
comicという名称で指定していますが、
実際のテーブルは複数形になってcomicsになります。
テスト用WEBサーバーを起動します。
C:\comics_catalog> ruby script/server
起動できたら、IEなどで以下のアドレスを開いてください。
作成したアプリケーションが表示されます。
http://localhost:3000/comics/
登録:
投稿 (Atom)


