入門者向け

はじめての電子工作! Arduinoを触ってみよう(ソフトウェア編)

ArduinoはArduinoボードと呼ばれるマイコンボード、Arduinoボードに機能を追加するシールド、そして開発環境であるArduino IDEで構成されています。
Arduinoは、イタリアの学生による「手軽に電子工作が楽しめる開発環境を作る」という研究がスタートです。

 

前回の記事「はじめての電子工作!Arduinoを触ってみよう(ハードウェア編)」では、ハードウェア(Arduinoボードシールド)の工夫されている点を紹介しました。

本記事では、ソフトウェア(Arduino IDE)について解説します。実際にArduinoボードで動作するプログラムを作成して、その手軽さを実感してみましょう。

 

目次

 

本記事のポイント

最初に、本記事のポイントとなる名称や用語を説明します。

IDE(Integrated Development Environment):

IDEは統合開発環境の略称で、プログラムを開発するために必要なツールをひとつのソフトウェアにまとめたものです。製品によって構成に違いはありますが、一般的にIDEには、ソースコードエディタやデバッガ、ソースコードの雛形(「テンプレート」とも呼ばれます)などが含まれます。Arduinoでは、この開発環境をArduino IDEと呼びます。

スケッチ(Sketch):

Arduinoボード上で動作するプログラムをスケッチと呼びます。スケッチは、一度Arduinoボードに転送されると、通信ケーブルを外しても動作を続けます。

Arduino言語:

Arduinoは、「C言語」と「C++」をベースにしたプログラミング言語を使用します。C/C++でのコーディングに慣れているなら、Arduinoへの移行は簡単です。詳細な言語仕様も公開されているので、プログラミングする時はリファレンスを参照しながら進めていきましょう。

 

スケッチ作成の準備、Arduino IDEをインストールしよう

スケッチを作成するには、Arduino IDEが必要です。早速インストールしましょう。
最初に、Arduino IDEのダウンロードページから、お使いのOSに合ったインストーラーをダウンロードしてください。
本記事では、Windows版を使って説明します。

 

ダウンロードが完了したら、インストーラーを起動してください。ウィザードが表示されるので、指示に従ってインストールを進めます。

インストール中に「USBドライバをインストールしますか?」と確認画面が表示されます。これは、パソコンがArduinoボードと通信するためのソフトウェアです。必ずインストールしてください。
確認画面の「名前」の部分に「Arduino USB Driver」と表示されています。

インストールが完了したらArduino IDEを起動しましょう。次のような画面が表示されます。

lets-try-using-arduino-software-01

初めてArduino IDEを起動した時の画面

 

これは、テンプレートと呼ばれるソースコードの雛形です。ここにコードを書き足してプログラムを完成させましょう。このプログラムをArduinoではスケッチと呼びます。
画面に表示されている雛形には、2つの関数、setup()とloop()が含まれています。これらは、全てのスケッチに実装する必要がある重要なものです。

スケッチには、具体的な動作が実装されていませんが、先にArduinoボードへ転送する準備をしておきましょう。

 

最初に、Arduino IDEArduinoボードが、正しく通信できるか確認します。
[Tools(ツール)]メニューから[Board(マイコンボード)]を選択してください。

Arduino IDEが対応するArduinoボードの一覧が表示されます。接続しているArduinoボードが正しく選択されていますか?
本記事ではArduino Unoを使用しています。

 

次に、[Tools(ツール)]メニューの[Port(シリアルポート)]を選択します。
パソコンからアクセスできるCOMポートの一覧です。Arduinoボードが接続されているCOMポートを選択します。どのCOMポートに接続されているかわからない場合は、デバイスマネージャを立ち上げて、[ポート(COMとLPT)]を確認してください。「Arduino Uno(COM8)」などと表示があれば、この「COM8」の部分がCOMポートです。

COMポートが見つからない場合は、ドライバが正しくインストールされていない可能性があります。スタートアップガイドを見ながら、手動でドライバをインストールしてください。

これで、スケッチを作成する準備は完了です。

 

ブラウザでも開発! Arduino Web Editorは新しい開発環境

実はArduinoは、WEBブラウザ上でスケッチを作ることが可能です。Arduino Web Editorと呼ばれるブラウザベースの開発環境を使えば、スケッチの作成を複数のパソコンから行えます。

本記事では、Arduino Web Editorの紹介のみにとどめ、スケッチの説明は先ほどインストールしたArduino IDEで解説します。Web Editorを使わないのであれば、この部分を読み飛ばして構いません。

Arduino Web Editorを使用するには、ブラウザからArduino Createにアクセスしてください。次のようなウェブページが表示されます。

lets-try-using-arduino-software-02

Arduino Createのトップページ

 

[Arduino Web Editor]を選択するとログイン画面が表示されるので、新規アカウントを作成します。メール認証のあと、規約に同意すると、スケッチの編集画面が表示されます。

次にArduino Create Pluginをインストールしてください。Arduino Create PluginはパソコンとArduinoボードを接続して、作成したスケッチを転送するためのソフトウェアです。
こちらのArduino Create Pluginにアクセスして、指示に従ってください。
以上で、Arduino Web Editorが使用できるようになりました。

 

マイコンボードで動作するプログラムを、WEBを通してブラウザから開発するのは、新しい取り組みです。このような開発環境は、電子工作をより一層手軽で身近なものに変えてくれるでしょう。いずれはWebブラウザベースのツールが当たり前になるかもしれません。
このArduino Web Editorですが、まだ情報が少ないので、初めてArduinoで電子工作に挑む方は、パソコンにArduino IDEをインストールする方法をお勧めします。

 

Arduinoで初めてのスケッチ、定番のLチカを試してみよう

インストールしたArduino IDEに戻ります。

Arduinoは、手軽に電子工作を楽しめるように、あらかじめ多くのスケッチがサンプルとして用意されています。
Blinkと呼ばれるスケッチも、その一つです。
これはArduinoボードに実装されているLEDを点滅(「Lチカ」と呼ばれます)させる、小さなスケッチです。

スケッチArduinoボードに手を加える必要はありません。Arduino IDEから転送するだけでLチカが動作します。このスケッチArduinoボードが正しく動くかの動作確認にも使えます。
早速、試してみましょう。

 

サンプルスケッチは、Arduino IDE上の[File(ファイル)]メニューの[Examples(スケッチの例)]>[01.Basics]から開きます。
表示されるスケッチの一覧から[Blink]を選択してください。
新たなウインドウに短いスケッチ(ソースコード)が表示されるはずです。これをArduinoボードに転送すると、基板上に実装されているオレンジ色のLEDが、一定の間隔で点滅します。

 

では、転送してみましょう。パソコンにArduinoボードを接続します。
[Sketch(スケッチ)]メニューから[Upload(マイコンボードに書き込む)]を選択してください。ショートカットキー[Ctrl+U]でも転送が始まります。

転送が終わると、基板上のオレンジ色のLED(すぐ横に「L」のマーク)が1秒ごとに点滅します。
ここまでの流れが、スケッチを作成して、Arduinoボード上で実行する手順です。

 

スケッチをアレンジしてみよう、loop関数はプログラムの入り口!

Arduino IDEには、あらかじめ便利なスケッチが数多く登録されています。先ほどはサンプルをそのまま転送して、Arduinoボードを動かしましたが、ユーザー自身の手で好みの動作に変更することもできます。
早速、先ほど試したスケッチをアレンジするために、Blinkスケッチがどのように動いているのか詳しく見ていきましょう。

 

最初はsetup()関数です。
setup()関数の中に書かれたソースコードは、Arduinoボードを起動したときにだけ実行されます。最初に1度だけ呼び出されるので、初期化処理の実装に適していますよ。

この関数の中身は、次のように実装されています。

void setup() {
    // initialize digital pin LED_BUILTIN as an output.
    pinMode(LED_BUILTIN, OUTPUT);
}

二重のスラッシュ記号(//)から行末まではコメントです。コメントとは、ソースコードを読みやすくするためにプログラマが記述する説明文です。
コメント部分は、プログラムの実行時に無視されます。書き方に決まりはありませんが、ソースコードを後から見た時に、分かり易いように記述しましょう。

 

次のpinMode()関数は、引数に指定されたデジタル入出力ピンの「入力」「出力」の動作を設定する関数です。
Blinkスケッチで点滅させるLEDはあらかじめ基板上に実装され、デジタル入出力ピンに繋がっているLEDです。このLEDを点滅させるには、pinMode()関数の第一引数にはLEDが接続されているピンを、第二引数には動作方法「出力」を指定してください。

本来なら、どのデジタル入出力ピンにLEDが接続されているのかを、回路図から確認する必要がありますが、Arduino IDEでは混乱しないように、ピンにあらかじめ名前がつけられています。BlinkスケッチではpinMode()関数の第一引数に記述されているLED_BUILTINが点灯させるLEDを指定したことになります。

 

次にloop()関数を見てみましょう。loop()関数の中は、Arduinoボードに電源が入っている間、繰り返し実行されるので、ここが実際の動作を記述する、プログラムの入り口になります。

void loop() {
    digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
    delay(1000); // wait for a second
    digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
    delay(1000); // wait for a second
}

loop()関数には4行のソースコードが実装されています。
先頭の行の意味は「LEDをONする」です。

ここでは、digitalWrite()関数を呼び出しています。これは、指定されたデジタル入出力ピンの出力を、「HIGH」か「LOW」のどちらかに設定する関数です。
この関数の第一引数は設定するピンです。ボード上のLEDなので、先ほどと同じLED_BUILTINを指定します。

 

2番目の引数は「HIGH」もしくは「LOW」を指定します。「HIGH」と「LOW」の意味は作成する機器の構成によって異なりますが、このスケッチでは、それぞれ「LEDをONする」「LEDをOFFする」です。
デジタル出力に設定されたピンが、「HIGH」に設定されると、5Vの電圧がかかり、LEDに電流が流れてONします。反対に「LOW」に設定されると、ピンの電圧は0Vになり、LEDに電流が流れなくなり消灯します。

lets-try-using-arduino-software-03

Arduinoボードに実装されたLED

 

2行目は、delay()関数の呼び出しです。この関数は、スケッチの実行を引数で指定された時間だけ中断します。この間、スケッチは何もしません。

delay()関数に指定する時間の単位はミリ秒です。
(「1000」=「1,000ミリ秒」=「1秒」)

スケッチArduinoボードに「1秒間停止」を指示し、これによりLEDがONした状態が続きます。

 

3行目と4行目は、1行目・2行目と同様です。ただし引数が異なっている点に注意してください。
3行目のdigitalWrite()関数の呼び出しでは、引数に「LOW」を指定。これにより、LEDが接続されているデジタル入出力ピンの電圧が0Vになり、LEDがOFFします。そして4行目のdelay()関数の呼び出しで、Arduinoボードの動作を1,000ミリ秒間停止し、LEDがOFFしている状態を保ちます。

Arduinoボードが電源に接続されている間、loop()関数に実装された、この4行が繰り返し実行されるので、1秒間隔でLEDがON、OFFを繰り返すように動くということです。

 

構成がわかったところで、スケッチの内容を修正してみましょう。
例えば、delay()関数の引数を500ミリ秒に変更すると、LEDの点滅が早くなります。
または、LEDをOFFするコードを削除したらどうなるでしょう。LEDが点灯し続けるはずです。

 

まとめ

Arduinoの基板上に実装されたLEDは、スケッチ開発の時にはとても便利な存在です。
Arduinoボードの状態をLEDの点灯状況で知らせるようなソースコードを含めれば、スケッチの動作を確認する助けにもなってくれます。

例えば、スケッチが思った通り正しく動作しない時などは、LEDを点灯させるスケッチを入れて、どの部分で異常が発生するのかを確かめるのに使えます。

 

Arduinoは「手軽に電子工作が楽しめる開発環境を作る」開発当初のコンセプトをそのままに、マイコンのハードウェアに慣れていない方でもすぐに使えるよう作られており、プログラム作成のベースとなるサンプルスケッチも豊富に用意されているので、ソフトウェア初心者のユーザーも親しみやすいのが特徴です。
皆さんも、早速Arduinoを始めてみましょう。

 

 

今回の連載の流れ
はじめての電子工作! Arduinoを触ってみよう(ハードウェア編)
はじめての電子工作! Arduinoを触ってみよう(ソフトウェア編)(今回)

アバター画像

エレクトロニクスやメカトロニクスを愛するみなさんに、深く愛されるサイトを目指してDevice Plusを運営中。

https://deviceplus.jp

高専ロボコン2016 出場ロボット解剖計画