การทำ Scratch รุ่นปรับปรุงให้ใช้งานได้บน Raspberry Pi


เนื่องจากทางห้องวิจัย LIL ได้พัฒนาโปรแกรม Scratch รุ่นพิเศษขึ้นมาเพื่อให้มีคำสั่งในการควบคุมการทำงานของชุดหุ่นยนต์ GoGo Board โดยจะมีประโยชน์มากเมื่อนำไปใช้กับบอร์ดใหม่ที่ชื่อ PiTopping ซึ่งคือ GoGo Board รุ่นดัดแปลงย่อส่วนให้ขี่อยู่บน Raspberry Pi ได้ แต่ปัญหาที่พบคือ Scratch รุ่นที่ปรับปรุงนี้ไม่สามารถรันบน Raspberry Pi ได้ จึงเป็นปัญหาทำให้โครงการนี้ชะงักไประยะหนึ่ง แต่ถึงวันนี้สามารถแก้ไขปัญหาได้แล้วจึงนำวิธีการมาเรียบเรียงไว้ที่นี่

ภาพรวมของ Scratch รุ่นดัดแปลง

Scratch รุ่นดัดแปลงนี้สร้างขึ้นมาจาก Scratch รุ่น 1.4 ซึ่งมีการเปิดเผยรหัสต้นฉบับให้สามารถนำไปใช้กับโครงงานที่ไม่แสวงหากำไรได้อย่างเสรี สามารถโหลดได้จากที่นี่ โดย Scratch รุ่นนี้สร้างขึ้นโดยใช้ภาษา Squeak ซึ่งใช้ภาษา Small Talk เป็นพื้นฐาน แม้จะมีการเขียนโปรแกรมที่แตกต่างจากภาษารุ่นใหม่ในปัจจุบันและอาจจะต้องใช้เวลาปรับตัวอยู่บ้าง แต่จุดเด่นของ Scratch รุ่นนี้คือ นำไปใช้งานได้เกือบทุกแพลท์ฟอร์ม เนื่องจาก Squeak มี VM ทั้งบน Windows, OSX, Linux, ฯลฯ นอกจากนั้น Scratch ยังใช้ทรัพยากรเครื่องน้อย ทำให้ทำงานได้รวดเร็วแม้เครื่องจะมีเสป็กที่ค่อนข้างต่ำ

ด้วยจุดเด่นที่ Scratch เขียนโปรแกรมได้ง่าย ได้รับความนิยมสูง UI มีภาษาที่สนับสนุนหลายภาษารวมทั้งภาษาไทยด้วย จึงเป็นระบบที่น่าสนใจนำมาใช้กับ Raspberry Pi มาก โดยมีจุดประสงค์เพื่อนำมาสร้างเป็นระบบหุ่นยนต์สำหรับการเรียนรู้ของเด็ก

การจะเป็นระบบหุ่นยนต์ได้ก็จะเป็นต้องเพิ่มความสามารถในการอ่านค่าเซ็นเซอร์และควบคุมมอเตอร์ให้กับ Raspberry Pi ซึ่งแม้ Raspberry Pi จะมี GPIO มาให้ในการติดต่อกับโลกภายนอกอยู่แล้วแต่ก็ขาดการอ่านค่าอะนาลอก และไม่มีวงจรควบคุมมอเตอร์ ผู้ใช้ต้องสร้างวงจรเพิ่มเอง ดังนั้น GoGo Board ซึ่ง LIL ได้พัฒนาและใช้งานอยู่เดิม จึงมีความเหมาะสมสำหรับงานนี้มาก และ LIL ได้ดัดแปลงและย่อส่วน GoGo Board ให้สามารถขี่บน Raspberry Pi ได้ และตั้งชื่อบอร์ดนี้ว่า PiTopping.

กลไกสำคัญในการขับเคลื่อนระบบนี้คือโปรแกรม Scratch ซึ่งโดยปกติจะไม่มีคำสั่งเกี่ยวกับเซ็นเซอร์และมอเตอร์ของ GoGo Board เพราะ Scratch ดั้งเดิมถูกออกแบบมาเพื่อใช้กับคอมพิวเตอร์ตั้งโต๊ะเป็นหลัก ดังนั้น LIL จึงได้เพิ่มคำสั่งควบคุมมอเตอร์และอ่านค่าเซ็นเซอร์เข้าไป

สรุปปัญหา

หลังจากที่ดัดแปลง Scratch แล้ว ก็พบว่าสามารถทำงานได้ดีบนระบบปฏิบัติการต่างๆ เช่น Windows, Linux แต่เมื่อนำมาทดลองใช้งานบน Raspberry Pi ซึ่งใช้ระบบปฏิบัติการ Linux Raspbian กลับพบว่าไม่สามารถเรียกใช้งานได้ โปรแกรมจะค้างไปโดยไม่แสดงหน้าหลักของ Scratch เลย

จากการศึกษาวิเคราะห์ปัญหา สุดท้ายพบว่าปัญหาอยู่ที่โปรแกรม Squeak-vm ซึ่งรุ่นมาตรฐานที่ติดมากับ Raspbian ใช้เป็นรุ่น 4.4 ซึ่งไม่สามารถใช้ Scratch ได้ ดังนั้นจึงต้องถอนโปรแกรมรุ่นนี้ออกและติดตั้งรุ่นก่อนหน้าลงไป ซึ่งในที่นี้เลือกติดตั้งรุ่น 4.0 ตามคำแนะนำที่ไปพบในโครงการ PcDuino.

ขั้นตอนการติดตั้ง Squeak VM 4.0

ผู้เขียนขอนำใจความสำคัญของขั้นตอนตามที่ทาง PcDuino ได้เขียนไว้มาสรุปไว้ดังนี้

1. ถอนโปรแกรม squeak-vm เดิม (v4.4) ออก

sudo apt-get remove squeak-vm

2. การติดตั้ง squeak-vm รุ่น 4.0 – ทาง PcDuino แนะนำให้โหลด source code และ compile เอง ซึ่งเป็นวิธีที่ใช้เวลาค่อนข้างมาก น่าจะมีวิธีติดตั้งที่ง่ายกว่านี้ แต่ในขณะนี้ยังได้ทดลอง ดังนั้นจึงขอแนะนำวิธีตามต้นฉบับไปก่อน

ติดตั้งโปรแกรมพื้นฐานที่จำเป็นสำหรับการ compile

$sudo apt-get update 
$sudo apt-get install cmake libglu1-mesa-dev libasound2-dev libpulse-dev uuid-dev libffi-dev libogg-dev libvorbis-dev libspeex-dev libfreetype6-dev libpango1.0-dev libxml2-dev libgstreamer0.10-dev 
$sudo apt-get install build-essential pkg-config $sudo apt-get install libglib2.0-dev libpango1.0-dev libcairo2-dev libv4l-dev 
$sudo apt-get install libgtk2.0-bin 
$sudo apt-get cmake

ต่อไปก็โหลด source code ของ Squeak 4.0 มาและแตกไฟล์ออก

$ sudo wget http://s3.amazonaws.com/pcduino/packages/Squeak-4.0.2.2181-src.tar.gz
$ tar -xzvf Squeak-4.0.2.2181-src.tar.gz

ทำการ compile

$ cd Squeak-4.0.2.2181-src
$ mkdir bld
$ cd bld
$ ../unix/cmake/configure
$ sudo make
$ sudo make install
$ sudo cp -f -r /usr/local/lib/squeak /usr/lib/squeak

ติดตั้ง Scratch รุ่นดัดแปลงและเรียกใช้งาน

$wget http://files.e-cpe.org/gogoscratch/Gogo%20Scratch%20Beta%203.zip
$unzip Gogo%20Scratch%20Beta%203.zip 
$cd Gogo%20Scratch%20Beta%203
$squeak ScratchSourceCode1.4.image

เพียงเท่านี้ก็จะสามารถใช้งาน Scratch รุ่นดัดแปลงได้

scratch rpi

สรุป

Scratch รุ่นดัดแปลงถูกพัฒนาขึ้นมาเพื่อให้สามารถควบคุมการทำงานของมอเตอร์และเซ็นเซอร์บนบอร์ด PiTopping โดยน่าจะเป็นระบบเขียนโปรแกรมที่ทำให้การพัฒนาระบบหุ่นยนต์ทำได้ง่ายและมีความซับซ้อนสูงขึ้นได้ โดยบทความนี้ได้กล่าวถึงวิธีการติดตั้งระบบเพื่อให้สามารถใช้งาน Scratch รุ่นนี้ได้

หมายเหต: Scratch รุ่นดัดแปลงนี้้ยังต้องปรับให้รู้จักชื่อ serial port ของ Raspberry Pi เมื่อปรับปรุงในจุดนี้จะได้นำมาเภยแพร่ต่อไป

 

Leave a comment

Your email address will not be published. Required fields are marked *