2016年12月21日 | 公開。 |
前のページでは、Arduino UnoにLEDとスイッチを付けて電子サイコロを作りましたが、Arduino Unoから必要な機能だけを抽出した互換機を自作し、LEDやスイッチと同じ基板に載せて、装置の小型化をする事を考えます。
Arduino Unoの互換機を作る前に、Arduino Unoの回路構成がどうなっているかを確認してみましょう。
Arduino Unoの回路図は、Arduinoの公式サイト(arduino.cc)のArduino Unoの商品ページにアクセスし、図4の様に"SHEMATICS IN .PDF"と書いたアイコンをクリックすると、ダウンロードできます。
Arduino Unoの大まかなブロック図を図5に示します。
Arduino Unoは、ATmega328Pという型番のマイコンICに、様々な周辺回路を取り付けた構成になっています。図5のブロック図の中で、電子サイコロを動かすために必要なのは、実はマイコンだけで、他の部分は動作に必要ないのです。
例えばUSBコネクタやUSB-シリアル変換ICは、マイコンにスケッチを書き込む際に使いますが、これらはスケッチ書き込み後には使用しません。また、外部から5Vの電源をもらえるとすれば、電源回路も不要です。13番ピンにつながっているLEDも不要ですし、Arduino互換機とサイコロのLEDやスイッチを1枚の基板に組み込んでしまう事を前提にすれば、Arduinoとシールドを接続するためのヘッダ(ピンヘッダ)も不要です。
この様に考えると、電子サイコロにArduino Unoを使う場合、Arduino部分はATmega328PというマイコンIC1個に集約されます。とはいえ、厳密にはIC1個という訳にはいかず、若干の周辺部品も必要です。
ATmega328Pにも色々なパッケージがあるのですが、その中でも2.54mmピッチで半田付けしやすいDIPパッケージの物は、ATmega328P-PUという型番になります。ATmega328P-PUの写真を写真4に示します。
ATmega328P-PU単体をArduino互換機として使う場合のピン接続は、図6の様になります。
この図で、赤色で示したピンが、ArduinoのI/Oピンです。たとえば、11番ピンには赤色でD5と書いてありますが、これはArduinoの5番ピンを表わしています。(DはDigitalのイニシャル) 黒色の表記のピンは、電源ピンなど、ArduinoのI/Oピンとして使えないピンを表わしています。
ATmega328P-PUをArduino互換機として使用する場合の基本回路は、図7の様になります。この回路に、作りたい回路に必要な部品(電子サイコロの場合はLEDとスイッチ)を付け加える事で、Arduinoで何かを制御する回路ができます。
図7の回路に使うATmega328P-PU以外の部品を、写真を示しながら説明します。
写真5は、R1の10kΩの抵抗です。1/8Wないし1/4Wのカーボン抵抗または金属皮膜抵抗を使います。
写真6は、C1およびC2の22pFのコンデンサです。セラミックコンデンサ(積層セラミックコンデンサまたはディスクセラミックコンデンサ)を使います。
写真7は、C3およびC4の0.1μFのコンデンサです。セラミックコンデンサ(積層セラミックコンデンサまたはディスクセラミックコンデンサ)を使います。このコンデンサは、電源電圧を安定化させるためのパスコンとして使われていますが、セラミックコンデンサ以外の種類のコンデンサを使うと、十分な性能が出ないため、注意が必要です。
写真8は、X1の16MHzの水晶振動子です。水晶振動子はマイコンの動作速度を決めるクロック信号の発振に使われます。Arduino Unoの場合は、クロック信号の周波数は16MHzと決まっています。
なお、水晶振動子の代わりにセラミック発振子を使う事も可能です。セラミック発振子は水晶振動子と同じ働きをしますが、水晶より安いセラミックを材料として使っているため、水晶振動子より安価です。一方で、周波数の精度が水晶振動子よりも悪いという欠点もあります。(ただし、マイコンで時計でも作らない限りは、多くの場合、この欠点は問題にならないでしょう)
また、セラミック発振子には、C1とC2の働きをするコンデンサを内蔵している、3端子の物があります。写真9に、コンデンサ内蔵型のセラミック発振子を示します。
コンデンサ内蔵型のセラミック発振子の内部接続は図8の様になっています。
よって、2つの22pFのコンデンサと1つの水晶振動子をコンデンサ内蔵型のセラミック発振子に置き換えれば、図9の様に、部品の削減ができます。
図7の回路図では明示していませんが、ATmega328P-PUは基板に直接半田付けしてはいけません。というのは、図7のArduino互換機は、スケッチを書き込むための回路を省略してしまっているからです。スケッチを書き込むには、ATmega328P-PUを基板から取り外して、スケッチライタ(スケッチ書き込み器)に装着する必要があります。
ATmega328P-PUを基板に取り外しができる様にするために、28ピンのICソケットを使います。写真10に、ICソケットを示します。
図7のArduino互換機には、5Vの電源を供給する必要があります。これには、5VのACアダプタが使えます。また、16MHz動作のATmega328Pは、正確に5Vの電圧を供給しなくても、3.8~5.5Vの範囲の電源電圧で動作しますから、単3や単4の電池を3本直列に接続して4.5Vにしても、動かす事ができます。
次のページでは、図7のArduino互換機にLEDとスイッチを接続して、Arduino互換機内蔵の電子サイコロを作る方法について説明します。
商品名 | Arduino Uno用ブートローダスケッチライタシールドキット | |
税抜き小売価格 | 1440円 | |
販売店 | スイッチサイエンス | |
サポートページ | Arduino Uno用ブートローダライタシールドキットサポートページ |
商品名 | Arduino用ブートローダ/スケッチライタキット | |
税抜き小売価格 | 3000円 | |
販売店 | スイッチサイエンス | |
サポートページ | Arduino用ブートローダ/スケッチライタキットサポートページ |
商品名 | Arduino用ブートローダ/スケッチライタ(完成品) | |
税抜き小売価格 | 3600円 | |
販売店 | スイッチサイエンス マルツ | |
サポートページ | Arduino用ブートローダ/スケッチライタ(完成品)サポートページ |