เชื่อมต่อ Arduino ด้วยภาษา Python - Python 3

เชื่อมต่อ Arduino ด้วยภาษา Python


สวัสดีผู้อ่านทุกท่านครับ บทความนี้ผมจะขอแนะนำวิธีการเชื่อมต่อบอร์ด Arduino ด้วย Python กันครับ
Arduino UNO R3 ราคา 300 บาท พร้อมสาย USB มา จากร้านแห่งหนึ่งในขอนแก่น และได้ลองเล่นบอร์ด Arduino มาบ้างเล็กน้อย เนื่องจากผมเป็นนักพัฒนาภาษา Python (ณ ปัจจุบัน) แม้ผมจะเคยเขียนภาษา C/C++ บ้าง แต่ผมชอบภาษา Python มากกว่า ผมจึงได้ตามล่าโมดูลที่ช่วยเขียนชุดคำสั่งบอร์ด Arduino ด้วยภาษา Python และแล้ว ผมก็ได้พบกับโมดูล Nanpy
โมดูล Nanpy เป็นโมดูลที่ช่วยให้เราสามารถสั่งงานบอร์ด ด้วยภาษา Python ได้
รองรับทั้ง Python 2 และ Python 3
ใช้ MIT License
ก่อนใช้งานโมดูล Nanpy เราต้องทำการติดตั้ง Nanpy firmware ลงไปในบอร์ด Arduino ของเราก่อน โดยโหลดได้จาก https://github.com/nanpy/nanpy-firmware/Opens in a new window (แนะนำให้ทำการลงบนเครื่อง Linux)

[How to]

สำหรับในการยกตัวอย่างนี้ ผมของเอา ระบบปฏิบัติการ 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 ด้วยคำสัง :
pip install nanpy
เรามาลองสั่งเปิดไฟบนบอร์ด Arduino กันครับ โดยใช้โค้ด ดังนี้นะครับ

1
2
3
4
5
6
7
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)




สำหรับผู้ใช้งาน ระบบ Windows


ซอฟต์แวร์เสริมสำหรับผู้ใช้ Windows สำหรับการใช้งานให้โหลดไฟล์ https://github.com/nanpy/nanpy-firmware/archive/master.zipOpens in a new window แตกไฟล์ ทำตามข้างบน คลิกที่ไฟล์ Nanpy.ino แล้วอัพ Nanpy firmware เข้าบอร์ดก่อนครับ (วิธีคล้าย ๆ ข้างบน ทั้งบน Linux และ Windows)
ในการเขียนโค้ดบน Windows เราต้องอ้างอิงตำแหน่งบอร์ด Arduino ให้ถูกต้องครับ เช่น การกำหนดพอร์ด และ การตรวจเช็ค ไดร์เวอร์ สำหรับการเชื่อมต่อ

ในการเขียนโค้ด Nanpy สั่งงานบอร์ด ให้เปลี่ยนแค่ตำแหน่งที่ตั้งบอร์ด Arduino ครับ

2
3
4
5
6
7
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 วินาที

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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
ผู้จักทำ ฺBlog 
1. นายทศพร ไชยชมภู      รหัสนักศึกษา 583020660-0 
2. นายภค ธรรมกิรติ           รหัสนักศึกษา 583020673-1
3. นายเจรพัญ จิระชีวะนันท์        รหัสนักศึกษา 583020652-9

อ้างอิงจาก : https://nanpy.github.io/
ขอขอบคุณ : https://python3.wannaphong.com/

ความคิดเห็น