Haberler

Arduino Jetson Nano / Xavier NX ile USB Üzerinden Python ile İletişim

Arduino projesi üzerinde Jetson Nano veya Jetson Xavier NX ile çalışırken, bazen Arduino’dan veri almak veya MCU’yu kontrol etmek için bir komut göndermek gerekebilir. Kesinlikle, Wio Terminal gibi, yerleşik WiFi ve BLE’ye sahip Arduino uyumlu kartlar kullanabilir veya ethernet shield ile Jetson Nano ile ağ üzerinden iletişim kurabilirsiniz. Ancak, Python kullanarak Arduino’nuzla basitçe USB üzerinden iletişim kurmak gibi çok daha kolay bir yolu da benimseyebilirsiniz.

Öncelikle, Arduino’nuzu USB kablosu ile Jetson Nano’ya bağlayın. Ardından, Jetson Nano’da terminali açın. Aşağıdaki komutu yazın.

ls /dev/ttyA*

Eğer /dev/ttyACM0 alırsanız, bu, Arduino’nuzun Jetson Nano tarafından tanındığı anlamına gelir çünkü ttyACM0 yalnızca iki USB cihazı birbirine bağlandığında görünür. Şimdi Arduino ile iletişim kurmayı deneyelim. Öncelikle, PySerial‘ı pip3 install pyserial komutunu kullanarak yükleyin. Ben python3 kullanıyorum, bu yüzden komutum pip3. Eğer python2 kullanıyorsanız pip kullanmalısınız.

PySerial’in yüklenmesinin ardından, önce bir test yapın.

Her şey yolunda giderse, bir sonraki adıma geçebiliriz. Şimdi kodlamaya başlayalım.

Arduino Tarafı

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
void setup()
{
  Serial.begin(119200);
}

void loop()
{
  if (Serial.available())
  {
    Serial.println("Hello Jetson!");
  }
}

Python Tarafı

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
import serial 
import time

arduino = serial.Serial('/dev/ttyACM0', 115200, timeout=1)


while True:
    try:
        data = arduino.readline()
        if data:
            print(data)
            print('Hi Arduino')
    except:
        arduino.close() 

Baud hızını Arduino ile aynı olarak ayarlamayı unutmayın. Python dosyasını test.py olarak adlandırın. Ardından, kodu çalıştırmak için sudo kullanın, aksi takdirde izin verilmez. Artık Jetson ve Arduino’nun birbirleriyle konuşmasını sağlayabilirsiniz!

Leave a Reply

Your email address will not be published. Required fields are marked *