이 페이지는 기계 번역을 사용하여 번역되었습니다. 영어 원문을 보려면 여기를 클릭하십시오.
데이터를 백그라운드에서 수집하면서 실시간 플롯 업데이트하기
이 예제는 MATLAB®이 계속 실행되는 동안 콜백을 사용하여 백그라운드에서 데이터를 수집하는 방법을 보여줍니다.
백그라운드 수집은 콜백을 사용하여 하드웨어가 데이터를 수집하는 동안 코드가 해당 데이터에 접근하거나 오류 발생 시 즉시 대응할 수 있도록 합니다. 이 예제에서는 ID가 Audio1인 마이크로폰으로부터 데이터를 수집하고, ScansAvailableFcnCount 속성을 사용하여 ScansAvailableFcn 속성으로 정의된 함수 호출을 트리거합니다. 콜백을 사용하면 수집이 진행되는 동안 플롯을 실시간으로 업데이트할 수 있습니다.
사용할 마이크를 식별하기 위해 장치 목록을 확인합니다. 아래 표시된 부분 목록은 장치 ID를 나타냅니다.
daqlist
VendorID DeviceID Description
_____________ ________ ____________________________________________________
"directsound" "Audio1" "DirectSound Headset Microphone (Plantronics BT600)"Audio1에 마이크 입력 채널을 가진 directsound DataAcquisition 객체를 생성합니다. 다른 장치를 사용해야 할 수도 있습니다.
d = daq("directsound"); ch = addinput(d,"Audio1",1,"audio");
수집한 데이터를 플로팅하는 간단한 콜백 함수를 생성하여 현재 작업 폴더에 plotMyData.m으로 저장합니다. 다음 코드를 파일에 입력하십시오.
function plotMyData(obj,evt) % obj is the DataAcquisition object passed in. evt is not used. data = read(obj,obj.ScansAvailableFcnCount,"OutputFormat","Matrix"); plot(data) end
위의 함수를 사용하도록 DataAcquisition 객체의 콜백 함수 속성을 설정합니다.
d.ScansAvailableFcn = @plotMyData;
백그라운드에서 5초 동안 실행되는 수집을 시작합니다.
start(d,"Duration",seconds(5))마이크에 대고 말한 다음 플롯을 확인합니다. 초당 10회 업데이트됩니다.