MoonNote

New article

Battery 충방전 프로그램

시스템 개요전기 자동차 배터리 충방전 테스트를 위한 Seq 편집 프로그램 및 Battery 테스트 모니터링 GUI 프로그램  프로그램▪ DAQ 및 CAN 통신 인터페이스▪ 테스트 항목 Seq 파일로 저장 및 관리 ▪ Seq 파일 기준 자동화 테스트 및 모니터링    Ref : 프로그램 실행 참고 영상 LabVIEW | Sequence EditorBattery Charge and Discharge - 'Sequence Editor' ※ 이 글이 도움이 되었다면 "👆🏻구독"과 "🤍공감" 버튼을 클릭해주세요. 클릭 한번이 글 쓰는데 큰 힘이 됩니다.moonnote.tistory.com LabVIEW | Sequence MonitoringBattery Charge and Discharge - 'Sequen..
Project
2024.10.07

형 변환(Type Casting)

형 변환(Type Casting)파이썬에서는 데이터 타입을 변환하는 방법으로 명시적(Explict) 형 변환과 암시적(Implict) 형 변환을 제공합니다. 명시적 형 변환은 프로그래머가 직접 특정 데이터 타입으로 변환을 명시하는 것으로, 주로 'int()', 'float()', 'str()', 'list()' 등의 함수를 사용합니다. 반면에 암시적 형 변환은 파이썬이 자동으로 수행하는 변환으로 보통 숫자형 연산에서 일어납니다. 하나씩 살펴보겠습니다. 명시적 형 변환(Explict Type Casting)프로그래머가 직접 명령을 통해 데이터 타입을 변환하는 방법을 의미합니다. 파이썬에서 제공하는 다양한 내장 함수를 이용해 특정 데이터 타입을 다른 데이터 타입으로 변환할 수 있습니다. 주로 다음과 같은 함..
Tutorial
2024.09.22

Cell 다루기 | 데이터 유효성 검사

엑셀 실습 파일▪예제 코드 실행 후 생성 엑셀 파일 구성예제 코드 01 실행 후 : 엑셀 파일 생성▪ data_validation_example.xlsx  예제 코드 02 실행 후 : 엑셀 파일 생성▪dropdown_example.xlsx 예제 코드 01 - 특정 셀 규칙 적용 ▪ A1 셀에 1에서 100 사이 숫잠난 입력 가능하도록 설정▪ Openpyxl의 ' worksheet.datavalidation'을 사용하여 조건 설정▪ 특정 범위 내의 숫자만 허용하도록 설정from openpyxl import Workbookfrom openpyxl.worksheet.datavalidation import DataValidation# 워크북 및 시트 생성wb = Workbook()ws = wb.active# 데..
Openpyxl
2024.08.24

데이터 타입(7) | 딕셔너리(Dictionary)

딕셔너리(Dictionary) 딕셔너리(Dictionary)는 키(Key)와 값(Value)으로 구성된 데이터 자료형으로 키를 통해 값을 효율적으로 검색할 수 있습니다. 딕셔너리는 중괄호 ({})를 사용하여 정의되며, 각 키-값 쌍은 콜론(:)으로 구분됩니다. 딕셔너리의 키는 고유해야 하며 변경이 불가능한(Immutable) 데이터 타입만 가능합니다. 값은 중복이 가능하며 다양한 데이터 타입을 지원합니다. 예를 들어, 학생의 이름과 나이를 저장하는 딕셔너리는 다음과 같이 정의할 수 있습니다.딕셔너리 예시student = {'name': 'Alice', 'age': 25, 'major': 'Computer Science'} 딕셔너리 메소드 및 활용법딕셔너리는 데이터를 관리하고 조작하는 다양한 메소드를 제공..
Tutorial
2024.08.23

Matplotlib.추가 그래프 설정(제목, 레이블 및 범례, 스타일 설정)

예제 01 : 기본 축 제목과 그래프 제목 추가하기▪ plt.title('Basic Graph with Titles'): 그래프 제목을 추가 ▪ plt.xlabel('X-axis')와 plt.ylabel('Y-axis'): X축과 Y축의 제목을 설정 ▪ plt.legend(): 라벨(label)이 있는 경우 자동으로 범례를 추가 import matplotlib.pyplot as pltimport numpy as np# 데이터 생성x = np.linspace(0, 10, 100)y = np.sin(x)# 기본 라인 그래프 생성plt.plot(x, y, label='Sine Wave')# 축 제목 및 그래프 제목 추가plt.title('Basic Graph with Titles')plt.xlabel('X-a..
Matplotlib
2024.08.22

vscode-pdf

참조 : https://marketplace.visualstudio.com/ Visual Studio MarketplaceExtensions for Visual Studio family of products on Visual Studio Marketplacemarketplace.visualstudio.com vscode-pdfVS Code에서 PDF 파일을 볼 수 있도록 해주는 Extension  Upgrade PDF.js'vscode-pdf'에서 PDF.js를 최신으로 업그레이드하고자 하는 경우 아래 Prebuilt 링크의 ZIP파일을 받아서 지정된 경로의 파일 덮어쓰기 Download latest Prebuilt.   Extract the ZIP file.   Overwrite ./lib/* by e..
VS Code Extension
2024.08.20

LabVIEW

LabVIEW Pie chart

Example
2024.07.05

Image to BASE64 string

Example
2024.06.09

랩뷰(LabVIEW) Tutorial 20 | 파일 입출력(File I/O)

Tutorial
2024.03.20

UTF8

Example
2023.12.04

ExplorerTree

Example
2023.09.29

Troubleshooting | Step Functions

Quiz
2023.08.03

Python Library

BeautifulSoup란, 설치법 및 함수(정리 중)

BeautifulSoup ◾ requests 모듈을 통해 요청을 보내고 결과 값을 받아오는 형태의 라이브러리 ◾ HTML , XML 파일로 데이터를 파싱해주는 라이브러리 ◾ 원하는 데이터를 특정 패턴이나 방법 또는 순서로 탐색, 검색, 수정 등 기능 수행 설치(Installation) pip 이용시, pip install beautifulsoup4 conda를 사용한다면, conda install beautifulsoup4 심플 예제(Example) ◾ HTML 예제 from bs4 import BeautifulSoup soup = BeautifulSoup("SomebadHTML", features="html.parser") print(soup.prettify()) ◾ 실행 결과 Some bad HTML..
BeautifulSoup
2022.10.04

OPENPYXL, XLRD/XLWT 란, 설치법 및 함수(정리 중)

OPENPYXL◾ Python으로 엑셀을 다루기 위한 라이브러리◾ 대표적인 Excel(*.xlsx 파일) 관련 모듈로 읽기/쓰기 모두 가능◾ 공식문서 페이지 :     OPENPYXL(https://openpyxl.readthedocs.io/en/stable/index.html) XLRD/XLWT (MS 구버전용)◾ Python으로 엑셀을 다루기 위한 라이브러리◾ Excel 97-2003(*.xls 파일)을 다룰 때 사용◾ Excel Read/Write로 XLRD는 'Excel Read', XLWT는 'Excel Write'라는 의미◾ 공식문서 페이지 :      XLRD(https://xlrd.readthedocs.io/en/latest/api.html)     XLWT(https://xlwt.read..
Openpyxl
2022.06.26

Matplotlib란, 설치법 및 함수(정리 중)

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 pltimport numpy as npx = np.linspace(0, 2 * np.pi, 200)y =..
Matplotlib
2022.05.13

넘파이(Numpy) 란, 설치법 및 함수(정리 중)

넘파이(Numpy)◾ Numerical + Python의 합성어. '넘파이'라고 부름◾ 행렬이나 일반적으로 대규모 다차원 배열(ndarray)을 쉽게 처리할 수 있도록 지원하는 파이썬 라이브러리◾ 데이터 구조 외에도 수치 계산을 위해 효율적으로 구현된 기능 제공 (선형 대수와 관련된 다양한 기능 제공)◾ 일반 list에 비해 빠르고 메모리 사용이 효율적임◾ Numpy에서 차원은 축(Axis)이라고 함◾ C, C++, 프토란 등의 언어와 통합 가능  설치(Installation)pip 이용시,pip install numpy conda를 사용한다면,conda install numpy 심플 예제(Example)◾ 배열 생성#Python에서 라이브러리를 호출하는 방법import numpy as npx = np...
Numpy
2022.04.28

Knowledge

DAC(Digital-to-Analog Converter)란,

DAC(Digital-to-Analog Converter)란, DAC란, Digital to Analog Converter라고 하여 디지털 신호를 아날로그 신호로 변환시켜 주는 장치를 말합니다. 이전 ADC 관련 포스팅에서 '아날로그 신호를 측정'할 때 ADC를 소개하였다면 DAC의 경우 '아날로그 신호를 생성'할 때 사용된다고 보시면 되겠습니다. 즉, ADC는 AI(Analog Input), DAC는 AO(Analog Output)로 분류할 수 있겠네요. (ADC 참조 링크) DAC 블록도를 살펴보면 디지털 신호를 변환하기 위해 아래와 같이 n-bit Register, Voltage Switching, Summing Circuit, Output Amplifier 순서로 구성되어 있습니다.  n-bit ..
DAQ & SC
2024.08.10

CPU vs GPU vs TPU

CPU(Central Processing Unit) 중앙 처리 장치라고도 하며 CPU(Central Processing Unit, Central/main Processor)는 컴퓨터 시스템을 통제하고 프로그램의 연산을 실행·처리하는 가장 핵심적인 컴퓨터의 제어 장치, 혹은 그 기능을 내장한 칩입니다. 외부에서 정보를 입력받고, 기억하고, 컴퓨터 프로그램의 명령어를 해석하여 연산하고, 외부로 출력하는 역할을 합니다. 따라서 중앙 처리 장치(CPU)는 컴퓨터 부품과 정보를 교환하면서 컴퓨터 시스템 전체를 제어하는 장치로, 모든 컴퓨터의 작동과정이 중앙 처리 장치(CPU)의 제어를 받기 때문에 컴퓨터의 두뇌에 해당한다고 할 수 있습니다. 실제의 CPU 칩엔 실행 부분뿐만 아니라 캐시 등의 부가 장치가 통합되어..
Computer & IT
2024.01.01

푸리에 역변환(Inverse Fourier Transform, IFT)

푸리에 역변환(Inverse Fourier Transform, IFT) 푸리에 역변환은 비주기 신호의 Freq-domain 값들을 적분하여 원신호를 복원하는 것을 말합니다. 말그대로 푸리에 변환의 역계산 방식이죠. 필요하신 분들을 위해 이전 포스팅 참고로 띄워놓겠습니다. 푸리에 급수(Fourier Series) 푸리에 급수(Fourier Series) 보통 신호와 관련된 내용을 찾다보면 "모든 주기 함수는 sin과 cos의 무한 합으로 표현할 수 있다."란 말을 많이 합니다. 이게 바로 푸리에 급수에 대한 내용인데요. 푸리 moonnote.tistory.com 푸리에 변환(Fourier Transform, FT) 푸리에 변환(Fourier Transform, FT) 우리가 흔히 말하는 푸리에 변환(Fou..
DAQ & SC
2023.09.16

HTTP와 HTTPS? 무슨 차이인가?

HTTP(HyperText Transfer Protocol) HTTP(HyperText Transfer Protocol)는 웹 서버 및 웹 브라우저 간 데이터 전송을 위한 프로토콜입니다. 우리가 흔히 인터넷 주소창에 'http://www.naver.com'과 같이 URL 주소를 입력하면 이 웹 서버에 명령을 보내어 작동하게 되는 것입니다. HTTP는 TCP/IP 기반의 어플리케이션 프로토콜로 이를 이해하기 위해서는 OSI 7 Layer를 이해하면 좋은데요. 추후 포스팅에서 OSI 7 Layer에 대해서 다루는 시간을 가져보도록하고 본문에서는 HTTP 구성에 대해서 설명을 드리겠습니다. 앞서 TCP/IP 기반이라고 말씀드렸던 것처럼 서버-클라이언트 형태로 데이터를 주고 받으며 HTML, TEXT, 이미지,..
Computer & IT
2023.04.09

이산 푸리에 변환(DFT)와 고속 푸리에 변환(FFT)

신호를 다루는데 있어 주파수의 개념은 어떤 산업 분야를 막론하고 중요하다고 할 수 있습니다. 앞서 푸리에 변환(Fourier Transform)이 무엇인지 살펴 보았는데요. 이번 시간에는 이산 푸리에 변환(DFT)와 고속 푸리에 변환(FFT)에 대해 알아보도록 하겠습니다. 푸리에 변환(Fourier Transform, FT) 푸리에 변환(Fourier Transform, FT) 우리가 흔히 말하는 푸리에 변환(Fourier Transform, FT)이라고 하면 주파수 분석 하기위해 Time-Domain을 Frequency-Domain으로 변환하는 과정을 말합니다. 그러나 푸리에 변환 moonnote.tistory.com 이산 푸리에 변환(DFT, Discrete Fourier Transform) 디지털 ..
DAQ & SC
2023.04.01

푸리에 변환(Fourier Transform, FT)

푸리에 변환(Fourier Transform, FT) 우리가 흔히 말하는 푸리에 변환(Fourier Transform, FT)이라고 하면 주파수 분석 하기위해 Time-Domain을 Frequency-Domain으로 변환하는 과정을 말합니다. 그러나 푸리에 변환에서 말하는 주파수란, 우리가 흔히 알고 있는 "초당 몇회 반복되는지"의 개념만 가지고 설명할 수는 없고 확장된 개념으로 공간적인 의미을 내포하고 있다고 보는 것이 더 정확하다고 할 수 있습니다. 그렇기 때문에 오일러 공식을 통해 푸리에 급수의 기본 함수를 삼각함수가 아닌 \(e^{2\pi i\theta }\)로 사용하기도 합니다. (\(z = cosx + isinx\)는 복소 평면에서 단위원을 말함, 아래 이미지에서는 실수에 대해 \(\varph..
DAQ & SC
2022.12.31

푸리에 급수(Fourier Series)

푸리에 급수(Fourier Series) 보통 신호와 관련된 내용을 찾다보면 "모든 주기 함수는 sin과 cos의 무한 합으로 표현할 수 있다."란 말을 많이 합니다. 이게 바로 푸리에 급수에 대한 내용인데요. 푸리에 급수(Fourier Series)는 주기성을 가지는 신호를 sin 또는 cos으로 표현하는 것을 말합니다. 일정한 속도로 주기적인 특성을 가진 파형을 흔히 정현파(Sinusoidal Signal)라고 부르는데, 이러한 연속적이고 주기적인 특성을 sin과 cos의 조합으로 표현하는 것이죠. 대표적인 정현파로 우리가 알고 있는 ¹사인파, ²삼각파, ³톱니파, ⁴사각파가 있습니다. 예시로 사인파와 코사인파 생성에 대한 이미지를 첨부하오니 참고하시면 좋을듯 하네요. sin과 cos은 서로 Phas..
DAQ & SC
2022.10.26

RJ-45와 RJ-50? 무슨 차이인가?

RJ 케이블이란, RJ 케이블은 'Registered Jack'의 약자로 음성 및 데이터 장비를 지역 통신사 또는 장거리 통신사가 제공하는 서비스에 연결하기 위한 표준화된 통신 네트워크 인터페이스입니다. 랜케이블로도 많이들 알고 있는 케이블이 바로 RJ 케이블인데요. 1970년대 FCC(Federal Communications Comissions)에서 규정한 고객 제공 통신 장비 등록(Registered) 프로그램을 준수하기 위해 미국 벨 시스템의 USOC(Universal Service Ordering Code) 시스템에 처음 정의 되었다고 합니다. RJ-11(1회선), RJ-14(2회선), RJ-25(3회선) 등 각각의 서비스에 맞는 인터페이스 규격들이 있으며 본문에서는 RJ-45와 RJ-50에 대해..
Computer & IT
2022.09.24

IPv4 와 IPv6? 무슨 차이인가?

이번 시간에는 IPv4와 IPv6에 대해서 비교해보고자 합니다. 본문을 살펴보기에 앞서 IP란 용어에 대해 조금 이야기하면 IP란 'Internet Protocol'의 약자로 송신단과 수신단 사이에 패킷 교환 네트워크를 통해 데이터를 주고받는 것을 말합니다. 이 데이터를 원활히 주고 받기 위한 신호 송신의 순서, 데이터의 표현법, 오류 검출법 등을 정하는 것이 프로토콜(=통신 규약)이라 보시면 되고요. 기본 개념 적립이 중요하다 싶어 간략하게 적어보았으니 좀 더 자세한 사항을 원하시는 분들은 추가 검색을 해보시기 바랍니다. 송신 호스트와 수신 호스트 간 데이터를 주고 받기 위해서는 보내고 받는 곳의 주소가 필요한데요. 대표적인 IP 주소(IP Address) 체계로 오늘 다뤄볼 IPv4와 IPv6가 있습..
Computer & IT
2022.09.03

오버플로우(Overflow)와 오버라이트(Overwrite)

버퍼 에러(Buffer Error) 지난 시간 버퍼란 메모리 영역 중 '데이터를 임시 저장하는 공간'이라고 설명했었습니다. 버퍼 에러는 이 버퍼 구간에서 발생하는 에러를 말하며 데이터 수집에서는 기본적으로 크게 오버플로우(Overflow), 오버라이트(Overwrite) 두 가지를 다룹니다. 오버플로우(Overflow) 디바이스 FIFO(First In First Out) 메모리가 한계치에 도달하였을 때 발생하는 에러입니다. 장비마다 메모리 영역에서의 버퍼 크기는 한계가 있을 수밖에 없는데 이는 우리가 장비를 컨트롤할 때 설정하는 샘플링 스펙에 영향을 많이 받습니다. 샘플링이 빠르면 그만큼 버퍼에 데이터가 쌓이는 속도 또한 빠른만큼 적절하게 빨리 비워줘야지만 오버플로우 현상을 막을 수 있습니다. 샘플링 ..
DAQ & SC
2022.07.24

BJT(Bipolar Junction Transistor)와 FET(Field Effect Transistor)

이번 시간에는 BJT와 FET에 대해서 조금 더 알아보도록 하겠습니다. 트랜지스터란 콜렉터(C), 베이스(B), 이미터(E)로 구성되어 스위치와 같은 역할을 해주는 능동 소자라고 소개해 드렸었는데요. 리마인드가 필요하시면 지난번 포스팅을 참고하시면 될 듯 하네요. 능동 소자(Active Element) 능동 소자(Active Element) ▪ 작은 신호(전력, 전압, 전류 중 하나)를 넣어 큰 출력 신호로 변화시킬 수 있는 전자 부품 소자 ▪ 입력과 출력의 비율로 이득을 얻음 ▪ 단독 사용이 힘들고 주위 moonnote.tistory.com 크게 트랜지스터는 양극성 트랜지스터(Bipolar Transistor), 단극성 트랜지스터(Unipolar Transistor)로 나뉩니다. 양극성이 BJT, 단극..
Electrical & Electronic
2022.06.16

HDD, SSD, NVMe 차이

HDD(Hard Disk Drive) 하드디스크 또는 Hard Disk Drive의 줄임말입니다. 일반적으로 정보를 저장하는 역할로 많이 쓰이며 전원이 나가도 데이터가 날아가지 않는 비휘발성 메모리(Non-Volatile Memory)라고 할 수 있습니다. 실제 하드 안쪽은 위의 이미지처럼 실제 디스크가 있으며, 디스크가 회전하면서 자료를 읽는 형태로 구동됩니다. 따라서 RPM이 높은 HDD는 탐색에 걸리는 시간이 빠르다는 의미로 제조사별 제품군마다 RPM이 얼마인지를 가지고 Hard Disk의 스펙을 명시해 두었습니다. RPM이 높아지면 속도가 빠른 장점이 있긴 하지만 가격이 좀 더 비싸며 이 외에도 전력 소모나 소음이 더 커지는 단점도 있긴하니 적당한 HDD를 선정해서 사용해야 합니다. 보통 토렌트같..
Computer & IT
2022.05.10

버퍼 수집, 유한(Finite) 또는 연속(Continuous) 샘플링

버퍼(Buffer)란, 메모리 영역 중 한 곳으로 데이터를 임시 저장하는 공간을 말합니다. 버퍼 수집이란 버퍼링(Buffering) 또는 큐(Queue)라고도 부르는데 버퍼에다가 데이터를 채우는 작업을 말합니다. 대표적으로 버퍼 구조에 따라 큐(Queue), 스택(Stack)이라 부르고, 해당 구조에 따른 데이터 처리 방식을 FIFO, LIFO라고 부릅니다. 본 포스팅에서는 큐, 스택에 대한 자세한 설명은 생략하고 추후 업데이트를 한다면 링크를 걸도록 하겠습니다. 정리해보자면 버퍼 수집은 결국엔 DAQ와 PC쪽 메모리 영역 어딘가에서 데이터를 주고 받기 전 데이터를 버퍼에 저장하는 작업을 말합니다. 이후 샘플링 작업으로 서로 데이터를 주고 받는 것인데 리마인드가 필요하신 분들은 이전 포스팅에서 '샘플링 ..
DAQ & SC
2022.05.08

임피던스 매칭(Impedance Matching)이란,

임피던스 매칭(Impedance Matching)이란, 하나의 입력과 출력단을 연결할 때 서로 다른 두 연결단의 임피던스 차에 의한 리플렉션을 줄이기 위해 입∙출력의 임피던스를 맞추어주는 작업을 말합니다. 임피던스란 교류 회로에서 리액턴스 성분까지 고려한 값이라고 하였는데요. 참고가 필요하신 분들은 지난번 포스팅을 한번 읽어보시길 바랍니다. 임피던스(Impedance, 온저항)와 리액턴스(Reactance, 반응저항) 임피던스(Impedance, 온저항)란, 임피던스란 회로에 전압이 인가되었을 때 전류의 흐름을 방해하는 값을 말하며 저항과 마찬가지로 단위는 옴[Ω]으로 표현하고 알파벳 Z를 사용하여 나타냅니다. moonnote.tistory.com 따라서 임피던스 매칭은 '정합'이라고도하며 전력 손실 및..
Electrical & Electronic
2022.04.14

신호 소스(Grounded/Floating)와 접지 모드(DIFF/RSE/NRSE)

이번 시간에는 신호 소스와 접지 모드(터미널 설정)에 대해서 알아보겠습니다. DAQ 시스템이란 결국엔 사용되는 센서의 출력 신호를 DAQ 장비가 측정하는 것인데요. 센서와 장비간 물리적인 연결을 할 때 신호 소스 타입이 어떻게 되는지, 그리고 신호 소스 타입에 맞추어 적절한 접지를 잡아주는 것이 관건이라고 하겠습니다. 센서의 경우에도 종류가 워낙 다양하지만 결국에는 전기적인 신호로 변환시켜 출력을 보내주게 되므로 대부분의 센서 출력은 전압(또는 전류)이라고 볼 수 있습니다. '전압'이란, 두 지점 사이의 전위차를 말하며 전류가 흐를 수 있도록하는(전하가 이동시킬 수 있는) 능력입니다. 신호 소스 타입(Grounded vs Floating) 신호 소스 타입의 경우 크게 접지된 신호(Grounded Sign..
DAQ & SC
2022.04.10