上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
--.--.-- -- l スポンサー広告 l top
Arduino用サンプルソースを参考にして認識アルゴリズムを組み込んでみました。
ソースを見たところでは、上下左右各センサ値の中でピークが最も遅かった方向を採用しているようです。

とりあえず、その方向にスクロールするプログラムにして見ました。

「スポンサードリンク」

style="display:block"
data-ad-client="ca-pub-0620260288102702"
data-ad-slot="9773401572"
data-ad-format="auto">



動きは以下の通り。かなり反応が良くないです。。。。。

特に上下方向が良くないです。
アルゴリズムが正しく移植できてないのか?センサパラメータ調整が必要なのか?
いずれにしてもちょっとセンサのデータシートをまじめに見直そうかと思います。


ソースは以下の通りです。

10 CLS:FORI=10TO20:FORJ=10TO15:LCI,J:?CHR$(1);:NEXT:NEXT
20 POKE#700,#80,#45,#90,#30,#A3,#64,#A4,70,#A5,0,#A7,10,#A9,34,#AB,1,#FC,#FD,#FE,#FF:A=0
70 R=I2CW(#39,#700+A*2,1,#701+A*2,1)
80 A=A+1:IFA<8GOTO70
90 GOSUB500
100 R=I2CR(#39,#710,1,#720,1):U=PEEK(#720):R=I2CR(#39,#711,1,#720,1):D=PEEK(#720)
130 R=I2CR(#39,#712,1,#720,1):L=PEEK(#720):R=I2CR(#39,#713,1,#720,1):R=PEEK(#720)
150 IFU>2ANDD>2ANDL>2ANDR>2GOSUB200:C=C+1:F=1:GOTO190
160 IFF=1GOSUB400:F=0
170 GOSUB500
190 GOTO100
200 IF U>[0][0]=U:[1]=C:[2]=0ELSE[2]=1
220 IF D>[3][3]=D:[4]=C:[5]=0ELSE[5]=1
230 IF L>[6][6]=L:[7]=C:[8]=0ELSE[8]=1
240 IF R>[9][9]=R:[10]=C:[11]=0ELSE[11]=1
300 IF([2]*[5]*[8]*[11])=0GOTO350
310 IF[1]>[4]AND[1]>=[7]AND[1]>=[10]:V=2:BEEP30
320 IF[4]>[1]AND[4]>=[7]AND[4]>=[10]:V=0:BEEP60
330 IF[7]>=[4]AND[7]>=[1]AND[7]>[10]:V=1:BEEP90
340 IF[10]>=[1]AND[10]>=[4]AND[10]>[7]:V=3:BEEP120
350 RETURN
400 IFV>=0SCROLLV:SCROLLV
490 RETURN
500 FORI=0TO11:[I]=0:NEXT:C=0:F=0:V=-1:RETURN


これだと使えないので、改善したいと思います。

使えるようになったとして何に使うかも課題ですね。
画面だけだとあまり面白くないので、モータで動く物にして操作できると面白いかなと思います。




スポンサーサイト
2015.11.03 Tue l ICHIGOJAM l コメント (2) l top
秋月のページで見つけたジェスチャーセンサなる物を買ってきましたので、次はこれをichigojamで動かしてみようと思います。

見ての通りずいぶん小さなものです。価格は600円。ジェスチャー認識と言ったらカメラで取り込んだイメージを画像処理してやるものだと思っていましたので、これで本当に認識できるなら非常に格安です。既に動かしてyoutubeにアップされている方々もいますので、できるみたいですが。

とにかくichigojamに繋いで動かしてみましょう。

ブレッドボードで繋いでみました。配線はこの写真だけです。下にリンクを張った秋月のサンプルをダウンロードするとArduino用ですが配線図が入っていますので、それを参考にします。

おっと、その前に、下の写真のようにセンサ基板のジャンパ部分をハンダショートしています。これでI2Cとリセットのプルアップ抵抗が繋がりますので、外付け抵抗が不要になります。



「スポンサードリンク」

style="display:block"
data-ad-client="ca-pub-0620260288102702"
data-ad-slot="9773401572"
data-ad-format="auto">



プログラムは秋月のページに有ったサンプルから流用しました。Arudiuno用ですが、センサの設定値はそのまま使えます。とりあえず初期化と生データ読み取りを作ってみました。

10 CLS
20 POKE #700,#80,#45,#90,#30,#A3,#64,#A4,70,#A5,0,#A7,10,#A9,34,#AB,1
30 POKE #710,#92
40 R=I2CR(#39,#710,1,#712,1)
50 ? HEX$(PEEK(#712))
60 A=0
70 R=I2CW(#39,#700+A*2,1,#701+A*2,1)
75 ?R
80 A=A+1:IF A<8 GOTO 70
100 POKE #700,#FC,#FD,#FE,#FF
110 R=I2CR(#39,#700,1,#712,1):U=PEEK(#712)
120 R=I2CR(#39,#701,1,#712,1):D=PEEK(#712)
130 R=I2CR(#39,#702,1,#712,1):L=PEEK(#712)
140 R=I2CR(#39,#703,1,#712,1):R=PEEK(#712)
150 LC 10,5:?"U=";U;" ";
160 LC 10,6:?"D=";D;" ";
170 LC 10,7:?"L=";L;" ";
180 LC 10,8:?"R=";R;" ";
190 GOTO 110


これで走らせてみるとデバイスIDも読めていますし、UDLRの値も一応読めているようです。手をセンサの前で動かすとUDLRの値が変化しています。

ただしこれだけではジェスチャー認識はできていません。Arduinoサンプルを見ると、このUDLR値からピーク検出してそれで認識しているようです。次はそれを入れてみようと思います。


2015.11.02 Mon l ICHIGOJAM l コメント (0) l top
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。