Edited at

第1回 Arduinoはじめました

こんどはArduinoをさわってみました

第1回 Arduinoはじめました

第2回 ArduinoによるI2C パラレスインターフェース(GPIO)の操作


用意したもの


本体


  1. Arduino UNO

  2. USB A<-->Bケーブル

  3. windowsマシーン(macでもlinuxでも)

  4. lucky shield


開発環境


  1. Windows ZIP版のIDEをダウンロードして解凍

  2. ardionoをクリックしてIDEを起動


Hello Lチカ


手順


  1. IDEを起動

  2. USBでUNOと接続

  3. シリアルポートをセット(ツール/シリアルポート/COMx(Arduino/Genuino Uno)を選ぶ

  4. ボードを選ぶ(ツール/ボード/Arduino/Gunuino Uno)

  5. スケッチ例を開く(ファイル/スケッチ例/01.Basics/Blink)

  6. スケッチを検証(ツールバーのチェックマークアイコン)

  7. 書き込み(ツールバーの矢印アイコン)


スケッチを読む


  • コメントは//や/* */

  • 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()のように単純にはアクセスできない。これらを隠蔽するライブラリが用意されているので、とりあえず、これを使う。


ライブラリのインストール


  1. ライブラリがあるので、githubのarduino-libray-lucky-shield からダウンロード

  2. スケッチ/ライブライをインクルード/.zip形式のライブラリをインストール


サンプルを動かす


  1. スケッチ例を開く(ファイル/スケッチ例/Lucky Shield/Lucky Test)

  2. スケッチを検証(ツールバーのチェックマークアイコン)

  3. 書き込み(ツールバーの矢印アイコン)

  4. シリアルコンソールをオープン

サンプル

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で接続されているので、ライブラリを使おう。