Bu ders notu, "Python ile Arduino kodlama Test 1" için temel bilgileri özetlemektedir. Test genellikle Arduino'nun temel işleyişini, Python ile seri port üzerinden iletişimini ve basit kontrol mekanizmalarını kapsar.
Arduino, elektronik projeler geliştirmek için kullanılan açık kaynaklı bir mikrodenetleyici kartıdır. Fiziksel dünyadan veri alıp (sensörler aracılığıyla) fiziksel dünyayı kontrol edebilir (motorlar, ışıklar aracılığıyla).
💡 İpucu: Arduino'yu bir projenin "beyni" gibi düşünebilirsiniz. Çevresindeki sensörlerden bilgi alır ve bu bilgilere göre belirli eylemleri gerçekleştirir.
Arduino projelerinde sıkça kullanılan bazı temel elektronik bileşenler ve bağlantı şekilleri oldukça önemlidir.
⚠️ Dikkat: LED'leri direk olarak Arduino pinine bağlamak, aşırı akım nedeniyle LED'in veya Arduino pininin zarar görmesine neden olabilir. Bu yüzden her zaman seri bir direnç kullanılmalıdır.
Arduino kartları, "Arduino IDE" (Entegre Geliştirme Ortamı) adı verilen özel bir yazılım ile programlanır. Bu ortamda C++ tabanlı basit bir dil kullanılır.
void setup(): Arduino kartı ilk çalıştığında veya resetlendiğinde bir kere çalışan fonksiyondur. Pin modlarının ayarlanması, seri iletişimin başlatılması gibi başlangıç ayarları burada yapılır.void loop(): setup() fonksiyonu bittikten sonra sürekli olarak tekrar eden fonksiyondur. Projenin ana mantığı, sensör okumaları ve çıkış kontrolleri burada yer alır.pinMode(pin, mode): Bir Arduino pininin giriş (INPUT) mi yoksa çıkış (OUTPUT) mı olacağını belirler. Örn: pinMode(13, OUTPUT);digitalWrite(pin, value): Dijital bir pini yüksek (HIGH - 5V) veya düşük (LOW - 0V) yaparak bir LED'i yakıp söndürmek gibi işlemleri gerçekleştirir. Örn: digitalWrite(13, HIGH);digitalRead(pin): Dijital bir pindeki voltaj seviyesini okur (HIGH veya LOW). Genellikle buton okumak için kullanılır. Örn: int butonDurumu = digitalRead(2);delay(miliseconds): Belirtilen milisaniye kadar programın çalışmasını duraklatır. Örn: delay(1000); (1 saniye bekleme).📝 Örnek: Bir LED'i yakıp söndürme kodu setup() içinde pin ayarı, loop() içinde ise digitalWrite() ve delay() komutlarını içerir.
Python, okunabilirliği yüksek, çok yönlü ve popüler bir programlama dilidir. Arduino ile Python kullanmak, projelerinize daha gelişmiş özellikler eklemenizi sağlar.
💡 İpucu: Arduino genellikle gerçek zamanlı, düşük seviyeli donanım kontrolü yaparken, Python daha üst seviye mantık, veri işleme ve kullanıcı etkileşimi için kullanılır. İkisi bir araya geldiğinde çok güçlü projeler ortaya çıkar.
Seri port iletişimi, Arduino ile bilgisayar (ve dolayısıyla Python) arasında veri alışverişi yapmanın en yaygın yoludur. Bu, Arduino'nun USB kablosu üzerinden gerçekleşir.
Serial.begin(baudRate): Seri iletişimi başlatır.Serial.print(data) / Serial.println(data): Veriyi seri port üzerinden gönderir. println yeni satıra geçer.Serial.available(): Seri portta okunmaya hazır veri olup olmadığını kontrol eder.Serial.read(): Seri porttan gelen tek bir baytı okur.⚠️ Dikkat: Seri port üzerinden veri gönderirken veya alırken, gönderilen ve beklenen veri formatının (sayı, karakter, metin) her iki tarafta da aynı olduğundan emin olunmalıdır.
Python'da seri port iletişimi için en yaygın kullanılan kütüphane `pyserial`'dır. Bu kütüphane sayesinde Python programlarınızdan Arduino'ya komut gönderebilir veya Arduino'dan veri alabilirsiniz.
pip install pyserial komutu ile kurulur.import serial ile kütüphane içeri aktarılır. Ardından ser = serial.Serial('COMX', baudrate) şeklinde port açılır. ('COMX' yerine Arduino'nuzun bağlı olduğu seri port adı gelir, Mac/Linux'ta '/dev/ttyUSB0' veya '/dev/ttyACM0' gibi olabilir).ser.write(b'veri') komutu ile veri gönderilir. Gönderilen verinin bayt formatında (b'...') olması gerektiğini unutmayın.ser.readline().decode('utf-8').strip() ile Arduino'dan gelen bir satır veri okunur, bayt formatından metne dönüştürülür ve boşluklar temizlenir.ser.close() ile port kapatılmalıdır.💡 İpucu: Python kodunuzu çalıştırmadan önce Arduino IDE'deki Seri Monitör'ün kapalı olduğundan emin olun. Aksi takdirde port meşgul olacağı için Python erişemez.