Intel EdisonでLCD RGB Backlightを使ってみた

はじめに

弊社のIntel Edisonに関する過去記事はこちらをご参照ください。

今回はIntel EdisonにGrove - LCD RGB Backlightを接続してみました!

やってみた

使ったデバイス

Intel Edison Kit for Arduino + Grove Starter Kitです。Groveのベースシールドは以下のように、Aから始まるアナログポート、Dから始まるデジタルポート、I2Cポートを持っています。

IMG_0404 2

Grove - LCD RGB BacklightをI2Cポートに接続します。またGrove - Light sensorをA0ポートに接続します。

IMG_0414

LCD RGB Backlightを使う上での注意点

Grove - ベースシールドには電源電圧を設定するためのピンがあり、初期状態では3.3Vに設定されています。しかしLCD RGB Backlightに文字を表示するためには、5Vに設定する必要があります。3.3Vのままだとバックライトは光りますが文字が表示されません(ハマりました)

IMG_0424 2

XDKで書いたコード

var mraa = require("mraa");
// LCD Classを定義
var LCD  = require("jsupm_i2clcd");

// LCDを初期化。0x3EはLCD_ADDRESS,0x62はRGB_ADDRESS。
var myLCD = new LCD.Jhd1313m1(6, 0x3E, 0x62);
// A0に接続されたLight Sensorを定義
var LightSensor = new mraa.Aio(0);

setInterval(function () {
  var a = LightSensor.read();
  // バックライト色を指定
  myLCD.setColor(100, 255, 100);
  // 配置(row,clumn)を指定
  myLCD.setCursor(0,0);
  // LCDに書き出し
  myLCD.write("Light: " + a);
}, 1000);

試してみる

以下のように、Light Sensorを手で握り光を当たらなくするとLCDの数値が減り、手を開いて光を当てるとLCDの数値が増えます。

Edison: 光センサandLCDサンプル

smokey monkeyさん(@smokeymonkey)が投稿した動画 -

バックライト色を変えてみる

myLCD.setColorはバックライトの色を指定します。引数はRed,Green,BluedBlueです。

myLCD.setColor(255, 0, 0);

IMG_0417

myLCD.setColor(0, 255, 0);

IMG_0418

myLCD.setColor(0, 0, 255);

IMG_0419

myLCD.setColor(255, 255, 255);

IMG_0420

カーソルを変えてみる

myLCD.setCursorはカーソルの場所を指定します。引数はRow,Columnです。

例えば以下のようなコードを書きます。

var mraa = require("mraa");
var LCD  = require("jsupm_i2clcd");
var myLCD = new LCD.Jhd1313m1(6, 0x3E, 0x62);
var clearStr = "                "
var i = 15;

setInterval(function () {
	myLCD.setColor(255, 255, 255);
	myLCD.setCursor(0,0);
	myLCD.write(clearStr)
	myLCD.setCursor(0,i);
	myLCD.write("S");
	if(i == 0){
		i = 15;
	} else {
		i--;
	}
}, 1000);

これを実行すると、文字Sが右から左にずれていきます。

edison: LCDで文字を動かす

smokey monkeyさん(@smokeymonkey)が投稿した動画 -

さいごに

個人的に、こういう電子工作物で一番「動いている感」があって好きなのがLCDなので、楽しかったです。