ArduinoにRC-S620/Sを接続する方法


以前、こちらの記事「ArduinoとRC-S620/Sを接続してみた」でRC-S620/Sに接続しましたが、

今回はその時に詳しい接続までの方法です。

LCDへの接続の方法「ArduinoにLCDキャラクタディスプレイを付けてみる」を参考にしてください。

まずは、今回は、

こちらを使用します。

で、変換ピッチをかましてこいつの場合は、下から「1〜6」となっています。

RC-S620/Sの仕様は「RC-S620/S製品<簡易版>」をご覧下さい。

回路の接続

  • 「5V」 – 「VDD (1)」
  • 「TX (1)」 – 「RXD (2)」
  • 「RX (0)」 – 「TXD (3)」
  • 「GND」 – 「GND (6)」

と接続します。

ライブラリの配置

ArduinoでRC-S620/Sを操作するライブラリをここからダウンロードしてくる

「RCS620S.cpp」の10行目を以下の内容に修正する

解凍して出来た、「RCS620S」フォルダを「/Applications/Arduino.app/Contents/Resources/Java/libraries/」の下にコピーする

Arduino.appを再起動する

スケッチ

で、スケッチが

となります。

上手く動作すると

このようになります。

ArduinoにLCDキャラクタディスプレイを付けてみる


今回Aruduino以外に使用するものは、

になります。

秋月電子通商で通販で購入できますので購入してください。

で、付いてきたピンをハンダ付けして準備の完了です。

秋月電子さんのところに置いてある、「SD1602VBWB-XA-G-Gメーカー技術資料」こちらの資料によると

LCDの左からピンは「14〜1、16、15」らしく

それぞれのピンの仕様については、PDFの7ページに記述されています。

回路の接続

で、どのように繋いだかというと

  • 「digital 11」 – 「DB7 (14)」
  • 「digital 10」 – 「DB6 (13)」
  • 「digital 9」 – 「DB5 (12)」
  • 「digital 8」 – 「DB4 (11)」
  • 「digital 7」 – 「E(6)」
  • 「digital 6」 – 「R/W (5)」
  • 「digital 5」 – 「RS (4)」
  • 「可変抵抗器」 – 「VO (3)」
  • 「5V」 – 「VDD (2)」
  • 「GND」 – 「VSS (1)」

です。ちょい分かり辛いですね。

これで配線完了です。

次に、スケッチです。

これで、上手く行けば画面に「Hello World」と表示されます。

こんな感じです。

Androidの加速度センサーの使い方


Androidのセンサーが色々あるのでそれぞれの使い方のお勉強まずは、

加速度センサー

まず、前提としてAndroidの加速度センサーは、3軸加速度センサーなのでX軸、Y軸、Z軸の3軸方向への加速度を捉える事が出来ます。

X、Y、Z軸はそれぞれ以下の内容になっています。

  • X軸:端末の右側から受ける加速度
  • Y軸:端末の上側から受ける加速度
  • Z軸:端末のディスプレイ側から受ける加速度

それでは、加速度センサーの使い方をコードを元に勉強していきたいと思います。

センサーを使う為には、まずは、「SensorManager」のインスタンスを生成します。

次に、センサーのイベントリスナーの設定です。

イベントリスナーの設定には、「SensorManager」クラスの「registerListener」メソッドを使用します。

この時に、対象のセンサーが存在しているかどうかは、「SensorManager」クラスの「getDefaultSensor」メソッドまたは、「SensorManager」クラスの、「getSensorList」メソッドの戻り値を利用して確認します。

イベントリスナーをセットしただけでは、アプリケーションを落としてもセンサーがずっと動作し続けるので、

「SensorManager」クラスの、「unregisterListener」でイベントリスナーを解除します。

これで、加速度センサーからの値を取得する準備ができたので値の取得処理です。

これは、「SensorEventListener」をimplementsして「onAccuracyChanged」「onSensorChanged」の2つのメソッドを実装します。

onAccuracyChanged センサーの精度の更新に対するメソッド
onSensorChanged センサーの取得値の更新に対するメソッド

なので、今回は、「onSensorChanged」メソッドを実装します。

これで、加速度センサーからの値が取得できている事が確認出来たかと思います。

実際に使用する為には、もう少し計算式を使用して誤差を省かないとそのままの値では、手による細かな振動なども入ってしまったりするので注意が必要です。

サンプルプログラム


Androidのセンサーを調べてみる


Android端末は豊富なセンサーの機能を持っています。

これで、遊ばなくて何で遊ぶ?って位のものです。

で、どんなセンサーが存在するのか、分からなかったので一覧を作ってみました。

SensorクラスのTYPEで設定されているものが、Androidがサポートしているセンサーです。

TYPE_ACCELEROMETER 加速度センサー
TYPE_AMBIENT_TEMPERATURE 温度センサー
TYPE_GRAVITY 重力センサー
TYPE_GYROSCOPE ジャイロセンサー
TYPE_LIGHT 照度センサー
TYPE_LINEAR_ACCELERATION リニア加速度センサー
TYPE_MAGNETIC_FIELD 地磁気センサー
TYPE_PRESSURE 圧力センサー
TYPE_PROXIMITY 近接センサー
TYPE_RELATIVE_HUMIDITY 湿度センサー
TYPE_ROTATION_VECTOR 回転ベクトルセンサー
TYPE_ORIENTATION 方位センサー(非推奨)
TYPE_TEMPERATURE 温度センサー(非推奨)

11個のセンサーがサポートされています。

手元の端末で、どのようなセンサーが端末に搭載されているのか確認してみたいと思います。

確認するためには、「SensorManager」クラスの「getSensorList」で保持してるセンサーを取得して確認します。

こんな感じです。

これで確かめた、手持ちの端末が以下になります。

Nexus S

  • Sensor:KR3DM 3-axis Accelerometer
  • Sensor:AK8973 3-axis Magnetic field sensor
  • Sensor:GP2A Light sensor
  • Sensor:GP2A Proximity sensor
  • Sensor:K3G Gyroscope sensor
  • Sensor:Rotation Vector Sensor
  • Sensor:Gravity Sensor
  • Sensor:Linear Acceleration Sensor
  • Sensor:Orientation Sensor
  • Sensor:Corrected Gyroscope Sensor

Galaxy Note

  • Sensor:K3DH Acceleration Sensor
  • Sensor:AK8975 Magnetic field Sensor
  • Sensor:AK8975 Orientation Sensor
  • Sensor:GP2A Light Sensor
  • Sensor:GP2A Proximity Sensor
  • Sensor:K3G Gyroscope Sensor
  • Sensor:BMP180 Pressure Sensor
  • Sensor:Gravity Sensor
  • Sensor:Linear Acceleration Sensor
  • Sensor:Rotation Vector Sensor

Galaxy Nexus

  • Sensor:GP2A Light sensor
  • Sensor:GP2A Proximity sensor
  • Sensor:BMP180 Pressure sensor
  • Sensor:MPL Gyroscope
  • Sensor:MPL Accelerometer
  • Sensor:MPL Magnetic Field
  • Sensor:MPL Orientation
  • Sensor:MPL Rotation Vector
  • Sensor:MPL Linear Acceleration
  • Sensor:MPL Gravity
  • Sensor:Rotation Vector Sensor
  • Sensor:Gravity Sensor
  • Sensor:Linear Acceleration Sensor
  • Sensor:Orientation Sensor
  • Sensor:Corrected Gyroscope Sensor

 

どれもこれも、Sumsung端末…。

それぞれが何なのか、詳しくは分からないですが、この「getSensorList」で対象のタイプ例えば、圧力センサーがあるか調べたければ

「List<Sensor> sensorList = mSensorManager.getSensorList(Sensor.TYPE_PRESSURE);」として、戻り値があるかどうか確認する事で対応しているかどうか確認が出来るようです。

 

今回使用した、サンプルプログラムはgithubにアップしてあります。

サンプルプログラム

読書灯として最適なライト


最近、世の中節電、節電ですが、もちろん節電の意味もあるのですが、

夜ベッドで横になりながら、本を読む事が多く本を読むために部屋の灯りを付けていると電力の無駄遣いはもちろん寝るときに電気を消すのも億劫になります。

そこで、色々な読書灯を探していました。

そこで出会ったのがこちら

FaceBookの知り合いの方がウォールに流していたものです。

以前は、スタンドライトを使用していたのですが、スタンドライトだと首が弱くて、方向が色々と変わってしまい、使わなくなってしまいました。

こちらはクリップライトなので挟む事が出来る箇所さえあれば大丈夫なので重宝しています。

LED電球を購入時は、昼白色と電球色は好みがあると思うので好きな方で選んで下さい。

私は「電球色の方が好きかも」です。

もちろん、最初から電球が付いているものも売っているので、そちらを購入した場合は電球を買う必要はありません。

return top