Android+Arduino

こんな感じで何か出来ないか考え中↓

CIMG1963.JPG

自分にはソフトウェアの能力が足りないですが,こんな感じの配置も目標↓

CIMG1965.JPG


今日の進展. SoftModemのようなことが出来ないかと思って,オーディオ信号をデジタル化して入力する回路を作って Ardumoto上に載せてデジタル入出力ピンに直接はんだ付け. CIMG1968.JPG Androidでピアノのアプリを使って音を出してArduinoでパルス幅を読み取ってみました. CIMG1970.JPG 波形が歪んでいるので安定した値は取れませんが,パルス幅(単位はμs)はちゃんと計測できている ことがシリアル通信でモニタできました. CIMG1973.JPG あとは音階でモータコントロールするスケッチを書けば,お手軽なAndroidコントロール移動ロボの出来上がり.
動き出しました. Ardumotoのサンプルスケッチを改変して, まずピン定義. int ch_R = 2; // audio channel R int ch_L = 4; // audio channel L setup中に以下を記述. pinMode(ch_R, INPUT); // 右チャンネル入力設定 pinMode(ch_L, INPUT); // 左チャンネル入力設定 digitalWrite(dir_a, LOW); //Set motor direction, 1 low, 2 high digitalWrite(dir_b, LOW); //Set motor direction, 3 high, 4 low analogWrite(pwm_a, 0); analogWrite(pwm_b, 0); loop中に以下を記述.元のサンプルの記述は削除. パルス幅を測って,500μs以上か以下かでモータの方向を決めて回してます. pR=pulseIn(ch_R,HIGH,10000); pL=pulseIn(ch_L,HIGH,10000); if (pR !=0 ){ if (pR<500) { digitalWrite(dir_a, LOW); } else {digitalWrite(dir_a, HIGH); } analogWrite(pwm_a, 200); } else {analogWrite(pwm_a, 0); } if (pL !=0 ){ if (pL<500) { digitalWrite(dir_b, LOW); } else {digitalWrite(dir_b, HIGH); } analogWrite(pwm_b, 200); } else {analogWrite(pwm_b, 0); } delay(100); ピアノで動かした動画 音楽をかけたりするとプルプル踊ってるようにも見えます. CIMG1982.JPG