Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
0
Help us understand the problem. What is going on with this article?
@0x20FE

第1回 Arduinoはじめました

More than 1 year has passed since last update.

こんどは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で接続されているので、ライブラリを使おう。
0
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
0x20FE
関心領域 RF over IP; particle filter; PLL over Ethernet; QoS; Radio systems for IP; IP over TS; IPTV; IP multicasting; P2P; Multimedia systems; PSI/SI, video coding

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
0
Help us understand the problem. What is going on with this article?