실습 구성 ▪ NI Data Acquisition Device : USB-6212 ▪ DAQmx Driver, numpy 실습 방법 ▪ NI DAQ 장비를 이용한 Analog Output Finite Sampling(HW Timing) 예제 제작 ▪ AO 1채널과 AI 1채널을 물리적으로 연결 ▪ NI MAX 테스트 패널에서 AI를 계속 연속 샘플링하고 있고 Python으로 Sinewave 출력 ''' Copyleft © MoonNote 작성자 : MoonNote 블로그 주소 : MoonNote.tistory.com ''' import nidaqmx import numpy as np import math from nidaqmx.constants import AcquisitionType, Edge samp..
실습 구성 ◾ 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 n..
실습 구성 ◾ NI Data Acquisition Device : USB-6212 ◾ DAQmx Driver, matplotlib 실습 방법 ◾ NI DAQ 장비를 이용한 Analog Input Continuous Sampling(SW Timing) 예제 제작 ◾ AO 1채널과 AI 1채널을 물리적으로 연결 ◾ 출력은 NI MAX 테스트 패널에서 업데이트하고 입력받은 데이터를 Matplotlib로 디스플레이 * matplotlib쪽 스터디 되는대로 수정 필요할 수도 있음. 현재 실제 매Cycle마다 N채널 데이터처럼 그림 ''' Copyleft © MoonNote 작성자 : MoonNote 블로그 주소 : MoonNote.tistory.com ''' import nidaqmx import matplotl..
나머지 값 구하기 함수(Mod Function) numpy.mod(x1, x2, /, out=None, *, where=True, casting='same_kind', order='K', dtype=None, subok=True[, signature, extobj]) = 나누기 연산 후 나머지 값을 반환합니다. (연산자 '%'와 같은 역할) ▪Parameters ‣ x1, x2 : 추가할 배열, x1.shape != x2.shape의 경우 공통 shape(출력 shape가 됨)로 브로드캐스트할 수 있어야합니다. ‣ out : 출력 타입 설정(선택 사항), ndarray, None 또는 ndarray와 None의 튜플 ‣ where : 피연산자와 함께 브로드 캐스트되는 부울 배열을 승인, True 값은 해..
matplotlib.pyplot.subplots matplotlib.pyplot.subplots(nrows=1, ncols=1, *, sharex=False, sharey=False, squeeze=True, subplot_kw=None, gridspec_kw=None, **fig_kw) ▪Parameters ‣ [nrows, ncols] : 기본값 : 1(int), 하위 플롯 그리드의 행/열 개수 ‣ [sharex, sharey] : bool 또는 {'none', 'all', 'row', 'col'}, 기본 값 : False, x(sharex) 또는 y(sharey) 간의 속성 공유 제어축 ▪ True 또는 'all' : x축 또는 y축은 모든 하위 플롯에서 공유 ▪ False 또는 'none' : 각..
나머지 값 구하기 함수(Remainder Function) numpy.remainder(x1, x2, /, out=None, *, where=True, casting='same_kind', order='K', dtype=None, subok=True[, signature, extobj]) = 나누기 연산 후 나머지 값을 반환합니다. (연산자 '%'와 같은 역할) ▪Parameters ‣ x1, x2 : 추가할 배열, x1.shape != x2.shape의 경우 공통 shape(출력 shape가 됨)로 브로드캐스트할 수 있어야합니다. ‣ out : 출력 타입 설정(선택 사항), ndarray, None 또는 ndarray와 None의 튜플 ‣ where : 피연산자와 함께 브로드 캐스트되는 부울 배열을 승..
식별자(Identifier) 식별자(Identifier)란 상수, 변수 또는 함수 등의 이름을 가르키며 다른 것과 구분지을 수 있는 것을 말합니다. 식별자는 A-Z로 시작하고 밑줄(_), 숫자(0~9)를 사용할 수 있으며 특수 문자(@, $, #, % 등)는 사용할 수 없습니다. 대소문자를 구별하기에 동일한 이름이어도 대소문자 입력에 유의해야합니다. 지정할 때에는 이름만 보아도 뜻을 바로 파악할 수 있도록 지정하는 것이 좋습니다. 따라서 이름을 지정하는 것 또한 코딩 스타일의 일부라고 보고 일반적으로 많이 표기하는 4가지 방법을 참고하여 표기하는 습관을 들이는 것이 좋아보이네요. 1. 카멜 표기법(Camel Case) 여러 단어를 연달아 사용할 때 각 단어의 첫 글자를 대문자로 적되 맨 앞에 오는 글자는..
키워드(Keyword) 파이썬에서 이미 예약되어있는 문자열로서 다른 용도로 사용이 불가한 문자를 말합니다. 총 34개로 True, False, None을 제외한 대부분 문자들은 소문자로 작성되어집니다. 키워드는 변수, 클래스 또는 함수 등의 이름으로는 지정이 불가하니 반드시 알아두도록 합니다. 키워드 확인 코드 import keyword print(keyword.kwlist) 실행 결과 ['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', '..
Matplotlib ◾ Numpy 라이브러리를 활용한 플로팅 라이브러리(Numpy 참고 포스팅) ◾ Numpy 또는 pandas 등의 데이터를 시각화 해주는 파이썬 라이브러리 ◾ 범용 GUI 툴킷을 사용하여 Application에 플롯을 포함하기 위한 객체 지향 API 제공 (Tkinter, wxPython, Qt, GTK) 설치(Installation) pip 이용시, pip install matplotlib conda를 사용한다면, conda install matplotlib 심플 예제(Example) ◾ 배열 생성 #Python에서 라이브러리를 호출하는 방법 import matplotlib.pyplot as plt import numpy as np x = np.linspace(0, 2 * np.pi..
몫 구하기 함수(Floor divide function) numpy.floor_divide(x1, x2, /, out=None, *, where=True, casting='same_kind', order='K', dtype=None, subok=True[, signature, extobj]) = 입력을 나눈 값보다 작거나 같은 정수 중 가장 큰 값을 반환합니다. (연산자 '//'와 같은 역할) ▪Parameters ‣ x1, x2 : 추가할 배열, x1.shape != x2.shape의 경우 공통 shape(출력 shape가 됨)로 브로드캐스트할 수 있어야합니다. ‣ out : 출력 타입 설정(선택 사항), ndarray, None 또는 ndarray와 None의 튜플 ‣ where : 피연산자와 함께 ..
프로그래밍 언어란 시스템을 구동시키기 위한 프로그램을 작성하는 언어를 말하며 고급 언어일수록 사람(사용자)이 사용하는 언어에 가깝다고 할 수 있습니다. PC는 모든 명령을 0과 1으로만 이해하기에 인간에게 친숙한 프로그래밍 언어(코드)를 기계가 이해할 수 있는 기계어(0과 1로 구성된 Binary 코드)로 변경하는 과정이 필요하게 되는데요. 여기서 컴파일러와 인터프리터의 개념을 알아야합니다. 하나씩 살펴보겠습니다. 컴파일러(Compiler) 컴파일러는 명령어 번역 프로그램입니다. 소스 코드 혹은 원시 코드를 Object 코드로 옮겨주는 역할을 하죠. 쉽게 설명하면 여기서 소스 코드는 사람이 작성한 코드를 말하며 Object 코드는 기계어(PC가 이해할 수 있는 언어)라고 볼 수 있습니다. 실제 우리가 사..
나누기 함수(True divide function) numpy.true_divide(x1, x2, /, out=None, *, where=True, casting='same_kind', order='K', dtype=None, subok=True[, signature, extobj]) = 입력 값들끼리 나누기 기능 수행합니다 (연산자 '/'와 같은 기능) ▪Parameters ‣ x1, x2 : 추가할 배열, x1.shape != x2.shape의 경우 공통 shape(출력 shape가 됨)로 브로드캐스트할 수 있어야합니다. ‣ out : 출력 타입 설정(선택 사항), ndarray, None 또는 ndarray와 None의 튜플 ‣ where : 피연산자와 함께 브로드 캐스트되는 부울 배열을 승인, T..
실습 구성 ◾ NI Data Acquisition Device : USB-6212 ◾ DAQmx Driver, numpy 실습 방법 ◾ NI DAQ 장비르 이용한 Analog Input Finite Sampling(HW Timing) 예제 ◾ AO 1채널과 AI 1채널을 물리적으로 연결 ◾ 출력은 NI MAX 테스트 패널에서 업데이트하고 입력은 명령 프롬프트 창에서 데이터 확인 (1st Video) ◾ 출력은 MAX에서 Sine 웨이브를 출력하고 입력받은 데이터를 Matplotlib로 디스플레이(2nd Video) ◾ TDMS로 파일 저장(2nd Video) ''' Copyleft © MoonNote 작성자 : MoonNote 블로그 주소 : MoonNote.tistory.com ''' import Py..
나누기 함수(Divide Function) numpy.divide(x1, x2, /, out=None, *, where=True, casting='same_kind', order='K', dtype=None, subok=True[, signature, extobj]) = 입력 값들끼리 나누기 기능 수행합니다. (연산자 '/'와 같은 기능) ▪Parameters ‣ x1, x2 : 추가할 배열, x1.shape != x2.shape의 경우 공통 shape(출력 shape가 됨)로 브로드캐스트할 수 있어야합니다. ‣ out : 출력 타입 설정(선택 사항), ndarray, None 또는 ndarray와 None의 튜플 ‣ where : 피연산자와 함께 브로드 캐스트되는 부울 배열을 승인, True 값은 해당..
곱하기 함수(Multiply Function) numpy.multiply(x1, x2, /, out=None, *, where=True, casting='same_kind', order='K', dtype=None, subok=True[, signature, extobj]) = 입력 값들끼리 곱하기 기능 수행합니다 (연산자 '*'와 같은 기능) ▪Parameters ‣ x1, x2 : 추가할 배열, x1.shape != x2.shape의 경우 공통 shape(출력 shape가 됨)로 브로드캐스트할 수 있어야합니다. ‣ out : 출력 타입 설정(선택 사항), ndarray, None 또는 ndarray와 None의 튜플 ‣ where : 피연산자와 함께 브로드 캐스트되는 부울 배열을 승인, True 값은..
빼기 함수 (Subtract Function) numpy.subtract(x1, x2, /, out=None, *, where=True, casting='same_kind', order='K', dtype=None, subok=True[, signature, extobj]) = 입력 값들끼리 빼기 기능 수행합니다 (연산자 '-'와 같은 기능) ▪Parameters ‣ x1, x2 : 추가할 배열, x1.shape != x2.shape의 경우 공통 shape(출력 shape가 됨)로 브로드캐스트할 수 있어야합니다. ‣ out : 출력 타입 설정(선택 사항), ndarray, None 또는 ndarray와 None의 튜플 ‣ where : 피연산자와 함께 브로드 캐스트되는 부울 배열을 승인, True 값은 ..
더하기 함수 (Add Function) numpy.add(x1, x2, /, out=None, *, where=True, casting='same_kind', order='K', dtype=None, subok=True[, signature, extobj]) = 입력 값들끼리 더하기 기능 수행합니다 (연산자 '+'와 같은 기능) ▪Parameters ‣ x1, x2 : 추가할 배열, x1.shape != x2.shape의 경우 공통 shape(출력 shape가 됨)로 브로드캐스트할 수 있어야합니다. ‣ out : 출력 타입 설정(선택 사항), ndarray, None 또는 ndarray와 None의 튜플 ‣ where : 피연산자와 함께 브로드 캐스트되는 부울 배열을 승인, True 값은 해당 위치에서 ..
넘파이(Numpy) ◾ Numerical + Python의 합성어. '넘파이'라고 부름 ◾ 행렬이나 일반적으로 대규모 다차원 배열(ndarray)을 쉽게 처리할 수 있도록 지원하는 파이썬 라이브러리 ◾ 데이터 구조 외에도 수치 계산을 위해 효율적으로 구현된 기능 제공 (선형 대수와 관련된 다양한 기능 제공) ◾ 일반 list에 비해 빠르고 메모리 사용이 효율적임 ◾ Numpy에서 차원은 축(Axis)이라고 함 ◾ C, C++, 프토란 등의 언어와 통합 가능 설치(Installation) pip 이용시, pip install numpy conda를 사용한다면, conda install numpy 심플 예제(Example) ◾ 배열 생성 #Python에서 라이브러리를 호출하는 방법 import numpy a..
실습 구성 ◾ NI Data Acquisition Device : cDAQ-9174, NI-9223, NI-9401 ◾ DAQmx Driver, numpy 실습 방법 ◾ NI DAQ 장비를 이용한 Digital Output Finite Sampling 예제 ◾ Digital Output 1채널과 Analog Input 1채널을 물리적으로 연결 ◾ UI 툴은 따로 사용하지 않아 Python에서 단일 샘플 출력을 하고 NI MAX에서 정상 동작하는지 확인 ''' Copyleft © MoonNote 작성자 : MoonNote 블로그 주소 : MoonNote.tistory.com ''' import PyDAQmx import numpy as np from PyDAQmx import Task data = np.a..
실습 구성 ◾ NI Data Acquisition Device : cDAQ-9174, NI-9223, NI-9263 ◾ DAQmx Driver 실습 방법 ◾ NI DAQ 장비를 이용한 Analog Output Finte Sampling 예제 ◾ Analog Input 1채널과 Analog Output 1채널을 물리적으로 연결 ◾ UI 툴은 따로 사용하지 않아 Python에서 단일 샘플 출력을 하고 NI MAX에서 정상 작동하는지 확인 ''' Copyleft © MoonNote 작성자 : MoonNote 블로그 주소 : MoonNote.tistory.com ''' from PyDAQmx import Task import PyDAQmx value = 0 task = Task() task.CreateAOVol..
파이썬(Python) 설치 파이썬 설치를 위해 홈페이지(https://www.python.org)에서 Download >> Windows 탭으로 접속한다. Welcome to Python.org The official home of the Python Programming Language www.python.org 최신 버전 64비트용으로 받아서 설치를 진행하면 된다. (AI 분야는 아직까지 3.9 버전까지 호환된다고 하는 것 같다..추후 필요하면 다운그레이드 할지도..) 설치 파일을 실행해서 진행할 때 반드시 PATH 항목을 체크한 다음에 설치를 진행하자. 그렇지 않으면 직접 환경 변수 설정을 해줘야하는데 귀찮다...(필자는 파이썬을 너무 오랜만에 만져서 처음에 그냥 넘겼다가 재설치를 하였다...OTL..