Python ile Arduino Nasıl Haberleşir?

Dr. Bülent Çobanoğlu
Nov 2 · 1 min read
Arduino ile programlama dilleri (Python, C#, Processing gibi) seri port üzerinden (RX/TX) haberleşir. Python ile seri port üzerinden Arduino kartı haberleştirmek için serial veya pyFirmata modülleri/paketleri kullanılabilir.pyFirmata; Firmata protokolü için geliştirilmiş bir Python arayüzüdür. pyFirmata komut listesine aşağıdaki dökümandan erişebilirsiniz;
https://buildmedia.readthedocs.org/media/pdf/pyfirmata/latest/pyfirmata.pdf
Python ile Arduino haberleştirmesi için gerekli işlem adımları şöyle sıralanabilir;·Python kodu yazmak için; https://www.python.org/downloads/ adresinden bilgisayarınız için en güncel Python sürümü indirilip, kurulur.·Arduino ile Python yazılımını haberleştirmek için pyFirmata paketi aşağıdaki gibi “pip” komutu ile bilgisayarın komut isteminden (yönetici modunda) kurulur; o pip install pyFirmata·Python kodunu yazıp, çalıştırmadan önce StandartFirmata programını (sketch) Arduino karta yüklemek gerekir. Bunun için; Dosya(File) -> Örnekler(Examples) -> Firmata -> StandardFirmata uygulaması/programı seçilir ve Arduino’ya yüklenir.Uygulama 61 (Derinlemesine Arduino Kitabı (4. Baskı)). Python kodu ile Arduino pinlerine bağlı bir LED i yakıp/söndüren uygulamayı gerçekleştirelim.Çözüm ve Açıklama.Bu tip Python uygulamalarında öncelikle StandartFirmata programını (sketch'ini) Arduino karta yüklemek gerekir. Bunun için; Dosya(File) -> Örnekler(Examples) -> Firmata -> StandardFirmata
Uygulaması/programı seçilir ve Arduino’ya yüklenir. Sonrasında sağ sütunda gösterilen Python kodu (IDLE editöründe) çalıştırılır. Arduino 13. Pinine bağlı LED’imizin 3 sn aralıklarla yanıp-söndürüldüğü görülür.
Arduino Programı
Önce “StandardFirmata” Programı "Dosya -> Örnekler -> Firmata -> StandardFirmata" menüleri izlenerek Arduino’ya yüklenir.
Sonrasında ise aşağıdaki Python programı çalıştırılır. import pyfirmata
import time
port = pyfirmata.Arduino('COM4')#Arduino kartın bağlandığı seri port
while True:
#Sonsuz döngü
port.digital[13].write(1) #13.pine bağlı LED'i yak
time.sleep(3) #3 sn bekle
port.digital[13].write(0) #13.pine bağlı LED'i söndür
time.sleep(3) #3 sn bekle

Kaynakça: Bülent Çobanoğlu, Derinlemesine Arduino kitabı, 4. Baskı, Abaküs Yayınları, 2019.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade