라즈베리파이 입문 매뉴얼 - cndiworld.cafe24.com · 라즈베리파이는 영국의...

45
1 라즈베리파이 입문 매뉴얼 라즈베리파이 입문 매뉴얼 Chapter 1. 라즈베리파이 ........................................................................................................................................ 4 1.1. 라즈베리파이.............................................................................................................................................. 4 1.2. 라즈베리 파이의 구성 ........................................................................................................................... 5 Chapter 2. 프로그래밍을 알아보자 ................................................................................................................... 8 2.1. 프로그래밍이란? ....................................................................................................................................... 8 2.2. 프로그래밍 언어....................................................................................................................................... 8 2.3. 프로그래밍(코딩)배워야 할까?............................................................................................. 9 Chapter 3. 전기전자 기초 ................................................................................................................................... 10 3.1. 전기에 대한 이해 ................................................................................................................................. 10 3.2. 직류 전기와 교류 전기...................................................................................................................... 10 3.3. 전기의 원리............................................................................................................................................. 10 3.4. 전기의 성질............................................................................................................................................. 11 3.5. 옴의 법칙.................................................................................................................................................. 11 3.6. 전압 분배 법칙 ...................................................................................................................................... 11 3.7. 아날로그 신호와 디지털 신호........................................................................................................ 12 Chapter 4. 개발 환경 구축................................................................................................................................. 13 4.1. 운영체제 설치 ........................................................................................................................................ 13 4.2. 하드웨어 설치 ........................................................................................................................................ 25 Chapter 5. 라즈베리파이 시작하기 ................................................................................................................ 26 5.1. 설정하기.................................................................................................................................................... 26 5.2. 시작하기 전에 ........................................................................................................................................ 26 5.3. GPIO ............................................................................................................................................................ 36 5.4. 프로그램 개발 방법............................................................................................................................. 39 Chapter 6. 원격 제어 ............................................................................................................................................ 41 6.1. SSH 방식 ................................................................................................................................................... 42 6.2. VNC 방식 .................................................................................................................................................. 44

Upload: others

Post on 01-Sep-2019

4 views

Category:

Documents


0 download

TRANSCRIPT

1

라즈베리파이 입문 매뉴얼

라즈베리파이 입문 매뉴얼

Chapter 1. 라즈베리파이 ........................................................................................................................................ 4

1.1. 라즈베리파이 .............................................................................................................................................. 4

1.2. 라즈베리 파이의 구성 ........................................................................................................................... 5

Chapter 2. 프로그래밍을 알아보자 ................................................................................................................... 8

2.1. 프로그래밍이란? ....................................................................................................................................... 8

2.2. 프로그래밍 언어 ....................................................................................................................................... 8

2.3. 프로그래밍(코딩)을 왜 배워야 할까? ............................................................................................. 9

Chapter 3. 전기전자 기초 ................................................................................................................................... 10

3.1. 전기에 대한 이해 ................................................................................................................................. 10

3.2. 직류 전기와 교류 전기 ...................................................................................................................... 10

3.3. 전기의 원리 ............................................................................................................................................. 10

3.4. 전기의 성질 ............................................................................................................................................. 11

3.5. 옴의 법칙.................................................................................................................................................. 11

3.6. 전압 분배 법칙 ...................................................................................................................................... 11

3.7. 아날로그 신호와 디지털 신호 ........................................................................................................ 12

Chapter 4. 개발 환경 구축 ................................................................................................................................. 13

4.1. 운영체제 설치 ........................................................................................................................................ 13

4.2. 하드웨어 설치 ........................................................................................................................................ 25

Chapter 5. 라즈베리파이 시작하기 ................................................................................................................ 26

5.1. 설정하기 .................................................................................................................................................... 26

5.2. 시작하기 전에 ........................................................................................................................................ 26

5.3. GPIO ............................................................................................................................................................ 36

5.4. 프로그램 개발 방법 ............................................................................................................................. 39

Chapter 6. 원격 제어 ............................................................................................................................................ 41

6.1. SSH 방식 ................................................................................................................................................... 42

6.2. VNC 방식 .................................................................................................................................................. 44

2

라즈베리파이 입문 매뉴얼

라즈베리파이 입문 매뉴얼 구성품

3

라즈베리파이 입문 매뉴얼

라즈베리파이

케이스

Micro SD Card

SD Card Reader

HDMI to HDMI 케이블

Micro 5핀 DC Adaptor

방열판

1

1

1

1

1

1

1

4

라즈베리파이 입문 매뉴얼

Chapter 1. 라즈베리파이

라즈베리파이에 대해서 알아보자.

1.1. 라즈베리파이

1.1.1. 라즈베리파이는?

라즈베리파이는 영국의 라즈베리파이 재단이 단순하고 저렴하며 신용카드 정도 크기의

PC로 아이들에게 프로그래밍을 가르치려고 시작됐습니다. 컴퓨터 과학 교육의 증진을 목

적으로 만든 싱글 보드 컴퓨터입니다. 아단순하고 저렴하며 신용카드 크기의 컴퓨터로 컴

퓨터 모니터나 TV에 연결하고 USB 키보드와 마우스를 사용합니다. 인터넷 검색 및 고화

질 비디오의 재생, 스프레드 시트, 워드 프로세싱, 게임 등 일반 데스크톱 PC에서 할수 있

던 것들을 단돈 몇만원정도에 다 할수 있는게 바로 라즈베리파이입니다.

아두이노와 비교해본다면 하나의 보드위에 CPU, 메모리, 네트워킹, 입출력을 갖춘 일종의

컴퓨터라는 점이 아두이노와 구별되는 점입니다.

1.1.2. 싱글 보드 컴퓨터

싱글 보드 컴퓨터(Single-board computer)는 명칭에서 알 수 있듯이 단일 보드(PCB) 위에

중앙처리장치(CPU), 그래픽처리장치(GPU), 메모리, 입출력 장치를 장착한 컴퓨터입니다.

이는 집이나 회사에서 사용되는 많이 사용하는 데스크톱 컴퓨터가 메인보드를 중심으로

각종 장치를 메인보드 슬롯에 끼우고 연결하는 형태와 구별되며, 여러장의 디바이스 보드

가 결합된 형태를 가지는 랩톱 컴퓨터와도 구별됩니다.

5

라즈베리파이 입문 매뉴얼

약자로 SBC라고 부르는 싱글 보드 컴퓨터는 한장의 보드로 구성되어 있기 때문에 관리가

쉽고 성능대비 비교적 저렴한 특징을 가진다. SoC를 사용하여 메인 칩은 소형에 저전력이

고, 다른 컴퓨터에 비해 비교적 작은 크기를 가집니다.

1.2. 라즈베리 파이의 구성

1.2.1. 라즈베리 파이3 B+의 스팩

라즈베리파이 3 B+의 스펙은 다음과 같습니다.

Broadcom BCM2837B0, Cortex-A53 (ARMv8) 64-bit SoC @ 1.4GHz

1GB LPDDR2 SDRAM

2.4GHz and 5GHz IEEE 802.11.b/g/n/ac wireless LAN, Bluetooth 4.2, BLE

Gigabit Ethernet over USB 2.0 (maximum throughput 300 Mbps)

Extended 40-pin GPIO header

Full-size HDMI

4 USB 2.0 ports

CSI camera port for connecting a Raspberry Pi camera

DSI display port for connecting a Raspberry Pi touchscreen display

4-pole stereo output and composite video port

Micro SD port for loading your operating system and storing data

5V/2.5A DC power input

Power-over-Ethernet (PoE) support (requires separate PoE HAT)

전 작인 라즈베리파이 3 B 보다 17%의 성능향상이 있습니다. 주변 부품들이 메인 CPU

로 원칩화되면서 상당히 심플해졌습니다. 또한 듀얼밴드 와이파이와 블루투스 4.2버전을

지원하며 보조 GPIO가 4개 더 생긴 것이 눈에 띕니다. 다만 공식적으로 5V/2.5A의 전력

을 표기한 부분을 보면 기존과 다른점입니다.

6

라즈베리파이 입문 매뉴얼

1.2.2. 라즈베리 파이 필수 액세서리

라즈베리 파이는 기존에 데스크톱의 본체에 해당하는 부분으로 입출력 디바이스는 별도

로 구비해야 합니다.

필수로 사용해야하는 모니터와 같은 디스플레이 장치와 연결을 위한 HDMI 케이블, 그리

고 하드디스크와 같이 보조 기억장치 역할을 하는 Micro SD 메모리, 키보드와 마우스와

같은 입력 장치, 그리고 전원을 공급해 주기 위한 Micro USB 케이블이 필요합니다.

디스플레이 장치 – 모니터 또는 TV

라즈베리 파이는 보드에 HDMI를 가지고 있어 이를 통해 신호를 출력 할 수 있는 LCD

모니터나 TV를 준비한다. 또는 아날로그 컴포넌트 RCA 단자를 입력으로 하는 아날로그

모니터를 필요합니다.

모니터 연결 케이블

준비한 모니터나 TV에 맞는 케이블을 준비합니다. 라즈베리파이는 RCA로도 영상 출력을

할수 있고 HDMI로 출력할수 있습니다. 각자의 상황에 맞게 사용하시면 됩니다.

입력 장치 – 키보드와 마우스

라즈베리 파이 보드의 USB 포트에 연결할 수 있는 키보드와 마우스를 준비합니다. 준비

한 마우스 키보드가 PS2라면 PS2toUSB 컨버터가 필요합니다.

저장 장치 – Micro SD 메모리 카드

마이크로 SD 메모리 카드에는 OS가 설치되며, 함께 제공되지 않으므로 별도로 준비합니

다. 4GB이상이면 사용에 지장은 없습니다만 적어도 8GB이상을 추천드립니다.

Micro SD 메모리 카드 리더

Micro SD 메모리 카드에 운영체제인 라즈비안을 설치하기위해 필요합니다.

전원 케이블

라즈베리 파이3 B+는 전원으로 전압 5V, 전류 2.5A 이상을 공급하도록 권장하고 있습니

다. PC와 연결되는 Micro USB-USB 케이블과 전원 어댑터를 사용하여 전원을 공급 받으며,

5V, 2.5A이상의 전원을 공급하기 위한 전원 장치를 필요합니다.

7

라즈베리파이 입문 매뉴얼

1.2.3. 라즈베리 파이 추가 액세서리

라즈베리 파이는 인터넷을 사용하거나 USB 포트 확을 위해, 또는 기타 목적을 위해 추가

액세서리의 사용이 가능합니다.

방열판

라즈베리파이에는 전체적으로 전력소모가 매우 적어 냉각장치가 필요없긴 하지만 오버클

럭 기능을 사용할 경우, 속도가 빨라지는 대신 발열이 심하게 될 수도 있습니다. 이를 방

지하려면 방열판을 사용하면 효과적입니다.

LAN케이블

라즈베리파이3는 무선 블루투스와 WI-FI기능이 있긴합니다만 이더넷 포트를 사용해서 인

터넷 기능을 부여할 수 있습니다. 더욱이 라즈베리파이3 B+버전은 전작에서 지원하지 않

던 기가 이더넷을 지원합니다.

케이스

라즈베리파이의 기판에 있는 부품들은 외부로 노출되어 있기 때문에 충격이나 수분, 먼지

와 같은 이유로 합선이 일어나 고장이 발생할 수 있으니 케이스를 사용하여 이를 보호해

주는게 좋습니다.

카메라

라즈베리파이는 CSI포트와 USB포트를 통해 카메라를 연결하여 사진 및 동영상을 촬영할

수 있습니다. 라즈베리파이 전용 카메라를 연결시켜 사용할 수 있으며, USB포트로는 일반

적으로 많이 사용하는 웹캠등을 연결해서 사용할수 있습니다.

그외 기타

USB포트가 부족하면 USB포트나 GPIO핀을 통해 외부 장치와 연결할 수 있으며, 각종 센

서, 모터, 출력 모듈 등을 연결하면 추가적으로 기능을 부여할수 있습니다.

8

라즈베리파이 입문 매뉴얼

Chapter 2. 프로그래밍을 알아보자

2.1. 프로그래밍이란?

프로그래밍은 프로그램을 만드는 과정을 말하며 프로그램은 일의 순서 또는 과정을 말합

니다. 우선 다음의 그림을 보면서 프로그램이 무엇인지 설명드리겠습니다.

사과를 박스포장하는 프로그램을 간략화한 과정입니다. 이 프로그램을 만들어서 로봇에

입력한다면 사과를 박스포장하는 로봇이 되겠지요. 즉, 우리가 스마트폰이나 컴퓨터에서

사용하는 인터넷, 게임 등의 프로그램은 컴퓨터를 통해 제작하는 ‘컴퓨터 프로그램’이며,

C언어, 파이썬, 자바, 등의 프로그래밍 언어를 사용하여 프로그래밍함으로써 프로그램을

만드는 것입니다.

2.2. 프로그래밍 언어

프로그래밍 언어는 사람과 디바이스(컴퓨터, 아두이노 등)가 의사소통을 가능하게 해주는

언어입니다. 우리가 키보드로 A 를 입력하지만 사실 컴퓨터는 0 과 1 로 이루어진

기계어로 표현합니다. 0 과 1 만을 사용하는 컴퓨터에서 기계어를 사용하여 프로그램을

9

라즈베리파이 입문 매뉴얼

제작하기란 쉽지 않습니다. 그렇기 때문에 만들어진 것이 C, C++, JAVA 등과 같은

프로그래밍 언어입니다. 즉, 프로그래밍 언어는 사람이 사용하는 언어를 컴퓨터가

사용하는 기계어로 바꿔주는 언어입니다.

2.3. 프로그래밍(코딩)을 왜 배워야 할까?

스티브 잡스는 이렇게 말했습니다. “이 나라 모든 사람들은 컴퓨터 프로그래밍을 배워야

하는 이유는 사고하는 법을 배워야 하기 때문이다.”

기본적으로 뭘 모르는지 모르는 것과, 뭘 모르는지 아는 것은 하늘과 땅만큼의 차이를 가

지고 있습니다. 즉, 뭘 모르는지 모른다면 그것은 개선의 의지가 없다는 것이지만 뭘 모

르는지 아는 것은 개선을 할 수 있다는 것입니다. 그리고 컴퓨터를 기반으로 한 응용프로

그램 활용 능력이 달라집니다. 만약 어떤 학교의 학생들의 반평균과 학년 평균을 구하는

경우 이것을 엑셀과 같은 프로그램으로 순식간에 끝낼지, 아니면 계산기나 암산을 통해서

일일이 사칙연산을 하는지는 시간적으로나 비용적으로나 충분히 우리에게 코딩의 중요성

을 일깨워 줍니다.

4차 산업혁명에선 빅 데이터 분석, 인공지능, 로봇공학, 사물인터넷, 무인 운송 수단, 3차

원 인쇄, 나노 기술과 같은 6대 분야에서 새로운 기술혁명입니다. 이들 분야에선 컴퓨터

는 빼놓을 수는 없을 것입니다. 즉, 프로그래밍을 모른다면 다른 사람들보다 뒤처질수 밖

에 없다고 생각합니다.

10

라즈베리파이 입문 매뉴얼

Chapter 3. 전기전자 기초

3.1. 전기에 대한 이해

전기에너지는 화력, 원자력 등의 발전소에서 만들어진 후 재가공을 거쳐 가정이나 공장

등으로 공급이 됩니다. 집에서 흔히 볼수 있는 콘센트나 여러가지 건전지, 배터리들을 통

해 전기에너지를 공급받아 사용합니다.

일상에서 사용하는 전자 제품이나 부품들은 각각 사용하는 전기의 세기나 양이 정해져

있으므로 잘못 사용한다면 제품들이 고장이 나서 화재가 나거나 감전당할 수 있습니다.

우리가 앞으로 사용할 라즈베리파이나 센서, 모터 등의 전자 부품들 또한 전기에너지를

사용하니 올바른 방법으로만 사용하시기 바랍니다.

3.2. 직류 전기와 교류 전기

전기는 크게 직류전기와 교류 전기로 나뉩니다. 그렇다면 직류 전기와 교류 전기는 무엇

이 다를까요? 다음 그림을 보고 설명하겠습니다.

직류전기는 시간에 관계없이 항상 일정하게 음극에서 양극으로 한 뱡향으로만 흐르는 전

기입니다. 건전지가 이 방식에 해당합니다. 멀리 떨어진 곳으로 전기를 송전하기 위해서

는 전압을 고압으로 승압시켜야하지만 직류는 고압으로의 승압이 어렵기 때문에 일반 가

정에 보급하기가 힘듭니다.

교류전기는 전압, 전류 극성의 방향이 함께 바뀝니다. 그리고 일정 시간에 몇번 바뀌는지

에 따라서 주파수가 정해집니다. 우리가 가정에서 사용하고 있는 콘센트는 220VAC 입니

다.

3.3. 전기의 원리

전기는 원자안의 자유 전자가 외부로 이동하여 생기는 에너지의 한 형태입니다. 원자는

원자핵을 기준으로 전자와 원자핵의 인력을 덜 받는 자유전자가 회전하고 있습니다. 자유

전자는 원자의 외부로 벗어날 수 있으며, 이러한 현상을 ‘전기가 흐른다’고 표현할수 있습

니다.

11

라즈베리파이 입문 매뉴얼

3.4. 전기의 성질

전기의 성질은 전압, 전류, 저항을 통해 정의할 수 있으며, 이는 물이 흐르는 성질에 비유

하여 나타낼 수 있습니다.

전압은 수압에 비유 할 수 있고 저항은 물의 흐름을 방해하는 지형지물과 같습니다. 또한

전류는 물의 흐름입니다.

3.5. 옴의 법칙

전기 회로에서 전지의 전압이 달라지면 같은 전구라도 밝기가 달라집니다. 또 전압이 같

더라도 전구의 저항에 따라 밝기가 달라집니다. 이는 전압은 전류가 흐르도록 도와주고,

저항은 전류의 흐름을 방해하기 때문입니다. 이와 같은 전압, 전류, 저항사이의 관계를 설

명하는 법칙이 옴의법칙입니다.

흔히 R=V/I으로 표현하는데 저항은 전압에 비례하고 전류의세기에 반비례합니다. 추가로

전류는 암페어(A)라는 단위를 사용하고, 전압은 볼트(V), 저항은 옴(Ω)으로 표현합니다.

3.6. 전압 분배 법칙

전압 분배 법칙은 전기 회로 안에 다수의 저항기가 있을 경우 저항기를 지날 때 마다 전

압이 사용되어 전압이 떨어지는 현상을 가지고 어떤 회로나 부품에서 필요로 하는 전압

을 만들어줄 때 사용합니다. 즉, 12V의 입력전압을 가지고 5V의 LED를 켜려고 하면 LED

는 고장이 납니다. 그렇기 때문에 저항기를 추가하여 12V의 전압을 5V로 낮춰 LED를 켤

수 있습니다.

12

라즈베리파이 입문 매뉴얼

3.7. 아날로그 신호와 디지털 신호

전기 신호는 아날로그 신호와 디지털 신호로 나뉘며, 우리가 사용하는 라즈베리파이는 디

지털 신호와 아날로그 신호를 사용하여 부품들을 제어합니다.

13

라즈베리파이 입문 매뉴얼

Chapter 4. 개발 환경 구축

4.1. 운영체제 설치

SD카드에 라즈베리파이 운영체제(OS)를 설치해봅시다.

4.1.1. 라즈베리파이의 운영체제

4.1.1.1. 운영체제란?

운영 체제 또는 오퍼레이팅 시스템(영어: Operating System, OS)은 시스템 하드웨어를 관

리할 뿐 아니라 응용 소프트웨어를 실행하기 위하여 하드웨어 추상화 플랫폼과 공통 시

스템 서비스를 제공하는 시스템 소프트웨어입니다. 최근에는 가상화 기술의 발전에 힘입

어 실제 하드웨어가 아닌 하이퍼바이저 위에서 실행되기도 합니다.

입출력과 메모리 할당과 같은 하드웨어 기능의 경우 운영 체제는 응용 프로그램과 컴퓨

터 하드웨어 사이의 중재 역할을 합니다. 그러나 응용 프로그램 코드는 일반적으로 하드

웨어에서 직접 실행됩니다. 운영 체제는 휴대 전화, 게임기에서부터 슈퍼컴퓨터, 웹 서버

에 이르기까지 컴퓨터를 포함하는 거의 모든 장치에서 볼 수 있습니다. 운영 체제는 한

면으로는 소비자를, 다른 한 면으로는 프로그램 개발자를 함께 하나의 시장으로 데려다

놓을 수 있는 양면 플랫폼입니다. 잘 알려진 현대의 PC 운영 체제에는 마이크로소프트

윈도우, 맥 OS X, 리눅스가 있다. 이 밖에 BSD, 유닉스 등의 PC용 운영 체제도 존재합니

다.

운영 체제는 실행되는 응용 프로그램들이 메모리와 CPU, 입출력 장치 등의 자원들을 사

용할 수 있도록 만들어 주고, 이들을 추상화하여 파일 시스템 등의 서비스를 제공합니다.

또한 멀티태스킹을 지원하는 경우, 여러 개의 응용 프로그램을 실행하고 있는 동안, 운영

체제는 이러한 모든 프로세스들을 스케줄링하여 마치 그들이 동시에 수행되는 것처럼 보

이는 효과를 냅니다.

라즈베리파이에는 라즈비안, 우분투 메이트, 윈도우 10 IoT Core 등의 운영체제가 있습니

다. 가장 많이 사용되는 운영체제들을 추려서 알아보겠습니다.

4.1.1.2. 라즈비안

데비안 리눅스를 기반으로 라즈베리파이에 최적화하여 개발된 전용 운영체제입니다. 라즈

베리파이 재단에서 공식적으로 권장 및 제공하고 있는 운영체제이며 라즈베리파이 계열

의 저성능 ARM CPU에 상당히 최적화 되어 있습니다. 본 매뉴얼은 라즈비안 운영체제를

14

라즈베리파이 입문 매뉴얼

사용하여 공부합니다.

4.1.1.3. 우분투 메이트

리눅스 기반이며 자유 오픈 소스 리눅스 배포판입니다. 우분투 그놈을 기반으로 라즈베리

파이사용에 초점을 맞춘 이미지입니다. 데스크탑 환경을 기본 사용자 인터페이스로 사용

합니다.

4.1.1.4. 윈도우10 IoT Core

마이크로 소프트에서 개발 제공하는 싱글 보드 컴퓨터용 운영체제입니다. 무료로 비주얼

스튜디오 익스프레스를 사용해 해당 기기용으로 실질적인 개발 작업을 진행 할수 있습니

다.

4.1.2. 라즈비안 다운로드

라즈비안을 설치하는 방법은 2가지가 있습니다. 첫번째 방법은 NOOBS파일을 다운받아서

설치하는 방법과 이미지 파일을 다운로드해서 설치하는 방법이 있습니다. 두 방법에 대해

설명해드릴테니 편한 방법으로 설치해보세요.

https://www.raspberrypi.org/ 에 접속해 상단에 있는 Downloads를 클릭합니다.

15

라즈베리파이 입문 매뉴얼

4.1.2.1. 라즈비안 NOOBS 다운로드

NOOBS를 클릭하여 Download ZIP 파일을 다운로드합니다.

16

라즈베리파이 입문 매뉴얼

다운로드 된 압축파일을 압축을 풀어줍니다.

압축을 푼 폴더 안의 파일을 모두 복사해서 SD카드에 붙여넣기합니다.

17

라즈베리파이 입문 매뉴얼

라즈베리파이에 SD카드를 삽입후 실행하면 다음과 같은 화면이 나옵니다.

라즈비안을 누르고 Install을 누르면 운영체제 설치가 진행됩니다. Warning 창이 뜨는데

YES를 눌러 진행하면 됩니다.

18

라즈베리파이 입문 매뉴얼

4.1.2.2. 라즈비안 이미지파일 다운로드

19

라즈베리파이 입문 매뉴얼

다운로드 된 압축파일을 압축을 풀어줍니다.

https://sourceforge.net/projects/win32diskimager/ 에 접속해서 Win32Disk Imager을 다운

받아 설치해줍니다.

20

라즈베리파이 입문 매뉴얼

21

라즈베리파이 입문 매뉴얼

22

라즈베리파이 입문 매뉴얼

23

라즈베리파이 입문 매뉴얼

설치가 완료되면 Win32 Disk Imager을 실행해줍니다. 다음의 그림과 같이 네모안의 버튼

을 눌러서 쓸 이미지파일을 지정하고, 이미지를 쓸 장치를 설정해줍니다.

24

라즈베리파이 입문 매뉴얼

쓸 이미지 파일과 장치를 정하고 Write를 누르면 설치가 시작됩니다.

Write를 누르면 다음과 같은 경고창이 나오는데 Yes를 눌러주면 됩니다.

25

라즈베리파이 입문 매뉴얼

4.2. 하드웨어 설치

Micro SD Card를 라즈베리파이에 삽입해주고 환경에 따라 모니터, 키보드, 마우스, LAN케

이블을 연결해줍니다. 마지막으로 전원을 연결하면 라즈베리파이를 실행됩니다.

26

라즈베리파이 입문 매뉴얼

Chapter 5. 라즈베리파이 시작하기

5.1. 설정하기

5.2. 시작하기 전에

시작하기 전에 우선 라즈비안을 어떻게 사용할지 알아봅시다.

1. Shell: 좌측상단에 보면 네모난 모양의 Terminal을 클릭하면 다음과 같이 터미널

창이 나옵니다. 이 터미널 창의 한줄 한줄을 쉘이라고 합니다.

2. Sudo: 본래 “Super user do”에서 유래 하였으나 후에 프로그램의 기능이 확장되

며 “Substitute user do”의 줄임말로 해석하게 되었습니다.

3. Apt: “Advanced Packaging Tool”의 줄임말입니다. 코어 라이브러리와 함꼐 동작하

는 자유 사용자 인터페이스로, 데비안/리눅스 계열 배포판에서 소프트웨어를 설

치하고 제거하는 일을 합니다.

4. Nano: 유닉스 계열 컴퓨팅 시스템이나 taudfud 줄 인터페이스를 사용하는 운영

환경을 위한 문서 편집기입니다.

5.2.1. 시작하기

라즈비안이 부팅되었습니다. 다음 그림을 보시면 Welcome to Rasspberry Pi라는 응용 프

로그램이 자동으로 시작됩니다. 이 프로그램은 닫기를 눌러서 닫아줍니다.

27

라즈베리파이 입문 매뉴얼

5.2.1.1. LAN 연결 및 WIFI 연결

라즈베리파이에 필요한 자료들을 다운로드 받아야하므로 인터넷에 연결해줍니다.

LAN을 사용해서 연결하면 자동으로 IP를 받아 연결이됩니다. WIFI를 사용한다면 다음을

보고 따라해주시면 됩니다.

우측 상단에 있는 블루투스 모양과 스피커 모양 사이에 있는 것을 클릭하면 Wifi를 연결

할수 있습니다. 연결할 와이파이를 누르면 비밀번호를 입력하는 창이 뜹니다.

비밀번호를 입력하고 OK를 누르면 와이파이가 연결된 표시가 나옵니다.

28

라즈베리파이 입문 매뉴얼

인터넷이 연결됬으니 터미널 창을 열어줍니다. 좌측 상단에 있는 네모난 모양의 아이콘을

누르면 터미널이 켜집니다.

5.2.1.2. 환경설정

설정을 위해 Preferences – Praspberry Pi Configuration에 들어가줍니다.

Sudo apt-get update //어드밴스트 패키징 툴을 업데이트함

Sudo apt-get install fonts-unfonts-core //확인되지 않은 폰트를 설치함

Sudo apt-get install fcitx-hangul –y //다국어 입력기를 설치함

Sudo apt-get install git-core //git-core를 설치함

Git clone git://git.drogon.net/wiringPi //wiringPi 라이브러리 설치함.

Reboot // 재부팅

29

라즈베리파이 입문 매뉴얼

System 탭에서 설정할건 없습니다. Localisation탭으로 가줍시다.

30

라즈베리파이 입문 매뉴얼

Localisation탭에선 Locale, Timezone, Keyboard를 설정합니다.

31

라즈베리파이 입문 매뉴얼

WiFi Country는 설정하지 않습니다. 다음은 Interfaces탭으로 가줍니다.

자신에게 필요한 설정을 해주고 OK를 눌러 재부팅해줍니다. 본 매뉴얼에서는 모든 항목

을 Enable하길 권합니다.

32

라즈베리파이 입문 매뉴얼

5.2.1.3. 다국어 입력기 fcitx 설정

재부팅을 하고나면 Fcitx를 시작합니다.

그러면 우측 상단에 키보드 모양이 생깁니다.

33

라즈베리파이 입문 매뉴얼

키보드 모양을 눌러서 [현재 입력기 설정]을 눌러눕니다.

Input Method Configuration이 켜집니다. 영어 입력기가 등록되어 있습니다.

왼쪽 아래에 있는 + 버튼을 눌러줍니다. 설치했던 Hangul을 선택하고 OK를 눌러줍니다.

34

라즈베리파이 입문 매뉴얼

Global Config탭으로 가서 입력기 전환에 있는 Ctrl+Space 눌르고 자신이 원하는 키를 한

번 입력해줍니다.

Ctrl+Space가 Hangul로 바뀐 것이 보이네요. 한/영 키로 설정했습니다.

개인의 취향이나 상황에 따라서 한/영키를 쓰거나 합니다. 원격 제어시 한/영 키가 안되

는 경우가 있으므로 보조키로 Ctrl+Space를 입력해둬도 좋겠습니다.

35

라즈베리파이 입문 매뉴얼

이러므로 한글 입력을 설정이 끝났습니다. 텍스트 에디터를 열고 확인해보세요.

텍스트 에디터를 열고 타이핑해보니 잘 되네요.

36

라즈베리파이 입문 매뉴얼

5.3. GPIO

5.3.1. GPIO란?

라즈베리 파이는 일상생활에 보편화되어 사용되고 있는 컴퓨터의 축소판입니다. 즉, 라즈

베리 파이를 통해 영상을 보고, 문서작업을 하며, 웹서핑을 할 수 있습니다. 더 나아가 보

통 컴퓨터에서 찾아볼 수 없던 GPIO 커넥터 핀를 제공하고 있어 마이크로컨트롤러와 같

이 입출력 신호의 제어가 가능합니다.

GPIO(General-purpose Input Output)란, 범용으로 사용되는 입출력 포트를 말하며, 임베디

드 시스템의 여러가지 기능을 위한 주변장치 및 소자들을 동작시키고 그것들이 원하는

방식으로 인터페이스를 하기 위해 적절한 신호를 전달하며, 설계자가 원하는 동작을 수행

하기 위하여 포트를 입력 및 출력으로 구성합니다.

간단히 예를 들면, LED ON/OFF, FND 제어, Buzzer 소리를 켜기 위해서 해당 소자에 0 혹

은, 1의 신호를 보내주는 것이고, TEXT-LCD에 글자를 출력하기 위한 병렬신호를 보내주는

것입니다.

라즈베리파이 보드에는 40개의 핀을 쉽게 찾아볼 수 있습니다. 이 핀들이 외부와 인터페

이스가 가능하도록 구성되며, 이 핀들은 GPIO 기능 이외에도 다른 장비와의 통신을 위한

SPI, I2C, UART 등 기능을 가지고 있어 다양한 목적으로 활용이 가능합니다. 이 핀들의 구

성은 다음과 같습니다.

37

라즈베리파이 입문 매뉴얼

5.3.2. wiringPi 라이브러리

라즈베리 파이의 GPIO를 제어하기 위해서 사용되는 언어는 C, C++, Java, Python 등 매우

다양하며, 각 언어에 따라 사용자들이 라이브러리를 작성하여 공유하고 있다. 그중에 본

교재에서는 C를 사용하여 GPIO를 제어하기 위하여 wiringPi를 사용한다.

wiringPi는 GPIO 라이브러리이며, 라즈베리 파이 안에서 사용되는 BCM2835와 BCM 2836

을 위한 C로 작성되어 있다. 이것은 GNU LGPLv3 라이선스 아래에서 릴리즈되고, C와

C++, 그리고 많은 다른 언어를 사용할 수 있다. 이는 아두이노의 “wiring” 시스템을 사용

해온 사람들에게 매우 친근하게 디자인되어 있다.

5.3.3. wiringPi 라이브러리 다운로드

다음 명령어를 쉘에 차례로 입력해줍니다.

입력을 해서 설치가 다 되었다면 다음 단계로 넘어갑니다.

이러므로 wiringPi를 사용하기 위한 준비가 모두 끝났습니다.

라이브러리가 제대로 설치되었는지 확인하기위해서 다음의 명령어를 입력해봅니다.

Gpio -v

Sudo apt-get install git-core

Git clone git://git.drogon.net/wiringPi

cd wiringPi

git pull origin

./build

38

라즈베리파이 입문 매뉴얼

Raspberry Pi Details 부분을 보면 라즈베리파이상에 표시된 모델과 Revision이 일치되는

것을 확인가능하며, 모델과 버전에 따라 다른 WiringPi가 필요하다.

WiringPi가 설치되면 다음 명령어를 사용해 라즈베리 파이의 핀맵을 확인할 수 있다. 앞

으로 프로그램을 작성 시, 종종 GPIO 핀 번호를 확인하므로 명령어를 숙지하는 것이 좋

다.

Gpio readall

39

라즈베리파이 입문 매뉴얼

5.4. 프로그램 개발 방법

5.4.1. 프로그램

Nano에디터와 Gcc를 이용하여 컴파일 해봅시다. 쉘에 다음 명령을 입력합니다.

nano Helloworld.c

화면에 타이핑이 가능한 곳이 나옵니다 여기에 다음의 소스를 입력하고 Ctrl+X 를 누르고

Y를 누르고 Enter를 쳐서 나옵니다.

5.4.1.1. 소스 코드 작성

1 #include<stdio.h>

int main(void)

{

printf("Hello world\n");

return 0;

}

2

3

4

5

6

저장후 쉘에 다음 명령어를 입력합니다.

gcc –o HelloWorld Helloworld.c

./HelloWorld

문제없이 컴파일이 된다면 프로그램이 돌아가면서 Hello World를 화면에 출력합니다.

40

라즈베리파이 입문 매뉴얼

5.4.1.2. Nano 에디터

nano 에디터는 다른 텍스트 에디터들에 비해 가볍고 사용하기 쉽다, 다만, 다양한 기능을

지원하지 않는다. nano 에디터는 문서의 내용을 구분하기 위해 색상 등을 기본적으로 제

공한다. 파일을 편집하려면 nano 에디터를 실행할 때 “nano [파일명]”을 입력하여 불러올

파일을 지정하면 된다.

파일을 생성하고 싶을 때에도 같은 방식으로 명령을 입력하면, 해당파일이 없는 경우, 입

력한 파일명으로 파일이 생성된다. 이렇게 생성하고 불러온 파일에 프로그램을 하고,

Ctrl+X 키를 누르면 에디터를 종료할 수 있다. 내용이 편집된 경우에는 변경된 내용의 저

장 여부를 묻는데 “Yes”, “No”의 첫 알파벳을 입력하여 결정한다. 이 밖에도 다양한 기능

을 제공하는데 추가적인 기능은 Ctrl+G 키를 눌러 도움말을 살펴본다.

5.4.1.3. GNU 컴파일러 모음

“CNU C Compiler”였지만 기능이 추가되면서 GNU 컴파일러 모음(GNU Compiler Collec-

tion, 줄여서 GCC)가 되었습니다. GUN프로젝트의 일환으로 개발되어 널리 쓰이고 있는

컴파일러입니다.

작성된 소스코드는 빌드 과정을 거쳐 프로그램을 실행할 수 있는 실행 파일의 형태를 가

진다. 빌드 과정은 크게 컴파일(Compile)과 링크(Link)로 나뉜다. 빌드 중에 소스코드의 문

법에 오류가 있는 경우, 경고나 에러를 발생하고 중지한다. 라즈비안의 기본 컴파일러인

GCC를 사용하며, 빌드 명령은 다음과 같다.

gcc –o [목적파일] [소스파일] [라이브러리]

gcc –o HelloWorld helloworld.c –lwiringPi

gcc의 옵션으로 ‘-o’를 사용하였으며, 이는 실행파일에 대한 이름을 부여한다. 여기서는

“helloworld”라는 이름을 부여하였다. 이 밖에도 gcc 컴파일러는 다양한 옵션을 가지고 있

는데 자세한 내용은 쉘(Command Line)에 “gcc --help"를 입력하여 확인할 수 있다.

41

라즈베리파이 입문 매뉴얼

Chapter 6. 원격 제어

라즈베리파이의 원격에 접속하게 되면 기존에 사용하던 윈도우 컴퓨터에서 라즈베리파이

를 사용할수 있게 됩니다. 그 때의 이점은 키보드와 마우스, 모니터 등의 추가 구성을 줄

일 수 있는데 있습니다. 본 매뉴얼에서는 SSH와 VNC를 이용한 원격 접속 제어 방법을

소개합니다.

Raspberry Pi Configuration에 들어가줍니다.

42

라즈베리파이 입문 매뉴얼

SSH와 VNC를 Enable 시켜주고 재부팅을 해줌으로써 라즈베이파이에서의 준비는 완료됬

습니다.

6.1. SSH 방식

SSH(Secure Shell)은 라즈베리파이의 원격에 접속하는 흔한 방법입니다. 라즈베리파이의

모든 명령어를 사용할 수 있을 뿐만 아니라, 통신을 암호화하기 때문에 보안이 뛰어나다

는 장점이 있지만, 터미널창(콘솔 환경)만 사용할 수 있다는 단점이 있습니다.

https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html 에 접속하여 putty를 다

운로드 받습니다. 여기가 아닌 다른곳에서 다운로드해도 됩니다. 다운로드한 putty를 실행

합니다.

Host Name에 라즈베리파이의 IP주소를 넣고 Open을 눌러줍니다. 그러면 login as: 라고

입력 창이 나옵니다. 여기는 라즈베리파이의 아이디와 비밀번호를 입력해줍니다. 아이디

와 비밀번호를 바뀐적이 없다면 아이디는 pi이고 비밀번호는 raspberry입니다.

43

라즈베리파이 입문 매뉴얼

44

라즈베리파이 입문 매뉴얼

6.2. VNC 방식

VNC(Virtual Network Computing, 가상 네트워크 컴퓨팅)는 컴퓨터 환경에서 RFB 프로토

콜을 이용하여 원격으로 다른 컴퓨터를 제어하는 그래픽 데스크톱 공유 시스템입니다. 자

판과 마우스 이벤트를 한 컴퓨터에서 다른 컴퓨터로 전송시켜서 네트워크를 거쳐 그래픽

화면을 갱신하는 방식을 제공합니다. SSH를 이용한 것보다 속도가 느린 점이 있지만 그래

픽을 활용할수 있다는 장점이 있습니다.

VNC를 통한 원격 연결은 VNC뷰어라고 불리는 프로그램을 PC 또는 스마트폰에 설치해야

합니다. VNC프로그램 간에 호환이 되기 때문에 어떤 VNC클라이언트 프로그램을 쓰던 상

관이 없습니다. 본 매뉴얼은 https://www.realvnc.com/en/connect/download/viewer/에서

받은 VNC Viewer을 사용합니다. 설치가 완료되면 VNC 뷰어를 실행해 봅니다.

45

라즈베리파이 입문 매뉴얼

상단의 입력란에 라즈베리파이의 IP를 넣어줍니다. 그러면 다음과 같은 창이 뜹니다.

유저네임과 패스워드를 입력해줍니다. 아이디와 비밀번호를 바뀐적이 없다면 아이디는 pi

이고 비밀번호는 raspberry입니다. 다음과 같이 연결된 모습입니다.