Quantcast
Channel: Unofficial of Raspberry Pi Fan in Thailand
Viewing all articles
Browse latest Browse all 104

ใช้ Arduino ผ่าน Firmata ด้วย pyFirmata

$
0
0

Firmata เป็น software ที่จะช่วยให้คอมพิวเตอร์สั่งงานที่ I/O ของ Arduino ที่ต่อไว้ได้ด้วยโค้ดโปรแกรมในตัวคอมพิวเตอร์นั้น โดยไม่ต้องสร้างระบบการสื่อสารกับ Arduino ขึ้นมาเอง โค้ดภาษาโปรแกรมที่ใช้ได้ก็มี Python คือ pyFirmata อยู่ด้วย และใช้ได้กับคอมพิวเตอร์ Raspberry Pi

ทดลองกันเลยครับ ที่ Raspberry Pi ติดตั้ง software ที่ pyFirmata ต้องพึ่งพิง และติดตั้งตัวมันเองด้วย pip

sudo apt-get install python-pip python-serial
sudo pip install pyfirmata

เมื่อเสร้จแล้ว เพื่อทดสอบว่า การติดตั้งนั้นมีให้ใช้งานนั้นมาแล้วหรือไม่ ใช้สคริป Python

import pyfirmata
dir(pyfirmata) 

ถ้าสำเร็จ ไม่ควรเจอ error

pyFirmata มีให้ใช้งานแล้ว

จากนั้นที่ Arduino ก็ทำการ upload โปรแกรม sketch ที่เป็น Firmata เข้าไป มีให้มาแล้วใน Arduino IDE ซึ่งเป็นโปรแกรมที่ใช้ upload ด้วย ผมใช้ Arduino Leonardo จึงต้องใช้ Arduino IDE เวอร์ชัน 1.5.4 ขึ้นไป โดยผมใช้เวอร์ชัน 1.5.7 ซึ่งรองรับ Arduino Yún (ใช้ไอซี ATmega32U4 เหมือน Arduino Leonardo) และ Arduino Due ด้วย โดยเลือก sketch ที่ File -> Examples -> Firmata -> StandardFirmata

การเลือก sketch Firmata

จะได้หน้าต่างที่มีโค้ด Firmata ขึ้นมา จากนั้นที่เมนู Tools ไปที่ Port และ Board เลือกให้ตรงกับ Arduino ของเรา แล้วก็กดปุ่มรูปลูกศรเพื่อคอมไพล์และ upload ไปยัง Arduino เมื่อมันขึ้น Done uploading (ถ้ามีปัญหา upload ลองกดซ้ำอีกที) อ้อ ผมทำการ upload จาก PC เครื่องอื่น ไม่ใช่จาก Raspberry Pi นะครับ งานนี้ไม่จำเป็นต้องทำที่ Pi และเมื่อเสร็จจากงานนี้เราจะได้ Arduino ที่มี sketch ของ Firmata พร้อมที่จะไปต่อกับคอมพิวเตอร์เพื่อรับคำสั่ง Firmata

โดยเราจะต่อกับคอมพิวเตอร์ Raspberry Pi ผ่านทาง USB แต่ผมเจอปัญหาว่าไม่พบ /dev/ttyACM0 หรือ /dev/ttyUSB0 แต่ก็เจอวิธีแก้ปัญหาว่าให้สั่ง sudo rpi-update เสร็จแล้ว reboot ก็จะหายครับ โดยของผมได้เป็น /dev/ttyACM0 จากนั้้นก็ทดลองเบื้องต้น ว่าจะสั่งจาก Raspberry Pi ให้เปิดดวงไฟ LED บน Arduino ได้ไหม ซึ่งมันควรจะเป็นขา 13 (ดูจาก sketch Blink ใน Arduino IDE) ก็เขียนสคริปภาษา Python

from pyfirmata import Arduino, util
board = Arduino('/dev/ttyACM0')
board.digital[13].write(1)

ถ้าจะดับไฟ ก็เปลี่ยนเป็น write(0) แทนนะครับ

ได้แนวทางการทำ และวิธีแก่ไขปัญหาจาก

http://raspberrypi-aa.github.io/session3/firmata.html

http://www.nagar-world.fr/2014/05/brancher-une-arduino-sur-un-raspberry.html

http://www.firmata.org/wiki/Main_Page#Arduino_Leonardo


Viewing all articles
Browse latest Browse all 104

Trending Articles


amp*payment bangkok ในบัตรเครดิต UOB คือะไร มีใครทราบไหมครับ


ีรถตู้เดอะมอลล์บางกะปิ หนองจอกหมดกี่โมง


Line IAB คืออะไร ??


แจกภาพพื้นหลัง iPhone สวยๆ (อัปเดต) หลายภาพหลายรูปแบบ


Notability อัปเดตใหม่เพิ่มฟีเจอร์เปลี่ยนลายมือให้เป็นตัวพิมพ์ภาษาไทยได้แล้ว


ซับน้ำตาแพร๊พ! ลือสนั่น ซ่งเวยหลง พระเอกหงส์ขังรัก สวีทหวานนางแบบจีน...


ใส่สีตารางสลับแถว เว้นแถว Excel 2016 | 2013


ใครรู้จักบริษัท the singular group บ้างครับ...


น้องโย สาว AV คนแรกของไทยที่ดังไกลถึงญี่ปุ่น


“โรคตุ่มน้ำพอง หรือ โรคเพมฟิกอยด์” อาการเป็นอย่างไร พร้อมวิธีป้องกันและดูแลรักษา


น้องแนทเกศริน ดาวโป๊สุดHot เต้นยั่ว กับชุดสีฟ้า sexy


Flash express 03 SO1_HUB-สุราษฏร์ธานี


ตามหา Firmware เราท์เตอร์ Xplor re1200r4gc-2t2r-v3 (Xplor Ac1200)ของทรูครับ


สพป.อุดรธานี เขต 2 เรียกบรรจุครูผู้ช่วย รอบที่ 7 จำนวน 3 อัตรา - รายงานตัว 13...


เรียบหรู ดูแพง 4 ชุดแต่งงานของ “มายด์ ศรันย์รัฐ”เจ้าสาวไฮโซฟ้าประทาน...


สรุปทุกสิ่งที่คุณควรรู้เกี่ยวกับ Pivot Table


รวมเรื่องราวขั้นตอนการติดตั้ง Linuxcnc Controller


ใช้บัตร M Pass ถ้าจะนั่งที่นั่ง Honeymoon,Opera Chair...


อีซูซุ สาขาอุตรดิตถ์ อำเภอเมืองอุตรดิตถ์


โหลดฟรี โปรออดิชั่น เพอเฟค กดเอง ล่าสุด