curious4dev

中国旅行、Arduinoなどを使った電子工作、その他色々。

*

マウスの位置座標を使った電子楽器を作ってみた。

 

お疲れ様です。高橋です。

先日分解したマウスを使って、位置座標の取り出しと、取り出した位置座標をそのまま周波数としてピエゾスピーカーに流しただけの楽器を作りました。

USBプラグをArduinoに挿す準備

まずはUSBプラグの加工です。このプラグは4本の線が格納されているのですが、プラグのままだとArduinoに挿しづらいので、線を加工します。

ブチっと切断して線を出します。

IMG_5158で、被覆から線を露出させます。

IMG_5168

なんか最近、こんな事ばかりやっている感じがします。

ADNS2610のSCLKとSDIOからデータを直接引っ張ってくる

データシートによると3番がSDIO、4番がSCLK、6番がGND、7番が電気です。5Vで動くので、Arduinoの5Vをそのまま挿しても問題ありません。

cmos01

既に基板上で5VとGNDは適切に配線されているので、問題はSCLKとSDIOです。ADNS2610の3番と4番に到達する線をたどって、一番楽な所とUSBの線に繋がっていた箇所を直接半田付けします。

IMG_5161

連結させるために使った線は、耐熱電子線という高級品です。480円と、とても高価でしたが、半田のノリも良く最高の一品です。名前もカッコイイです。たいねつでんしせん。

裏側の結線が完了したので、最終的には黄色: 5V、青: GND、白: SDIO、緑: SCLKという配線で繋がるはずです。

IMG_5162

スケッチ

Arduino側のプログラムは下記のような感じです。こちらのサイトからライブラリを取得し、今回必要となるADNS2610のライブラリをimportします。

スケッチはこちらのサイトの物を参考にします。

#include "ADNS2610.h"

#define SCLK 2
#define SDIO 3

ADNS2610 Optical1 = ADNS2610(SCLK, SDIO);

//マウスの現在値
signed long x = 0;
signed long y = 0;

void setup()
{
 Serial.begin(38400);
 Optical1.begin();
}

void loop()
{
 signed char tx, ty;

 {
 tx = Optical1.dx();
 x += tx;
 ty = Optical1.dy();
 y += ty;

 if (tx || ty)
 {
 tone(8,x,100);
 tone(10,y,100);
 Serial.print(x);
 Serial.print(" / ");
 Serial.println(y);

 /*
 Serial.print("x=");
 Serial.print((25.4 * (float)x) / 800.0);
 Serial.print("mm y=");
 Serial.print((25.4 * (float)y) / 800.0);
 Serial.println("mm");
 */
 }
 }
}

ピエゾスピーカーにそのままXとYの座標を入力させています。

完成形

配線は、マウス側のSCLK(緑)をデジタル2番。SDIO(白)をデジタル3番。5Vを5V、GNDをGND。そして、ピエゾスピーカー側は、適当にデジタルの何番かとGNDで繋ぎます。tone関数を使って2個のピエゾスピーカー使って和音出せるかなと思ったのですが、出来ないみたいです。1音しか鳴りませんでした。何かがいけなかったのかもしれません。

IMG_5163

XとYのいずれかの移動距離に応じた周波数がピエゾスピーカーから鳴るのですが、プログラムを工夫すれば、一定の距離毎に音階が上下するように出来るので、より楽器っぽくなるなるのでしょうが、面倒だし先が見えたので、ここまで。

 

以上、よろしくお願い致します。

 - 電子工作

  関連記事

上司の離着席状態をクラウドに飛ばし、スマホで見れるようにした。

お疲れ様です。高橋です。 前回ブレッドボード上に構築した上司離着席検知システムで …

EEPROM書き込みシールドの作成

お疲れ様です。高橋です。 先日成功したPCからのEEPROM書き込みですが、ジャ …

音階LED実装 #1

お疲れ様です。高橋です。 今日の進捗 音階LEDの半田付け 1日目です。 ICソ …

FM音源YM2203をArduinoで鳴らしたい #3

お疲れさまです。高橋です。 昨年8月にブレッドボード上で動作したFM音源YM22 …

YMZシールド 再作成

お疲れ様です。高橋です。 YMZのノイズが超気になる YMZ294用の音楽を聞く …

満員電車内でのオナラと検知 #5

お疲れ様です。高橋です。 マイコンと5V給電 先日実験に成功した硫化水素センサー …

音階LED実装 #3 – 秋葉原で買い物

お疲れ様です。高橋です。 先日、お小遣いがチャージされまして、音階LED実装に必 …

上司離着席検知システムの開発

お疲れ様です。高橋です。 下記、フィクションでイメージです。 背景 何かしらの相 …

aitendoで買った375円のバックライト付きI2C LCDで文字を表示してみた。

お疲れ様です。高橋です。 ちょっと前にaitendoで買ったバックライト付きのL …

シフトレジスタLED付きのYMZ294回路をFritzingに起こしてみた。

お疲れ様です。高橋です。 ユニバーサル基板で作ったYMZボードと、音階LED及び …