Arduinoとはマイクロコントローラーと周辺機器がセットになった小型コンピュータのなかで,一般開発ユーザにとって最もメジャーな開発基板の一つです. この授業ではArduinoを利用して,実際にハードウェア,ソフトウェアプログラミングを体験し,PCインタフェースを創ることを目標としています.ではまず Arduinoを実際に使ってみましょう.実はArduinoにはたくさんの種類があり,この授業ではArduino Microと呼ばれるものを使います.
Arduino公式ウェブサイトのソフトウェアページから自身の環境に 合わせたアプリケーションをダウンロードしてください.
この記事の執筆時点(平成29年4月19日)では最新バージョンは1.8.2になっています.ダウンロードする際,「Support the Arduino Software」なるページで,寄付支援をするかどうかを聞かれます.Arduinoを支援したい方は金額を選び,Contributeしてください.今回はみなさん初めてArduinoを使うと思いますので,今回は下記の画像で赤丸でくくった箇所の「Just Download」を選択して,アプリケーションをダウンロードしてください. http://tetsuakibaba.jp/workshop/kisozemi/contribute.png
Windowsの場合:Windows Installerをダウンロード後,ダブルクリックでインストールを開始してください. インストールの途中,下の画像のように,USB Driverの項目にチェックが入っていることを確認し,チェックが入っていなければ必ずチェックを入れた上でインストールを行って下さい.Windows app形式やzipファイルでダウンロードすることはしないでください. https://www.arduino.cc/en/uploads/Guide/DRV_Capture1.png
特にありませんが,Mac OS X 10.7 Lion or newerをダウンロード後,展開されたArduino.appをアプリケーション等に移動し,起動を確認してください.
実際にインストール手続きが終わったら,Arduinoを起動して,下記のようなエディタ画面が表示されるかどうかを確認してください.ここまででArduinoが起動しない場合は,もう一度インストール手続きを行ってみて下さい.念のためofficialのインストールマニュアルへのリンクも確認してください.
それではソフトウェアの準備ができたので,Arduinoのボードを使ってみます.この授業ではArduino Microと呼ばれるものを使います.まずは下記に従って,テストプログラムを動かしてみます.
以上の手続きを終えた後,Arduino Micro上のLEDが1秒おきに点滅を始めればOKです.
すでにLEDの点滅に関して上記で確認していますが,改めてプログラムを記述してみます.LEDを一秒おきに点滅させるプログラムは下記のようになります.
// Hello LED!! (LEDを点滅させるプログラム) void setup() { pinMode(13, OUTPUT); } void loop() { digitalWrite(13, HIGH); delay(1000); digitalWrite(13, LOW); delay(1000); }
ArduinoではC言語と呼ばれるプログラム記述方法を利用します.またC言語の一つ上の機能であるC++にも一部対応しているため,ある程度の複雑なプログラムを記述することも可能です.上記の例では2つの関数(setup, loop)の中に幾つかの命令文を記述しています.関数とは一定量の命令記述をまとめたものです.今回記述されているものは全て関数になっています.setup, loopは関数の定義を記述しており,pinMode, digitalWRite, delayに関してはすでに定義済みの関数を呼び出して命令を実行しています.それぞれの関数についてはArduinoのReferenceを参考にすることができます.下記にリンクを貼っておきます.これから新しい関数が登場した場合は,Arduino Referenceページでまずは確認してください.
なお,setup, loopの定義済み関数(the function)についてですが,こちらもArduino Referenceページに説明があります.自身で確認してください.簡単にいうと下記のとおりです.
上記では関数を利用していましたが,次に変数を利用してみます.まずは下記のプログラムを実行してみます.
// 変数を1ずつ増やし(インクリメント),PCで値を確認する void setup() { Serial.begin(9600); } int count = 0; void loop() { Serial.println(count); count = count + 1; delay(1000); }
int count = 0; というのが変数を宣言している箇所です.ここでは count という名前の整数型の変数を一つ準備しました.初期値を0としています.これをloopごとに1ずつ増やしています.Serialというものが出てきましたが,これはクラスになります.クラスとはC++における機能で,変数や関数をひとまとめにして,使いやすくするための機能です.この場合Serialという定義済みクラスを利用して,PCへcountの変数を送信しています.実際に上記プログラムを書き込んでもなにも変化が起きません.そこでArduinoメニューから「ツール」→「シリアルモニタ」を選択してください.するとcountの変数が1秒おきに表示されます.SerialとはPCにおける通信規格で,今回はArduino側から通信用のクラスを利用して,PCに文字列や変数などのデータを送信するプログラムになっています.