PySerial ile Arduino-Raspberry Pi haberleştirmek

PySerial ile Arduino-Raspberry Pi haberleştirmek

“Raspberry Pi’da BLDC motor nasıl kontrol edilir?” diye bakınırken, inputlar ile hızı arttırmayı/azaltmayı çözdüm fakat joystick ile yönetmek istediğimde bir Analog-Digital Converter’a ihtiyacım oldu. Siparişini verdim fakat gelene kadar oyalanırken başka bir yolu olduğunu farkettim.

Öncelikle benim yapmak istediğim joystick verisini Arduino ile alıp bunu Raspberry’e aktarmak, ki o değeri BLDC motora aktarıp joystick ile kontrol edebileyim.





Joystick pinlerini Arduino’ya
GND -> GND
5V ->5V
VRX -> A0
SW ->PIN2
olmak üzere bağlıyoruz. (Y eksenini, sadece X değerini alacağım için bağlamadım.)







int xPin = A0;
int xPozisyonu = 0;

void setup() {
Serial.begin(9600);
pinMode(xPin, INPUT);
}
 
void loop() {
xPozisyonu = analogRead(xPin);

Serial.print(xPozisyonu);
Serial.print("\n");
delay(100);
}

Bu kodu Arduino’ya yükledikten sonra Arduino’yu Raspberry’e bağlıyoruz ve kodlamaya Raspberry’de devam ediyoruz.

Arduino’yu Raspberry’e bağladıktan sonra konsola ls /dev/tty*

yazarak Raspberry’nin Arduino’yu nerde algıladığına bakıyoruz, bende bu /dev/ttyUSB0 olarak çıkıyor, sizde de böyle çıkacaktır muhtemelen.

Ardından konsola sudo nano arduserial.py yazarak kodumuzu yazmaya başlıyoruz.

import serial
import RPi.GPIO as GPIO
import time

ser = serial.Serial("/dev/ttyUSB0", 9600)
ser.baudrate = 9600

while True:
  read_ser = ser.readline()
  a = int(read_ser)
  print a 

Ardından yine konsola python arduserial.py yazarak kodumuzu çalıştırıyoruz ve böylece joystick değerini ADC kullanmadan Raspberry’e çekmiş oluyoruz. Bir sonraki yazıda bu değeri BLDC kontrol etmek için nasıl kullanacağımızı anlatacağım. Görüşmek üzere.