구)홈페이지 오탈자 보기
프로젝트로 배우는 라즈베리 파이

 

페이지오탈자 내용등록일
135

(Chapter 1 35 페이지 위에서 세번째 줄)


(수정 전)
0.7V보다 낮은 입력 전압은 논리적 0, 혹은 NOW로 인식된다는 뜻이다

(수정 후)
0.7V보다 낮은 입력 전압은 논리적 0, 혹은 LOW로 인식된다는 뜻이다

2015-05-021
147

(Chapter 1 47 페이지 표 1-9)

mkdirdirectory -> mkdir directory
rmdirdirectory -> rmdir directory

2015-05-021
381

(Test_Switch.py 제목)

Test_Switch.py 예제 파이썬 코드 박스 제목 없음. 

2015-05-061
384

(84페이지, MP3_player.py 예제 코드 내의 주석 들여쓰기)

1. 
<수정전>
       #24번 핀에 연결된 버튼이 눌렸는지 확인한다.
    if(GPIO.input(24) == False):

<수정후>
  #24번 핀에 연결된 버튼이 눌렸는지 확인한다.
  if(GPIO.input(24) ==false):


2. 
<수정전>
       #24번 핀에 연결된 버튼이 눌렸는지 확인한다.
    if(GPIO.input(24) == False):

<수정후>
  #24번 핀에 연결된 버튼이 눌렸는지 확인한다.
  if(GPIO.input(24) ==false):

2015-05-061
4108

(108페이지 CameraControl.py 예제코드의 주석 들여쓰기 수정)

<수정 전>
        #셔터 누름 버튼이 눌렸는지 확인한다.
    if(GPIO.input(22) == False):
        #셔터선에 연결된 옵토아이솔레이터를 트리거한다.
        GPIO.output(17, GPIO.HIGH)
        time.sleep(.2)
        GPIO.output(17, GPIO.LOW)

        #플래시 누름 버튼이 눌렸는지 확인한다.
    if(GPIO.input(23) == False):
        #플래시 선에 연결된 옵토아이솔레이터를 트리거한다(리비전 2 보드이므로 27번 핀임).
        GPIO.output(27, GPIO.HIGH)
        time.sleep(.2)
        GPIO.output(27, GPIO.LOW)



<수정후>
    #셔터 누름 버튼이 눌렸는지 확인한다.
    if(GPIO.input(22) == False):
        #셔터선에 연결된 옵토아이솔레이터를 트리거한다.
        GPIO.output(17, GPIO.HIGH)
        time.sleep(.2)
        GPIO.output(17, GPIO.LOW)

    #플래시 누름 버튼이 눌렸는지 확인한다.
    if(GPIO.input(23) == False):
        #플래시 선에 연결된 옵토아이솔레이터를 트리거한다(리비전 2 보드이므로 27번 핀임).
        GPIO.output(27, GPIO.HIGH)
        time.sleep(.2)
        GPIO.output(27, GPIO.LOW)

2015-05-061
4110

(110페이지 SoundModTest.py 예제코드 내 들여쓰기 오류)

('#플래시 테스트' 주석 이후의 코드를 아래와 같이 수정합니다)

-----------------------------------------------------------
    # 플래시 테스트
    if select == 2:
        while True:
            if(GPIO.input(24) == False):
               GPIO.output(27, GPIO.HIGH)
               time.sleep(.2)
               GPIO.output(27, GPIO.LOW)
               break
    # 셔터와 플래시 테스트
    if select == 3:
        while True:
            if(GPIO.input(24) == False):
               GPIO.output(17, GPIO.HIGH)
               GPIO.output(27, GPIO.HIGH)
               time.sleep(.2)
               GPIO.output(17, GPIO.LOW)
               GPIO.output(27, GPIO.LOW)
               break
    select = input(‘Enter 1 (shutter only), 2 (flash only), 3 (shutter and flash), 0
    (exit): ‘):
print(‘All done’)

2015-05-061
6151

(151페이지 Test_ADC.py)

7행 이후의 예제코드 들여쓰기를 아래와 같이 수정.

------------------
import time
import os
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
DEBUG = 1 
#MCP3008 ADC값을 읽기 위한 함수 작성
def adc(chan, clock, mosi, miso, cs):
    if((chan < 0) or (chan > 7)):
        return -1
    GPIO.output(cs, True)
    GPIO.output(clock, False)
    GPIO.output(cs, False)
    cmd = chan
    cmd |= 0x18
    cmd <<= 3
    for i in range(5):
        if(cmd & 0x80):
            GPIO.output(mosi, True)
        else:
            GPIO.output(mosi, False)
        cmd <<= 1
        GPIO.output(clock, True)
        GPIO.output(clock, False)
    result = 0
    for i in range(12):
        GPIO.output(clock, True)
        GPIO.output(clock, False)
        result <<= 1
        if(GPIO.input(miso)):
             result |= 0x1
    GPIO.output(cs, True)
    result >>= 1
    return result 
#테스트 회로를 작동하기 위한 핀 정의
SPICLK = 18
SPIMISO = 23
SPIMOSI = 24
SPICS = 25
GPIO.setup(SPIMOSI, GPIO.OUT)
GPIO.setup(SPIMISO, GPIO.IN)
GPIO.setup(SPICLK, GPIO.OUT)
GPIO.setup(SPICS, GPIO.OUT)
channel = 0
while True:
    #ADC값 읽기
    adc_value = adc(channel, SPICLK, SPIMOSI, SPIMISO, SPICS)
    if DEBUG:
        print "value = ", adc_value
    #1초 대기 후 반복
    time.sleep(1)

2015-05-061
6154

(154페이지 Test_ADC.py segment 예제코드)

2행 이후의 들여쓰기를 아래와 같이 수정.

---------------
file = open("myData", 'w')
for i in range(1200):
    adc_value = adc(channel, SPICLK, SPIMOSI, SPIMISO, SPICS)
    #str() 함수는 adc_value의 수치를 문자열로 변환한다. "n"은 줄바꾸기 문자이다.
    adcStr = str(adc_value) + "n"
    file.write(adcStr)
    if DEBUG:
        print "value = ", adc_value
   #1초에 10회 샘플을 취한다.
    time.sleep(.1)
file.close()
print("All done")

2015-05-061
8200

(200~201페이지 alarm.py 예제코드 들여쓰기 수정)

9행 이후의 들여쓰기를 아래와 같이 수정.

--------------
import subprocess
import smtplib
import socket
from email.mime.text import MIMEText
import datetime
import os
import RPi.GPIO as GPIO
import time
def send_alarm():
    #이메일 수신처 주소 넣기
    to = 'youremail@isp.com'    
    #자신의 G메일 계정을 넣기
    gmail_user = 'user@gmail.com'    
    #자신의 G메일 비밀번호 넣기
    gmail_password = 'password'
    #이제부터는 설명이 필요없다.
    smtpserver = smtplib.SMTP('smtp.gmail.com', 587)
    smtpserver.ehlo()
    smtpserver.starttls()
    smtpserver.ehlo()
    smtpserver.login(gmail_user, gmail_password)
    today = datetime.date.today()
    arg = 'ip route list'
    proc = subprocess.Popen(arg, shell=True, stdout=subprocess.PIPE)
    data = proc.communicate()
    split_data = data[0].split()
    local_ip = split_data[split_data.index('src') + 1]
    public_ip = os.system('wget http://ipecho.net/plain -O - -q > test.txt; echo')
    public_ip = open('test.txt', 'r').read()
    msg_content = 'Alarm detected. Public ip is %s:8081, local ip is %s' % (pubic_ip,
    local_ip)
    msg = MIMEText(msg_content)
    msg['Subject'] = 'Raspberry Pi Alarm on %s' % today
    msg['From'] = gmail_user
    msg['To'] = to
    smtpserver.sendmail(gmail_user, [to], msg.as_string())
    smtpserver.quit()
GPIO.setmode(GPIO.BCM)
GPIO.setup(23, GPIO.IN)
#10초의 지연 시간과 count 변수를 사용하여 과다한 e메일이 송신되지 않도록 한다.
count = 0
#무한 루프 시작
while True:
    if(GPIO.input(23) == False & count == 0):
        count = count + 1        
        send_alarm()
    time.sleep(10)
    count = 0

2015-05-061
9216

(216쪽 estract_data.py 예제코드 들여쓰기 수정.)

8행 이후부터 들여쓰기 아래와 같이 수정.


-----------------------
import time
import os
import RPi.GPIO as GPIO
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.setup(23, GPIO.OUT)
nfc_id = None
while (nfc_id == None):
    nfc_id = os.system('sudo libnfc/libnfc-1.6.0-rc1/examples/nfc-poll > nfc_data.txt')
inFile = open('nfc_data.txt')
lines = inFile.readlines()
inFile.close()
buffer = []
for line in lines:
    line_content = line.split()
    if(not line_content[0] == 'UID'):
        pass
    else:
        buffer.append(line_content)
#print(buffer)
str = buffer[0]
id_str = str[2] + str[3] + str[4] + str[5]
#print(id_str)
if(id_str == 'bd0eb923'):
    print('match')
    GPIO.output(23, GPIO.HIGH)
    time.sleep(10)
    GPIO.output(23, GPIO.LOW)
else:
    print('no match')

2015-05-061
13295

(295페이지(밑에서 8번째 줄) 예제코드 들여쓰기)

<수정 전>
    if wm.state[‘buttons’] == 512:
        print(‘Right button pressed’)
      time.sleep(1)

<수정 후>
    if wm.state[‘buttons’] == 512:
        print(‘Right button pressed’)
        time.sleep(1)

2015-05-061