176
บอร์ดคอมพ วเตอร์ 32 บ รู ้จักและใช้งาน Raspberry Pi 2

Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

Embed Size (px)

Citation preview

Page 1: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

บอรดคอมพวเตอร 32 บตรจกและใชงาน

Raspberry Pi 2

Page 2: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

CPU : ARM V7 quad-core 900MHz 512kb Cache

RAM : 1GByte

แรงกวาเดม

6 เทา

Raspberry Pi2 Spec

Dual Core GPU

40 ขา GPIO USB 2.0 4 ชอง

JACK AV 3.5mm

10/100 ETERNET

จดตอ HDMI

จดตอ CSI ตอกลอง

จดตอ DSI ตอจอ LCD

ไฟเลยง 5V/1.5A microUSB

Page 3: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

จดเชอมตอของ Raspberry

Pi2

Page 4: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

จดเชอมตอของ Raspberry

Pi2

Page 5: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

จดเชอมตอของ Raspberry

Pi2

Page 6: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

จดเชอมตอของ Raspberry

Pi2

OS ของ Raspberry Pi 2 จะเกบท microSD โดยมชองเสยบการดอยใตบอรด

Page 7: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

ระบบปฏบตการส าหรบ

Raspberry Pi2

windows 10

IOT

OpenELEC (media

center)

ส าหรบ

เร มตน

UBUNTU

DESKTOP

SNAPPY

UBUNTU(media center)

Page 8: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

ระบบปฏบต

การ

ดาวนโหลดไฟล Image จาก

Raspberrypi.org

ใชโปรแกรม win32 Disk

Image

บนทกไฟลลง micro

SDCARDเสยบเขาไปทบอรด

Raspberry Pi

Page 9: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

การเชอมตออปกรณเบองตน

Page 10: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

อปกรณตอพวงเบองตน ส าหรบโหมด Stand Alone

จอคอมพวเตอร / จอ TV รองรบความละเอยด 1920x1080

สาย HDMI/HDMI หรอ HDMI/DVI

อแดปเตอร 5V/1.5A

USB Mouse

USB Keyboard

Page 11: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

บตระบบปฏบตการ Raspbian

User : piPassword : raspberry

Page 12: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

เขาส Graphic Mode

พมพ STARTX

Page 13: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

การเขาสระบบเครอขายและ

อนเทอรเนต

สามารถตอสาย LAN เพอตอเขาอนเทอรเนตไดทนท

Page 14: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

sudo apt-get update ตรวจสอบการอพเดตซอฟตแวร

sudo apt-get upgrade อพเกรดซอฟตแวรทงหมดทตดตง

การอพเดตและตดต งโปรแกรม

sudo apt-get install (ชอโปรแกรม)ตดตงโปรแกรม

ตวอยาง ตดตง browsersudo apt-get install chromium-browser

Page 15: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

ค าส งทใชงานบอย

apt-get update อพเดตเวอรชน Raspbian

apt-get upgrade อพเกรดซอฟตแวรทงหมดทตดตงclear เคลยรหนาตาง Teminaldate แสดง วนเวลา ปจจบน

find-name *.* คนหาชอไฟลทตองการในทกโฟลเดอร

Page 16: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

ค าส งทใชงานบอย

nano xxx.txt เปดไฟลดวย Text Editor

touch xxx.txt สรางไฟลใหม

Page 17: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

ค าส งทใชงานบอย

sudo poweroff ปดเครองแบบทนท ทนใดsudo reboot รสตารตเครองใหม

startx เปดหนาตาง GUI ของ R-Pi

startlxde เปดหนาตาง GUI ของ R-Pi (Remote)

sudo shutdown -h now ปดระบบ

Page 18: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

ค าส งทใชงานบอย

sudo raspi-config เปดหนาตางตงคาของ R-Pi

Page 19: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

ls List files แสดงรายชอไฟลและไดเรคทอรcp Copy files ส าเนาไฟลmv Rename files เปลยนชอไฟลrm Delete files ลบไฟลcd Change directory ยายไปยงไดเรคทอรทตองการpwd Print directory name แสดงชอไดเรคทอรปจจบนmkdir Create directory สรางไดเรคทอรใหมrmdir Delete directory ลบไดเรคทอร (ทวางเปลาเทานน)

File/Directory Basics

ค าส งทใชงานบอย

Page 20: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

cat View files ดเนอหาของ text fileless Page trough files เลอนดเนอหาของไฟล ออกกอน Crl+Zhead View file beginning แสดงสวนตนของไฟลtail View files ending แสดงสวนทายของไฟลnl Number lines แสดงหมายเลขบรรทดod View binary files แสดงเนอหาในไฟลไบนาร

File Viewer

ค าส งทใชงานบอย

Page 21: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

ค าส งทใชงานบอย

teeCopy stdin to file and to stdout simultaneouslyส าเนาขอความออกทางไฟลและ stdout พรอมๆ กน

echo "Hello, world" | tee hello.txt

Hello, world

Page 22: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

การเชอมตอผาน WIFI

USB WIFI Dongle

Page 23: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

การต งคาผานโปรแกรม WiFi

Configuration

เปด WiFi Configurationกด Scan เพอคนหาเครอขาย

เลอกเครอขายทตองการใสรหสผาน ส าหรบเครอขายทเชอมตอ

Page 24: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

IP Address ของ Raspberry Pi

เปด Browser เพอทดสอบเชอมตออนเทอรเนต

การต งคาผานโปรแกรม WiFi

Configuration

Page 25: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

การแบงใชอนเทอรเนตจาก

Notebook

Notebook ตออนเทอรเนตดวย WiFi แชรให RPi ดวยสาย LAN

Router หรอ มอถอ

สาย LAN

ท าใหอยในเครอขายเดยวกนและเลนอนเทอรเนตไดดวย

Page 26: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

คลกเมาสขวาเลอก Properties ท WIFI

เลอกแชรอนเทอรเนตให LAN

ต งคา Network ท Notebook

* ถาเปน windows 8 จะใชค าวา Eternet แทน Local Area Network

Page 27: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

ต งคา Network ท Notebook

(windows 8)

Page 28: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

ตรวจสอบ IP Address ตวทปลอย

Page 29: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

การคนหาต าแหนง IP จากบอรด

RPi

สาย LAN

1. เชอมตอสาย LAN กบบอรด RPi

2. ใชโปรแกรม IPSCAN

3. คนหา IP ของบอรด RPi

Page 30: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

การ Fix ต าแหนง IP ของบอรด

RPi

1. น า SD CARD เสยบทคอมพวเตอร

2. เปดไฟล cmdline.txt ดวย nodepad

3. เพม ขอความ ตอทาย แลว SAVEip=192.168.137.10::192.168.137.1

Page 31: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

ตรวจสอบ ip address อกคร ง

1.เชอมตอบอรด RPi อกครง

สาย LAN

2.ตรวจสอบต าแหนง ip Address อกครง

Page 32: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

Remote ดวยโปรแกรม Remote

Desktop Connection

user : pipassword : raspberry

XRDP ตดตงบน RPi ไวแลว เพอรองรบการ Remote ผานซอฟตแวรRemote Desktop Connection ของ windows

XRDP

Page 33: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

หนาจอ Remote Desktop

Page 34: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

การควบคมระยะไกลดวย SSH (Moba

XTerm)SSH : Secure Shell (เขารหสขอมลกอนสง)

1.ตดตงโปรแกรม Moba Xterm

2.สราง Session แบบ SSH

3. X มมบนขวา สเขยว

Page 35: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

(Moba XTerm)

4. ปอน password : raspberry

ขณะปอน password ขอความไมปรากฎ

5. พรอมพมพ Command

Page 36: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

โหมด Graphic

6. พมพค าสง startlxde เพอเรยกโหมด Graphic

Page 37: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

การต งคาหนาจอของโหมด X11

Page 38: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

การคดลอกไฟลผาน Moba Xterm

Page 39: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

ฝก Python 3 ผาน Command Line

พมพแลวเหนผลลพธทนท>>> 2 + 2

4

>>> 50 - 5*6

20

>>> (50 - 5*6) / 4

5.0

>>> 8 / 5

1.6

>>> 17 / 3

5.666666666666667

>>> 5 ** 2

25

ผลลพธจากการหารเปน Float

ผลลพธจากการบวกเปน int

ยกก าลงออกจากโปรแกรมใช Ctrl+D

Page 40: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

>>> print ("inex")

inex

>>> print ('inex')

inex

>>> print ('Line1\nLine2\nLine3')

Line1

Line2

Line3

>>> x=10

>>> print ('X=',x)

X=10

รปแบบ

ค าส ง Print

ผลลพธ\'\"\n\t

'"ขนบรรทดใหมTab 1 ครง

Page 41: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

บวก ลบ คณ หาร

>>> 2 + 2

4

>>> 50 - 5*6

20

>>> (50 - 5*6) / 4

5.0

>>> 8 / 5

1.6

>>> 17 / 3

5.666666666666667

>>> 5 ** 2

25

ผลลพธจากการหารเปน Float

ผลลพธจากการบวกเปน int

ยกก าลง

Page 42: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

ตวแปรภายใน Pythonใชค าสง type (var) ตรวจสอบชนดตวแปร

>>> x = 400 x เปน Integer>>> y = 4.5 y เปน Float>>> Z = True Z เปน Boolean

>>> i = [1, 2, 3, 4, ’Rasp’, 5, ’Pi’] i เปน List

Python ไมใช Array ใช List แทน หลายชนดอยทเดยวกนได

>>> print (i[4])

Rasp

>>> print (i[2:6])

[3,4,'Rasp',5]

>>> S = 'Rasp' S เปน String

Page 43: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

>>> x = 100

>>> y = 20

>>> x+y

120

เครองหมาย = ใชก าหนดตวแปร

>>> x = 3.0

>>> y = 5

>>> x*y

15.0

การก าหนดคาตวแปร

Page 44: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

nano prog1.py

เปด editor

print ("Innovative")

เขยนโคด

print ("Experiment")

บนทก แลวออกCTRL + X

Y

ENTER

ทดสอบเขยนโปรแกรมดวย nano

Page 45: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

Graphic Mode : Geany โปรแกรม Editor ทชวยใหการเขยน Python งายขน

sudo apt-get install geany

ตดตงโปรแกรมผานInternet

Page 46: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

ตงใหคอมไพลดวย python3

Page 47: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

import time

x=0

while (True) :

print (x)

time.sleep(0.5)

x=x+1

ทดสอบโปรแกรม python ผาน Geany

กด F5 RUNกด CTRL+C ออก

Page 48: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

> มากกวา>= มากกวาหรอเทากบ<= นอยกวาหรอเทากบ< นอยกวา== เทากบ!= ไมเทากบin ตรงกบคาใน List หรอเปลา

AND จรงทงคOR จรงอนใดอนหนงNOT สลบจรงเปนเทจ

การเปรยบเทยบ

Page 49: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

while Condition:

Statements

.....

.....

x=1

while x<5 :

print ('Less')

x=x+1

ตวอยาง

การวนท าซ า while

ออกจาก while ไดดวย break

Page 50: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

s='0'

while s!='x' :

s = input('Press key= ')

print (s)

ตวอยาง

ค าสง input รอรบการกดคยเกบในตวแปรสตรงSTR

การวนท าซ า while

Page 51: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

การควบคมทศทางของโปรแกรม

1. การวนท าซ า (while)2. การตดสนใจ (if )3. การจดการความผดปกตของโปรแกรม (error)

Page 52: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

if Condition:

Statements

.....

.....

import time

x=0

while (True) :

if (x is 10) :

break

print (x)

time.sleep(0.2)

x=x+1

ตวอยาง

การตดสนใจ : IF

Page 53: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

if Condition:

Statements

.....

.....

else:

Statements

.....

.....

การตดสนใจ : if else

ตวอยางimport time

x=1

while True :

if (x>5) :

print (x*2)

else :

print (x*5)

time.sleep(0.5)

x=x+1

Page 54: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

การตดสนใจ : if elif else

import time

x=1

while True :

if (x<5) :

print (x*2)

elif (x>=5 and x<10) :

print (x*5)

else :

break

time.sleep(0.5)

x=x+1

ตวอยางif Condition:

Statements

.....

.....

elif Condition:

Statements

.....

.....

else:

Statements

.....

.....

Page 55: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

การวนท าซ าดวย for

for var in range(m, n [, step = 1]):

Statements

.....

.....

for i in range(0,10) :

if i%2 == 0 :

print (i,'even')

else :

print (i,'odd')

ตวอยาง

for ต วแปร in ช ดข อม ล :ค า ส ง 1ค า ส ง 2

Page 56: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

ฟงกชนคณตศาสตรภายใน ทส าค

ก าหนดคาชวงของตวเลขrange(start, end [,step])

range (1,6) # จะประกอบดวย 1,2,3,4,5

หาผลรวมทงหมดในชดsum(n1,n2 [,nn])

sum(1,2,3,4,5) # ผลลพธคอ 15

ก าหนดจ านวนทศนยมround(var, digits)

round(1234.56789, 2) # ผลลพธคอ 1234.57

หาคาต าสด สงสด ของเลขในชดmin(var), max(var)

min(range(5,10)) # ผลลพธคอ 5

max(range(5,10)) # ผลลพธคอ 9

แสดงคาสมบรณ (เปลยนเปนคาบวก)abs(var)

abs(-50) # ผลลพธคอ 50

Page 57: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

การดกจบ error

try:

Standard operation

except:

Error operation

finally:

End operation

try :

x=y

except :

print ('y not set')

try:

main()

finally:

GPIO.cleanup()

print("END")

Page 58: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

def function_name( [Argument] ):

Statement

……

[return]

def add(x,y):

return x + y

def บอกวาเปนฟงกชนfunction_name ชอฟงกชนArgument คาทสงเขาไปในฟงกชนStatement ชดค าสงreturn การคนคาของฟงกชน add(3,4)

7

การสรางฟงกชน

Page 59: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

การนบขาของ Rpi

Page 60: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

ต าแหนงขา GPIO ของ Rpi

GPIO 26 ขา

PWM ทกขา

I2C /UART/SPI

Page 61: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

การระบขาแบบ BCMBOARDBCM

Page 62: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

บอรด Rpi-I/O 40 และการเชอมตอ

Page 63: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

การระบต าแหนงขาของ Rpi-I/O 40

Page 64: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

รปแบบการตอวงจรกบ Rpi-I/O 40

Page 65: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

import RPi.GPIO as GPIO

เพมไลบรารในชอ GPIO

GPIO.setmode(GPIO.BCM)

setmode ก าหนดรปแบบขา

GPIO.setmode(GPIO.BOARD)

GPIO.setup(pin,GPIO.OUT)

setup ก าหนด input/output

GPIO.setup(pin,GPIO.IN)

GPIO.output(pin,1)

output สงคาออกไปทขา

GPIO.output(pin,0)

ไลบราร RPi.GPIO

x = GPIO.input(pin)

input รบคาลอจกจากขา

GPIO.cleanup()

cleanup เคลยรคาพอรตกลบ

GPIO.PWM(pin,freq)

PWM เปดการท างาน PWMGPIO.setwarning(0)

ปดการแจงเตอน

Page 66: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

ไฟกะพรบทขา 18import RPi.GPIO as GPIO

import time

GPIO.setmode(GPIO.BCM)

GPIO.setup(18,GPIO.OUT)

while True :

GPIO.output(18,True)

time.sleep(0.3)

GPIO.output(18,False)

time.sleep(0.3)

Page 67: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

Cleanup Port หลงเลกใช

import RPi.GPIO as GPIO

import time

GPIO.setmode(GPIO.BCM)

GPIO.setup(18,GPIO.OUT)

try :

while True :

GPIO.output(18,True)

time.sleep(0.3)

GPIO.output(18,False)

time.sleep(0.3)

finally :

GPIO.cleanup()

Page 68: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

ตอวงจร LED 8 ดวง

Page 69: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

import RPi.GPIO as GPIO

import time

GPIO.setmode(GPIO.BCM)

GPIO.setup(18,GPIO.OUT)

GPIO.setup(27,GPIO.OUT)

GPIO.setup(22,GPIO.OUT)

GPIO.setup(23,GPIO.OUT)

try:

while (True) :

GPIO.output(18,1)

GPIO.output(27,1)

GPIO.output(22,1)

GPIO.output(23,1)

time.sleep(0.5)

GPIO.output(18,0)

GPIO.output(27,0)

GPIO.output(22,0)

GPIO.output(23,0)

time.sleep(0.5)

finally:

GPIO.cleanup()

ขบ LED ไฟกะพรบ 4 ดวง แบบท 1

Page 70: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

in ดงคาใน pins ออกมาทละตวเกบใน X

>>> i = [1, 2, 3, 4, ’Rasp’, 5, ’Pi’]

Python ไมใช Array ใช List แทน หลายชนดอยทเดยวกนได

pins = [18,27,22,23]

ประกาศตวแปรแบบ List

pins = [18,27,22,23]

for x in pins:

GPIO.setup(x,GPIO.OUT)

ค าสง For และตวแปรแบบ List

Page 71: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

ขบ LED ไฟกะพรบ 4 ดวง แบบท 2import RPi.GPIO as GPIO

import time

pins = [18,27,22,23]

GPIO.setmode(GPIO.BCM)

for x in pins :

GPIO.setup(x,GPIO.OUT)

try:

while (True) :

for x in pins :

GPIO.output(x,1)

time.sleep(0.5)

for x in pins :

GPIO.output(x,0)

time.sleep(0.5)

finally:

GPIO.cleanup()

Page 72: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

ขบ LED ไฟกะพรบ 8 ดวงimport RPi.GPIO as GPIO

import time

pins = [18,27,22,23,24,10,9,25]

GPIO.setmode(GPIO.BCM)

for x in pins :

GPIO.setup(x,GPIO.OUT)

try:

while (True) :

for x in pins :

GPIO.output(x,1)

time.sleep(0.5)

for x in pins :

GPIO.output(x,0)

time.sleep(0.5)

finally:

GPIO.cleanup()

Page 73: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

ขบ LED ไฟวงimport RPi.GPIO as GPIO

import time

pins = [18,27,22,23,24,10,9,25]

GPIO.setmode(GPIO.BCM)

for x in pins :

GPIO.setup(x,GPIO.OUT)

try:

while (True) :

for x in pins :

GPIO.output(x,1)

time.sleep(0.5)

for x in pins :

GPIO.output(x,0)

time.sleep(0.5)

finally:

GPIO.cleanup()

Page 74: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

import random

import RPi.GPIO as GPIO

import time

pin =[18,27,22,23,24,10,9,25]

GPIO.setmode(GPIO.BCM)

for i in pin : GPIO.setup(pin,GPIO.OUT)

try:

while True :

x=random.randint(0,7)

GPIO.output(pin[x],1)

time.sleep(0.2)

for i in pin :

GPIO.output(i,0)

finally :

GPIO.cleanup()

ทดสอบค าสง Random

Page 75: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

การอานคาอนพตจากสวตช

Page 76: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

import RPi.GPIO as GPIO

import time

pins = [18,27,22,23,24,10,9,25]

GPIO.setmode(GPIO.BCM)

GPIO.setup(11,GPIO.IN)

GPIO.setup(8,GPIO.IN)

for x in pins :

GPIO.setup(x,GPIO.OUT)

for x in pins :

GPIO.output(x,0)

try:

while (True) :

if GPIO.input(11) : GPIO.output(18,1)

else : GPIO.output(18,0)

if GPIO.input(8) : GPIO.output(27,1)

else : GPIO.output(27,0)

finally:

GPIO.cleanup()

การอานคาอนพตจากสวตช

Page 77: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

and ตองเปนจรงทงค จงจะเปนจรงor เปนจรง อนใดอนหนง เปนจรงnot สลบ จรงเปนเทจ เทจเปนจรง

if GPIO.input(11)

if not GPIO.input(11)

if GPIO.input(11) or GPIO.input(8)

การกระท าทางลอจก

if GPIO.input(11) and GPIO.input(8)

Page 78: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

import RPi.GPIO as GPIO

import time

pins = [18,27,22,23,24,10,9,25]

GPIO.setmode(GPIO.BCM)

GPIO.setup(11,GPIO.IN)

GPIO.setup(8,GPIO.IN)

for x in pins :

GPIO.setup(x,GPIO.OUT)

for x in pins :

GPIO.output(x,0)

try:

while (True) :

if GPIO.input(11) and GPIO.input(8) :

GPIO.output(18,1)

else :

GPIO.output(18,0)

finally:

GPIO.cleanup()

ทดสอบกดสวตช

Page 79: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

สง Pull up Pull Down ดวยซอฟตแวรก าหนดใหขา 20 เปนขาอนพต และมการพลอพGPIO.setup(20,GPIO.IN,pull_up_down=GPIO.PUD_UP)

ก าหนดใหขา 21 เปนขาอนพต และมการพลดาวนGPIO.setup(21,GPIO.IN,pull_up_down=GPIO.PUD_DOWN)

50 กโลโอหม พลอพ

Page 80: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

import RPi.GPIO as GPIO

import time

pins = [18,27,22,23,24,10,9,25]

GPIO.setmode(GPIO.BCM)

GPIO.setup(11,GPIO.IN,pull_up_down=GPIO.PUD_UP)

GPIO.setup(8,GPIO.IN,pull_up_down=GPIO.PUD_UP)

for x in pins :

GPIO.setup(x,GPIO.OUT)

for x in pins :

GPIO.output(x,0)

try:

while (True) :

if GPIO.input(11) and GPIO.input(8) :

GPIO.output(18,1)

else :

GPIO.output(18,0)

finally:

GPIO.cleanup()

ทดสอบ พลอพสวตชดวยซอฟตแวร

Page 81: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

อานคาสวตชขอบขาขน ขอบขาลงGPIO.wait_for_edge(23, GPIO.FALLING)

import RPi.GPIO as GPIO

GPIO.setmode(GPIO.BCM)

GPIO.setup(11, GPIO.IN, pull_up_down = GPIO.PUD_UP)

GPIO.setup(8, GPIO.IN, pull_up_down = GPIO.PUD_UP)

try :

while True:

GPIO.wait_for_edge(11, GPIO.FALLING)

print('Button 1 Pressed')

GPIO.wait_for_edge(11, GPIO.RISING)

print('Button 1 Released')

GPIO.wait_for_edge(8, GPIO.FALLING)

print('Button 2 Pressed')

GPIO.wait_for_edge(8, GPIO.RISING)

print('Button 2 Released')

finally :

GPIO.cleanup()

GPIO.wait_for_edge(23, GPIO.RISING)

ขาลงขาขน

Page 82: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

รปแบบการสรางฟงกชน

def add(x,y):

return x + ydef บอกวาเปนฟงกชนfunction_name ชอฟงกชนArgument คาทสงเขาไปในฟงกชนStatement ชดค าสงreturn การคนคาของฟงกชน

def function_name( [Argument] ):

Statement

……

[return]

Page 83: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

import RPi.GPIO as GPIO

import time

GPIO.setmode(GPIO.BCM)

GPIO.setup(11,GPIO.IN)

def blink(CH,delay,cnt):

GPIO.setup(CH,GPIO.OUT)

for i in range(1,cnt):

GPIO.output(CH,1)

time.sleep(delay)

GPIO.output(CH,0)

time.sleep(delay)

try :

while GPIO.input(11):

blink(18,0.5,5)

time.sleep(2.0)

finally :

GPIO.cleanup()

ทดสอบใชงานฟงกชน

Page 84: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

EVENTS AND CALLBACK FUNCTIONS

import RPi.GPIO as GPIO

import time

GPIO.setmode(GPIO.BCM)

GPIO.setup(11,GPIO.IN,pull_up_down=GPIO.PUD_UP)

GPIO.setup(18,GPIO.OUT)

def prints(CH) :

print ('Button 1 Pressed')

try :

GPIO.add_event_detect(11,GPIO.RISING,callback=prints,bouncetime=300)

while True :

GPIO.output(18,1)

time.sleep(0.2)

GPIO.output(18,0)

time.sleep(0.2)

finally :

GPIO.cleanup()

Page 85: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

import RPi.GPIO as GPIO

import time

GPIO.setmode(GPIO.BCM)

GPIO.setup(11,GPIO.IN,pull_up_down=GPIO.PUD_UP)

GPIO.setup(8,GPIO.IN,pull_up_down=GPIO.PUD_UP)

GPIO.setup(7,GPIO.IN,pull_up_down=GPIO.PUD_UP)

GPIO.setup(5,GPIO.IN,pull_up_down=GPIO.PUD_UP)

GPIO.setup(18,GPIO.OUT)

def prints(CH) :

print ('Button', CH, 'Pressed')

try :

GPIO.add_event_detect(11,GPIO.RISING,callback=prints,bouncetime=300)

GPIO.add_event_detect(8,GPIO.RISING,callback=prints,bouncetime=300)

GPIO.add_event_detect(7,GPIO.RISING,callback=prints,bouncetime=300)

GPIO.add_event_detect(5,GPIO.RISING,callback=prints,bouncetime=300)

while True :

GPIO.output(18,1)

time.sleep(0.2)

GPIO.output(18,0)

time.sleep(0.2)

finally :

GPIO.cleanup() GPIO.remove_event_detect(23)

ปด Event

เพมต าแหนงขาใหเกด Event

Page 86: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

import RPi.GPIO as GPIO

import time

GPIO.setmode(GPIO.BCM)

GPIO.setup(11,GPIO.IN,pull_up_down=GPIO.PUD_UP)

GPIO.setup(8,GPIO.IN,pull_up_down=GPIO.PUD_UP)

GPIO.setup(7,GPIO.IN,pull_up_down=GPIO.PUD_UP)

GPIO.setup(5,GPIO.IN,pull_up_down=GPIO.PUD_UP)

GPIO.setup(18,GPIO.OUT)

def prints(CH) :

print ('Button', CH, 'Pressed')

try :

GPIO.add_event_detect(11,GPIO.RISING,callback=prints,bouncetime=300)

GPIO.add_event_detect(8,GPIO.RISING,callback=prints,bouncetime=300)

GPIO.add_event_detect(7,GPIO.RISING,callback=prints,bouncetime=300)

while True :

GPIO.output(18,1)

time.sleep(0.2)

GPIO.output(18,0)

time.sleep(0.2)

if (not GPIO.input(5)):

print ('Close Event')

GPIO.remove_event_detect(11)

GPIO.remove_event_detect(8)

GPIO.remove_event_detect(7)

finally :

GPIO.cleanup()

ทดสอบปด Event

Page 87: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

สรางเสยงออกล าโพง

Page 88: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

def sound(pins,freq,times):

GPIO.setup(pins,GPIO.OUT)

for i in range(0,times):

GPIO.output(pins,1)

time.sleep(0.5/freq)

GPIO.output(pins,0)

time.sleep(0.5/freq)

สรางเสยงออกล าโพง

Page 89: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

import RPi.GPIO as GPIO

import time

def sound(pins,freq,times):

GPIO.setup(pins,GPIO.OUT)

for i in range(0,times):

GPIO.output(pins,1)

time.sleep(0.5/freq)

GPIO.output(pins,0)

time.sleep(0.5/freq)

GPIO.setmode(GPIO.BCM)

GPIO.setup(11,GPIO.IN,pull_up_down= GPIO.PUD_UP)

try:

while(1):

if (not GPIO.input(11)) :

sound(4,1000,100)

sound(4,2000,100)

sound(4,500,100)

finally:

GPIO.cleanup()

สรางเสยงออกล าโพง

Page 90: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

PWM : พลสวธมอดเลเตอร

p=GPIO.PWM(pin,freq)

เปดการใช PWM

p.start(%dutycycle)

เรมตน PWM

p.ChangeFrequency(freq)

เปลยนความถ PWM

p.ChangeDutyCycle(%duty)

เปลยนคาความกวางพลส

p.stop()

หยด PWM

Page 91: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

ไฟกะพรบดวย PWM

import RPi.GPIO as GPIO

import time

GPIO.setmode(GPIO.BCM)

GPIO.setup(18,GPIO.OUT)

GPIO.setup(11,GPIO.IN,pull_up_down=GPIO.PUD_UP)

p=GPIO.PWM(18,1)

p.start(50)

input('Press return to stop')

p.stop()

GPIO.cleanup()

1 Hz

Page 92: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

import RPi.GPIO as GPIO

import time

GPIO.setmode(GPIO.BCM)

GPIO.setup(18,GPIO.OUT)

p=GPIO.PWM(18,50)

p.start(0)

try:

while True :

for x in range(0,101,5) :

p.ChangeDutyCycle(x)

time.sleep(0.1)

for x in range(100,-1,-5) :

p.ChangeDutyCycle(x)

time.sleep(0.1)

except KeyboardInterrupt:

pass

p.stop()

GPIO.cleanup()

ไฟกะพรบดวย PWM

Page 93: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

import RPi.GPIO as GPIO

import time

pin =[18,27,22,23,24,10,9,25]

p=[0,1,2,3,4,5,6,7,8]

GPIO.setmode(GPIO.BCM)

for i in pin : GPIO.setup(i,GPIO.OUT)

for i in range(0,8) : p[i]=GPIO.PWM(pin[i],50)

for i in range(0,8) : p[i].start(0)

try:

while True :

for i in range(0,8) :

for x in range(0,101,5) :

p[i].ChangeDutyCycle(x)

time.sleep(0.01)

for i in range(0,8) :

for x in range(100,-1,-5) :

p[i].ChangeDutyCycle(x)

time.sleep(0.01)

except KeyboardInterrupt:

pass

for i in range(0,8) : p[i].stop()

GPIO.cleanup()

ไฟน าตก

Page 94: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

import RPi.GPIO as GPIO

import time

x=2000

GPIO.setmode(GPIO.BCM)

GPIO.setup(4,GPIO.OUT)

GPIO.setup(11,GPIO.IN,pull_up_down=GPIO.PUD_UP)

GPIO.setup(8,GPIO.IN,pull_up_down=GPIO.PUD_UP)

p=GPIO.PWM(4,2000)

p.start(50)

try:

while True:

if not GPIO.input(11):

x=x+100

print (x)

p.ChangeFrequency(x)

time.sleep(0.2)

if not GPIO.input(8):

if x>100:

x=x-100

print (x)

p.ChangeFrequency(x)

time.sleep(0.2)

finally:

p.stop()

GPIO.cleanup()

Page 95: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

การใชงานโมดลกลอง Pi-camera

ความละเอยดถง 5 ลานพกเซล เลนสแบบ Fixed-Focus ภาพขนาดสงสด 2592x1944 พกเซล ภาพเคลอนไหวคณภาพ ระดบ 1080p 30 เฟรมตอวนาท (1080p) ตดตอกบบอรด Raspberry Pi ดวย

บส CSI (Common System Interface)

Page 96: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

เคสอะครลกปองกนตวกลอง

Page 97: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

การประกอบเคสอะครลก

1. แกะกระดาษออกกอน

2. วางกลองลงไป 3. สอบสาย 4.ประกบเขาไป

Page 98: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

การประกอบเคสอะครลก (ตอ)

5. ประกบชนท 5 โดยสอดสายเขาไป

6. ใชสกรขนยดใหแนน

Page 99: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

การตดตงกลอง

ถงขาลอกขนกอน เสยบสายแพ แลวกดขาลอกใหแนน

Page 100: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

การตงคาเพอตดตอโมดลกลอง

pi@raspberrypi ~ $ sudo raspi-config

Enable Camera > Enable

Page 101: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

ค าสงควบคมโหมดภาพนง

raspistill เปดโมดลกลองเพอถายภาพนงo --width , -w ปรบขนาดความกวางของภาพo --height , -h ปรบขนาดความสงของภาพo --quality , -q ปรบแตงคณภาพของรปทถาย คา 0-100o --output , -o บนทกภาพในชอไฟลทก าหนด

เชน raspistill –o image.jpg

Page 102: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

ค าสงควบคมโหมดภาพนง (ตอ)

--timeout , -t ใชก าหนดชวงเวลาเปดโมดลกลอง ปกต 5 วนาทเชน raspistill –t 10000 (สงเปดโมดลกลองนาน 10 วนาท)

--verbose , -v แสดงรายละเอยดตาง ๆ ออกมาขณะเกบภาพ

Page 103: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

ค าสงควบคมโหมดภาพนง (ตอ)

--timelapse , -tl ใหกลองถายเปนชวง ๆ หนวยเปน millisecเชน raspistill –t 20000 -tl 2000 -o x%03d.jpg

เปดกลองนาน 20 วนาท ถายภาพนงทก ๆ 2 วนาท บนทกภาพในชอ x001.jpg - x011.jpg

--encoding , -e บบอดไฟลรปแบบอน เชน png ,bmp ,gifเชน raspistill -o x%03d.png -e png

Page 104: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

ค าสงควบคมอนๆ

ส าหรบตอทาย raspistill o --preview , -p แสดงภาพออกจอดวยขณะถายรป (รโมตใชไมได)ก าหนดพกด x,y หนาจอ และขนาดภาพดวยเชน

raspistill -p 100,150,1000,800o --fullscreen , -f แสดงรปภาพเตมจอ เชน raspistill -fo --nopreview , -n ปดการแสดงออกหนาจอ เชน raspistill -no --opacity , -op ก าหนดความเขมของรปภาพ ชวง 0-255 255 ชดสด

Page 105: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

ค าสงควบคมโหมดภาพเคลอนไหว

raspivid เปดโมดลกลองเพอถายภาพเคลอนไหว

o --width , -w ปรบขนาดความกวางอยในชวง 64 ถง 1920po --height , -h ปรบขนาดความสงอยในชวง 64 ถง 1080po --output , -o บนทกภาพเคลอนไหวในชอและนามสกล h264เชน raspivid –o movie1.h264o --timeout , -t ก าหนดชวงเวลาเปดกลอง ปกต 5 วนาทหรอกด Ctrl+C เพอหยดการท างานได

raspivid –t 60000 –o Clip1.h264

Page 106: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

สงการกลองดวย Python

import time

import picamera

with picamera.PiCamera() as camera:

camera.resolution = (1024,768)

camera.start_preview()

time.sleep(2)

camera.capture(‘Picam_P1.jpg’)

Page 107: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

import picamera

import time

import RPi.GPIO as GPIO

GPIO.setwarnings(0)

GPIO.setmode(GPIO.BCM)

GPIO.setup(18,GPIO.IN)

camera= picamera.PiCamera()

camera.resolution =(1024,768)

camera.start_preview()

x=0

while 1:

if(not GPIO.input(18)) :

camera.capture(str(x)+'.jpg')

time.sleep(0.5)

x=x+1

กดป ม ถายรป

Page 108: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

camera.sharpness = 0

camera.contrast = 0

camera.brightness = 50

camera.saturation = 0

camera.ISO = 0

camera.video_stabilization = False

camera.exposure_compensation = 0

camera.exposure_mode = 'auto'

camera.meter_mode = 'average'

camera.awb_mode = 'auto'

camera.image_effect = 'none'

camera.color_effects = None

camera.rotation = 0

camera.hflip = False

camera.vflip = False

camera.crop = (0.0, 0.0, 1.0, 1.0)

Page 109: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

import picamera

import time

import RPi.GPIO as GPIO

import datetime

GPIO.setwarnings(0)

GPIO.setmode(GPIO.BCM)

GPIO.setup(17,GPIO.IN)

namex=str(datetime.datetime.now())+".jpg"

camera= picamera.PiCamera()

camera.resolution =(1024,768)

camera.start_preview()

camera.rotation =45

while 1:

if(not GPIO.input(17)) :

camera.capture(namex)

time.sleep(0.5)

ถายรปโชววนท

Page 110: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

Sensor

PIR DHT11

MCP9701

reolution

Page 111: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

การอานคาAnalog

คณสมบต-แปลงส าณสงสดถง 12 บต(0-4095) -ตดตอ แบบระบบบส SPI (Serial Peripheral Interface)-8 ชองส าน(CH0-CH7)

Page 112: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

ตงคาเปด SPI

เปดการตงคาsudo raspi-config

Page 113: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

ตงคาเปด SPI

เลอก A6 SPI

Page 114: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

ตงคาเปด SPI

เลอก Yes

Page 115: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

ตงคาเปด SPI

เลอก ok

Page 116: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

โหมดการอาคา

ซงเกลเอนด

ดฟเฟอเรนเซยล

Page 117: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

สงค าสง-รบคากบMCP3208

Page 118: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

สงค าสง-รบคากบMCP3208สงค าสงอานคาในหนงครงจะใชทงหมด 3 ไบต

ไบตทสดทายไบตแรก ไบตทสอง

รบคาทอานไดใช 2 ไบต

สง

รบ

คาอนาลอก

ก าหนดชอง

Page 119: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

สงค าสงไปยงMCP3208สงค าสงอานคาในหนงครงจะใชทงหมด 3 ไบต

x x x x x บตเรม โหมด D2

D1 D0 x x x x x x

x x x x x x x x

ไบตแรก

ไบตทสอง

ไบตทสดทาย

x x x x x

ไบตทสดทายไบตแรก ไบตทสอง

Page 120: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

สงค าสงไปยงMCP3208

x x x x x บตเรม โหมด D2

D1 D0 x x x x x x

x x x x x x x x

ไบตแรก

ไบตทสอง

ไบตทสดทาย

บตเรม มคาเทากบ 1 เสมอโหมด 0=ดฟเฟอเรนเชยล,1=ซงเกลเอนดD2 D1 D0 เลขฐานสองของชองส าณทเลอกเชน CH3=011X = เปนอะไรกได แตจะก าหนดเปน 0 เสมอ

Page 121: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

สงค าสงไปยงMCP3208

0 0 0 0 0 1 1 0

1 1 0 0 0 0 0 0

0 0 0 0 0 0 0 0

ไบตแรก

ไบตทสอง

ไบตทสดทาย

ผลลพท: 00000110 11000000 00000000 เลขฐานสอง

ตวอยาง เลอกอานส าณทชอง CH3 ในโหมดซงเกลเอนดบตเรม=1:โหมด=1:CH3=011 ดงนน D2=0,D1=1,D0=1:x=0

Page 122: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

รบคาจากMCP3208รบคาอนาลอกจะใช 2 ไบตสดทาย

? ? ? ? ? ? ? ?

? ? ? ? B11 B10 B9 B8

B7 B6 B5 B4 B3 B2 B1 B0

ไบตแรก

ไบตทสอง

ไบตทสดทาย

x x x x x x x x x x x x

ไบตทสดทายไบตแรก ไบตทสอง

x x x x

ไบตทสอง

x x x x x x x x

ไบตทสดทายไบตแรก

x x x x

ไบตทสอง

Page 123: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

รบคาจากMCP3208

? ? ? ? ? ? ? ?

? ? ? ? 1 0 0 1

0 1 1 1 0 0 1 1

ไบตแรก

ไบตทสอง

ไบตทสดทาย

ตวอยางคาทอานได

ใช 2 ไบตสดทายจะได ????1001 01110011

Page 124: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

รบคาจากMCP3208

ใช 2 ไบตสดทายจะได ????1001 01110011

ไบตท 2 = ????1001ไบตท 3= 01110011

วธท า ไบตท 2 (???? 1001 AND 0000 1111) = 0000 1001(0000 1001 << 8)=00001001 00000000

แลว OR กบไบตท 3(00001001 00000000 OR 01110011)ผลลพธ 00001001 01110011 (2419)

Page 125: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

ตอวงจร

Page 126: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

รบคาจากMCP3208import spidevimport time analog_ch = 1spi = spidev.SpiDev()spi.open(0,0)def readADC(adcnum):

if adcnum > 7 or adcnum < 0:return -1;

r = spi.xfer2([4 | 2 | (adcnum >> 2), (adcnum & 3) << 6, 0])adcout = ((r[1] & 15) << 8) + r[2]return adcout

while True:value = readADC(analog_ch)print("analog_ch1=",value)time.sleep(0.3)

Page 127: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

รบคาจากMCP3208

จาก : r = spi.xfer2([4 | 2 | (adcnum >> 2), (adcnum & 3) << 6, 0])ตวอยาง ตองการอานชอง CH3 โหมด ซงเกลเอนadcnum=3ไบต 1: 4|2|(3>>2)=000 0110ไบต 2: (3&3)<<6=1100 0000ไบต 3: 0000 0000ผลลพท 0000110 11000000 00000000

0 0 0 0 0 1 1 0 1 1 0 0 0 0 0 0

ไบตทสดทายไบตแรก ไบตทสองไบตทสอง ไบตทสดทายไบตแรก ไบตทสอง

0 0 0 0 0 0 0 0

Page 128: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

รบคาจากMCP3208

จาก : adcout = ((r[1] & 15) << 8) + r[2]จากตวแปร r[2] =ไบตท 3 : r[1]=ไบตท 2 : r[0]ไบตท 1 r[1] = ???? 1001r[2]= 01110011ไบต สงสด: (????1001&00001111)<<8=00001001 00000000ไบต ต าสด:01110011ไบต สงสด+ ไบต ต าสด=00001001 01110011(2419)

? ? ? ? ? ? ? ? ? ? ? ? 1 0 0 1

ไบตทสดทายไบตทสองไบตทสอง ไบตทสดทายไบตแรก ไบตทสอง

0 1 1 1 0 0 1 1

Page 129: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

MCP9701 ไอซวดอณหภม

Page 130: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

MCP9701 ไอซวดอณหภม

Page 131: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

ตอวงจร

Page 132: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

เขยนโคด

import spidevimport timeanalog_ch = 1spi = spidev.SpiDev()spi.open(0,0)def readADC(adcnum):

if adcnum > 7 or adcnum < 0:retrun -1;

r = spi.xfer2([4|2|(adcnum >> 2), (adcnum & 3) << 6, 0])adcout = ((r[1] & 15) << 8) + r[2]return adcout

Page 133: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

เขยนโคด(ตอ)

while True:value = readADC(analog_ch)voltage = value*3.3/4096temp = (voltage-0.5)/0.0195print(“Temperature = %2.2f*C” % temp)time.sleep(0.3)

Page 134: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

ZX-DHT11

บอรดวดความชนสมพทธและอณหภม

Page 135: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

ZX-DHT11

รปแบบขอมลของ DHT11ไบตท 1 ขอมลจ านวนเตมของความชนสมพทธ (%RH) 8 บตไบตท 2 ขอมลทศนยมของความชนสมพทธ (%RH) 8 บตไบตท 3 ขอมลจ านวนเตมของอณหภม (องศาเซลเซยส) 8 บตไบตท 4 ขอมลทศนยมของอณหภม (องศาเซลเซยส) 8 บตไบตท 5 ขอมลตรวจสอบผลรวม (check sum)

Page 136: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

ZX-DHT11

เสนสด า:ชวงทRaspberryPi ก าหนดสถานะลอจกของบส

เสนสแดง:ชวงท DHT11 ก าหนดสถานะลอจกของบส

Page 137: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

ZX-DHT11

Page 138: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

ตอ DHT11

Page 139: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

ทดสอบ

sudo python3import Adafruit_DHTAdafruit_DHT.read_retry(11, 4)

Page 140: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

ทดสอบimport time

import Adafruit_DHT

Sensor = Adafruit_DHT.DHT11

GPIO = 4

while True:

humidity, temperature = Adafruit_DHT.read_retry(Sensor,GPIO)

if humidity is not None and temperature is not None:

print('Temp={0:0.1f}*C Humidity={1:0.1f}%'.format(temperature,humidity))

else:

print('Failed to get reading. Try again!')

Page 141: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

วดความเขมแสง

Page 142: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

คณสมบต

ไฟเลยง +3 ถง +5 V1-65535 (ลกซ)ทดตอการรบกวนจากแสงอนฟราเรด

Page 143: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

เปดใช i2c

Page 144: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

เปดใช i2c

Page 145: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

เปดใช i2c

Page 146: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

เปดใช i2c

Page 147: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

ตอวงจร

Page 148: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

ทดสอบการเชอมตอ

Page 149: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

แสดงคาความเขมแสงimport time

import smbus

bus = smbus.SMBus(1)

addr = 0x23 # i2c adress

while True:

data = bus.read_i2c_block_data(addr,0x11)

lum=(data[1] + (data[0]<<8) / 1.2)

print ("Luminosity " ,lum,"lx")

time.sleep(0.5)

Page 150: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

เตอน

Page 151: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

PIR

Page 152: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

PIR

Page 153: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

PIR

Page 154: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

วงจร

Page 155: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

PIR

Page 156: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

เตอนGPIO.setwarnings(False)

GPIO.setmode(GPIO.BCM)

GPIO.setup(24,GPIO.OUT)

blink = GPIO.PWM(18,500)

blink.start(0)

GPIO.setup(21,GPIO.IN)

st=0

while (1):

da=datetime.now()

microsec=da.microsecond

if microsec > 700000:

blink.ChangeDutyCycle(st)

else:

blink.ChangeDutyCycle(0)

state=GPIO.input(21)

if (state==1):

st=50

else:

st=0

Page 157: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

การตงคาใหชดค าสงเรมท างานอตโนมต

import RPi.GPIO as

GPIO

import time

GPIO.setmode(GPIO.BC

M)

ledPin=16

swPin=22

GPIO.setup(ledPin,GP

IO.OUT)

GPIO.setup(swPin,GPI

O.IN)

1.สรางชดค าสงทตองการจะรนแบบอตโนมต โดยในทนใชชดค าสง LED.py และไดมการเพมการตอสวตชไวท GPIO 22 (ตอแบบ Active low) เมอมการกดสวตชโปรแกรมกจะหยดการท างาน

try:

while

(GPIO.input(swPin)):

GPIO.output(ledPin,

0)

time.sleep(0.5)

#print("Relay=OFF")

Page 158: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

3. เปด Terminal แลวท าการแกไขไฟล rc.local โดยพมพชดค าสง sudo nano /etc/rc.local

2.บนทกไฟลชอ LED.py แลวเลอเมน Build > Exrcute บนโปรแกรม Geanyหรอ เปดเทอมนอลแลวสงรนดวยค าสง

sudo python3 LED.py

และใหจ าต าแหนงของไดเรคทอรใด ซงในทนอยท /home/pi/Desktop/LED.py

Page 159: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

4. จะพบชดค าสงตางๆ แลวใหพมพชดค าสง sudo python3 /home/pi/Desktop/LED.py &

กอนบรรทด exit0 ดงภาพ จากนนบนทกการแกไขไฟลโดยกด Ctrl+Xและ Y แลวตามดวย Enter

หมายเหต เครองหมาย & ตอทายค าสงเปนการบอกวาค าสงนใหท างานอยเบองหลงและถาหากไมใชงานการท างานชดค าสงแบบอตโนมตใหเขามาเพม # ทหนาชดค าสงทเพมขนน

Page 160: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

5. เมอแกไขไฟลเสรจเรยบรอยแลวใหลองรบตใหมดวยค าสง sudo reboot

6.เมอบอรดเรมกลบมาท างานใหมกจะเหนวาหลอด LED จะกระพรบตลอดเวลาโดยทไมตองพมพค าสงใหท างานเลยหลงจากตวบอรดเรมท างาน

หมายเหต ระบบตองตงคาแบบ Console Text console, requiring login (default)ซงยงไมเขาส startx

Page 161: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

ทดสอบการท างานชดค าสงเรมท างานอตโนมต

แตถาหากทดลองกดสวตชกจะพบวาโปรแกรมหลกจาก loop while และหยดท างาน (เปนผลมาจากการตงคาเงอนไขอานคาการกดสวตช)

Page 162: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

วธการ Kill process ทท างานอย1. Remote เขาไปยงบอรดทท างานอย เปด Terminal ท าการคนหา Process ID ของโปรแกรมทท างานอย โดยใชค าสง

ps ax | grep {ชอไฟล}

Page 163: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

2. จะเหนไดวาม Process ของ LED.py อย 3 ตวทท างาน ซงจะเหนเลข Process ID อยดวย

3. ใชค าสง Kill Process แลวใชการระบ Process ID ทตองการจะปด ใหใช Process ID ของตวไหนกไดทมาจากค าสง python3

(จะเปนตวทมค าสง sudo น าหนาหรอไมกได)

sudo kill 2207

Page 164: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

4. หลงจากชดค าสงหยดท างานแลว ตรวจสอบProcess ทท างานอกครงกจะพบวาไมม Process ของชดค าสง LED.py หลงเหลออยแลว

Page 165: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

WiringPi เขยนภาษา C บน RPiตดตง wiringPi

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

cd wiringPi

git pull origin

./build

ทดสอบผาน Terminal (สง LED ตดและดบท ขา 18)gpio -g mode 18 output

gpio -g write 18 1

gpio -g write 18 0

ทดสอบผาน Terminal (ใหขา 22 เปนอนพตพลอพ และอานคา)gpio -g mode 22 up

gpio -g read 22

ถาไมไดตองลง Make กอนsudo apt-get install Make

Page 166: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

WiringPi เขยนภาษา C บน RPiก าหนดคาเรมตนwiringPiSetupGpio(); // ก าหนดคาเรมตนให RPi แบบบขา BCM

ก าหนดคาเรมตนpinMode(22,INPUT)

pinMode(23,OUTPUT)

pinMode(18,PWM_OUTPUT)

สงงานเอาตพตdigitalWrite(23, HIGH);

pwmWrite(18, 723);

อานคาอนพตif (digitalRead(22))

printf("Pin 22 is HIGH\n");

else

printf("Pin 22 is LOW\n");

ก าหนดขาพลอพpullUpDnControl(22, PUD_UP);

หนวงเวลาdelay(2000);

Page 167: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด
Page 168: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

ปรบคาการคอมไพลส าหรบ WiringPi

Page 169: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

การใช wiringpi2 กบ Python และ Rpi

wiringPi พฒนา Rpi ใหงายเหมอนเขยน Arduinoby Gordon‘Drogon’ Henderson

ตดตงผาน githubgit clone https://github.com/Gadgetoid/WiringPi2-Python.git

cd WiringPi2-Python

sudo python3 setup.py

Page 170: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

import wiringpi2 as gpio

เพมไลบราร

gpio.wiringPiSetupGpio()

setmode ก าหนดรปแบบขา

gpio.wiringPiSetup()

gpio.pinMode(pin,1)

ก าหนดขาเปน output

gpio.digitalWrite(pin,1)

output สงคาออกไปทขา

gpio.digitalWrite(pin,0)

ไลบราร wiringPi2

gpio.digitalRead(pin)

input รบคาลอจกจากขา

gpio.pullUpDnControl(pin,2)

pull up

gpio.pinMode(pin,0)

ก าหนดขาเปน inputgpio.pullUpDnControl(pin,1)

pull down

gpio.pullUpDnControl(pin,0)

ไม pull up/down

Page 171: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

ใชค าสง pwm ดวย wiringPi2

wiringpi.pinMode(18,2)

ก าหนดขา 18 เปน PWMwiringpi.pwmWrite(18,duty)

ก าหนดคา dutycycle

import wiringpi2 as pi

import time

leds = [18,23,24,25]

sw = [16,20,21]

pi.wiringPiSetupGpio()

pi.pinMode(16,0)

pi.pinMode(18,2)

while True:

for i in range(1025):

pi.pwmWrite(18,i)

time.sleep(0.001)

for i in range(1025,-1,-1):

pi.pwmWrite(18,i)

time.sleep(0.001)

Page 172: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

ภาคผนวก

Page 173: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

รปแบบการตดตอ LED ACTLinux ใชการตงคา Config ตางๆ ผาน Text ไฟลใน /etc/

การเปลยนสถานะของอปกรณระบบ ท ากบไฟลเสมอน จะถกเกบใน /sys/ และ /proc/

Page 174: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

LED ACT บน R-Picat /sys/class/leds/led0/trigger

echo "timer"|sudo tee /sys/class/leds/led0/trigger

ปกตโชวคาการอานเขยน SD-CARD

ยายมาโชวคา Timer แทน

LED ACT กะพรบ

Page 175: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

LED ACT บน R-Pi

สง LED ไมใหถกควบคมจากใคร

echo "none"|sudo tee /sys/class/leds/led0/trigger

echo "1" |sudo tee /sys/class/leds/led0/brightness

สง LED ตด

echo "0" |sudo tee /sys/class/leds/led0/brightness

สง LED ดบ

คนคาเดม (แสดงสถานะ อานเขยน SDCARD

echo "mmc0"|sudo tee /sys/class/leds/led0/trigger

Page 176: Raspberry Pi 2 - web.rmutt.ac.th · จุดเชอื Uมต่อของRaspberry Pi2 OS ของ Raspberry Pi 2 จะเก็บที่ microSD โดยมีช่องเสียบการ์ดอย่ใูต้บอร์ด

กฤษดา ใจเยน KRITSADA JAIYENบรษท อนโนเวตฟ เอกเพอรเมนต จ ากด108 ซอยสขมวท 101/2 ถ.สขมวทแขวงบางนา เขตบางนา กรงเทพฯ 10260โทรศพท 02-7477001-4 โทรสาร 02-7477005

Email : [email protected]

www.inex.co.th