เมื่อสองสามวันก่อน ผมได้สั่งซื้อ Arduino UNO R3 ราคา 300 บาท พร้อมสาย USB มา จากร้านแห่งหนึ่งในขอนแก่น และได้ลองเล่นบอร์ด Arduino มาบ้างเล็กน้อย เนื่องจากผมเป็นนักพัฒนาภาษา Python (ณ ปัจจุบัน) แม้ผมจะเคยเขียนภาษา C/C++ บ้าง แต่ผมชอบภาษา Python มากกว่า ผมจึงได้ตามล่าโมดูลที่ช่วยเขียนชุดคำสั่งบอร์ด Arduino ด้วยภาษา Python และแล้ว ผมก็ได้พบกับโมดูล Nanpy
บทความนี้เข้ากันได้กับ Debian/Ubuntu และอื่นๆ
ไม่สนับสนุนWindows
(ไม่ได้ทดลองบน Windows)nทดสอบแล้วใช้งานได้ครับ
โมดูล Nanpy เป็นโมดูลที่ช่วยให้เราสามารถสั่งงานบอร์ด ด้วยภาษา Python ได้
รองรับทั้ง Python 2 และ Python 3
ใช้ MIT License
ก่อนใช้งานโมดูล Nanpy เราต้องทำการติดตั้ง Nanpy firmware ลงไปในบอร์ด Arduino ของเราก่อน โดยโหลดได้จาก https://github.com/nanpy/nanpy-firmware/ (แนะนำให้ทำการลงบนเครื่อง Linux)
เพื่อเป็นการประหยัดข้อมูล ผมจึงขอไม่กล่าวถึงการตั้งค่า Arduino กับ Linux ครับ สามารถอ่านได้จาก http://blog.opensensors.io/blog/2014/09/13/getting-started-with-arduino-on-linux/
สำหรับ Debian/Ubuntu ใช้คำสั่งนี้ตามผมเลยครับ
$ wget https://github.com/nanpy/nanpy-firmware/archive/master.zip $ unzip master.zip
เข้าไปในโฟลเดอร์ nanpy-firmware-master ที่แตกไฟล์ออกมา จะพบกับไฟล์ sample_cfg.h ซึ่งเป็นไฟล์สำหรับกำหนดค่าของ Nanpy firmware ให้ทำการเปิดและแก้ไขตามที่ต้องการ (สำหรับผมไม่ได้แก้ไขค่าใด)
ทำการเปลี่ยนชื่อไฟล์เป็น cfg.h แล้วทำการย้ายไฟล์ cfg.h ไปไว้ในโฟลเดอร์ Nanpy
เปิดไฟล์ Nanpy.ino แล้วทำการอัพโหลดเข้าบอร์ด Arduino
เปิดไฟล์ Nanpy.ino แล้วทำการอัพโหลดเข้าบอร์ด Arduino
ต่อไปเรามาทำการติดตั้ง Nanpy ด้วยคำสัง :
pip install nanpy
เรามาลองสั่งเปิดไฟบนบอร์ด Arduino กันครับ
from nanpy import *
connection = SerialManager(device='/dev/ttyS0') #ที่ตั้งของบอร์ด Arduino ที่เราอัพโหลด Nanpy firmware
a = ArduinoApi(connection=connection) # เรียกใช้ Arduino API
a.pinMode(13, a.OUTPUT)
a.digitalWrite(13, a.HIGH)
# a.digitalWrite(13, a.LOW) # ปิดไฟ
a.pinMode(13, a.OUTPUT)
ผลลัพธ์
นอกจากนั้นเรายังสามารถสั่งให้แสดงข้อความบนจอ LCD จากโค้ด Python ได้ด้วยครับ (อ่านเพิ่มเติมได้จากลิงค์เอกสารข้างล่าง)
ของเสริมสำหรับผู้ใช้ Windows สำหรับใช้งานได้ด้วยการโหลดไฟล์ https://github.com/nanpy/nanpy-firmware/archive/master.zip แตกไฟล์ ทำตามข้างบน คลิกที่ไฟล์ Nanpy.ino แล้วอัพ Nanpy firmware เข้าบอร์ดก่อนครับ (วิธีคล้าย ๆ ข้างบน)
ในการเขียนโค้ดบน Windows เราต้องอ้างอิงตำแหน่งบอร์ด Arduino ให้ถูกต้องครับ เช่น
[caption id="" align="aligncenter" width="991"] บอร์ด Arduino ของผมอยู่ที่ COM5:[/caption]
ในการเขียนโค้ด Nanpy สั่งงานบอร์ด ให้เปลี่ยนแค่ตำแหน่งที่ตั้งบอร์ด Arduino ครับ
from nanpy import *ตัวอย่างโปรแกรม
connection = SerialManager(device='COM5:') #ที่ตั้งของบอร์ด Arduino ที่เราอัพโหลด Nanpy firmware
a = ArduinoApi(connection=connection) # เรียกใช้ Arduino API
a.pinMode(13, a.OUTPUT)
a.digitalWrite(13, a.HIGH)
# a.digitalWrite(13, a.LOW) # ปิดไฟ
a.pinMode(13, a.OUTPUT)
โปรแกรมเปิดปิดไฟ 100 ครั้ง ครั้งละ 1 วินาที
from nanpy import *
connection = SerialManager(device='COM6:')
a = ArduinoApi(connection=connection) # เรียกใช้ Arduino API
a.pinMode(13, a.OUTPUT)
a.digitalWrite(13, a.HIGH)
a.digitalWrite(13, a.LOW)
s=1
import time
while s<=100:
time.sleep(1)
a.digitalWrite(13, a.HIGH)
time.sleep(1)
a.digitalWrite(13, a.LOW)
s+=1
อ่านเอกสารการใช้งานได้ที่ https://nanpy.github.io/
ติดตามบทความต่อไปนะครับ
ขอบคุณครับ
ตอนนี้สามารถรันบนวินโด้ได้หรือยังคับ
ตอบลบถ้าเราจะ ใช้ ไลบรารรี่ Nanpy เราต้องขอ license จาก MIT หรือเปล่าครับ
ตอบลบไม่ครับ
ลบ