2013.05.04 지앤선 테크니컬 세미나 - digital native를 위한 거침없이 배우는 라즈...
DESCRIPTION
지앤선 출판사 '거침없이 배우는 라즈 베리파이' 북콘서트 2013.05.04 지앤선 테크니컬 세미나 Digital native를 위한 거침없이 배우는 라즈 베리파이 - 전우영TRANSCRIPT
Digital Native 를 위한
거침없이 배우는 Raspberry PI Book ConcertEmbeddedpi.com
지앤선 (志 &嬋 )
들어가기에 앞서
• 준비물
Raspberry PI & 4 GB 이상의 SD Card
HDMI Cable 및 HDMI 를 지원하는 모니터 / USB-Serial
Cable
USB Keyboard and Mouse
PC 에 설치하여야 하는 프로그램
Putty (www.putty.org에서 미리 다운로드 받아 주세
요 .)
PC 에 미리 다운로드 받아 주셔야 하는 CD 이미지 (1 장 참고 )http://www.raspberrypi.org/downloads 에서 받으시면 됩니다 .
2013-02-19-wheezy-raspbian.zip
Win32diskImage
목 차
Raspberry PI 개요1
Raspberry PI 설치2
Python 프로그래밍3
GPIO 활용 – 온도 측정 장비4
1. RASPBERRY PI 개요 – 들어가기 전에
• PHYSICAL COMPUTING
• DIGITAL NATIVE
• FUN
1. RASPBERRY PI 개요
• 2006 년 초기 컨셉이 시작됨 (Eben Upton)
• 2012 년 2 월 29 일 판매 시작
• 2012 년 4 월 16 일 최초 구매자가 받기 시작
• 2013 년 1 월초 1,000,000 대 판매
• 2013 년 2 월 라즈베리 파이 MODEL A 판매 시작
1. RASPBERRY PI 개요 - 종류
MODEL AMODEL B
Memory 512 MB2 USBEthernet
Memory 256 MB1 USBNo Ethernet
BCM 2835 ARM 11 – 700 Mhz
1. RASPBERRY PI 개요 - 특징
• 운영체제 – 리눅스 (RASPBIAN)
• 저렴한 가격 : Model B – USD 35, Model A – USD 25
• 저렴하고 쉬운 저장장치
• 라즈베리 파이 재단
• GPIO (General Purpose Input Output)
1. RASPBERRY PI 개요 - 경쟁자
미니 PC안드로이드
라즈베리파이 비글본 블랙BB – USD 89BBB – USD 45
아두이노
개발자 KIT
SOFTWARE HARDWAREDigital Native
1. RASPBERRY PI 개요 – User Guide
Official User Guideby Eben Uptonand Gareth Halfacree
http://www.raspberrypi.org/archives/2965
2. RASPBERRY PI 설치
• SD 카드 플래싱 (Flashing)
• RASPBERRY PI 의 설치 – HDMI 가 있는 경우 (Chapter 9)
• RASPBERRY PI 의 설치 – USB SERIAL 을 이용하는 경우
• LAMP 설치
Web Server – Apache 설치
DataBase Management System – MySQL 설치
간단한 EMAIL 서버 설치
VNC 서버 설치
• 홈시어터 PC – XBMC 설치 (Chapter 7)
2. RASPBERRY PI 설치 – SD 카드 플래싱(Flashing)
순서
• 노트북에 4GB 이상의 SD 카드를 삽입한다 .
• Win32DSKImage 프로그램의 압축을 해제한 후
• Win32DiskImager.exe 를 실행한다 .
• 다운로드 받아 놓은 Image 파일 (2013-02-09-wheezy-
raspbian.img : 압축해제 필요 ) 을 찾아서 선택한다 .
• Write Button 을 눌러 Flushing 을 시작한다 .
• 완료 메시지가 나올 때까지 기다린다 .
2. RASPBERRY PI 설치 – HDMI 를 이용한 설치
순서
• 라즈베리 파이에 HDMI 케이블과 USB 키보드 마우스를
연결한다 .
• 이전에 만든 SD 카드를 라즈베리파이에 삽입을 한다 .
• 전원을 연결한다 .
Mini USB 을 가진 휴대전화 충전기나 노트북의 USB 에
연결하다 .
무선 USB 어댑터등을 연결하기 위해서는 5V 700 mA
이상이 필요
• 잠시 기다리면 Setup 을 마무리 하기 위한 화면이 나온다 .
다음 페이지를 참고하여 raspi-config 를 마무리 한다 .
• raspi-config 가 완료되면 Finish 를 선택하여 재부팅
한다 .
2. RASPBERRY PI 설치 – HDMI 를 이용한 설치
Raspi-config
• expand_rootfs : File system 을 SD 카드의 크기로 확장 하기 위해 선택 필요
• Overscan : 화면 Size 조정 ( 보통은 불필요 )
• Configure_keyboard : Generic 105-Key (Intl) PC 로 선택 , Keyboard
layout 은 Korean
• Change_pass : 기본 암호 변경 (User ID : pi Password : raspberry)
• Change_Locale : ko_KR.UTF-8 UTF-8 선택
• Change_timezone : Seoul 선택
• memory_split : Video 를 많이 사용할 경우 GPU 에 추가 메모리할당 , 연재는
Default
• Overclock
• SSH
• Boot behavior : Window system 을 사용할 수 있도록 Yes 선택
2. RASPBERRY PI 설치 – USB Serial 을 이용한 설치
준비물
• USB Serial cable 과 Windows 용 Driver software
(Adafruit USB to TTL Serial cable)
순서
• 이전에 만든 SD 카드를 라즈베리파이에 삽입을 한다 .
• USB Serial cable 을 연결한다 . (5 V 전원이 포함되어 있음 )
• Putty 를 실행시켜 Connection Type 을 Serial 로 연결하다 .
Speed 는 115,200
• Login 을 하여 raspi-config 를 실행하여 Setup 을 진행한다 .
2. RASPBERRY PI 설치 – APM 설치
APACHE, PHP, MYSQL
• sudo apt-get install apache2 php5 php5-mysql mysql-server
• mysql 의 root 암호 설정
• 완료 후 아래의 Command 로 실행
sudo sh –c ‘echo “<?php phpinfo(); ?>” > /var/www/phptest.php’
• 노트북에서 인터넷 익스플로러를 실행 후 아래의 주소를 입력하여 테스트
http://192.168.102.106/phptest.php
( 192.168.102.106 대신 자신의 라즈베리파이 주소를 입력 )
2. RASPBERRY PI 설치 – MYSQL 설치
MYSQL
• sudo apt-get install mysql-server
• root 암호 지정
WORDPRESS
• sudo apt-get install wordpress
• sudo cp –r /usr/share/wordpress /var/www/wordpress
• sudo bash /usr/share/doc/wordpress/examples/setup-mysql –n
wordpress localhost
• sudo /var/www/wordpress/wp-admin/wp-config-sample.php
/var/www/wordpress/wp-admin/wp-config.php
• sudo nano /var/www/wordpress/wp-admin/wp-config.php (database
정보등 수정 )
• 노트북의 웹브라우저에서 http://192.168.102.106/wordpress 이후 Setup
2. RASPBERRY PI 설치 – EMAIL 설치
POSTFIX
• sudo apt-get install postfix
• Do a Setup
• Choose Internet site
• Enter Domain name
2. RASPBERRY PI 설치 – FTP 설치
VSFTP
• sudo chown –R pi /var/www
• sudo apt-get install vsftpd
• sudo nano /etc/vsftpd.conf
• anonymous_enable=yes -> anonymous_enable=no
• #write_enable = yes -> write_enable = yes
• Add
• force_dot_files = yes
• Ctrl X 그리고 Y 를 눌러 파일을 저장한다 .
• vsftpd 를 재시작한다 .
• sudo service vsftpd restart
2. RASPBERRY PI 설치 – VNC Server 설치
Tightvncserver
• sudo apt-get install tightvncserver
• vncserver :1 –geometry 1028x800 –depth 16 –pixelformat rgb565
• 노트북에서 vncviewer 를 다운 로드 한다 .
http://www.tightvnc.com/
• 노트북에서 tightvnc viewer 를 실행시켜
192.168.102.101:1 를 입력한다 .
(192.168.102.101 대신 자신의 Raspberry PI IP Address)
2. RASPBERRY PI 설치 – 홈시어터 PC – XBMC 설치
XBMC (XBOX Media Center - 7 장 창고 )
• 준비된 SD 카드를 노트북에 연결한다 .
• 웹브라우저에서 아래의 Site 에 연결하여 Setup 파일을 다운로드 받아 실행한다 .
http://www.raspbmc.com/wiki/user/windows-installation/
• Setup 프로그램을 실행한 후 SD 카드가 담긴 드라이브를
선택한 후 인스톨 버튼을 선택한다 .
• 완료 후 라즈베리 파이에 SD 카드를 넣고 구동 시킨다 .
• 약 20 분 정도 추가 인스톨이 진행이 된다 .
• 완료되면 재부팅한다 .
2. RASPBERRY PI 설치 – GERTBOARD
3. PYTHON 프로그래밍
• Python 프로그램
• Scratch
3. PYTHON 프로그래밍 - Python
• 1991 년 귀도 반 로섬 (Guido Van Rossum) 이 발표한 컴퓨터
프로그래밍 언어 - http://www.python.org/
• 현재 3.3 까지 출시됨
• 라즈베리 파이에는 2.7 과 3.X 가 같이 설치되어 있음 .
• 프로그램을 편하게 하기 위한 IDLE 이 같이 제공됨
• 들여쓰기를 이용하여 블록을 구분하는 특성들 때문에
프로그램을 처음 시작하는 사람들에게 도움을 줌
3. PYTHON 프로그래밍 – Python 특징
• 들여쓰기를 이용하여 블록을 구분
• Sample
Import random
For x in range(1, 11):
a = random.randint(1, 6)
print (a)
3. PYTHON 프로그래밍 - Scratch
• MIT Media LAB 에서 개발된 아이들을 위한 프로그램 학습 환경
http://scratch.mit.edu/
• 현재 3 백만개의 결과물이 공유됨
• APP Inventor
http://
4. GPIO 활용 – 온도 측정 장비
• 목표 : 전산실의 온도를 정기적으로 측정하여 정상범위를 벋어난
경우 관련자에게 EMAIL 을 통해 알려 주기
• 준비물
Raspberry PI
Breadboard
온도측정 Sendor – 달라스 1620
LED & 저항 등
4. GPIO 활용 – 온도 측정 장비
4. GPIO 활용 – 온도 측정 장비
• 2012 년 9 월 말 개발
• 2012 년 10 월 운영 시작
• 2013 년 1 월 10 일 정전대비 비상 훈련
GPIO 활용 – 온도 측정 장비
4. GPIO 활용 – 온도 측정 장비
• Python 2.7 을 실행 후
RPI.GPIO
• 설치방법
sudo apt-get update
sudo apt-get install python-dev
sudo apt-get install python-rpi.gpio
• 실행방법 : sudo python my.py
4. GPIO 활용 – 온도 측정 장비
• 간단한 Test
• sudo python
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(8, GPIO.OUT)
for i in range(0, 10) :
GPIO.output(8, 1)
time.sleep(2)
GPIO.output(8, 0)
time.sleep(2)
4. GPIO 활용 – 온도 측정 장비
• RPi.GPIO 의 경우는 아직 0.5.2a
http://
code.google.com/p/raspberry-gpio-python/wiki/Main
• 더 정교한 제어를 하기 원하면
Arduino style 의 wiringpi 를 이용하면 됩니다 .
https://projects.drogon.net/raspberry-pi/wiringpi/
Shift library
SPI
I2C 등
4. GPIO 활용 – 아두이노와 Serial 연결
• 라즈베리 파이와 아두이노의 시리얼을 이용한 연결
• 필요한 python library
http://sourceforge.net/projects/pyserial/
• 예제
Import serial
ser = serial.Serial(‘/dev/ttyACM0’, 9600)
while 1 :
ser.readline()
ser.write(‘9’)
4. GPIO 활용 – 아두이노와 Serial 연결
const int ledPin = 13;
void setup() {
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
Serial.println("Hello Pi");
if(Serial.available())
{
flash(Serial.read() - '0');
}
delay(1000);
}
void flash(int n)
{
for(int i = 0; i < n; i++)
{
digitalWrite(ledPin, HIGH);
delay(100);
digitalWrite(ledPin, LOW);
delay(100);
}
}
• 아두이노 (Arduino)
Appendix A. 참고할 만한 Site
• http://www.raspberrypi.org/
• http://www.themagpi.com/
• http://www.adafruit.com/
• http://www.sparkfun.com/
• 질문은 http://cafe.naver.com/embeddedpi
Appendix B. 참고할 만한 서적
Raspberry User GuideBy Eben
Raspberry PI Home Automation with Arduino
By Andrew K.Dennis2013.2.5
Getting started with BeagleBone
by Matt Richardson2013.4.22
Practical Raspberry PI
By Brendan Horan2013. 3.18
Raspberry PI Projects by Andrew Robinson2013. 8 (English)
Learn Raspberry PI with Linux by peter Membrey
and David2012.12.21
Raspberry Pi Hacks: Tips and Tools for Making
Things with the Inexpensive Linux
Computer 2013.8.22
Programming the Raspberry PI : Getting Started with Python by
Simon Monk2012.10.30
Super Scratch Programming Adventure
Hardware
Programmer
Appendix C. Tip
• 최초의 Configuration 을 별도로 진행
sudo raspi-config
• Win32DiskImager 는 지우지 않고 가지고 있는다 .
필요한 프로그램을 설치 후 Win32DiskImage 를 이용하여
Image 파일을 만들 수 있다 . 다양한 환경을 매우 빠르게 복제할 수
있음 .
Appendix C. Tip
• Realtek WIFI power management
sudo nano /etc/modprobe.d/8192cu.conf
# Disable power management
options 8192cu rtw_power_mgnt=0
확인 방법
cat
/sys/module/8192cu/parameters/rtw_power_mgnt
875 DMIPS(BCM 2835)18,000 DMIPS (Exynos 4412)128,300K DMIPS (i7 2600K)