超音波距離センサ(HC-SR04)をMATLABで扱う方法
超音波距離センサ(HC-SR04)の出力をMATLABで取得しようとしていますが、
MATLAB 入門チュートリアルしか行った経験がなく、
既存の他の言語で書かれたプログラムを実現するにはどこから手をつけたらいいのか
検討がつかないため、アドバイスをいただきたいです。
HC-SR04 秋月電子
実装環境ではArduinoは使いません。PCはMacbook Proです。
MATLABから超音波距離センサを制御するために、デバイスをつなげています。
以下MATLAbコンソールから返ってきた結果の一部です。
>> daq.getDevices
ans =
ni: National Instruments USB-6361 (Mass Termination) (Device ID: 'Dev1')
Analog input subsystem supports:
7 ranges supported
Rates from 0.1 to 2000000.0 scans/sec
16 channels ('ai0' - 'ai15')
'Voltage' measurement type
Analog output subsystem supports:
-5.0 to +5.0 Volts,-10 to +10 Volts ranges
Rates from 0.1 to 2857142.9 scans/sec
2 channels ('ao0','ao1')
'Voltage' measurement type
Digital subsystem supports:
Rates from 0.1 to 10000000.0 scans/sec
24 channels ('port0/line0' - 'port2/line7')
'InputOnly','OutputOnly','Bidirectional' measurement types
電源は5Vで超音波距離センサのGNDとVCCにつなげています。
以下はArduinoのコードで、出力として物体までの距離を返します。
引用元:【Arduino】超音波距離センサ(HC-SR04)の使い方
int trig = 8; // 出力ピン
int echo = 9; // 入力ピン
void setup() {
Serial.begin(9600);
pinMode(trig,OUTPUT);
pinMode(echo,INPUT);
}
void loop() {
// 超音波の出力終了
digitalWrite(trig,LOW);
delayMicroseconds(1);
// 超音波を出力
digitalWrite(trig,HIGH);
delayMicroseconds(11);
// 超音波を出力終了
digitalWrite(trig,LOW);
// 出力した超音波が返って来る時間を計測
int t = pulseIn(echo,HIGH);
// 計測した時間と音速から反射物までの距離を計算
float distance = t*0.017;
// 計算結果をシリアル通信で出力
Serial.print(distance);
Serial.println(" cm");
delay(500);
}