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