Pages: [1]   Go Down
Author Topic: Brauche Hilfe bei Projekt mit serieller Datenübertragung! - Taschenrechner  (Read 1351 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo, ich hab seit ein paar Wochen nen Arduino Uno und will nun folgendes:
Ich habe einen grafikfähigen Taschenrechner (Casio Fx-9860 GII), der auch programmierbar ist. Er hat auch einen seriellen Aus-/Eingang in Form eines Stereo-Klinkensteckers. Da ich mich mit serieller Datenübertragung nicht besonders auskenne, wollte ich fragen, ob es möglich ist, eine Datenverbindung zwischen Arduino und Taschenrechner einzurichten. Ich habe mich schon ein klein wenig über das Protokoll informiert und dazu auch folgenden PDF-File gefunden: http://ftp.jaist.ac.jp/pub/sourceforge/f/fx/fxsdk/documentation/fxreverse-docs-1/fxreverse-docs-1.pdf
Wenn mir jemand weiterhelfen könnte, wäre das genial!
Mein Ziel ist es übrigens, mit dem Taschenrechner solche Dinge wie LEDs oder kleine Motoren schalten zu können.

mfG Lasko
Logged

Germany S-H
Offline Offline
Edison Member
*
Karma: 117
Posts: 2445
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Da ich mich mit serieller Datenübertragung nicht besonders auskenne, wollte ich fragen, ob es möglich ist, eine Datenverbindung zwischen Arduino und Taschenrechner einzurichten.

Laut Bedienungsanleitung kann der Taschenrechner per USB mit einem PC verbunden werden.
Es spricht einiges dafür, dass über den Klinkenstecker eine serielle Schnittstelle herausgeführt wird.

Wenn Dir allerdings unbekannt ist, wie die Pinbelegung ist (Ground, RX, TX) und mit welchem Pegel die Schnittstelle arbeitet (TTL-Seriell oder RS232), würde es sich anbieten, dass man erstmal mit einem Oszilloskop herausbekommt,
- welcher Anschluss Ground ist
- welches der Sendeanschluss TX ist
- welches der Empfangsanschluss RX ist
- und auf welchen Spannungspegeln die Signale arbeiten

Hast Du überhaupt ein Oszilloskop?

Oder eine zuverlässige Quelle, wo Du Pinbelegung und Spannungspegel der Schnittstelle nachlesen kannst?

Wenn Du das herausbekommen hast, dann hast Du die notwendigen Infos, wie Du die Schnittstellen hardwaremäßig zusammenschalten, und wenn die Geräte zusammengeschaltet sind kannst damit anfangen, Signale über die Leitung auszutauschen.

Mein Ziel ist es übrigens, mit dem Taschenrechner solche Dinge wie LEDs oder kleine Motoren schalten zu können.

Dass ein Arduino auch ein bisschen selbst was rechnen kann, und nicht für jede Rechnung ein Taschenrechner benötigt wird, ist Dir aber schon bekannt, oder?
Logged

Offline Offline
Faraday Member
**
Karma: 79
Posts: 2731
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Die Pegel stehen der PDF Datei. Ist 0/4,2-5V. Was mich da aber total abschreckt ist das Kommunikations-Protokoll O_o Theoretisch ist es aber sicherlich möglich
« Last Edit: June 21, 2013, 02:34:10 pm by Serenifly » Logged

Germany
Offline Offline
Faraday Member
**
Karma: 49
Posts: 2739
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Was mich da aber total abschreckt ist das Kommunikations-Protokoll
Lasko will ja nicht USB, sondern einfachste serielle Kommunikation: open, readbyte, writebyte.

Mir ist eher nicht klar geworden,
  1. wie man für den casio eigene Programme auf der Basis dieser API ( Chapter 5 ) schreibt und aktiviert.
  2. wie man in solchen eigenen Programmen (Add Ins) das User-Interface realisiert ( Tasten / Display ). Bis auf ein bisschen Cursor-Steuerung haab ich nichts gesehen oder verstanden.

 
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Also erstmal danke für die schnellen Antworten! Hier hab ich nen Link, der eventuell hilfreich sein könnte:
http://casiopeia.net/forum/viewtopic.php?f=22&t=1490

Edit:
Den link hab ich auch noch gefunden:
http://www.casiopeia.net/forum/viewtopic.php?f=11&t=1557

Die Programme zum senden und empfangen würde ich nicht mit add-ins,
Sondern mit casio basic programmen realisieren.
« Last Edit: June 21, 2013, 05:01:42 pm by Lasko » Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Also ich hab hier nochmal alles zusammengestellt, was ich über die 3-Pin-Schnittstelle des Taschenrechners weiß:

- Übertragungsrate: 9600 Bit/s oder 38400 Bit/s

- asynchrone Datenübertragung

- "EIA232/RS232-like interface, with the voltage level +4.2V used for logical 1, and 0V (GND) for logical 0"

- Baudrate 9600 bps

- keine "Parität"

- Byte-Größe: 8 Bits

- Stop-bits: FROM Casio: 2 bits TO Casio: 1 bit

Diese Tabelle hab ich auch noch gefunden (zu den Datenpaketen):
Size    Field name        Description Values
1 b     Type (T)           The basic purpose of the packet 0x00 to 0x1F
2 b     Subtype (ST)     The speciVc function of the packet “00” to “57”
1 b     Extended (EX)   Decides if DS and D Velds follow ’0’ - no, ’1’ - yes
(4 b)   Data size (DS)   Size of D Veld “0000” to “FFFF”
(n b)   Data (D)          Additional data related to packet function
2 b     Checksum (CS)  Checksum for integrity check “00” to “FF”

Ist es vielleichteinfacher, wenn man den USB-Port als Schnittstelle zum Arduino benutzen würde?
« Last Edit: June 23, 2013, 05:34:32 am by Lasko » Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bitte helft mir, ich hab noch das hier gefunden! :

http://www.nexusresearchgroup.com/downloads/Casio-Picaxe-manual.pdf
« Last Edit: September 02, 2013, 09:13:26 am by Lasko » Logged

Germany
Offline Offline
Faraday Member
**
Karma: 49
Posts: 2739
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
EIA232/RS232-like interface, with the voltage level +4.2V used for logical 1, and 0V (GND) for logical 0"
- Baudrate 9600 bps
- keine "Parität"
- Byte-Größe: 8 Bits
- Stop-bits: FROM Casio: 2 bits TO Casio: 1 bit

Das war doch schon klar, passt doch so wie es ist, ( 4.2/5.0 = 1 / 0 = 0 ) ist auch was der Arduino unter Seriell versteht.

Dein link zeigt, in Casio Basic gibt es

Send(A) und
Receive(B)

und nach deinem letzten Post im Juni war doch alles klar, oder ?

Die drei Drähte GND, RX, TX kannst du direkt an den Arduino anschliessen. Wenn du dein Casio-Crossover-Kabel nicht zerschneiden willst, ein passender Stecker  ( 2.5mm Stereo ) mit den 3 Leitungen hängt an jedem Stero - Ohrstöpsel, oder du bersorgst dir eine passende Buchse.
Quote
Ist es vielleichteinfacher, wenn man den USB-Port als Schnittstelle zum Arduino benutzen würde?

? Versteh ich evtl. nicht ?
Sicher sollte Serial ( via USB ) zum PC als Test- und Debug-Schnittstelle verwendet werden, beim Uno nimmst du eben SoftSerial auf zwei anderen Pins dazu, um den Arduino mit deinem Casio zu verbinden.

Logged

Germany
Offline Offline
Edison Member
*
Karma: 44
Posts: 2261
Arduino rocks
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Wenn du dein Casio-Crossover-Kabel nicht zerschneiden willst, ein passender Stecker  ( 2.5mm Stereo ) mit den 3 Leitungen hängt an jedem Stero - Ohrstöpsel, oder du bersorgst dir eine passende Buchse.
Die Standard-Ohrhörer bzw. Kopfhörer haben eher 3,5mm-Klinkenbuchsen. 2,5mm ist seltener, findet man aber auch im gut sortierten Elektronik-Fachhandel. Ja, selbst bei Conrad: http://www.conrad.de/ce/de/product/710266 smiley-wink Ansonsten bei den üblichen Verdächtigen: Reichelt, Segor usw.
Logged

Mein Arduino-Blog: http://www.sth77.de/ - letzte Einträge: Teensy 3.0 - Teensyduino unter Window 7 - Teensyduino unter Windows 8

Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Also ich schliess dann den Klinkenstecker an die RX/TX- pins des arduino an... Theoretisch müsste ich bei einem Sendevorgang vom Taschenrechner aus dann etwas empfangen, wenn ich richtig verstanden habe: "0x05" ("check")....
um die verbindung aufrechtzuerhalten müsste der arduino dann mit "0x06" ("ack") antworten...
Logged

Alfeld (Leine) / Germany
Offline Offline
Full Member
***
Karma: 5
Posts: 189
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ein sehr interessantes Projekt smiley
Ich habe vor 3 Jahren (noch auf dem Gymnasium) mal angefangen, so etwas zu schreiben, es ist mir dort aber leider noch nicht gelungen.

Ich habe diesen Calc. noch und werde mich heute damit definitiv nochmal befassen, diese neuen Posts und PDFs sehen sehr interessant aus smiley

Logged

Germany S-H
Offline Offline
Edison Member
*
Karma: 117
Posts: 2445
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Also ich schliess dann den Klinkenstecker an die RX/TX- pins des arduino an...

Nein, das reicht nicht, denn Du mußt auch GND anschließen.

Wahrscheinlich ist es ein Stereo-Klinkenstecker, und der hat drei Kontaktflächen für GND, RX, TX.

GND wird höchstwahrscheinlich derselbe Kontakt sein wie auch bei der Belegung als Audio-Stecker:
http://commons.wikimedia.org/wiki/File:3mm5_jack_3_norm.svg
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ich weiß das man auch gnd anschleißen muss, war nur zu faul es auch noch zu schreiben smiley-wink
Logged

Germany
Offline Offline
Faraday Member
**
Karma: 49
Posts: 2739
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Vielleicht nicht Pin 0 und 1 = Hardware Serial ( die einzige beim UNO) ,
damit man leicht im Serial Monitor dokumentieren kann was passiert,
sondern eine SoftSerial Schnittstelle auf zwei beliebigen anderen Pins einrichten.
( Oder beim Mega eine der anderen HardwareSerial Schnittstellen benutzen)
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 7
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Es war leider ohne Erfolg... smiley-cry
Ich hab die SoftwareSerial Library mit dem Standardcode benutzt. Dann müssten mir ja eigentlich vom Taschenrechner gesendete Daten auf dem Serial Monitor angezeigt werden, es passiert aber rein gar nix.
Logged

Pages: [1]   Go Up
Jump to: