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?
:
Verschoben durch User
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.
:
Bearbeitet durch User
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"?
:
Bearbeitet durch User
Torsten C. schrieb: > PPS: Gehört das nicht eher in das Forum "PC-Programmierung"? Möglich. Wir werden sehen, wie sich das alles weiter entwickelt.
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.
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?
:
Bearbeitet durch User
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.
Das hier hört sich z.B. nach dem gwünschten an: http://playground.arduino.cc/Main/InterfacingWithSoftware https://github.com/Ardulink (wenn auch in java).
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..
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, http://www.cs.virginia.edu/~lcc-win32/ http://www.axelvogt.de/axalom/lcc-win32/Creating_a_DLL_for_Excel_or_Visual_Basic_with_lcc-win32.pdf müsste mich auch erst einlesen
>>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.
:
Bearbeitet durch User
Allerdings ist es ratsam, das Programm nicht mit irgendeiner GUI zu versehen, sondern ein simples Kommandozeilenprogramm zu bauen.
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.