HOME > Android+Arduino

 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

< 前の記事へ次の記事へ >


ページトップに戻る



ESP32 Wifi Bluetooth開発ボード

Arduino Nano Every
​​
Raspberry Pi pico

FPGA XILINX Artix-7