ゼロから始めるArduino (1)組み込み・制御システムを実装するArduinoとは?

ゼロから始めるArduino (1)組み込み・制御システムを実装するArduinoとは?

IoT (Internet of Things)という言葉自体は、約10年ほど前から提唱されたものと認識しておりますが、ここ最近特に注目されているのではないかと感じています。ここでは、数回にわたってArduinoを使用した組み込み/制御系システムの実装を体験してみたいと思います。

はじめに

筆者は最近、IoTなどキーワードに代表される組み込み系システムに興味を持っており、個人的にその情報収集や検証をしています。

これらはコンピュータシステムが誕生して以来、比較的古くから存在していますが、ここ最近IoT(Internet of Things)というものが10年ほど前に提唱され、にわかに業界が活気づいていると感じます。スマートホームや自動運転など、特にアイコンとして注目されているのではないかと感じています。

Raspberry Piの話

弊社では、これまで小型コンピュータである「Raspberry Pi」に関する記事をいくつかご紹介してきました。

2018年5月現在、執筆開始から約3年近く経過していますが、今でも検証可能です。こちらは、Raspberry Piを使用し、LEDというハードウェアを制御する例を挙げておりました。電子制御の第一歩だと思います。

筆者もRaspberry Piを持っており、こちらは純粋なLinux検証マシンとして使用しております。クラウドを使うという選択肢も現在ではありますが、時間や費用、周辺の設定などとりあえず気にせず完全に自由に使えるマシンは必要です。

あまり手の込んだ処理は無理がありますが、手のひらに乗る小さな Linuxマシンは自宅のインターネット環境に必要なルーターなどを収納する箱に一緒に入れる(隠す)ことができます。リモートからいつでも検証環境に接続できるようにしてあります。

Figure 1 Raspberry Pi の自宅での設置図

ボックス下段に見える小さな箱がそれで、かれこれ3年以上経過していますが、故障もせず動き続けています。家族構成の変化により自宅にあまり大きいPCを置くことができずやむなくこのような構成になっています。

便利な世の中になったものです。

マイコン (マイクロコントローラ)

話が横道にそれてしまいましたが、IoTは確実に世の中に浸透してきております。

炊飯ジャーや電気ポットがネットにつながることでどのような相乗効果をもたらすものか未知数なところもありますが、車の自動運転やスマートホームをはじめ、さまざまな機器に実装されつつあります。

これら、いわゆるPC以外の機器がネットワークにつながったり、目的の処理を行う用途で、その機器自体に何かしらのシステムが必要なことがあります。

今でこそ、先に挙げたRaspberry Piなどの超小型PCが出てきましたが、一般的にPCそのものを丸ごとを家電製品などに組み込むことは、一部製品を除き大半の製品でオーバースペックの場合があり、その他コスト、消費電力や物理的な大きさの制約などからあまり得策ではありません。

そこでマイコン(マイクロコントローラ)というものがあります。対象の機器を動作、制御するためのCPUコア、メモリ、入出力ポートなどの機能一式を詰め込んだ集積回路です。

いくつかのメーカからリリースされていますが、概ね低価格、低消費電力、それのみでシステムとして動作させることができるなどの特徴があります。現在の電子機器の大半において、これらマイクロコントローラが実装されています。

Figure 2 Arduino UNOに実装されているマイクロコントローラAtmel社ATmega328Pの例  (https://ja.wikipedia.org/wiki/Arduino#/media/File:Arduino_Uno_004.jpg)

Arduino

従来、これらを扱うには専用機器の準備や、ソフトウェア開発に特殊な言語を使用したりと調達やコスト面で個人が扱うには比較的敷居が高い部類に入っていましたが、今から約10数年前にイタリアで、このマイクロコントローラを1つの基板上に実装し、それらの開発環境までをセットした「Arduino」というものが開発され、誰でもそれを使えるようにオープンソースとして公開されました。

現在、Arduinoはワンボードマイコン(マイクロコンピュータ)の開発プラットフォームとしてハードウェアとその開発環境を誰でも安価に、簡単に手に入れて開発することができます。

Arduinoの入手方法

ハードウェアはArduinoの公式サイトあるいは、回路図を手に入れて自作する、互換機、非公式のクローンなどの選択肢があります。

ラインナップが多岐にわたりますが、初めてであれば Arduino UNO あるいはその互換品がいいのではないかと思います。

場合によってはこれ以外にも付属のハードウェアをそろえる必要があります。どれをそろえるのか不明な場合は、スターターキットが公式サイトから入手できます。

Figure 4 ARDUINO STARTER KIT MULTI-LANGUAGE (https://www.arduino.cc/en/Main/CopyrightNotice)

また、非公式のクローンではありますがArduinoと同じ機能を持ち、概ね検証などに必要と思われるパーツ一式がセットになったものをキットとしてAmazonなどで購入することも可能です。一例を挙げておきます。

ソフトウェア開発環境(IDE)は同じくArduinoの公式サイトから入手できます。

Figure 5 Download the Arduino IDEスクリーンショット

それぞれのセットアップ、インストール方法についてはそれぞれのサイトや製品に付属しているドキュメントを参照してください。

筆者はこれらの検証のためにキットを購入しましたが、後でもしかして必要なかったかもと思うようになりました。理由は別の記事で。

今回はここまで…

今回はざっと Arduino というものについて紹介いたしました。次回はArduinoの概要、簡単なサンプルを使って一通りの開発手順を見てみたいと思います。

Arduinoを使って自分だけのハードウェアを制御してみませんか。

※おことわり※
執筆に際して事前に調査・検証は行っていますが、機器の誤った使用などによりお手持ちのハードウェアに対する発煙・発火を伴う物理的な損害を被ることがあります。記載事項の実践に際しては十分な確認を行ったうえでの実施をお願いします。なおこれらの実践により発生した損害について弊社は一切負いません。

記事は、予告なく変更または削除される場合があります。
記載された情報は、執筆・公開された時点のものであり、予告なく変更されている場合があります。
また、社名、製品名、サービス名などは、各社の商標または登録商標の場合があります。