IoT(Internet of Things)をご存じですか?IoTは、直訳するとモノのインターネットです。昨今では、さまざまな”モノ”がインターネットに接続されるようになりました。代表的なものにスマートホームがあります。家電などをインターネットに接続してスマートフォンやパソコンから制御したり、電力などのデータを取得したりするというものです。
IoTデバイスは、電球や電子錠など小型のもので、それ単体で動作できるようにマイコン(マイクロコンピューター)が組み込まれています。いわゆる組み込みシステムと呼ばれるものです。昔は組み込みシステムというと、電気工学を学んだ一部の人でないと扱いが難しいものでした。しかし、今日ではArduinoをはじめとする非常に扱いやすいマイコンを手に入れることができるようになりました。来るべきIoT時代に向けて、システムエンジニアとして組み込みシステムを学んでみてはいかがですか?
この記事では、組み込みシステムを学びたいシステムエンジニアの方のために、組み込みシステムの概要とArduinoの特徴、学習に当たり準備するものなどについてお伝えしていきます。組み込みシステムがはじめての方にとっては、自分の手でマイコンを組み上げていくことは新鮮な体験となるでしょう。
参照:システムエンジニアの具体的な仕事内容を紹介した記事はこちら
組み込みシステムはどこに使われている?
組み込みシステムは文字通り組み込まれたシステムで、特定の機能を実現するために電子機器に組み込まれています。パソコンなどの汎用機器とは違い、基本的に機能を変更することはできません。具体的には、洗濯機やデジタルカメラ、プリンターなどが身近なものの例です。もちろん、家電以外にも医療機器や産業機械、ロボットなどさまざまな分野で使われています。種類的には汎用コンピューターよりも多岐にわたります。
Arduinoってなに?
Arduinoは、AVRマイコンと入出力ポートを搭載した小型コンピューター基板です。パソコンでいうと、CPUやメモリ、各種インターフェースが統合された超小型マザーボードといったところでしょうか。Arduino単体でも動作しますが、通常は基板にいろいろな電子部品を接続してプログラムで制御します。類似の製品にはRaspberry Piがありますが、Raspberry PiがOSとしてLinuxを搭載しているのに対して、ArduinoはOSを搭載していません。このため、組み込みシステムを学習するのには余計なものがないArduinoの方が向いているのです。
Arduinoの特徴
安い!
安価な部品を使って作られていることもあり、非常に低価格で入手できます。Arduino単体で3,000円ほどです。上級者の方は単体で購入して別途パーツを買い集めてもよいのですが、初心者の方は本体とパーツがセットになっている入門用セットを購入するほうがよいでしょう。セットでも5,000円もあれば購入できます。
オープンソース
基板の設計などがオープンソースとして公開されていて、誰でも無償で利用することができます。このおかげでArduino互換製品が多数生み出され、広く普及することになりました。そのため、公式製品よりも安価な互換製品も多数販売されています。また、電子工学の知識がある方は自分でArduino自体を作ることもできるでしょう。
本体やパーツの種類が豊富
マイコン基板としては非常にメジャーな製品なので、対応パーツが豊富に存在します。また、本体自体の種類も多数あります。パーツは数百円から購入できますので、Arduinoに慣れてきたらいろいろなパーツを組み合わせてオリジナルのシステムを作り上げるとより楽しめるでしょう。
Arduinoの用途
学習に活用する
Arduinoは安価に入手できるため、学習に最適です。気軽にはじめられるということもありますが、もうひとつ理由があります。公式製品であるArduinoには一定期間の保証がついています。初心者の方は、基板をショートさせてしまったり、ピンやソケットを破損してしまったりして基板を壊してしまうことがよくあります。
そんな場合でも保証があれば、新しいものと交換してくれます。3,000円程度で購入できるとはいえ、故障するたびに購入してはいられませんので非常に嬉しいサービスですね。保証がついているか、しっかり確認してから購入しましょう。
プロトタイピングに使う
プロトタイプ(試作品)を作るのにも便利です。さまざまなパーツが低価格で入手できますから、思い描いた製品を実際に作って試せます。ラピッドプロトタイピングの一種ですね。製品のような外装は必要ありませんので、コンセプトのみを素早く実証することができます。プログラムの書き換えが簡単にできることもメリットのひとつです。
製品として販売する
Arduinoをカスタマイズした製品や組み込んだ製品を自社製品として販売している企業も存在します。日本ではVITROが開発した「8pino」がその一例です。数多く販売されているArduino互換製品も同様です。既製品のArduinoは製品に組み込むにはあまり向いていないため、製品に組み込むために独自にカスタマイズした基板を使用したほうがよいでしょう。
どうやってプログラムする?
Arduinoには、Arduino IDEという専用プログラミングツールが用意されています。Javaで作られているので、WindowsだけでなくMacやLinuxでも使えるのは便利ですね。プログラミング言語には、Arduino言語という専用言語を使います。専用といっても、C言語に近い文法なのでC系の言語が使える方なら簡単に覚えられるでしょう。
手順としては、パソコンでプログラム(Arduinoではスケッチと呼ばれる)を作成して、USB接続したArduinoに転送して実行するという流れになります。Arduinoに接続したパーツをプログラムによって自由に制御することができ、アイディア次第でいろいろなシステムを制作することが可能です。
学習をはじめるに当たり必要なもの
Arduino本体
まずは、Arduino本体がないことにははじまりません。公式製品がおすすめですが、なるべく安く済ませたい方や拡張性を重視する方は互換製品でも構いません。
パーツ・ケーブルなど
Arduino単体でできることはほとんどありません。対応パーツやケーブルなどを揃えましょう。初心者の方には入門用セットをおすすめします。ブレッドボードやLED、抵抗など基本的なものがひと通り入っています。
入門書
電子工学の知識のない方は、Arduinoを入手してもなにをどうしたらいいかよくわからないでしょう。そのため、初心者用の入門書を一緒に用意しましょう。「Arduinoをはじめよう/Massimo Banzi他/オライリージャパン」がおすすめです。入門用キットには、この書籍に対応したものがありますから、一緒に購入すると学習しやすいでしょう。
パソコン
Arduinoのプログラムを作成するにはパソコンが必要です。WindowsでもMacでもLinuxでも構いませんので、USBポート(Aタイプ)を搭載したパソコンを用意しましょう。スペックは低くても大丈夫です。
まとめ
Arduinoはそれほど電気工学の知識がない方でも扱えるように作られています。また、教材も入手しやすく、ネット上の情報も豊富です。失敗しても安価なので、またチャレンジできます。まずは入門用のキットで学習をはじめてみてはいかがでしょうか?
きっと組込みシステムに興味がわくことでしょう。プログラムで物理的なものを動かせるというのは、また違った体験ですよ。あなたはどんな組み込みシステムを作ってみたいと思いますか?
参照:システムエンジニアの具体的な仕事内容を紹介した記事はこちら
フリーランスになるために必要な知識やスキルアップの方法等、様々なお役立ち情報を発信していきます。
(リモートワーク案件に強いフリーランスエージェント「クラウドワークス テック」を運営)