SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

IoT Starter Studio

ハードウェアの知識ゼロでもボードにセンサーをつなげられる「Gravity」シリーズを使ってみよう

IoT Starter Studio 第10回


  • X ポスト
  • このエントリーをはてなブックマークに追加

音に反応してLEDを光らせる

 どれだけ簡単かをお伝えするために、音に反応してLEDがつくという仕組みを、Gravityシリーズを使って作りたいと思います。今回使うのはこの4つ。

  1. DFRduino UNO R3(DFRobot版Arduino UNO)
  2. IO Expansion Shield for Arduino(Arduino互換)
  3. 音センサー(Gravity)
  4. LED赤(Gravity)

 1のDFRduinoはArduino UNOでも代用できます。2のIO Expansion Shieldとは、たくさんのセンサーを取り付けられるようにDFRduinoを拡張するものです。

準備

 まずはUSB A-BケーブルでDFRduinoとパソコンをつなぎます。電力が供給されるとDFRduinoの「ON」と書かれているLEDが赤く光ります。

 「Tools」メニューから「Board: “Arduino/Genuino UNO”」「Port: “/dev/cu.usbmodem◯◯◯◯ (Arduino/Genuino Uno)”」を選択。

 僕の環境はMac OS 10.11.6、Arduino IDE 1.6.12となっています。

組み立て

 IO EXpansion Shield for ArduinoをDFRduinoの上に設置。向きに気をつけてください。

 IO Expansion Shield上にも、その他の基盤同様に「A」「D」マークがあります。また、つなぐピンの部分もコネクタと同じ色になっているので、直感的に正しい配線をすることができると思います。今回の場合、人感センサーをマイコンボード「A」側の0に、LEDを「D」側の13に、ケーブルの色とピンの色が合うようにそれぞれ挿してください。

 完成するとこんな感じになっています。

プログラムを書き込み

 Arduino IDEを起動して、以下のコードを入力もしくはコピーします。

int ledPin = 13;
int soundPin = A0;
void setup() {
  pinMode(ledPin,OUTPUT);
  Serial.begin(9600);
}
void loop(){
  int sensorValue = analogRead(soundPin);
  Serial.println(sensorValue); // Serial Monitorに数値を出力
  int output = map(sensorValue, 0, 50, 0, 255); // 0-50を0-225に引き伸ばし
  analogWrite(ledPin, output);
  delay(2);
}

 「Verify」で検証した後「Upload」すればボードに書き込まれます。

 Arduino IDEの右上にある「Serial Monitor」(虫眼鏡のアイコン)をクリックすると、音センサーが拾っている音の大きさの数値を見ることができます。

 LEDに光の明るさを伝えるanlogWrite()には、0~255までの値を渡すことができます。しかし僕の環境では音センサーが拾った音の大きさはマックス40程度しか出せなかったので、map()を使い0~50を0~255に引き伸ばしています。

 これでまわりの環境音の大きさによってLEDを点灯し、また音の大きさをLEDの明るさで表すことができました。

おわりに

 今回のプログラムや仕組み自体はかなり初歩的でしたが、個人的に組み立て部分がとてもスムーズにいきました。

 基盤上の「A」「D」のプリントとコネクタの色分けにより、他の開発ボードにくらべてかなり障壁が低くなったのではないかと思います。この二つのデザインの工夫によって、例えデジタル・アナログなどの知識がなくても組み立てることができるため、そもそもはじめ方が分からずに挫折してしまうケースはかなり減ると思っています。

 最近海外では小学生にArduinoなどを使って簡単な電子工作を教えるケースもちらほら耳にします。マークや色でつなぎ方を直感的に伝えてあげることで、電子工作のレベルがどんどん下がっていき、子供でもブロック遊び感覚で興味を持つことができるのではないでしょうか。

 それではまた!

購入はこちら

参考

 より詳細な使い方を解説した記事「ハードウェア知識ゼロでも大丈夫。「Gravity」で始める電子工作入門」をdotstudioにて公開しています。

「Gravityシリーズ」のハンズオンが2/23に開催!

 筆者が講師を務める、Gravityシリーズのハンズオンが2月23日に開催されます。ArduinoやRaspberry Piに挫折した……! という方も、簡単に電子工作を体験できる内容となっています。

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
IoT Starter Studio連載記事一覧

もっと読む

この記事の著者

ちゃちゃまる(dotstudio株式会社)(チャチャマル)

 デザインやWEB、IoTなどテクノロジー全般に興味があるデザインエンジニア。 高校三年時、株式会社LIGにアルバイトとしてジョイン。2016年4月に早稲田大学へ入学し、7月からdotstudioでグラフィックデザインとWEB制作を主に担当している。 Twitter:@chachmaru ...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/9982 2017/02/21 19:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング