こんどはArduinoをさわってみました
第1回 Arduinoはじめました
第2回 ArduinoによるI2C パラレスインターフェース(GPIO)の操作
用意したもの
本体
- Arduino UNO
- USB A<-->Bケーブル
- windowsマシーン(macでもlinuxでも)
- lucky shield
開発環境
- Windows ZIP版のIDEをダウンロードして解凍
- ardionoをクリックしてIDEを起動
Hello Lチカ
手順
- IDEを起動
- USBでUNOと接続
- シリアルポートをセット(ツール/シリアルポート/COMx(Arduino/Genuino Uno)を選ぶ
- ボードを選ぶ(ツール/ボード/Arduino/Gunuino Uno)
- スケッチ例を開く(ファイル/スケッチ例/01.Basics/Blink)
- スケッチを検証(ツールバーのチェックマークアイコン)
- 書き込み(ツールバーの矢印アイコン)
スケッチを読む
- コメントは//や/* */
- void setup()に設定を書く。リセット後最初に一度だけ呼ばれる
- void loop()ここを繰り返し実行する。
デジタルピンの使い方
pinMode(pin, mode) setup()にてデジタルピンを入力で使うか出力で使うかを設定
digitalWrite(pin,HIGH|LOW) デジタルピンへの出力
digitalRead(pin) デジタルピンの読み込み
アナログピンの使い方
そのうち調べて追記します。
定石
loop()
//最も単純なイベント処理の記述
void loop{
if (イベント) {
処理
必要に応じてdelay(継続時間);
} else if (イベント) {
処理
必要に応じてdelay(継続時間);
} else {
処理
必要に応じてdelay(継続時間);
}
}
Lucky shieldを試してみる
いろいろついているのが良さそうなので
回路図をみると、いろいろなセンサーやスイッチ類がI2Cで接続されている。I2C接続なので、digitalRead(),digitakWrite()のように単純にはアクセスできない。これらを隠蔽するライブラリが用意されているので、とりあえず、これを使う。
ライブラリのインストール
- ライブラリがあるので、githubのarduino-libray-lucky-shield からダウンロード
- スケッチ/ライブライをインクルード/.zip形式のライブラリをインストール
サンプルを動かす
- スケッチ例を開く(ファイル/スケッチ例/Lucky Shield/Lucky Test)
- スケッチを検証(ツールバーのチェックマークアイコン)
- 書き込み(ツールバーの矢印アイコン)
- シリアルコンソールをオープン
サンプル | |
---|---|
Lucky Test | LED、リレーカチカチ、LED,JoyStick,加速度センサー,磁気センサー,気温・気圧・湿度表示 |
PreseceAlarm | PIRセンスでブザーをならす |
SimpleGIO | JoyStickの動きに応じてLED点滅、リレーON/OFF |
WeatherStation | 温度、湿度、気圧表示 |
一通りためしてみましたが、PIRがちゃんと反応しない。調整が必要なのか、壊れているのか。
ライブラリの使い方
# include<Lucky.h>
void setup(){
lucky.begin();
}
void loop(){
//digital
luckygpio().digitalRead(pin);//JOY{L|R|U|D|C},LED{1|2},REL{1|2},PB{1|2}
luckygpio().digitalWrite(pin,{HIGH|LOW});
//analogue
lucky.accelerometer().read();
lucky.accelerometer().x();
lucky.accelerometer().y();
lucky.accelerometer().z();
//
lucky.magnetometer().read();
lucky.magnetometer().x();
lucky.magnetometer().y();
lucky.magnetometer().z();
//
lucky.environment().temperature();
lucky.environment().pressure();
lucky.environment().humidity();
}
まとめ
- 本体とUSBケーブルとPCがあればとりあえず始められる。
- スイッチやLEDなどデジタルパラレルインターフェース(GPIO)の操作は極めて簡単。アナログも同様と思う。
- センサー類やGPIOの拡張はI2Cで接続されているので、ライブラリを使おう。