주요 콘텐츠

이 페이지는 기계 번역을 사용하여 번역되었습니다. 영어 원문을 보려면 여기를 클릭하십시오.

데이터를 백그라운드에서 수집하면서 실시간 플롯 업데이트하기

이 예제는 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회 업데이트됩니다.

참고 항목

함수

도움말 항목