2011年1月25日火曜日

Writer509CDC 簡易版

前回に引き続き、PICマイコンのプログラマ(ライタ)のお話です。

今回は安く簡単に自作できて、しかもUSB接続で使える便利なプログラマの紹介です。このように書くと、とても素晴らしいプログラマのように聞こえるので、作ってみようと思われる方がおられるかもしれませんが、実は大きな欠点があります。それは、いわゆる「鶏と卵問題」です。このプログラマにはPICマイコンを使って制御しているので、作るためにPIC用のプログラマが必要なのです。

そんな、便利そうで、ちょと残念なプログラマですが、とりあえず紹介致します。「鶏と卵問題」の対策は、あとで。

このプログラマは、名付けて「Writer509CDC」です。オレンジ電子さん作の「Writer509」と互換のUSB接続タイプのプログラマです。オリジナルのWriter509は、パソコンとの接続はシリアル(RS232C)ポートを使いますが、Writer509CDCはUSBで使えるようにしたものです。オリジナルのWriter509ではPIC12F509などのマイコンを使って、シリアル(RS232)通信でのパソコンとの通信と、プログラム書き込みの制御を行います。USB接続のWriter509も既にいくつかネット上で公開されていますが、ほとんどは従来のWriter509と、USB-シリアル変換ICを組み合わせたものです。このWriter509CDCは、USB通信機能を内蔵したPIC18F14K50を使って、USBでのパソコンとの通信と、プログラム書き込みの制御を行います。

(1)回路
回路図は右の図のとおりです。パソコンとのUSB通信も、書き込みの制御もすべて1つのマイコンで行っているので、部品数が非常に少なくなっています。

回路図の0.33μFのコンデンサは、秋月電子では手ごろな値のコンデンサがなかったので、下の部品表では0.22μFのコンデンサを2つ並列に使うことにしています。

USBケーブルは、壊れたUSBマウスなどのケーブルを使うか、100円ショップ等の安いものでよいと思います。パソコンに接続するほうのコネクタを残して、反対側のコネクタ(または不要なマウスなど)を切って使います。

PICマイコンにプログラムを書き込むためには、(一部の 新しいPICを除いて)動作電圧の5Vの他に、Vppと呼ばれる9~12Vの高電圧が必要になります。今回紹介するWiter509CDCでは、この高電圧を006P型の9Vの電池を使って作っています。

Writer509CDCの使用部品
マイコンPIC14K50200円
セラミック発振子12MHz(コンデンサ内蔵)20円
トランジスタ2SA1015100円/20個
コンデンサ0.22μF ×2個100円/10個
抵抗10kΩ100円/100個
抵抗100kΩ100円/100個
電池006P角型9V
電池スナップこんなもの10円
USBケーブル

注)価格は2011年1月の秋月電子の価格


 このプログラマは回路構成が簡単なので、右の図のように150円の小さなブレッドボードで作ることもできます。ただし、小さなブレッドボードでは穴の列数がすくないので、書き込み対象のPICとしては14ピンくらいのものまでしか挿せません。18ピン以上のPICに書き込む場合は、もっと大きなブレッドボードを使うか、この小さなブレッドボードをもう1つ使うかする必要があります。


(2)マイコンのプログラム
Writer509CDCに使っているマイコンのプログラム(ファームウエア)はこちらに置いておきます。

Writer509CDC用ファームウエア(Ver.1.0)のダウンロード
(Ver.1.0にアップしました 2011/9/13)
Ver.1.0の動作確認が不十分なので、旧バージョンもおいておきます。
Writer509CDC用ファームウエア(Ver.0)のダウンロード


このプログラムはMicrochip社が提供しているUSB Frameworkを使用して作成しています。
私の作成したファームウエアのダウンロードファイル一式の中の「Writer509CDC.hex」というファイルをPIC18F14K50に書き込んで使ってください。
少し専門的な話になりますが、このhexファイルは、同じくMicrochip社のUSB Frameworkの中に含まれている「HID Bootloader」にも対応していますので、PIC18F14K50に「HID Bootloader」のファームウエアが既に書き込まれている場合は、PICプログラマがなくても、このBootloaderを使って私のファームウエアをパソコンからUSB経由で直接PICに書き込むことができます。Bootloaderについての説明は少し専門的になりまので、ここでは省略して、また後日、機会があれば説明します。


(3)使い方
回路が完成して、PIC18F14K50ファームウエアの書き込みができたら、書き込み対象のPICをWriter509CDCに接続します。上の回路図、またはブレッドボードの図では、接続例としてPIC16F630の場合の配線を描いています。
書き込み対象のPICの接続ができたら、Writer509CDCのUSBケーブルをパソコンのUSBポートに接続します。ただし、パソコンに接続する前にもう一度、回路の配線を確認してください。配線が間違っていた場合、最悪パソコンを壊してしまう危険性があります。そのあたりは自己責任でお願いします。
Writer509CDCを初めてパソコンに接続した場合、パソコンが新しいハードウエアを認識し、ドライバーのインストールを求められます。そのとき、ドライバの検索先として、上のマイコンファームウエアのダウンロードファイル一式の中に含まれる「inf」フォルダを指定してください。それで、あとは自動的にドライバがインストールされるはずです。ドライバーがインストールされると、Writer509CDCはUSBの「CDCクラス」として認識されます。そしてパソコンとWriter509CDCは「仮想COMポート」経由で通信を行います。
ここまでくれば、あとは普通の(オリジナルの)Writer509と同じように使用できます。パソコン側の書き込み用ソフトはオレンジ電子さんのWriter509のページからダウンロードして使ってください。ソフトの使い方も同じくオレンジ電子さんのページをご覧ください。

一応、私の作った書き込みソフトもあります。拡張PIC16F(PIC12F182、,PIC16F1823など)にも対応する目的で作りました。

◆Windows版書き込みソフト<W509CS
◆Linux、Mac OSXなどクロスプラットフォーム版<W509Mono

(4)その他:Vppの電圧について
PICマイコンの比較的古いものでは、高電圧に12V程度必要なため、Vppに9Vの電池を使った回路では書き込めないものもあります。書き込もうとするPICでVppに何V必要化はWriter509の作者オレンジ電子さんのホームページを 見て確認してください。ちなみに、私がこのブログでこれまでに紹介した作品で使っているマイコンのうち、PIC12F683とPIC16F630は Vpp=9Vで書き込み可能です。PIC12F615はスペック上はVpp=10V以上必要なので書き込みできないことになりますが、新しい電池を使えば ぎりぎり書き込めるかもしれません(実際には試していないのでわかりません)。
Vppの高電圧もマイコンを使って作る方法もあって、実は私のWriter509CDC用プログラムにはそのための動作も用意してありますが、それを利用すると回路が少し複雑になるので、それについてはまた後日紹介します。
Writer509CDC全機能版はこちら

(5)「鶏と卵」問題:ファームウエアの書き込みについて
正直なところ、この問題を簡単に解決できる方法はないのですが、手間をかける覚悟があるのなら、なんとかする方法はあります。その方法については、また後日紹介させていただきます。
と言って、終わってしまうとせっかくここまで読んでいただいた方に申し訳ないので、もし、「なんとしてもこのプログラマを作りたい!」と言う方は、ご相談ください。場合によっては何とかお力になれるかもしれません。
鶏と卵問題対策はこちら

(2011/9/13 追記)
ファームウエアをVer.1.0に更新しました。
ターゲットへの書き込みクロックを少し高速化しました。


にほんブログ村 その他趣味ブログ 電子工作へ
↑最後まで読んでいただいた方はこちらのリンクをクリックしてランキングにご協力下さい。
↓ついでに、下のリアクションもチェックお願いします。

2011年1月13日木曜日

PICマイコンのプログラマ その1

今日ははPICマイコンのプログラマ(ライタ)のご紹介です。
私の電子工作ではマイコンを使っています。マイコンは、複雑な動作をする電子回路を、簡単な回路構成(ハードウエア)で作ることができる便利な部品です。回路構成が簡単なかわりに、その回路がどのように動作するかは、マイコンのプログラム(ソフトウエア)で決めることになります。 マイコンは買った新品の状態では何もプログラムが入っていません。私がこのブログで紹介している作品を作ろうと思っていただいても、必要な部品を買い揃えるだけでは作ることができません。その回路の動作を決めるプログラムをマイコンに書き込む必要があります。マイコンにプログラムを書き込むためにはそのマイコン専用の書き込み器、プログラマ(ライタとも言います)が必要です。
私が使っているマイクロチップ社のPICというマイコンの場合、そのプログラマは、大きく分けて次の3種類あります。
(1)マイクロチップ社純正のプログラマ
機能の違いで安いものから高いものまでいくつかありますが、趣味レベルでは安いもので十分と思います。もっとも安いのは旧モデルになりますがPICkit2で、秋月電子で3500円で売っています。その後継の最新型はPICkit3で、同じく秋月電子で4500円です。

(2)純正以外の市販のプログラマ
例えば、やはり秋月電子でAKI-PIC2というものがあります。これは上記のPICkit2と互換とのことです。値段は5300円と少し高いですが、ゼロプレッシャーソケットがついていて使いやすいです。

(3)自作のプログラマ
検索するといろいろなものが見つかると思います。
有名なものでは、JDMプログラマ、その亜種であるRCDライタなどがあります。その他、Writer509PICerFTなども使いやすくて人気があるようです。
JDMプログラマやRDCライタは比較的安い部品だけで作れる反面、PCのシリアルポートを、少しクセのある使い方をしているため、PCとの相性の問題がある場合があるようです。
Writer509はシリアルポートを素直な使い方をしているので、安定性がよいようです。また、USB-シリアル変換を使えば、シリアルポートのないPCでも使えます。USBで使用できる回路も簡単で作りやすいのですが、1つ大きな欠点があります。それは、このライタ自身にPICマイコンを使っているため、ライタを作るためにライタが必要という「鶏と卵問題」です。リンク先のページでその問題を回避する方法も紹介されています。
PICerFTはUSB接続で、しかも部品代も比較的安く、「鶏と卵問題」もないというとても優れたプログラマのようです。

以上のように、PICマイコンのプログラマには市販品から自作のものまで、多種多様なものがあります。電子工作初心者で、工作に自信がない方は安全、安心、そして時間の節約のため(1)か(2)の市販品を買われることをお勧めします。昔は市販のプルグラマがもっと高かったので自作する人も多かったようですが、今では市販品も安くなったので、プログラマを自作する人は、お金の節約よりも、作ること自身を楽しむ目的が大きいのかもしれません。

ちなみに、私はどんなプログラマを使っているかと言いますと、最初の1台は純正ではない市販品のプログラマを購入して使っていました。そして、今は自作のプログラマを愛用しています。愛用の自作プログラマはどんなものかと申しますと、(3)で紹介したどれでもありません。それは、Writer509をベースに改良したもので、PIC18F14K50という比較的安くてUSB機能を内蔵したマイコンを使った、USB接続のWriter509互換器です。その詳細は後日紹介させていただく予定です。


にほんブログ村 その他趣味ブログ 電子工作へ
↑最後まで読んでいただいた方はこちらのリンクをクリックしてランキングにご協力下さい。
↓ついでに、下のリアクションもチェックお願いします。

2011年1月12日水曜日

冬の間の活動

今更ながら、あけましておめでとうございます。
気が付けば、前の更新から1ヶ月近くたち、1月も半ばになってしまっていました。今月も私は出展しませんでしたが、長岡京の「ものづくり市」は寒い中でもがんばってやっておられたようです。
前にも少し書きましたが、私は自分が寒いのと、お客さんも寒くて電子工作なんて作っていられないと思うので、冬の間は「ものづくり市」など屋外での活動は休止しています。

しかし暖かくなるまで何もしないというのも寂しいので、機会があれば、どこか屋内で活動したいなぁ、とも思っております。どなたか、そんな機会と場所をご提供いただける方がおられましたら、ご一報ください。適当な友達グループ数人とかでも結構です。これまで紹介してきたネタや、またはご要望に応じて新しいネタで、電子工作の出前をさせていただきます。ただし、京都から日帰りで行ける範囲でお願いします。

ご興味のある方は、とりあえず、下のコメントか、横の「メール送信」でご連絡ください。

2010年12月15日水曜日

LED光ファイバーツリー(3)

先日紹介した光ファイバーツリーをうちの子供たちが作りました。やはり子供たちの方が楽しいツリーを作ります。
LED光ファイバーツリー(2)で紹介したタミヤの「透明ソフトプラ材2mm丸棒」を使ったほうです。


暗い時の写真はこちらです。


動画も撮ってみました。


LEDの光り方を少し変えてみました。右のツリーは先日紹介したプログラムを使ったもので、色がゆっくりと徐々に変化していきます。左のツリーはプログラムを少し変更して、色が次々と瞬間的に変わります。色の変化は音楽と連動しています。
動画では光の色があまりきれいに出ていませんが、実物を暗いところで光らせるとけっこうきれいです。
動画では2曲分しか撮っていませんが、プログラムには4曲入っています。

↓色が次々と 変わるタイプのプログラムはこちらです。
<マイコンのプログラム>
PIC12F615用のプログラムだけです。

回路はこれまでの光ファイバーツリーと同じですが、もう一度載せておきます。

ついでに、これまでの記事には載せていなかったブレッドボードの配線図も載せておきます。
ただし、写真の作品では回路部分を小さく仕上げるため、ブレッドボードではなくユニバーサル基板を使ってはんだ付けで回路を作りました。


にほんブログ村 その他趣味ブログ 電子工作へ
↑最後まで読んでいただいた方はこちらのリンクをクリックしてランキングにご協力下さい。
↓ついでに、下のリアクションもチェックお願いします。

2010年12月10日金曜日

LED光ファイバーツリー(2)

前々回の記事に引き続き光ファイバーツリーのその2です。LEDとマイコンなどの回路部分は前の光ファイバーツリーと全く同じです。上の光ファイバー部分だけを変更してみました。こちらのものは、本当の光ファイバーではありません。タミヤの「透明ソフトプラ材2mm丸棒」というものを使っています。本当の光ファイバーではないので、側面から多少光が漏れるのですが、それがちょうどいい感じで、全体的にぼんやりと光ります。棒の途中で部分的に強く光らせたいときには、その部分をヤスリなどでキズをつけます。棒全体を光らせるには細かい紙ヤスリで側面を削ります。カッターナイフを使って、斜めに転がしながら側面にらせん状のキズをつけてもおもしろいです。
切断はよく切れるカッターナイフを使って、平らな板の上で転がすようにして切ります。一回では切れないので、2週目からは同じところを通るように注意して、何回か転がして切ります。曲げるのは、手で簡単に曲げられます。けっこう急なカーブで直角に曲げたりもできます。そのはんたいに、大きな緩やかなカーブに曲げるのはちょっと難しく、ドライヤーなどを使うのがよいかもしれません(やっていないのでわかりません)。
5〜7本まとめると、ちょうでLEDと同じくらいの太さになるので、そこから全ての棒に光を入れることができます。
飾り付けには100円ショップで購入したキラキラモールと、手芸などに使うスパンコールを使ってみました。

一応、マイコンのプログラムをこちらにも置いておきます。
↓マイコンのプログラムはこちらです。↓
<PIC12F615用プログラム>
<PIC12F683用プログラム>

PIC12F683用と、もう少し安いPIC12F615用のプログラムも追加しました。全く同じ回路で、全く同じ動作をします。

ついでに宣伝です。ただいま、アクセスカウンタ1000達成記念企画をやっています。


にほんブログ村 その他趣味ブログ 電子工作へ
↑最後まで読んでいただいた方はこちらのリンクをクリックしてランキングにご協力下さい。
↓ついでに、下のリアクションもチェックお願いします。

2010年12月6日月曜日

アクセスカウンター1000達成記念企画

このブログをはじめて2ヶ月あまりになりますが、おかげさまで、今日明日にもアクセスカウンター「1000」を達成しそうです。
そこで読者の皆様への感謝を込めて、ちょっとした記念企画を考えました。
その内容は、

「1111」をゲットされた方に、ささやかなプレゼントを贈呈!

 そして、そのプレゼントとは、
私が現在、開発、試作中のPICマイコンプログラム書き込み器、
その名も「Writer509互換USBプログラマーonミニブレッドボード」です。

Writer509とは、自作のPICプログラマー(マイコンへのプログラム書き込み器、ライターとも言います。)として有名なプログラマーです。
それを、PIC18F14K50というUSB機能内蔵PICを使ってUSBで使えるようにしようという試みです。しかも、私の製作例でいつも使っているミニブレッドボード上で簡単に組めるようになっています。
そのプログラマーの詳細は、後日、記事で書く予定です。

プレゼントするのは、このプログラマーの作製に必要な主要部品です。一部、簡単に入手できる部品(電池とUSBケーブル)は自分で準備して頂くことになります。

プレゼント獲得の条件、方法は下記のとおりです。

1.アクセスカウンタ(ページビューの合計)の数字が「1111」の状態を見られた方は、すぐにこの記事の下のコメントに「1111ゲット!」と書き込んでください。必ずこの記事へのコメントに記入をお願いします。「1111」を偶然通りかかった方や、プレゼント獲得の意思のない方がゲットされるかもしれませんので、もし「1111」を過ぎていても、コメント欄でまだだれも「ゲット!」宣言がない場合は、「1113ゲット!」などと、書き込んでください。「1111」を過ぎていても、一番最初にこの記事へのコメントに「ゲット!」宣言した方がプレゼント獲得と致します。1位の方が辞退されるかもしれませんので、2~3位の方までコメントを記入して、記録を残していただけるとありがたいです。

2.下に記載の免責事項をご承諾頂ける方のみご応募下さい。

3.「1111(またはそれ以降の番号)ゲット!」の書き込みを私が確認し次第、コメントにてプレゼント贈呈のための手続きの連絡をさせていただきます。その際に、プレゼント獲得者様の個人情報(送り先など)をメールにてお送りいただくことになります。個人情報はブログでは公開しませんが、プレゼント送付のために、私にはメールでお教えいただく必要がありますので、予めご了承ください。

4.本企画は新たに電子工作をはじめてみたいという方に、そのきっかけになればと考えてのものです。既に自分でバリバリ電子工作をされている方、なんらかのマイコン用プログラマーをお持ちの方はできればご辞退いただき、初心者の方にお譲りいただければありがたいです。
5.あまりおられないとは思いますが、プレゼントが欲しいからといって、ブラウザーの更新ボタン連打はお控えください。私の方でも、ある程度アクセスログ等でその状況は確認できますので、あまりにひどい場合はご辞退いただく場合もあります。

以上、長々と逃げ口上のような注意書きをさせていただきましたが、ご容赦ください。
「1111」ゲットを狙って、これからもご愛読お願いいたします。

<プレゼントの免責事項>
1.プレゼントのプログラマーはあくまで私の趣味で開発した試作品ですので、動作保障はできません。万一うまく動かない場合はあきらめてくださ い。また、プレゼントのプログラマーはパソコンに接続して使用しますので、回路の組み間違いや、その他何らかの原因で、パソコンに損傷を与えてしまう危険 性があります。その点についても、あくまでプレゼント獲得者様の自己責任でご使用をお願いいたします。このプログラマーの使用による事故等については私の 方では一切責任を負えませんので、ご理解のうえ、ご使用ください。これらの点にご承諾いただけない場合は、プレゼント獲得をご辞退ください。

2.プレゼントの送付は定形外郵便か、クロネコメール便など、安価な方法を利用しますので、輸送途中での事故による保障はございません。万一の事故の場合はあきらめてください。

(12月14日追記)
5日の朝6時ごろに「1111」となったようです。どうも、どこかの検索エンジンの巡回にゲットされてしまったようです。
その後、今日まで、どなたも「ゲット」のコメント記入がなかったので、寂しいながらも、この企画はおしまいにさせていただきます。
もし、このプログラマーに興味のある方がおられれば、別途ご相談ください。


にほんブログ村 その他趣味ブログ 電子工作へ

2010年12月2日木曜日

LED光ファイバーツリー

本題の前にまずお知らせです。12月5日の「ものづくり市」に「親子で電子工作」は出店致しません。理由は、私事で大変恐縮ですが、寒いから、です。「寒いから」という理由をもうすこし真面目に説明しますと、その中に3つの理由があります。1つは、単に私が寒くて耐えられない。2つめは、寒いのでお客さんが来なさそう。3つめは、せっかく来ていただいたとしても、寒くてゆっくり作っていられないのではないかと。もし、万一、このブログを読んで、12月5日のものづくり市に行こうと思っていただいていた方がおられましたら、大変申し訳ございません。そういうわけですので、冬の間は長岡京市の「ものづくり市」での活動はお休みさせていただきます。
そんなわけで、屋内でできそうなところを探して、1つよさそうな、とある「***市」を発見して応募したのですが、残念ながら抽選に外れてしまい、出店できませんでした。

で、残念ながら抽選に外れて出店できなくなったのですが、そのために用意していたネタとして、クリスマスシーズンということもありますので、LED光ファイバーツリーです。 光源にはRGBフルカラーLEDというものを使います。これは、光の3原色である赤色(R)と緑色(G)と青色(B)の3色のLEDが一体になった(一つのパッケージに入った)LEDです。3色のLEDの光の強さを調整することによって色々な色(理論的には全ての色)に光らせることができます。 このRGBフルカラーLEDをマイコンで制御して色々な色に光らせます(どのようにして、光らせ方を調整するかは、後日、気が向いたら説明を書こうと思います)。

 右の図が回路図です。マイコンはPIC12F683というものを使っています。おそらくもう少し安いPIC12F615でも大丈夫と思います。RGBフルカラーLEDは秋月電子で購入できるOSTA5131Aというものを使っています。また、青色と緑色のLEDは、光るために電圧が約3V必要なので、少し余裕を見て、電池を3本直列で使用します。3色のLEDが全て100%点灯したときに白色に光るように各色のLEDにつながる抵抗の値を調整しています。そして、マイコンで3色のLEDそれぞれの光る強さを調整します。時間とともに、ゆるやかに、色々な色に変化します。

光ファイバーには三菱レイヨン製の「エスカ」というプラスチック製の光ファイバーを使います。エスカには色々な太さのものがありますが、写真のツリーに使ったのは直径0.5mmのものです。長さ12〜20センチに切った光ファイバーを7〜80本使っています。光ファイバーはよく切れるカッターナイフで切ります。LEDが直径5mmの弾丸形なので、図のように同じ直径5mmのストローをかぶせて、そのストローに光ファイバーをそろえて入れます。端をきれいにそろえたほうが、すべての光ファイバーにうまく光が入るように思います。
上の写真は長時間露光で撮影したので、光ファイバー全体が光って見えますが、実際には光ファイバー自身は全くといっていいほど光らず(光ファイバーの途中で光がもれない、即ち、光ファイバーとして優秀で)、光ファイバーの先端だけが光る感じです。光ファイバーの途中を光らせたい場合には、光ファイバーの側面を細かい紙やすりで軽くこすってやるといいです。

そして、せっかくマイコンを使っているので、LEDを光らせるだけではさみしいので、圧電スピーカもつけて、オルゴール機能をつけてみました。こちらは「自分でオルゴール」とはちがって、ちゃんと自動で演奏してくれるオルゴールです。音色も少し工夫して、少しオルゴールっぽい音色にしています。 曲は定番のクリスマスソングが4曲入れてあります。

↓マイコンのプログラムはこちらです。↓
<PIC12F615用プログラム>
<PIC12F683用プログラム>

ところで、この光ファイバーツリーですが、先に書きましたとおり、ねらっていた「***市」の抽選に外れたため、今のところ出店予定がありません。にもかかわらず、材料をある程度仕入れてしまっています。何かよいご提案がございましたら、下のコメントなどにお願いします。コメントの記入方法は分りにくいですが、この記事の下の「コメント」の文字をクリックすると、コメント記入欄が出てくると思います。

(12/10追記)
マイコンのプログラムを少し修正しました。
ついでに、もう少し安いPIC12F615用のプログラムも追加しました。全く同じ回路で、全く同じ動作をします。
ついでに宣伝です。ただいま、アクセスカウンタ1000達成記念企画をやっています。

にほんブログ村 その他趣味ブログ 電子工作へ
↑最後まで読んでいただいた方はこちらのリンクをクリックしてランキングにご協力下さい。
↓ついでに、下のリアクションもチェックお願いします。