Day6. ArduinoではじめてのLチカをしよう!
※ひとりでIoTまるっとチュートリアル Advent Calendar 2018
6日目の記事です。まだ購読していないかたは是非よろしくおねがいします!
Arduino(アルディーノ)。電子工作をしている方なら、ほとんどの方が知っていると思います。最近では汎用的なマイコンとして、まずはここから入るという方も多いと思います。今回は、Arduinoとはなんなのか。そして具体的に制御できるところまで解説しようと思います。
Arduinoとは
Arduinoというのは、2つの意味を孕んでいます。
・ Arduino マイコンボード
・ Arduino 統合開発環境 (Arduino IDE)
この2番目の統合開発環境(Arduino IDE)がめちゃくちゃ便利です。Arduino自体は、Arduino言語というので実装しますが、近年のマイコンは、このArduino言語に対応しているものが多くあり、このArduino IDEを用いて実装することが出来ます。
SORACOMのハンズオンでは、WioLTEというマイコンボードを使っているのですが、Arduinoのボードマネージャに追加すれば、簡単に開発環境が出来上がります!これがめちゃくちゃ便利。(参考)
Arduino IDE インストールの仕方
Arduinoのサイトに飛び、自分の環境に合わせたダウンロードリンクを選択します。
Downloadのボタンが、Contributeしないとダメに見せかけて、左の「JUST DOWNLOAD」を押すと無料で使えます。
あとはI AgreeとInstallをぽちぽちして、インストール完了です!結構簡単
IDEの使い方
Arduinoのサイトに飛び、自分の環境に合わせたダウンロードリンクを選択します。
Downloadのボタンが、Contributeしないとダメに見せかけて、左の「JUST DOWNLOAD」を押すと無料で使えます。
あとはI AgreeとInstallをぽちぽちして、インストール完了です!結構簡単
コード実装の基本
Artuino IDEを使って実装していくとき、抑えておくべき基本を列挙します
・Arduino言語で書く(C/C++寄り)
・setup()とloop()がある。setupは初期起動時に一度だけ使われる関数、loopは電源ON時に継続的に使われる関数
・動作はArduino言語の公式リファレンスを参考にする
・"電子工作を始めよう"のArduinoリファレンスも充実している(しかも日本語!)
光らせてみた
まずは、マイコンの登竜門、Lチカをしてみましょう!LEDを点滅させる処理のことです。
Day.4の回路図通り、組んでいきます。
回路の黒の線は、ブレッドボード上でつながっている線のイメージです。回路図と回路が同じ配線になっていることを確認しましょう。
今回は、13番ピンを出力としてつなぐので、Arduinoの13と書かれた箇所とLEDの+側をつなぎましょう。
次に、コードをArduino IDE上に書いていきます。
// 初期起動時に設定する項目を書く
const int LED_PIN = 13; /loopでも使う変数(グローバル変数)は外
void setup() {
// LEDの13番ピンを出力先として指定
pinMode(LED_PIN, OUTPUT);
}
// 起動後ずっと動く関数
void loop() {
int interval = 100; //ミリ秒
digitalWrite(LED_PIN, HIGH); // LEDを光らせる(電圧がHIGH)
delay(interval); // 指定した時間、何もしない
digitalWrite(LED_PIN, LOW); // LEDを光らせる(電圧がLOW)
delay(interval); // 指定した時間、何もしない
}
コードを書いたら、コンパイルをします。
図のように、検証はIDE内でコンパイル、書き込みはボードにコードを書き込みます。一度検証でコードにバグがないかをチェックしておくのがいいでしょう。ボードへの書き込みが終わると、PCから電源を引っ張る必要はなく、普通のUSB給電であってもきちんと作動します。
書き込みを押して、LEDが点滅できれば成功です!
※参考までに、書き込み時にWindowsでハマったときのメモ
1. COMポート指定忘れ
avrdude: ser_open(): can't open device "\\.\COM1":
COMポートを指定しなければならないので、きちんと確認しましょう。
2. いつまでたってもコンパイルできない
Error compiling. Unable to rename core.a
AntiVirusのリアルタイムスキャンが悪さしていことがあるかもしれません(参考)。私はマカフィーのリアルタイムスキャンを一時的に止めることで、コンパイルできました。
まとめ
さてさて、これでArduinoに触れることが出来たと思います。特にArduino IDEは、今後も使うことが多くなると思いますので、慣れておきましょう。
明日も、Arduinoです。Lチカは単純な出力を繰り返すのみですが、出力の大きさを自由に変えたり、例えばセンサから値が欲しいとか言う場合、どうすればいいのか。Arduinoを使いながら学んでいきましょう。マイコンの基本的な使い方はほとんどどれでも一緒なので、他のマイコンであっても転用できると思います。
また明日。ではではっ!
前の日 : Day5. IoTのバリエーションの源泉『マイコン』のキホン
次の日 : Day7. Arduinoで温度センシング!入出力をマスターせよ
この記事が参加している募集
サポートいただけると励みになります! よろしくおねがいします!!