본문 바로가기
기계공학부 시절의 기록/라즈베리파이-IoT

라즈베리파이 설치와 파이썬 #1/8

by juhyeonglee 2020. 8. 18.
728x90
반응형

학교에서 진행하는 라즈베이파이를 활용한 IoT플랫폼 구축에 대한 내용을 기록하고자 한다.

 

오늘은 아래의 내용을 공부했다.

 

1. 라즈베리파이란

2. 라즈베리파이 개발환경

3. 파이썬 기본

 

1. 라즈베리파이란

PC에 하드와 메모리가 있다면 라즈베리에는 메모리와 MICRO SD카드가 있다. 작은 컴퓨터로 제어하고자 하는 물체를 제어하기 위해 필요하다. 아두이노도 있지만 카메라로부터 이미지 데이터를 받고 처리하기 위해서는 그래픽처리성능과 속도가 빠른 라즈베리파이가 좋다.

 

가격이 매우 비싼줄 알았지만 라즈베리4 기준 55$, 라즈베리3은 35$로 6만원이 안되는 가격이다. 물론 아두이노에 비하면 저렴하지도 않다.

라즈베리파이3

 

(내 생각 끄적)

보통 가정에서의 iot를 생각하지만 실제로 유튜버의 후기를 보면 하나의 플랫폼으로 통합시키는 것이 다소 수고스럽고 때문에 신기한 느낌이 사라지고 나면 안쓰게 되더라는 후기도 있었다.

오히려 자동차에서 더 필요할 것 같다.

자동차 iot를 커넥티드카라고 부른다고 한다. 또, 헬스케어로 시계처럼 장착하여 시계로 부터 여러가지 건강정보를 수집하여 진단/분석을 하는.

스마트 홈/스마트 팜/스마트 팩토리/스마트 카 ...

 

 

2. 라즈베리파이 개발환경

PC에 윈도우 혹은 우분투를 설치하는 것 처럼 라즈베리파이에 라즈베리파이OS를 설치해야한다.

 

이를 위해

1) 라즈베리파이 운영체제 다운

https://www.raspberrypi.org/downloads/raspberry-pi-os/

 

Download Raspberry Pi OS for Raspberry Pi

Raspberry Pi OS (previously called Raspbian) is the Foundation's official supported operating system. Install it with NOOBS or download the image below.

www.raspberrypi.org

 

2) diskimager 다운

https://prasowa.tistory.com/9

 

micro SD카드를 포맷하고 라즈비안os 설치하기

얼마 전부터 라즈베리파이의 node-red가 실행이 되지 않아 시도 끝에 결국 사용하던 sd카드를 포맷하기로 했다. 작업에 필요한 것은 1. 포맷할 마이크로 SD카드 (라즈 비안 설치용은 16gb 이상) 2. sd카

prasowa.tistory.com

설치 이후 라즈베리파이에 여러 하드웨어를 연결하고 이제 os를 라즈베리파이에 설치한다.

https://kocoafab.cc/tutorial/view/299

 

라즈베리 파이-(1)초기화 및 OS설치

 

kocoafab.cc

3. 파이썬 기본

1) python 과 C, C++, JAVA 

파이썬은 Interpriter 언어이다. 

즉, 컴파일과 링크의 과정이 없다. --> 한줄 적고 한 줄 실행이 가능하다.  --> C언어의 int main() 처럼 시작점이 나타나있지 않다. 그냥 그 줄을 실행할 뿐.

C/C++/JAVA경우 : 소스코드를 컴파일하면 object code(기계어가 포함된)가 생성 --> 링크작업 (여러 라이브러리와 연결) --> 실행파일 만들기의 순서를 거쳐 실행한다.

 

파이썬은 변수의 자료형이 바뀔 수 있다.

예를 들어 int라고 해놓고 이후에 값을 다르게 넣으면 자료형이 알아서 변경이 된다.

 

""와 ''는 구분하지 않는다.

 

문자열 결합의 경우 문자열과 숫자열을 결합할 수 없고 숫자열을 str(수)를 이용해 문자열로 바꾼뒤에 결합가능하다.

 

동시대입, 반환이 가능하다.

 

from <파일명> import <함수명>을 이용해 외부의 함수를 쓸 수 있다.

마치 C++의 #include <라이브러리>와 비슷하다.

기본 수학 내장연산함수는 그냥 사용하면 되지만 그 외의 함수들은 import math로 모듈(라이브러리)를 불러와야 한다. 
(사용할 때는 모듈명.함수명으로 사용한다.)

 

2) 파이썬 기본 문법

[조건문]

if 기본구문

다른언어에서는 들여쓰기가 문법적으로 의미가 없고 중괄호{}로 종속관계를 표현하지만

파이썬에서는 들여쓰기로 종속관계를 표현한다. (tab or 공백문자 사용. 한 코드 안에서는 일관되어야 함.)

조건을 만족했을 때 실행하는 문장이 없을 경우 에러가 발생 --> 아무것도 하지 않고 싶다면 pass 사용

 

if else

각 경우 마다 실행문장이 있어야함.

 

if else 확장구문 (if elif elif ... else)

조건이 여러개가 있는 경우

 

[반복문]

while 조건문:

   실행문

   증감문

즉, 조건을 지정 후 조건을 만족하는 동안 반복

ex1.

count = 0

while count <30:

   print("좋은날")

   count = count +1 // count++는 안되나???

 

for <변수명> in range(범위):

   실행문

즉, 지정된 횟수만큼 반복

ex2.

for count in range(0,30):

   print("좋은날")

 


range(a) : 0, 1, 2 ... a-1 //a보다 작은수까지 index

range(5, 1, -1) : 5, 4, 3, 2  //5이하 1초과로 -1씩 증감하여 

 

[함수 정의]

def <함수명>(파라미터리스트) : //함수헤더

  ~~

 

[변수]

변수에는 지역변수(local variable) 전역변수(global variable)로 나뉨

??global variable 보다는 call back function를 사용하라는 말은 왜??? -- 프로그램의 유지보수에 있어서 매우 중요

함수 안에 종속되어 있는 변수는 지역변수, 함수 바깥에서 있다면 전역변수

 

[코드 모듈/라이브러리화] --분업에 최적화

모듈화된 소스코드, 함수들을 다음의 문법으로 불러올 수 있다.

from <파일명> import <함수명>

혹은

import <파일명>.<함수명>

from <파일명> import * : 해당 파일의 모든 함수를 불러옴 -- 다른 모듈의 동일한 함수가 있다면 충돌이 일어남. 비추

또, 하위 폴더 혹은 다른 경로의 함수를 불러오기 위한 방법들도 있다.

 

[리스트] 하나의 공간에 여러개의 데이터 저장  // c에서의 array와 비슷.

필요한 경우 : 많은 사람의 데이터의 평균값을 구하고자 하는데 리스트가 없을 경우 하나의 데이터를 하나의 변수에 저장하여야 하고 반복문을 이용할 수 없어 매우 비효율적 

 

[array(c++)와 list(python)의 차이점]

array에는 하나의 자료형의 데이터만 같이 들어갈 수 있지만 list에는 다른 자료형의 데이터가 함께 들어갈 수 있다.

 

[시퀀스] 리스트 큐플 딕셔너리 처럼 연속된 자료형을 시퀀스라함.

 

[튜플] 리스트와 비슷하지만 원소가 고정되어 바꿀 수 없다는 차이가 있다.

 

[딕셔너리] 인덱스를 사용하지 않고 원소에 고유한 키를 부여해 수많은 데이터중에서 원하는 타깃의 원소의 데이터를 불러오기 위함.

 

[슬라이싱]


파이썬 실습해보자....!!

c++도

 

[간단한 실습방법]

메모장을 이용해 py확장자의 소스코드를 작성

명령프롬프트에서 해당 경로의 파일에 이동

python <파일명>.py

 

 

 

 

728x90
반응형

댓글