반응형

전체 글 764

[Python]OpenCV 카메라 모션 감지(Motion Sensor)(countNonZero, bitwise_and, threshold, absdiff)

목차 파이썬 OpenCV 움직임 감지 카메라 구현 방법 이번 시간에는 파이썬 OpenCV를 사용해서 컴퓨터의 내장 카메라를 구현하고 카메라에서 촬영하고 있는 화면의 움직임(Motion)을 감지하고 출력하는 코드를 작성할 예정입니다. 해당 프로젝트를 진행하기 위해서는 아래와 같은 절차가 필요 합니다. 1. PC 카메라 동작 2. 카메라에서 읽은 이미지(Image) Delay 줘서 Capture 하기 3. 이미지 파일을 회색으로 반전하기 4. 회색으로 반전된 이미지 간에 값 차이 구하기 : 움직임이 있을 경우 값 차이 발생 5. 무의미한 움직임 제거를 위해 문턱값(Therhold)으로 필터링(Filtering) 6. 카운팅 함수를 사용해서 움직임이 발생한 픽셀 값을 카운트함 7. 모션을 출력 모션 센싱은 위..

레인플로 카운팅이란? (피로 해석, 내구, Rainflow Counting, 히스테리시스, Pagoda, 4 Points)

목차 레인플로 카운팅(Rainflow Counting) 정의 Rainflow Counting은 시간 도메인에서 하중(Load)의 변화를 측정해서 피로도(Fatigue)의 사이클(Cycle)을 구해주는 알고리즘(Algorithm)을 의미합니다. 여기서 하중은 아래의 3가지 값을 의미 하는데 Rainflow Counting을 사용하기 위해서는 Stress(응력)으로 변환해서 사용 합니다. Stress Strain Force 응력 카운팅(Stress Counting)의 어려움 위 그림은 시간이 흐름에 따른 Stress(응력, 하중)이 일정한 주기로 Loading, Unloading 하는 그래프 입니다. 위 그래프는 일정 사이클로 10~-10MPa의 힘이 반복되는 간단한 그래프로 약 9 사이클의 Counting..

3상 소비 전력 전류 계산(3 Phase, Line, Watt, Ampere)

목차 3상 소비 전력, 전류 계산식(Calculation) 상전압(Phase Voltage)은 위 그림에서 V1, V2, V3 이고 선전압(Line Voltage)은 VL입니다. 앞으로 계산에서 상전압은 VP로 표기하고 선전압은 VL로 표기 합니다. I1, I2, I3은 선 전류로 아래 수식에서는 IL로 표기 합니다. 상간 전압과 선간 전압의 관계는 링크를 참조하시길 바랍니다.(https://scribblinganything.tistory.com/528) 위 링크를 참조하시면 선간 전압과 상간 전압 관계를 아래와 같이 구할 수 있습니다. 3상(3 Phases)의 소비 전력을 구하는 식은 아래와 같습니다. (유도는 아래에서 진행하겠습니다.) 일반적으로 발전소에서 들어오는 선간 전압 380V을 고려 할 경우..

Compressor 란?(콤프레샤, 수냉식, 공냉식)

목차 Compressor란? 우리나라말로는 콤프레샤, 컴프레셔 등 표기합니다. Compressor는 아래 그림에서 오른쪽에 위치한 기계적 장치입니다. 콤프레서의 역할은 가스를 입력 받아서 가스에 압력(Pressure)을 가해서 가스의 부피(Volumn)를 줄여 줍니다. 일반적으로 등산가는 초입에 에어건(Air Gun)으로 신발 밑창을 청소하는 도구를 보았을텐데 이러한 에어건은 Air Compressor로 제작한 도구입니다. Air Compressor도 Gas Compressor의 한 종류 입니다. 앞서 콤프레셔를 통해 가스의 부피를 줄여주는 기능에 대해 알아보았는데 부피를 줄여주는 목적은 가스의 온도를 떨어뜨려주는 역할을 합니다. 가스가 부피가 줄어들면서 액화되게 되게 부피가 줄어 듭니다. 이 과정에서 ..

여러가지공부 2022.06.09

[수영장 리뷰] 에어 바운스, 키즈풀 제품 리뷰

목차 키즐 풀장, 에어바운스 후기 (Kidz Pool, Air Bounce), 장단점 이번에 여름을 대비해서 저희는 멀리 안가고 마당에서 키즈 풀장/ 에어바운스를 구매해서 보내기로 했습니다. 사실 후기라고 할것도 없는 것이 설치도 간단하고 디자인 보고 결정한 것이라 특별히 리뷰 할 것도 없네요 ㅎㅎ 집이 시골이라 마당이 넓어서 위에 그림처럼 집에 마당에 설치했고 애들이 너무 좋아하네요 앞부분에 빨간 부분에 물 채워서 사용합니다. 옆부분은 애들이 점프하면서 뛸 수 있는 공간도 있습니다. 그리고 미끄럼틀이 있어서 미끄럼틀 타고 물속으로 뛰어 드는데 정말 재밌네요 워낙 장단점이 명확한 제품이라 장단점은 아래 정도로 정리될 수 있겠네요 ㅎ 장점 애들이 너무 좋아함 설치가 간편 여름철 최고 아이템 단점 공간이 많..

[Python] OpenCV PC 카메라 특정 색상만 출력하기 (Camera, BGR, HSV, inRange, bitwise_and)

목차 파이썬 카메라의 특정 색상만 보여주기 동작 방식 이번 포스트는 노트북에 카메라를 사용해서 화면의 빨간색(Red), 녹색(Green), 파란색(Blue)만을 구분해서 해당 색상만을 보여주는 화면을 각 각 띄울 예정입니다. 총 4개의 윈도우가 화면에 나오고 하나는 원본 나머지는 Red, Green, Blue 윈도우 입니다. 이를 구현하기 위해서는 아래의 과정이 필요 합니다. 1. 카메라 동작 구현 2. RGB 색상의 범위 결정 (HSV 사용) 3. RGB 색상의 임계값을 사용해서 마스크 생성 4. 마스크를 원본 화면에 적용 5. 화면 출력 우선 코드 작성에 앞서 2번 단계 "RGB 색상의 범위 결정"은 선행되어야 합니다. 아래 목차에서 확인하도록 하겠습니다. RGB 색상의 범위 결정 빨간색(Red), ..

토크란? 토크 파워, 마력, 모멘트 수식 정리(Torque, Horse Power, Moment)

목차 토크 란? (Torque Definition) 토크는 회전을 시키려는 성향의 정도를 의미하는 일종의 회전력입니다. 물체에 힘이 작용하면, 그 물체가 회전하는 원인이 되는 벡터(vector) 물리량 일반적으로 힘은 직선운동을 의미하지만 토크는 회전운동을 의미합니다. 토크를 다른 표현으로 모멘트(Moment) 또는 돌림힘이라고 표현 합니다. 위 그림처럼 토크(T)는 벡터 값이므로 방향성을 가집니다. 그림은 오른쪽 스크류(Screw) 법칙 처럼 엄지 손가락 방향(위쪽)이 토크의 방향이 됩니다. 수식은 T = r x F 입니다. 길이 r [m] 에 힘 F[N] 이 곱해진 [Nm]이 토크의 단위가 됩니다. 토크 파워 란? (Torque Power), 일률(Power), 마력(Horse Power), 모터 출..

여러가지공부 2022.06.03

Butterworth(버터워스) 필터란? 정의, 특징, 수식, 예제 구현

목차 Butterworth(버터워스) 필터란? 정의, 수식 Butterworth Filter는 시간 도메인에서 측정한 결과에 적용되는 필터이고 원하지 않는 주파수 영역의 값을 필터 처리할 때 사용 합니다. 위 그림은 Butterworth, Chebyshev, Bessel, Elliptic 필터의 주파수 특성을 비교한 그림입니다. Butterworth 필터(Filter)는 그림과 같이 통과 대역이 평평하고 값이 떨어지는 부분을 스커트(Skirt)라고 부르는데 스커트가 Chebyshev 필터에 비해 완만합니다. 아래 수식은 Butterworth 저주파 통과(Low Pass filter)에 관한 수식 입니다. Butterworth(버터워스) 필터 특징 버터워스 필터의 특징은 아래와 같이 정의할 수 있습니다. ..

이동 평균이란? 종류, 목적, 수식 (Moving average, mean, Running, Simple)

목차 이동 평균 정의 및 목적 이동 평균이란 영어로 Moving Average라 하고 연속된 측정 값의 특정 크기의 Window를 이동하면서 평균을 내는 방식을 의미합니다. 이동 평균법을 사용하는 이유는 크게 아래와 같이 2개의 이유가 있습니다. 데이터의 전체에 대한 평균으로 실시간의 변화 경향을 파악하기 힘듦 데이터의 변화량(노이즈, Noise) 이 클 경우 이를 부드럽게(Smooth)하게 만들어 줌 (아래 그림 참조) 이동 평균 법 종류(Type) 단순 이동 평균 (Simple Moving Average) 단순 가중 이동 평균 (Simple Weighted Moving Average) 지수 이동 평균 (Exponential Moving Average) / 지수 가중 이동 평균 (Exponential ..

[내구] 변형률 정의, 수식, 단위 (수직,전단(shear), Strain, Deformation, Engineering)

목차 변형률이란? (Strain, Strain Rate) 응력(Stress)에 의해 재료에 변형(Deformation)이 발생하고 변형의 정도를 변형률이라고 함 변형의 종류는 크게 아래와 같이 2가지로 분류됨 Elastic Deformation (탄성 변형) Plastic Deformation (소성 변형) 탄성변형은 응력이나 하중이 없어지면 재료가 원래 모양으로 돌아가는 변형이고 소성 변형은 응렬/하중이 없어져도 재료가 원래 형상으로 돌아가지 못하고 영구적(Permanently)으로 변형되는 상태를 의미 합니다. 변형률 단위와 수식 변형률은 앱실론(epsilon)으로 표기하고 그리스문자 ε 를 사용 합니다. 수식은 아래와 같이 변형된 길이의 변화량을 원래 길이로 나눠준 값입니다. ε 앱실론의 단위는 [..

[Python] 정규표현식으로 파일(XML, txt, html) 내용 검색(필터)하기 (re, match, compile, finditer)

목차 이번 포스트에서는 정규표현식(Regex)을 사용해서 텍스트 파일이나 웹문서(html, xml) 파일을 검색(search)해서 필터링(filtering) 하는 방법에 대해 알아보겠습니다. 파일 검색에 필요한 정규표현식 함수 파일 검색에 사용할 정규표현식 함수는 아래와 같습니다. re.compile(정규표현식) re.finditer(compile 출력값, 문장) compile은 정규표현식을 입력으로 받습니다. 그리고 출력된 값을 변수에 저장하고 finditer 함수의 입력값으로 넣어주면 두번째 인자값인 문장에서 해당 정규표현식에 맞는 조건을 찾고 있으면 검색 결과를 출력 해줍니다. 실제 사용 방법은 아래 예제를 통해 쉽게 이해하실 수 있습니다. 미세먼지 데이터파일(XML) 검색하기 예제 예제를 실행하기..

[nCode] ENBW(equivalent noise bandwidth) 란?

목차 실습에 사용하는 소프트웨어는 nCode라는 제품으로 국내에서는 팜테크를 통해 구매하실 수 있습니다. (https://www.famtech.co.kr/main/main.php) ENBW(equivalent noise bandwidth) 란? 가속도 센서(Accelerometer)를 사용해서 측정한 가속도 값을 아래와 같이 시간 도메인으로 확인할 수 있습니다. 해당 값을 FFT(Fast Fourier Transformer) 변환하여 주파수 도메인의 값으로 출력 하려고 하는데 아래와 같이 FFT 설정 화면에서 "ENBW Correction" 이라는 항목을 확인 할 수 있습니다. ENBW란 버퍼에서 발생하는 Discontinuity를 제거하기 위해 사용하는 윈도우(Window)를 주파수 성분에서 봤을 때 ..

[nCode] FFT 출력, 평균, Window, Buffer, Overlap 이란?

목차 분석 도구는 nCode GlyphWorks 를 사용해서 진행합니다. 해당 소프트웨어 구입은 국내에서 팜테크사를 통해서 구매 가능 합니다. (https://www.famtech.co.kr/main/main.php) 이번 포스트에서는 가속도 센서(Accelerometer)에서 측정한 G 값의 시간 도메인 값을 주파수(Frequency)로 변환하면서 사용하는 용어 및 설정에 대해 알아보겠습니다. 주파수 변환은 FFT(Fast Fourier Transformer)로 진행합니다. 전체 구조는 위와 같습니다. 왼쪽에 윈도우창은 시간 도메인에서 측정한 가속도(Acceleration) 값 입니다. 가운데 2개의 창은 주파수 변환 박스로 생각하시면 됩니다. 그리고 오른쪽 두개 윈도우는 주파수 변환을 거쳐서 나온 출..

[Python] RE 모듈로 미세먼지 데이터 필터링하기(정규표현, 특수문자)

목차 미세먼지(PM10, PM25) 정보 가져오기 앞서 포스트에서 미세먼지 정보를 공공 데이터 포털에서 API를 사용해서 가져오는 방법에 대해 알아보았습니다. (https://scribblinganything.tistory.com/530) 상세 내용은 링크를 통해 확인하시면 됩니다. 결과는 아래와 같이 나왔습니다. 이번 포스트는 아래 결과를 사용해서 파이썬에서 제공하는 정규표현 함수 re 함수를 사용해서 원하는 결과를 가져오는 방법에 대해 알아보겠습니다. 미세먼지 결과>> 00 NORMAL_CODE 1 72 0.003 0.4 2 27 2 24 서울 1 2 2022-05-30 08:00 1 0.019 중구 1 0.040 #####생략##### 100 1 40 정규표현라이브러리 RE 기본 사용법(REGEX)..

[Python] 공공데이터포털에서 미세먼지 데이터 가져오기(크롤링, fine dust, API, 파이썬)

목차 이번 시간에는 파이썬을 사용해서 공공데이터 포탈의 API에 접속해서 미세먼지 정보를 가져오는 방법에 대해 알아보겠습니다. API(Application Programming Interface) 란? API란 데이터회사나 웹서버(Web server) 회사에서 제공하는 리모콘과 같은 것입니다. 사용자는 리모콘의 동작 방법을 이해하지는 못하지만 리모콘을 통해서 웹 서버 회사가 제공하는 데이터를 손쉽게 접근할 수 있게 되는 것입니다. 여기서 공공데이터 포탈은 API를 통해 미세 먼지 정보를 손쉽게 제공 합니다. 공공데이터포탈에서 API 요청하기 우선 구글에서 공공데이터포털로 검색하거나 https://www.data.go.kr/ 에 접속합니다. 정부기관 홈페이지므로 go.kr로 끝나는지 꼭 확인하시길 바랍니다..

[전력] 역률이란? VA와 Watt차이 (유효전력, 무효전력, 소비전력)

목차 역률이란? (Power Factor) 발전소에서 전원을 공급할때 발전방식과 효율에 의해 AC (교류)로 전달 됩니다. 아래 그림의 빨간색 선과 같이 전압이 발전소에서 가정으로 공급된다고 생각하겠습니다. 여기서 저항과 같은 일반적인 수동 소자(Passive)를 사용하면 전압(Voltage)과 전류(Current)는 동일 위상을 가집니다. 즉, 빨간색 선과 동일한 사인파가 전류에서도 생깁니다. 여기서 크기만 저항 사이즈에 따라 줄어들게 됩니다. 하지만 많은 전자 제품은 많은 캐패시터(Capacitor)나 인덕터(Inductor)와 같은 능동(Active) 소자로 구성되어 있습니다. 능동 소자의 특징은 아래 2가지만 기억하겠습니다. 1. 인덕터 부하를 통과하면 전류는 전압보다 90도 느려진다. 2. 캐패..

[전력] 상간 전압, 선간 전압 (벡터 계산, 루트3, Phase, Line, Voltage)

목차 상간 전압(Phase Voltage)이란? 선간 전압(Line Voltage)란? 장비를 설치하다 보면 공급 전력에 대해 얘기를 해야합니다. 여기서 전력이 root3에 의해 계산 되는 것을 보고 어떻게 전력이 root(3)을 곱해서 나오는지를 알아보는 과정에서 상간 전압, 선간 전압에 대해 알아보게 되었습니다. 우선 이번 포스트에서는 상간 전압, 선간 전압에 대해 알아보고 다음 포스트에서는 역률에 대해 알아보고 최종적으로 3상 전원에서 전력 계산하는 방법에 대해 알아보겠습니다. 위 그림과 같이 발전소에서 전원을 생산하면 발전소의 모터 효율과 동작에 의해 3개의 라인으로 전원을 공급하게 됩니다. 그림의 왼쪽 부분이 발전소 부분이고 빨간색, 파란색, 녹색 발전기 각 각에서 전원을 만들어 냅니다. 발전기..

[아두이노] 파이썬 threading timer 로 주기적으로 LED 켜고 끄기(타이머, 인터럽트, Interrupt)

목차 [Arduino] Python threading timer 함수 이번 포스트에서는 파이썬의 스레딩(Threading)의 타이머(timer) 함수에 대해 알아보겠습니다. 타이머의 말 자체가 알려 주듯이 타이머는 정해진 시간(Time)이 지났을 때 사용자가 원하는 동작을 하게 도와주는 함수 입니다. Syntax는 아래와 같습니다. 인스턴스명 = threading.Timer(타이머시간, 실행시킬함수명) 인스턴스명.daemon = True 인스턴스명.start() 입력 값에 타이머 시간은 시간 단위이고 밀리초 (mili second)는 소수점 형식으로 표기하시면 됩니다. 실행 시킬 함수 명은 타이머가 시간이 되었을 때 구현할 함수 명을 입력 하시면 됩니다. 리턴 값을 인스턴스(Instance)에 입력 하시..

[아두이노] 파이썬 threading 함수로 통신하기 (threading, target, daemon

목차 [Arduino] 파이썬 threading 함수 사용법 thread 는 실이라는 의미가 있습니다. 파이썬(Python)에서 threading(쓰레드, 드레딩) 이란 CPU 칩이 여러개의 실로 구성되어 있고 한 줄 한줄 다른 일을 처리할 수 있는 것입니다. 일반적으로 코드를 작성하면 위에서 아래로 순차적으로 진행되는 데 하나의 작업이 진행되는 동안 다른 작업을 실행할 수 없습니다. 하지만 thread 를 사용하면 2개 3개 멀티플(Multiple) 한 동작을 동시에 할 수 있게 됩니다. threading 함수에서 사용하는 주인자는 2개 입니다. target : threading으로 동작 시킬 함수를 연결합니다. daemon : True 일 경우 메인 프로그램이 종료 시 threading 함수도 종료 ..

[아두이노]파이썬 Pyserial로 아두이노 문자, 실수, 정수 값 읽기(수신하기, 송수신, 통신)

목차 Arduino에서 보낸 값 컴퓨터에서 읽기: 실행 방법 앞서 포스터에서 PC에서 Pyserial로 명령을 보내었고 아두이노에서 해당 명령을 읽어서 LED를 켰다가 끄는 예제를 구현하였습니다. (https://scribblinganything.tistory.com/524) 이번 포스트에서는 아두이노에서 주기적으로 문자열(String), 정수(Integer), 실수(Float) 값을 컴퓨터로 송신하고 (USB 케이블로 시리얼통신 사용) 노트북은 해당 값을 읽어서 출력하는 예제를 실행합니다. 파이썬(Python)에서 송신하는 메세지를 출력하기 위해서는 파이썬에서 아래의 함수 사용이 필요 합니다. 1. readline 함수 : "\n" 엔터키(다음줄)가 들어올때까지의 버퍼에 저장된 데이터를 읽어 옵니다. ..

반응형