프로그래밍 언어 50

파이썬에서 시리얼 통신 (UART) 하기

https://tre2man.tistory.com/203 아두이노를 위한 Serial(UART) 통신 알아보기 UART 통신이란? 시리얼 통신은 기기간 통신을 위해 정해놓은 규칙 중의 하나이다. 시리얼 통신은 오랜 기간 사용되어 왔으며, 마이크로프로세서를 다룬다면 알아야 할 지식 중의 하나이다. 시리�� tre2man.tistory.com 위 포스팅에서 시리얼 통신에 대해서 설명을 했었다. 그렇다면, 파이썬에서 시리얼 통신(UART)을 할 수 있는 법은 없을까? 당연히 있다. 파이썬에서 시리얼 통신을 통해 다양한 곳에 사용할 수 있다. 나의 경우에는 Qt와 결합하여 시리얼 통신의 결과를 라즈베리파이로 볼 수 있게 하는 프로젝트를 진행한 적이 있다. 파이썬 시리얼 통신의 예로 간단히 아두이노 우노와 통신해..

파이썬과 Firebase 연동하기

Firebase는 구글에서 출시한 데이터베이스 프로그램이다. 이것의 특징은 간단한 사용법, 구글의 생태계 안에서(일부 외부 프로그램 포함) 상당히 자유로운 사용범위, 데이터 분석 및 머신러닝 등 다양한 부가 기능 제공이 있다. 구글에서는 파이썬에서도 Firebase를 이용하여 통신 및 데이터 수정을 할 수 있도록 해 두었다. 파이썬을 이용하여 Firebase랑 연동하는 법을 알아보자. 파이썬과 Firebase 연동을 위한 사전 작업 파이썬에서는 fireabse_admin 이라는 패키지를 먼저 설치해야 한다. 각자 개발 환경에 따라서 설치를 진행해 주자. - 아나콘다 conda activate 가상환경 pip install firebase_admin pip3 install firebase_admin - 리..

파이썬으로 일정한 시간마다 동작 수행하기

파이썬을 사용하다 보면 특정 시간마다 수행하게 해야하는 동작들이 있다. 이러한 동작을 실행하기 위해서 파이썬에서는 이것을 위해 라이브러리를 제공한다. 여기서는 2가지 방법을 말할 것이다. 하나는 쓰레딩을 쓰는 것이고, 나머지 하나는 스케줄을 사용하는 것이다. 쓰레드 패키지 이름은 threading 이다. pip 또는 아나콘다를 이용하여 threading 을 설치해 두어야 한다. 예제를 살펴보자. 1 2 3 4 5 6 7 8 9 10 11 12 import time import threading #함수 정의, 함수 내부에 threading 정의 def printhello(): print("Hello!") #threading을 정의한다. 5초마다 반복 수행함. threading.Timer(5, printhe..

파이썬 개발환경 설정하기

파이썬을 개발할 경우에는 자신이 무엇을 하느냐에 따라 적합한 개발환경이 달라진다. 나의 경우에는 Jetbrain 사의 파이참+아나콘다 조합을 이용 중이다. 파이참은 떠오르는 파이썬 개발 환경이고 아나콘다는 데이터 사이언스에 필요한 패키지를 모아둔 프로그램이다. 정말로 특별한 분야에 대한 코딩이 아닐 경우에는 대부분의 패키지는 아나콘다에서 받을 수 있다. 기본적인 원리를 알아보자면, 아나콘다에는 패키지가 담긴 환경을 여러 개 만들 수 있다. 이 환경을 파이참에서 끌어와서 사용할 수 있게 한다. 간단한 원리를 알아보았으니, 개발 환경을 꾸며 보자. 아나콘다 설정 아나콘다 설치부터 하자. 개인용 무료 최신 아나콘다는 아래 사이트에서 설치할 수 있다. https://www.anaconda.com/products..

파이썬 간단한 문자열 처리 및 f-string 포맷팅

파이썬은 여러가지 자료형을 지원한다. 숫자, 리스트, 튜플 딕셔너리, 집합 등등 다양한 자료형을 기본적으로 지원한다. 다른 언어에 비해서 다루는 법도 간단하다고 생각이 든다. 이번 포스팅에서는 문자열 자료형을 다루는 법에 대해서 포스팅 해 볼 것이다. 문자열 선언 문자열은 한 개의 변수 안에 여러개의 글자를 넣는 것이다. 위에서는 apple 이라는 문자열을 a라는 변수에 대입한 것이다. 문자열은 4가지 방식으로 선언이 가능하다. 위에서 선언한 형태는 모두 똑같다. 문자열을 선언하는 것은 모두 같은데, 방법은 모두 다르다. 그 이유는 무엇일까? 문자열의 표현 차이다. 예를 들어 문자열 안에 큰따옴표나 작은따옴표를 넣고 싶을 경우가 있을 것이다. 그러할 때 이러한 기능을 사용한다. 위의 형태로 선언하면, a..

파이썬 버전 변경하는 방법

요즘 영상처리를 간간히 공부하는 중이다. 영상처리 관련 소스를 찾던 중 YOLO v4 라는 영상처리 프로그램을 발견했다. https://github.com/AlexeyAB/darknet AlexeyAB/darknet YOLOv4 (v3/v2) - Windows and Linux version of Darknet Neural Networks for object detection (Tensor Cores are used) - AlexeyAB/darknet github.com 이 프로그램은 사진 또는 영상에서 특정 물체를 인식하고, 그것이 정답일 확률을 알려주는 프로그램이다. 기본적으로 신경망 학습과 영상처리에 관한 라이브러리가 필요하다. 특정 물체를 판별하기 위해서는 데이터 학습을 시킨 후에, 그것을 기반으..

파이썬 ModuleNotFoundError 해결하기

파이썬을 쓰다 보니 외부 모듈을 불러올 때가 많이 필요하다. 데스크톱으로 할 때는 아나콘다에서 바로 설치만 하면 되는데, 실제 리눅스 PC에서 사용할 때는 실행이 되지 않는다. 나의 경우에는 이러한 식으로 경고 메시지가 떴다. pi@raspberrypi:~ $ python3 Python 3.7.3 (default, Apr 3 2019, 05:39:12) [GCC 8.2.0] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import arrow Traceback (most recent call last): File "", line 1, in ModuleNotFoundError: No module name..

C언어로 계산식을 이용한 원주율(파이) 구하기

원주율을 간단한 코딩을 통해 구해 보자. C언어를 이용해 계산을 할 경우에, 원주율의 수치가 필요한 경우가 가끔 있다. 이럴 때 가장 간편한 방법은 define 을 이용해 파이의 변수와 값을 저장해 주는 것이다. 하지만 파이의 정의(수식을 이용한 원주율의 값)를 이용하여 원주율을 구할 수 있다. 원주율은 우리가 일상 생활에서는 파이 라고 간단히 쓰지만, 사실 무리수다. 즉, 정확한 값을 나타낼 수는 없고, 근삿값으로 계산할 수 밖에 없다. 주로 쓰는 원주율은 3.14라고 쓰기에도 충분하지만, 정확한 값을 요구하는 계산에선 더 정확한 값의 원주율을 요구할 수도 있다. 선대의 수학자들은 원주율을 무한급수 형태의 계산식을 통해 원주율을 구했다. 이 계산식을 이용해 원주율을 구해보자. 일단 여기서는 3가지 식을..

c언어의 비트 연산 및 비트 연산자

C언어의 비트 연산을 배우고 나서 좀 헷갈려서 정리하려 합니다. 비트 연산이란, 변수 안에 있는 수를 2진수로 변환 후 각 자릿수에 대해 연산자를 이용해 연산하는 것이다. 비트 연산자에는 & (and) , | (or) , ^ (xor) , ~(not) ,(왼쪽,오른쪽으로 비트 이동)이 있다. and는 둘다 1일때 1출력 or는 하나라도 1일때 1출력 xor는 or에서 둘다 1일때 0을 출력 not은 1이면 0출력 0이면 1출력 한다. 그럼 이제 응용해보자. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 #include int main() { char a=4,b=15,c=127,d,e,j=22; unsigned char f,g,h; unsigned char i=..

C언어의 입력,출력 및 자료형 정리

c언어에서 double 형식의 변수를 %d 로 받으면 계산을 할 때 오류가 납니다. (이상한 값 출력) %lf 로 받아줘야지 정상적인 계산이 가능합니다. 마찬가지로 문자열을 %d 로 받으면 오류가 나고 %c 로 받아줘야지 정상적인 입력 및 출력이 가능해집니다. 나중에 볼려고 문자들을 정리해 보았습니다. (8비트=1바이트,n은 각 자료형의 비트 크기) 자료형태 키워드 크기 문자 범위 문자형 char 1바이트 %c -2^(n-1)~2^(n-1)-1 정수형 short 2바이트 %d int 4바이트 %d double 8바이트 long 4바이트 (붙이는 속성 L) 실수형 float 4바이트 %f 3.4e+-38 double 8바이트 %lf 1.7e+-308 문자형 키워드나 정수형 키워드 앞에 unsigned를 붙..