Seri üzerinden bir arduino uno ile iletişim kurmak için python nasıl kullanılır

How to Use Python to Communicate with an Arduino Uno Over Serial

Python ve Arduino Uno arasında seri üzerinden iletişim kurmak, Python komut dosyalarını kullanarak donanımı kontrol etmenizi veya işleme için Arduino'dan Python'a veri göndermenizi sağlar. Bu öğretici, bir seri bağlantı üzerinden bir Arduino UNO ile iletişim kurmak için Python'u kurma ve kullanma konusunda size rehberlik edecektir.


Ne İhtiyacınız Olacak

  1. USB kablosu ile arduino uno
  2. Python bilgisayarınıza yüklendi (sürüm 3.x önerilir)
  3. Arduino IDE kurulu
  4. Python seri iletişimi için bir kütüphane (ör., pyserial)

1. Adım: Gerekli yazılımı yükleyin

1. Python'u yükleyin

Python yüklü yoksa, python.org ve kurulum talimatlarını izleyin.

2. Arduino IDE'yi kurun

Arduino IDE'yi indirin ve yükleyin Arduino.cc.

3. Pyserial kütüphaneyi kurun

Python'un seri bağlantı noktaları üzerinden iletişim kurması için pyserial gereklidir. Aşağıdaki komutu kullanarak yükleyin:

pip install pyserial

2. Adım: Arduino kodunu yazın ve yükleyin

Arduino seri bağlantı noktası üzerinden veri gönderecek ve alacaktır. Aşağıda örnek bir taslak var:

Arduino Kodu

void setup() {
  Serial.begin(9600); // Start serial communication at 9600 baud
  while (!Serial);    // Wait for the serial port to connect
  Serial.println("Arduino is ready!");
}

void loop() {
  // Check if data is available on the serial port
  if (Serial.available()) {
    String data = Serial.readString(); // Read the incoming data
    Serial.print("Received: ");
    Serial.println(data); // Echo the data back

    // Optional: Respond based on the received data
    if (data.trim() == "LED_ON") {
      Serial.println("Turning LED on");
    } else if (data.trim() == "LED_OFF") {
      Serial.println("Turning LED off");
    }
  }
}
  1. Arduino IDE'yi açın.
  2. Yukarıdaki kodu düzenleyiciye yapıştırın.
  3. Doğru seçin Pano Ve Liman altında Aletler menü.
  4. Tıklamak Yüklemek Kodu Arduino Uno'ya yüklemek için.

Adım 3: Python kodunu yazın

Aşağıda Arduino ile iletişim kurmak için bir örnek Python betiği:

Python kodu

import serial
import time

# Configure the serial connection
arduino = serial.Serial(port='COM3', baudrate=9600, timeout=1) # Replace 'COM3' with your Arduino's port

def send_data(data):
    print(f"Sending: {data}")
    arduino.write(f"{data}\n".encode()) # Send data to Arduino
    time.sleep(0.1)

    response = arduino.readline().decode().strip() # Read response from Arduino
    if response:
        print(f"Arduino responded: {response}")

if __name__ == "__main__":
    time.sleep(2)  # Wait for Arduino to initialize
    print("Connected to Arduino")

    # Example: Send commands to Arduino
    send_data("LED_ON")
    time.sleep(2)
    send_data("LED_OFF")

    # Close the serial connection
    arduino.close()

4. Adım: Kurulumu test edin

  1. Arduino'yu USB üzerinden bilgisayarınıza bağlayın.
  2. Arduino’nun limanını bulun:
    • Windows'ta: Cihaz Yöneticisi'ndeki bağlantı noktasını kontrol edin (örn. COM3).
    • MacOS/Linux'ta: ls /dev/tty.* Doğru bağlantı noktasını bulma komutu (ör., /dev/ttyUSB0).
  3. Güncelle port Python komut dosyasındaki değer Arduino'nun bağlantı noktasına uyacak şekilde.
  4. Python komut dosyasını komutu kullanarak çalıştırın:
python your_script_name.py
  1. Terminal ve seri monitörde Python ve Arduino arasındaki iletişimi gözlemleyin.

Python-aluino iletişiminin uygulamaları

  1. Donanım görevlerini otomatikleştirme (ör. LED'leri açma, motorları kontrol etme)
  2. Sensör verilerini bir dosyaya veya veritabanına kaydetmek
  3. Tkinter veya Pyqt gibi Python kütüphanelerini kullanarak Arduino projeleri için özel GUI'ler oluşturmak
  4. Arduino'yu IoT platformlarıyla entegre etmek

Sorun giderme

  • Arduino ile bağlantı yok:

    • Python komut dosyasında doğru bağlantı noktasının belirtildiğinden emin olun.
    • Baud oranının Arduino eskiziyle eşleştiğini doğrulayın.
  • Arduino'dan yanıt yok:

    • Seri bağlantısını açtıktan sonra bir gecikme ekleyin (time.sleep(2)).
    • Arduino'nun başka bir program tarafından kullanılmadığından emin olun (örneğin, Arduino IDE'deki seri monitör).
  • UnicodedecodeError:

    • Gönderilen/alınan verilerin kodlanmasını kontrol edin. Kullanmak .decode(errors='ignore') Gerekirse.

Çözüm

Seri üzerinden Python ve Arduino Uno arasında başarılı bir şekilde iletişim kurdunuz. Bu, Python’un güçlü kütüphanelerini Arduino’nun donanım yetenekleriyle entegre etmek için sonsuz olasılıklar açıyor. Projeleriniz için sensörler, motorlar ekleyerek veya Python tabanlı GUI'ler oluşturarak daha fazla deney yapın!

Yorum bırak

Notice an Issue? Have a Suggestion?
If you encounter a problem or have an idea for a new feature, let us know! Report a problem or request a feature here.