Benutzer-Werkzeuge

Webseiten-Werkzeuge


techniken:datenaustausch:processingserialread

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
techniken:datenaustausch:processingserialread [2014/01/10 14:53]
fbonowski angelegt
techniken:datenaustausch:processingserialread [2016/11/16 13:49] (aktuell)
fbonowski
Zeile 1: Zeile 1:
-Beispielcode:​+====== Mit Processing Daten von der Seriellen Schnittstelle empfangen ====== 
 +Genauso, wie ihr Ausgaben des Arduino im Serial-Monitor lesen könnt, kann auch ein beliebiges Programm auf eurem Computer diese Daten empfangen und verarbeiten. 
 + 
 +Dazu muss euer Programm zunächst eine Verbindung über die Serielle Schnittstelle herstellen und dazu den Namen der Schnittstelle und die Baudrate angebnen. In Processing geht das mit der bereits vorinstallierten [[https://​processing.org/​reference/​libraries/​serial/​|Serial Library (Dokumentation mit Beispielen zu allen Funktionen)]]. Auf eurem PC gibt es auch vorinstallierte Beispiele unter (''​Examples/​Libraries/​Serial''​). 
 + 
 +===== Beispielcode Processing: Serielle Verbindung herstellen und ankommende Daten ausgeben ===== 
 +<code Java> 
 +import processing.serial.*; ​  //​verwende die '​Serial'​ Library 
 + 
 +Serial myPort; ​  // Deklariere ein Object vom Typ '​Serial',​ mit dem Namen '​myPort'​ 
 + 
 +//stelle eine Verbindung zum Arduino her. 
 +void setup() { 
 +  // Um den Namen der Schnittstelle herauszufinden,​ lassen wir uns von der Serial-Klasse zunächst 
 +  // eine Liste der Namen der am PC vorhandenen Ports geben ('​Serial.list()'​) 
 +  // Den x'ten Eintrag aus dieser Liste bekommen wir mit '​Serial.list()[x-1]'​ (die indices fangen mit 0 an) 
 +   
 +  // Bei den meisten PCs ist der Arduino der letzte Port in der Liste. 
 +  // Deshalb ermitteln wir zunächst die Länge der Liste (Serial.list().length)  
 +  // und nehmen uns den letzten Namen aus der Liste heraus (Serial.list()[Serial.list().length-1])  
 +   
 +  String portName = Serial.list()[Serial.list().length-1];​ // finde den Namen des letzten Serialports heraus. 
 +  int baudrate=115200; ​      // Diese Baudrate muss mit der in eurem Arduinoprogramm übereinstimmen. 
 +  //   ​String portName = "​COM1";​ // alternativ: verwende stattdessen einen bekannten Portnamen 
 +  myPort = new Serial(this,​ portName, baudrate); // Erzeuge ein Serial Objekt und stelle eine Verbindung her 
 +
 + 
 +//Lese Daten und gib sie in Processing aus 
 +void draw() { 
 +  while (myPort.available() > 0) { // wiederhole das folgende, solange (while) es neue Daten (myPort.available() > 0)gibt. 
 +    char inByte = myPort.readChar();​ // lese einen einzelnen Buchstaben von der Seriellen Schnittstelle 
 +    print(inByte);​ // gib den gelesenen Buchstaben im Fenster unter dem Code aus. 
 +  } 
 +
 + 
 +</​code>​ 
 +====== ​Beispielcode ​Empfang von Zahlenwerten======
  
 <file Java receiveDataSerial.pde>​ <file Java receiveDataSerial.pde>​
Zeile 14: Zeile 50:
  
   // Initialze Serial communication. There may be multiple serial ports on your computer, so we have to select one:   // Initialze Serial communication. There may be multiple serial ports on your computer, so we have to select one:
-  String[] portNames=Serial.list();//​Serial.list() returns an array of port names+  String[] portNames=Serial.list();//​Serial.list() returns an array of port names    
 +  // if there is no serial port, quit with an error message 
 +  if (portNames.length==0){throw(new IllegalStateException("​There are no Serial ports on this computer!"​));​} ​
   println(portNames); ​ //print them to the user   println(portNames); ​ //print them to the user
   // initialize the Serial port Object using the last name from the list and a Baudrate of 9600   // initialize the Serial port Object using the last name from the list and a Baudrate of 9600
techniken/datenaustausch/processingserialread.1389362010.txt.gz · Zuletzt geändert: 2016/01/21 12:45 (Externe Bearbeitung)