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
- USB kablosu ile arduino uno
- Python bilgisayarınıza yüklendi (sürüm 3.x önerilir)
- Arduino IDE kurulu
- 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");
}
}
}
- Arduino IDE'yi açın.
- Yukarıdaki kodu düzenleyiciye yapıştırın.
- Doğru seçin Pano Ve Liman altında Aletler menü.
- 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
- Arduino'yu USB üzerinden bilgisayarınıza bağlayın.
- 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
).
- Güncelle
port
Python komut dosyasındaki değer Arduino'nun bağlantı noktasına uyacak şekilde. - Python komut dosyasını komutu kullanarak çalıştırın:
python your_script_name.py
- Terminal ve seri monitörde Python ve Arduino arasındaki iletişimi gözlemleyin.
Python-aluino iletişiminin uygulamaları
- Donanım görevlerini otomatikleştirme (ör. LED'leri açma, motorları kontrol etme)
- Sensör verilerini bir dosyaya veya veritabanına kaydetmek
- Tkinter veya Pyqt gibi Python kütüphanelerini kullanarak Arduino projeleri için özel GUI'ler oluşturmak
- 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).
- Seri bağlantısını açtıktan sonra bir gecikme ekleyin (
-
UnicodedecodeError:
- Gönderilen/alınan verilerin kodlanmasını kontrol edin. Kullanmak
.decode(errors='ignore')
Gerekirse.
- Gönderilen/alınan verilerin kodlanmasını kontrol edin. Kullanmak
Çö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!