Banner Ausblenden
Kleines Logo

Willkommen auf PSI-Online

Sie befinden sich in: Unterrichtsangebote Fächer Fachbereich III Informatik WU_Info Arduino 2019-20 Rathscheck, Emil Serielle Kommunikation zwischen einem Arduino und Python

Serielle Kommunikation zwischen einem Arduino und Python

Mein Ziel diese Projektes ist es, über Python Tetris laufen zu lassen und mit einem Arduino einen Controller zu bauen. Dieser Controller soll dann als eingabe dienen. Leider ist mir dies bisher nur mit einem Button gelunden. Der folgende Sketch funktioniert leider... noch NICHT!!! Ich arbeite noch dran und auch in diesem Sketch steckt viel verzwifelte Zeit.

Es gibt mehrere Probleme. Eines bzw. sogar das größte ist das debuggen der Datenströme.

Einigen mag der Befehl Serial.println nicht dieser ermöglich einfach eine Kommunikation zwischen Arduino und anderen Programmen ausserhalb der Arduino IDE.

// Belegung der Arduino Pins
const int SW_Pin = 30;  // Der Switch Pin ist auf dem Digitalen Pin Nr. 22
const int X_Pin = 0;    // Der Pin für die X-Achse befindet sich auf dem Analogen Pin Nr. 0  
const int Y_Pin = 1;    // Der Pin für die Y-Achse befindet sich auf dem Analogen Pin Nr. 1
const int Puffer1 = 521;
const int Puffer2 = 517;
void setup() {
  Serial.begin(9600);
  pinMode(SW_Pin, INPUT);
  digitalWrite(SW_Pin, HIGH);
}
 
void loop() {
    if(analogRead(X_Pin) > Puffer1)
  {
    Serial.println("unten");
  }
  Serial.println("\n");
  if(analogRead(X_Pin) < Puffer2)
  {
    Serial.println(1);
  }
  Serial.println("\n");
  if(analogRead(Y_Pin) > Puffer1)
  {
    Serial.println("links");
  }
  Serial.println("\n");
  if(analogRead(Y_Pin) < Puffer2)
  {
    Serial.println("rechts");
    }
    delay(90);
 
}
 
 
 
 
 
Nun folgt der sketch welcher in Python geschrieben ist. Auch dieser Funktioniert noch nicht richtig!!!
import serial       # import des Serial moduls 
import time         #Import des Time moduls 

ser = serial.Serial('COM3', 9600)   #beginne Serielle kommunikation
time.sleep(2)                       # Schlafe für 2 sek

while True:                         #eine immer laufende Schleife 
    b = ser.readline()
    string_n = b.decode()           #der sting wird decoded 
    string = string_n.rstrip()       #entfernung von \r und \n 
    flt = float(string_n)
    data = flt
    while True:
        print(data)                    #ausgabe von (data)




 

Erstellt: Emil Nisse Rathscheck (30.04.2020) Letzte Änderung: Emil Nisse Rathscheck (30.04.2020)