Python seri port kullanarak veri yazmak

Başlatan elektronikhobi, 30 Mayıs 2025, 18:47:39

elektronikhobi

Daha önce Python ile Arduino seri porttan gelen verileri okuyan ufak bir uygulama yazmıştık.

Kullanıcının bastığı tuşları okuyarak Arduino üzerinde bulunan ışıkları yakan bir uygulama yazmak istiyoruz.

Örneğin kullanıcı ileri ok tuşuna basınca "ileri", geri ok tuşuna basınca "geri", boşluk tuşuna basınca "dur" kelimesini seri porttan Arduino'ya göndersin.

Eğer Arduino'ya "ileri" kelimesi geldiyse sağ ışığı, "geri" kelimesi geldi ise sol ışığı yaksın.

Bu uygulamayı nasıl yazabiliriz acaba..
"Osmanlı fethettiği topraklardan gençleri alır yetiştirir sonra yeniçeri yapardı. Amerika şimdi bize yetiştirtiyor, tam iş yapacakları zaman gençlerimiz gidip oraya hizmet ediyor."

Özdemir Bayraktar

kantirici


elektronikhobi

#2
Hayır.

Yapay zeka kullanmayı tercih etmiyoruz.

Python'dan Arduino'ya veri gönderen ufak bir örnek yazdık.

Ama henüz istediğimiz gibi çalışmıyor.

Ekleme :

Bu çalıştı gibi gözüküyor.

seriyaz2.py
import serial
import time
seri = serial.Serial('/dev/ttyACM0', 9600)
time.sleep(3)
def yaz(karakter):
    kaçBaytYazıldı = seri.write(karakter.encode())
    print('Kaç bayt yazıldı = ', kaçBaytYazıldı)
    time.sleep(3)
yaz('A')
yaz('B')
yaz('A')
yaz('B')
seri.close()

serioku2.ino
int sagIsik = 8;
int solIsik = 10;
void yakSondur(int no)
{
    digitalWrite(no, !digitalRead(no));
}
void setup()
{
    pinMode(sagIsik,OUTPUT);
    pinMode(solIsik,OUTPUT);
    digitalWrite(sagIsik,LOW);
    digitalWrite(solIsik,LOW);
    Serial.begin(9600);
}
void loop()
{
    char okunan = 0;
    if (Serial.available())
    {
        okunan = Serial.read();
        switch(okunan)
        {
        case 'A'yakSondur(8);
            break;
        case 'B'yakSondur(10);
            break;
        default:
            break;
        }
    }
}
"Osmanlı fethettiği topraklardan gençleri alır yetiştirir sonra yeniçeri yapardı. Amerika şimdi bize yetiştirtiyor, tam iş yapacakları zaman gençlerimiz gidip oraya hizmet ediyor."

Özdemir Bayraktar

mehmet

Bir kaç harf header gönderirseniz çok daha iyi olur. Benim blogda var örnek.
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr
https://creativecommons.org/licenses/by/4.0/deed.tr "CC BY"

elektronikhobi

Aşağıdaki örnek kullanıcının bastığı tuşları okuyor.

Eğer ileri ok tuşuna basıldı ise seri porttan 'ileri' kelimesini gönderiyor. Kırmızı ışığı yakıyor.

Eğer geri ok tuşuna basıldı ise seri porttan 'geri' kelimesini gönderiyor. Beyaz ışığı yakıyor.

Tuşlara mükerrer basıldığında eğer ışık yanıyorsa sönüyor.

seriyaz4.py


import serial
from pynput.keyboard import Key, Listener
seri = serial.Serial('/dev/ttyACM0', 9600)
def yaz(karakter):
    kaçBaytYazıldı = seri.write(karakter.encode())
    print('Kaç bayt yazıldı = ', kaçBaytYazıldı)
def tuşuGöster(tuş):
    #  print('\nGirdiğiniz tuş {0}' .format(tuş))
    if tuş == Key.up:
        print('\nİleri gidiyoruz')
        yaz('ileri')
    if tuş == Key.down:
        print('\nGeri gidiyoruz')
        yaz('geri')
    if tuş == Key.delete:
        return False
with Listener(on_press = tuşuGöster) as işle:
    işle.join()
"Osmanlı fethettiği topraklardan gençleri alır yetiştirir sonra yeniçeri yapardı. Amerika şimdi bize yetiştirtiyor, tam iş yapacakları zaman gençlerimiz gidip oraya hizmet ediyor."

Özdemir Bayraktar