라즈베리파이 프로그래밍_130912(최종).indd

Similar documents
인디쓔피-IOM핸돜벁닄큐1014pdf, page Preflight ( IOM핸돜벁닄큐__1014 )

라즈베리파이_내지_ indd

라즈베리파이를이용한사물인터넷_내지(1도)_최종_ indd

Learn Raspberry Pi with Linux by Peter Membrey, David Hows Original English language edition published by Apress, Inc. Copyright c 2013 by Apress. Kor

양파 공동체 中 이제 들여보내 다오. 나는 쪼개지고 부서지고 얇아지는 양파를 쥐고 기도했다. 도착하면 뒷문을 열어야지. 뒷문을 열면 비탈진 숲, 숲을 지나면 시냇물, 굴러 떨어진 양파는 첨벙첨벙 건너갈 것이다. 그러면 나는 사라질 수 있겠다. 나는 때때로 양파에 입을

피해자식별PDF용 0502

마리오와 소닉 리우 올림픽™

Copyright by Korean Local-government Management Institute. ALL RIGHTS RESERVED. No part of this publication may be reproduced, stored in a retrieval s

Raspbian 설치 라즈비안 OS (Raspbian OS) 라즈베리파이 3 Model B USB 마우스 USB 키보드 마이크로 SD 카드 마이크로 SD 카드리더기 HDM I 케이블모니터

목차 개요 3 섹션 1: 해결 과제 4 APT(지능형 지속 위협): 이전과 다른 위협 섹션 2: 기회 7 심층 방어 섹션 3: 이점 14 위험 감소 섹션 4: 결론 14 섹션 5: 참조 자료 15 섹션 6: 저자 소개 16 2

안전을 위한 주의사항 제품을 올바르게 사용하여 위험이나 재산상의 피해를 미리 막기 위한 내용이므로 반드시 지켜 주시기 바랍니다. 2 경고 설치 관련 지시사항을 위반했을 때 심각한 상해가 발생하거나 사망에 이를 가능성이 있는 경우 설치하기 전에 반드시 본 기기의 전원을

<BFB9BCFAB0E6BFB5C1F6BFF8BCBEC5CD5F BFB9BCFAB0E6BFB520C4C1BCB3C6C FB3BBC1F628C3D6C1BEBBF6BAAFC8AF292E706466>

Copyrights and Trademarks Autodesk SketchBook Mobile (2.0.2) 2013 Autodesk, Inc. All Rights Reserved. Except as otherwise permitted by Autodesk, Inc.,

Copyright 2004 Sun Microsystems, Inc Network Circle, Santa Clara, CA U.S.A..,,. Sun. Sun. Berkeley BSD. UNIX X/Open Company, Ltd.. Sun, Su

Solaris Express Developer Edition

Copyright 2012, Oracle and/or its affiliates. All rights reserved.,.,,,,,,,,,,,,.,...,. U.S. GOVERNMENT END USERS. Oracle programs, including any oper

PI ZH-CN

차례 사용하기 전에 준비 및 연결 간편 기능 채널 관련 영상 관련 음성 관련 시간 관련 화면잔상 방지를 위한 주의사항... 4 각 부분의 이름... 6 제품의 설치방법 TV를 켜려면 TV를 보려면 외부입력에 연결된 기기명을 설정하려면..


Nikon KeyMission 360. KeyMission 360 ( 1.5) SnapBridge 360/170 ( 1.1). SnapBridge 360/170., SnapBridge 360/170 OS.. KeyMission 360/ SnapBridge 360/170

목차 006/ 008/ 009/ 011/ 012/ 013/ 014/ Part 1_ 컴퓨터가 제대로 작동하지 않을 때 문제00_ 윈도우7 복구(초기화) 방법 안내 문제01_ 컴퓨터의 전원 버튼을 눌러도 아무 반응이 없어요. 문제02_ 전원을 누르면 팬(쿨러)이 돌아가는

Hardware Manual TSP100

CyberLink YouCam µµ¿ò¸»

환 경 시 스 템 팀 김 유 승 권 영 덕 선 진 양 돈 PM 박 종 문 보 람 농 업 회 사 법 인 류 제 선 단 양 GGP 선 진 브 릿 지 랩 고 상 억 선 진 식 육 유 통 BU 이 장 근

KeyMission 360 KeyMission ( ).... 4K UHD., 60 cm... ii KeyMission 360

라즈베리파이 프로그래밍_130912(최종).indd

CX2 Camera User Guide

歯얻는다.PDF

APOGEE Insight_KR_Base_3P11

Copyright 2009 Hewlett-Packard Development Company, L.P. Intel 은 미국 및 다른 국가에서 Intel Corporation 의 상표입니다. Microsoft 및 Windows 는 Microsoft Corporation 의

CONTENTS

일제.PDF

CONTENTS 목차 1. 전원 및 설치시 주의사항 2 2. 시스템 사용시 바른 자세 4 3. 시스템 구성품 확인 5 슬림형 케이스1 6 슬림형 케이스2 7 타워형 케이스1 8 타워형 케이스2 9 일체형 케이스1 10 망분리형 케이스 시스템 시작 및 종료

마사코.PDF

CLX8380_KR.book

Boot Camp 설치 및 설정 설명서

스마트폰 저렴하게 구매하는곳

AVN9272Kor_091215

<BFC0B7A3C1F6C4B72DBBE7BFEBC0DABCB3B8EDBCAD5FC8AEC0E5BABB C7D1B1DB295F E6169>

CyberLink YouCam

소개 TeraStation 을 구입해 주셔서 감사합니다! 이 사용 설명서는 TeraStation 구성 정보를 제공합니다. 제품은 계속 업데이트되므로, 이 설명서의 이미지 및 텍스트는 사용자가 보유 중인 TeraStation 에 표시 된 이미지 및 텍스트와 약간 다를 수

사용설명서를 읽기 전에 사용설명서를 읽기 전에 아래 사항들을 확인하세요. 안전을 위한 주의사항에 사용되는 아이콘 경고 아이콘 명칭 의 미 주의 경고 지시사항을 위반할 경우 사람이 사망하거나 중상을 입을 가능성이 있는 내용 경고 주의 주의 지시사항을 위반할 경우 사람이

FD¾ØÅÍÇÁ¶óÀÌÁî(Àå¹Ù²Þ)-ÀÛ¾÷Áß

인켈(국문)pdf.pdf

Arctic Plants living in Ny-Ålesund and Longyearbyen, Svalbard by Yoo Kyung Lee, Gyu Lee, Eun Ju Lee 다산과학기지 주변에서 볼 수 있는 북극 식물 Arctic Plants living in N

LCD Monitor

Sun Java System Messaging Server 63 64

Assign an IP Address and Access the Video Stream - Installation Guide

국어부록표지

歯k"

_....

BSC Discussion 1

DR-M140 사용 설명서

Microsoft Word - HD-35 메뉴얼_0429_.doc

pdf

Copyright 2009 Hewlett-Packard Development Company, L.P. Microsoft 및 Windows 는 Microsoft Corporation 의 미국 등록 상표입니다. Bluetooth 는 해당 소유권자가 소유한 상표이 며 Hew

ODS-FM1

No

manual pdfÃÖÁ¾

Flute-GR_BV199_DOS.indb

DE1-SoC Board

벤처연구사업(전동휠체어) 평가

알아 둘 사항 아이오드 제조사는 본 기기에 하드디스크를 포함하여 출고하지 않습니다. 따라서 하드디스크에 문제가 발생할 경우, 구매처 또는 해당 하드디스크 서비 스센터에 문의 하시기 바랍니다. 정해진 용도 외의 사용으로 발생한 문제에 대해서, 당사는 어떠한 책임도 지지

공급 에는 3권역 내에 준공된 프라임 오피스가 없었다. 4분기에는 3개동의 프라임 오피스가 신규로 준공 될 예정이다.(사옥1개동, 임대용 오피스 2개동) 수요와 공실률 2014년 10월 한국은행이 발표한 자료에 따르면 한국의 2014년 경제성장률 예측치는 3.5%로 지

슬라이드 제목 없음

목차 1. 제품 소개 특징 개요 Function table 기능 소개 Copy Compare Copy & Compare Erase

처음에 읽어 주십시오 본 제품을 사용하시기 전에 이 사용설 명서를 자세히 읽고 장래에 참조할 수 있도록 소중히 보관하여 주십시오. 한국내 고객용 경고 화재 또는 감전의 위험을 줄이기 위해 장치를 비 또는 습기에 노출시 키지 않도록 하여 주십시오. 배터리를 햇빛, 불 등

설명서 보기 본 카메라에는 내장 설명서가 탑재되어 있습니다. MENU (카메라 내장 설명서) 카메라 내장 설명서 MENU 항목 및 설정 값에 대한 설명이 표시됩니다. 1 2 MENU 버튼을 누릅니다. 원하는 MENU 항목을 선택한 다음에 버튼을누릅니다. (카메라 내장

다음 사항을 꼭 확인하세요! 도움말 안내 - 본 도움말에는 iodd2511 조작방법 및 활용법이 적혀 있습니다. - 본 제품 사용 전에 안전을 위한 주의사항 을 반드시 숙지하십시오. - 문제가 발생하면 문제해결 을 참조하십시오. 중요한 Data 는 항상 백업 하십시오.

LCD Monitor

LCD Monitor

PowerPoint 프레젠테이션

0-Contents.indd

ii 2008 Advanced Micro Devices Inc. 판권 본사 소유. 이 문서의 내용은 Advanced Micro Devices, Inc.( AMD ) 제품과 함께 제공됩니다. AMD 는 이 간행물 내용의 정확 성 또는 완전성에 대해 진술 및 보증을 하지

<%DOC NAME%> (User Manual)

cam_IG.book

사물인터넷비즈니스빅뱅_내지_11차_ indd

별지 제10호 서식

[발표자료]기업용모바일 활성화를 위한 제언(박종봉)

안철수.PDF

Avaya G700 Media Gateway 하드웨어 설치의 빠른 시작

ESET Mail Security for Microsoft Exchange Server

6 강남구 청담지구 청담동 46, 삼성동 52 일대 46,592-46,592 7 강남구 대치지구 대치동 922번지 일대 58,440-58,440 8 강남구 개포지구 개포동 157일대 20,070-20,070 9 강남구 개포지구중심 포이동 238 일대 25,070-25,

27집최종10.22

황룡사 복원 기본계획 Ⅵ. 사역 및 주변 정비계획 가. 사역주변 정비구상 문화유적지구 조성 1. 정비방향의 설정 황룡사 복원과 함께 주변 임해전지(안압지) 海殿址(雁鴨池)와 분황사 등의 문화유적과 네트워크로 연계되는 종합적 정비계획안을 수립한다. 주차장과 광장 등 주변

목차 채널 메뉴 채널 정보 보기 1 채널 메뉴 사용하기 2 선호 채널 설정하기 17 채널 기억하기 19 기타 기능 22 기본 기능 화면 모드 변경하기 23 화면 조정값 설정하기 25 화면 크기 변경하기 27 부가 설정 변경하기 32 TV를 PC 모니터로 사용하기 45

10년 후 중국.PDF

I 안전 지침 다음 안전 지침을 이용해 사용자 자신과 북톱(Booktop)를 보호하십 시오. M1022 북톱(Booktop) 컴퓨터를 사용할 때 주의: 휴대용 컴퓨터를 신체 위에 직접 올려놓고 장시간 동 안 사용하지 마십시오. 장시간 작동으로 인해 컴퓨터 밑부 분에서

DSC-S950/S980

0922 Monitor22...._kor_1

P2WW HNZ0

vm-웨어-01장

Copyright 2012, Oracle and/or its affiliates. All rights reserved.,,,,,,,,,,,,,.,..., U.S. GOVERNMENT END USERS. Oracle programs, including any operat


10X56_NWG_KOR.indd

<C6EDC1FDBABB2DB5F0C0DAC0CEBAD0BEDF2E687770>

AVG PC TuneUp User Manual

. PC DP-1VR P15 1ch 1 Input Tool 4ch RS-232C RS-232C. Input Tool P14 MUX-10F P16 MeasureReport P21 GO/NG 2 MeasurLink Real-Time P19 MeasurLink STATMea

My Passport for Mac User Manual

목 차 1. 안전을 위한 주의사항 2. 사 전에 2-1. 제품 특징 2-2. 제품 구성 2-3. 각 부분의 명칭 전 뷰어 / 뷰어 설정 전 뷰어 / 환경 설정 환경설정 본 값 재생방법 (블랙박스) 3-15.

Transcription:

파이썬으로 시작하는 라즈베리 파이 프로그래밍 Programming the Raspberry Pi Getting Started with Python

Programming the Raspberry Pi: Getting Started with Python, 1st Edition. Korean Language Edition Copyright 2013 by McGraw-Hill Education Korea, Inc. All rights reserved. No part of this publication may be reproduced or distributed in any form or by any means, or stored in a database or retrieval system, without prior written permission of the publisher. 1 2 3 4 5 6 7 8 9 10 J Pub 20 13 Original: Programming the Raspberry Pi: Getting Started with Python, 1st Edition. 2013 By Simon Monk ISBN 978-0-07-180783-8 This book is exclusively distributed by J Pub. When ordering this title, please use ISBN 978-89-94506-76-0 Printed in Korea 파이썬으로 시작하는 라즈베리 파이 프로그래밍 Programming the Raspberry Pi Getting Started with Python 초판 1쇄 발행 2013년 9월 27일 지은이 사이먼 몽크 옮긴이 배장열 펴낸이 장성두 펴낸곳 제이펍 출판신고 2009년 11월 10일 제406 2009 000087호 주소 경기도 파주시 문발동 파주출판도시 530 1 뮤즈빌딩 403호 전화 070 8201 9010 / 팩스 02 6280 0405 홈페이지 www.jpub.kr / 이메일 jeipub@gmail.com 편집부 이민숙, 이 슬 용지 신승지류유통 / 인쇄 해외정판사 / 제본 광우제본 ISBN 978 89 94506 76 0 (93000) 값 18,000원 이 책은 저작권법에 따라 보호를 받는 저작물이므로 무단 전재와 무단 복제를 금지하며, 이 책 내용의 전부 또는 일부를 이용하려면 반드시 저작권자와 제이펍의 서면동의를 받아야 합니다. 잘못된 책은 구입하신 서점에서 바꾸어 드립니다. 제이펍은 책에 관한 독자 여러분의 아이디어와 원고 투고를 기다리고 있습니다. 책으로 펴내고자 하는 아이디어나 원고가 있으신 분께서는 책에 대한 간단한 개요와 차례, 구성과 저(역)자 약력 등을 메일로 보내주세요. jeipub@gmail.com

파이썬으로 시작하는 라즈베리 파이 프로그래밍 Programming the Raspberry Pi Getting Started with Python Simon Monk 지음 배장열 옮김 TP2 C13 S6 ACT PWR FDX LNK 100 P1 R1 R2 C4 D4 Made in the UK C7 C5 C9 RG1 RG3 IC2 C15 S4 C16 C17 C18 R15 P3 C20 R21 R20 R27 R26 C26 C28 C32 C29L4 Raspberry Pi (c)2011.12 P2 R19 R16 R17 IC3 L3 R22 R23 C27 C30 R28 C31 S7 R18 R24 Power C2 S2 TP1 RG2 C11 C8 C10 D1 C97 IC1 R13 R1 R2 R14 D2 C19 D3 S3 220 CFP. 2G6 S1 C3 C6 C12 P6 D18 C14 R11 S5

나의 형제인 앤드루 몽크와 팀 몽크에게 그들의 사랑과 지혜에 감사하며

차 / 례 1 2 3 옮긴이의 말 10 감사의 말 12 이 책에 대하여 13 기지개를 켜다 15 라즈베리 파이의 정체 15 라즈베리 파이로 무엇을 할 수 있을까 17 라즈베리 파이의 구석구석 18 라즈베리 파이 설정하기 20 필요한 것 마련하기 21 합체하기 29 시작하기 30 마무리 31 첫발을 떼다 33 리눅스 33 데스크탑 34 인터넷 37 커맨드 라인 38 터미널과 친해지기 39 sudo 41 애플리케이션 42 각종 인터넷 리소스 45 마무리 45 파이썬 기초를 세우다 47 IDLE 48 파이썬 버전 48 파이썬 쉘 49 에디터 49 수 53 변수 54 for 루프 56 6 파이썬으로 시작하는 라즈베리 파이 프로그래밍

4 5 6 주사위 흉내 내기 58 if 60 비교 62 논리 따르기 63 Else 64 while 65 마무리 67 문자열, 리스트, 딕셔너리 69 스트링 이론 69 리스트 73 함수 77 행맨 79 딕셔너리 89 튜플 91 다중 대입 92 다중 리턴 값 93 예외 93 함수 총정리 94 수 95 문자열 96 리스트 98 딕셔너리 99 타입 변환 99 마무리 100 모듈, 클래스, 메소드 101 모듈 102 모듈 사용하기 102 쓸모 많은 파이썬 라이브러리들 104 새로운 모듈 설치하기 104 객체 지향 107 클래스 정의하기 107 상속 111 마무리 114 파일과 인터넷 115 파일 115 파일 읽기 115 큰 파일 읽기 119 파일 쓰기 120 파일시스템 121 차례 7

7 8 9 피클링 122 인터넷 124 마무리 126 GUI 127 Tkinter 127 Hello World 128 온도 변환기 129 그 밖의 GUI 위젯 134 체크버튼 135 리스트박스 136 스핀박스 137 레이아웃 137 스크롤바 142 대화상자 143 색상 선택기 144 파일 선택기 146 메뉴 146 캔버스 148 마무리 149 게임 프로그래밍 151 파이게임이란? 151 Hello Pygame 152 라즈베리 게임 155 마우스 따라가기 155 라즈베리 추가하기 157 받아낸 동작의 감지와 점수 계산 159 타이밍 161 여기저기서 떨어지는 라즈베리 161 마무리 165 하드웨어에 말을 걸다 167 GPIO 핀 연결 168 GPIO 핀 직접 연결 169 확장 보드 170 파이 페이스 170 PI/O 슬라이스 172 라즈비로봇보드 174 게르트보드 175 8 파이썬으로 시작하는 라즈베리 파이 프로그래밍

10 11 12 프로토타입용 보드 176 파이 코블러 177 파이 플레이트 177 험블 파이 178 아두이노와 파이 179 아두이노와 파이토크 181 마무리 184 프로토타입 프로젝트: LED 디지털 시계 185 준비물 186 하드웨어 조립 187 소프트웨어 189 2차 프로젝트 192 마무리 196 라즈비로봇 197 준비물 199 1차 프로젝트: 기본 자동차 200 하드웨어 조립 200 소프트웨어에 관해 206 2차 프로젝트: 거리 측정기와 LCD 화면 추가하기 207 1단계: 거리 측정기 직렬 어댑터 조립하기 208 2단계: LCD 화면 연결하기 208 3단계: 소프트웨어 업데이트하기 211 4단계: 실행하기 211 소프트웨어 다시 살펴보기 212 마무리 214 이제부터 필요한 것들 215 리눅스 리소스 215 파이썬 리소스 216 라즈베리 파이 리소스 217 기타 프로그래밍 언어 218 스크래치 218 C 언어 219 애플리케이션과 프로젝트 221 미디어 센터: Raspbmc 221 홈오토메이션 222 마무리 222 찾아보기 223 차례 9

옮 / 긴 / 이 / 의 / 말 라즈베리 파이가 세상에 나온 지도 많은 시간이 흘렀습니다. 그동안 라즈베리 파이 관련 웹사이트나 블로그, 카페 등도 여럿 등장했고, 각종 온라인, 오프라 인 모임도 활발하게 진행되고 있는 것 같습니다. 저마다 라즈베리 파이로 이런저 런 창작물을 선보이며 나도 한번 해볼까? 하는 의지를 샘솟게 합니다. 라즈베 리 파이를 즐기는 길은 크게 두 가지로 생각합니다. 하나는 본연의 컴퓨터 역할입니다. 사실 좀 느리기는 하지만(오버클로킹하면 많이 빨라집니다), 여기서는 일반적인 데스크톱 PC로서가 아니라 서버로서의 역할을 말합니다. 웹 서버, 토렌트 서버 등을 구축하는 데 라즈베리 파이는 저렴하면서 도 공간을 적게 차지하는 훌륭한 대안입니다. ssh를 사용하면 모니터도, 키보드 나 마우스도 필요 없이 기존에 사용하던 컴퓨터에 연결하여 필요한 작업을 할 수 있고, 따로 전원을 연결하기 위해 복잡한 장치가 필요한 것도 아니니 과연 이 보다 더 좋은 컴퓨터가 또 있을까 싶습니다. 라즈베리 파이를 즐기는 또 하나의 방법은 바로 전자기기 프로젝트입니다. 지금 은 프로토타입용 보드나 확장 보드가 많이 출시되어 선택의 폭도 넓어졌습니다. 교육용으로도, 취미생활을 목적으로도 라즈베리 파이를 얼마든지 활용할 수 있 다는 것은 사실 라즈베리 파이의 가장 큰 장점이 아닌가 생각합니다. 10 파이썬으로 시작하는 라즈베리 파이 프로그래밍

라즈베리 파이를 어떻게 활용하더라도 반드시 해결해야 할 선행 조건이 있습니 다. 바로 리눅스 환경과 프로그래밍 언어에 익숙해지는 것입니다. 라즈베리 파이 는 데비안 리눅스 계열인 라즈비안 위지를 비롯하여 여러 운영체제에서 동작합 니다. 최근에는 안드로이드 OS를 설치하는 과정도 쉽게 찾아볼 수 있습니다. 어 찌 됐든, 리눅스 환경에 익숙해져야 라즈베리 파이를 더욱더 효율적으로 활용할 수 있을 것입니다. 이 책에서는 라즈베리 파이와 함께 제공되는 여러 프로그래밍 언어 가운데 파이 썬을 다루고 있습니다. 입문서이기 때문에 깊은 내용은 다루지 않지만, 아직 파 이썬이 생소한 사람에게는 좋은 길잡이가 될 것으로 생각합니다. 또한, 이 책 후 반부의 라즈베리 파이 활용 프로젝트에서는 저자의 명성을 느낄 수도 있습니다. 아무쪼록 이 책이 라즈베리 파이에 대한 호기심과 관심을 보이는 여러분에게 훌 륭한 길잡이가 되기를 바랍니다. 언제나 그렇듯, 이 책이 세상에 모습을 드러내 기까지 많은 사람의 노력과 열정과 땀이 있었습니다. 이 자리를 빌려 장성두 대 표님께 대표로 감사의 말씀을 전합니다. 정말 고맙습니다. 이제는 딸아이가 라즈 베리라는 단어를 보면 어! 컴퓨터도 라즈베리가 있던데 라고 합니다. 앞으로 시 간이 조금 흐르면 직접 납땜하며 함께 무언가를 만들고 있을지 모르겠습니다. 옆에서 항상 힘이 되어 주는 사랑하는 아내와 딸아이에게도 감사의 말을 전합니 다. 서정아, 밝고, 예쁘고, 건강하게 자라렴 2013년 8월 배장열 옮긴이의 말 11

감 / 사 / 의 / 말 늘 그렇듯, 변함없이 인내와 지지를 보내주는 린다 Linda 에게 감사의 말을 전한다. 앤드루 로빈슨 Andrew Robinson 과 나의 아들 매튜 몽크 Matthew Monk 는 이 책의 기술 검 토를 맡아주었다. 앤드루의 라즈베리 파이 프로젝트 모음집을 꼭 한번 읽어보길 바란다. 분명 탁월한 경험을 누릴 것이다. 이 자리를 빌려 감사의 말을 전한다. 탭/맥그로힐 TAB/McGraw Hill 의 인내심 많고 더할 나위 없이 멋진 편집자인 로저 스 튜어트 Roger Stewart 와 탁월한 프로젝트 관리자인 바스타빅타 샤마 Vastavikta Sharma 와 패 티 몬 Patty Mon 에게도 고마움의 말을 전한다. 그들과 한 팀이었다는 즐거움이 아직 생생하다. 12 파이썬으로 시작하는 라즈베리 파이 프로그래밍

이 / 책 / 에 / 대 / 하 / 여 라즈베리 파이는 하나의 세계적인 현상으로 빠르게 확산하고 있 다. 사람들은 35달러짜리 컴퓨터의 가능성을 알아차리고는 다양 한 환경에서 라즈베리 파이를 활용하기 위해 창의성을 발휘하고 있다. 데스크탑 워크스테이션, 미디어 센터, 홈오토메이션 시스 템용 컨트롤러 등 이 모든 것이 라즈베리 파이로 가능하다. 이 책에서는 프로그래머가 아닌 사람들이나 아직 라즈베리 파이를 경험해보지 않은 프로그래머 모두에게 파이썬이라는 프로그래밍 언어로 라즈베리 파이용 프로그램을 어떻게 작성하는지 설명하고 있다. 그리고 pygame 모듈을 사용하여 기본적인 GUI를 구성하고 간단한 게임들을 직접 만들 것이다. 이 책에서 소개한 소프트웨어는 대부분 파이썬 3를 기준으로 하고, 필요한 모듈 을 설명하기 위해 이따금 파이썬 2를 사용할 것이다. 그리고 이 책은 라즈베리 파이 재단이 권장하는 라즈비안 위지 배포판을 기준으로 한다. 이 책은 라즈베리 파이의 소개로 시작하여, 필요한 주변장치 구매, 환경 설정을 다룬다. 이어지는 몇 장에서는 프로그래밍에 대한 소개를 접하게 된다. 이런저런 이 책에 대하여 13

개념을 설명하기 위한 여러 가지 애플리케이션을 살펴보며 쉽게 라즈베리 파이 프로그래밍의 길로 들어설 수 있을 것이다. 프로그래밍과 라즈베리 파이의 GPIO 커넥터에 초점을 맞춘 곳이 모두 세 장이 다. GPIO 커넥터를 사용하면 외부 전자 부품을 라즈베리 파이에 연결할 수 있 다. 이 세 곳에서 두 가지 실습 프로젝트를 진행할 것이다. 한 프로젝트로는 LED 시계를 만들고, 다른 프로젝트에서는 초음파 거리 측정기를 갖춘 라즈베리 파이 컨트롤러 로봇을 만들 것이다. 다음은 이 책에서 다룰 핵심 주제들이다. 파이썬의 수, 변수 등 기본 개념 문자열, 리스트, 딕셔너리 등 파이썬의 데이터 구조 모듈과 객체 지향 파일과 인터넷 Tkinter를 사용한 GUI 파이게임을 사용한 게임 프로그래밍 GPIO 커넥터를 사용하여 하드웨어와 소통하기 하드웨어 프로젝트 실습 이 책에 사용된 모든 소스 코드는 이 책의 웹사이트인 www.raspberrypibook.com 에서 다운로드할 수 있다. 그뿐만 아니라 정오표 등 이 책과 관련된 여러 유용 한 재료 또한 접할 수 있다. 14 파이썬으로 시작하는 라즈베리 파이 프로그래밍

1기지개를 켜다 2012년 2월 라즈베리 파이가 대중에게 모습을 나타내자 공급업 체 웹사이트는 밀려드는 주문을 처리하지 못해 곧 마비되었다. 대체 이 작은 기기의 특별함이 무엇이기에 그토록 지대한 관심 이 쏠리는 것일까? 라즈베리 파이의 정체 라즈베리 파이의 생김새는 그림 1.1에 나타낸 대로다. 라즈베리 파이는 한마디로 리눅스 운영체제가 돌아가는 컴퓨터다. 키보드와 마우스를 꽂을 수 있는 USB 소켓과 TV나 모니터를 연결할 수 있는 HDMI(High Definition Multimedia Interface) 비디오 출력 단자도 달렸다. 다만, 지원하는 커넥터가 VGA뿐인 모니터라면 라 즈베리 파이에 연결할 수 없다. HDMI가 아니더라도 DVI 커넥터는 지원해야 HDMI DVI 어댑터로 연결할 수 있다. 15

그림 1 1 라즈베리 파이 그림 1 2 라즈베리 파이 데스크탑 16 1 장 기지개를 켜다

라즈베리 파이를 시작하면 그림 1 2와 같은 리눅스 데스크탑이 등장한다. 바로 이런 점 때문에 라즈베리 파이는 사무용 소프트웨어와 비디오 재생 기능, 게임 등을 온전히 갖춘 컴퓨터라 불린다. 이 데스크탑은 마이크로소프트 Windows의 오픈 소스 경쟁 제품인 리눅스(데비안 리눅스)이고, 윈도우 기반 환경은 LXDE다. 라즈베리 파이는 작다(신용카드 크기만 하다). 그리고 무척 저렴하다(25달러부터 시 작한다). 가격이 이렇게 낮은 이유에는 몇 가지 부품을 파이 보드에서 제외했다 는 점도 작용했다. 예를 하나 들자면 케이스다. 말 그대로다. 라즈베리 파이는 순 전히 보드뿐이다. 전원 공급 장치도 없다. 그러니 5V 마이크로USB 전원 공급 장 치를 찾는 일은 사용자 몫이다. 휴대전화를 충전하듯(라즈베리 파이에 필요한 전력 은 휴대전화보다 조금 높다) 라즈베리 파이에 전원을 연결해야 하는데, USB 전원 공급 장치나 마이크로USB 케이블이 주로 사용된다. 라즈베리 파이로 무엇을 할 수 있을까 리눅스 PC에서 할 수 있다면 라즈베리 파이에서도 할 수 있는 일이 무척이나 많 다. 다만, 몇 가지 제한이 따른다. 라즈베리 파이에서는 하드디스크 대신 SD 카 드를 사용한다. 그렇다고 해서 외장 하드디스크를 USB에 연결하여 사용하지 못 한다는 뜻은 아니다. 오피스 문서도 편집할 수 있고, 인터넷을 둘러본다거나 게 임을 즐길 수도 있다(퀘이크(Quake)처럼 꽤 정교한 게임도 가능하다). 라즈베리 파이가 저렴하다는 의미에는 미디어 센터를 구현하기 위한 최적의 환 경이 될 수 있다는 것도 포함된다. 비디오를 재생하면서도 요즘 TV에 하나씩은 달린 USB로부터 전원을 공급받을 수도 있다. 라즈베리 파이로 무엇을 할 수 있을까 17

라즈베리 파이의 구석구석 그림 1 3에서는 라즈베리 파이의 요소요소에 해당 이름을 붙여놓았다. 이 그림 으로 라즈베리 파이의 곳곳을 들여다보자. 모델 A에 비해 크게 달라진 곳이 바 로 네트워크 연결을 담당하는 RJ 45 랜 커넥터다. 이더넷 커넥터 HDMI 비디오 마이크로USB 전원 전용 USB 소켓(두 개) SD 카드 오디오 출력 RCA 비디오 GPIO 핀 그림 1 3 라즈베리 파이 해부 RJ 45 이더넷 커넥터는 그림에서 왼쪽 윗부분에 자리하고 있다. 인터넷 공유기를 사용하고 있다면 손쉽게 네트워크에 연결할 수 있을 것이다. 한 가지 생각해 볼 것은 라즈베리 파이에 와이파이가 내장되지 않았다는 점이다. 무선 네트워크 환 경을 염두에 두었다면 별도로 USB 무선 어댑터가 필요하다. 설치 드라이버가 필 요할지도 모르겠다. 이더넷 소켓 바로 아래에 USB 소켓 두 개가 보인다. 하나는 위에, 또 하나는 아래 에 있는 구조인데, 여기에 키보드나 마우스, 외장 하드디스크 등을 꽂을 수 있다. 18 1 장 기지개를 켜다

다만, 달랑 두 개이니 이런저런 주변기기를 연결하려면 USB 허브가 필요하다. 그림에서 왼쪽 아랫부분이 오디오 소켓이다. 헤드폰이나 유전원 스피커에 아날 로그 스테레오 신호를 보내는 소켓이다. HDMI 커넥터는 소리도 함께 전송한다. 오디오 소켓 옆에 RCA 비디오 커넥터가 보인다. 오래된 TV와 라즈베리 파이를 함께 사용하는 것이 아니라면 이 커넥터를 사용할 일은 거의 없다. 오히려 정반 대 편의 HDMI 커넥터를 쓸 일이 훨씬 더 많을 텐데, 그림에서 위쪽에 보이는 이 HDMI 커넥터는 더 높은 품질의 영상과 소리를 한 번에 보낼 수 있어 매우 유용 하다. DVI 지원 모니터라면 어댑터를 끼워 연결한다. 노란 RCA 잭의 오른쪽으로는 두 줄로 핀이 늘어서 있다. 이 핀을 가리켜 GPIO (General Purpose Input/Output) 핀으로 부른다. 각종 전자기기를 라즈베리 파이에 연결할 때 사용되는 핀이다. 아두이노 등 마이크로컨트롤러 보드를 사용해봤다 면 GPIO 핀이 낯설지 않을 것이다. 11장에서 이들 핀을 사용하여 모터 제어로 이리저리 움직이는 작은 로봇의 두뇌 역할을 라즈베리 파이로 구현할 것이다. 10장에서는 라즈베리 파이로 LED 시계를 만들 것이다. 라즈베리 파이 아랫면에는 SD 카드 슬롯이 장착되어 있다. 사용할 SD 카드는 용 량이 최소 2GB이어야 한다. 라즈베리 파이를 사용하면서 만들게 될 각종 파일 이 저장되는 파일시스템뿐만 아니라 라즈베리 파이의 운영체제가 이 SD 카드에 들어간다. SD 카드는 라즈베리 파이에 함께 제공되지 않으며, SD 카드에 운영 체제를 담는 일이 단순하지만은 않아 SK 팡 SK Pang 이나 파넬 Farnell, RS 컴포넌츠 RS Components 등의 공급업체는 미리 운영체제를 담아 라즈베리 파이에서 곧바로 사 용할 수 있는 형태로 SD 카드를 판매한다. 라즈베리 파이에는 디스크가 별도로 제공되지 않으므로, 이 SD 카드가 곧 컴퓨터인 셈이다. 따라서 SD 카드 하나로 라즈베리 파이를 바꿔가며 사용한다면 같은 환경이 마련된다. 라즈베리 파이의 구석구석 19

SD 카드 슬롯 위로 마이크로USB 소켓이 보인다. 이 소켓은 오로지 라즈베리 파 이에 전원을 공급하기 위한 것이다. 따라서 한쪽 끝에 마이크로USB 커넥터가 달린 전원이 필요한데, 일반적으로 휴대전화에 사용되는 형태와 다르지 않다. 물론 안드로이드 스마트폰용 전원도 같은 형태가 많다. 하지만 휴대전화용 전원 이 최소 700mA를 공급하는지 확인해야 한다. 이보다 적으면 라즈베리 파이가 오작동할 수도 있다. 기술적 사양에 밝은 사람들을 위해 간단히 정리하고자 한다. 파이 보드 한복판 에 자리한 커다란 정사각형 칩이 바로 라즈베리 파이의 모든 동작이 일어나는 곳이다. 브로드컴의 시스템온칩(System on a Chip) 인 이 핵심 칩에는 256MB의 메 모리뿐만 아니라 라즈베리 파이를 구동시키는 그래픽 및 범용 프로세서가 하나 로 집적되었다. 이쯤 해서 커넥터 두 곳을 아직 언급하지 않았다고 눈치챘을지도 모르겠다. 한 군데는 SD 카드 옆의 납작 케이블 커넥터이고, 또 한 군데는 이더넷 커넥터와 HDMI 커넥터 사이의 납작 케이블 커넥터다. 각각 LCD 디스플레이용과 카메라 용이다. 라즈베리 파이에 사용할 수 있는 LCD 디스플레이와 카메라를 한번 찾 아보기 바란다. 라즈베리 파이 설정하기 운영체제가 미리 설치된 SD 카드와 전원 등 필요한 것들을 라즈베리 파이 구매 시 함께 마련한다면 피곤한 일을 겪지 않아도 된다. 그리고 USB 키보드와 마우 스도 미리 준비하는 것이 좋겠다(집안 어딘가에 굴러다니는 키보드와 마우스가 없다면 말이다). 이제부터 무엇이 필요하고 어디에서 구해야 하는지 차근차근 살펴보자. 20 1 장 기지개를 켜다

필요한 것 마련하기 표 1 1에는 라즈베리 파이 시스템이 온전한 기능을 발휘하는 데 필요한 갖가지 구성 요소가 나열되어 있다. 이 책을 쓰고 있는 현재, 라즈베리 파이 자체는 영 국에 본사를 둔 두 유통회사를 통해 판매되고 있다. 한 곳은 파넬 Farnell 이고(미국 회사인 뉴어크 Newark 는 파넬의 자회사임), 또 한 곳은 RS 컴포넌츠 RS Components 다. RS 컴 포넌츠와 라디오색 RadioShack 을 혼동하기도 하지만, 분명히 다른 회사다. 전원(파워 서플라이) 그림 1 4는 주위에서 흔하게 볼 수 있 는 USB 전원과 USB A 마이크로USB 변환 케이블이다. 라즈베리 파이의 전원으로는 5V와 충 분한 전류만 제공된다면 구닥다리 MP3 플레이어에 딸렸던 전원도 사용 할 수 있다. 라즈베리 파이에 과전류가 공급되면 보드가 뜨거워져 망가질 수 그림 1 4 USB 전원 도 있으므로(무엇보다 화재의 위험이 될 수도 있다), 최소 700mA, 또는 USB 포트에 연결된 각종 장치에 전원을 공급하는 경우까지 고려하면 1A를 라즈베리 파이에 공급해야 한다. 전원 겉면에 작지만, 자세히 쓰여 있는 사양을 꼼꼼히 읽어보고 공급하는 전류 량을 확인해야 한다. 전원 용량이 와트(W)로 표기되기도 하는데, 그럴 때는 적 어도 3W짜리를 마련해야 한다. 5W로 쓰여 있다면 1A와 같은 의미로 생각해도 된다. 라즈베리 파이 설정하기 21

표 1 1 라즈베리 파이 키트 항목 판매처와 부품 번호 추가 정보 라즈베리 파이 모델 A 또는 모델 B USB 전원 공급 장치 (미국) USB 전원 공급 장치 (영국) USB 전원 공급 장치 (유럽) 파넬(www.farnell.com) 뉴어크(www.newark.com) RS 컴포넌츠(www.rs-components.com) 뉴어크: 39T2392 라디오색: 55053163 에이다프루트 PID: 501 파넬: 2100374 마플린스(Maplin): N15GN 파넬: 1734526 모델 B에만 네트워크 연결 소켓이 제공된다. 5V USB 전원 공급 장치 최소 700mA(3W) 지원 1A(5W) 권장 마이크로USB 케이블 라디오색: 55048949 파넬: 2115733 에이다프루트 PID: 592 키보드와 마우스 컴퓨터 부품 판매처 USB 키보드라면 종류는 상관없다. HDMI 지원 TV/모니터 컴퓨터/전자제품 판매처 USB 어댑터가 딸린 무선 키보드, 마우스도 올바로 동작한다. HDMI 케이블 SD 카드(OS 설치된 것) 와이파이 어댑터* USB 허브* HDMI-DVI 어댑터* 이더넷 패치 케이블* 컴퓨터/전자제품 판매처 SK 팡: RSP-2GBSD 뉴어크: 96T7436 파넬: 2113756 elinux.org/rpi_verifiedperipherals#usb _WiFi_Adapters 컴퓨터 부품 판매처 뉴어크: 74M6204 마플린: N24CJ 파넬: 148271 컴퓨터 부품 판매처 elinux.org에서는 올바로 동작하 는 와이파이 어댑터의 최신 리스 트를 제공하고 있다. 케이스* 에이다프루트, SK 팡, * 표시는 선택임 앨라이드일렉닷컴(alliedelec.com) 22 1 장 기지개를 켜다

키보드와 마우스 라즈베리 파이와 동작하지 않는 USB 키보드나 마우스는 거의 없다. 물론 동글 (dongle)만 USB 포트에 꽂아 쓰는 무선 USB 키보드와 마우스도 아무런 문제를 일으키지 않는다. 이런 종류는 대개 키보드와 마우스가 한 쌍이어서 USB 포트 가 절약되는 장점도 있다. 또한, 라즈베리 파이 기반 로봇을 제어하는 10장에서 는 편리함이 더욱 빛을 발할 것이다. 디스플레이 솔직히 말해 RCA 비디오 출력 단자가 라즈베리 파이에 제공된다는 것이 사뭇 당황스럽다. 요즘에는 대부분 HDMI 커넥터에 직접 연결하기 때문이다. 최첨단 느낌이 물씬 풍기지 않는가? 파이에 연결하기에 제격인 디스플레이는 저가형 22 인치 LCD TV다. 한편, 거실에 떡하니 놓일 법한 대형 TV도 사용하기에는 무리 가 없으니 필요할 때마다 얼마든지 TV에 연결해도 무방하다. 만일 VGA 커넥터만 달랑 제공되는 컴퓨터 모니터만 가지고 있다면, 값비싼 컨 버터를 사용해야만 한다. 하지만 모니터에 DVI 커넥터가 달렸다면, 저렴한 어댑 터만으로도 충분하다. SD 카드 SD 카드와 함께 운영체제 디스크 이미지가 필요하다. 운영체제 디스크 이미지를 다루는 일이 다소 성가시다면 비용을 조금 더 들여 운영체제가 미리 설치된 SD 카드를 마련하는 것도 생각해볼 만하다. 역주 VGA, 즉 RGB는 아날로그 영상 신호만을 전달합니다. 반면, DVI와 HDMI는 디지털 방식입니다. 다만, HDMI는 음성 신호도 함께 전송할 수 있습니다. 디지털 신호를 아날로그 신호로 변환하는 것은 단순히 어댑터로 가능한 일이 아닙니 다. 요즘에는 몇만 원으로도 구현된 HDMI RGB 컨버터를 어렵지 않게 찾아볼 수 있습니다. 오히려 RGB 커넥터만 달랑 제공되는 모니터를 찾아보기가 더 어렵습니다. 라즈베리 파이 설정하기 23

물론 라즈베리 파이 관련 모임에서 운영체제 설치를 도와줄 사람을 찾는 것도 한 방법이다. 파넬이나 RS 컴포넌츠에서 공급하는 운영체제 포함 SD 카드는 가격이 다소 높다. 인터넷에서 최신 운영체제 배포판이 담긴 SD 카드 공급업체를 찾아보 라. 가령, SK 팡에서는 대형 마트보다도 낮은 가격으로 최신 운영체제가 담긴 SD 카드를 판매하고 있다. 그래도 SD 카드에 디스크 이미지를 직접 준비하고자 한다 면, www.raspberrypi.org/downloads에 제공되는 따라 하기 내용을 참고하기 바란다. SD 카드를 직접 준비하려면 SD 카드를 읽고 쓸 수 있는 컴퓨터가 한 대 있어야 한다. 준비 과정은 이 컴퓨터에서(이후에는 호스트 컴퓨터로 부를 것임) 사용하는 운 영체제가 Windows냐, 맥이냐, 리눅스냐에 따라 달라진다. 하지만 인터넷에는 이 프로세스를 최대한 자동화하는 유용한 도구가 널렸으니 이를 활용해도 된다. 이왕 SD 카드를 직접 준비하려고 마음먹었다면 따라 하기 내용을 세심하게 쫓아 가야 한다. 물론 몇 가지 도구가 필요한데, 호스트 컴퓨터의 하드디스크를 재포 맷하는 실수가 얼마든지 일어날 수 있으므로 관련 도구를 사용할 때는 각별히 조심해야 한다! 한 가지 다행인 것은 관련 도구들이 점점 더 사용하기 쉬워지고 나아진다는 점이다. SD 카드를 직접 준비하면 다양한 운영체제 배포판 가운데 마음에 드는 한 가지 를 골라 사용하는 장점을 얻게 된다. 이 글을 쓰고 있는 지금 가장 인기가 높은 몇 가지를 표 1 2에 나타내었다. 새로운 배포판이 있는지는 라즈베리 파이 재단 의 웹사이트에서 확인하면 된다. 물론 SD 카드를 몇 종류로 장만하여 서로 다른 배포판을 설치하고 상황에 맞게 사용한다든가, 그 가운데 가장 마음에 드는 한 가지만 사용한다고 해서 누가 뭐 라고 하지는 않는다. 다만, 리눅스 초보자라면 표준 라즈비안 위지Raspbian Wheezy 배포판을 사용하는 편이 여러모로 좋다. 24 1 장 기지개를 켜다

표 1 2 라즈베리 파이 리눅스 배포판 배포판 라즈비안 위지(Raspbian Wheezy) 아치(Arch) 리눅스 ARM 큐톤파이(QtonPi) 오키덴탈리스(Occidentalis) 설명 표준 라즈비안 운영체제이며, 이 책의 모든 예시 프로그램에 사용되었다. LXDE 데스크탑을 사용한다. 리눅스 전문가에 어울리는 배포판이다. Qt5 그래픽 프레임워크를 사용하는 그래픽 프로그램 개발자 에 특화된 배포판이다. 에이다프루트가 개발한 라즈비안 위지 기반 배포판이다. 하드 웨어 해커에 특화되었다. 케이스 라즈베리 파이는 보드 형태로만 제공된다. 다시 말해 어디에 담겨 제공되지 않 는다. 가격을 낮추기 위한 선택이지만, 그 대신 부서질 위험이 적지 않다. 케이스 를 직접 만들든 비용을 내고 구입하든 하나 장만하는 편이 좋다. 시중에 나와 있는 몇 가지 케이스를 그림 1 5에 나타내었다. A B C 그림 1 5 라즈베리 파이 케이스 그림에서 (a)는 에이다프루트(www.adafruit.com)가, (b)는 SK 팡이, (c)는 모드마이파 이(www.modmypi.com)가 공급하는 케이스다. 라즈베리 파이로 무엇을 할는지에 따 라 케이스 선택이 달라지기도 한다. 만일 3D 프린터를 사용할 수 있다면 다음 오픈 소스 디자인을 활용할 수도 있다. 라즈베리 파이 설정하기 25

www.thingiverse.com/thing:23446 www.thingiverse.com/thing:24721 그리고 라즈베리 퍼닛 Punnet (www.raspberrypi.org/archives/1310)에서는 종이를 접어 만 드는 케이스 디자인도 찾아볼 수 있다. 라즈베리 파이를 구시대 빈티지 컴퓨터라든가 게임 콘솔 등으로 재탄생시키는 일에 재미가 들린 사람이 많다. 레고 블록으로 케이스를 만든 사람도 있다. 내가 처음 라즈베리 파이용으로 만든 케이스는 원래 명함 케이스였던 플라스틱 케이 스에 구멍을 낸 것이었다. 그림 1 6 라즈베리 파이 수제 케이스 26 1 장 기지개를 켜다

와이파이 라즈베리 파이의 두 모델 모두 와이파이를 지원하지 않는다. 따라서 네트워크에 무선으로 연결하려면 두 가지 선택권을 생각해야 한다. 하나는 USB 소켓에 꽂 아 사용하는 USB 무선 어댑터를 사용하는 방법이다(그림 1 7 참고). 운이 좋다면 리눅스에서 인식되어 곧바로 사용할 수 있는 모델을 쉽게 찾을 수도 있다. 표 1 1에서 언급한 와이파이 어댑터들은 라즈베리 파이와 올바로 동작하는 목록 이지만, 가끔 와이파이 드라이버에 문제가 생겨 라즈베리 파이 포럼이나 위키를 검색하여 해당 최신 정보를 확인해야 하는 번거로움을 감수해야 할 때도 있다. 또 하나는 와이파이 브리지를 사용하는 방법인데, 이는 라즈베리 파이 모델 B에 서만 가능하다. 와이파이 브리지는 대개 USB로 전원을 공급받고 이더넷 소켓에 끼워 사용한다. 이더넷 소켓만 제공되고 와이파이는 지원되지 않는 게임 콘솔에 이 와이파이 브리지가 많이 사용된다. 이 방법은 라즈베리 파이를 특별히 설정 하지 않아도 되는 것이 장점이다. USB 허브 라즈베리 파이에는 USB 포트가 두 개뿐이어서 이런저런 기기를 연결하기에는 턱 없이 부족하다. USB 포트를 더 많이 확보하려면 USB 허브가 해답이다(그림 1 8 참고). USB 허브는 제공하는 포트의 수가 적게는 3개에서 많게는 8개 이상까지 제각각 이다. 다만, 확인할 것은 USB 2를 지원하는지 여부다. 유전원 허브라면 라즈베 리 파이에서 전원을 끌어다 사용하지 않으므로 훨씬 더 활용 가치가 높다. 라즈베리 파이 설정하기 27

그림 1 7 와이파이 어댑터 그림 1 8 USB 허브 28 1 장 기지개를 켜다

합체하기 필요한 기기는 모두 마련되었다. 이제 전부 연결하고 라즈베리 파이의 첫 부팅을 시작해보자. 그림 1 9는 모든 것이 연결된 전체 시스템의 모습이다. TV/모니터 인터넷 공유기 USB 전원 어댑터 HDMI 케이블 이더넷 케이블 마이크로USB 케이블 키보드 마우스 그림 1 9 라즈베리 파이 시스템 SD 카드를 넣고, 키보드와 마우스, 모니터를 파이에 연결한다. 마지막으로, 전원 을 연결하면 준비 끝이다. 라즈베리 파이 설정하기 29

시작하기 라즈베리 파이가 처음 시작될 때는 다른 곳, 가령 Windows 컴퓨터에서 흔히 보았 던 그런 그래픽 환경으로 직행하지 않는다. 그 대신 이런저런 과정이 지나다 환경 설정 화면에서 멈춘다(그림 1 10 참고). 이 화면에서 각종 설정을 변경해야 한다. 그림 1 10 환경 설정 화면 우선, SD 카드의 용량부터 점검해야 한다. SD 카드가 2GB보다 크다고 해도 expand_rootfs 옵션을 선택하지 않으면 제 용량을 모두 사용할 수는 없다. 위/아 래 화살표와 엔터를 사용하여 이 옵션을 선택한다. 변경하는 것이 더 나은 두 번째 옵션은 boot_behaviour다. Boot Straight to Desktop(데스크탑으로 시작하기)으로 설정하지 않으면 라즈베리 파이를 시작할 때 마다 로그인 과정을 거쳐야 하고, 일일이 수동으로 윈도우 기반 환경에 진입해야 한다(그림 1 11 참고). 30 1 장 기지개를 켜다

그림 1 11 데스크탑으로 시작 옵션 마무리 이제 라즈베리 파이의 설정을 끝내고 사용할 준비를 마쳤다. 지금부터는 라즈베 리 파이의 기본적인 특징을 살펴보고, 리눅스의 기초를 세우자. 마무리 31

2첫발을 떼다 라즈베리 파이의 운영체제는 리눅스다. 이 장에서는 리눅스를 소개하고, 데스크탑과 커맨드 라인의 사용법을 살펴보자. 리눅스 리눅스는 오픈 소스 운영체제다. 이 말인즉슨, 리눅스라는 소프트웨어가 마이크 로소프트의 Windows와 애플의 OS X이 주름잡은 운영체제 시장에서 대안을 찾 으려는 사람들에게 커뮤니티 프로젝트 성격으로 출발했다는 뜻이다. 모든 기능 을 빠짐없이 갖춘 리눅스 운영체제는 초창기 컴퓨터 시절에 등장했던 견고한 유 닉스 개념을 그대로 이어받았다. 그 결과, 리눅스는 강력하고 사용하기 쉬운 운 영체제로 성장했다. 이 운영체제에 리눅스라는 이름이 붙었지만, 사실 리눅스는 하나가 아니다. 배 포판(디스트로(distro)라고도 부름)의 형태로 다양한 리눅스가 존재한다. 이들 배포 판은 기본적인 운영체제의 면면이 동일하지만, 서로 다른 애플리케이션과 윈도 우 기반 시스템이 패키지로 묶여 제공된다. 여러 배포판이 존재하지만 라즈베리 파이 재단에서 공식적으로 권장하는 배포판은 라즈비안 위지 Raspbian Wheezy 다. 33

지금까지 마이크로소프트의 Windows에만 익숙했다면, 새로운 운영체제에 적 응하는 과정은 좌절의 연속일지도 모른다. 리눅스에서는 모든 것이 다르게 돌아 가기 때문이다. 하지만 리눅스의 구석구석을 자신의 구미에 맞게 바꾸고 싶다면 거의 모든 것을 그렇게 바꿀 수 있다. 리눅스는 오픈 소스이고 완벽하게 통제받 기 때문이다. 하지만 영화 스파이더맨 의 대사처럼, 강력한 힘을 가지면 그만큼 책임감도 커진다. 다시 말해 세심하게 신경 쓰지 않는다면 운영체제 전체를 망가 뜨릴 수도 있다. 데스크탑 1장 마지막 부분에서 우리는 라즈베리 파이를 시작하고 로그인하여 윈도우 시스 템으로 들어왔다. 그림 2 1은 라즈베리 파이의 데스크탑 화면이다. 여러분의 화 면과 별반 다르지 않을 것이다. Windows나 맥 컴퓨터를 사용해 왔다면 백그라운드로 동작하는 폴더의 일종인 데 스크탑이라는 개념과 이를 바탕으로 컴퓨터에서 하는 모든 것에 익숙할 것이다. 데스크탑의 왼쪽으로는 애플리케이션을 시작해주는 여러 아이콘이 자리하고 있 다. 화면 아랫부분에 자리한 태스크 바에서 가장 왼쪽에 있는 아이콘을 클릭하 면 라즈베리 파이에 설치된 여러 애플리케이션과 도구가 나타난다(마이크로소프 트 Windows의 시작 버튼과 유사하다). File Manager(파일 관리자)부터 시작할 텐데, 파일 관리자는 Accessories 메뉴에 있다. 파일 관리자는 Windows의 Windows 탐색기나 맥의 파인더(Finder)와 비슷하다. 역주 라즈비안 위지의 버전에 따라 데스크탑에 표시되는 내용물이 약간 다릅니다. 하지만 책의 내용을 이해하는 데 지장을 주지는 않습니다. 독자 여러분의 결과와 책의 내용이 달라지는 곳은 역주를 통해 설명하겠습니다. 34 2 장 첫발을 떼다

이를 통해 파일시스템을 헤집고 다니며, 파일을 복사하거나 이동하고, 실행 가 능한 파일(애플리케이션)이면 실행까지 할 수 있다. 그림 2 1 라즈베리 파이 데스크탑 파일 관리자는 홈 디렉터리의 내용을 보여주며 시작한다. 라즈베리 파이에 로그 인할 때 로그인 이름이 pi였을 것이다. 따라서 홈 디렉터리의 루트는 /home/pi 가 된다. 맥의 OS X처럼 리눅스에서도 디렉터리를 구분하는 문자로 슬래시(/)를 사용한다. 따라서 /는 루트(root) 디렉터리로 부르며, /home/은 사용자마다 하나 씩 할당된 디렉터리가 모인 곳이다. 라즈베리 파이에서는 대개 사용자가 한 명이 므로(디폴트 사용자는 pi임), 이 디렉터리에는 pi라는 디렉터리 하나만 담긴다. 현재 디렉터리는 상단의 주소표시줄(address bar)에 표시되어 있으며, 이곳에 직접 주소 를 입력하면 보고 싶은 디렉터리로 곧장 이동한다. 왼쪽에 마련된 즐겨 찾는 장 데스크탑 35

소(navigation bar)에서 원하는 곳을 클릭해도 된다. /home/pi 디렉터리의 내용물 은 데스크탑(Desktop)과 파이썬 게임(python_games) 디렉터리가 거의 전부다. Desktop 디렉터리를 더블클릭하면 이 디렉터리가 열리기는 하는데 별로 시선을 잡아끄는 것은 없다. 데스크탑 왼쪽에 놓인 각종 아이콘이 그대로 보이기 때문 이다. python_games 디렉터리로 가보면 해볼 만한 게임 몇 가지가 보인다. 그림 2 2가 이 디렉터리의 모습이다. 그림 2 2 파일 관리자에서 볼 수 있는 python_games의 내용물 홈 디렉터리를 벗어나 파일시스템의 다른 곳에 들어갈 일은 별로 없어야 한다. 필요한 모든 문서와 음악 파일 등을 홈 폴더 안에서 만든 디렉터리들이나 외부 USB 플래시 드라이브에 저장하는 습관을 들이는 것이 여러모로 좋다. 36 2 장 첫발을 떼다

인터넷 인터넷 공유기가 설치되어 있어서 이더넷 케이블을 연결만 하면 인터넷을 사용 할 수 있는 환경에서는 라즈베리 파이를 네트워크에 연결하는 데 아무런 문제가 없다. 인터넷 공유기가 알아서 라즈베리 파이에 IP 주소를 할당하고 네트워크 접 속을 허용하기 때문이다. 라즈베리 파이에는 미도리 Midori 라는 웹 브라우저가 기본 제공된다. 미도리는 시 작 메뉴의 인터넷 섹션에 있다. 미도리를 시작하고, 원하는 웹사이트에 접속하 면 네트워크 연결 상태가 OK인지 쉽게 알 수 있을 것이다. 그림 2 3이 그 예다. 그림 2 3 미도리 웹 브라우저 인터넷 37

커맨드 라인 Windows와 맥 사용자는 커맨드 라인을 한 번도 사용해보지 않았을지도 모르겠 다. 반면, 리눅스 사용자는 그렇지 않다. 사실 리눅스 사용자에게는 이 장이 별 필요가 없을 수도 있다. 이 장의 내용 대부분이 다소 기초적이기 때문이다. 그래픽 인터페이스로 리눅스 시스템을 부족함이 없이 사용할 수 있다고 해도 명 령을 커맨드 라인에 직접 입력해야 할 때가 있다. 새로운 애플리케이션을 설치하 거나 라즈베리 파이를 설정하는 경우가 그럴 때다. 왼쪽 아래의 시작 버튼을 클릭한 뒤, 터미널(LXTerminal)을 연다. 여기까지가 그 림 2 4다. 그림 2 4 LXTerminal 커맨드 라인 38 2 장 첫발을 떼다

터미널과 친해지기 커맨드 라인에서는 아마도 세 가지 명령을 자주 사용하고 있을 것이다. 첫 번째 는 pwd로서 print working directory를 줄인 명령인데, 글자 그대로 현재 디렉터 리를 보여준다. 터미널 윈도우에서 $ 기호 바로 다음에 pwd를 입력하고 엔터를 누른다. 결과까지 나타난 모습이 그림 2 5다. 그림 2 5 pwd 명령 보이는 것처럼 현재 우리는 /home/pi에 있다. 이제부터 터미널에서 입력해야 하 는 것을 나타낼 때는 일일이 스크린 샷을 제공하지 않고 $ 기호를 입력 내용 앞 에 붙여 표기하는 방법을 따를 것이다. 예를 들면 다음과 같다. $pwd 커맨드 라인 39

입력한 명령 등의 결과를 나타낼 때는 맨 앞에 $ 기호를 붙이지 않을 것이다. 따 라서 pwd 명령을 실행하는 전체 과정은 다음과 같다. $pwd /home/pi 이제부터 살펴볼 두 번째로 자주 사용하는 명령은 ls다. ls는 list를 줄인 명령으 로서, 현재 작업 디렉터리 안에 들어 있는 파일과 디렉터리를 리스트로 뽑아준 다. 다음을 입력해보자. $ls Desktop 이 결과를 말로 풀어보면 /home/pi 디렉터리에 들어 있는 것은 Desktop 디렉터 리가 유일하다는 뜻이다. 마지막 명령은 cd(change directory의 줄임말)다. 이 명령은 현재 작업 디렉터리를 변 경해준다. 구 작업 디렉터리를 기준으로 신 작업 디렉터리의 위치를 상대적으로 도 표현할 수 있고, /로 시작하는 전체 디렉터리를 지정한다면 전혀 다른 디렉터 리로도 표현할 수 있다. 예를 들면, 다음 명령은 현재 작업 디렉터리를 /home/ pi/desktop으로 변경해준다. $pwd /home/pi $cd Desktop 40 2 장 첫발을 떼다

다음처럼 입력해도 같은 결과를 얻는다. cd /home/pi/desktop 디렉터리나 파일명을 입력할 때는 전체 이름을 일일이 입력해야 하는 것이 아니 라는 점에 주목해야 한다. 전체 이름을 입력하지 않고도 입력 도중 아무 때라도 탭을 누르면 전체 이름이 자동으로 완성된다. 다만, 탭을 누르는 시점에 중복되 는 파일명이 없어야 제대로 동작한다. sudo 자주 사용하는 명령에는 sudo(super user do의 줄임말)도 있다. sudo는 자신의 오 른쪽에 입력된 명령을 현재 사용자가 슈퍼유저인 것처럼 실행해준다. 실행해줄 명령은 그 종류를 가리지 않는데, 그렇다면 현재 사용자가 아예 슈퍼유저라면 sudo는 필요 없을 텐데 굳이 복잡하게 이런 과정을 거치는지 궁금할 것이다. 디 폴트 사용자 계정(사용자명은 pi, 암호는 raspberry)은 특권을 소유하지 않았다는 것 이 그 이유다. 다시 말해, 운영체제의 핵심 부분에 접근하여 필요 시 일부 파일 을 삭제할 수 있는 특권은 아무 사용자에게나 부여되는 것이 아니다. 누구나 이 런 특권을 소유하면 시스템에 대혼란을 일으킬 수도 있어, 이를 막기 위해 필요 시 sudo를 앞에 붙여 명령을 실행한다. 이렇게 하면 불의의 사고를 미연에 방지 할 수 있는 안전장치가 마련되는 셈이다. 지금까지 다뤘던 몇 가지 명령은 sudo를 각 명령 앞에 입력하여 실행할 이유는 없다. 하지만 궁금증을 참지 말고 다음과 같이 입력해보자. sudo ls 커맨드 라인 41

ls만 입력하여 실행했을 때와 별반 다르지 않을 것이다. 작업 디렉터리도 같으니 결과도 같을 것이다. 다른 점이 있다면 sudo를 처음 입력했을 경우 운영체제가 암호를 물어오는 것이다. 애플리케이션 라즈베리 파이용 라즈비안 위지 배포판은 꽤 단출하지만, 필요한 애플리케이션 을 얼마든지 간편하게 설치할 수 있다. 다만 새로운 애플리케이션을 설치하려면 커맨드 라인과 친해져야 한다. 애플리케이션을 설치하거나 제거하려면 apt get 명 령을 사용하는데, 슈퍼유저 권한이 필요하므로 sudo 또한 함께 입력한다. apt get 명령은 패키지 데이터베이스를 사용하는데, 이 데이터베이스는 인터넷으 로 업데이트된다. 따라서 커맨드 라인에서 다음과 같이 apt get 명령을 사용해야 한다. sudo apt-get update 이렇게 하면 패키지 데이터베이스가 업데이트된다. 물론 인터넷에 연결되어 있어 야 올바로 동작할 것이다. 패키지를 설치하기 위해서는 설치할 패키지의 이름을 알고 있어야 한다. 가령, 애비워드 Abiword 라는 워드프로세서 애플리케이션을 설치하려면 다음과 같이 입력 한다. 역주 다른 점이 하나 더 있다. ls의 결과와 같지만, 디렉터리와 파일을 알려주는 색상이 다르다. 직접 확인해보자. 42 2 장 첫발을 떼다

sudo apt-get install abiword 애비워드를 다운로드하고 설치하기까지 시간이 다소 걸린다. 모두 마무리되면 시작 메뉴에 Office라는 폴더가 생기고 그 안에서 애비워드 애플리케이션을 확 인할 수 있다(그림 2 6 참고). 그림 2 6 애비워드 화면 그림에 보이는 내용은 지금 여러분이 읽고 있는 이 내용의 초안이다. 사실 상당 부분이 수정되었는데, 최종 원고는 수정에 수정을 거듭한 결과물이다. 애비워드는 사람들이 흔히 사용하는 다른 워드프로세서에 비해 결코 뒤지지 않 는 애플리케이션이다. 나의 맥 사랑이 좀 덜했다면 아마도 라즈베리 파이에서 애 비워드로 책 전체를 집필했을지도 모른다. 애플리케이션 43

사무용 애플리케이션을 좀 더 이야기하면, 워드프로세서와 더불어 사무용 애플 리케이션의 거물이 바로 스프레드시트다. 애비워드와 단짝인 스프레드시트는 그 뉴메릭 Gnumeric 이다. 그뉴메릭을 설치하려면 다음과 같이 입력한다. sudo apt-get install gnumeric 애플리케이션이 설치되면 조금 전에 확인했던 오피스 메뉴에 또 다른 항목이 생 긴다. Gnumeric이다. 설치하고 싶은 애플리케이션에 또 무엇이 있는지 알고 싶을 때는 인터넷에 올라 온 추천을 찾아보는 것이 좋다. 그중에서도 라즈베리 파이 포럼(www.raspberrypi. org/phpbb3)이 유용하다. 그리고 라즈비안 위지에 사용할 패키지 리스트를 http:// packages.debian.org/stable/에서도 둘러볼 수 있다. 하지만 이 리스트에 올라온 모든 패키지가 올바로 동작하는 것은 아니다. 라즈 베리 파이는 메모리가 크지도 않고, 저장 용량도 제한적이기 때문이다. 그렇기는 해도 제대로 동작하는 패키지는 꽤 많으니 섣부른 판단은 금물이다. 패키지를 제거하려면 다음 명령을 사용한다. sudo apt-get remove --auto-remove --purge 패키지이름 이렇게 하면 해당 패키지와 이 패키지에 딸렸지만 다른 애플리케이션에 사용되 지 않는 패키지까지 모두 제거된다. 파일 관리자 윈도우의 오른쪽 아랫부분을 보면 남은 공간이 얼마나 되는지 알 수 있다. 44 2 장 첫발을 떼다

각종 인터넷 리소스 라즈베리 파이를 프로그래밍 용도로 사용하는 일 말고도 온전한 컴퓨터로서 탐 험하고 싶은 것이 많을 것이다. 이를 위해 몇 군데 유용한 인터넷 사이트를 소개 하고자 한다. 이곳에서 라즈베리 파이의 다양한 활용성을 경험할 수 있는 여러 정보와 조언을 얻을 수 있다. 표 2 1 라즈베리 파이를 위한 인터넷 리소스 사이트 www.raspberrypi.org www.raspberrypi-spy.co.uk elinux.org/raspberrypiboard 설명 라즈베리 파이 재단의 홈페이지. 포럼과 FAQ를 살펴보자. 따라 하기 중심의 블로그 사이트 라즈베리 파이 위키. 라즈베리 파이에 관한 수많은 정보, 그중에 서도 검증받은 주변장치 리스트(elinux.org/RPi_VerifiedPeripherals) 등이 유용하다. 표 2 1은 라즈베리 파이와 관련하여 유용하게 둘러볼 수 있는 사이트들의 리스 트다. 직접 검색해보면 이보다 더 많은 곳을 쉽게 알 수 있을 것이다. 마무리 지금까지 라즈베리 파이에 필요한 모든 것을 준비했고, 세부적인 설정까지 마쳤 다. 이제 파이썬 프로그래밍을 시작해보자. 마무리 45