Hallo, ich programmiere schon seid einiger Zeit (Atmel) Mikrocontroller, aber so langsam stört es mich immer nur ein kleines LCD, LEDs und Taster zur Steuerung zu haben... Daher habe ich mich entschlossen eine weitere Programmiersprache zu lernen, um Programme am PC zu schreiben, um ein frei gestaltbares und optisch hochwertiges Interface für meine Schaltungen zu schaffen. Allerdings ist jetzt die Frage welche Sprache sich dazu gut eignet und wie die Kommunikation stattfinden soll. Als Hardwareschnittstelle fände ich USB oder BlueTooth gut, da nahezu jeder PC diese Schnittstellen hat. TCP/IP könnte ich mit auch vorstellen, aber das wird wahrscheinlich zu hohe Datenraten für nen Atmel AVR mit seinen 16 MHz haben... Viel wichtiger ist aber die Entwicklungsumgebung, die eine derartige Kommunikation ermöglicht. Es fällt mir nicht schwer eine neue Programmiersprache zu lernen, aber bevor ich mich für eine entscheide würde ich sehr gerne Euren Rat hören. Habt Ihr schon Erfahrung mit derartiger Programmierung und könnt eine Sprache empfehlen? Um es gleich vorweg zu sagen: Ich möchte keine Webserver-Applikation, da die Programmoberfläche absolut frei gestaltbar ist und nicht auf die HTML-Syntax eingeschränkt ist (also keine Links und Seitenladezeiten ect.). Mir schweben da Flash, VisualC++ oder ähnliches vor. Ich möchte so etwas zwar nicht bauen, aber ich bringe es einfach mal als kleines Beispiel, was ich in etwa machen möchte: Eine kleine Schaltung steht bei mir im Garten - sie ist mit einem Atmel AVR, einem Temperatursensor und einem geeigneten Transceiver ausgestattet. Sie misst periodisch die Temperatur und sendet sie via BlueTooth an den PC. (Die Box kann auch auf der Fensterbank stehen und per USB Daten angebunden sein). Am PC habe ich dann ein Programm, dass die Daten loggt und mir schöne Verläufe zeichnet. Zudem kann ich dann über den PC Parameter (z.B. die Messabstände) ändern. Ok ok, das Beispiel ist jetzt nicht grad das Pralleste, aber die Möglichkeiten die sich bieten sind nahezu endlos. Ich freue mich auf eure Ratschläge - bisher wurde mir hier immer super geholfen ;-) Gruß, Sefi ____________________ http://www.Dark-Sun.de
"Einfach", vollständig, und kostenlos ist Java. Das "look and feel" der Programme ist halt nicht 100% Windows. 100% Windows gibts mit Microsoft-Produkten (Visual C++, C#, Basic, was auch immer), ebenso mit Delphi. Das ist dann Geschmackssache, und natürlich die des Geldbeutels. Visual C# gibts komplett kostenlos, C++ auch, nur leider ohne MFC. Die Programmiersprache ist dabei übrigends fast nebensächlich, der Hauptaufwand liegt in der Einarbeitung in das Windows-API. Kommunikation über was anderes als Ethernet bedarf der passenden Treiber und Entwicklungswerkzeuge. Oliver
Oliver wrote: > Die Programmiersprache ist dabei übrigends fast nebensächlich, der > Hauptaufwand liegt in der Einarbeitung in das Windows-API. Okay, das ist doch schonmal eine hilfreiche Aussage. Dann kann ich mich in Richtung C (welchesauchimmer) weiterorientieren, da ich da den geringsten Umlernaufwand habe. Es wäre interessant zu wissen, ob hier wer im Forum auf diese Art und Weise programmiert (also Programmgesteuerte PC/µC Kommunikation), um ein paar Tipps für den Einstieg zu ergattern.
Naja, ganz so nebensächlich ist die Wahl der Programmiersprache dann doch nicht. Etwas objektorientiertes sollte es schon sein für GUIs. Wenn du nur in der Windows-Welt bleiben willst ist zur Zeit C# sicherlich der beste Tipp um schnell und komfortabel Ergebnisse zu erzielen. Die nötige Entwicklungsumgebung (Visual Studio 2005 Express) kannst du dir für lau bei MS runterladen. Wenn du auch für Linux programmierst solltest du dir mal Qt oder wxWidgets anschauen. Da ist der Einstieg allerdings nicht ganz so komfortabel, weil man sich da die nötigen Werkzeuge erst noch selbst zusammensuchen muss und die Umgebung dann trotzdem nicht so schön integriert ist. Beide lassen sich über mehrere Sprachen anwenden, selbst Scriptsprachen wie Python sind möglich. Der Fokus liegt allerdings klar bei C++.
Als Betriebssystem reicht mir Windows alle mal hin. Genaugenommen hab ich noch nie was mit Linux zu tun gehabt und das wird sich wohl auch in nächster Zeit nicht ändern ;-) Wenn die Entwicklungsumgebung open-source oder zumindest gratis ist, ist das natürlich ein dicker Bonus. Mal angenommen ich würde in C# programmieren, eine Schaltung mit USB-Controller haben und einen open-source USB-Treiber installieren - gäbe es dann noch weitere Punkte zu berücksichtigen? Oder hätte ich dann prinzipiell alles um im C#-Programm die Schaltung anzusprechen? Ok, da wird sicher noch einiges an Programmierung drinstecken, aber ich meine jetzt nur grob von Prinzip her. Die Windows API ist mit noch ein Mysterium - warum lassen die mich auch nicht einfach direkt an die USB-Schnittstelle ran? ;-) Wenn man sich erstmal an die schön klare Welt der Mikrocontroller gewöhnt hat kommt einem Windows zu unglaublich unübersichtlich vor - ein Wunder dass da überhaupt Daten rauskommen g
André Wippich wrote: > Mal angenommen ich würde in C# programmieren, eine Schaltung mit > USB-Controller haben und einen open-source USB-Treiber installieren - > gäbe es dann noch weitere Punkte zu berücksichtigen? Ich würde USB mit einem FT232 machen. Vom Chiphersteller holst du dir den Windows Treiber dazu und dann präsentiert sich die USB Strecke zum µC wie eine ganz normale serielle Schnittstelle für dein Programm. > Oder hätte ich dann > prinzipiell alles um im C#-Programm die Schaltung anzusprechen? Ja. Das reicht dann schon. Serielle auf und Kommandos zum µC schicken. > Die Windows API ist mit noch ein Mysterium - warum lassen die mich auch > nicht einfach direkt an die USB-Schnittstelle ran? ;-) Das musst du mit obiger Lösung auch gar nicht. Für dich als Programmierer existiert nur die COM Schnittstelle. Der Treiber setzt das dann nach USB um Für C# würde ich dir gleich mal empfehlen dir im nächsten Buchladen ein Einsteigerbuch zu besorgen. Es gibt viel zu lernen und ein Buch bringt dir das notwendige Wissen in gordneter Weise systematisch bei. Was man von vielen Tutorien nicht sagen kann.
Cool, dann werde ich das in der Art machen. Das klingt ja echt gar nicht so wild. Natürlich fange ich mit gaaanz kleinen Schritten an und wenn ich irgendwann eine LED blinken lassen kann bin ich schon überglücklich ^_^ Werde dann demnächst mal Amazon nach geeigneter Lektüre durchstöbern. Hmm, ich sehe grad, dass ich schon drei C# Bücher im Regal habe - lol. Die muss ich letztes Jahr mal bei Terrashop bestellt haben g Mal schauen ob die was taugen...
Bei MS gibts auch Video-Tutorials, die sind ziemlich gut.
Ich würd Lazarus empfehlen das ist ein freier Delphi Clon mit dem man auch Programme für MacOS und Linux erstellen kann. Besser gesagt die erstellten Programme sind solang man nicht irgend eine Plattformunabhängige Spielerei benutzt sogar meisst ohne Änderungen auf den jewails anderen Systemen lauffähig. Pascal ist zudem eine sehr klare und übersichtliche Sprache. Die IDE ist wie Delphi ein RAD Tool man kann also Oberflächen schön zusammenklicken. Für die serielle Schnittstelle gibts mehrere Plattormunabhängige Klassen so das man sich dort auch nicht mit den Betriebsysteminternas herumplagen muss. Bei USB nehm ich libusb das ist ebenfalls Plattformunabhängig gutes Beispiel ist mein AVR-ISP Tool das über USB mit meinen Programmern kommunizieren kann. Wenn du da mal reinschnuppern willst der komplette Quellcode liegt mit auf meiner Seite www.ullihome.de
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.