« 自作マルチシェードのテスト | トップページ | あけましておめでとうございます »

2010年12月31日 (金)

年末は工作でもして

仕事も一段落したので、年末は工作して過ごした。

趣味でPICやらH8やらSH2なんかで遊んだりしていたけど、最近のお気に入りはAVR。で、AVRといえばArduinoが気になっていたので、Arduinoのボードを作ってみた。

Arduinoというのは、ワンチップマイコンを使用したコンピュータボードで、趣味の工作として使いやすいよう工夫がなされている。ボードそのものを買うことも出来るが、オープンソースハードウェアという形で回路図も公開されているので、回路を自作することも可能だ。何よりありがたいのは、しっかりした開発環境がタダで利用できることと、世界中でArduinoが使われているのでライブラリが充実しており、ちょっとしたことなら本当にあっという間にプログラムできてしまうことである。それに、専用のライタがいらず、USBでPCとつなぐだけでプログラミングできてしまうというのも便利だ。まぁ、自作するに当たっては結局ブートローダと呼ばれるソフトを書き込むためにライタが必要になるのだが。

最近はMakeなどの科学工作系雑誌でも取り上げられているし、ニコニコ動画などにもArduinoを使った作品作りの様子が投稿されているので名前くらいは知っている人もいるかもしれない。

Arduino

http://ja.wikipedia.org/wiki/Arduino

PICやH8などのワンチップマイコンでも(処理速度やメモリ容量に差はあれど)基本的には出来ることは同じだが、ソフトを書き込んでテストする段階までに到達するハードルは格段に低くなっているのがうれしい。

最近の状況はよく分からないが、私がPICをかじった10年ちょっと前はCコンパイラが有料だったため、プログラムはアセンブリ言語を使用していた。秋月で有料のCコンパイラを買ってみたが、これもバグだらけで正しいコードを生成しないことが多々あり、逆アセンブルして解析するといったことを繰り返すうちにアホらしくなって放置。2万円くらいするCコンパイラだともう少しマシだったらしいが。

その後、私が使ってみたH8はCコンパイラを含む開発環境がタダで手に入ることもあって非常に使いやすかったが、処理速度などの点でSH2のボードが秋月で出回るようになると興味はそちらにシフトした。その頃に知ったのがAVRで(使い物になる)C言語の開発環境がタダで手に入ること、コスト的にも優れていることなどもあって、遊びでボードを作ったりした。

で、ArduinoにもAVRが乗っていると知って興味が出てきた、というのがここに至るいきさつである。

ボードの製作であるが、まず回路図を手に入れる必要がある。Arduinoの総本山のページから回路図をダウンロードすることも勿論可能であるが、回路を自作するにあたり一番参考になったのはこのサイトである(参考にしたのはDuemilanoveタイプ)。

http://robo.mydns.jp/Lecture/index.php?Arduino%2FArduino%20%A4%CE%BC%AB%BA%EE

回路図へのリンク

http://arduino.cc/en/uploads/Main/arduino-duemilanove-schematic.pdf

製作するにあたり、まずはブレッドボード上で動作を確認することにした。

Bb01

この写真にあるブレッドボードの上半分を使ってArduinoのテスト回路を製作した。困ったのは、クリスタルなどをどうやってブレッドボードに配置するかだが、結局基板とソケットピンを使ってブレッドボード用のクリスタルユニットを作ってみた。

Crystal

USB-シリアル変換には秋月の変換モジュール(950円)を使用

Usb_s

改めて思ったけどブレッドボードって本当に便利。サクサクサクっと回路ができちゃう。回路が出来たら、次はソフトウェアのダウンロードだ。

Arduinoのソフトも勿論無料で手に入る、オープンソース万歳。

http://arduino.cc/en/Main/Software

PCにはこれをそのままインストールすればいいが、問題なのはブートローダのダウンロード。先ほどブレッドボードに作った回路は、じつはこのままではArduinoとしては動かない。回路上のAVR(ATmega168)にブートローダと呼ばれるソフトウェアをダウンロードする必要があるのだ。

ブートローダ自体は、Arduinoのソフトウェアのパッケージに入っている。ATmega168用のものであれば、Arduinoのフォルダ/hardwere/arduino/bootloaders/atmegaにあるATmegBOOT_168_diesimila.hex というファイルがそれである。

これをライタを使ってAVRに書き込んでやればオッケー。

ついでに、ヒューズビットとロックビットも設定する、私は

EXTENDED bit: 0xF8   High bit : 0xDF    Low bit : 0xFF

ロックビット : 0xFF

のように設定した。

これで製作終了、パソコンにUSBケーブルをつないでArduinoを起動し、プログラムの書き込みと動作の確認をする。

ここまでで、この回路で問題ないことを確認できたので、次はこれを基板上に作ってしまうことにした。このとき、USBのコネクタを直接基板にくっつけることで、Arduino基板そのものをPCのUSBコネクタに差し込めるようにした。こうした方がなんだかおしゃれでしょ?

Kiban

ユニバーサル基板に手配線で作るのは以外に手間がかかったけど、できてしまうと大満足。USB-シリアルの変換は秋月のユニットを使用すると高価なので、FT232RLと変換基板を使用した。電源はUSBからの供給か外部供給かをジャンパで選択できるようにし、外部供給電圧を5Vに変換するための3端子ジェネレータを基板上に配置している。といっても、ジャンパや3端子ジェネレータは写真のFT232RLの変換基板(写真で緑色の基板)の下に配置されているので見えないのだが。

最近は、基板上配置のチップ抵抗やチップコンデンサ、LEDが安価で手に入るので、こういう基板がコンパクトになるのは本当にありがたい。部品が小さいので半田付けには若干のコツが必要だが、少しの練習ですぐにできるようになるはずだ。

これで当分は遊べそうである。

ちなみに、最初から自分で作るのは大変な場合は買うことも可能である。電子工作を手軽に楽しみたい、あるいはアイデアを少しでも早く形にしたいという向きにはこういうのを利用するといいと思う。価格を見ると少し高いように思えるが、自作しても結局1000円くらいはかかってしまうのだ、その上製作やトラブルシューティングにかかる時間を加味して考えれば、こういう選択もアリだ。勿論、私は趣味だから自作するけど。

あと、参考書となると難しい。私が手元においているのは以下の2冊だが、ワンチップマイコンとなどんなもので、どんなことが出来るのかを知らないと内容的に難しいと思う。

 

一応初心者向けには以下の本だと言われているが、リファレンスとしての価値はともかく、前半のArduinoの哲学じみたお話はもう少し端折っても良かったように思う、哲学はともかくこういうのはとにかく手を動かしてやってみることが重要だと思うから。

こうしてみると、意外とArduino関連でバランスのいい本がないなぁ。結局、ネット上で情報を集めながらやるのが良さそう。あとは、Arduinoの開発環境にはサンプルプログラムがいくつもあるので、これを参考にすると結構ためになる。

« 自作マルチシェードのテスト | トップページ | あけましておめでとうございます »

趣味」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/504245/50450500

この記事へのトラックバック一覧です: 年末は工作でもして:

« 自作マルチシェードのテスト | トップページ | あけましておめでとうございます »