Embedded 91

[참고 강의] 재미있게 배우는 전기회로 강의 목차 및 간단한 정리 12회 차 – 정현파 교류

안녕하세요.   이번 내용은 정형파에 대한 내용이며 오일러 공식과 복소수의 내용이 나옵니다. 실제 강의 내에서는 복소수의 기초적 강의 부분이 없기 때문에 참고 사이트를 먼저 보고 강의를 보시면 도움이 되지 않을까 합니다.  1. 교류의 기초  1) 직류, 교류    - 직류(Direct Current) : 시간의 변화에 대해 크기와 방향이 일정한 전류 또는 전압   - 교류(Alternating Current) : 시간의 변화에 따라 방향과 크기가 변하는 전류 또는 전압    교류형태 : 정현파, 구형파, 삼각파, 램프파(사다리꼴파)     교류전압은 전자유도현상에 의해 발생 : 코일에서 시간에 따른 쇄교자속이 변화하면서 자속의 변화를 방해하는 방향으로 기전력이 유도되는 현상 2)  정형파 교류  - 정..

[참고 강의] 재미있게 배우는 전기회로 강의 목차 및 간단한 정리 11회 차 – 2차 회로의 과도해석

안녕하세요.  2차 회로 해석은 1차 회로 해석보다 하나 더 소자가 붙기 때문에 계산식이 좀 더 복잡해집니다.아래 내용으로는 계산을 풀어 볼 수는 없고 간단하게 이런 내용이 나왔구나 확인 정도만 할 수 있습니다. 그래서 실제 강의를 보셔야 할 듯합니다. 그리고 본 강의로 부족하기 때문에 마지막 하단에 있는 참고사이트를 추가로 보시면 이해하는데 조금 더 도움이 될 것 같습니다.  1. 2차 회로와 해석  1) 2차 회로   - 인덕터와 커패시터와 같은 저장소자가 동시에 2개가 존재하는 회로  - 2차 미분 방정식으로 표현되고, 특성이 결정된다.  2) 2차 과도회로의 해석 방법   - 미분방정식 적용 : 회로에 대한 미분방정식을 세우고 미분 방정식을 풀어해 구함  - 단계적 해석 : 미리 알려진 경우에 따..

Raspberry Pi CM4에 ModbusTCP Server 실행해 보기 - 4편(ModbusTCP server와 유량센서와 연동)

안녕하세요.  실제로 연동하는 프로그램을 만들어 보려고 합니다.  이전 ModbusTCP내용과 PulseCount를 잘 조합하면 될 것으로 생각했습니다.그런데 가상환경에서 RPi.GPIO의 add_event_detect() 함수를 사용하면 이벤트를 받아서 처리할 수가 없었습니다.    이전 내용을 참고하시면 pigpio 라이브러리 사용하는 방법을 다시 찾아서 확인하였습니다.최종적로 ModbusTCP와 pigpio를 이용해서 작업을 마무리할 수 있었습니다.  1. 코드 구성 확인 소스코드를 보기 전게 간단하게 맥락을 설명하면 아래와 같습니다.  1) 필요한 라이브러리 및 모듈 pyModbusTCP: ModbusTCP 서버를 구현하기 위한 라이브러리pigpio: GPIO 핀에서 센서 데이터를 안정적으로 읽어..

[참고 강의] 재미있게 배우는 전기회로 강의 목차 및 간단한 정리 10회 차 – 1차 회로의 과도 해석

안녕하세요.  이전 내용과 다르게 수학적인 부분이 많이 있어서 많이 어렵게 느껴집니다.그래서 현재 강의로만 이해하기 힘들 것이라 생각되어 하단에 참고 사이트 추가해 둔 교수님의 강의 등을 추가로 들어야 조금이나마 이해가 되지 않을까 합니다.   다음 내용 또한 2차 회로 또한 동일할 것이라고 생각됩니다. 아래 내용은 내용 이해용이라고 보기보다는 간단한 어떤 무료강의에 어떤 내용이 포함되어 있는지 확인용이라고 보시면 됩니다. 1. 1차 회로와 미분방정식   1차 회로는 저항과 커패시터 (R, C) 혹은 저항과 인덕터(R, L)로만 구성된 회로이며, 참고로 2차 회로는 저항과 커패시터, 인덕터(R, L, C)로 구성된 회로 1) 1차 회로와 해석  (1) 1차 회로의 해석 방법    - 미분방정식 직접 적용..

pyinstaller로 실행파일을 만들고 강제종료(ctrl + c) 시 PYI-3170:ERROR 에러 발생 메시지 해결 방법(?)

안녕하세요.  pyinstaller로 실행파일을 만들고 ctrl + c 눌러 종료할 때 보통 아래와 같은 메시지가 나타납니다. 종료할 때 깔끔하게 끝나지 않고 조금 애매하게 종료되는 것 같아서 조금 찾아보았습니다.  1. 테스트 환경   - HW : Raspberry Pi CM4   - OS : bookworm 64bit  - SW :     pip install pyinstaller로 인스톨러를 설치  2. 에러(?) 현상  Python 파일로 실행할 경우 문제없이 종료됩니다. 메모리 혹은 특정 리소스를 점유하고 해제가 필요한 코드에서 에러가 발생하는 것으로 생각됩니다. 현재 시점에서 [PYI-3170:ERROR]로 구글링해도 많이 나오지 않았습니다.  pyinstaller python 프로그램으로 만..

[강의 링크] 재미있게 배우는 전기회로 강의 목차 및 간단한 정리 9회 차 - 커패시터와 인덕터

안녕하세요.   강의를 다 보고 몰아서 정리하려니 양이 많아서 회차별 내용을 간단하게 정리해서 올려보았습니다.  1. 커패시터(Capacitor) 1) 커패시터 : 전하를 축적하여 에너지를 저장하는 수동소자  - 고정 커패시터 : 정전용량이 결정됨 - 가변 커패시터 : 정전용량을 조정 가능 - 전해 커패시터 : 극성을 가짐 2) 커패시터의 충전   - 중성 상태 -> 전원 연결 -> 양쪽 도체판에 음전하, 양전하를 띠게 됨 -> 전압원 전압과 같아지면 전자 이동 멈춤   3) 커패시터의 방전   - 양전하, 음전하 쌓인 도체판 -> 전구연결 -> 음전하 이동 -> 중성상태 -> 전류이동 멈춤  4) 정전용량 : 단위전압당 커패시터가 저장할 수 있는 전하의 양 (기호 : C, 정전용량 단위 : F)   5..

[강의 링크] 재미있게 배우는 전기회로 강의 목차 및 간단한 정리 1~8회 차

안녕하세요.   최근에 전기 기초에 대한 부분이 다시 기억해 보고자 무료 강의를 찾아보았습니다. 강사분이 직접 설명해 주는 것이 아니라서 조금 설명이 부족할 수 있는데(보충 설명할 때는 동영상으로 추가 설명이 있습니다), PPT로 간단간단 강의 자료가 요약 설명이 잘 되어 있습니다. 그래서 빠르게 볼 수 있습니다. 그리고 간단한 예제들로 알려주고 있어 다시 기억해 본다는 차원에서 볼 만했습니다. 1. 강의 목차   1회 차 전기의 기초  2회 차 전기회로와 옴의 법칙  3회 차 키르히호프의 법칙  4회 차 전기회로의 노드 해석법  5회 차 전기회로의 폐로해석법  6회 차 다양한 회로 해석 기법  7회 차 연산 증폭기의 원리와 응용  8회 차 전기와 자기의 상호작용  9회 차 커패시터와 인덕터  10회 차..

Raspberry Pi 가상환경(-m venv)에서 add_event_detect 에러 발생 시 차선책(?)

안녕하세요.   ModbusTCP는 가상환경에서 동작하는 것을 이전 글에서 확인했습니다. 그러나 가상환경에서 GPIO 엣지 검출(Pulse)을 하려고 하는데 생각과 달리 잘 되지 않아서 차선책으로 찾은 방법을 남겨두려고 합니다.   그냥 폴링(Polling)으로 하기에는 정확도와 비효율적이라는 생각이 들어서 해결방법은 없을지 찾아보았습니다.  1. 기본 가상환경 생성 및 설정  Python 표준 라이브러리의 venv 모듈을 사용하여 가상 환경(virtual environment)을 생성합니다. 가상 환경은 Python 프로젝트마다 독립적인 패키지와 Python 인터프리터를 사용할 수 있게 해 줍니다.  아래와 같이 가상환경을 생성 후 RPi 라이브러리 설치 (이전 ModbusTCP 확인 때문에, 설치했다..

Raspberry Pi CM4에 ModbusTCP Server 실행해 보기 - 3편(ModbusTCP server 수정된 함수사용)

안녕하세요.  이전 글에서 deprecated 된 get_words() 함수 관한 부분을 완료하지 못하고 마무리했습니다.이 부분을 다시 확인하고 정리해보려고 합니다. 기본 자료형과 구조는 동일합니다.  1. DataBank Class 최신 함수  최신 버전에서는 DataBank를 직접 호출하는 대신, ModbusServer 객체의 data_bank 속성을 통해 접근합니다 1) DataBank의 메모리 구조 DataBank는 Modbus 표준 메모리 구조를 관리하며, 아래 4가지 메모리 타입을 제공합니다: Coils (1-bit): 읽기/쓰기 가능한 디지털 값Discrete Inputs (1-bit): 읽기 전용 디지털 값Holding Registers (16-bit): 읽기/쓰기 가능한 16비트 값Inp..

PCB Editor 혹은 Or CAD에서 LoadLibrary fails to load with error 126 or error 87 발생할 경우

안녕하세요.   오늘은 OrCAD로 회로 설계하다가 경험할 수 있는 에러에 대해서 공유드립니다.  평상시와 같이 회로설계를 하면서 footprint show를 눌렀는데, OrCAD가 에러 하나를 내고 죽는 현상이 나타났습니다.     저장하고 있지 않은 상황이라 살짝 당황했습니다. 그래서 급하게 검색했습니다.  1. 원인 검색   정확하진 않지만, AMD 계열 그래픽 원인으로 파악되었습니다. ATI 그래픽 카드로 교체했거나, NVIDIA와 같이 사용하는 경우 호환이 되지 않아 나타나는 듯합니다.   OrCAD, PCB Editor에서만 나타나는 것이 아니라, 그래픽 프로그램 (Photoshop, AutoCad) 등에서도 발생하는 듯합니다.  2. 해결책 1) 알려진 해결책   - ATI 그래픽 최신 드라..

Raspberry Pi CM4에 ModbusTCP Server 실행해 보기 - 2편(pyModbusTCP 설치)

안녕하세요.   1편에 이어 ModbusTCP에 대해서 확인해 보겠습니다.테스트 환경은 라즈베리파이 CM4에서 진행했습니다. 이번 글의 목표는 간단하게  pyModbusTCP를 설치해 보고 작동하는 되는 것을 확인하는 것입니다.   1. pymodbusTCP 설치      # install the last available release (stable)$ pip install pyModbusTCP    설치하려고 하면 아래와 같이 에러가 발생할 수 있습니다. 그래서 가상의 환경을 만들어 진행합니다.    가상 환경을 만들더라도 네트워크 환경은 동일하게 유지되며, 가상 환경은 Python 패키지와 종속성만을 격리할 뿐, 네트워크 설정이나 시스템 자원에는 영향을 주지 않습니다. 1) 가상 환경 생성 $ py..

Raspberry Pi CM4에 ModbusTCP Server 설치해 보기 - 1편(ModbusTCP 기본지식)

안녕하세요.   ModbusTCP Server 샘플을 만들어 보기 전에 간단하게 ModbusTCP 이해가 필요할 것 같아서 자료를 찾아보았습니다. 다음 시간에 실제적으로 설치하고 프로그래밍하는 내용을 남겨보려고 합니다.  1. Modbus 프로토콜 개요  Modbus는 산업용 통신 프로토콜로, 공정 자동화에서 주로 사용되며 특히 장비 간의 간단하고 신뢰성 있는 데이터 교환을 위해 설계되었습니다. Modbus는 Master-Slave 방식으로 동작하며, 주로 센서, PLC(Programmable Logic Controller), SCADA(Supervisory Control and Data Acquisition) 시스템과 같은 장치들이 Modbus를 통해 서로 데이터를 주고받습니다.     통신 구조: M..

데이터 시트 트랜지스터 이름에 담긴 의미

안녕하세요.   이번에는 간단하게 트랜지스터에 대해서 설명할 수 있게 정리해 보았습니다.실제적으로 트랜지스터 내부 동작을 보려면 하단의 참조사이트 링크를 참고하시면 됩니다.  1. 트랜지스터(Transistor) 1) 정  의   - 1947년 벨 연구소에서 반도체를 이용한 스위치의 필요성이 대두되어 개발  - 트랜지스터는 3개 이상의 단자를 가지고 있는 능동소자  - 전류 증폭과 스위치 기능  - 매우 낮은 베이스 전류를 가지고 컬렉터와 이미터 간의 전류를 조절  - 나중에 전압을 제어용 입력 신호로 하는 소자인 전계효과 트랜지스터(FET)가 개발됨 2) 구  조   - 접합형 트랜지스터 구조 2가지  - n형에 가운데 p형을 끼워 넣으면 NPN 접합형 트랜지스터가 된다.  - p형에 제어용 전극 n형..

Raspberry Pi에서 유량센서(YF-B10-S)로 유량계산하기

안녕하세요.   이전 글에서 유량센서(YF-B10-S) 제품에 대해서 확인해 보았습니다. 이번 글에서는 실제로 어떻게 값을 구할 수 있는지, Raspberry Pi를 이용해서 확인해 보겠습니다.     YF-B10-S(유량센서) 확인해 보기안녕하세요.  사이드 프로젝트로 유량파악해서 ModbusTCP로 전달이 필요하다는 요청을 받았습니다. 우선 유량을 확인할 수 있는 센서를 확인해 보겠습니다.  파이프 규격과 재질에 따라 가격과remnant24c1.tistory.com  1. 유량센서 테스트 환경  - 라즈베리 파이 CM4 - YF-B10-S 유량 센서 (하네스 SM 3핀 Female 커넥터 장착) - 10kΩ 풀업 저항 (NPN 출력 신호 안정화용) - 점퍼 와이어 혹은 연결 커넥터 하네스 커넥터(SM..

Raspberry pi CM4에 OpenCV 4.6.0과 Contrib 모듈 설치해보기

안녕하세요.   에지 컴퓨팅이라고 해서 단말 장치에서 가까운 위치에서 컴퓨팅을 하는 것을 말합니다. 그래서 라즈베리 파이가 단말장치가 되고 여기서 컴퓨팅, 분석까지 하는 것으로 생각해서 OpenCV를 설치해서 분석을 해보려고 합니다.  OpenCV 설치는 하단 을 따라 진행하였으며, OpenCV 4.5.4에서 에러가 났다고 글이 쓰여 있어서 그 상위 버전으로 테스트해 보았습니다. 그리고 Raspberry Pi OS는 Bullseye 32bit에서 초기화한 상태에서 내용 조금 수정하여 진행하였습니다. 만약 기존 버전이 설치되어 있다면  하단 을 참고해서 삭제 후 진행하시길 추천드립니다.  1. OpenCV 컴파일 전 필요한 패키지 설치 pi@raspberrypi:~ $ sudo apt updatepi@ra..

Raspberry Pi Pico와 기울기 센서(SZH-EK084)로 간단한 기울기 테스트하기

안녕하세요.  업체의 Push 스위치를 누르면 기울어지는데, 그때 상태를 알고 싶고, 비용을 최소화하고 싶다고 해서 찾아보다가 간단한 센서가 있어 확인해 보았습니다. 사실, 기울기 센서(Gyro Sensor), 접점 센서 등 적용할 수 있는 것들은 많이 있었습니다. 저가이기도 하고 어느 정도 사용가능할지 확인 차 테스트해 보았습니다.  1. SZH-EK084 모듈 특징과 크기  2. 테스트 방법  Raspberry Pi Pico와 기울기 센서(SZH-EK084)를 사용하여 간단하게 기울기를 테스트했습니다. 기울기 센서(SW-520D)는 작은 공이 움직이면서 회로의 접촉 여부에 따라 기울기를 감지하는 원리로 동작합니다. 이 센서를 사용하여 디바이스의 기울어짐을 감지합니다.   SZH-EK084 모듈은 기울..

아두이노 나노를 OrCAD 부품 파트로 임포트(IMPORT)하기 & Footprint 등록하기

안녕하세요.    OrCAD에서 회로 부품을 등록할 때 직접 그리는 방법과 부품회사에서 만들어 놓은 라이브러리를 사용하는 방법이 있습니다. CAD, PCB 부품도 DATASHEET를 보면서 직접 그릴 수도 있지만, 시간이 오래 걸립니다. 일반적으로는 부품회사에서 잘 만들어, 부품 사이트에 공유해 주고 있기 때문에 잘 이용하면 될 것으로 생각됩니다.   이번에는 아두이노 나노 부품을 회로도에 넣어보고 PCB Editor에 추가해 보도록 하겠습니다.   CAD용 부품(Parts)을 공유해 주는 사이트 몇 곳이 있지만 무료인 사이트 2곳 정도가 있어 공유해 드립니다.https://www.snapeda.com/https://www.ultralibrarian.com/  1. 부품 라이브러리를 다운로드   사이트에..

Raspberry Pi Pico W에서 BLE(Beacon) 작동 확인하기

안녕하세요.  이전 글에서 아두이노로 Beacon 만드는 것을 확인해 보았습니다. 정상적인 UUID와 데이터 형태를 사용한 것은 아니지만, BLE를 사용해서 광고 가능한 것을 확인해 보았습니다.   Arduino Nano iot 33를 이용한 센서 데이터 전송 Beacon 만들어 보기안녕하세요.  Arduino Nano iot 33을 가지고 Beacon과 유사한 하게 작동하는 것을 테스트해 보았습니다.그런데, 타업체 BLE 스캐너(BLE to WiFi(MQTT)) 제품이 있는데, UUID를 자체를 센서데이터로 보내는 것remnant24c1.tistory.com    이번에는 Raspberry Pico W를 이용해서 가능한지 테스트해 보았습니다. 관련해서 몇 가지 예제로 된 것들 중 하나를 선택해서 테스트..

Arduino Nano 33 IoT에 EEPROM 없는 기능을 FlashMemory로 대체하기

안녕하세요.  이전 글에서 Arduino Nano 33 IoT를 이용한 Beacon을 만들어 보았습니다.   Arduino Nano iot 33를 이용한 센서 데이터 전송 Beacon 만들어 보기안녕하세요.  Arduino Nano iot 33을 가지고 Beacon과 유사한 하게 작동하는 것을 테스트해 보았습니다.그런데, 타업체 BLE 스캐너(BLE to WiFi(MQTT)) 제품이 있는데, UUID를 자체를 센서데이터로 보내는 것remnant24c1.tistory.com   단순하게 아날로그 센서값을 보낼 때는 큰 문제가 없습니다. 그런데 가스센서 (EXSEN 제품)의 정확도를 높이기 위해 Auto Calibration(보정) 위한 데이터를 저장하고 불러오는 EEPROM 소스코드는 작동하지 작동하지 않..

Embedded/Arduino 2024.10.18

Arduino Nano iot 33를 이용한 센서 데이터 전송 Beacon 만들어 보기

안녕하세요.  Arduino Nano iot 33을 가지고 Beacon과 유사한 하게 작동하는 것을 테스트해 보았습니다.그런데, 타업체 BLE 스캐너(BLE to WiFi(MQTT)) 제품이 있는데, UUID를 자체를 센서데이터로 보내는 것을 확인했습니다.  BLE에 대해 정확하게 모르는 부분도 있고, BLE to WiFi(Scanner) 제품을 업체 제품과 연동 용도로 사용하는 것이 아니다 보니 업체에 직접 문의하지는 못하고 Arduino와 연동이 가능할까 해서 테스트해 보았습니다. 그래서 참고로 이렇게 하는 것도 있고, 이렇게 해도 되는구나 참고로 보면 어떨까 합니다.  1. BLE를 위한 제품 선택  Arduino로 간단하게 Beacon을 테스트를 할 때, HM-10과 같은 BLE 모듈을 연결해서 ..

Embedded/Arduino 2024.10.16