Groveとはセンサやスイッチを簡単に扱えるスターターキット。はんだ付け不要で楽しめます。Arduinoに差し込むことの出来るベースシールドが付属しており、そのベースシールドにセンサを繋いで簡単に実験やプロトタイピングが可能です。
https://www.switch-science.com/catalog/1812/
https://www.switch-science.com/catalog/list/145/
Groveシステムとは
Groveは、モジュール化され、標準化されたコネクター・プロトタイピング・システムです。Groveは電子機器を組み立てる際にビルディングブロックアプローチを採用しています。ジャンパーやハンダを使ったシステムに比べて、接続や実験、組み立てが容易で、学習システムをシンプルにしていますが、ダブってしまうようなレベルではありません。他のプロトタイプシステムの中には、レベルを積み木にまで下げたものもあります。しかし、Groveシステムでは、実際にシステムを構築することができます。
グローブシステムは、ベースユニット(ステム)と、標準化されたコネクターを持つさまざまなモジュールで構成されています。
ベースユニット(一般的にはマイクロプロセッサー)は、グローブモジュールのあらゆる入出力を簡単に接続することができます。そして全てのGroveモジュールは、シンプルなボタンやより複雑な心拍センサーなど、通常、単一の機能に対応しています。
Groveモジュールの接続には、ベースユニットは必要ありません。Raspberry PiやArduinoのピンからGroveのコネクターまで、ケーブル(Grove to Pin Header Converter)を使って接続することができます。
https://wiki.seeedstudio.com/Grove_System/
まず行おう!
http://wiki.seeedstudio.com/How_to_install_Arduino_Library/
Grove資料は一番下にスライドでもあります。確認しましょう。
http://wiki.seeedstudio.com/Grove/
LED-bar sample
https://github.com/Seeed-Studio/Grove_LED_Bar
http://wiki.seeedstudio.com/Grove-LED_Bar/
↑D8に挿した場合は
Grove_LED_Bar bar(9, 8, 0, LED_BAR_10); // Clock pin, Data pin, Orientation
というふうにソースを書き換えてください。
LED_BAR_10 の部分でエラーが出る場合は
Grove_LED_Bar bar(9, 8, 0);
に書き換えてみてください。
それぞれのサンプルコードの pin は Datapin を BaseShield で使っている番号にあわせて直して使ってください。
Dはデジタル
Aはアナログ
I2CはI2C通信の番号です。
いろんな光らせ方をやってみよう
https://github.com/Seeed-Studio/Grove_LED_Bar/tree/master/examples
Light Sensor
http://wiki.seeedstudio.com/Grove-Light_Sensor/#play-with-arduino
RIP Motion Sensor
http://wiki.seeedstudio.com/Grove-PIR_Motion_Sensor/
hum&tem sensor pro
http://wiki.seeedstudio.com/Grove-Temperature_and_Humidity_Sensor_Pro/
表示の内容をプリント
https://www.arduino.cc/en/Serial/Print
Arduinoの通信、演習(発展)
Groveセンサ アクチュエータ 一覧
各種あります!自分で動かしてみよう。
LEDバー
スイッチ
スライドバー
7セグメントディスプレイ
LCD
超音波距離計
振動センサ
UVセンサ
ガスセンサ
RIPモーションセンサ
ボタン
スライドバー
(1) センサ仕様の調べ方
wikiのページの左側から次のセンサの情報を取得できます。
例: 音質度センサのページ → https://wiki.seeedstudio.com/Grove-Temperature_and_Humidity_Sensor_Pro/
(2) サンプルコードのゲットの仕方
GitHub で検索
→ https://github.com/
Seeed Wikiから直接探す
→ 例: https://wiki.seeedstudio.com/Grove-LED_Bar/
(3) 授業の資料ページから取得
こちらからも一部ダウンロードできます
(データが古いおそれあがあるので、基本的には上記 GitHub や Seeed Wiki で探してください。)
https://drive.google.com/drive/folders/1U9HJXfWaPG2SsVZT1p2oR2YoQPuzdJ5b?usp=sharing
LCDの使い方
公式のwikiを参考にライブラリをインストールしてI2Cで接続 (I2Cと書かれている端子なら、番号はどこでもOK)
スケッチ例からサンプルコードを動かしてみよう
https://wiki.seeedstudio.com/Grove-LCD_RGB_Backlight/
https://files.seeedstudio.com/wiki/Grove_LCD_RGB_Backlight/img/seeeduino_rgb.jpg
LCDの文字が点灯しない時は、Grove Shieldの電圧スイッチが 3.3V になっているかもしれません。その際は、スイッチを 5V 側に切り替えてみてください。
Arduino とコンピュータとで情報をやりとりする方法として、シリアル通信があります。
シリアル通信を使うと、例えばセンサで取得した値をパソコンで確認したり、逆にパソコンから Arduino に向けてデータを送り込んだりできます。
Arduino IDE だけではなく、Java や Python などでもシリアル通信できます。
以下に簡単なサンプルコードを記載します。
ひたすら言葉と数字を送り続けるコードです。
Arduino IDE でシリアル通信を確認するには、 ツール > シリアルモニタ をクリックします。
Arduino がパソコンに接続されていて、同じく ツール > シリアルポート で正しく選択されていることを確認してください。接続されていないと、エラーメッセージが表示され、シリアルモニタを開くことができません。
シリアルモニタが開いたら、ボーレート(データ転送レート)が合っていることを確認してください。画像の赤丸で囲まれた部分で指定します。下の画像にあるように、ボーレートが合っていない場合は文字化けします。
ソースコードとシリアルモニタとで同じ数値を使ってください。これを合わせると、正しく表示されるはずです。
数値を合わせたはずなのに文字化けする場合は、もう一度Arduinoに書き込みしてみてください。(古いコードのままになっているかもしれないので…)
以下の画像は、正しく表示できている例です。サンプルコードの通り、約1秒ごとにメッセージが Arduino から送られてきています。
課題1 LEDバーと温湿度センサの組み合わせてみる
課題2(来週でもよい) 超音波センサ+LCDディスプレイに値を表示、背景の色も変える
下の例を使う。 7番ピン
単体テストをして結合しましょう。
新しいファイルを作ろう。
inoファイルは新しいファイルを生成しておこなう。フォルダの中にないとだめです。