Python ile Arduino Nasıl Haberleşir?
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 timeport = 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.
