เริ่มเรียนรู้ Physical Programming ด้วย Scratch และ GPIO บน Raspberry Pi ตอนที่ 3

[ตอนที่ 1][ตอนที่ 2][ตอนที่ 4][ตอนที่ 5]

ตอนนี้จะแสดงให้เห็นตัวอย่างการใช้ Scratch 1.4 ที่มากับ Raspbian รุ่นล่าสุด ในการสร้าง Physical Programming กัน ครับ โดยผมจะอนุมานว่าท่านได้ทำความเข้าใจการใช้งาน Scratch มาจากตอนที่ 1 เรียบร้อยแล้วนะครับ

ตามที่กล่าวมาแล้วถึง GPIO Server ว่าจะช่วยให้ Scratch สามารถสื่อสารกับ GPIO Pin บน Raspberry Pi ได้ โดย GPIO Server จะคอยรับ "สาร" (message) จาก Scratch แล้วทำการ "เปิด" (on) หรือ "ปิด" (off)  GPIO Pin


การเปิด-ปิด GPIO Server 

ก่อนที่จะใช้คุณสมบัตินี้ได้ จำเป็นต้องทำการเปิดบริการเสียก่อน โดย

ทางเลือก 1 : ผ่านคำสั่งบน Menu Bar ของ Scratch ตามภาพ



ทางเลือก 2 : ใช้คำสั่ง "gpioserveron" เมื่อต้องการใช้บริการ หรือ "gpioserveroff" เมื่อต้องการยกเลิก โดยต้องพิมพ์คำสั่งนี้ใน Broadcast block  ดังภาพ




เราต้องทำการ เปิดบริการ GPIO Server ก่อนการเรียกใช้งานเสมอ ส่วนการปิดนั้นไม่จำเป็นต้องประกาศทุกครั้งหลังใชังานก็ได้ และเมื่อเปิดใช้ GPIO Server แล้ว Scratch จะจดจำไว้ และจะถูกเปิดใช้งานโดยอัตโนมัติในการใช้เรียกโครงงานมาใช้ครั้งต่อ ๆ ไป


ชุดคำสั่ง

1. กำหนด mode ของ Pin 


input mode :

config + pin number + in หรือ
input หรือ
inpullup หรือ
inputpullup หรือ
inpulldown หรือ
inputpulldown

output mode :

config + pin number + out หรือ
output  


** pin number ต้องใช้ BCM Numbering เท่านั้น 

ยกตัวอย่างเช่น หากเราต้องการกำหนดให้ Pin BCM Number ที่ 21 (Pin ตำแหน่งที่ 40) เป็น input mode ก็ใช้คำสั่ง 

config21in  หรือ config21input


ในกรณีที่มีการใช้ pull up resistor

config21inpullup หรือ config21inputpullup


ในกรณีที่มีการใช้ pull down resistor

config21inpulldown หรือ config21inputpulldown


2. กำหนดสถานะ (on/off)


gpio + pin number + on | off | high | low

เช่น 

gpio21on

gpio21off


3. การใช้ PWN 

จะใช้กับ output mode เท่านั้น และเป็น software PWM

การประกาศ

config + pin number + outputpwm 

เช่น

config21outputpwm 


การใช้งาน :

gpio + pin number + pwm + pwm number [0 ... 1024] 

เช่น

gpio21pwn512


ทดลองการใช้งาน

จะแสดงตัวอย่างโดยการใช้กับโครงงานเปิด-ปิด LED กันนะครับ ง่ายดี

เตรียมอุปกรณ์

ต่อ LED, Resistor และ GPIO Pin บน Raspberry Pi ตามภาพ ในตัวอย่างผมใช้ GPIO 21 หรือ Pin ตำแหน่งที่ 40 ต่อกับ ขา Anode ของ LED



สร้าง Scratch Script 






โครงงานนี้เป็นตัวอย่างที่แสดงให้เห็นว่า Scratch 1.4 บน Raspberry Pi สามารถสื่อสารกับโลกจริงผ่าน GPIO Pin ได้อย่างไร ในตอนต่อไปเราจะทดลองทำโครงงานที่ซับซ้อนขึ้น ครับ

[ตอนที่ 1] [ตอนที่ 2]










Previous
Next Post »