< Orange Pi > ไฟกระพริบต้องมี สวิตส์กดๆต้องมา ด้วยภาษา Python [1]

Orange Pi One ที่ใช้อยู่นั้น บนบอร์ดจะมี I/O Pin อยู่ทั้งหมด 40 ขา โดย 40 ขานี้ จะตรงกับ I/O Pin 40 ขาของ Raspberry Pi ดังนั้นเราจึงสามารถใช้ extension board ของ Raspberry Pi ซึ่งมีอยู่มากมายได้เช่นกัน เพียงแต่เงื่อนไขสำคัญของการใช้งาน I/O ต่างๆนั้น ขึ้นอยู่กับ Library ของอุปกรณ์นั้นๆ ซึ่งเป็นสิ่งสำคัญมากในการพัฒนา
ในตอนนี้เราจะขอแนะนำให้รู้จัก Library สำหรับใช้งาน I/O ต่างๆ ผ่าน ภาษา Python ซึ่งน่าใช้งานมากๆเนื่องจากได้รูปแบบมาจาก WiringPi ของ Raspberry Pi โดย Library ตัวนี้นั้นไม่ใช่ Library Official ที่พัฒนาโดยทาง Orange Pi แต่เป็น Library ที่ผู้ใช้งานพัฒนาขึ้นตามมาทีหลัง โดยใช้รูปแบบของ WiringPi ของ Raspberry Pi เป็นต้นแบบ

ในตอนแรกนั้น มีคนพัฒนา Library ผ่านภาษา C โดยใช้ชื่อ WiringOP สำหรับใช้งานบนบอร์ดที่ใช้ CPU AllWinner H3 โดยมีการอัพโหลด Source Code ลงบน Github และหลังจากนั้นก็มีผู้พัฒนานำเอา Library นั้นมาพัฒนาต่อให้สามารถใช้งานผ่านภาษา Python ได้ในชื่อ WiringPi-Python-OP และอัพโหลดขึ้นบน Github เช่นเดียวกัน ซึ่งนี่คือ Library ที่เราจะมาแนะนำให้รู้จักกันในตอนนี้ โดยเป้าหมายของเราคือ การทดลองเขียนโปรแกรมควบคุมการติด-ดับ ผ่านสวิตส์ บนภาษา Python ครับ

เรามาเริ่มด้วยการติดตั้งกันเลยดีกว่า
เริ่มจากดาวน์โหลด Source Code จาก Github โดยเราจะเก็บไว้ในโฟลเดอร์ Public

wpop101

เข้าสู่โฟลเดอร์ WiringPi-Python-OP และเข้าสู่ WiringPi เพื่อทำการ Build และติดตั้ง

wpop102wpop103

หลังจากติดตั้งแล้ว ต้องมีการทดสอบดูว่าพร้อมใช้งานหรือไม่ด้วยคำสั่ง

wpop104

หลังจาก ติดตั้ง WiringPi แล้ว ต่อมาจะเตรียมตัวติดตั้ง WiringPi-Python-OP ด้วยการย้อนกลับมาที่โฟลเดอร์ ~/Public/WiringPi-Python-OP เพื่อที่จะติดตั้ง

เราจำเป็นที่จะต้องติดตั้ง python-dev, python-setuptools และ swig

wpop105

wpop106

wpop107

สร้างไฟล์เพื่อเตรียมตัวติดตั้ง WiringPi-Python-OP เช่นไฟล์ wiringpi_wrap.c โดยใช้คำสั่ง

wpop108

หลังจากนั้นเราจึงสามารถติดตั้ง WiringPi-Python-OP ได้โดยใช้คำสั่ง

wpop109

wpop110

เมื่อทุกอย่างเสร็จสิ้นแล้ว เราลองมาทดสอบการใช้งานเพื่อดูว่า Library ที่เราได้ติดตั้งไป ใช้งานได้จริง หรือมีปัญหาในการใช้งานหรือไม่ โดยในโฟลเดอร์ของ WiringPi-Python-OP จะมีโฟลเดอร์ tests ซึ่งข้างในจะมีตัวอย่างโค้ดบนภาษา Python ที่มีการเรียกใช้งาน Library wiringpi ให้ได้ทดสอบกันด้วยครับ

แนะนำว่าให้ลองเข้าไปตรวจสอบดูที่ /home/usr0/Public/WiringPi-Python-OP ว่ามีไฟล์นั้นอยู่หรือไม่ครับ

wpop111

เราจะทดสอบการใช้งาน WiringPi-Python-OP โดยใช้ Geany (IDE ที่เราเคยติดตั้งไว้ในบนความก่อนหน้านี้) เริ่มจากเปิด Geany ขึ้นมา

wpop112

wpop113

แล้วก็เลือกที่เมนู “Open” แล้วเลือกเปิดไฟล์ test.py ในโฟลเดอร์ /home/usr0/Public/WiringPi-Python-OP/tests

wpop114

เมื่อเปิดขึ้นมาแล้ว เราจะเห็น Source Code ภาษา Python ที่มีการใช้งาน Library WiringPi-Python-OP ผ่านคำสั่ง import wiringpi

wpop115

เราสามารถทดลองรันโค้ดได้ โดยการกด Execute แต่ WiringPi-Python-OP นั้นจำเป็นที่จะต้องได้รับการยินยอมให้ทำงานในฐานะ root ด้วย ซึ่งเราจะเห็นผ่านการฟ้องเตือน เมื่อเรา Execute โค้ดชุดนี้

wpop116

ซึ่งเราสามารถแก้ไขได้โดย เพิ่มคำสั่ง sudo เข้าไปในส่วนของการ Execute โดยเข้าที่เมนู Build->Set Build Commands

wpop117

แล้วเพิ่มคำสั่ง sudo -S เพื่อให้ใส่ Password อัตโนมัติและ echo Password เข้าไปในส่วนของ Execute commands ข้างหน้า python “%f” แล้วกด OK

wpop118

จากนั้นลอง รัน Execute ดูอีกครั้ง จะพบว่าในครั้งนี้ ระบบจะทำงานทันที ซึ่งแสดงว่าเราสามารถนำ Library มาใช้งานได้แล้วครับ

wpop119