ON THE HAND

引っ越しました http://tech.andhandworks.com

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

このエントリーをはてなブックマークに追加

  1. --/--/--(--) --:--:--|
  2. スポンサー広告

Arduino 互換機を自作する(4):仮組み~完成

もくじ

  1. Arduino 互換機を自作する(1):導入
  2. Arduino 互換機を自作する(2):部品を選ぶ
  3. Arduino 互換機を自作する(3):ブートローダーを書き込む
  4. Arduino 互換機を自作する(4):仮組み~完成


今回は前回ブートローダーを書き込んだ ATmega328p を使って
ついに Arduino 互換機を組み立てます。

外部クロック版の回路図は次のようになります。
一見、部品が多いように見えますがHEADER-1~4 はただのヘッダピンです。
また、FTDI USB シリアル変換モジュールはヘッダピンに挿しているだけなので
はんだ付けは不要です。
ArduinoExternalClockCircuit.jpg

内部クロック版の場合はこんな感じ。
面倒なのでヘッダピンの記載は省略しました。
ArduinoInternalClockCircuit.jpg

外部クロックの方がオシレーター(水晶発振器)関連の分だけ
部品が多いですが、それ以外はどちらも手順は同じです。

ブレッドボード上に仮組みする


はんだ付けの前にブレッドボード上で動作確認します。
仮組みの時点ではヘッダピンは不要です。

組み終わったら、FTDI USB シリアル変換モジュールから
PC に USB 接続して Arduino IDE からスケッチを書き込みます。

スケッチ書き込み時に指定する Arduino の機種は
前回、ブートローダーの書き込み時に指定したものと同じです。

動作確認の定番と言えば「Lチカ」ですね。
サンプルスケッチの Blink を実行すると D13 の
LED が点滅すると思います。

ユニバーサル基盤に配置


ブレッドボードで上手く動作したら、
今度はユニバーサル基盤上に実装します。
ヘッダピンは切り離して使えるタイプのものを
6ピン、5ピン、4ピン、14ピンの4個に分けておきます。

はんだ付けをする前に全ての部品を一旦配置してみて、
配線を飛び越えないといけない部分などの取り回しを
確認しておくことをお奨めします。

ポイントになりそうなところをいくつか説明しておきます。

22pin GND と 20pin AVcc
これらのピンはそれぞれ 8pin GND と 7pin Vcc に
ショートさせるのが推奨されています。
ただし、これはノイズ対策が目的なので、
モーター制御などのノイズが発生するケース以外は
やらなくても一応は動作します。

チップの裏側から配線を飛ばすのが簡単ですが、
7pin-20pin と 8pin-22pin の結線が互いに交差してしまうので
どちらか一方はチップの外側を迂回させるか、
被膜付きのジャンパー線を飛ばす必要があります。

FTDI USB シリアル変換モジュール
今回に限ったことではありませんが、ATmega328p の RX を
モジュールの TX に、TX を RX に繋ぎます。
RX-TX とはそういうものです。

モジュールの 6pin GND が ATmega328p の
1pin RESET 側に来るように6ピンのヘッダピンへ
配線すると、少々トリッキーですが下図のように
固定抵抗やコンデンサを駆使して線の交錯を避けられます。
図のうち赤い線が基板背面、緑と部品が基板表面です。
ArduinoMakingGNDConnection.png

このようにしてピンヘッダを付けておくと、
USBシリアル変換モジュールのピンソケットを
そのままピンヘッダに挿せるので便利です。

以前も書きましたが、このような使い方ができるため、
USBシリアル変換モジュールはケーブルの付いていない
ピンソケットタイプのものがお奨めです。

ユニバーサル基盤にはんだ付け


慣れている方にとっては常識でしょうが、
一応、ユニバーサル基盤ではんだ付けするときの注意を。

  • 配線は部品の脚を使う。
    固定抵抗などの脚を基板裏側で曲げながら
    他の部品と繋いでいきます。
    出来るだけリード線を使わない方がすっきりします。

  • 両端と曲がり角だけはんだ付けする。
    脚を曲げて繋ぐ際、直線部分ははんだ付けしません。
    ハンダがもったいないしブリッジしやすくなるので。
    私は曲がり角でズレないようにはんだ付けしますが、
    人によっては本当に両端しかしないのかも。

  • 隣同士の部品はハンダブリッジで繋ぐ。
    すぐ隣に接続先がある場合はわざとはんだをブリッジさせます。
    部品の脚を曲げると弓型になってしまって不細工です。



ユニバーサル基盤を割る


普通ははんだ付けの前に割るのかもしれませんが、
私は途中で配置変更ができるようにはんだ付けが
終わるまで割りません。
そのため、割るのに失敗すると部品が全部無駄になります。

ユニバーサル基盤の不要な部分を割るには、次のようにします。

  1. 表面にカッターで一直線に切れ込みを入れる。
    穴と穴の間を順に結んでいけばOK。

  2. 切れ込みを入れた直線に定規を当ててペンチで挟む

  3. 定規の側から見て谷折りにへし折る


もっと上手に割れる方法をご存知の方は教えてください。


以上で、このような Arduino 互換機が完成です。
写真左下の6ピンのピンヘッダにUSB シリアル変換モジュールを挿せば
PCと接続できます。
青いコンデンサのあたりを整理するともう少し小さくできるかも。
ArduinoMaking_board.jpg


まだ作り方を調査中ですが、いずれここに MAX3521e という
USB ホストコントローラーを載せて USB Host Shield 内蔵に
したり、モータードライバも内蔵して Wii リモコンラジコン
モジュールを作れないかと考えています。

設計できたらそのうち紹介します。

このエントリーをはてなブックマークに追加

スポンサーサイト
  1. 2015/04/11(土) 22:44:13|
  2. Arduino
  3. | コメント:2

Arduino 互換機を自作する(3):ブートローダーを書き込む

もくじ

  1. Arduino 互換機を自作する(1):導入
  2. Arduino 互換機を自作する(2):部品を選ぶ
  3. Arduino 互換機を自作する(3):ブートローダーを書き込む
  4. Arduino 互換機を自作する(4):仮組み~完成


前回選んだ部品で Arduino 互換機を作っていきます。
早速組み立てたいところではありますが、実は多くの場合はそのままでは動きません。

Arduino IDE からスケッチを書き込むには、あらかじめ ATmega328p に
ブートローダーというプログラムが書き込まれている必要があります。
今回はブートローダーの書き込み方を説明します。

スイッチサイエンスさんのATmega328pは
内部クロックで動作させるための
ブートローダーを書き込んであります。

これを使用する場合はブートローダーを
自分で書き込む必要はありません。

一方、秋月電子通商さんなどで
素のATmega328pを買ってきた場合や、
スイッチサイエンスさんで買ったものを
外部クロックで動作させる場合は
ブートローダーを書き込む必要があります。
(本当はブートローダー無しでスケッチを
書き込む方法もあるのですが、
その話はまたいずれ。)

ブートローダーを書き込むには、書き込み用のデバイスが必要です。
なんと、Arduino で書き込み機を自作することができます。

書き込み機用のArduinoを自作しようとしてもそのための書き込み機が
ありませんので、最初だけはブートローダー書き込み済みの
Arduino を調達する必要があります。

1台も Arduino を持っていない状態で Arduino を自作する方は
あまりいないと思いますので、今回は Arduino UNO を使います。

Arduino UNO を使って Arduino を1台分自作してしまえば、
その1台をブートローダー書き込み機にして2台目を作ることが可能ですので、
それ以降は Arduino UNO は他の用途に回していただいて構いません。

内部クロック用ブートローダーを書き込む


  1. Arduino 公式サイトのMinimal Circuit のページから
    Breadboard1-5-x.zipをダウンロードします。
    Arduino IDE1.0.x をお使いの場合は Breadboard1-0-x.zip のようです。

  2. マイドキュメントのArduinoフォルダに「hardware」というフォルダを作成します。

  3. ダウンロードした ZIP ファイルを展開してできた breadboard フォルダを
    hardware フォルダに放り込みます。

  4. Arduino UNO と PC を USB ケーブルで接続して Arduino IDEを起動

  5. サンプルスケッチから ArduinoISP を選んで Arduino UNO に書き込みます。
    ArduinoISPmenu.jpg

  6. 一旦 USB ケーブルを抜いた後、Arduino UNO とブレッドボードを使って下記のように回路を組みます。
    SimpleBreadboardAVR.png

  7. 再度 USB ケーブルを接続し、メニューから図のように選択
    ATmega328pInternalMenu.jpg

  8. 「書き込み装置」でArduinoISPを選択してブートローダーを書き込みます。



外部クロック用ブートローダーを書き込む


外部クロックの方が部品点数は多いですが手順は簡単です。
  1. サンプルスケッチから ArduinoISP を選んで Arduino UNO に書き込みます。
    ArduinoISPmenu.jpg

  2. 一旦 USB ケーブルを抜いた後、Arduino UNO とブレッドボードを使って下記のように回路を組みます。
    コンデンサは22pFのもの、抵抗は10kΩのものです。
    以前はArduino UNOのRESETとGNDの間に10μFの電解コンデンサを入れることになっていたようですが、
    なぜか現在はその記述が削除されています。
    無しでも問題なくブートローダーが書き込まれていますので必要ないようです。
    BreadboardAVR.png

  3. 再度 USB ケーブルを接続し、メニューから図のように選択
    Arduino Duemilanove か Arduino Nano あたりを選んでおけば良いようです。
    ATmega328pExternalMenu.jpg

  4. 「書き込み装置」でArduinoISPを選択してブートローダーを書き込みます。



以上で ATmega328p へのブートローダー書き込みは完了です。
公式サイトには Arduino UNO を経由したスケッチの書き込み方法も書かれていますが、
無視して構いません。

次回以降で FTDI モジュールを使ったシリアル接続回路も組み込んでいきますので、
Arduino UNO 無しでもスケッチを書き込めるようにします。

このエントリーをはてなブックマークに追加

  1. 2015/04/08(水) 22:18:26|
  2. Arduino
  3. | コメント:0

Arduino 互換機を自作する(2):部品を選ぶ

もくじ

  1. Arduino 互換機を自作する(1):導入
  2. Arduino 互換機を自作する(2):部品を選ぶ
  3. Arduino 互換機を自作する(3):ブートローダーを書き込む
  4. Arduino 互換機を自作する(4):仮組み~完成


前回、簡単に自作できる Arduino 互換機には内部クロックと外部クロックの2種類があることを説明しました。
どちらも必要な部品はほとんど同じなのでまとめて紹介します。

今回紹介する部品で組み上げるとこのようになります。
この写真は外部クロックのタイプです。
ArduinoMaking_board.jpg

Arduino UNO が 140mm x 90mm なのに対して、
自作版は 45mm x 35mm なので 1/3 程度の大きさになっています。
上手に部品配置するともっと小さくできるかもしれません。

その代わり、Arduino UNO のような USB や外部電源などの
端子類はありませんし、市販のシールドも使えません。

これを作るのに必要な材料は次の通りです。
一式だけ必要な道具と、1台分の材料に分けて説明します。

【一式だけ必要な道具】

FTDI USB シリアル変換アダプタ


自作 Arduino では必須の重要アイテムです。
オンボードで USB コネクタを載せないため、
マイコンチップにこのモジュールを繋いで
Arduino IDE からスケッチを流し込みます。

変換モジュールにはケーブル付きのものなど
何種類かありますが、リンク先のようなアダプタ型が
安くて小さいのでお奨めです。

通常はソケットにジャンパー線を挿して使いますが、
今回はこのアダプタのピン配列に合わせてピンヘッダを
用意して基板に直接挿せるようにする予定です。

余談ですが、配線を間違えると逆電圧が掛かって速攻で壊れます。
私だけかもしれませんが、ケアレスミスで頻繁に壊すので
出来るだけ安いものを選ぶようにしています。

Arduino UNO


Arduino を作るのに Arduino が必要
という罠。
ATMega328p というメインチップに
ブートローダを書き込むために使います。
UNO でなくても構いません。

内部クロックで構わない場合は
スイッチサイエンスさんが販売しておられる
ブートローダ書き込み済み ATMega328p を
使用すると Arduino UNO は不要です。

10μF 電解コンデンサ


ブートローダを書き込む場合に必要です。
・・・なはずなのですが、私は無しでも書けました。
真似して壊れても知りません。

半田ごて


何でも良いのですが、精密機器用に小手先が細くなっているものが
お奨めです。

あと当然ながらハンダも必要です。
はんだ付けが不慣れな方の場合はハンダ吸い取り器もあると安心です。
ハンダがブリッジしてしまった場合、吸い取り器無しで復旧するのは
かなり大変です、って言うかほとんど無理。

ブレッドボード


小さいもので構いません。
はんだ付けの前に仮組みで動作確認するのに
使います。

リンク先の 85mm のものでもATMega328p を
2個横並びで挿せます。
一方をブートローダー書き込み用、もう一方を
書き込み対象にすると、ブレッドボード1個で
コンパクトなブートローダー書き込み機を
実現することも可能です。

【材料】

ATmega328p-PU


Arduino のメインチップです。
DIP タイプ(脚付き)の "-PU" の他に、
表面実装用の "-AU" もあります。
間違えて注文するとはんだ付けで
ひどい目に逢います。

リンク先は内部クロックを使用するように
ブートローダーを書き込み済みのものです。
ブートローダーを上書きして外部クロックに
することも可能ですが、ブートローダーを書くなら
秋月電子通商さんのブートローダー無しのタイプ
方が安いです。

いずれにしても1個ずつ買うと送料が馬鹿になりません。
電子部品全般に言えますが、小さくて単価も安いので
どうしても少量購入は損ですね。

まとめ買いするか、秋葉原に行ったときに実店舗で買うようにしないと、
チマチマと注文していたら宅配業者への献金状態です。

ユニバーサル基盤


リンク先は25枚パックです。
「25枚もいらないよ。」と思うかもしれませんが、
1枚ずつ買うと高くて馬鹿馬鹿しいので、
遊び倒すならこのくらいがお奨めです。

ただ、安いだけあって端割れや剥がれなどが多いです。
人へのプレゼントにするならバラ売りなど
質の安定したものを買った方が良いかもしれません。

ピンヘッダかピンソケット


切り離して使えるタイプのピンヘッダです。
いかにも怪しい中国業者でも間に入って
安心させてくれるAmazonさんって素晴らしい。
秋葉原に行ける場合は秋月電子通商さんが安いです。

シールドを使いたいのであれば Arduino UNO と
同じ形状のピンソケットも市販されています。
が、わざわざピン配置まで合わせて頑張るなら
Arduino UNO を買った方が(以下自粛)

16MHz 水晶振動子


外部クロックの場合にだけ必要です。
内部クロックの場合は無しで構いません。

超高速 16MHz です。16GHz ではありません。

発光ダイオード


最近はホームセンターでも売っていますが、
1個3百円くらいすることが多いです。

通販で買えば100個で200円程度。
そう、100個。通販ならね。

このリンク先の LED は頭が小さくて
脚も短いので結構使いやすいです。

0.1μF セラミックコンデンサ


1台あたり2個ずつ使います。

リンク先の sapporo boueki さんは Amazon の
中でも手に入りにくい低単価の部品を
少量パックでもかなり安く出しています。

送料が掛かるので、抵抗、コンデンサ、
圧電スピーカなど、量を消費するものを
まとめて注文すると良いかもしれません。

22pF セラミックコンデンサ


Amazon では手に入らないようなので 秋月電子通商さん で。
これも1台に2個ずつ使います。
内部クロックの場合は不要です。

10kΩ抵抗


これもホームセンターで買うと高いですが、
ネットなら20本で42円。
でも送料が230円。

という訳で、やはりまとめ買いか秋葉原推奨。

1kΩ抵抗





他にもタクトスイッチなど付けておいた方が便利なものはありますが、
必須ではない部品は省略しました。

どうしても単価が安いのでネットで買うと送料が馬鹿になりません。
「都内近郊だが秋葉原が遠い」という場合は、横浜エリアなら
石川町に「エジソンプラザ」さんという不思議な一角があります。
また、多摩エリアの場合は分倍河原に「エステーシー府中」さんという、
これまた何とも表現しがたいお店があります。

それぞれなかなか良い味を出しておられるので、
お店の紹介も気が向いたらそのうちに。

次回からようやく作り始めます。

このエントリーをはてなブックマークに追加

  1. 2015/04/05(日) 18:44:22|
  2. Arduino
  3. | コメント:0
次のページ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。