เริ่มต้นกับ processing
เมื่อ ปีที่แล้ว(2014)ผมมีงานที่ต้องสร้างโปรแกรมแสดงผลวีดีโอ กับ กราฟฟิคบ้าง ก็ได้ปรึกษาเพื่อนๆ หาเครื่องมือ ง่ายๆเรียนรู้เร็ว ก็ได้คำแนะนำจากผู้ก่อนตั้งเวป ไอยราฟัน ให้รู้จัก เครื่องมือ ตัวหนึ่ง ชื่อ processing มาลองใช้งาน ผลปรากฎว่า ใช้งานได้เป็นอย่างดี จึงได้ใช้ เรื่อยมา จนมาปีนี้ มีงานที่จำเป็นต้องเขียนโปรแกรมบน raspberry-pi ก็พยายามลองใช้ python กับ Qt ไม่รู้เป็นไร สงสัยเริ่มแก่แล้ว มันไม่ค่อยคล่องเลยติดขัด งึกๆงักๆ กับเรื่องไวยากรณ์ ประมาณว่า ไม่ได้ใช้ {} กับ ; แล้วคิดถึง พอดีไปเจอว่า ตัว processing เอง สามารถ โมดิฟายให้ไปรันบน raspberry-pi ได้ ก็ลองทำดู ซึ่งตอนนั้น เป็น version 2.2.1 เห็นทางออกเลย เขียน งานออกมาได้ฉับไว ได้ใช้ {} และ ; สมใจอยาก ติอต่อ ทั้ง i/o ทั้ง serial port ได้ครบถ้วน จบงานได้ มาปีนี้ (2015) ตัว processing เอง ออก version3 สำหรับ cpu ARM โดยเฉพาะ ไม่ต้องไปโมดิฟายอะไรแล้ว ดีเลยสามารถเอามาใช้ กับ raspberry-pi ได้เลย เป็นที่มาของบันทึกนี้ ที่จะบันทึกการใช้งาน processing ไว้ช่วยจำ และเป็นการแนะนำทางเลือกในการพัฒนา application สำหรับ raspberry-pi
แนะนำ processing
Processing เป็น เครื่องมือเขียนโปรอแกรมตัวหนึ่ง ที่มีพื้นฐานมาจาก JAVA โดยจัดทำ library ที่ใช้งานบ่อยๆมาเป็น function ที่เรียกใช้ได้เลย ผู้ใช้ไม่ต้องกังวล หรือ ศึกษากฏเกณฑ์ต่างๆของ JAVA มากนัก แต่หากอยากจะลงลึก พบว่า ยังสามารถ ใช้งาน คำสั่งและ class ต่างๆ ของ JAVA ได้อีกด้วย หลักการ คล้ายกับการเขียนโปรแกรมบน mcu ด้วย arduino ซึ่งเขียนด้วยคำสั่งที่ มีสำเร็จมาให้ แต่หากอยากจะเขียนลึกลงไป ก็ยังใช้ไวยากรณ์ของ avr-GCC ได้อีกด้วย ไม่รู้ว่า คนคิดเป็นกลุ่มเดียวกันไหม เพราะหลักการและหน้าตาโปรแกรม คล้าย arduino เลยครับ
ข้อดีของ processing ( บางข้อเป็นความคิดเห็นส่วนตัว )
- โหลดฟรีไม่มีค่าใช้จ่าย ที่ www.processing.org
- มีความสามารถ cross platform ตามคอนเซปของ java คือ เขียนโปรแกรมครั้งเดียว สามารถนำไปใช้ได้หลาย os คือ windows,Linux,Mac-OSX,Androild
- ใช้ไวยากรณ์ของ JAVA เป็นหลัก ซึ่งก็แทบจะเป็น ansi-C เป็นการง่ายที่ เหล่านักเขียนโปรแกรม ที่มี code จากฝั่ง mcu แล้วจะเอามาใช้ จะได้ไม่ต้อง เปลี่ยนไวยากรณ์ แค่ copy วาง ซึ่งตรงนี้กระผมเองเกิดปัญหาตอนเขียน python คือเป็นโรคคิดถึง ; นั่นเอง
- มี library ต่างๆให้ใช้มากและยังสามารถโหลดเพิ่มได้เรื่อย หากไม่พอใจ ก็ยังสามารถเขียน เพิ่มเองได้ โดยใช้ JAVA
- มี community ที่ใหญ่พอสมควรหลักๆผมก็เข้าไปที่ www.openprocessing.org และ www.processing.org จะมีแชร์ code และถามปัญหาได้ ไม่แพ้ฝั่ง python
- ใช้เวลาในการเรียนรู้ต่ำมาก โดยใช้ concept ของการศึกษาผ่าน example code เหมือน เขียน arduino เลยครับ คือ พอ app เราทำงานได้ ทำให้เรามีกำลังใจในการศึกษาต่อ โปรแกรมแรกของผม ผมเขียนเล่น video 4 เรื่อง พร้อมกัน ใช้เวลาศึกษาตั้งแต่เริ่ม ไม่เกิน 30นาที ก็สำเร็จ ผิดกับตอน ใช้ .net c# ที่ ทำตั้งนาน กว่าจะสำเร็จ
- รองรับไวยากรณ์ของ python และ java script ( อันนี้ ยังไม่เคยลอง )
ส่วนข้อเสีย มีแน่ นอน แต่ไม่ขอพูดถึง
แปะไว้ก่อน ... เดี่ยวมาต่อ ในส่วนที่เกี่ยวกับ raspberry pi
(http://s15.postimg.org/gjru3dmlz/test1.jpg) (http://postimg.org/image/gjru3dmlz/)
(http://www.mx7.com/i/993/EsyB3W.png) (http://www.mx7.com/view2/yIUIuZ1gML3WLCKS)
โอ้ น้ำลายไหลเลยครับ :)
สมันน้อยอย่างผมอ่านแล้วตาลุกวาวเลยครับ
เยี่ยม นำทางให้ด้วย ดีเลยครับ
สุดยอด แนะนำหน่อยก็จะดี โดยเฉพาะมือใหม่อย่างผม
ขั้นตอนการ install processing
ในการนี้ขอเสนอการ install ด้วย GUI ครับ ซึ่ง ง่ายและคุ้นเคย จะได้ไม่ต้องจำคำสั่ง command line ที่ยาวๆซับซ้อน
1. เตรียมบอร์ด r-pi ของเราให้พร้อม โดยลง os (ผมใช้ ราสเบี้ยน )ต่อจอ ต่อ mouse ต่อ keyboard และทำให้ boot ไปที่ desktop ครับ ซึ่งส่วนนนี้ จะไม่อธิบายนะครับ สามารถหาดูได้ ตามเวปต่างๆที่เป็นพื้นฐานการเริ่มต้นใช้งาน
2.เปิด browser ขึ้นมา แล้วไปที่ www.processing.org
(http://s2.postimg.org/lppf7x2cl/step_01.jpg) (http://postimg.org/image/lppf7x2cl/)
3. เลือก Download Processing
4. อันนี้ เราจะจ่ายตังเพื่อสนับการพัฒนา หรือ ถ้าจะโหลดฟรีก็เลือก No Donation แล้ว กด Download
(http://s30.postimg.org/rgi6iybjh/step_02.jpg) (http://postimg.org/image/rgi6iybjh/)
5. เลือก รุ่นที่จะใช้งาน สำหรับ r-pi ให้เลือก รุ่น Linux ArmV6hf
(http://s1.postimg.org/xfsocm5gb/step_03.jpg) (http://postimg.org/image/xfsocm5gb/)
6. เมื่อ โหลดเสร็จก็ไปที่ ตำแหน่งที่ download ไว้แล้วแตก file ออกมา จาก นั้นเราสาทารถย้าย folder ไป ไว้ที่ ที่เราต้องการได้ อันนี้ผมจะเอาไปไว้ที่ /home/pi
(http://s4.postimg.org/7h0d3ghfd/step_04.jpg) (http://postimg.org/image/7h0d3ghfd/)
(http://s22.postimg.org/kp9ei1oa5/step_05.jpg) (http://postimg.org/image/kp9ei1oa5/)
(http://s3.postimg.org/9d7zfhmz3/step_06.jpg) (http://postimg.org/image/9d7zfhmz3/)
(http://s21.postimg.org/tgz7lm3xf/step_07.jpg) (http://postimg.org/image/tgz7lm3xf/)
7. การรันโปรแกรม เพียง ดับเบิ้ลคลิ๊กที่ ไฟล์ exe ชื่อ processing เป็นอันใช้ได้ หรือ หาก คิดถึง command line ก็สามารถพิมพ์ให้รันจากได้เช่นกัน
(http://s3.postimg.org/3t03ildhr/step_08.jpg) (http://postimg.org/image/3t03ildhr/)
(http://s15.postimg.org/lk0rrojp3/step_09.jpg) (http://postimg.org/image/lk0rrojp3/)
(http://s27.postimg.org/oio282mbz/step_10.jpg) (http://postimg.org/image/oio282mbz/)
(http://s22.postimg.org/44aytvbxp/step_13.jpg) (http://postimg.org/image/44aytvbxp/)
(http://s30.postimg.org/zcyiwtejx/step_11.jpg) (http://postimg.org/image/zcyiwtejx/)
(http://s3.postimg.org/3kgaxw4un/step_12.jpg) (http://postimg.org/image/3kgaxw4un/)
7. เป็นอันเสร็จพิธีครับ จากนั้น ลองเปิด file ตัวอย่าง มาศึกษาเล่นๆ ก่อนนะครับ บาง file อาจจะรันไม่ได้ ไม่ต้องตกใจครับ เป็นเรื่องปรกติ ครับ เพราะนี่เป็น version แรก ที่ ทำออกมาสำหรับ arm อาจจะมีติดขัดบ้าง แล้วตอนนี้ java ก็เป็นตัวใหม่ ใช้ driver display ใหม่ พบว่า เกิดปัญหาจุกจิกนิดหน่อย กำลังตามแก้กันอยู่ครับ แต่ส่วนใหญ่ก็ใช้งานได้ครับ
อันนี้ เปิด ตัวอย่าง เล่นๆครับ
(http://s18.postimg.org/srebccj85/step_14.jpg) (http://postimg.org/image/srebccj85/)
(http://s18.postimg.org/fjexjelp1/step_15.jpg) (http://postimg.org/image/fjexjelp1/)
ขอบคุณครับ รอบทต่อไปนะครับ
ขออนุญาติ ขอบคุณนะครับ p_chusak
;D
เรื่องนี้ พลาดไม่ได้ ทดลองเบื้องต้นแล้ว มันเยี่ยมมาก ;D ;D ;D
ขอบคุณ p_chusak มาก
สุดยอดแห่งการรอคอย ขอบคุณครับ
ขอบคุณมากๆครับ น่าสนใจมากๆ
ขอบคุณมากครับ น่าลองเล่นดู
ปูเสื่อรอครับ
ขอบคุณมากๆครับ เปิดโลกให้ผมเลย
มา update ว้า ตัว OS ล่าสุด rasbian jessy ใส่ processing มาให้เลยครับ( อยู่ใน menu >> sound & video) สดวกสบายกว่าเดิม แสดงว่า เริ่มจะ support กันอย่างเป็นทางการแล้วแล้วยังมี ide JAVA ใส่มาให้อีก เมื่อก่อนใส่แต่ python มาให้
ขอบคุณมากๆครับ
สุดยอดครับ กำลังหาแนวทางทำอยู่พอดีครับ
ดีครับกำลังมองหาแน่ทางอยู่เลยครับ ว่าจะ arduicam อยู่เลยครับ ขอบคุณมากครับ