Starten einer .exe Datei (Anwendung) vom Arduino

Hey,

ich habe schon viel im Internet gewühlt. Aber eine Lösung habe ich noch nicht gefunden. Ich möchte ein .exe File (Anwendung) über den Arduino starten. Ist das irgendwie möglich?

Vielen Dank im Voraus

Chistoph

Ein GUI oder Konsolen Programm auf dem PC schreiben (z.B. mit .NET), mit dem auf ein serielles Kommando wartet. Über das kann man dann ein Programm starten.

Was ist das ungefähr für ein Umfang für einen blutigen Anfänger? Machbar oder würdest du eher davon abraten?

Ich würde es in Schritte aufteilen.

  1. Du fängst erste Schritte in c# in VisualStudio an.
  2. Arduino merkt was und sendet was an den PC ( SerialMonitor )
  3. Du machst dich an die Serielle Schnittstelle in VisualStudio
  4. Du kriegst raus, wie du in deinem Programm eine exe startest.

Jeden Schritt kannst du auch unabhängig von den anderen machen (nur 1 kommt vor 3 oder 4, klar)
Schon nach Schritt 1 oder 2 bist du kein blutiger Anfänger mehr und kannst selbst abschätzen, ob du nicht lieber was anderes machen möchtest.

Kommt drauf an. Das komplizierteste ist die serielle Übertragung, aber da gibt es aber für Konsolenanwendungen halbwegs fertigen fertigen Code.

Nimm erst mal das:

Das sollte schon mal laufen und die Daten wie sie kommen ausgeben.

Statt ReadExisting() würde sich aber besser ReadLine() anbieten:

Das liest dann immer alles ein bis ein CR/LF kommt. Wenn man also immer alles mit Serial.println() sendet, kann man so sicher sein, dass immer eine Zeile komplett gelesen wird.

Das kann man dann so anpassen, dass man hier Strings vergleicht.

Ein Problem könnte es sein den Com-Port zu setzten wenn er sich ändert. Das könnte man über einen Kommandozeilen Parameter beim Programm-Start übergeben wenn nötig:

Das Programm dann zu starten geht ganz einfach mit der Process Klasse:

Ist zwar schon 2 wochen alt der thread, aber falls es noch wen interresiert würde ich eher Delphi empfehlen statt visual studio.

Für mich persönlich ist delphi einfacher zu handhaben als VS.

einfach nen project starten, ne TIAComPort komponente und nen edit field draufklatschen und ein kleines bisschen code und bob is your uncle.

in der comport komponente den gewünschten comport einstellen und im edit den pfad zur exe.
geht auch ohne edit field aber damit kann mann den pfad jederzeit ändern onhe das programm neu zu kompilieren.
im code ne schleife die auf nen bestimmten string warten und dann mit shellexec() die exe starten.

Hab son prog schonmal für mich selbst gemacht jedoch mit ner auto erkennung des comports.
das prog macht ne liste der verfügbaren comports und öffnet die nacheinander, sended ein "klopf klop" und wartet das der arduino mit nem "herein" antwortet und verwendet dann diesen port.

falls noch interesse besteht könnt ich dir son prog mal eben zusammen schustern.

hi,

so:

findest Du den com-port raus. das läßt sich natürlich in jeder beliebigen sprache schreiben.

gruß stefan

Das zeigt dir lediglich alle Com Ports an. Die kann man dann in eine ListBox eintragen oder ein MenuItem damit erstellen.

Man aber in C# relativ einfach den Com Port automatisch finden:

Eine vereinfachte Variante davon:

using System.Management;

....


var instances = new ManagementClass("Win32_SerialPort").GetInstances();

foreach (var instance in instances)
{
   string fullname = instance["name"].ToString();
   string port = instance["DeviceID"].ToString();
}

"fullname" wäre dann z.B. "Arduino Uno (COM3)" und "port" ist "COM3". Mann kann auch statt "name" "Description" nehmen, dann hat man nur "Arduino UNO". Da kann man dann darauf abfragen ob der String "Arduino" enthält.

Geht immerhin mit Standard Arduinos. Mit einem FTDI Chip leider nicht. Kann man aber auch kombinieren. Erst mal automatisch suchen und wenn er da nicht gefunden wird, kann man ihn immer noch per Hand setzen.

hi,

Das zeigt dir lediglich alle Com Ports an.

was bringt Dich auf diese idee? es zeigt Dir das an, was Du unter fullname hast.

gruß stefan

Ach, du meintest natürlich dein Ding in #1 im Anhang. Oops.

hi,

klar meinte ich das. außerdem bitte ich darum, etwas respektvoller von meinem ding zu sprechen...

gruß stefan

Hey AmyS3,

falls dein Angebot noch aktuell ist, würde ich es gern annehemen. Ich mühe mich derzeit in Visual Studio ab.. ohne rechten Erfolg.

Beste Grüße