- 運営しているクリエイター
#プログラミング教育
サンプルプログラムを眺める
Arduinoのスケッチがあるので載せておきます。
//AKIZUKI AE-APDS9960 GESTURE SENSOR SAMPLE PROGRAM //APDS9960 SCL = A5//APDS9960 SDA = A4//APDS9960 GND = GND//APDS9960 VDD = 3.3V//APDS9960 LED = 3.3V(47uF REQUIRE)//USE 3
ジェスチャーセンサーの下調べ
入手したセンサーの型番はAPDS-9960、メーカはAVAGOです。データシートをざっと眺めてみます。
===
内蔵されているセンサーや、センシングできること、センシングの仕組み、等々が知りたいのですが、わかりにくい文章から読み取るのは苦痛です。こう言う時はブロック図を見るのが手っ取り早い。
図を見ながら説明を読むと
・LED A/LED KにつながるLEDは光源
・Clear/Red/G
ジェスチャーセンサー
ジェスチャーセンサーのモジュールを発注してみました。
今まで扱ったことがないのでどんなものか使い勝手など興味があったこと、文字出力ができるようになったので次にありきたりではないではない入力デバイスが欲しかったこと、最終的に実用化もありうるがゲームなどにも使えそうで応用が幅広いと思えたこと、等々の理由によります。
新しいことに飛び込むときって直感が結構大事だったりします。
ここまで
今後の方向性を思案中
OLEDがあっさり動いたので、これを使うのは何かの機会に取っておくとして、技術開発はどっちの方向に進めて行くべきか思案しているところです。
・I2Cセンサー、I2C制御にこだわるI2Cで動くセンサーはゴマンとあるので、これらを片っ端から動かして行くのも一つの手です。デバイスの癖や肝をいち早く伝えたり関数化・ブロック化するなど需要があることは明らかですから。ただ闇雲にやるのが方向性として正しいのか
OLEDを扱うのは簡単
前回でOLEDを入手してすぐ表示できましたが、参考にしたサイトを紹介しておきます。
用意されているブロックは次のようなものです。
とりあえず使ってみる分には必要なものが揃っていますが、グラフィックをやろうとするとちょっと非力な感じ。文字や数字を表示する以外に、点を打つ、縦横の線を引く、長方形を描く、くらいのブロックしかありませんから。これらの機能群だと文字や数字を基本にしてそれらの飾りをつける
【緊急告知】方針変更!
タイトルに何事かと思われた方もおられるでしょう。実は気づいてしまったのです。今まで進めてきたLCDパネルより良いものがあることに。
OLED 128x64dotなのです。良い点がいくつか
・自発光で視認性が良くしかもカラー
・グラフィック型←キャラクタ毎でなくドット毎に表示制御ができる。ゲームを作るのに向いている。
・micro:bitのブロックライブラリがあった!
今まで何してきたんだろう
micro:bit中級者編〜I2CでLCDを制御する(21)
下の写真は文字コード0x30〜0x7Fまで80文字を書き込んで2行表示させたところです。1行目に0x30から8文字、2行目に0x58から8文字が表示されていることがわかります。
ここまででわかったことを簡単にまとめると
===
・I2Cで書く文字はDDRAMのアドレスカウンターの指す位置に書かれ、1文字書く毎にアドレスカウンターが1つ進む。アドレスカウンターを任意の値にすることはできる(←位置を
micro:bit中級者編〜I2CでLCDを制御する(20)
データシートを読んでいくつか分かったことがあるので書き留めておきます。
===
表示に関わる書き込み可能なメモリーには次のものがある
・DDRAM(Display Data RAM) 80 x 8bits
・CGRAM(Character Generator RAM) 64bytes
・ICON RAM 80 bits
※CGRAM/ICON RAMは使わなくても決まった文字は表示でき
micro:bit中級者編〜I2CでLCDを制御する(19)
前回は、2行表示モードにして、1行目に"0123"と表示させました。これからこのLCDではどんなことができるのかを確認して行きます。
まず初めに試したのが、2行を使って1文字を縦長に表示させるモード。
もう一つはカーソル表示(2行モードで、"0123"の右の"_"がそれ)
これらは序の口として、スクロール表示とか2行にわたる表示などがどうしたらできるのかがまだわかっていません。内部メモリと表