まごころせいじつ堂

浜町庄金 研究開発  マイコンで遊んでばっかりで

Grove

Grove LEDbarを使う

 GroveのLEDbarを使ってみた。10個のLEDがレベルメータのように並んでいるモジュール。

Grove - LED Bar

ライブラリは以下から。zipでまとめてダウンロードし、展開後できるフォルダ名の末尾-masterを削除し、Arduino IDEのライブラリフォルダにコピーする。

https://github.com/Seeed-Studio/Grove_LED_Bar


2014LEDbar1

 動作確認はArduino Leonardo、Crowduino(5V)で問題なし。
 仕様上3.3Vで動くようなことが書いてあったが、Crowduinoの3.3V設定では止まってしまった。
 おまけとしてIntel Galileoでもやってみたがまったく動かなかった。

Crowduinoはこれね。Crowduino With ATMega 328 V1.1

 なお、このLEDbarは0〜9の番号がそれぞれに振ってあるが、0が赤、1が橙、あとは緑になっている。オーディオのレベルメータとは直感的には反対なので注意。


GalileoにGrove SerialLCDを接続する

 Galileoになんか表示器を付けるのはGPIO経由は無理。ということで部品箱を探してSeeed StudioのGrove SerialLCDを見つけてきた。これなら動きそうな気がする。

Grove - Serial LCD
Grove - Serial LCD(Wiki)

ライブラリは以下:
https://github.com/kc0tfb/Grove_LCD_Arduino

こっちにもあるが、少し違う:
https://github.com/Seeed-Studio/Grove_SerialLCD

 問題が。このライブラリはSoftwareSerialにしか対応していない。GPIOを制御してシリアル通信を行うのはGalileoではダメそうだ。通常のHardwareSerialで使えるようにと色々書き換えていたが降参。しばらく間を置いて検索したらHardware Serial用のライブラリがあった。

https://github.com/ElvisTheKing/SerialLCD

 入出力をストリームで抽象化したものらしいのだが、なぜかSoftwareSerialではなくなりHardwareSerial(従来のSerialやSerial1)だけに対応している。これを使った。Galileo用のArduino IDEライブラリのフォルダに入れて再起動。Grove Base Shield経由でPin0/1にSerialLCDを接続し、exampleにあるスケッチを呼び出す。ここでSerialの記述をすべてSerial1に書き換える。

2014galiserialLCD

 ライブラリは無修正で動作した。

いくつかの問題点:
・Grove SerialLCDは扱いが少ない(が、プロトコルは単純なので作れそうではある)
・Galileoのシールド、Pin0/1によるシリアル通信はSerial1()だった。Arduino互換のピン配置はUNO R3やLeonardoでない古い方に合わせているみたいなんだけど。なぜ新しい方に合わせなかったんだろうか?
・RTCバックアップ用の端子に接続しているとシールドと干渉する

超音波距離センサ HC-SR04を1ピンで使う

 超音波距離センサモジュール HC-SR04というのがある。なぜかAmazonで安かった。
HC-SR04 Demo For Arduino 
HC-SR04 User Guide[PDF] 

 TRIG端子にパルスを与えると距離に応じた時間の後ECHO端子に信号がでる。電源を除くと2端子必要。が、Groveの超音波距離センサモジュールのライブラリが使えないかと眺めていたら1端子しか使っていない。同じものに見えるのに?
GROVE - 超音波距離センサモジュール 

 TRIG端子とECHO端子をショートさせたらどうだろうかと考えたが発振してしまうように思える。調べてみたら抵抗で繋げてしまえばいいらしい。
Hack your HC-SR04 into one pin mode 
ForumMain PICAXE ForumActive PICAXE Forum HC-SR04 
これらによると 1.8KΩの抵抗で TRIGと ECHOを接続し、TRIG端子を使えば良いとのこと。手持ちの2.2KΩで試してみた。

2014grove1


2014grove2

これをGroveのケーブルで接続する。

2014grove3
 

 ライブラリは Grove用のものをそのまま使った。
Seeed-Studio / Grove_Ultrasonic_Ranger [Github]

注意:Githubからzipでまとめてダウンロードすると後ろに-masterが付くがArduino IDEのライブラリ名はハイフンを許さないので削除

 ライブラリインストール後、UltraSonicDisplayOnTermスケッチを使って確認。
ソース中、距離をインチで取得する部分とセンチメートルで取得する部分があるが、この間にディレイを適当に入れてやらないと後に書いたほうが0を返す。ひょっとしたらGroveのセンサと非互換の箇所かもしれない。

RangeInInches = ultrasonic.MeasureInInches();
        delay(100); ←これ
RangeInCentimeters = ultrasonic.MeasureInCentimeters();

ということで2ピン必要なところを1ピンにケチることができた。



HC-SR04 超音波距離センサーモジュール For ArduinoHC-SR04 超音波距離センサーモジュール For Arduino

サインスマート(SainSmart)
売り上げランキング : 4897

Amazonで詳しく見る
by G-Tools

 

Leonardo互換のSeeeduino LiteとGrove OLEDテスト


 Seeeduino Lite (スイッチサイエンス) 1995円。同社扱いのArduino Leonardo 2835円とくらべて安い。
黄色いコネクタと白いGrove用コネクタは自分でハンダ付けする。
特徴として、3.3V/5V切り替え、I2CとシリアルのGroveコネクタ、半ピンずらしたコネクタ取り付けのパターンあり。

 MacOSX 10.9.1 + Arduino IDE 1.0.5で動作確認。

 Seeeduino Lite Wiki
2014leo



 このままだとちょっとつまらないのでGroveを使ってみる。Groveは4ピンコネクタを使用するセンサ類を接続するSeeedStudio独自の規格。最初、右側のシリアル端子にシリアル用LCDを接続して試してみたが、Seeeduino Liteでは1,2番ピンに接続されている。これはATMega32U4のハードウェアシリアル端子なので、ライブラリに付属しているexamplesでは動かないようだ。
 そこで左側のI2C接続端子に128x64 OLEDを接続してみた。

GROVE System

Grove - OLED Display 0.96"

2014leo2 

 これは簡単、ライブラリをインストールしてArduino IDEを再起動、サンプルスケッチを呼び出してみただけ。
 
記事検索
プロフィール

hardyboy

カテゴリ別アーカイブ
月別アーカイブ
QRコード
QRコード
  • ライブドアブログ