ผมได้เกริ่นให้ท่านรู้จักกับ Scratch มาแล้วอย่างคร่าว ๆ ในตอนที่ 1 ในตอนที่ 2 จะกล่าวถึงเรื่อง Physical Programming กันละ ครับ
อะไรคือ Physical Programming
เริ่มต้นที่ความหมายของ Physical Programming กัน หากท่านค้นหาภาพโดยใช้คำค้นว่า "physical programming" ใน Google ท่านจะได้ภาพออกมามากมาย หากสังเกตุดูแล้ว ภาพที่สื่อถึงกิจกรรมการเขียนโปรแกรมคอมพิวเตอร์แบบที่มีคนกำลังพิมพ์คำสั่งอยู่หน้าคอมพิวเตอร์นั้นมีน้อยมาก ดูๆ ไปแล้วจะเหมือนกับการทำพวกงานประดิษฐ์ หรือ ค่ายวิทยาศาสตร์เสียมากกว่าแผนภาพ 1 ความสัมพันธ์ระหว่างส่วนต่าง ๆ ใน Physical Programming |
จากแผนภาพที่ 1 ได้พยายามแสดงให้เห็นความหมายของ Physical Programming ซึ่งมองโดยรวมแล้ว Physical programming คือการสื่อสารระหว่างโลกจริงกับโลกเสมือนโดยผ่านคอมพิวเตอร์นั่นเอง วิดีโอข้างล่างนี้เป็นตัวอย่างที่แสดงให้เห็นว่าในโลกจริงนั้นเราสามารถนำเอาวัสดุหลายอย่างรอบตัวเราที่มีคุณสมบัตินำไฟฟ้ามาใช้งานได้ โดยไม่จำเป็นต้องเป็นอุปกรณ์ทางอิเล็กทรอนิกส์เสมอไป
จุดหนึ่งที่น่าสนใจของ Physical Programming คือ การเพิ่มบทบาทของผู้ทำงานที่ไม่ได้จำกัดอยู่กับนักคอมพิวเตอร์เท่านั้น แต่มันขยายวงออกไปยัง นักออกแบบ นักประดิษฐ์ วิศวกร เกษตกร ครู เด็กนักเรียน หรือคนที่สนใจทั่วไป อีกด้วย และหากท่านต้องการนิยามที่เป็นทางการสักหน่อย ท่านอาจสนใจแวะเข้าไปอ่านได้ที่ http://courses.ischool.berkeley.edu/i290-4/f08/slides/Thursday_Week2_Intro_Physical_Computing.pdf หรือ https://en.wikipedia.org/wiki/Physical_computing#In_Scientific_Applications ก็จะเห็นภาพชัดเจนขึ้นครับ
Scratch กับ Physical Programming
มีนักพัฒนานำ Scratch ไปดัดแปลงเพื่อใช้ในเรื่อง Physical Programming ในรูปแบบของ modification (ดู ตอนที่ 1) หลายรายได้แก่- Lego Wedo (https://education.lego.com/en-us/?domainredir=legoeducation.us)
- Pico board (http://picocricket.com/picoboard.html)
- GoPiGo (http://www.dexterindustries.com/gopigo/)
- ScratchX (http://scratchx.org/#home)
- ฯล
สำหรับ Raspbian เอง แม้ว่าจะยังใช้งาน Scratch 1.4 ก็จริง แต่ก็ได้มีการเพิ่มคุณสมบัติที่ทำ Scratch บน Raspbian สนับสนุน Physical Programming คือ GPIO Server และ Remote Sensing Protocol
นอกจากนี้ GPIO Server ยังอนุญาตให้ Scratch เข้าถึงทรัพยากรอื่นคือ USB Camera / Camera Module, IP Address และ Datetime ด้วย
เมื่อ Scratch กับโปรแกรมภายนอกเชื่อมต่อกันแล้ว ก็จะสามารถส่งข้อความไปมาระหว่างกันได้ในรูปแบบที่เป็น
[อ่านตอนที่ 1]
Scratch GPIO Server
Raspbian Jessie ได้มีการเพิ่มคุณสมบัติ GPIO Server เข้ามาทำให้ Scratch สามารถติดต่อกับ GPIO Pin ได้โดยตรง รวมไปถึง Extension board ของ Raspberry Pi ด้วย เช่น- SenseHat จากโครงการ AstroPi (https://astro-pi.org/)
- PiBrella (http://pibrella.com/)
- ExplorerHat (https://shop.pimoroni.com/products/explorer-hat)
- PiFace (http://www.piface.org.uk/)
นอกจากนี้ GPIO Server ยังอนุญาตให้ Scratch เข้าถึงทรัพยากรอื่นคือ USB Camera / Camera Module, IP Address และ Datetime ด้วย
Remote Sensing Protocol
เป็นคุณสมบัติที่เพิ่มเติมเข้ามาเพื่อให้ Scratch สื่อสารกับโปรแกรมอื่นได้ผ่าน TCP Network โดยที่ Scratch จะเปิด port สื่อสารหมายเลข 42001 ไว้และสื่อสารกับโปรแกรมอื่นผ่านกลุ่ม Sensing blocks และ Broadcast blockเมื่อ Scratch กับโปรแกรมภายนอกเชื่อมต่อกันแล้ว ก็จะสามารถส่งข้อความไปมาระหว่างกันได้ในรูปแบบที่เป็น
- ข้อความเดี่ยว หรือ ข้อความที่อยู่ภายในเครื่องหมาย " " เช่น cat, "hello world"
- ตัวเลข เช่น 0.2, 123, -1.5
- ค่าทางตรรกะ คือ true หรือ false
ทั้งหมดในตอนนี้กล่าวถึงความหมายและตัวอย่างของ Physical Programming แบบกว้าง ๆ และกล่าวถึง Scratch ใน Raspbian ว่าสนับสนุนการสร้าง Physical Programming อย่างไร ตอนต่อไปก็จะเริ่มกล่าวถึงตัวอย่างการใช้ Scratch ในการทำโครงงานกันครับ
[อ่านตอนที่ 1]
Sign up here with your email
ConversionConversion EmoticonEmoticon