실습 구성
◾ NI Data Acquisition Device : USB-6212
◾ DAQmx Driver, matplotlib, numpy
실습 방법
◾ NI DAQ 장비를 이용한 Analog Input Continuous Sampling(HW Timing) 예제 제작
◾ AO 1채널과 AI 1채널을 물리적으로 연결
◾ 출력은 NI MAX 테스트 패널에서 업데이트하고 입력받은 데이터를 Matplotlib로 디스플레이
* matplotlib쪽 스터디 되는대로 수정 필요할 수도 있음. 현재 실제 매Cycle마다 N채널 데이터처럼 그림
'''
Copyleft © MoonNote
작성자 : MoonNote
블로그 주소 : MoonNote.tistory.com
'''
import nidaqmx
import numpy as np
import matplotlib.pyplot as plt
from ast import Break
from nidaqmx.constants import TerminalConfiguration, AcquisitionType, Edge
plt.grid()
plt.ylim(-10, 10)
plt.ion()
sampling_rate = 1000
Read_data = 100
i = 0
data = np.zeros((1,1), dtype = np.float64)
with nidaqmx.Task() as task :
task.ai_channels.add_ai_voltage_chan("Dev1/ai0", "", terminal_config = TerminalConfiguration.RSE)
task.timing.cfg_samp_clk_timing(sampling_rate, "", active_edge=Edge.RISING, sample_mode=AcquisitionType.CONTINUOUS, samps_per_chan=Read_data)
task.start()
try:
while True:
x = np.arange(i, i+Read_data, 1, dtype=float)
data = task.read(Read_data, 10)
plt.plot(x, data, color='b')
plt.pause(0.001)
i = i + Read_data
except KeyboardInterrupt:
Break
print('close the program')
테스트 영상
※ 이 글이 도움이 되었다면 "🤍공감" 버튼을 클릭해주세요. 클릭 한번이 글 쓰는데 큰 힘이 됩니다.