분류 전체보기894 OP Amp 연산증폭기(OP-Amp, Operational Amplifier)는 회로 설계에 따라 다양한 용도로 사용될 수 있다. 몇가지 기본 회로에 대해서 한 번 알아보자. 1. 버퍼 (Buffer) - 구성 : 연산 증폭기의 비반전 입력(+)에 신호를 연결하고, 출력은 반전 입력(-)으로 피드백 된다 - 특징 전압 이득이 1이라서 입력 신호가 그대로 출력으로 전달되는데, 입력 전압과 출력 전압이 동일한 점 때문에 전압 팔로워(Voltage Follower)라고도 부른다.버퍼 회로는 입력 임피던스가 매우 높고 출력 임피던스가 낮아 입력 신호를 다른 회로에 전달할 때 소스 신호에 영향을 미치지 않고 전압 수준을 그대로 유지하면서 전달하는 용도로 사용된다. 2. 비교기 (Comparator) -.. 2024. 9. 6. Visual Studio ] 빌드 도구 추가 설치하기 시작 - Visual Stduio Installer 실행 수정 클릭 개별 구성 요소에서 키워드로 검색 후 수정 버튼을 눌러 설치 2024. 9. 4. C++ ] 가변 인자 템플릿(Variadic Templates) 활용 C++ 11에서 도입된 가변 인자 템플릿이란 함수가 불특정 다수의 여러 인자를 받을 수 있게 해주는 기능이다. 가변 인자 템플릿은 C의 stdarg.h에 있는 가변 인자 매크로들과 비슷한 역할을 한다고 볼 수 있는데 그 사용법에 있어서는 큰 차이가 있다. 이에 대해 한번 알아보자. 1. 템플릿(Templates)이란?템플릿은 C++에서 함수나 클래스를 정의할 때 그 타입을 일반화하여 코드 재사용성을 높이는 기능이다. 템플릿을 사용하면 특정 데이터 타입에 종속되지 않고, 다양한 타입에 대해 동일한 코드 구조를 사용할 수 있다. 템플릿을 선언할 때는 다음과 같은 구문을 사용한다. 여기서 T는 타입 매개변수로 함수나 클래스가 다양한 데이터 타입에 대해 동작하도록 일반화할 수 있게 해준다. template .. 2024. 9. 2. Python ] os.path 모듈 파이썬의 표준 라이브러리인 os 모듈의 서브모듈인 os.path 모듈은 경로, 파일, 디렉토리에 관련된 유용한 함수들을 제공해준다. os 모듈 import os.path 서브모듈을 사용하기 위해 os 모듈을 import 한다.import os 경로를 다룰 때 자주 사용하는 함수 os.path.join 플랫폼에 따라 올바른 경로 구분자를 사용해 여러 경로 조각을 결합해 하나의 경로를 생성한다.path = os.path.join("folder", "subfolder", "file.txt")print(path)# 리눅스에서 결과: "folder/subfolder/file.txt"# Windows에서 결과: "folder\subfolder\file.txt" os.path.exist 주어진 경로가.. 2024. 8. 30. 경기도 가평 금다래 캠핑장 입실 13시 퇴실 11시 1박에 5만원, 연박시 1박당 만원 할인 A동과 B동이 있는데 사이트는 선착순으로 선택한다. 입실시간보다 일찍 오는사람들이 꽤 있었는데 남는 자리에 설치하는거면 사장님도 용인하시는 것 같았다.B동은 계곡과 붙어있는 사이트가 있는 대신 좁은편이고, A동은 계곡과는 떨어져있지만 바로 옆에 주차가 가능할만큼 사이트 더 넓은편이다.B동 옆에는 아이들이 놀 수 있는 얕은 계곡이 있고, 캠핑장 입구쪽에는 다이빙이 가능한 깊은 계곡이 있는데 넓진 않아서 수영까진 힘들다. 개인적으로는 화장실과 샤워실이 넉넉하지 않고 시설이 낙후된 점이 아쉬웠다. 2024. 8. 28. 더 뉴 셀토스 에어로 와이퍼 리필 고무 교체 방법 셀토스 프론트 와이퍼는 에어로 타입으로 리필 고무만 교체하면 되는 형태이다.물론 통째로 교체해도 되긴 하지만 고무만 교체하는게 비용이 훨씬 저렴하다. 부품번호 : 98351-3M000, 98361-2V000구입가격 : 배송비 별도 5720원 와이퍼 탈거 방법 1. 와이퍼 암을 세운다.이 때 와이퍼를 빼고 나면 쇠로된 와이퍼암이 앞유리를 쳐서 손상이 갈 수 있으므로 수건같은 푹신한 물건을 대고 작업하는 것이 좋다. 2. 잠금쇠를 열고 와이퍼를 아래로 방향으로 당긴다. 3. 와이퍼를 유리방향으로 당겨 탈거한다.와이퍼암의 끝부분이 U자 고리형인 점을 고려하여 분리하면 쉽다. 분리한 와이퍼를 잘 들여다 보면 한쪽엔 아래와 같이 홈이 있고 다른 한쪽은 홈이 없다. 리필 고무교체 방법 와이퍼 .. 2024. 8. 26. Visual Studio ] 기존 폴더 추가하기 솔루션 탐색기 상다의 모든 파일 표시 버튼 클릭 해당 폴더 우클릭 후 프로젝트에 포함 해당 폴더에 헤더파일이 포함되어 있는 경우 추가 포함 디렉터리에 추가해주자 프로젝트 우클릭 > C/C++ > 일반 > 추가 포함 디렉터리 > 편집 매크로 사용해서 상대경로로 디렉터리 추가해주고 세미콜론으로 구분한 뒤 적용 2024. 8. 24. 오버슈트와 언더슈트 오버슈트 (Overshoot)오버슈트는 신호의 출력이 목표 값에 도달하기 위해 반응할 때 일시적으로 목표 값을 초과하여 상승하는 것을 의미한다. 언더슈트 (Undershoot)언더슈트는 신호가 목표 값으로 수렴하는 과정에서 일시적으로 목표 값보다 낮은 값을 기록하는 현상을 의미한다. 2024. 8. 22. 멀티미터를 사용해 다이오드 테스트 하는법 디지털 멀티미터(DMM)를 사용해 다이오드의 극성을 구별하거나 고장여부를 테스트 하는 방법을 알아보겠다. 그 전에 먼저 다이오드에 대해 알아보자. 다이오드 (Diode)다이오드는 전류가 한 방향으로만 흐르게 하는 특성을 가진 전자 부품으로 애노드와 캐소드라는 두 단자로 구성된다. 순방향 바이어스에서는 약 0.7V 이상의 전위차가 발생할 때 전류가 흐르기 시작하며, 역방향 바이어스에서는 전류가 거의 흐르지 않는 특징을 가진다. 다이오드의 극성 애노드 (Anode) : 전류가 들어오는 쪽의 단자로 기호에서 화살표가 가리키는 곳의 반대 부분이다.캐소드 (Cathode) : 전류가 흘러나가는 쪽의 단자로 기호에서 세로 막대기 쪽이다. 다이오드의 주요 특징 순방향 바이어스 (Forward Bias) :.. 2024. 8. 20. 파워포인트 빨간줄 없애는 법 파워포인트의 빨간 밑줄은 맞춤범 검사 결과 오류가 있을 때 생기는 것으로 파일 > 옵션 > 언어 교정 > '입력할 때 자동으로 맞춤법 검사' 체크를 해제하면 없앨 수 있다. 2024. 8. 18. TMS320F28388D ] 링커커맨드 파일과 컴파일러 섹션 링커커맨드 파일과 컴파일러 섹션에 대한 이해... Compiler Sections C 코드는 컴파일러를 통해 어셈블리 코드로 변환되고 어셈블리 코드는 어셈블러를 거쳐 오브젝트 파일이 된다. 모든 C 코드는 섹션이라고 불리는 여러 부분으로 분리될 수 있는데 컴파일러는 컴파일 과정에서 C 코드를 분석하여 각 섹션에 들어갈 데이터를 구분한다. 그리고 오브젝트 파일의 구성을 보면 각 섹션별로 데이터가 저장되며 이외에도 변수, 함수 등의 심볼 정보를 가지고 있는 심볼 테이블이 포함된다. 이러한 섹션의 이름에는 .text, .stack, .bss 등 공통적으로 사용되는 것들도 있지만 툴체인마다 섹션의 이름이 약간씩 다르거나 추가적인 섹션이 있을 수 있다. C28x 컴파일러의 섹션은 다음과 같다. Section N.. 2024. 8. 16. 함수발생기 50옴, High-Z 설정에 관해 (함수 발생기 출력이 2배로 측정되는 이유) 함수발생기에서 출력 임피던스를 50옴으로 설정하면 계측장비에서 측정시 진폭이 2배로 측정되는 이유는? 보통 계측 장비의 입력 임피던스는 높을수록 입력 신호에 미치는 영향을 최소화할 수 있다. 따라서 오실로스코프의 경우 특별한 상황이 아니면 기본 설정이 1MΩ이다. 여기서 '특별한 상황'이란 수 MHz 이상의 고주파 신호를 측정할 때를 말하는데, 고주파 신호는 송신단과 수신단의 임피던스가 일치하지 않으면 신호가 반사되어 왜곡될 수 있다. 이 때문에 임피던스를 정확히 매칭해 신호를 관찰하는 것이 중요하며, 이때 주로 사용하는 값이 50Ω이다. 그래서 함수 발생기의 출력 임피던스 기본 설정도 50Ω인 경우가 많다. 다만 여기서 고려할 점은 함수 발생기와 계측 장비 모두 임피던스를 50Ω으로 설정하면 전압 분배.. 2024. 8. 14. PyInstaller ] 파이썬 스크립트(.py)를 실행파일(.exe)로 만들기 PyInstaller는 파이썬 스크립트를 파이썬 인터프리터가 설치되지 않은 환경에서도 실행이 가능하도록 실행 파일로 만들어 배포할 수 있게 해주는 패키지이다. PyInstaller 설치 pip install pyinstaller PyInstaller 기본 사용법 실행 파일로 만들려는 파이썬 스크립트를 지정하여 PyInstaller를 실행한다.pyinstaller example.py PyInstaller로 생성되는 주요 폴더와 파일 project_root/├── example.py # PyInstaller로 패키징할 Python 스크립트├── build/ # 빌드 과정에서 생성된 임시 파일들│ └── ..... 2024. 8. 12. VSCode ] 코드 접기, 펼치기 단축키 Windows 기준 전체 접기 : Ctrl + K + 0(숫자)전체 펼치기 : Ctrl + K + J현재영역 접기 : Ctrl + Shift + [현재영역 펼치기 : Ctrl + Shift + ] 2024. 8. 10. 의사난수 생성기 (PRNG, Pseudo Random Number Generator) 1. 의사난수(Pseudo Random Number)란?컴퓨터는 본질적으로 계산기이기 때문에 특정 연산의 결과는 항상 동일하며 스스로 난수를 만들어낼 수 없다. 따라서 우리는 일반적으로 알고리즘을 사용해 무작위성을 흉내내는데 이를 의사난수 생성기(PRNG)라고 한다. 의사 난수 생성기는 초기값(시드)에 의해 결정되는 수열을 생성하며 같은 시드값을 사용하면 항상 동일한 수열을 생성한다. 이러한 특성 때문에 사람이 보기에는 어느정도 난수로 보이지만 진짜 난수는 아니기에 가짜 난수라는 의미로 Pseudo Random Number라고 부른다. 2. 의사난수의 종류 2.1 중앙제곱법(Middle Square Method)중앙제곱법은 존 폰 노이만이 제안한 초창기 난수 생성 알고리즘이다. 이 방법은 숫자를 제.. 2024. 8. 8. SNR SNR (Signal to Noise Ratio)이란? 신호 대 잡음비(SNR)는 배경 잡음 수준에 비해 원하는 신호의 수준을 정량화하기 위해 사용하는 척도이다. 신호의 레벨을 노이즈의 레벨로 나누어 계산하며, 일반적으로 데시벨(dB) 단위로 표시된다. SNR이 높으면 신호가 노이즈에 비해 더 뚜렷하고 식별 가능함을 나타내고, SNR이 낮으면 신호가 노이즈와 구별하기 더 어렵다는 것을 나타낸다. SNR의 쓰임 SNR은 다양한 분야에서 다양한 역할로 쓰인다. 예를 들어, 통신 시스템에서는 높은 SNR이 데이터 전송의 정확성을 보장하며, 오디오 장비에서는 높은 SNR이 더 깨끗한 소리를 제공한다. 이미지 처리에서는 높은 SNR이 더 선명한 이미지를 의미하고, 아날로그 신호를 디지털로 변환하는 AD.. 2024. 8. 6. TMS320F28388D ] DAC 겸용 ADC 핀 사용시 주의점 DAC 겸용 채널인 ADCINA0, ADCINA1, ADCINB1의 경우 내부의 50k옴 풀다운이 있다. 해당 채널을 ADC로 사용시 영향성은? 만약 ADC 입력 단에 높은 값의 저항이 있다면 전압분배기를 형성하여 게인 오류를 일으킬 수 있다고 한다. https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/839807/tms320f28075-adcina1-internal-50kohm-pulldown-resistor-question 그리고 데이터시트를 찾아보면 ADC 입력 회로의 소스 임피던스에 대한 언급도 있다. 이건 모든 ADC 채널에 적용되.. 2024. 8. 4. 배치 파일 활용하여 윈도우 명령 프롬프트에서 사용할 커스텀 명령어 만들기 1. 커스텀 명령어로 사용할 배치파일들을 모아둘 폴더를 만든다. 2. 해당 폴더를 환경 변수 path에 등록한다.내 PC > 속성 > 고급 시스템 설정 > 환경 변수 > 사용자 변수 > path에 값 추가 3. 이제 해당 폴더에 .bat 파일을 만들어 두면 을 커스텀 명령어로 쓸 수 있다.해당 명령과 일치하는 프로그램이 있는지 path에 등록된 디렉터리를 탐색할거기 때문이다. 사용예시 배치파일을 사용해 정말 다양한 기능의 커스텀 명령어를 만들 수 있지만 여기선 한가지 예시를 들어보도록 하겠다. 다음 명령들은 특정 장비와 연동 테스트 목적으로 IP를 계속 바꿨다 돌렸다할 때 유용하게 쓸 수 있다. 1. 고정 IP로 설정하는 명령 ip-static.bat@echo offREM 코드페이지를 UTF.. 2024. 8. 2. Wireshark ] UDP 중복 패킷 식별 Wireshark에서 중복으로 UDP 패킷이 캡쳐되는 경우 IP ID값을 보고 같은 패킷인지 확인할 수 있다. Wireshark의 IP Identification 필드는 16-bit HEX 값으로 IP 패킷의 고유한 식별자로 사용된다. 물론 IP Identification 값이 같다고 해서 반드시 중복 패킷인 것은 아니고 패킷이 조각화되었을 때 동일한 IP 패킷의 일부 조각들인 경우도 있다.하지만 페이로드 등 다른 필드가 동일하고 IP Identification까지 동일한 상황인 경우 포트 미러링 등 모종의 이유로 인해 동일 패킷이 여러번 캡쳐된 것으로 판단할 수도 있다. 해당 필드를 우클릭해 Apply as Column으로 추가하면 구분이 편하다. 참고 : https://wiki.wireshark.. 2024. 7. 30. SMD 타입 저항 읽는법 3 digit 혹은 4 digit 저항은 마지막 숫자가 10의 승수로 앞자리 숫자들과 곱하면 되고, 중간에 R/K/M이 오는 저항은 뒷부분이 소수점이하 자리로 생각하면 된다. 출처 :https://www.youtube.com/watch?v=tjISrZy5S9chttps://www.youtube.com/watch?v=ziJGxqbn45A 2024. 7. 28. 아두이노 ] VIN으로 외부전원을 공급하는 동시에 USB 케이블을 연결해도 될까? 아두이노는 USB 포트를 통해 PC로부터 5V 전원을 공급받을 수 있는데 VIN 또는 배럴잭을 통해 외부 전원을 공급하는 동시에 USB 케이블을 연결해도 괜찮을까? 결론만 말하면 괜찮다이다. 다음 아두이노 전원쪽 회로를 보면 VIN이 1/2 전압분배를 거쳐 비교기의 +단자로 들어가고 비교기 -단자에는 3.3V 전압이 인가되는데 비교기는 +입력이 -입력보다 높을때 출력이 높은상태가 되고, +입력이 -입력보다 낮은 상태일 때 출력이 낮은상태가 된다. 그 다음 비교기 출력 MOSFET Gate를 제어하는데 출력이 높은상태인 경우 P 채널 MOSFET이 꺼지게 되어 USBVCC 전원을 차단하게 된다. 즉, VIN과 USB가 모두 연결된 상태일 때 VIN이 6.6V를 초과하면 공급전원이 스위칭된다. 2024. 7. 26. 전원 어댑터 극성 구분하기 Positive polarity, Negative polarity 전원 어댑터 플러그의 극성은 센터 포지티브, 센터 네가티브 두 종류가 있다. 센터의 중앙 핀이 양극(+)이냐 음극(-)이냐를 가지고 구분하며 센터를 둘러싼 외부 금속 실린더(배럴)은 반대의 극성을 갖는다. 이를 식별하는 가장 쉬운 방법은 어댑터의 라벨을 확인하는 것이고 일반적으로 유통되는 대부분의 전원 어댑터가 센터 포지티브 플러그를 사용한다. 하지만 여전히 센터 네거티브 플러그를 사용하는 장치나 어댑터도 존재하며 극성을 잘못 연결한 경우 장치가 손상될 수 있으므로 주의가 필요하다. 2024. 7. 24. Noctua 4-pin PWM fan 제어하기 with 아두이노 Datasheet FAN Model & Specification NOCTUA NF-P14s redux-1200 PWM Wiring Blue 라인을 통해 PWM으로 속도제어를 할 수 있고, Green 라인을 통해 타코미터 신호를 받아 팬 속도를 알 수 있다. 아두이노 9번 핀(PWM Out), 2번 핀(Tach In) 사용 PWM Speed Control 일단 PWM 신호 핀 없이 +12V랑 GND를 연결하면 팬이 최고속도로 도는데 아마도 PWM signal 입력을 받는쪽이 내부적으로 풀업이 되있나보다. PWM 주파수는 25kHz이고 듀티를 0~100% 사이로 제어하면 된다.처음엔 digitalWrite랑 delayMicroseconds를 써서 PWM을 만들까 했는데 25k.. 2024. 7. 22. dB(데시벨) dB란?데시벨(dB)은 신호의 세기의 상대적인 차이를 표현하기 위해 사용되는 단위로 전자 공학 분야에서는 전력, 전압의 이득(gain)이나 감쇠(attenuation)을 표현할 때 많이 사용한다. dB의 정의두 신호의 출력/입력 비율에 대한 밑이 10인 상용로그에 10 또는 20을 곱한 값이다. 전력 비율일 경우 10을 곱하고, 전압 또는 전류 비율일 경우 20을 곱한다. 전력은 10배인데 전압은 10배를 곱해주는 이유는 V=IR, P=VI 이므로 P=V^2/R 으로 전력(P)은 전압(V)의 제곱에 비례하기 때문이다. 이렇게 입력 신호 대비 출력 신호의 비율을 로그 스케일인 dB단위로 나타내면 큰 범위의 값을 간단히 표현할 수 있고 시스템에 여러 개의 증폭기나 감쇠기가 있을 때 각 이득(dB)을 덧셈.. 2024. 7. 6. winmm API 사용하여 WAV 파일 재생하기 winmm 은 Windows Multimedia의 약자로 해당 라이브러리의 API를 사용해 WAV 형식의 오디오 파일을 재생할 수 있다. #include #include // mmsystem.h 포함#include // winmm.lib 링크#pragma comment(lib, "winmm.lib")int main() { // wav 파일 경로 const char* filePath = "C:\\Users\\jo\\Downloads\\warning.wav"; // wav 파일 동기식 재생 MMRESULT result = PlaySound(filePath, NULL, SND_FILENAME); if (!result) { printf("PlaySound Error\n"); return 1; } print.. 2024. 7. 4. TMS320F28388D ] Input Qualification TMS320F28388D DSP GPIO 모듈에 있는 Input Qualification 회로는 말 그대로 신호가 유효한가 Qualification 하는 회로이다. Inpuq Qualification 기능을 사용하면 GPIO 포트로 입력되는 신호를 지정된 횟수만큼 샘플링해서 로직이 모두 일치하는 경우에만 신호 변화를 전달하고 그렇지 않은 경우는 노이즈로 취급해 무시하게 된다. 다음 블락도를 보자. 외부 GPIO 입력 핀에 신호가 전달되면 DSP SYSCLK와 동기되어 Qualification 회로에 전달되고, Qualification 회로는 순간적인 글리치를 필터링하고 내보내는 역할을 한다. 사용자는 샘플 수(GPxQSEL)와 샘플링 주기(GPxCTRL) 파라미터를 설정할 수 있고, 이를 통해 총.. 2024. 7. 2. Amplitude와 Magnitude의 차이 Amplitude(진폭)는 어떤 주기적 신호가 중심 위치로부터 최대 얼마나 변위하는지 나타낸다.Magnitude(크기)는 어떤 주기적 신호의 절대적 크기를 의미한다. Amplitude는 방향을 고려한 vector이고 Time domain에서 주로 사용한다.Magnitude는 방향에 관계없는 scalar이고 Frequency domain에서 주로 사용한다. Amplitude의 예시 : 파도의 크기 측정Magnidue의 예시 : 지진의 규모 측정 Amplitude Magnitude 한편 Magnitude라는 용어는 복소수의 절대값을 의미하기도 한다. z = a + bi인 복소수가 있을 때 절대값은 다음과 같이 구할 수 있으며, 복소수 z가 복소평면에서 원점으로부터 얼마나 떨어져 있는지를 나타낸다. Mag.. 2024. 6. 28. POSIX thread, mutex 사용법 Pthread는 모든 유닉스 계열 POSIX 시스템에서, 일반적으로 이용되는 라이브러리로 병렬적으로 작동하는 소프트웨어 작성을 위해 사용할 수 있다. 소스코드에선 #include 로 헤더를 포함하고 컴파일 시 -pthread 옵션을 붙여 컴파일 한다. 주요 thread 함수 pthread_create새로운 스레드를 생성하고 지정된 함수 start_routine을 실행한다.int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg);pthread_t *thread: 생성된 스레드의 식별자를 저장할 포인터, 해당 식별자를 통해 이후 스레드를 제어할 수 있다.const .. 2024. 6. 26. C] epoll 사용법 epoll이란?epoll은 리눅스 커널 2.5.44부터 도입된 Multiplexing IO 함수로 다수의 파일 디스크립터를 모니터링 할 때 효율적이다. epoll은 epoll_event 구조체와 다음의 세 가지 주요 함수로 구성된다.epoll_create : epoll 파일 디스크립터 저장소 생성epoll_ctl : 저장소에 파일 디스크립터 등록 및 삭제epoll_wait : 파일 디스크립터의 변화를 대기 select와의 차이점select의 경우 매번 호출할 때마다 파일 디스크립터 집합을 사용자 공간에서 커널 공간으로 복사해야 하지만 epoll는 한 번 설정한 파일 디스크립터 집합을 커널 공간에서 유지하여 불필요한 복사를 방지한다. 따라서 많은 수의 파일 디스크립터를 다룰 때 epoll이 더욱 효율적.. 2024. 6. 24. Makefile 작성법 Makefile이란?Makefile은 프로젝트의 컴파일, 빌드 및 기타 작업을 자동화하는데 사용되는 파일로 make라는 유틸리티와 함께 사용된다. Makefile은 일련의 규칙과 지시를 포함하고 있어서 해당 규칙에 맞게 작성하면 소스코드를 컴파일하는 과정을 간소화할 수 있다. 왜 Makefile이 필요한가?자동화: Makefile을 사용하면 여러 파일을 컴파일하고 링크하는 과정을 자동화할 수 있다.효율성: 의존성 파일의 타임스탬프를 비교하여 변경된 파일만 다시 컴파일하므로 빌드 시간을 줄여준다.재사용성: 프로젝트마다 반복되는 빌드 작업을 쉽게 재사용할 수 있다.일관성: 모든 개발자가 동일한 빌드 과정을 따르도록 할 수 있다. Makefile 작성법을 익히기 위한 예제 프로젝트 디렉토리 구성/pro.. 2024. 6. 22. 이전 1 2 3 4 5 ··· 30 다음