※この記事は2019年4月11日に公開した記事を再編集し、2022年3月14日に再度公開しました。
デバプラでは、Arduinoのさまざまな応用や作品例をご紹介していますが、どんなものを作るにも大事なのは基礎知識!
ということで、今回あらためてお届けするのは、Arduino(アルディーノ)電子工作の基本の「キ」。教えてくれるのは、『これ1冊でできる!Arduinoではじめる電子工作 超入門』などの入門編の書籍でも有名な、福田和宏さんです!
◆
ロボット、ドローン、スマートスピーカー・・・。最近話題となった製品の多くは、電子部品を搭載しています。電子部品とは電気を利用して駆動する部品のことで、発光するLEDや、回転動作するモータ、温度などを計測するセンサなど多種多様なものがあります。ロボットやドローンなどの製品は、これら電子部品を組み合わせてできあがっています。
例えばドローンに使われている電子部品には、プロペラを回転させるモータ、傾きや位置を知るために搭載されたセンサ、コントローラからの制御信号を受ける受信装置などがあります。
このような複雑な製品だけでなく、家電製品やインテリア、おもちゃまで至る所に電子部品が使われており、われわれの生活に役立っています。
また、個人的に作品を製作する場合でも、電子部品を活用することで、さまざまな機能や表現が可能となります。動くような作品だけでなく、飾りやアクセサリーであっても電子部品を応用すれば、光らせるなどして新たな表現が可能となります。
これからは電子部品を使っての作品作りがする機会が多くなるでしょう。
そこで本連載では、電子部品の使い方と、制御に利用するArduinoの基本について紹介いたします。
目次
1. 電子部品を使った作品作り
作品を製作するには、必要に応じてモータやLED、スイッチなどさまざまな電子部品を選択することとなります。これら電子部品を組み合わせた電気回路を作成し、動作させることとなります。
そして、これらの電子部品を制御するためのマイコンを接続します。マイコンとはパソコンのCPUのようにプログラムで動作させられる電子部品で、いわば電子回路の中核となるものです。マイコンのプログラムによって、各電子部品の制御が可能となります。
例えば先にも例に挙げたドローンでいうと、ドローン上の加速度センサが傾きを検知し、機体が傾いていたら水平の状態になるよう各モータで速度を調節するといったように、各電子部品がマイコンのプログラムによって動いています。
2. プログラムで電子部品を制御するArduino
電子部品をプログラムで制御できるマイコンとして「Arduino」があります。Arduinoは、デジタル入出力やアナログ入力端子を備えており、ここに電子部品を接続して制御が可能です。
例えば、LEDを接続すれば、点灯したり消灯したりをプログラムで制御できます。また、複数のLEDを組み合わせればディスプレイのように文字を表示することもできます。
また、複数のスイッチを使って操作をして、温度センサから室温を取得してその状態に応じてプログラムで他の電子部品の動作を変えるといったことも可能です。
制御するためのプログラムは専用の開発ツール「Arduino IDE」が配布されており、パソコンにインストールして開発を進めることができます。
Arduinoは比較的簡単な電子回路となっているのも特徴です。実質Arduinoで利用されているマイコンに駆動用の矩形波を出力する水晶発振器を取り付け、電源を供給するだけで動作できてしまいます。このため、作品として作成する際に、Arduinoで試験的に動作や回路を確認した後、マイコン部分だけを独自回路に組み込んでしまうことが可能です。Arduinoのモデルとしては小さな「Arduino Nano」(後述)はサイズが45×18mmですが、マイコン部分だけを利用すればよりサイズの小さな作品でも取り付けることが可能となります。小さくできるだけでなく、利用する電子部品が少なくなり、コストを下げる効果もあります。
例えば、次の写真は25mm角の基板にArduino Nanoで使われているマイコン「ATmega328AU」を搭載し、電子部品を制御しています。基板のデザインを工夫すればさらに小さいArduinoと同等の機能を搭載したマイコンボードを制作できてしまいます。
なお、Arduinoの特徴としてオープンソースハードウェアを採用しています。各Arduinoの設計図や基板のデザインなどが公開されており、誰でも設計図を閲覧でき、改変して自分の作品などに使うことができます。また、Arduinoの設計図を改変して製作した電子回路であっても公開や販売も自由にすることができます。Arduinoで試作し、独自に基板を設計して商品として販売するといったことも可能です。
3. さまざまな種類のArduino
Arduinoにはいくつかの種類が販売されています。それぞれ機能やサイズなどが異なっており、利用する用途によってどのArduinoを選択するかを決めます。もし、どのArduinoを購入して良いかわからない場合は、基本モデルとなる「Arduino Uno」を購入するようにしましょう。
●基本モデルの「Arduino Uno」
Arduino Unoは、Arduino入門用のモデルです。デジタル入出力、アナログ入力端子を装備しており、多くの電子部品を制御することが可能となっています。各入出力端子に電子部品をつなげることでプログラムを使って簡単に制御が可能です。大きさは約68×53mmと手のひらに載るサイズとなっています。手で持てる程度のサイズの作品であれば、Arduino Unoを搭載して制御が可能となります。
ただし、16MHzで駆動するCPU、2KバイトのRAM、32Kバイトのプログラム領域と、一般的のパソコンなどに比べて性能は低くなっています。LEDやモータの制御など電子部品の制御には十分な性能ではありますが、深層学習や画像処理などといった処理がかかる用途には向いていません。
●入出力端子の多い「Arduino Due」「Arduino Mega」
Arduino Due、Arduino Megaは、Arduino Unoに比べて多数の入出力端子を搭載しているモデルです。たくさんの電子部品を接続して制御することが可能となっています。また、Arduino Dueはアナログ出力端子を搭載しており、任意の電圧を出力することが可能です。なお、Arduino Unoなど多くのモデルはアナログ出力機能は搭載されておらず、疑似的なアナログ出力をするPWM出力で対応しています。
プログラムを保管できるメモリー容量もArduino Unoに比べ256Kバイト(Mega)、512Kバイト(Due)と大容量となっており、長いプログラムや大きなデータを扱うことができます。さらに、Arduino Dueについては、32MHzで動作するCPUを搭載されています。
Arduino Due、Arduino Megaは約100×53mmとArduino Unoの1.5倍程度となります。このため、小さな作品への組み込みには向いていません。
●小型モデルの「Arduino Nano」「Arduino Micro」
Arduino NanoとArduino Microは、さらにサイズを小さくしたArduinoです。約45×18mmとなっており、大人の人差し指の上にのせられる程度の大きさです。Arduino Unoよりもさらに小さくなっているため、小さな作品に搭載する場合に役立ちます。
機能はほぼArduino Unoと同じとなっており、Arduino Unoで試作した場合でも実際に作品を作る際にArduino NanoやArduino Microに置き換えて組み込むことが可能です。
●無線通信が可能な「Arduino Yún」
Arduino Unoなど多くのモデルにはLANに接続する機能は搭載されておらず、Arduinoだけではインターネットを介したデータのやりとりなどをすることができません。そこで、Arduino Unoに無線LAN機能を搭載したのがArduino Yúnです。ネットワーク機能を搭載することで、外部からの情報や操作によって電子部品を制御することができます。例えば、外出先から冷暖房を動かし、あらかじめ室内を快適にするといった用途が実現できます。
主なArduinoのスペックは以下の通りとなります。
Arduino UNO | Arduino MEGA 2560 | Arduino Due | Arduino Micro | Arduino Nano | Arduino Yún | |
デジタル 入出力 |
14 | 54 | 54 | 20 | 14 | 20 |
PWM対応 | 6 | 15 | 12 | 7 | 6 | 7 |
アナログ入力 | 6 | 16 | 12 | 12 | 8 | 12 |
アナログ出力 | – | – | 2 | – | – | – |
通信方式 | I2C、SPI、UART | I2C、SPI、UART | I2C、SPI、UART、CAN | I2C、SPI、UART | I2C、SPI、UART | I2C、SPI、UART |
CPU (駆動周波数) |
ATmega328P (16MHz) |
ATnega2560 (16MHz) |
AT91SAM3X8E (32MHz) |
ATmega32u4 (16MHz) |
ATmega328AU (16MHz) |
ATmega328P (16MHz) |
メインメモリー | 2Kバイト | 8Kバイト | 96Kバイト | 2.5Kバイト | 2Kバイト | 2.5Kバイト |
フラッシュ メモリー |
32Kバイト | 256Kバイト | 512Kバイト | 32Kバイト | 32Kバイト | 32Kバイト |
サイズ | 74.9×53.3mm | 101.52×53.3mm | 101.6×53.3mm | 48.2×17.8mm | 43.2×17.8mm | 74.9×53.3mm |
4. Arduinoを購入する
Arduinoは、電子部品ショップで販売されています。しかし、主な電子部品ショップは秋葉原等都心部にあるため、住んでいる場所によって赴くのが困難なことがあります。一部の家電量販店で扱っていることがありますが、特定の店舗のみで扱っており、入手性が良いとはいえません。
そこで、ネットショップを利用して購入することをお勧めします。購入可能なショップとしてはAmazonや楽天といった大手ネットショップのほかに、電子部品を専門で扱うネットショップでも購入できます。主に以下のようなショップがあります。
・スイッチサイエンス
・RSコンポーネンツ
各ショップでArduinoの価格が異なりますが、Arduino Unoであればおおよそ3,000円程度で購入可能です。
また、Arduino本体だけでなく、Arduinoとパソコンを接続する「USBケーブル」についても購入しておきましょう。Arduinoによって利用するUSBケーブルが異なるので注意しましょう。
●「USB 2.0ケーブル Aオス-Bオス」を利用するArduino
Arduino Uno、Arduino Mega、Arduino Yúnなど
●「mini USB 2.0ケーブル Aオス-mini Bオス」を利用するArduino
Arduino Nano
●「micro USB 2.0ケーブル Aオス-micro Bオス」を利用するArduino
Arduino Due、Arduino Micro
USBケーブルは家電量販店や100円ショップでも購入可能です。ただし、データ通信ができるケーブルを選択します。充電専用のUSBケーブルでは、Arduinoにプログラムを書き込むことができないので注意しましょう。
5. 電子部品を購入する
Arduinoは、電子部品を制御する目的に利用するため、Arduino単体ではほとんど何もできません。このため、Arduinoで制御する電子部品を準備しておく必要があります。電子部品は、電子部品ショップで購入可能です。例えば以下のような電子部品ショップがあります。
前述した、Arduinoが購入できるネットショップでも購入できます。また、Amazonや、eBay、AliExpressなどといったネットショップでも販売していることがあります。
電子部品には、LEDやセンサ、モータなどさまざまな種類があります。LEDだけでも色、大きさ、電気的な特性などが異なった多種多様なLEDが販売されています。このため、ショップには数万点もの電子部品を扱っており、ここから利用する電子部品を探し出す必要があります。
検索ボックスでキーワードを入力して探し出す方法も使えますが、電子工作になれていない場合には、カテゴリーから探し出す方法をおすすめします。種類や用途などから絞って探し出せるため、目的の電子部品を見つけやすくなります。
例えば、秋月電子通商で白色に点灯するLEDを探す場合には、画面左のカテゴリー一覧から「LED」→「3mm白色LED」または「5mm白色LED」を選択するとLEDが一覧されます。この中から電気的統制などを参照して選択します。
なお、電子部品には電圧や電流などの動作条件が記載されています。利用する作品に合った電子部品を選択する必要があります。
しかし、電気的な特性は電気についての知識がないと判断できません。わからない場合は、制作の参考にしている記事などに記載されている電子部品を購入するようにしましょう。
* * *
今回は電子工作で作品を作るために利用するArduinoについて説明しました。次回はArduinoの開発環境を整え、電子部品の接続をして動作させる基本について説明します。
今回の連載の流れ
第1回:電子部品を動かそう!(今回)
第2回: Arduinoの準備
第3回:デジタル出力でLEDを点灯制御しよう
第4回:LEDの明るさを調節する
第5回:モータを動かし自動制御する
第6回:スイッチの状態を読み取る
第7回:アナログ入力で電圧を読み取る
まとめ:Arduino電子工作のまとめ! マイコンを使った電子工作基礎の基礎編