Raspberry pi ve Arduino Serial Haberleşmesi

Merhaba. Bu yazımızda Arduino ve Raspberyy Pi serial haberleşmesini inceleyeceğiz. Öncelikle RX ve TX pinlerini kullanmamıza gerek yoktur, sadece usb kablosu ile de haberleşmeyi sağlayabiliriz. Öncelikle Arduino’yu usb kablosu aracılığı ile Raspberyy Pi’ye bağlayın. (Raspberyy pi’de Arduino IDE adlı programın olduğunu varsayıyorum.)

Şunu da belirtmekte fayda var ki Serial.read() komutu sadece 1 byte’ı okuyabiliyor. Yapacağımız işlemler sayesinde de Arduino’ya multiple veri gönderebiliriz.

Python Kodları

import time
import serial
ser=serial.Serial(
    port="/dev/ttyUSB0",
    baudrate=9600,
    parity=serial.PARITY_NONE,
    bytesize=serial.EIGHTBITS,
    timeout=0.5,
    )
time.sleep(1)

while 1: 
    if(ser.in_waiting >0):
        line = ser.readline()
        line= line.decode('utf-8')        
        for ex in line.split(','):
              print(line)
         station ='Hello'
         ListData= list(station)
         print(ListData)
         for i in range(len(ListData)):
             ser.write(ListData[i].encode())                                          

station adlı değişkende Hello yazısı saklıdır. Bu datanın tamanını Arduino’ya göndermek için bir for döngüsü sayesinde her bir byte’ı gönderiyoruz. Örneğin; önce ‘H’ gider sonra ‘e’ daha sonra ‘l’ gibi. Arduino kısmında ise bu gelen byte’ları bir char dizisi yardımcıyla tutmaktır.

Arduino C Kodları

char incoming[5];
void setup()
{
  Serial.begin(9600);
}
void loop()
{
  while (Serial.available()>=5) { //Hello 5 byte'dan oluştuğundan dolayı 5 yazdık
       for(int i=0; i<=5; i++)
       {
        incoming[i]= (char)Serial.read();
        
       }
    }
}

Arduino kodları ise bu şekildedir.

About the author

2 Comments

Bir Cevap Yazın

  • pythonn kodunu çalıştırdığım zaman böyle bir hata alıyorum
    Traceback (most recent call last):
    File “/home/pi/Desktop/Yeni/serial.py”, line 2, in
    import serial
    File “/home/pi/Desktop/Yeni/serial.py”, line 3, in
    ser=serial.Serial(
    AttributeError: module ‘serial’ has no attribute ‘Serial’
    sebebi nedir

    • Merhaba,import serial kodu yerine from serial import Serial kodu yazabilir misiniz ? Eğer bu yöntem olmazsa internet üzerinden rasberry’e Serial modülünü yüklemeniz gerekmektedir. Tekrardan iletişim içinde kalalım. İyi kodlamalar 🙂

Blog İstatistikleri

Kategoriler

Arsiv