< 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
1 2 | $cd ~/Public $git clone --recursive https://github.com/lanefu/WiringPi-Python-OP.git |
เข้าสู่โฟลเดอร์ WiringPi-Python-OP และเข้าสู่ WiringPi เพื่อทำการ Build และติดตั้ง
1 2 3 | $cd WiringPi-Python-OP/WiringPi $sudo chmod +x ./build $sudo ./build |
หลังจากติดตั้งแล้ว ต้องมีการทดสอบดูว่าพร้อมใช้งานหรือไม่ด้วยคำสั่ง
1 | $gpio readall |
หลังจาก ติดตั้ง WiringPi แล้ว ต่อมาจะเตรียมตัวติดตั้ง WiringPi-Python-OP ด้วยการย้อนกลับมาที่โฟลเดอร์ ~/Public/WiringPi-Python-OP เพื่อที่จะติดตั้ง
เราจำเป็นที่จะต้องติดตั้ง python-dev, python-setuptools และ swig
1 | $sudo apt-get install python-dev python-setuptools swig |
สร้างไฟล์เพื่อเตรียมตัวติดตั้ง WiringPi-Python-OP เช่นไฟล์ wiringpi_wrap.c โดยใช้คำสั่ง
1 | $swig2.0 -python wiringpi.i |
หลังจากนั้นเราจึงสามารถติดตั้ง WiringPi-Python-OP ได้โดยใช้คำสั่ง
1 | $sudo python setup.py install |
เมื่อทุกอย่างเสร็จสิ้นแล้ว เราลองมาทดสอบการใช้งานเพื่อดูว่า Library ที่เราได้ติดตั้งไป ใช้งานได้จริง หรือมีปัญหาในการใช้งานหรือไม่ โดยในโฟลเดอร์ของ WiringPi-Python-OP จะมีโฟลเดอร์ tests ซึ่งข้างในจะมีตัวอย่างโค้ดบนภาษา Python ที่มีการเรียกใช้งาน Library wiringpi ให้ได้ทดสอบกันด้วยครับ
แนะนำว่าให้ลองเข้าไปตรวจสอบดูที่ /home/usr0/Public/WiringPi-Python-OP ว่ามีไฟล์นั้นอยู่หรือไม่ครับ
เราจะทดสอบการใช้งาน WiringPi-Python-OP โดยใช้ Geany (IDE ที่เราเคยติดตั้งไว้ในบนความก่อนหน้านี้)เริ่มจากเปิด Geany ขึ้นมา
แล้วก็เลือกที่เมนู “Open” แล้วเลือกเปิดไฟล์ test.py ในโฟลเดอร์ /home/usr0/Public/WiringPi-Python-OP/tests
เมื่อเปิดขึ้นมาแล้ว เราจะเห็น Source Code ภาษา Python ที่มีการใช้งาน Library WiringPi-Python-OP ผ่านคำสั่ง import wiringpi
เราสามารถทดลองรันโค้ดได้ โดยการกด Execute แต่ WiringPi-Python-OP นั้นจำเป็นที่จะต้องได้รับการยินยอมให้ทำงานในฐานะ root ด้วย ซึ่งเราจะเห็นผ่านการฟ้องเตือน เมื่อเรา Execute โค้ดชุดนี้
ซึ่งเราสามารถแก้ไขได้โดย เพิ่มคำสั่ง sudo เข้าไปในส่วนของการ Execute โดยเข้าที่เมนู Build->Set Build Commands
แล้วเพิ่มคำสั่ง sudo -S เพื่อให้ใส่ Password อัตโนมัติและ echo Password เข้าไปในส่วนของ Execute commands ข้างหน้า python “%f” แล้วกด OK
1 | echo usr0Password | sudo -S python "%f" |
จากนั้นลอง รัน Execute ดูอีกครั้ง จะพบว่าในครั้งนี้ ระบบจะทำงานทันที ซึ่งแสดงว่าเราสามารถนำ Library มาใช้งานได้แล้วครับ