Android+Arduinoまとめました↓----------------------------------- こんな感じで何か出来ないか考え中↓ ![]() 自分にはソフトウェアの能力が足りないですが,こんな感じの配置も目標↓ ![]() ----------------------------------- 今日の進展. SoftModemのようなことが出来ないかと思って,オーディオ信号をデジタル化して入力する回路を作ってArdumoto上に載せてデジタル入出力ピンに直接はんだ付け. ![]() Androidでピアノのアプリを使って音を出してArduinoでパルス幅を読み取ってみました. ![]() 波形が歪んでいるので安定した値は取れませんが,パルス幅(単位はμs)はちゃんと計測できていることがシリアル通信でモニタできました. ![]() あとは音階でモータコントロールするスケッチを書けば,お手軽な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); ピアノで動かした動画 音楽をかけたりするとプルプル踊ってるようにも見えます. ![]() ----------------------------------- |