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

ในตอนที่แล้ว เราได้แนะนำให้รู้จัก และวิธีการติดตั้ง Library ของ Python ที่ชื่อ WiringPi-Python-OP กันไปแล้ว ในตอนนี้ เราจะมาเริ่มต้นใช้งาน Library ตัวนี้กัน ด้วยการเขียนโปรแกรมควบคุม LED ผ่านสวิตซ์ แบบง่ายๆ

ก่อนอื่นเลย เราคงต้องเตรียมวงจรที่จะใช้ทดสอบเสียก่อน โดยจะใช้ I/O pin ที่ 0-7 เป็น Output และ 8-15 เป็น Input

วงจร Input นั้นเป็นแบบ Active Low ดังนั้นสถานะปกติจะเป็น 1 เสมอ และวงจร Output จะเป็นแบบ Active Low นั่นคือ ไฟจะติดสว่างเมื่อเราสั่งให้ Output เป็น 0 ซึ่งทำให้เราสามารถใช้ค่าที่อ่านได้จากสวิตซ์ ไปสั่งการทำงานของหลอดไฟได้โดยตรง เช่นกัน

wpop201

โดย I/O Pinout เราสามารถอ้างอิงจาก Pinout ที่ได้จากคำสั่ง gpio readall ได้เลยครับ

wpop202

ซึ่งขา 1 บนตาราง Physical ข้างต้นจะอยู่ที่มุมนอกด้านตรงข้ามกับ Ethernet Port และ USB Port ซึ่งจะเห็นลูกศรชี้บอกตำแหน่งอยู่ ส่วนขา I/O นั้น จะเรียงชื่อตาม ชื่อขาบนตารางของ wPi เช่นขา I/O Pin 0 นั้นจะอยู่ที่ขา 11 ของ I/O Port

wpop203

เมื่อจัดการเรื่องวงจรเสร็จสิ้นแล้ว เราก็มาเริ่มต้นเขียนโค้ดกันได้ เริ่มจากเปิด Geany ขึ้นมา

wpop204

แล้วเลือกเมนู New -> main.py เพื่อสร้างไฟล์ Python ของเรา

wpop205

จากนั้นก็เพิ่มโค้ดนี้เข้าไปในไฟล์ main.py

ส่วนนี้เพิ่มเข้าไปก่อนบรรทัด def main():

และส่วนนี้เพิ่มเข้าไปหลัง def main():

wpop206

เมื่อรวมแล้ว จะได้โค้ดทั้งหมดแบบนี้

และก่อนที่รันโค้ดชุดนี้ เราจำเป็นที่ต้องตั้งให้โค้ดนี้รันในสถานะ root ด้วยการเพิ่มคำสั่ง sudo เข้าไปในส่วน Execute โดยเข้าไปที่ Build -> Set Build Command

wpop207และเพิ่มคำสั่ง echo usr0Password | sudo -S เข้าไปก่อน python “%f” เพื่อให้ระบบใส่รหัสผ่านให้เราอัตโนมัตตอนที่เรารันโค้ด รวมแล้วจะเป็น echo usr0Password | sudo -S python “%f” แล้วกดโอเค

wpop208

จากนั้นเราก็มาลอง Execute โค้ดของเรากัน หากทุกอย่างทำงานถูกต้อง จะมี console แสดงสถานะของ Pin ที่เรา print ไว้ปรากฏขึ้นมา

wpop209

เมื่อเรากดสวิตซ์ ไฟ LED ก็จะติด ตามที่เราได้เขียนโปรแกรมไว้

wpop210

และแล้วเราก็ได้เริ่มทำไฟกระพริบบน Orange Pi ด้วย Python ได้เสียที

เดี๋ยวคราวหน้าเราจะลองใช้ฟังค์ชั่นอื่นๆ และโมดูลอื่นๆ ของ WiringPi-Python-OP กันครับ

Related Post