Go Down

Topic: Einsteigerfrage zu ftd2xx.dll (Read 526 times) previous topic - next topic

Tueftel99


Hallo an das Forum,

ich bin Anfänger und habe natürlich einige Fragen zum neuen Arduino.

Vorab meine "Hardware":
1 x Arduino Mega 2560 R2
1 x Ethernet Shield mit SD-Karten Einschub
1 x Anfängerset mit div. elektronischen Bauteilen
(alles von W****ot")

Software:
Win 7 32bit
Arduino 1.0

Ich möchte mit dem Arduino 3 Lichtschranken und 6 Handtaster abfragen. Die entsprechenden Impulse lese ich zur Zeit über die Digitalports 31 - 39 in der Loop-Schleife aus. Den genauen Zeitpunkt erfasse ich über millis(). Dieser wird dann über den seriellen-Port an den PC übertragen. Tastennummer und Zeitpunkt werden gleichzeitig auf der SD-Card zur späteren Auswertung gespeichert. Siehe auch anhängenden, bereits lauffähigen, "Grob-Script". (Script ist leider etwas länger.) Habt bitte etwas Nachsicht, es ist mein erstes "C-Programm".

Leider dauert die Übertragung über den seriellen Port für "meine Verhältnisse" ziemlich lange. Ich habe gelesen, dass man den FTDI-Chip (ist der überhaupt in meinem Arduino verbaut?) auch über die ftd2xx.dll direkt ansteuern kann. Abfragebeispiele in VB6 finde ich auch auf den FTDI-Seiten. Leider kann ich nichts finden, wie ich den Arduino programmieren muss. Wird der ftd2xx.dll Treiber eigentlich mit der Arduino-IDE Installation mit installiert?

Besonders würde mich interessen, ob die direkte Ansteuerung wirklich schneller ist. Weiterhin möchte bei meinem Programmstart feststellen können, ob ein Arduino bereits angeschlossen ist. Eine Abfrage aller Comports am Rechner möchte ich eigentlich vermeiden.

Falls jemand eine bessere Lösungsmöglichkeit für das Projekt sieht oder wie die Daten schneller an den Rechner zu übertragen sind, bin ich für jeden Tipp und Hinweis dankbar. Auch für Hinweise über Fehler oder Verbesserungsmöglichkeiten in meinem Script würde ich mich freuen. Sicher werdet Ihr einige "Anfängerfehler" finden. Nur zu ....

Vorab vielen Dank für Eure Antworten und Hinweise.


uwefed

#1
Feb 14, 2012, 07:25 pm Last Edit: Feb 14, 2012, 07:30 pm by uwefed Reason: 1
Der Arduino Mega 2560 hat keinen FTDI-Chip, das Interface wird durch einen programmierten ATmega8U2 (beim R3 einen ATmega16U2) realisiert.
Du kannst die Übertragungsgeschwindgkeit noch verdoppeln:
Serial.begin(115200);
Du kannst die SD-Karte in ein Kartenlesegerät stecken und die Daten so schneller übertragen.

Grüße Uwe

Udo Klein

Kannst Du "ziemlich lange" in Zahlen ausdrücken?
Check out my experiments http://blog.blinkenlight.net

Tueftel99


Vielen Dank für Eure schnellen Rückmails,

kein FDTI-Chip -> keine Umgewöhnung gegenüber Serial ;-)

Serial.begin(115200) hatte ich auch schon ausprobiert.  Leider hatte ich hiermit noch einige Protokollfehler. Daran muss ich im Empfangs- und Sendeprotokoll wohl noch arbeiten.

Die SD-Card dient eigentlich  nur zur Sicherung bei einem Stromausfall des Rechners. Solange der Arduino läuft (evtl. über Batterie), werden die eingehenden Daten gesichert. In diesem "Notfall" sollen dann später die Daten über Netzwerk oder Serial ausgelesen werden können. Hierzu muss ich mich noch mit der "Umschaltung" zwischen SD-Card und Ethernet-Shield beschäftigen.

Ich habe zur Zeit Übermittlungszeiten zwischen 10 - 20 Millisekunden und die Hoffnung diese evtl. noch verkürzen zu können. Mein Testaufbau mit den "kleinen Spielzeugtastern" ist wahrscheinlich auch noch nicht optimal.

Gibt es denn evtl. eine Lösung für das "Vorhandensein" des Arduino. Kann man evtl. in der Registry das "An- und Ausstecken" des Arduino prüfen?


Go Up