広告
光マウスセンサーをいじってみる2http://wiki.edwindertien.nl/doku.php?id=modules:opticalmouse というのも上のスケッチでは「sendPicture」という関数で画像データを送っているのだけれど、シリアルで送るのに「Serial.print」を使っているため、数値を一文字一文字送信してしまい、受け側のプログラムで324バイト読み込むとおかしなことになる。 つまり、「15」という数値を送る場合、1バイトの「0x0F(16進)」を送って欲しいのだけれど、「1」と「5」の2バイトを送ってくる。 受け側で1バイトずつ読むと「1」「5」と読んでしまう。 なのでこの部分を「Serial.print」ではなく「Serial.write」にすると上の問題はクリアできる。 あと、A2610のデータシートではLEDの駆動にPNPトランジスタを使っているが、自分で作った回路ではNMOS FETを使ってしまったため、LEDのON-OFFが逆になってしまった。 forceAwake(1); // LED on を forceAwake(0); // LED on にしてLEDを点灯させた。 で、無事画像を得ることができた。ただ、受け側のプログラムの問題か送信側の問題か分からないが、たまに画像の同期がずれたようになる。 送り側の問題だったとしたら、ピクセルのスタートフラグを見ていないからではないかと思う。 そのうちちゃんとまとめて報告する予定(予定は未定w) 広告 |