Python ile Arduino kodlama Test 1

Soru 01 / 10

🎓 Python ile Arduino kodlama Test 1 - Ders Notu

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 Nedir ve Neden Kullanılır?

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).

  • Açık Kaynak: Hem donanım hem de yazılım tasarımları herkesin kullanımına açıktır.
  • Kolay Öğrenim: Başlangıç seviyesindeki kullanıcılar için uygun, basit bir programlama ortamına sahiptir.
  • Geniş Topluluk: Sorularınıza hızlıca cevap bulabileceğiniz büyük bir kullanıcı ve geliştirici topluluğu vardır.
  • Çok Yönlülük: Robotik, otomasyon, akıllı ev sistemleri gibi birçok farklı alanda kullanılabilir.

💡 İ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.

📌 Temel Arduino Bileşenleri ve Bağlantılar

Arduino projelerinde sıkça kullanılan bazı temel elektronik bileşenler ve bağlantı şekilleri oldukça önemlidir.

  • Breadboard (Deney Kartı): Elektronik bileşenleri lehim yapmadan kolayca takıp çıkararak devre kurmaya yarayan bir platformdur. Genellikle ortadaki delikler dikey, kenardaki güç hatları (pozitif/negatif) ise yatay olarak birbirine bağlıdır.
  • LED (Işık Yayan Diyot): Elektrik akımı geçtiğinde ışık yayan bir bileşendir. Uzun bacağı (anot) pozitif, kısa bacağı (katot) negatife bağlanır.
  • Direnç: Elektrik akımının geçişini sınırlayan, böylece bileşenleri aşırı akımdan koruyan pasif bir elemandır. LED'ler ile kullanılırken akımı sınırlamak ve LED'in yanmasını önlemek için önemlidir.
  • Buton (Düğme): Bir devreye basıldığında bağlantı kuran veya kesen, böylece bir sinyal göndermeyi sağlayan anahtardır.
  • Jumper Kablolar: Bileşenler arasında elektrik bağlantısı kurmak için kullanılan kablolardır.

⚠️ 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 IDE ve Temel Fonksiyonlar

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 Nedir ve Arduino ile Neden Kullanılır?

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.

  • Gelişmiş Arayüzler: Python ile grafiksel kullanıcı arayüzleri (GUI) oluşturarak Arduino'nuzu daha kolay kontrol edebilirsiniz.
  • Veri İşleme: Arduino'dan gelen sensör verilerini Python ile analiz edebilir, kaydedebilir ve görselleştirebilirsiniz.
  • İnternet Bağlantısı: Python, web servisleri ve bulut platformları ile kolayca entegre olabilir, böylece Arduino projelerinizi internete bağlayabilirsiniz (IoT).
  • Kütüphane Zenginliği: Python'ın makine öğrenimi, görüntü işleme gibi birçok alanda zengin kütüphaneleri vardır.

💡 İ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 İletişimi: Arduino ve Python Arasındaki Köprü

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.

  • UART (Universal Asynchronous Receiver/Transmitter): Seri iletişimin temelini oluşturan donanım birimidir. Veriyi bit bit gönderir ve alır.
  • Baud Hızı: Saniyede iletilen bit sayısını ifade eder. Hem Arduino hem de Python tarafında aynı baud hızının ayarlanması zorunludur (örn: 9600, 115200).
  • Arduino Tarafında Seri İletişim Fonksiyonları:
    • 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 `pyserial` Kütüphanesi

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.

  • Kurulum: Komut istemcisinden pip install pyserial komutu ile kurulur.
  • Seri Portu Açma: 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).
  • Veri Gönderme: ser.write(b'veri') komutu ile veri gönderilir. Gönderilen verinin bayt formatında (b'...') olması gerektiğini unutmayın.
  • Veri Okuma: 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.
  • Seri Portu Kapatma: İşlem bittiğinde 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.

↩️ Testi Çözmeye Devam Et
✨ Konuları Gir, Yapay Zeka Saniyeler İçinde Sınavını Üretsin!
1 2 3 4 5 6 7 8 9 10
Ana Konuya Dön:
Geri Dön