Skocz do zawartości

Problem z wysyłaniem wiadomości przez port szeregowy do Arduino z pomocą Pythona


Pomocna odpowiedź

Napisano

Cześć,
kupiłem ekran tft i chcę zrobić program, który będzie mu ciągle wysyłał dane. Na razie prototyp:
 

#include "Adafruit_GFX.h"
#include "MCUFRIEND_kbv.h"

#include "bitmap_RGB.h" 
#include "SPI.h"
#include "SD.h"
// Inicjalizacja obiektu TFT
MCUFRIEND_kbv tft(A3, A2, A1, A0, A4);

#define BLACK 0x0000

#define NAVY 0x000F

#define DARKGREEN 0x03E0

#define DARKCYAN 0x03EF

#define MAROON 0x7800

#define PURPLE 0x780F

#define OLIVE 0x7BE0

#define LIGHTGREY 0xC618

#define DARKGREY 0x7BEF

#define BLUE 0x001F

#define GREEN 0x07E0

#define CYAN 0x07FF

#define RED 0xF800

#define MAGENTA 0xF81F

#define YELLOW 0xFFE0

#define WHITE 0xFFFF

#define ORANGE 0xFD20

#define GREENYELLOW 0xAFE5

#define PINK 0xF81F

void setup() {
    Serial.begin(9600);
  uint16_t ID = tft.readID();
  tft.begin(ID);
  tft.fillScreen(YELLOW);
}
  int a = 0;

void loop() {
  if (Serial.available() > 0) {
    // Odczytaj dane przychodzące
    String incomingData = Serial.readStringUntil('\n');
    tft.fillScreen(YELLOW);
    tft.setCursor(100, 0); 
    tft.setTextColor(PINK);
    tft.setTextSize(1);
    tft.print(incomingData);
  }
}

Jeśli korzystam z portu szeregowego wbudowanego w IDE Arduino wszystko działa, na ekranie mam mój tekst. Jednak chcę, by wysyłanie danych było bardziej automatyczne więc chcę użyć Pythona. Oto kod:

import serial
import time

ser = serial.Serial('COM3', 9600)

try:
    while True:
        ser.write(b'h\n') 

        time.sleep(0.1)

        response = ser.readline().decode('utf-8').strip()
        print("Odpowiedź z Arduino:", response)

except KeyboardInterrupt:
    ser.close()

Program się uruchamia jednocześnie, gdy Arduino korzysta z tamtego. Niestety nic się nie dzieje. Tekst nie wyświetla się na Arduino, ani w Pythonie nie otrzymuje odpowiedzi zwrotnej. Czemu tak się dzieje? Macie jakiś pomysł co z tym zrobić?

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...