Arduino ile Bilgisayar Kontrollü Basit Projeler

Arduino, elektronik projelerinizi hayata geçirmeniz için harika bir platform. Peki, bu platformu bilgisayarınızla birleştirerek neler yapabileceğinizi hiç düşündünüz mü? Arduino’nun gücünü bilgisayarınızın işlem gücüyle birleştirdiğinizde, olasılıklar neredeyse sınırsız! Bu makalede, Arduino ile bilgisayarınızı bir araya getirerek gerçekleştirebileceğiniz basit ama etkileyici projelere yakından bakacağız. Hazırsanız, elektronik dünyasına keyifli bir yolculuğa çıkalım!

Arduino ve Bilgisayar: Mükemmel İkili Neden mi?

Arduino’nun tek başına yapabilecekleri harika olsa da, bazen daha fazla işlem gücüne, daha büyük bir ekrana veya internet bağlantısına ihtiyaç duyabilirsiniz. İşte tam bu noktada bilgisayarınız devreye giriyor. Bilgisayarınız, Arduino’nun sensörlerden topladığı verileri işleyebilir, karmaşık algoritmalar çalıştırabilir, verileri görselleştirebilir ve hatta Arduino’yu internet üzerinden kontrol edebilir. Kısacası, bilgisayarınız Arduino projelerinize yepyeni bir boyut katıyor.

İşe Nereden Başlayacağım? Temel Gereksinimler

Bu projeleri hayata geçirmek için birkaç temel malzemeye ihtiyacınız olacak:

  • Arduino Kartı: Arduino Uno, Nano veya Mega gibi herhangi bir Arduino kartı işinizi görecektir. Başlangıç için Arduino Uno en popüler ve kolay bulunan seçenektir.
  • USB Kablosu: Arduino’yu bilgisayarınıza bağlamak için standart bir USB kablosuna ihtiyacınız olacak.
  • Sensörler ve Aktüatörler: Projenize bağlı olarak, sıcaklık sensörü, ışık sensörü, motor, LED gibi çeşitli sensör ve aktüatörlere ihtiyacınız olabilir.
  • Jumper Kabloları: Sensörleri ve aktüatörleri Arduino’ya bağlamak için jumper kabloları kullanacaksınız.
  • Bilgisayar: Elbette bir bilgisayara ihtiyacınız olacak. İşletim sisteminin (Windows, macOS, Linux) önemi yok, Arduino IDE’nin çalıştığı herhangi bir bilgisayar işinizi görecektir.
  • Arduino IDE: Arduino’yu programlamak için Arduino IDE’yi bilgisayarınıza indirip kurmanız gerekiyor. Bu yazılım, Arduino kartınıza kod yüklemenizi ve seri port üzerinden iletişim kurmanızı sağlar.

İlk Adım: Arduino ve Bilgisayar Arasında Haberleşme

Arduino ve bilgisayar arasında iletişim kurmanın en temel yolu seri portu kullanmaktır. Arduino IDE’si, seri port üzerinden veri göndermek ve almak için kullanabileceğiniz yerleşik bir seri monitöre sahiptir.

Örnek Kod:

void setup() {
  Serial.begin(9600); // Seri iletişimi başlat
}

void loop() {
  Serial.println("Merhaba Bilgisayar!"); // Bilgisayara mesaj gönder
  delay(1000); // 1 saniye bekle
}

Bu kodu Arduino’nuza yüklediğinizde, Arduino IDE’sindeki seri monitörü açarak "Merhaba Bilgisayar!" mesajının her saniye tekrarlandığını göreceksiniz. Tebrikler, ilk iletişiminizi kurdunuz!

Proje 1: Bilgisayar Kontrollü LED Parlaklığı

Bu projede, bilgisayarınızdan gönderdiğiniz değerlere göre bir LED’in parlaklığını kontrol edeceğiz.

Gerekli Malzemeler:

  • Arduino Uno
  • LED
  • 220 Ohm Direnç
  • Jumper Kabloları

Devre Şeması:

LED’in uzun bacağını (anot) 220 Ohm’luk bir direnç üzerinden Arduino’nun 9. pinine bağlayın. LED’in kısa bacağını (katot) Arduino’nun GND (toprak) pinine bağlayın.

Arduino Kodu:

int ledPin = 9; // LED'in bağlı olduğu pin

void setup() {
  Serial.begin(9600); // Seri iletişimi başlat
  pinMode(ledPin, OUTPUT); // LED pinini çıkış olarak ayarla
}

void loop() {
  if (Serial.available() > 0) { // Seri portta veri varsa
    int parlaklik = Serial.parseInt(); // Veriyi tamsayıya dönüştür
    parlaklik = constrain(parlaklik, 0, 255); // Değeri 0-255 arasına sınırla
    analogWrite(ledPin, parlaklik); // LED'in parlaklığını ayarla
    Serial.print("Parlaklik ayarlandi: ");
    Serial.println(parlaklik);
  }
}

Bilgisayar Tarafı:

Arduino’ya seri port üzerinden 0 ile 255 arasında bir değer göndermeniz gerekiyor. Bunu yapmak için Arduino IDE’sindeki seri monitörü kullanabilir veya Python gibi bir programlama diliyle daha gelişmiş bir arayüz oluşturabilirsiniz.

Python Örneği:

import serial

ser = serial.Serial('COM3', 9600) # COM portunuzu doğru şekilde ayarlayın

while True:
    parlaklik = input("Parlaklik degerini girin (0-255): ")
    ser.write(parlaklik.encode())

Bu Python kodu, kullanıcıdan parlaklık değerini alıp Arduino’ya gönderir.

Proje 2: Hava Durumu Verilerini Bilgisayarda Görüntüleme

Bu projede, bir sıcaklık ve nem sensöründen (örneğin DHT11) okunan verileri bilgisayarınızda görüntüleyeceğiz.

Gerekli Malzemeler:

  • Arduino Uno
  • DHT11 Sıcaklık ve Nem Sensörü
  • Jumper Kabloları

Devre Şeması:

DHT11’in VCC pinini Arduino’nun 5V pinine, GND pinini Arduino’nun GND pinine ve DATA pinini Arduino’nun 2. pinine bağlayın.

Arduino Kodu:

#include "DHT.h"

#define DHTPIN 2     // DHT11'in bağlı olduğu pin
#define DHTTYPE DHT11   // DHT 11

DHT dht(DHTPIN, DHTTYPE);

void setup() {
  Serial.begin(9600);
  dht.begin();
}

void loop() {
  delay(2000);

  float nem = dht.readHumidity();
  float sicaklik = dht.readTemperature();

  if (isnan(nem) || isnan(sicaklik)) {
    Serial.println("DHT11'den veri okunamadi!");
    return;
  }

  Serial.print("Nem: ");
  Serial.print(nem);
  Serial.print(" %t");
  Serial.print("Sicaklik: ");
  Serial.print(sicaklik);
  Serial.println(" *C");
}

Bu kod, DHT11 sensöründen sıcaklık ve nem verilerini okuyup seri port üzerinden bilgisayara gönderir.

Bilgisayar Tarafı:

Bu verileri bilgisayarınızda okuyup görüntülemek için Python gibi bir programlama dili kullanabilirsiniz.

Python Örneği:

import serial

ser = serial.Serial('COM3', 9600) # COM portunuzu doğru şekilde ayarlayın

while True:
    line = ser.readline().decode('utf-8').rstrip()
    print(line)

Bu Python kodu, seri porttan gelen verileri okuyup ekrana yazdırır. Daha gelişmiş bir arayüz oluşturmak için GUI kütüphanelerini (örneğin Tkinter, PyQt) kullanabilirsiniz.

Proje 3: Bilgisayar Klavyesi ile Robot Kol Kontrolü (Basit Versiyon)

Bu projede, bilgisayar klavyesindeki tuşları kullanarak basit bir robot kolun hareketlerini kontrol edeceğiz. Bu proje, servo motorları kullanarak temel robotik prensiplerini anlamanıza yardımcı olacaktır.

Gerekli Malzemeler:

  • Arduino Uno
  • 2 Servo Motor
  • Jumper Kabloları
  • Basit bir robot kol (kendiniz yapabilir veya hazır alabilirsiniz)

Devre Şeması:

Servo motorların sinyal pinlerini (genellikle sarı veya turuncu renkli) Arduino’nun 9 ve 10. pinlerine bağlayın. Servo motorların VCC pinlerini Arduino’nun 5V pinine ve GND pinlerini Arduino’nun GND pinine bağlayın.

Arduino Kodu:

#include <Servo.h>

Servo servo1;
Servo servo2;

int pos1 = 90; // Başlangıç pozisyonu
int pos2 = 90;

void setup() {
  Serial.begin(9600);
  servo1.attach(9);
  servo2.attach(10);
  servo1.write(pos1);
  servo2.write(pos2);
}

void loop() {
  if (Serial.available() > 0) {
    char komut = Serial.read();

    if (komut == 'w') { // Yukarı
      pos1 = constrain(pos1 + 1, 0, 180);
    } else if (komut == 's') { // Aşağı
      pos1 = constrain(pos1 - 1, 0, 180);
    } else if (komut == 'a') { // Sola
      pos2 = constrain(pos2 + 1, 0, 180);
    } else if (komut == 'd') { // Sağa
      pos2 = constrain(pos2 - 1, 0, 180);
    }

    servo1.write(pos1);
    servo2.write(pos2);

    Serial.print("Servo 1 pozisyonu: ");
    Serial.println(pos1);
    Serial.print("Servo 2 pozisyonu: ");
    Serial.println(pos2);

    delay(15);
  }
}

Bu kod, ‘w’, ‘s’, ‘a’ ve ‘d’ tuşlarını kullanarak servo motorların pozisyonlarını değiştirir.

Bilgisayar Tarafı:

Python ile klavye girişlerini okuyup Arduino’ya komut gönderebilirsiniz.

Python Örneği:

import serial
import keyboard

ser = serial.Serial('COM3', 9600) # COM portunuzu doğru şekilde ayarlayın

while True:
    if keyboard.is_pressed('w'):
        ser.write('w'.encode())
    elif keyboard.is_pressed('s'):
        ser.write('s'.encode())
    elif keyboard.is_pressed('a'):
        ser.write('a'.encode())
    elif keyboard.is_pressed('d'):
        ser.write('d'.encode())
    time.sleep(0.01)

Bu Python kodu, klavyeden tuş basıldığında ilgili komutu Arduino’ya gönderir.

Sıkça Sorulan Sorular (SSS)

  • Arduino ve bilgisayar arasındaki iletişim neden çalışmıyor?
    • Öncelikle, doğru COM portunu seçtiğinizden ve baud hızının (genellikle 9600) eşleştiğinden emin olun. Ayrıca, USB kablosunun doğru şekilde bağlı olduğundan ve Arduino’nun güç aldığından emin olun.
  • Hangi programlama dilini kullanmalıyım?
    • Python, Arduino ile bilgisayar arasında iletişim kurmak için popüler bir seçimdir. Ancak, C#, Java veya diğer dilleri de kullanabilirsiniz. Dil seçimi, projenizin karmaşıklığına ve kişisel tercihlerinize bağlıdır.
  • Seri portu birden fazla cihazla kullanabilir miyim?
    • Hayır, seri port aynı anda yalnızca bir cihazla iletişim kurabilir. Birden fazla cihazla iletişim kurmak için farklı iletişim protokollerini (örneğin I2C, SPI) veya birden fazla seri portu kullanmanız gerekir.

Sonuç

Arduino ve bilgisayarın birlikte sunduğu imkanlar gerçekten heyecan verici. Bu makalede ele aldığımız basit projeler, bu iki platformun gücünü birleştirerek neler yapabileceğinizin sadece birer başlangıcı. Şimdi sıra sizde! Kendi projelerinizi hayata geçirerek, Arduino ve bilgisayarın potansiyelini keşfedin.

restbet