scribblinganything의 등록된 링크

키자드에 등록된 총 694개의 포스트를 확인하실 수 있습니다.

Tistory

미분 방정식을 사용하는 이유? (Why need Differential equation?)

목차 해당 포스트는 유투브 혁펜하임 강의 내용을 참조해서 만들었습니다. 물리계에서의 미적 방적식 위 그림과 같이 차가 왼쪽으로 이동한다고 생각해보겠습니다. 이때 발생하는 힘은 위와 같이 앞으로 이동하기 위해 운전자가 넣은 힘 f(t)와 차량에서 발생하는 마찰력 ρv(t)이 있습니다. 마찰력은 마찰계수 로우(rou)와 속도에 비례해서 증가합니다. 운전자가 넣은 힘과 차량에서 발생하는 마찰력을 빼면 뉴턴(Newton)의 2법칙 운동의 법칙에 의해 ma 무게와 가속도에 비례한 힘의 값만 남습니다. 이를 수식으로 전개하면 아래와 같습니다. 위 수식에서 입력 힘의 값 f(t)를 입력으로 생각해서 x(t)로 변환하고 출력 y(t)으로 속도 값 v(t)을 생각해서 변환하면 아래와 같습니다. 즉, 출력과 입력의 관계가..

Tistory

미분방정식(Homogeneous, Particular, LCCDE)

목차 해당 포스트는 유투브 혁펜하임을 통해 공부하여 작성하였습니다. 미분방정식(Homogeneous, Particular, LCCDE)이란? 앞서 포스트에서 왜 미분방정식을 사용하고 현실 세계에서 어떻게 적용되는지에 대해 알아보았습니다. 이번 시간에는 현실 세상(물리, 전자)에서 나오는 미분방정식 형태인 LCCDE(Linear Constant Coefficient Differential Equation)에 대해 알아보고 해당 미분 방정식의 근을 구하는 방법에 대해 알아 보겠습니다. LCCDE(Linear Constant Coefficient Differential Equation)을 수식으로 전개하면 위와 같습니다. 입력과 출력 값이 미분형태로 표현이 되고 각 미분은 시간에 상관 없는(Constant C..

Tistory

[Python]flask와 sqlite(데이터베이스) 연결하고 웹화면에 띄우기

목차 파이썬 flask, SQLite 연결하기(기본 준비) 앞서 시간에는 flask 사용 방법과 SQLite 사용 방법에 대해 살펴 보았습니다. 이번 포스트는 flask로 웹 서버(Web server)를 구동하고 해당 웹서버를 통해서 SQLite DB(Data base)에 접급하여 값을 불러오는(읽어오는) 방법에 대해 알아보겠습니다. 언제나 그렇듯이 코드는 최대한 단순하게 작성해서 어떻게 사용하는지에 대해서만 알아보겠습니다. 우선 코드를 실행하기 위해 아래와 같은 준비가 되어 있어야 합니다. 1. DB 파일 생성하기: 아래와 같이 employee라는 테이블(Table)로 SQLite Database를 형성합니다. 테이블 생성 및 값 넣는 방법은 https://scribblinganything.tistor..

Tistory

[라즈베리파이] flask와 sqlite 연동해서 데이터베이스 값 웹 출력

목차 [라즈베리파이] flask와 sqlite 연동해서 데이터베이스 값 웹 출력 앞서 라즈베리파이(Raspberry Pi)를 통해 웹서버를 운용했고 flask를 사용해서 웹브라우져(Web Browser)로 확인해보았습니다. 이번 시간에는 SQLite 데이터베이스(DB, Database)를 사용해서 테이블의 값을 읽어서 웹 하면에 출력하는 예제를 실행해 보겠습니다. 사실 이번 내용은 이미 윈도우 환경(Window OS)에서 구현해보고 실행도 해보았습니다(https://scribblinganything.tistory.com/619). 아무래도 라즈베리파이(Raspberry Pi)에서 구현하고 실행하는 것은 윈도우에 비하면 불편하기 때문에 윈도우에서 먼저 검증을 하고 확인하는 작업을 라즈베리파이(Raspber..

Tistory

[Python] Sqlalchemy로 데이터베이스 읽기, 조건문 설정하기

목차 파이썬 Sqlalchemy로 Database 값 전체 불러오기 SQLite의 데이터 값 전체 선택은 select 함수로 함수 니다. 그리고 이를 실행시키고 DB값을 출력 하면 됩니다. 아래 예제를 통해 쉽게 이해해 보겠습니다. 예제의 DB는 앞서 포스트에서 미리 만들어놓은 아래 DB값을 사용하겠습니다.(아래 테이블 참조) 예제 코드>> from sqlalchemy import create_engine, MetaData, Table, Column, Integer, String engine = create_engine('sqlite:///sales.db', echo = True) meta = MetaData() company = Table( 'sales', meta, Column('id', Intege..

Tistory

[Python] 지수 함수, 댐핑 사인 그래프 그리기(matplotlib, exponential, Damped Sine)

목차 파이썬 지수 함수 그래프 그리기(matplotlib, Exponential Function Graph) 이번에는 지수 함수(Exponential function)을 파이썬(Python) Matplotlib 라이브러리와 numpy 라이브러리를 사용해서 그리는 방법에 대해 알아보겠습니다. 코드는 단순하기 때문에 아래 예제를 통해 쉽게 알아보겠습니다. 예제 코드>> import matplotlib.pyplot as plt import numpy as np x = np.linspace(-0.2,2,10000) y = np.exp(-3*x) #그래프 설정 fig = plt.figure() plt.plot(x,y, 'b-') plt.title('Exponential Wave', color='b') plt.xl..

Tistory

[라플라스 변환] Laplace Transform 이란? 기본 개념 익히기

목차 해당 내용은 Michel van Biezen 이란 분의 유투브를 통해 공부해서 작성합니다. [라플라스 변환] Laplace Transform 이란? 갑자기 라플라스(Laplace transform)의 원리가 궁금해져서 생각을 정리할 겸 포스트를 작성하게 되었습니다. 라플라스 변환의 기본 정의는 시간 도메인(Time domain)의 함수(Function)를 복소수 주파수 도메인(Complex Frequency Domain)의 함수로 변환해주는 수학적인 장치(Tool) 입니다. 해당 정의에 대한 증명 및 전개는 향후 포스트에서 하나씩 작성하겠습니다. 이번 시간에는 라플라스 변환의 정의 및 특성에 대해 살펴 보겠습니다. 라플라스 변환(Laplace transform)을 다시 정의 하면 시간 영역에서의 미..

Tistory

[라플라스변환] 변환 공식, Step Function 변환 예제(Laplace, 스텝 함수)

목차 해당 내용은 Michel van Biezen 이란 분의 유투브를 통해 공부해서 작성합니다. [라플라스변환] 수학적 공식 이번에는 라플라스 변환(Laplace Transform)의 수학적 공식/정의(Mathematical definition)에 대해 알아보겠습니다. 위와 같이 f(t) 함수는 변환을 거쳐서 라플라스 s 형태로 표현 됩니다. 즉, 기존의 시간 도메인(Time Domain)에서 주파수 도메인(s, Frequency Domain)으로의 변환을 의미 합니다. s는 시그마와 오메가의 합 형태로 표현 됩니다. 변환 공식은 위와 같이 exponenetial 오일러 지수를 곱해서 적분하는 형태입니다. 여기서 중요한 부분은 적분을 0시간에서 진행하는 점입니다. 이는 모든 현상을 0의 지점부터 신호를 ..

Tistory

[라즈베리파이] flask 기본 웹 서버 실행하기(외부에서 접속해보기)

목차 [라즈베리파이] flask 기본 웹 서버 실행하기 말 그대로 아래의 파이썬(Python) Flask 기본 코드를 실행하고 외부의 윈도우(Window) PC에서 해당 IP로 접속하는 시험을 진행하겠습니다. 실행할 코드는 아래와 같습니다. 예제 코드>> from flask import Flask web_gui = Flask(__name__) @web_gui.route('/') def hello_fnc(): return 'Hello' if __name__ == "__main__": web_gui.run(host='0.0.0.0', debug=True, port=9999) flask 실행에 대한 내용은 블로그 flask 카테고리에 자세히 설명 되어 있으니 참조 하시면 됩니다. 1. 예제 코드를 아래와 같이..

Tistory

연속시간 컨볼루션이란?(Continuous Time Convolution)

목차 해당 내용은 혁편하임 신시 강의를 참조해서 작성하였습니다. 연속 시간의 임펄스(Impulse) 함수로 표현하기 앞서 이산 시간(Discrete time)에서의 임펄스 함수로 컨볼루션(Convolution)을 표현하는 방법에 대해 알아보았습니다. 연속시간(Coninuous time)에 대해 컨볼루션을 표현하기 위해서는 연속 시간에서의 임펄스 함수가 필요 합니다. 연속시간에서의 임펄스 함수는 위와 같이 박스 형태로 표현되고 델타()가 0으로 가까워 지면서 이산 시간의 임펄스 함수처럼 선에 가깝게 변하게 됩니다. 위와 같이 x(t) 함수를 임펄스 막대기로 표기가 가능 합니다. x(t)는 위와 같이 수식으로 정리될 수 있습니다. 여기서 델타(δ)에 델타(Δ)를 곱합 값은 사각형의 넓이가 아닌 높이 정보입..

Tistory

Memoryless, Causal, BIBO System의 정의(메모리리스, 인과, 유계 입력 출력, Stability)

목차 본 포스트는 유투브 헥펜하임의 내용을 참조로 작성하였습니다. Memoryless 시스템이란? 앞서 임펄스 응답(Impulse Response) h(t)에 대해 알아보았습니다. h(t)는 0초에서 임펄스 입력 값 δ(t)이 들어갔을 때의 응답이 었습니다. Memoryless(무기억) 시스템이란 임펄스 입력이 들어가고 즉각 반응하는 시스템을 의미 합니다. 예를 들어 스위치를 누르면 LED가 바로 켜지는 시스템을 무기억 시스템으로 볼 수 있습니다. 반대로 입력이 출력의 과거나 미래에 영향을 준다면 Memoryless 시스템이 아닌 것입니다. 위 그림과 같이 2번 응답만이 Memoryless 응답입니다. 1번과 3번에 응답이 있다면 해당 응답은 Memoryless 시스템이 아닙니다. Casual 시스템이란..

Tistory

[Python] Sine파 그래프 그리기(Matplotlib, 여러개 사인파 한그래프 표기)

목차 파이썬 Sine파 그래프 그리기 우선 파이썬의 Matplotlib으로 사인파형(Sinusoidal waveform)을 그리는 기본적인 코드에 대해 알아 보겠습니다. 설명은 아래 예제 코드로 진행하겠습니다. 예제 코드>> import matplotlib.pyplot as plt import numpy as np x = np.linspace(-np.pi,np.pi,100) y = np.sin(x) #그래프 설정 fig = plt.figure() plt.plot(x,y, 'b-') plt.title('Sine Wave', color='b') plt.xlabel('X') plt.ylabel('Sin(x)') plt.grid() plt.axhline(y=0, color='k') plt.axvline(x=0,..

Tistory

[Python] SQLAlchemcy란? 테이블 생성, 데이터 입력(SQLite, ORM)

목차 파이썬 ORM이란? SQLAlchemcy 란? ORM(Object Relational MApper)이라는 이름에서 알 수 있듯이 모든 기능이 객체(Object)로 동작합니다. 즉, 객체 내의 사용법만 알면 쉽게 Database를 생성, 수정, 삭제가 가능 합니다. 참고로 ORM은 서로 연결되지 않는 시스템 (여기서는 SQLite 데이터베이스와 파이썬)을 Mapping 시켜주는 객체 언어 입니다. 앞서 SQLite를 명령어를 직접 입력해서 파이썬으로 DB를 생성하는 방법에 대해 알아보았습니다. SQLAlchemy는 SQL 툴킷으로 ORM(Object Relational MApper)입니다. 파이썬 라이브러리로 내부의 클래스를 사용해서 쉽게 데이터베이스에 맴핑(Mapping)이 가능 합니다. SQLAl..

Tistory

라그랑주 보간법, 2 , 3 points 도함수 구하기(미분, derivative, differentiation, Lagrange)

목차 도함수(Derivative) 구하기 도함수는 간단하게 함수를 미분하여 나온 미분 함수 입니다. 일반적인 미분법은 2개의 포인트(2 Points)를 사용해서 구합니다. 2 Points 는 다시 크게 Forward와 Backword로 구분됩니다. 위 그림과 같이 h 값이 양수이고 오른편에서의 기울기를 가져오는 방법이 forward 입니다. 수식은 위와 같이 표기 합니다. Backward 2 Points는 위 그림에서 왼편에서 시작된 값으로 h가 음수를 사용해서 0에 가깝게 가져와서 기울기를 가져 옵니다. 수식은 위와 같이 표기 합니다. 라그랑주 보간법 , 3 points 도함수 구하기 라그랑지 보간법(Lagrange Interpolation)의 수식에 대해 여기서는 상세하게 다루지 않습니다. 다만 3 ..

Tistory

[Python] SQLite 데이터 하나 쓰기, 여러개 쓰기 삭제하기 조건걸기(Write, Delete)

목차 파이썬 SQLite DB 하나 쓰기, 여러개 쓰기 앞서 데이터베이스에 내용을 입력하는 방법에 대해 알아보았지만 복습 차원에서 정리하면 아래와 같습니다. INSERT INTO 테이블명 VALUES(입력값) 여러개 값을 입력할 경우 리스트로 값을 입력하고 sqlite 코드는 executemany로 시행합니다. sqlite 명령어는 하나의 입력 방식과 동일 합니다. 실제 아래 예제를 통해 쉽게 이해해 보겠습니다. 예제 코드>> import sqlite3 from sqlite3 import Error def connection(): try: con = sqlite3.connect('test2.db') return con except Error: print(Error) def create_table(con)..

Tistory

컨볼루션이란? (LTI 시스템, 임펄스 신호 응답, Convolution, Impulse)

목차 이번 포스트는 혁펜하임 신시 컨볼루션 내용을 참조해서 작성하였습니다. 콘볼루션(컨볼루션, Convolution)을 이해하기 위해서는 LTI와 Impulse 신호와 응답에 대해 이해하여야 합니다. LTI는 앞 포스트에서 설명하였으니 참조 하시길 바랍니다. Impulse 신호 및 응답 임펄스 신호는 이산(Discrete) 신호와 연속(Continuous) 신호에 따라 아래와 같이 표현 됩니다. 이산 임펄스(Impulse) 신호 연속 임펄스(Impulse) 신호 위와 같이 Impulse 신호에 대해 정의를 내릴 수 있습니다. 그리고 Impulse 신호는 적분시 1이 나옵니다. 해당 특징은 아래와 같이 수식으로 정리 됩니다. 임펄스(Impulse) 응답이란? Impulse 응답이란 말 그대로 Impulse..

Tistory

[Python] SQLite, CSV 쓰고 읽기, DB에 옮기기

파이썬 CSV 쓰기 csv 작성은 csv.writer 함수로 실행합니다. 아래 예제를 통해 쉽게 이해해 보겠습니다. 예제 코드>> def wr_csv(data): with open('data.csv', 'w', newline='') as file: writer = csv.writer(file) writer.writerows(data) 위와 같이 함수를 작성해서 실행합니다. data.csv 라는 파일을 만들고 입력할 값을 여러개의 list 값을 묶어서 입력 합니다. 한줄만 입력하고 싶을 경우 writerow 함수와 리스트 값 하나만 입력 하면됩니다. 파이썬 CSV 읽고 데이터베이스에 쓰기 CSV 읽기 방법도 쓰기와 유사합니다. 이번에는 csv.reader 함수를 사용해서 실행하겠습니다. 읽은 값은 SQLi..

Tistory

[Python] 내장 함수란? 확인 방법 (아래 밑줄 2개, underscore, __init__, __repr__)

목차 파이썬 내장 함수란? 파이썬이란 객체 지향 언어(OOP, Object Oriented Programming)으로 변수 선언이나 내부에 함수들은 실제 클래스로 이루어져 있습니다. 그리고 각 클래스에는 메소드(Method)라는 함수로 특성 기능을 수행할 수 있습니다. 여기서 언더스코어(Underscore, 밑줄) 두 개로 표기된 함수를 가끔 보신적이 있습니다. 이는 클래스가 가진 자체 내장 함수라고 생각하시면 됩니다. 예제 코드>> var_a = 7 print(type(var_a)) print(repr(var_a)) 결과>> 7 위에 예제 코드에서 var_a를 7이라는 정수(integer)로 선언 합니다. 그리고 type으로 확인 결과 int 라는 클래스 임을 알 수 있습니다. 그리고 Class int..

Tistory

[Python] SQLite 데이터베이스에 값 입력하기, 변경하기(Insert, Update)

목차 파이썬 SQLite 데이터베이스에 값 입력(Insert) 앞서 포스트에서 SQLite를 사용해서 DB를 생성하고 테이블을 만드는 방법에 대해 알아보았습니다(https://scribblinganything.tistory.com/596). 이번 포스트는 앞서 생성한 테이블에 내용을 입력하는 방법에 대해 알아보겠습니다. 데이터 입력을 위해서 파이썬 함수 execute로 SQLite 명령을 실행하고 commit으로 변경 내용을 저장합니다. SQLite에서 데이터 입력은 INSERT INTO 테이블명 으로 실행 합니다. 상세 내용은 아래 예제를 통해 이해해 보겠습니다. 예제 코드>> import sqlite3 from sqlite3 import Error def connection(): try: con = ..

Tistory

[Python] SQLite DB불러오기 (Select, Fetch)

목차 파이썬 SQLite DB불러오기 앞 포스트에서 테이블을 만들고 데이터를 저장하는 방법에 대해 알아보았습니다(https://scribblinganything.tistory.com/597). 이번 포스트는 저장된 DB를 읽는 방법에 대해 알아보겠습니다. 우선 SQLite에서 모든 데이터를 부를 때 아래와 같은 명령어를 사용합니다. SELECT * FROM 테이블명 테이블에 있는 모든 데이터(별표)를 선택하겠다는 의미 입니다. 그리고 fetchall 함수로 데이터를 불러 옵니다. 아래 파이썬 예제로 쉽게 이해해 보겠습니다. 현재 SQLite 데이터 베이스에는 아래와 같은 정보가 포함되어 있습니다. 예제 코드>> import sqlite3 from sqlite3 import Error def connect..

Tistory

LTI(Linear Time Invariant)란? 특징과 문제 풀이

목차 LTI(Linear Time Invariant)란? LTI란 선형적(Linear)이고 시간에 불변(Time Invariant)한 시스템을 의미 합니다. 선형이란 아래의 두 특성을 가진 성질을 의미 합니다. Scaling Additivity 위 두가지 성질을 합쳐서 Superposition(중첩)의 성질이라고 부릅니다. 시불변(Time Invariant)란 시간에 관계없이 특정 입력에 대해서 동일 출력이 나옴을 의미 합니다. LTI 수식으로 풀이 하기: 선형성 검증 중첩(Superpostion) 성질에 대해 정리해보겠습니다. 위와 같이 f라는 시스템에 x1, x2입력을 넣고 a1, a2 배수를 했을 때 출력도 동일하게 배수와 합으로 표현되면 선형 시스템이라고 부릅니다. 선형 증명 예제1>> 위 시스템..

Tistory

[Python] SQLite 테이블 if not 으로 검색 후 생성, 삭제(drop, delete)

목차 SQLite에 대한 기본적인 내용을 확인하고 싶으시면 블로그에 데이터베이스(Database)의 SQLite 카테고리에서 처음부터 확인하시면 됩니다. 파이썬 SQLite 테이블 검색 후 생성하기 SQLite 구문에서 if not exists 을 사용하면 해당 내용이 없을 경우 특정 명령을 실행하게 할 수 있습니다. 명령어 if not exists 찾는내용 아래 예제는 특정 테이블을 찾고 없을 경우 6개의 테이블을 새로 생성하는 예제 입니다. 예제 코드>> import sqlite3 from sqlite3 import Error def connection(): try: con = sqlite3.connect('test0.db') return con except Error: print(Error) def..

Tistory

에너지 신호와 전력 신호 구분법(Energy, Power)

목차 이번 포스트는 유투브 채널 혁펜하임의 신시 강의 내용을 참고로 작성하였습니다. 강의는 아래 링크를 통해 확인할 수 있습니다.(https://www.youtube.com/watch?v=Zy4QRMD6mC0&list=PL_iJu012NOxcDuKgSjTKJZJd3bQtkAyZU&index=7 ) 에너지 신호, 전력 신호 수식(Equation) 에너지(Energy)란 전력/파워(Power) 값을 시간에 따라 적분한 값입니다. 전기 분야나 기계 분야 등 세상에 존재하는 파워를 살펴 보면 제곱의 형태로 표현 됩니다. 예를 들어 전력(Electric Power)는 전류의 제곱이거나 전압의 제곱에 비례합니다. 그래서 파워 값은 제곱의 형태로 표현 됩니다. 에너지 신호란 위에 에너지 수식이 수렴하면 에너지 신호라..

Tistory

[라즈베리파이] 웹 서버(Web Server)란? 아파치(Apache) 설치 및 실행하기

목차 웹 서버(Web Server)란? 웹 서버는 Client가 웹 브라우져(Web Browser)를 통해 접속해서 데이터를 요청하면 해당 요청에 맞춰 제공해주는 인터넷 프로그램입니다. 클라이언트(Client)와 서버(Server) 사이는 HTTP 라는 정해진 프로토콜(Protocol)로 통신 합니다. 아래는 라즈베리파이(Raspberry Pi)에서 가장 많이 사용하는 대표적인 웹 서버 소프트웨어 입니다. Apache Lighttpd nginx 이번 포스트에서는 Apache를 설치해서 사용해볼 예정입니다. 사용자도 많고 다양한 언어를 지원하기 때문에 사용이 용이 합니다. 서버를 운용하기 위해서는 웹 응용 프레임워크로 코드를 작성해야 하는데 대표적인 프로그램 언어는 아래와 같습니다. Java Javascr..

Tistory

CGI란? 간단한 예제 리눅스 라즈베리파이에서 실행하기(파이썬, Python, linux, rasberrypi)

목차 CGI란? CGI란 Common Gateway Interface의 약자로 HTML 문서의 수동적인 정보 전달 보완을 위해서 만들어진 동적 변환 방식으로 CGI는 동적으로 동작하기 위해 정한 표준 규약(Protocol) 입니다. 동작 순서는 아래와 같습니다. 1. 클라이언트(Client)가 웹 브라우져(Web Browser)를 통해 동적인 웹 문서를 요청 합니다. 2. 웹 서버(Web Server)에서는 동적 웹 문서에 대해 CGI 프로그램 스크립트에게 CGI를 요청 합니다. 3. CGI 스크립트에 프로그램된 동적인 동작을 웹 서버를 통해 웹 브라우져로 전달 합니다. 즉, CGI를 웹서버에서 실행하기 위해서는 웹서버에 CGI에 대한 정의가 있어야 하고 CGI Script가 따로 작성되어 정의된 방식에..

Tistory

[Python]SQL이란? 파이썬에서 SQLite 연결하기(connect)

[Python] SQL이란? SQL(Structured Query Language)는 데이터베이스(DB, Database)의 데이터를 검색, 갱신, 관리의 기능을 구현하게 정의된 프로그래밍 언어(Programming Language)입니다. SQL는 유료와 무료 등 여러가지 버젼이 있는 데 궁극 적인 목표는 최대한 방대한 데이터베이스를 효율적이고 빠르게 처리하는 것이 목적입니다. 언어(명령어)는 크게 아래와 같이 분류 됩니다. DDL(Data Defition Language) Create Table Drop Table Alter Table DML(Data Manipulation Language) Insert Delete Update Select DCL(Data Control Language) [Pytho..

Tistory

[Python] SQLite DB만들기, 테이블 생성하기(memory, file, table)

목차 SQLite DB 생성하기 앞서 포스트에서 SQLite는 상대적으로 가벼운 데이터베이스(Database)로 DB를 메모리 영역에 생성하거나 파일에 생성합니다. 생성은 connect 함수로 실행합니다. 아래 입력 값에 따라 메모리 또는 파일에 데이터베이스를 생성합니다. 생성 함수: connect 입력 값: ":memory:", "파일명" 예제 코드>> import sqlite3 from sqlite3 import Error try: con = sqlite3.connect(':memory:') # con = sqlite3.connect('test.db') print("DB created in memory") except Error: print(Error) finally: con.close() 5번 라인..

Tistory

[공업수학]오일러 공식(e^(jΘ) = cosΘ+jsinΘ) 이해하고 유도하기(Euler's Formula, Maclaurin Series)

목차 맥클로린 급수(Maclaurin Series) SinΘ, CosΘ 유도 모든 신호는 맥클로린(Maclaurin Series) 급수로 표현이 가능 합니다. 위와 같은 형태로 신호는 표현이 가능 합니다. C0, C1, C2.... 값들은 아래와 같이 미분으로 표현이 가능 합니다. 위 수식을 이용해서 Sin과 Cos을 아래와 같이 구할 수 있습니다. 이번에는 아래 지수함수를 맥클로린(Maclaurin Series) 급수로 표현해보겠습니다. 위 지수함수를 수식(1)에 대입하면 아래와 같이 구할 수 있습니다. 앞서 식(2)과 식(3)을 사용하면 식(4)를 아래와 같이 표현할 수 있습니다. 오일러 공식(Euler's Formula) 속성 식(5)는 cosΘ와 sinΘ로 이루어지기 때문에 Θ를 각으로 생각하면 ..

Tistory

오일러 공식(Euler's formula) 사용 예제

목차 해당 내용은 유투브 강의 혁펜하임의 강의를 기초해서 정리한 자료 입니다. 앞서 오일러 공식의 정의와 어떻게 유도를 했는지에 대해 알아보았습니다(https://scribblinganything.tistory.com/588). 이번 시간에는 오일러 공식을 사용해서 어떤 수학적 이점과 실제 사용 예제에 대해 알아보겠습니다. 오일러 공식(Euler's formula) 사용 예제 #1 위 그림과 같이 복소수 값을 지수 형태로 표현할 수 있습니다. 즉, 아래와 같이 여러가지 복수의 곱을 쉽게 덧셈으로 바꿔서 사용할 수 있습니다. 오일러 공식(Euler's formula) 사용 예제 #2 위 예제는 a(t), b(t)를 통신으로 보낼 때 cos(t)와 90위상 차이가 나는 -sin(t)에 묶어서 보내고 송신부에..

Tistory

DC 션트 저항이란? 사용 방법(DC Current Shunt)

목차 DC 션트 저항(DC Current Shunt)이란? 일반적으로 작은 전류를 측정할 때는 전류계를 사용해서 측정이 가능하지만 큰 전류(10A 이상)를 측정할 때 Shunt 저항을 사용 합니다. Shunt 저항은 고전류 측정을 위해 제작된 특수 저항입니다. Shunt 저항은 위 그림과 같이 일반적으로 부하(Load)와 직렬로 연결합니다. 그리고 Shunt 저항에 병렬로 전류계를 연결합니다. Shunt 저항은 위 그림처럼 볼트로 연결할 수 있는 구조로 되어 있습니다. 볼트를 통해서 굵은 전선을 연결할 수 있고 가운데 작은 볼트로 Voltmeter와 연결할 수 있는 구조를 가집니다. 그리고 Shunt 저항은 Ground에 가깝게 연결해서 전압 강하를 최소화 해줍니다. 위 저항은 무라타 션트 저항인데 저항..

Tistory

힘, 에너지, 일, 파워, 일률, 순간에너지, 평균에너지란? 수식(Force, Power, Energy, Work, Equation)

목차 해당 내용은 유투브 강의 혁펜하임의 강의를 기초해서 정리한 자료 입니다. 힘(Force)이란? 우선 힘(Force)에 대한 정의 부터 파워(Power), 에너지(Energy), 일(Work)에 대한 정의가 이루어 집니다. 힘은 위와 같은 수식으로 시편의 무게에 가속도를 곱하는 것으로 뉴턴(Newton)에 의해 "정의"된 값입니다. 즉, 힘에 대한 정의는 위와 같이 약속이 된 것입니다. 단위는 N 또는 kgf을 사용합니다. 단위: N, kgf 일(Work)이란? 일이란 물체가 이동하는 방향으로의 힘에 물체가 이동한 거리를 곱한 값입니다. 단위는 Nm 또는 J을 사용 합니다. 단위: Nm, J 에너지(Energy)이란? 흔히 운동에너지, 위치에너지에 대한 얘기를 들어보셨을 겁니다. 에너지란 물체에 일(..

Tistory

윈도우 컴퓨터 화면에 갤럭시 탭 화면 공유하기 (강의 유용한 기능)

목차 윈도우(Window) PC에서의 설정 1. 윈도우 검색창에 시스템을 아래와 같이 검색하고 실행합니다. 2. 아래 그림과 같이 "이 PC에 화면 표시"를 클릭 합니다. 아래와 같이 활성화 되지 않았다면 선택적 기능을 클릭 후 무선 디스플레이를 설치 합니다. 설치가 완료 되면 아래와 같이 활성화 됩니다. 3. 아래와 같이 안전한 네트워크... 를 설정하고 파란색으로 된 "이 PC에 표시하기 위해 연결 앱 시작"을 클릭 합니다. 4. 클릭 후 아래와 같은 화면이 나오는데 이때 마우스를 위쪽으로 올려서 오른쪽 상단에 화살표를 클릭해서 화면을 축소 합니다. 그렇지 않으면 추후에 탭화면 미러링으로만 고정되기 때문입니다. 갤럭시 탭(Galaxy Tab)에서의 설정 현재 1. 아래 그림과 같이 Smart View..

Tistory

PWM(Pulse Width Modulation)제어란?

목차 PWM(Pulse Width Modulation)제어란? PWM 제어란 전자 장치에 전달되는 평균 파워양을 펄스의 너비(Width)를 조절해서 원하는 값으로 전달하는 제어 방식을 의미합니다. 예를 들어 5V 전압을 유지하는 DC 전원이 있다면 위 그림과 같이 50%의 Width로 전달 된다면 평균은 2.5V가 전자 장치로 전달되게 됩니다. 위와 같이 Width로 평균전압 전달을 제어하는 방법을 PWM 제어라고 합니다. PWM(Pulse Width Modulation)제어 예제 위 그림과 같이 DC 모터(Motor)가 스위치(Switch)를 사이에 두고 배터리와 연결되어 있습니다. 모터의 속도는 아래와 같이 정의 됩니다. R는 모터 내부의 기생 저항이고 파이는 자속입니다. 여기서 V(전압) 값을 조절..

Tistory

[Linux]리눅스 쉘스크립트란? 사용 방법, 예제(Shell Script, 셸)

목차 리눅스(Linux) 쉘스크립트란? 쉘스크립트(Shell Script, 셸스크립트)는 Shell 명령어들을 텍스트 파일이 모아서 실행해주는 개념이라고 생각하시면 됩니다. C언어나 파이썬(Python)과 같이 코드를 위에서 아래로 순차적으로 실행합니다. 이때 실행하는 명령어들이 Shell이라는 차이가 있습니다. Shell Script를 사용하는 장점은 컴파일이 필요없이 리눅스(Linux) 환경에서 셀을 인터프리터(Interpreter)로 바로 해석해서 실행해주는 장점이 있어서 간단한 명령을 구현할 때 주로 사용합니다. 리눅스(Linux) 셸스크립트 사용 방법 스크립트 텍스트 파일은 아래와 같이 시작 합니다. #!/bin/bash #!의 의미는 해당 스크립트(텍스트) 파일은 실행 파일로 인식 시킵니다. ..

Tistory

[전기전자]캐패시터, 콘덴서, 캐패시턴스, 리액턴스란?(Capacitor, Capacitance, Condensor, Reactance)

목차 [전기전자]캐패시터, 콘덴서란? 캐패시터(Capacitor), 콘덴서(Condensor)는 동일한 말입니다. 간단하게 설명하면 전하를 저장할 수 있는 장치 입니다. 위 사진은 다양한 종류의 캐패시터 입니다. 위 그림은 전자 회로도로 직류 전원과 캐패시터가 연결되었을 때 입니다. 위 그림처럼 캐패시터의 판에 전하가 저장됩니다. 그리고 판사이에 유전체(Dielectric)가 있어서 전류가 흐를 수는 없습니다. [전기전자]캐패시턴스 란? 앞서 회로에서 Capacitor가 저장할 수 있는 정도를 수식으로 표현하면 아래와 같습니다. Q = C x V 여기서 Q는 전기량으로 클롬이라고 하고 단위는 C를 사용합니다. C는 캐패시턴스(Capacitance)를 의미 합니다. 캐패시턴스는 캐패시터의 능력이라고 볼 수..

Tistory

[라즈베리파이]Raspbery Pi에서 파이썬 처음 실행해보기(Python)

파이썬(Python)이란? 파이썬은 인터프리터(Interpreter) 언어로 C언어와 같이 컴파일러(Compiler)를 사용하는 언어와는 효율성에서 다릅니다. 인터프리터는 간단하게 말하자면 해당 프로그램에 대해 말 그대로 해석을 해서 바로 실행을 시킬 수 있습니다. 하지만 C와 같은 컴파일러의 언어들은 컴파일(Compile)이라는 단계를 거쳐서 프로그램을 컴퓨터가 이해할 수 있는 명령어로 변환해서 실행을 해야 합니다. 대신 컴파일은 인터프리터 처럼 미리 해석을 위한 처리가 필요 없어서 언어 자체가 가볍고 사용자가 상대적으로 효율 적이고 빠른 코드를 작성할 수 있습니다. 물론 최근에 파이썬도 다양한 라이브러리가 제공 되어 효율적이고 빠른 코드를 사용자 어플리케이션(Application)에 맞춰 제작을 해주..

Tistory

[Linux]리눅스 find로 파일 검색하기(size, exec, name, 별표* 사용)

목차 리눅스 파일 찾기 명령어 및 사용방법 리눅스에서 파일을 찾는(Search) 방법은 주로 find 명령을 사용 합니다. 사용 방법은 아래와 같이 단순 합니다. find 검색위치폴더 옵션 찾을파일이름 검색위치 폴더의 경우 입력하지 않으면 전체 폴더에서 검색을 시행 합니다. 그리고 찾을 파일 이름에서는 윈도우에서 모르는 문자를 대체 하듯 사용 할 수 있습니다. 옵션은 아래와 같습니다. -name : 찾을 파일 검색 -perm : 파일 권한으로 검색 -type : 형태가 같은 파일 검색 -link : 링크 개수가 일치하는 파일 검색 -size: 사이즈로 검색, 파일 사이즈는 b(블록), c(바이트), k(킬로바이트), w(워드단위, 2바이트) -user : 사용자로 검색 -exec : 검색된 파일에 추가 ..

Tistory

[Linux]리눅스 grep 정규식으로 검색하기(|, regex, search)

목차 [Linux]리눅스 grep 검색이란? 리눅스에서 grep을 사용해서 쉽게 검색을 할 수 있습니다. grep은 정규 표현식(Regular expression)을 사용하기 때문에 간단한 정규 표현식을 사용한다면 검색이 용이 합니다. 이번 시간에 grep의 옵션 및 기본 정규 표현식 사용 방법 및 간단한 예제 실습을 진행해 보겠습니다. 우선 grep의 사용방법은 아래와 같습니다. grep 옵션 '정규표현식' 파일명 옵션은 아래와 같습니다. -i : 대소문자 구분 없이 검색 -n : 일치하는 줄과 그 줄 번호를 같이 보여줌 정규 표현식 기본 표현 아래는 정규 표현식 사용의 기본 표현을 정리한 내용입니다. * : 별표 앞의 문자가 0개 이상 존재 . : 하나의 문자 ^ : 시작하는 문자와 대응 $ : 끝 ..

Tistory

[Linux]리눅스 시스템 자원, 메모리, 프로세스 사용량 확인하기(모니터링)

목차 시스템 자원(System Resource) 관리 확인하기 시스템 자원 관리 명령어는 아래와 같습니다. top top 명령어를 입력하면 아래와 같은 결과를 확인할 수 있습니다. 1번 줄 : 동작 시간, 사용자 수, 부하 평균값 2번 줄 : 전체 프로세서 수, 동작, 슬립, 중단, 좀비 프로세스의 개수 3번 줄 : CPU의 가동을 백분률로 표기 4번 줄 : 메모리 정보 5번 줄 : SWAP 공간 정보 이하 : 프로세스 정보 메모리 자원(Memory Resource) 관리 확인하기 메모리 자원에 대한 상세 내용은 free 명령어로 확인 가능 합니다. free 프로세스 자원(Process Resource) 관리 확인하기 프로세스는 ps 명령어로 확인 가능 합니다. ps 명령어는 아래의 옵션과 함께 사용할 ..

Tistory

[Linux]리눅스 프로세스 포그라운드, 백그라운드란? 사용방법(foreground, background, kill, ps, process)

목차 리눅스 포그라운드, 백그라운드란(foreground, background)? 리눅스는 쉘(셸, Shell) 명령어로 프로세스가 실행됩니다. 이때 Shell 은 기본적으로 포그라운드(Foregournd)로 실행됩니다. 포그라운드는 명령어가 프롬프트를 빠져나오지 못하고 프로세스가 완료 되거나 다른 입력을 기다려야 합니다. 반면에 백그라운드(Background)는 명령어가 Shell Prompt를 빠져나와서 프로세스를 진행하고 Shell에서 다른 작업을 할 수 있게 됩니다. Shell이 기본적으로 포그라운드에 실행되는 데 명령어 끝에 &(And) 기호를 붙이면 백그라운드에서 동작 합니다. & 또는 이미 진행중인 프로세스에 bg 명령을 입력 해서 Background로 변경하고 이 것을 다시 fg를 입력해서..

Tistory

[Linux]리눅스 환경변수, 쉘이란?(Shell, echo, env, export, bashrc, Environment variable)

목차 리눅스 환경변수, 쉘이란?(Shell, Environment variable) 환경 변수란 리눅스 사용자가 로그인할 때 자동으로 셸/쉘(Shell)이 실행되면서 사용환경을 구축합니다. 이때 Shell을 환경변수(Environment variable)라고 합니다. 간단하게 예를 들면 스마트 아파트에 사용자가 들어가면 사용자를 인식해서 기본적으로 에어컨으로 온도를 조절 해주고 커튼을 열어주고 공기 청정기를 켜주는 시스템이 있다고 생각하면 각 사용자마다 설정해 놓은 스마트 기능이 다를 것입니다. 여기서 에어컨이나 청정기와 같은 장치를 Shell이라고 생각하시고 아파트는 리눅스 시스템이라고 생각하시면 됩니다. 리눅스를 시작하면 모든 사용자들이 대부분 공통적으로 실행되는 환경 변수들이 있는데 해당 환경 변수..

Tistory

[라즈베리파이]Putty로 원격 접속하기(윈도우 PC, 통신, Remote)

목차 Putty(푸티) 윈도우 OS에 설치하기 아무래도 라즈베리 파이(Raspberry Pi)에서 모니터와 키보드 마우스 등을 다 연결해서 사용하기 불편한점이 있습니다. 이러한 부분을 해결하기 위해 라즈베리 파이(Raspberry Pi) 리눅스(Linux) OS에서 서버를 만들고 계정을 등록한 뒤 윈도우 운용체제를 가진 컴퓨터에서 Putty를 사용해서 쉽게 접근 할 수 있습니다. 일반적으로 리눅스에서 제공하는 원격 접속 방법은 아래와 같습니다. 텔넷(Telnet) SSH(Secure Shell) SSH가 암호화 방식의 통신을 사용하기 때문에 안정성이 높아 SSH 통신을 사용합니다. Putty는 SSH를 지원 합니다. 1. https://www.putty.org/ 사이트에 접속해서 Putty를 다운로드 합..

Tistory

[라즈베리파이]VNC로 윈도우PC에서 원격제어하기(GUI, 그래픽)

목차 앞서 과정에서 Putty를 사용해서 Text 기반의 원격 제어(Remote Control) 방법에 대해 알아보았습니다(https://scribblinganything.tistory.com/574). 이번 시간에는 Graphic으로 직접 연결하는 방법에 대해 알아보겠습니다. 라즈베리파이(Raspberry Pi) 리눅스 VNC 서버 실행 라즈베리파이(Raspberry Pi)에 그래픽으로 원격 접촉을 하기 위해서는 VNC 방식을 사용합니다. VNC란 라즈베리파이의 리눅스에 윈도우 X (GUI) 프로그램을 실행시켜주는 그래픽 서버로 생각하시면 됩니다. 1. 리눅스에 접속해서 아래와 같이 입력하여 vnc server를 설치 해줍니다. sudo apt-get install realvnc-vnc-server 2..

Tistory

[Linux]리눅스 ls, cd, pwd 명령어(파일 목록 보기, 디렉토리 이동 위치)

목차 [Linux]리눅스 ls 파일 목록 확인하기 리눅스의 ls는 예전 도스(Dos)에서 dir과 유사 합니다. ls를 사용하면 현재 위치에서의 파일의 목록을 확인할 수 있습니다. 아래는 가장 기본이 되는 옵션을 사용한 명령입니다. ls -l 파일 목록 제일 앞 단에 drwxr-xr-x 는 파일이나 디렉터리(Directory)에 대한 권한(Permission)에 대한 정보 입니다. 제일 앞에 d 는 디렉터리를 의미하고 -는 파일이고 c는 캐릭터 디바이스 s는 네트워크 소켓 파일 l은 링크 파일 입니다. rwx는 읽기, 쓰기, 실행하기에 대한 권한입니다. -rw-r--r-- 의 의미는 해당 파일은 유저(User)는 읽기, 쓰기의 권한이 있고 그룹(Group)은 읽기 권한만, 방문자(Other)도 읽기 권한..

Tistory

[Linux] 리눅스 파일 생성, 삭제, 이동, 복사 사용법(touch, cat, cp, rm, mv)

목차 리눅스(Linux) 파일 생성 : touch, cat 리눅스에서 파일을 만드는 방법은 다양하게 있습니다. 다양한 텍스트 에디터(vi, vim, nano 등)이 있지만 이번 장에는 간단하게 파일을 형성하는 touch 와 cat에 대해 알아 보겠습니다. touch는 빈 파일을 쉽게 만들어 줄 수 있습니다. cat는 내용을 입력해서 만들 수 있습니다. touch 사용법>> touch 생성할파일명 결과>> cat 사용법>> cat > 생성할파일명 내용입력후 Ctrl+D로 종료 cat 읽을파일명 cat는 > 로 파일을 생성과 동시에 내용을 입력합니다. 그리고 입력완료 후 Ctrl+D키를 눌러서 입력을 마칩니다. 출력은 cat에 읽을 파일명을 입력하시면 됩니다. 결과>> 리눅스(Linux) 파일 이동: mv ..

Tistory

[Linux] 리눅스 사용자 권한 정의 및 변경(chomod, read, write, execute, 읽기, 쓰기, 실행)

목차 [Linux] 리눅스 사용자 권한이란? 간단하게 유닉스나 리눅스 체계에서는 파일이나 디렉터리를 사용할때 접속되어 있는 사람에 따라 권한이 다르게 설정 되어 있습니다. 우선 사용자는 아래와 같이 3가지로 분류됩니다. 소유자(Owner) 그룹(Group) 기타(Others) 아래와 같이 ls -a로 파일의 권한까지 확인할 수 있습니다. 파일이나 디렉터리 앞단에 -나 d로 시작하는 권한에 대한 내용을 확인할 수 있습니다. 의미는 아래와 같습니다. - : 파일 d : 디렉터리 그 뒤에 총 9개의 권한 공간이 있는데 각 3, 3, 3 로 나워서 소유자, 그룹, 기타가 가지는 권한에 대해 정의 합니다. 권한은 3개의 비트로 표현되고 의미는 아래와 같습니다. 괄호안의 숫자가 2진수로 표현한것이고 그 앞에 숫자는..

Tistory

[Python] 멀티스레딩과 Global 변수 공유 방법(Multi threading, thread)

목차 앞서 멀티스레드(Multi Thread)의 정의와 기본적인 사용방법에 대해 알아보았습니다(https://scribblinganything.tistory.com/568). 이번 시간에는 실제 여러개의 멀티 스레딩이 동작할 때 서로간에 변수(variable)를 공유하거나 주고 받아야 하는 일들이 있습니다. 이때 변수를 각 각의 스레드가 어떻게 이용하는지에 대해 알아보겠습니다. 예를 들어 pyserial과 같은 통신 모듈을 사용할 경우 통신 모듈은 별도의 thread에서 동작 시키고 모듈에서 나오는 값들을 다른 thread에서 값을 이용하고 싶은 일들이 발생합니다. 이럴때 사용하는 것이 변수 공유 방법입니다. 파이썬 멀티스레딩(Multi threading) Global 변수 앞서 멀티 프로세스(Proce..

Tistory

[라즈베리파이]Raspbeery PI OS(구 라즈비안, Raspbian) 설치

목차 Raspbeery PI OS(구 라즈비안, Raspbian)설치 라즈베리 파이 보드에 리눅스 OS를 설치하기 위해서는 마이크로 SD카드가 필요 합니다. 1. 아래 그림과 같이 SD카드를 컴퓨터(노트북)에 연결합니다. 2. https://www.raspberrypi.com/software/ 사이트에 접속해서 아래 그림과 같이 윈도우(Windows)용 Raspberry Pi OS를 다운 받습니다. 3. 다운 받은 파일을 설치 후 아래와 같이 동작 시킵니다. 4. 운영체제 OS 선택을 클릭하고 Raspberry PI OS(32bit)를 선택합니다. 5. 저장소를 선택 후 SD카드 위치를 선택합니다. 그리고 쓰기를 시작합니다. Raspbeery PI 보드 하드웨어 연결 및 실행 앞서 5번 이후 과정을 진행..

Tistory

[라즈베리파이]리눅스 삼바로 윈도우컴퓨터와 파일 공유하기(Samba, window, file share, linux)

목차 Linux 삼바 설치 및 설정(Samba Installation and Settings) 라즈베리파이는 리눅스(Linux) 운영체제에서 돌아갑니다. 여기 리눅스에서 삼바(samba)라는 프로그램을 사용해서 다른 컴퓨터와 인터넷 통신이 가능하게 만들어 줬습니다. 저는 앞으로 Raspberry Pi의 스크릿 샷이나 파일을 삼바로 이동해서 블로그를 작성할 예정이라 삼바를 설치하도록 하겠습니다. 1.아래와 같은 명령어를 터미널에 입력해서 Samba를 설치 합니다. sudo apt-get install samba samba-common-bin 설치 중에 스크린세이버가 켜지거나 라즈베리파이가 종료되어서 에러가 발생하면 다시 설치 해줍니다. 2. 설치 완료 후 아래와 같이 아이디를 설정합니다. 제 리눅스는 fa..

Tistory

[라즈베리파이]리눅스 화면/스크린 캡쳐 방법(Linux, Screen, Image, 스크린샷)

목차 Raspberry Pi 화면 캡쳐하기 #1 첫번째 방법은 윈도우 OS와 동일한 방법으로 화면을 캡쳐합니다. 키보드에 "Print Screen" / "Prt Sc" 키를 눌러서 해당 화면을 프린트 스크린 해줍니다. 저장된 파일은 리눅스(Linux) 버젼에 따라 다른 폴더에 저장되는데 저같은 경우에는 아래 그림의 폴더와 같이 제 리눅스 아이디 fam 폴더 아래 캡쳐 파일들이 저장되었습니다. 이전 버전의 경우 /home/ID 에 저장되었습니다. Raspberry Pi 화면 캡쳐하기 #2 이번에는 터미널(Terminal)에서 명령어로 저장하는 방법에 대해 알아보겠습니다. scrot 위 scrot 명령어를 터미널에 입력하시면 해당 화면이 캡쳐되어서 앞서 폴더에 저장됩니다. scrot -s -s를 인자로 넣게..

Tistory

[Python] 멀티프로세스, 동시 작업(Multiprocess, Multitask, 파이썬) #1

목차 파이썬 멀티 프로세싱이란? (Multi Processing) 파이썬은 위에서 아래로 코드가 진행되고 while 문에 걸리면 그 동안 다른 프로그램을 실행 할 수 없습니다. 이를 해결 하기 위해 파이썬에서 아래와 같이 3가지 방법을 제공 합니다. 멀티프로세싱(Multiprocessing) 멀티스레드(Multithread, threading) 인터럽트(Interrupt) 사실 인터럽트는 동시에 진행하는 것처럼 보이지만 실제로는 말 그대로 중간에 인터럽트가 발생하면 잠시 인터럽트 일을 처리하고 나머지 남은 일을 처리 하는 것입니다. 실제 pyserial이나 blutooth 통신을 하거나 DB와 연결하거나 등 연결쪽을 위한 프로그램이 동작하면서 동시에 처리쪽도 멈추지 않고 동작해야하는 경우들이 종종 있습니..

Tistory

[Python] 멀티프로세스, 변수 교환 방법(Queue, Pipe, Multiprocess, Multitask, 파이썬)#2

목차 앞서 포스트에서 멀티프로세서(Multiprocess) 선언과 사용법에 대해 알아보았습니다(https://scribblinganything.tistory.com/563). 이번 시간에는 각 프로세스 간에 통신을 하여 값을 주고 받거나 대기를 사용해서 하나씩 처리하는 방법에 대해 알아보겠습니다. 프로세스는 각 각 별도의 메모리를 사용하므로 pipe라는 장치를 사용해서 데이터를 주고 받아야 합니다. pipe : 멀티 프로세스(Multiprocess) 간에 통신으로 값을 주고 받기 queue : 멀티 프로스세(Multiprocess)의 입력 값을 queue에 넣고 원할 때 마다 처리 하기 파이썬 멀티프로세스(Multiprocess) 변수 교환 방법(Pipe) 프로세스 간에 값을 주고 받는 방식은 아래 예제..

Tistory

[Python] 멀티스레드란? 사용법, 예제 (Multi thread, target, args, start, join)

목차 앞서 멀티 프로세스(Multi process)의 의미와 사용 방법에 대해 이야기 해보았습니다(https://scribblinganything.tistory.com/566). 이번 시간에는 멀티 쓰레드(Multithreading)에 대해 알아 보겠습니다. 파이썬 멀티스레드(Multi threading)란? 멀티프로세스는 각 각의 프로세스가 독립된 메모리를 가지고 동작한다고 하였습니다. 그러므로 컴퓨터 내의 자원을 많이 소모하게 됩니다. 하지만 드레드(Thread)의 경우 Thread라는 의미가 가지는 실과 같이 하나의 프로세스 내에서 여러개의 실들이 각 각 움직이게 됩니다. 그리고 그 실(Thread)은 내부의 메모리를 공유하면서 각 각 움직이므로 프로그램이 가벼워 집니다. Thread의 특징을 정리..

Tistory

[Python] 람다 함수란? 사용하는 목적(Lambda Function, Why)

목차 파이썬 람다 함수(Lambda Function)란? 파이썬의 람다함수는 인자 값(arguments)들을 이용해서 하나의 표현으로 처리하는 함수를 의미합니다. Sytax는 아래와 같습니다. lambda arguments : expression arguments에는 인자 값을 입력하고 expression에 함수식을 입력합니다. 아래 예제를 통해 쉽게 이해해 보겠습니다. 예제 코드>> lam_func = lambda a, b : (a + b)/10 print(lam_func(2,8)) 1번 라인: 인자로 a, b를 넣고 함수는 (a+b)/10로 설정함 결과>> 1.0 위와 같이 함수를 1줄로 정의해서 간단하게 제작하였습니다. 인자 수는 원하는데로 여러개를 가지고 갈 수 있습니다. 파이썬 람다 함수(Lam..

Tistory

타코 미터란? 종류 및 사용법(Tachometer Sensor)

목차 타코미터(Tachometer) 란? 타코미터(Tachometer)는 회전체(Rotation Machinery)의 속도를 측정하는 장치 입니다. 주로 측정하는 파트는 아래와 같습니다. 회전체 Shaft 디스크(Disk) 측정 결과는 RPM으로 표현하는데 위 그림과 같이 차량에서도 RPM 표기 계기판이 있습니다. RPM은 Revolution per minute으로 분당 회전수를 의미 합니다. 타코미터(Tachometer)의 종류 Contact Type Non Contact Type Electronic tachometer Analog tachometer Digital tachometer Time measuring tachometer Frequency measuring tachometer Mechanica..

Tistory

[Python] 파이썬 yield란? 사용목적 (Generator, 제너레이터)

목차 파이썬 yield와 generator의 의미 간단히 말해서 파이썬의 generator란 반복(iterator) 동작을 간단하게 실행시켜주는 방법입니다. generator를 만들때 일반적인 함수를 정의하면서 return 문구를 쓰는 것이 아닌 yield를 사용합니다. generator 함수는 최소 하나의 yield 를 포함 next() 메소드가 자동으로 실행됨 yield가 실행되면 함수는 중단하고 control이 콜러(caller)에게 넘어감 코드를 통해 직접 설명드리겠습니다. 예제 코드>> def gen_func(): yield 1 print(gen_func()) 결과>> 위 예제 코드와 같이 gen_func 함수에 yield가 포함되기 때문에 해당 함수는 generator가 됩니다. 파이썬 yie..

Tistory

[회전체] 오더 분석이란? (Order Tracking, Analysis)

목차 [Rotating Machinery] Orders란? 오더란 회전체의 소음(Noise), 진동(Vibration) 신호 분석을 돕는 분석 방법입니다. 모터(Motor)나 엔진(Engine)과 같은 회전체는 하나의 부분만이 회전하는 것이 아닌 여러 파트(피스톤, 기어, 펌프 등) 가 다른 주기로 시스템을 이뤄서 회전 동력을 제공합니다. Order Tracking이라는 의미는 회전체의 속도 값인 RPM과 응답으로 발생하는 신호(소음, 진동)의 주파수와 신호의 크기에 따른 분석입니다. Orders 계산 방법(Calculation) Order 수식은 아래와 같습니다. 오더 값 = 주파수(Hz) x 60 / RPM RPM은 Revolution per Minute으로 분당 회전수 입니다. 예를 들면 600rp..

Tistory

[Python] Try Except Else Finally Raise 구문 사용 방법, 예제 (파이썬)

목차 파이썬 try except else finally 문이란? 파이썬을 구현하면서 파일을 처리하거나 인터넷이나 시리얼(Serial) 통신에 연결할때 예상치 못한 에러(error)가 발생할 수 있습니다. 이와 같이 프로그램에 발생하는 에러는 예외(Except) 처리가 되고 에러 메세지와 함께 프로그램이 종료 됩니다. 파이썬 내장 예외처리에서 위와 같은 작업을 진행하지만 사용자가 직접 예외처리를 만들 수 있는데 이때 사용하는 명령어가 try except 입니다. try : try 아래 블럭을 에러가 있어도 시행해봅니다. except : try 아래 블럭에서 에러 발생 시 에러를 어떻게 처리할지 결정합니다. else : try 아래에서 에러가 없을 경우 시행 합니다. finally : try 에러 여부에 관..

Tistory

[Python]OpenCV 카메라로 얼굴, 눈 인식하고 모자이크 하기#1(CascadeClassifier)

목차 파이썬 OpenCV 얼굴, 눈 인식 함수(CascadeClassifier) 이번 포스트에서는 OpenCV에서 제공하는 CascadeClassifier 함수를 사용해서 얼굴과 눈을 인식해서 출력해보겠습니다. 흔히 구글 지도나 네이버 지도 거리뷰를 보면 사람들 얼굴이 모자이크 처리가 된것을 볼 수 있습니다. 하나 하나 모자이크를 한다면 얼마나 힘들겠습니까.... 그래서 위와 같은 함수를 사용해서 사람 얼굴을 인식하고 모자이크 처리 해주는 것입니다. 이번 포스트에서는 사람 얼굴 부분과 눈 부분을 인식하는 방법에 대해 알아보고 다음 장에서 인식한 부분을 모자이크 처리하는 방법에 대해 알아보겠습니다. CascadeClassifier는 Haar Cascades 라는 사람의 논문에 Face Detection 방..

Tistory

Strain Life Curve란? (EN 그래프, Manson Coffin Morrow, 변형률, 피로도, Fatigue)

목차 Strain Life Curve 란? 앞서 포스터에서 SN Curve에 대해 공부하였습니다(https://scribblinganything.tistory.com/553). SN Curve란 Stress(응력)과 Life 사이클과의 관계를 표현한 그래프입니다. SN Curve에서 탄성 구역(Elastic Region)과 소성 구역(Plastic Region)을 표현하는 재료들이 종종 있기는 하지만 대부분의 재료들은 Stress의 특성에 의해 탄성 구역에 대한 정보 표기만 되어 있습니다. SN Curve는 Stress(응력)과 Strain(변형률) 사이 선형성(Linear)이 유지되는 탄성 구간 분석이라는 한계가 있음 피로도(Fatigue) 분석 관점에서 Strain Life Curve (EN Curv..

Tistory

[Python]OpenCV 카메라로 얼굴, 눈 인식하고 모자이크 하기#2(CascadeClassifier)

목차 파이썬 OpenCV 카메라로 얼굴, 눈 인식하고 모자이크 하기 앞 포스터에서 CascadeClassifier 함수를 사용해서 컴퓨터 카메라로 나오는 얼굴을 인식하는 방법에 대해 알아보았습니다. (https://scribblinganything.tistory.com/554) 이번 시간에는 앞서 검출해낸 얼굴에 모자이크를 씌우는 방법에 대해 알아보겠습니다. 모자이크를 만드는 과정은 아래와 같은 단계가 필요 합니다. 1. 카메라 실행하기 2. 카메라에 이미지(Image) 가져오기 3. 이미지를 흑백으로 변환하기 4. 이미지에서 얼굴 인식하기 5. 얼굴의 위치 정보 가져오기(사각형) 6. 이미지에서 얼굴 위치 부분의 이미지 가져오기 7. 얼굴 위치 부분 이미지에 blur 함수로 모자이크 씌우기 8. 원본 ..

Tistory

[Python] 피보나치(Fibonacci) 수열이란? 파이썬으로 구현하기

목차 피보나치 수열이란? 피보나치 수열이란 첫번째 두번째 수는 1로 결정되어 있고 그 뒤의 수는 항상 바로 앞 두 개의 값의 합으로 표현합니다. 1, 1, 2, 3, 5, 8, 13 .... 위처럼 처음에 1, 1은 정해지고 다음 2는 앞 두수의 합 1+1이 됩니다. 3은 그 앞 1+2가 되는 것입니다. 개념은 쉽지만 수식으로 접근하면 아래와 같이 복잡한 수식이 됩니다. 위 그림은 피보나치의 스파이럴(Spiral)로 피보나치 수열 전개에 따라 선을 그리면 그림처럼 이상적인 스파이럴(Spiral) 구조로 그림이 완성됩니다. 피보나치 수열 파이썬 구현 수학적으로 어렵지만 파이썬 구현은 간단하게 반복문으로 진행할 수 있습니다. 코드>> cnt = 1 pre =0 cur = 1 print("1") while c..

Tistory

LG스탠바이미 실제 사용후기(장단점, 27ART10AKPL, 스마트티비)

목차 LG전자 스탠바이미 기본 정보(27ART10AKPL) 사실 저희 집은 티비를 많이 보는 편이 아니라 그때 그때 티비를 꺼내서 보는 식이었는데 너무 불편해서 이번 기회에 하나 장만 했습니다. ㅎㅎ 우선 기본 정보는 아래와 같습니다. 스마트 스크린(터치 가능) 화면 이동 가능(가로/세로 이동 가능) 높낮이 : 1,265~1065mm 조절 가능 로테이팅 : 180도 가능 무선 3시간 재생 가능(배터리) webOS로 앱 사용 가능 미러링(Mirroring) 지원 넷플릭스, 왓챠, 유튜브 등 직접 연결 가능 HDMI, USB 연결 지원 최근에 나온 스마트(Smart Device) 기능은 다 지원한다고 생각하시면 됩니다. LG전자 스탠바이미(27ART10AKPL) 실제 사용 장점 사실 스마트 티비의 기능은 다..

Tistory

[Python] Request Post Get 함수 사용법 및 예제 실습

목차 이번 시간에는 클라이언트(Client)가 웹서버로 보내는 요청 중 GET과 POST에 대해 알아보고 어떻게 사용하는지에 대해 알아보도록 하겠습니다. 파이썬(Python) Request GET 사용법 GET은 HTTP의 Method 중 하나로 페이지에 대한 정보를 요구하는 Method라고 생각하시면 됩니다. 파이썬에서 사용하는 방법은 아래와 같습니다. requests.get(접속할 웹주소, 파라미터, 타임아웃시간) 위와 같이 입력 값으로 접속하고자하는 웹주소와 보내고 싶은 정보를 파라미터에 넣고 웹서버가 반응을 하지 않는 다면 타임아웃시간 이후에 연결을 끊습니다. 여기서 파라미터와 같은 값들을 GET에서도 보낼 수 있지만 간단한 내용을 보내는 것이 가능 하고 POST와 다르게 GET은 암호화가 되지 ..

Tistory

Goodman 관계식이란? (Goodman-Haigh / Haigh-Soderberg diagram)

목차 Goodman 관계식이란? (Goodman-Haigh / Haigh-Soderberg diagram) Goodman 관계식이란 간단하게 설명하면 평균(Mean) 응력(Stress)과 응력의 진폭(Alternating Stress)의 관계를 피로도 수명(Fatigue life) 관점에서 설명한 수식(Equation)입니다. 수식은 아래와 같습니다. σa : 응력 크기(Stress Amplitude, Alternating Stress) σm : 평균 응력(Mean Stress) σw : 피로 한계(Fatigue Limit) σb : 최대 인장 강도 (UTS, Ultimate Tensile Strength) n : Factor or safety Goodman 관계식 특성 및 전개 방법 Goodman 수식..

Tistory

SN Curve 란? 피로도 내구 해석(Stress, Life, Fatigue, Endurance)

목차 SN Curve 란? SN Curve에서 S는 Stress(응력)을 의미 합니다. N은 Number of Cycles to Failure로 시편이 파손(Failure)가 발생하기 까지의 횟수(Cycle)를 의미 합니다. 즉, SN Curve는 AC 파형처럼 반복되는 응력(Stress)과 Failure가 발생하는 반복 횟수의 관계를 보여주는 그래프입니다. SN Curve는 독일 과학자 August Wöhler에 의해 개발되었습니다. 아래 그림은 nCode 소프트웨어의 재료 DB 중에 알루미늄 합금의 SN 그래프입니다. 응력에 따라 Life의 횟 수가 변화는 것을 빨간선을 따라 확인할 수 있습니다. 그래프는 위 그림처럼 Log 단위로 표현 합니다. SN Curve의 특징을 정리하면 아래와 같습니다. 시..

Tistory

응력, 변형률이란? 수식, 관계 그래프, 단위(Stress, Strain, Equation, Graph)

목차 응력(Stress)이란? 응력(Stress)과 변형률(Strain)은 제품의 내구성(Durability)과 피로도(Fatigue)를 분석할 때 기본이 되는 측정 값입니다. 응력이란 그리스 문자로 σ 로 표현하고 시그마(Sigma)로 읽습니다. 간단하게 면적 당 받는 힘입니다. 단위는 파스칼 (MPa)을 사용 합니다. 수식은 아래와 같습니다. 면적이 A0인 표면에 힘 F가 가해질 때 응력은 위와 같이 표현 됩니다. 변형률(Strain)이란? 시편(DUT)이 받는 변형의 정도를 의미합니다. 예를 들어 어떤 시편에 인장력이 가해 졌을 경우 해당 시편은 인장력 방향에 의해 길이가 변하게 됩니다. 변형률은 측정 지점의 원래 길이에서 변화율의 비로 표현됩니다. 수식은 아래와 같습니다. 그리스 문자 ε 로 표현..

Tistory

Stress Strain 관계 특성, Young's Modulus 수식(응력, 변형률, 영률, 탄성계수, 취성)

목차 Young's Modulus 이란? 시편(Load)에 일정한 힘(Force)를 가하면 시편은 힘에 비례해서 변형되게 됩니다. 이때의 재료의 성질은 선형성(Linear)을 띄고 있다고 합니다. 위 그래프에 대한 설명은 앞서 포스터에서 간략하게 하였습니다.(https://scribblinganything.tistory.com/545) 그래프에서 항복강도(Yield Strength)라고 불리는 지점 전까지의 구간을 탄성 구간(Elastic Region)이라고 합니다. 탄성 구간(Elastic Region) : 항복 강도 지점 전까지의 Strain 구간 여기 선형(Linear) 구간에서 영율 값 E를 만들어 냅니다. 수식은 아래와 같습니다. 위 수식은 탄성 구간에서만 적용 됩니다. 참고로 이러한 선형의 관..

Tistory

파이썬(Python)으로 스마트폰/웹서버에 메세지 보내기 받기(Slack, Application, Smart phone message)#1

목차 Slack 이란? 슬랙이란 스마트 기기(Smart Device) 를 사용해서 웹에 접속해서 메세지를 작성하고 보내기가 받기가 가능한 웹 서버(Web Server) 입니다. 간단하게 카카오톡(Kakao Talk, 카톡), 스카이프(Skype)와 같은 메세지 웹 서버라고 생가하시면 됩니다. 이번 포스터에서는 파이썬(Python)을 작성해서 Slack이 제공하는 API에 접속 해서 해당 웹서버를 사용합니다. API에 대한 기초적인 내용은 링크를 참조 하시면 됩니다. (https://scribblinganything.tistory.com/530) Slack 가입 및 API 주소 받기 1. https://slack.com/intl/ko-kr/ 에 접속하여 가입을 진행합니다. 2. 워크스페이스(Workspac..

Tistory

파이썬(Python)으로 스마트폰/웹서버에 메세지 보내기 받기(Slack, Application, Smart phone message)#2

목차 파이썬(Python)으로 스마트폰(Smart Phone)에 메세지 보내기 받기: 진행 방법 앞서 시간에 파이썬에서 보낸 메세지가 Slack 웹서버로 전달되었음을 확인했습니다. 혹시 앞서 Slack 웹서버 가입 및 설치에 대한 내용을 보지 않고 오셨으면 괄호안의 링크를 통해 확인하시고 오시길 추천 드립니다(https://scribblinganything.tistory.com/547). 이번에는 Slack에서 제공하는 앱(Application, Apps)을 사용해서 파이썬에서 보낸 메세지를 확인할 것입니다. 웹스크롤링(Web Scrawling) 과정에서 공부한 주식 정보나 미세먼지와 같은 정보를 파이썬(Python)에서 가져와서 자동으로 Slack의 Smartphone Application으로 전달이 ..

Tistory

Ramberg-Osgood relation (램버그 오스굿 관계식, Strain, Stress, Fatigue)

목차 피로도 분석(Fatigue Analysis)에서 변형률(Strain)의 의미 시편의 피로도 분석(Fatigue Analysis)을 위해서는 아래 둘 중 하나의 입력 값이 필요 합니다. 응력(Stress) 변형률(Strain) 현실에서는 Fatigue 계산을 위해 스트레인 게이지(Strain Gauge)를 사용해서 스트레인 값으로 분석을 합니다. 응력(Stress)을 사용해서 피로도 분석을 하기에는 여러가지 한계가 있기 때문입니다. Stress 측정 값이 가지는 한계는 아래와 같습니다. Stress 값 측정이 어려움 탄성 구간(Elastic Region)에서만 적용 가능 Stress 측정을 위한 현장에서 사용하는 센서는 제가 아는 한도에서는 없습니다. 그리고 앞서 포스터에서 Stress와 Strain..

Tistory

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

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

Tistory

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을 고려 할 경우..

Tistory

레인플로 카운팅이란? (피로 해석, 내구, 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..

Tistory

[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. 모션을 출력 모션 센싱은 위..

Tistory

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

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

Tistory

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

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

Tistory

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

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

Tistory

[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), ..

Tistory

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

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

Tistory

[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)..

Tistory

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

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

Tistory

[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)를 주파수 성분에서 봤을 때 ..

Tistory

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

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

Tistory

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

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

Tistory

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

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

Tistory

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

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

Tistory

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

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

Tistory

[아두이노] String함수: indexof, substring, length (텍스트 검색, 위치 찾기)

목차 이번 포스트는 문자열 (String) 관련 함수들 중에 중요 함수에 대해 알아보도록 하겠습니다. 함수를 코드로 돌리고 확인은 Arduino에서 제공하는 시리얼 모니터로 하겠습니다. 시리얼(Serial) 통신 사용 방법 및 모니터링 방법은 아래 링크를 참조하시면 됩니다. (https://scribblinganything.tistory.com/512) Arduino String 함수 : indexOf indexOf 함수는 문자열에서 원하는 문자(Character)나 부분 문자열(String)을 검색해주고 해당 문자의 위치를 index 번호 0부터 시작해서 시작 위치를 정수(integer)로 알려 줍니다. indexOf 함수의 Syntax는 아래와 같습니다. 문자열변수.indexOf("찾을 문자", 찾기..

Tistory

[아두이노] 파이썬 Pyserial로 Blink 예제 실행하기 (PC to Arduino)

목차 이번 과정은 아두이노 보드와 컴퓨터(PC)를 USB 케이블을 이용해서 연결하고 파이썬(Python)의 Pyserial로 명령을 아두이노에 전달하고 아두이노는 이를 실행하는 예제를 해보겠습니다. 이 실습을 진행하기 위해서는 아래의 과정이 필요합니다. 1. 아두이노 보드 프로그램 : Serial 통신에서 특정 명령어가 전달되면 Blinking 예제 실행 2. 컴퓨터(Visual Studio)로 파이썬 작성하고 Serial로 특정 명령어 전달 1. 아두이노 보드 프로그램 : Serial 통신에서 특정 명령어가 전달되면 Blinking 예제 실행 우선 이번 코드는 아두이노의 시리얼(Serial) 통신을 열고 아래 명령이 들어오면 LED를 0.5초 단위로 깜빡이면서 켜거나 꺼지는 코드를 작성할 것입니다. 1..

Tistory

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

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

Tistory

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

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

Tistory

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

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

Tistory

[닌텐도 스위치 게임 리뷰] 닌텐도 스위치 스포츠(Nintendo Switch Sports)

목차 닌텐도 스위치 스포츠(Nintendo Switch Sports) 구성품 평소에 게임을 많이 하지 않지만 닌텐도 댄스(Dance) 만큼은 즐기고는 있었습니다. 그러던 중에 닌텐도에서 스위치 스포츠라고 정말 몸만 써서 하는 운동 게임을 출시하는 것을 보고 바로 질렀습니다. 우선 구성품은 위에 사진과 같이 왼쪽에 케이스와 작은 게임칩과 다리에 센서를 묶을 수 있는 스트랩으로 이루어 져있습니다. 오른족이 닌텐도 스위치는 기본으로 가지고 있어야지 할 게임을 시행할 수 있습니다. 게임 종류는 아래와 같습니다. 발리볼(Volley Ball) 배드민턴(Badminton) 축구(Soccer) 볼링(Bowling) 칼싸움 테니스(Tennis) 축구의 경우 허벅지에 스트랩을 감고 해야하기 때문에 2인 플레이를 위해서는..

Tistory

[아두이노]메모리 종류와 기능 (Program Memory, Flash Memory, EEPROM)

목차 아두이노(Arduino) 메모리란? : 종류 아두이노는 위 그림과 같이 3가지의 메모리로 구성됩니다. Program Memory Data Memory EEPROM 아두이노(ATmega168)의 경우 Program Memory의 사이즈는 32KByte 이고 Data Memory는 2KByte의 크기이고 EEPROM은 0.5KByte 입니다. 아두이노(Arduino) 메모리란? : 기능 Program Memory는 플래시 메모리(Flash Memory)라고도 하는데 사용자가 스케치 소프트웨어에서 작성한 코드는 Program Memory로 올라 갑니다. Data Memory는 SRAM(Static Random Memory)로 구성되어 있는데 장점은 CPU에 가까이 위치하여 속도가 빠릅니다. 하지만 리셋(..

Tistory

[아두이노]메모리가 부족할 때 처리방법(프로그램 저장 공간, 전역 변수, 지역변수)

목차 Arduino 메모리(Memory) 공간이 작을 때 아두이노 스케치에서 코드를 작성하고 컴파일(Compile)을 진행하면 아래와 같은 메세지를 받을 수 있습니다. 스케치는 프로그램 저장 공간 3242 바이트(10%)를 사용. 최대 32256 바이트. 전역 변수는 동적 메모리 226바이트(11%)를 사용, 1822바이트의 지역변수가 남음. 최대는 2048 바이트. 앞서 아두이노를 구성하는 메모리(Memory) 공간에 대해 살펴 보았습니다. 메모리에 대해 잘 이해가 안되시면 괄호안의 링크를 참조하시길 바랍니다. (https://scribblinganything.tistory.com/519) 여기서 프로그램 저장 공간은 프로그램 메모리(Program Memroy, Flash Memory)를 의미 합니다...

Tistory

[아두이노]1초마다 프로그램 동작 시키기(millis(),delay(), scheduling, 스케쥴링)

목차 Arduino 스케줄에 따라 프로그램 동작 시키기 원하는 시간(Timing)에 원하는 코드(Code)를 실행시키는 방법에 대해 알아보겠습니다. 일반적으로 Atmega 칩에서 이러한 스케쥴링(Scheduling)을 하기 위해서는 타이머 인터럽트(Timer Interrupt)를 사용해서 원하는 시간에 특정 코드가 동작하게 만들어 줍니다. 아두이노(Arduino)에는 다행이도 millis 라는 함수를 사용해서 해당 라인에 왔을때 당시 시간을 밀리세컨드(milli second)로 Return 해줍니다. Delay 함수는 입력 값으로 밀리세컨드를 입력 값으로 받아서 그 시간동안 다른 코드를 진행하지 않고 홀드(Hold) 해서 시간을 보냅니다. 아래의 예제 코드를 통해 쉽게 이해할 수 있습니다. Arduino..

Tistory

[Python]텍스트를 음성으로 변조(변환)하기 (gTTS 모듈)

목차 파이썬 gTTS, playsound 설치 파이썬(Python)에서 제공하는 모듈 중에 gTTS라는 모듈이 있습니다. gTTS는 Google Translate’s Text-to-Speech API 의 약자로 구글 번역에서 만든 text to speech 를 연결해주는 API 입니다. 텍스트(Text)를 소리나게 출력하기 위해 우선 텍스트에서 음성 파일로 변환할 수 있는 gTTS를 아래와 같이 설치 합니다. pip install gtts 다음으로 음악 파일을 읽어주는 playsound 라는 라이브러리(Library)를 설치합니다. pip install playsound 파이썬 텍스트 음성 파일로 저장하고 출력하기 gtts 함수는 사용법이 간단합니다. 인자 값(Parameter)으로 아래와 같은 값을 입..

Tistory

[아두이노] String함수: compareTo, equals, equalsIgnoreCase, length, replace

목차 이번 포스트는 문자열 (String) 관련 함수들 중에 중요 함수에 대해 알아보도록 하겠습니다. 함수를 코드로 돌리고 확인은 Arduino에서 제공하는 시리얼 모니터로 하겠습니다. 시리얼(Serial) 통신 사용 방법 및 모니터링 방법은 아래 링크를 참조하시면 됩니다. (https://scribblinganything.tistory.com/512) Arduino 문자열 compareTo 함수 compareTo 함수는 문자열(String)을 비교해서 동일한 경우 0을 return하고 다른 경우 ASCII 코드 차이 만큼을 return 합니다. 예제 코드>> void setup() { Serial.begin(9600); while (!Serial) { ; } } void loop() { String s..

Tistory

[체중계 리뷰]인바디 다이얼 체중계 Review (Inbody H20B)

목차 인바디 다이얼 체중계 장단점 리뷰 위에 제품은 제가 구매한지 벌써 2년이 지난 제품입니다. 화장대 밑에 지저분하게 배치해 놓았는데 실용도 만큼은 최고인 제품입니다. 매일 측정하면서 체지방률을 검사하면 압박이 장난이 아닙니다. 사실 단점은 크게 없습니다. 화장대에 놓아서 머리카락이 위로 자주 올라가고 손잡이 부분 아래에 먼지가 끼는 정도가 단점일 듯 합니다. 그 외에는 장점만 있는 듯 합니다. 아래에 제가 생각하는 장점에 대해 간단하게 나열해보겠습니다. 1. 짧은 측정 시간 : 5~10초 2. 오래가는 배터리 수명 3. LCD 화면으로 간단하게 결과 확인 4. 인바디(Inbody) 앱 연동으로 추적 관리 우선 측정은 내 프로필을 장비에 입력합니다. 간단하게 키와 나이 정도만 입력하시면 됩니다. 그리고..

1 2 3 4 5 6 7