KUMIKOMI NO SEKAI ~ #1 Grove Biginner Kit for Arduino
こんにちは。”Grove Biginner Kit for Arduino”と言うやつを買うてみました。Amazonで2,850円です。安い!これは安い!早速動かしてみましたが、初心者が初っ端に触るには持って来いです。ハードウェアの準備としては、このキット一発で済みます。電子部品をバラで買って来て、ハンダ付けしたり、回路を自分で設計したりする必要が一切ありません。パーツが物足りない場合は、買い足すことができ、そのパーツ接続がこれまた超簡単!ベースとなるボードに追加したいパーツをケーブルで接続するだけで、即動かすことができます。組込みにチャレンジしてみたい方にはお勧めです。
Grove Biginner Kitに搭載されている機能
Grove Biginner Kitには様々なパーツ(Grove)が搭載されています。概略図は以下の通りです。このキットはプラモデルの初期状態のようになっており、赤丸で囲った箇所をカッター等で切断すると、切り離して使うことができます。バラバラにすると全部で11個のパーツに分断されます。切り離した後は、ケーブルで接続しないと使えなくなります。勿論このまま初期状態で使うことができます。
搭載機能をざっくりまとめると以下の通り。10個も機能が載っています。
1)LED
2)ブザー
3)OLEDディスプレイ
4)ボタン
5)ロータリースイッチ
6)照度センサー
7)サウンドセンサー
8)温湿度センサー
9)気圧センサー
10)3軸デジタル加速度センサー
サンプルプログラムの動作
本キットはUSBケーブルでパソコンに接続すると直ぐに出荷時に書き込まれたサンプルプログラムが動き始めます。サンプルプログラムは全5モードあります。ボード上のボタン長押しで、モード選択状態となり、ロータリースイッチを時計回り/反時計回りに回すことで、モードを選択できます。ボタン単押しでモードを決定できます。
1)照度表示モード
2)環境音表示モード
3)温湿度表示モード
4)気圧表示モード
5)加速度センサー表示モード
マニュアルの入手
ユーザーズマニュアルは以下のリンクから入手できますが、残念ながら全編英語となっております。しかし、ご安心を。私が日本語で解説入れますので。原本を読みたい方は入手してください。
Arduino IDEのインストール
本キットの開発環境は"Arduino IDE"と言う統合開発環境になります。Visual Studioを使ったことのある人からすると間違いなく、ショボ!!使いにく!!となりますが悪しからず。有料版ならもう少しマシのようです。インストール手順は以下の通り。
1)ダウンロードサイトにGO
少しスクロールするとDownload the Arduino IDEとあるので、自分のPCのOSに合うものを選択して下さい。私はWindows10なので赤丸を選択しました。
2)インストール実行
ダウンロードが完了したら、arduino-1.8.13-windows.exeなどのインストーラーをダブルクリックする。インストールが開始されるとウィザードに従って進めてください。
I Agreeをクリック。
全チェックありで、Nextをクリック。
Installをクリック。
インストールをクリック。
インストールをクリック。
インストールをクリック。
Closeをクリックでインストール完了です。
Arduino(アルデュイーノ)言語
何!?おいおいちょっと待ってくれよ、何だよ!Arduino言語って!って思うかも知れませんが、慌てるな慌てるな。ベースがC言語なんで大丈夫です。C言語知ってりゃ方言みたいなもんです。今回のキットはArduino言語で動かします。C言語/C++でも動かせるみたいです。Arduinoの詳細については、wikiを参照下さい。
Arduino IDEでスケッチを作ろう
Arduinoのプログラムのことをスケッチと呼ぶそうです。先ずはベースとなるスケッチを生成してみましょう。Arduino IDEを起動するとこんな画面になります。void setup()関数とvoid loop()関数が勝手に生成されます。ファイル⇒ 名前を付けて保存でBlinkLedという名前で一旦保存しましょう。これでスケッチの作成ができました。Arduinoのスケッチは.inoという拡張子になります。
絶対最初にやるやつ~ "LEDチカチカ"
組込み初心者が最初にやるやつ、LEDチカチカをやってみましょう。先程作ったBlinkLed.inoを開いて、次のソースコードを記述して下さい。setup関数は初期化関数で、loop関数はC言語でいうところのmain関数です。この2つの関数はお決まりの作法で必ず書くようです。
int ledPin = 4;
void setup() {
pinMode(ledPin, OUTPUT); // 4番ピンを出力方向に設定
}
void loop() {
digitalWrite(ledPin, HIGH); // 4番ピンにHighレベル電圧出力 点灯
delay(1000); // 1秒待ち
digitalWrite(ledPin, LOW); // 4番ピンをLowレベルに落とす 消灯
delay(1000); // 1秒待ち
}
ソースコードが書けたら、Arduino IDEの左上にある✔マークをクリックします。これでコンパイルが始まります。コンパイルに成功したら、キット付属のUSBケーブルでボードとPCを接続します。インストールが正常に完了していれば、接続するだけでOKです。接続完了後、✔マークの右隣の➡をクリックして下さい。コンパイルしたプログラムがボードに書き込まれます。
書き込みに成功すると、LEDが1秒周期でチカチカするはずです。ユーザーズマニュアルを読むと、4番ピンがLEDと接続されていたので、4番ピンからの出力レベルのHigh/Lowを1秒周期で切り替えています。結果としてLEDが点滅します。
Arduinoの関数
前回記事、KUMIKOMI NO SEKAIでもLEDを光らせる話をしましたが、Arduinoでは更に簡単になっていることに気付いたでしょうか?本来はポートの入出力方向を決めたり、ポートから出力するレベルを変えたりするにはレジスタを制御する必要があります。しかし、ソースコードを見れば分かる通り、ポートの方向を決めるにはpinMode()という関数が用意されており、出力レベルを変えるにはdigitalWrite()という関数が用意されています。これにより、ユーザーである我々はレジスタのアドレスが何番地で、何ビット目がどんな意味なのかを知る必要がないのです。ただし、pinMode関数やdigitalWrite関数の中に入って行くと、最終的にはレジスタの特定のビットに対して1を書いたり0を書いたりしているので、「そう言うことを代わりにやってくれてるんだな」と理解して使うようにしましょう。ゴリゴリの組込み作業では、pinMode関数自体を自分で作ることになります。Arduinoでは予め準備されているので、有難く使わせて頂きましょう。Arduino関数の日本語リファレンスサイトがあったので参考にどうぞ。
今後の予定
このキットにはLEDの他にもまだまだハード(Grove)が搭載されているので、一個ずつ動かして行こうと思います。トライしてみたい方はいらっしゃいませ。一緒にやれば一通り動かせるようになりますよ!それではまた。お疲れさまでした。