Grove Beginner Kit for Arduino を用いたデバイス間通信
前回はGrove Beginner Kit for Arduinoの基本動作を楽しみました。
ここではキットの各種モジュールを用いてデバイス間通信を楽しみました。
目次
Seeeduino Lotus
Grove Beginner Kit for ArduinoにはコントローラとしてSeeeduino Lotus が含まれます。
Seeeduino Lotus のArduino IDE用の設定は以下を参考に実施しました。
https://wiki.seeedstudio.com/Seeed_Arduino_Boards/
ちなみにキットをバラバラにした際に基板のあまりの部分が定規になっており、少し嬉しかったです。
デバイス間通信
この投稿をInstagramで見る
- ボタンでbuzzer鳴らして
- マイクで音を検出してLEDを光らせ
- 光センサで点灯を検出してディスプレイ表示
Arduino IDE コード
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
#include <U8g2lib.h> #ifdef U8X8_HAVE_HW_I2C #include <Wire.h> #endif const int buttonPin = 6; const int buzzer = 5; const int mic = A2; const int LED = 4; const int Light = A6; int state = 0; U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, /* clock=*/ SCL, /* data=*/ SDA, /* reset=*/ U8X8_PIN_NONE); //Low spped I2C void setup() { pinMode(buttonPin, INPUT); pinMode(LED, OUTPUT); Serial.begin(115200); digitalWrite(LED, LOW); u8g2.begin(); u8g2.setFont(u8g2_font_logisoso54_tf); // choose a suitable font u8g2.clearBuffer(); } void loop() { //button-buzzer if(digitalRead(buttonPin)){ tone(buzzer, 262, 1000); } //mic-LED if(analogRead(mic) > 500){ digitalWrite(LED, HIGH); }else{ digitalWrite(LED, LOW); } Serial.println(analogRead(Light)); //Light-Display if(analogRead(Light) > 500 && state == 0){ u8g2.drawStr(30,60,"ON"); // write something to the internal memory u8g2.sendBuffer(); state = 1; delay(1000); }else if(analogRead(Light) < 400 && state == 1){ u8g2.clearBuffer(); u8g2.sendBuffer(); state = 0; } } |
OLEDディスプレイの表示方法は以下を参考にしました。
https://wiki.seeedstudio.com/Grove-OLED-Display-0.96-SSD1315/
OLEDディスプレイのArduino IDE用ライブラリはいあkを使用
https://github.com/olikraus/u8g2
おわりに
Grove Beginner Kit for Arduinoの各種モジュールを用いてセンシング動作などを楽しんでみました。
デバイス間通信と言いつつマイコン1個でやってたら意味ないじゃんとかどうか言わないでください。