เชื่อมต่อ 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
รองรับทั้ง Python 2 และ Python 3
ใช้ MIT License
ก่อนใช้งานโมดูล Nanpy เราต้องทำการติดตั้ง Nanpy firmware ลงไปในบอร์ด Arduino ของเราก่อน โดยโหลดได้จาก https://github.com/nanpy/nanpy-firmware/ (แนะนำให้ทำการลงบนเครื่อง 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.zip แตกไฟล์ ทำตามข้างบน คลิกที่ไฟล์ Nanpy.ino แล้วอัพ Nanpy firmware เข้าบอร์ดก่อนครับ (วิธีคล้าย ๆ ข้างบน ทั้งบน Linux และ Windows)
ในการเขียนโค้ดบน Windows เราต้องอ้างอิงตำแหน่งบอร์ด Arduino ให้ถูกต้องครับ เช่น การกำหนดพอร์ด และ การตรวจเช็ค ไดร์เวอร์ สำหรับการเชื่อมต่อ
ในการเขียนโค้ด Nanpy สั่งงานบอร์ด ให้เปลี่ยนแค่ตำแหน่งที่ตั้งบอร์ด Arduino ครับ
1
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/
ความคิดเห็น
แสดงความคิดเห็น