INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Arduino Processing Kommunikation
29.07.2014, 13:17
Beitrag #1
Arduino Processing Kommunikation
Hallo,

ich versuche gerade mich in Processing reinzuarbeiten. Gibt ja tausend Tutorials - aber keines welches wirklich auf alle Punkte eingeht...

Recht hilfreich fand ich die Tutorials von der IMDFHTrier welche auf Youtube und auf der medienraeume.de Seite zu finden sind. ( http://medienraeume.de/2012/08/02/kapite...verwenden/ Lösung Nr5)

Ich habe hier ein Relaisboard mit 12 Relais welche einzeln angesteuert werden können. Ich habe mich an dem Tutorial orientiert welches mehrere LEDs über ein Schieberegister angesprochen wird. Leider habe ich kein Schieberegister zur Hand, aber es müsste ja auch so funktionieren...
Nur leider scheitere ich bereits an der Kommunikation zwischen Arduino und Processing.
Dem Beispiel nach erzeugt Processing anhand der 8 Kreise einen Binärcode - dieser wird dann mit += 1*pow(2,i) in eine Dezimalzahl int umgewandelt und per write zum Arduino gesendet. Übertragen wird meines Wissens nun der Dezimalwert.
Hier habe ich nun testweise ein Display angeschlossen um die übertragene Zahl zu überprüfen. Und genau hier liegt der Hund begraben: es funktioniert nur 8 Bit - also nur 1111 1111 => 255.
Ich habe das Processing Script auf 12 "LEDs" angepasst. Über die Processing Console lass ich mir den Wert ausgeben: max 4095 wie erwartet.

Beim Arduino speichere ich die Variable in die int data und lass sie mir ausgeben: max 255.

Ich habe bereits vergeblich rumgegooglet, wie nun genau die Kommunikation zwischen Processing und Arduino abläuft - die write Methode unterstützt ja eigentlich alle Datentypen. Wenn ich das richtig verstanden habe aber die Read() Methode nur 8-bytes? Wie funktioniert das dann?

Danke schon mal!

Ps: Wer eine bessere Methode weiß oder wie ich das am besten umsetze - gerne her damit Wink
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
29.07.2014, 22:13
Beitrag #2
RE: Arduino Processing Kommunikation
Hallo fobi,

Ich vergleiche mal:
Processing int:
Zitat:Datatype for integers, numbers without a decimal point. Integers can be as large as 2,147,483,647 and as low as -2,147,483,648. They are stored as 32 bits of information.
Arduino int:
Zitat:On the Arduino Uno (and other ATMega based boards) an int stores a 16-bit (2-byte) value. This yields a range of -32,768 to 32,767 (minimum value of -2^15 and a maximum value of (2^15) - 1).
On the Arduino Due, an int stores a 32-bit (4-byte) value. This yields a range of -2,147,483,648 to 2,147,483,647 (minimum value of -2^31 and a maximum value of (2^31) - 1).
Ich denke mal nicht, dass du einen Arduino Due benutzt !?

Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.07.2014, 06:42
Beitrag #3
RE: Arduino Processing Kommunikation
Hatte einen Schreibfehler - 8bit meinte ich...

So wies aussieht kann die serielle Kommunikation nur 8bit, somit nur 255 übertragen. Wenn eine größere Zahl über tragen werden muss, muss sie umgewandelt werden - so zumindest meine recherche-Ergebnisse... Wink
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.07.2014, 06:55
Beitrag #4
RE: Arduino Processing Kommunikation
Moin fobi,

ich weiß nicht ob processing sowas kennt, beim Arduino kannst du auf die 4 x 8 Bit der 32 Bit über eine Union zugreifen. Beispiel:
Code:
// Die Union
union {
   unsigned long position;
   unsigned char bytes[4];
} CurrentPosition;
// Der Wert der Union
CurrentPosition.position = 7654321;
Zugriff dann über: CurrentPosition.bytes[0], ..., CurrentPosition.bytes[3]

Grüße Ricardo

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
05.08.2014, 12:23
Beitrag #5
RE: Arduino Processing Kommunikation
Habe herausgefunden dass seriell nur 8 bit übertragen werden. Dies hab ich nun umgangen indem ich die Zahl als char übertrage.

char empfangeneDaten[255];
if (Serial.available()){
while(Serial.available()){
empfangeneDaten[i++] = Serial.read();
delay(2);
}

int a = atoi(empfangeneDaten);
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
05.08.2014, 13:07
Beitrag #6
RE: Arduino Processing Kommunikation
Code:
char empfangeneDaten[255];
Aha, man ist heute mal verschwenderisch? Smile
RK

Nüchtern betrachtet...ist besoffen besser Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.08.2014, 08:53
Beitrag #7
RE: Arduino Processing Kommunikation
Hallo fobi,
sehe ich das richtig das du von einem anderen System aus über die RS232 Schnittstelle mit dem Arduino 12 Relais schalten willst ? Warum sendest du dann nicht gleich für jedes Relais ein ASCII Zeichen wie z.B. "A" um Relais 1 einzuschalten und ein "a" um es wieder abzuschalten....und das Alphabet hat mehr Buchstaben als die 12 Relais...weil die 12 Relaiszustände in 2 Bytes zu packen und dann zu übertragen kostet auch einiges an Zeit und keiner garantiert dir das dann auch alle Werte durchgereicht werden weil da auch Codes dabei sind wo manche Interfaces auch als Steuerzeichen ansehen und dann eine Funktion auslösen die du gar nicht haben magst.... das nur mal so als Hinweis und Denkanstoß...
lg
bk

1+1 = 10 Angel ...und ich bin hier nicht der Suchmaschinen-Ersatz Dodgy...nur mal so als genereller Tipp..
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.08.2014, 11:17
Beitrag #8
RE: Arduino Processing Kommunikation
Servus, direkt rs232 will ich nicht verwenden - aber ich will über USB seriell senden...
Den Weg mit den Buchstaben könnte ich auch gehen...
Da ich diese Ansteuerung aber eh nur testweise benötigt hatte, ist dies mittlerweile schon überholt...
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Kommunikation über das WiFi-Shield Flap 3 234 07.11.2016 20:20
Letzter Beitrag: hotsystems
  Kommunikation Serial Monitor --> Arduino BennIY 7 357 24.05.2016 07:48
Letzter Beitrag: hotsystems
  USB-Kommunikation ADK hr3 0 280 12.04.2016 16:43
Letzter Beitrag: hr3
  Suche deutsches Forum für Processing torsten_156 3 521 06.02.2016 13:12
Letzter Beitrag: torsten_156
  I²C Kommunikation bricht ab chhec 1 347 19.01.2016 11:10
Letzter Beitrag: ardu_arne
  Zahlenformat bei Kommunikation mit zwei Arduinos Matthias_Arduino 5 634 07.01.2016 22:40
Letzter Beitrag: Bitklopfer
  Grundlagen zur UART Kommunikation gesucht... torsten_156 10 888 16.12.2015 22:26
Letzter Beitrag: Bitklopfer
  TWI Kommunikation überprüfen chhec 8 755 29.11.2015 18:09
Letzter Beitrag: rkuehle
  Serielle Kommunikation arduino147147 1 668 15.10.2015 08:22
Letzter Beitrag: Binatone
  Serielle Kommunikation zw. zwei Arduino UNOs Marduino_UNO 2 1.114 20.08.2015 07:13
Letzter Beitrag: Marduino_UNO

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste