Hallo,
ich habe ein Arduino und möchte gerne Konfigurationsdaten vom PC
(Windows) über den COM Port senden. Nach der Konfiguration sollen Daten
vom Arduino über diesen Port an den PC gesendet werden.
Kann mir jemand helfen wie ich hier starten muss um eine passende DLL zu
schreiben?
Da brauchst du keine DLL schreiben.
Mit welcher Programmiersprache programmierst du am PC? Dort siehst du
dir an, wie man da mit der seriellen Schnittstelle umgeht.
Der Rest ist dann Texte hin und her schicken. Wobei sich natürlich am PC
der ganze Rattenschwanz stellt, wie zb wo kommen die Werte her? Kommen
die aus einer Datei? Wie werden die dort gespeichert? Wie wählt ein
Benutzer aus? Kann ein Benutzer die Konfigurationsdaten interaktiv auf
dem PC verändern, ehe sie übertragen werden, etc. etc.
wenn du also fragst "wie fange ich an".
Du fängst damit an, eine Kommunikation zwischen Arduino und PC bzw.
umgekehrt aufzubauen, die über die serielle SChnittstelle läuft. Und
wenn du das so leidlich im Griff hast, denkst du dir ein Protokoll aus.
Eine DLL allein wird nicht reichen, es muss schon eine EXE, Java, Python
oder sowas sein. Ich selbst arbeite oft mit Visual Studio .NET.
Du scheibst: "eine passende DLL". Wozu soll die passen?
PS: Oder anders (wie Karl Heinz schrieb, der schneller war): Mit
welcher Programmiersprache programmierst du am PC?
PPS: Gehört das nicht eher in das Forum "PC-Programmierung"?
Torsten C. schrieb:> Du scheibst: "eine passende DLL". Wozu soll die passen?
Also meien Aufgabe ist es eine DLL in C zu programmieren, in der die
Konfigurationsdaten vom Benutzer eingegeben werden können und der PC
soll anschließend daten vom arduino empfangen können.
Das ist zunächst das was ich dazu sagen kann. Jedoch fehlt mir hier zur
Zeit der Starpunkt wie ich so etwas anstelle.
Ich dachte vllt gibt es da so etwas wie man da standardmäsig vorgeht.
Torsten C. schrieb:> Hört sich an wie eine DLL, die Du in Labview ansprechen willst.> Aber lass uns bitte nicht raten.>> Nochmal: Welches Programm soll die DLL nutzen?
Das ist natürlich eine wichtige Frage, die ich abklären werde. Ich werde
im laufe des Vormittags weitere Informationen zur Verfügung stellen
Die DLL soll mit in mehreren in der hochschule entwickelte programme
eingebunden werden können.
Hier soll zum beispiel festgelegt werden, das die Pins 10-20 o.ä. aktiv
sein sollen.
Des weiteren soll der Port über ein entsprechendes Kommando geöffnet und
geschlossen werden können und anschließend könnendaten vom arduino an
den pc gesendet werden.
Habe gerdae die information bekommen das diese programme die serielle
schnittstelle ansprechen können.
Dann muss es doch möglich sein das ganze über den FTDI treiber zu lösen
oder?
Tim schrieb:> Die DLL soll mit in mehreren in der hochschule entwickelte> programme eingebunden werden können.> Hier soll zum beispiel festgelegt werden, das die Pins 10-20 o.ä. aktiv> sein sollen. Des weiteren soll der Port über ein entsprechendes Kommando> geöffnet und geschlossen werden können und anschließend könnendaten vom> arduino an den pc gesendet werden.
Warum lässt man das immer Leute machen die gerade davon keine Ahnung
haben?
Ion schrieb:> Warum lässt man das immer Leute machen die gerade davon keine Ahnung> haben?
Weil sie vom Rest noch viel weniger Ahnung haben. Also gibt man ihnen
das als Semesterarbeit was man selbst an 1 oder 2 Nachmittagen fertig
haben könnte. Der Fachkräftemangel ist eben ein Problem.
Ion schrieb:> Warum lässt man das immer Leute machen die gerade davon keine Ahnung> haben?
Alle, die heute Ahnung haben, mussten das auch erst lernen, z.B. durch
so eine Semesterarbeit. Theorie geht links rein und rechts wieder raus.
Tim schrieb:> Dann muss es doch möglich sein das ganze über den FTDI treiber zu lösen> oder?
Genau! Alles andere wäre komplizierter und vermutlich unnötig
kompliziert.
Neben FTDI gibt es auch noch andere. Ohne einen Glaubenskrieg anzetteln
zu wollen, hier nur ein kurzer Hinweis, weil ich es gerade gelesen habe,
im Beitrag "WS2812B über USB-UART ansteuern"> FT232RL Datenstrom setzt bei 3MBaud sporadisch aus.
Andere Väter haben auch schöne Töchter.
>Andere Väter haben auch schöne Töchter.
für die DLL (oder was es dann irgendwann mal werde soll)
ist das doch vollkommen egal,
ein "echter" Arduino Uno z.b. wird immer einen FTDI haben
ein china clone eher eine CH340
aber, die Aufgabe ist "über den COM Port senden. "
also SCH.. egal was auf dem "Arduino" ist..
>Habe gerdae die information bekommen das diese programme die serielle>schnittstelle ansprechen können.
nett, aber was hat das mit deiner DLL zu tun??
Robert L. schrieb:>>Habe gerdae die information bekommen das diese programme die serielle>>schnittstelle ansprechen können.>> nett, aber was hat das mit deiner DLL zu tun??
Könnte vielleicht heißen, daß die entsprechenden Programme selbst schon
den seriellen Port aufmachen und daher für seine "library" eigene
read/write Befehle bereitstellen. Aber es bleibt nebulös.
Robert L. schrieb:> aber was hat das mit deiner DLL zu tun??
Tim braucht keine DLL mehr, weil FTDI, CH340, PL2302, CP2102 usw. schon
fertige DLLs mitbringen.
physiker schrieb:> Könnte vielleicht heißen, daß die entsprechenden Programme selbst schon> den seriellen Port aufmachen
Ja, hat er doch oben geschrieben.
Torsten C. schrieb:> Robert L. schrieb:>> aber was hat das mit deiner DLL zu tun??>> Tim braucht keine DLL mehr, weil FTDI, CH340, PL2302, CP2102 usw. schon> fertige DLLs mitbringen.
JUHU..
die Aufgabe:
>eine passende DLL zu schreiben?
wurde also gelöst, .... indem man einfach die von FTDI nimmt..
;-)
Robert L. schrieb:> die Aufgabe:>>eine passende DLL zu schreiben?
war das die Aufgabe oder nur sein Wunsch?
Ich würde ja fürs Geforderte:
Tim schrieb:> möchte gerne Konfigurationsdaten vom PC> (Windows) über den COM Port senden
keine DLL schreiben sondern ein Programm in lcc32, andere würden qbasic
oder batch wählen.
Es ist ja nicht so wahnsinnig schwer was auf die Com rauszujagen.
copy con: com1:
hterm
hyperterminal
also was wäre die genaue Aufgabe oder was wäre der Wunsch wirklich?
hat der Wunsch was mit der Aufgabe zu tun? oder ist der Wunsch nur aus
einer falsch verstandenen Aufgabe entstanden?
Die Frage kommt mir vor wie: "wie kann ich übers Wasser laufen?" dabei
ist das Ziel doch nur drüben anzukommen.
nicht von dir auf anderer Schließen
nur weil für DICH "über Wasser laufen" abwegig klingt....
>Die DLL soll mit in mehreren in der hochschule entwickelte programme>eingebunden werden können.
ist jetzt schon recht eindeutig..
>>Die DLL soll mit in mehreren in der hochschule entwickelte programme>>eingebunden werden können.
Dann erwarten diese Programme sicher eine bestimmte Schnittsrelle, oder?
Also Umsetzung von SerialPort nach Unbekannt.
Für SerialPort gibt es in jeder Sprache Unmengen Beispiele. Für das
Zweite ist die Kristallkugel zuständig.
Joachim B. schrieb:> Robert L. schrieb:>>>Die DLL soll mit in mehreren in der hochschule entwickelte programme>>>eingebunden werden können.>>>> ist jetzt schon recht eindeutig..>> OK mein Fehler, dann würde ich vermutlich die DLL auch mit lcc32> schreiben,
trotzdem.
Egal wie, würde ich das Thema DLL erst mal beiseite lassen und mit einem
normalen Programm anfangen, ein entsprechendes Protokoll für den
beabsichtigten Zweck zu entwickeln. Die dabei anfallenden Kernteile kann
man dann immer noch in eine DLL verpacken, aber erst mal ist eine DLL
bei der anstehenden Entwicklungsphase erst mal hinderlich.
Divide and conquer
Erst mal sich um die unumgängliche Kommunikation kümmern und dann erst
darum, wie man das verpackt. Hat man ein eigenständiges Programm erst
mal fertig, dann weiss man auch schon mehr, wie die funktionale
Schnittstelle der DLL aussehen könnte. Die Protokollentwicklung wird
sowieso ein paar Iterationen benötigen, bis man auf einem auch für
andere brauchbaren Level angelangt ist. Dann ist es immer noch früh
genug, sich um das Thema DLL zu kümmern.
Rufus Τ. F. schrieb:> Allerdings ist es ratsam, das Programm nicht mit irgendeiner GUI zu> versehen, sondern ein simples Kommandozeilenprogramm zu bauen.
Entweder das oder sehr diszipliniert zwischen GUI und funktionalem Kern
unterscheiden. Ich gestehe aber auch zu, dass gerade Anfänger diese
Trennung und das disziplinierte Einhalten derselben meist nur sehr
schwer schaffen. Von daher ist die Empfehlung eine gute.