PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Programmiersprache



fw-thomas
12.09.2013, 13:44
Hallo zusammen,
für meine Modelleisenbahn habe ich mir von ELV das I²C Paket besorgt.
Sprich das USB-I²C-Interface USB-I2C sowie die LED-I2C-Steuertreiber, 16 Kanäle, Komplettbausatz.

Ein Bekannter hat mir Versprochen die Programmierung zu machen, so das ich meine Modellhäuser aber auch die Weichen ansteuern kann.
Für die Weichen mußte ich mir eine zusatzPlatine basteln.

Jetzt hat sich leider mein Bekannter verkrümmelt und ist nicht erreichbar.
Er sprach was davon mit C++ eine Datenbanl zu machen, ist das machbar?

Da ich die Sprache C++, wenn es damit machbar sei, einfach zu erlernen?

mfg
thomas

Neutro
12.09.2013, 14:51
Nun ich deke mal das es schwierig ist so einfach so sagen das man diese oder jene sprache einfacher erlernen kann als die andere. Das empfindet bestimmt jeder anders. Wenn du das per Controller steuern willst kommt ja eigentlich nur C, Bascom, oder ASM in Frage, vorausgesetzt man nimmt einen AVR. C++ geht meines Wissens nur auf dem PC. Guck dir doch mal die Tutorials zu den genannten Programmiersprachen im wiki an und entscheide dann was du machen willst. Aber eines vorweg, Programmieren lernt man nicht in zehn Minuten und auch nicht in einer stunde. Da muss man sich schon reinarbeiten egal welche Sprache man nimmt. Auf jeden Fall gibt es hier Forum viele Leute die dich bei Fragen unterstützen.

Mfg
Neutro, der alles in Bascom programmiert :-)

fw-thomas
12.09.2013, 15:04
Halllo Neutro,
es soll schon alles über den PC laufen.

Das ist mir schon klar, das man jede Sprache Zeit und auch viel Hilfe von ausserhalb dafür braucht.

mfg
thomas

shedepe
12.09.2013, 15:57
Nur auf dem PC das zu umzusetzen dürfte schwieriger und / oder wesentlich teurer sein, als wenn man sich in die Programmierung und den Aufbau von Mikrocontrollerschaltungen einarbeitet

fw-thomas
12.09.2013, 16:32
Vielleicht habe ich mich falsch ausgedrückt, der PC soll die Befehle an die SteuerPlatinen aussenden.

mfg

Wsk8
12.09.2013, 19:03
Also ein Programmierer wird man nicht übernacht. Schon gar keiner in C++; Außerdem hört sich das so an, als bräuchtest du auch ne GUI dazu, wodurch es gleich noch viel "einfacher" wird.

mfg

fw-thomas
12.09.2013, 21:31
Nabend, denke das ich wie mit einer neuen Fremdsprache, ehe man die Perfekt kann, dauert es auch seine Zeit.
Daher setzte ich mich damit auch nicht unter Druck.
Wenn mit GUI eine GrafikOberfläche gemeint ist, ja wäre nicht überl. Damit könnte ich die Gleisstrecke und die Weichen abbilden und anzeigen welche Weiche wie geschaltet ist.


mfg

schorsch_76
13.09.2013, 10:35
C++ geht auch auf dem AVR. Was nicht geht sind viele Container, welche dynamisch alozieren. Es lässt sich aber auch der Allocator selbst schreiben. Bsp. inplace, dann könnten (noch nicht selbst getestet) auch Container wie std::vector<> gehen. Siehe dazu
http://en.cppreference.com/w/cpp/container/vector
http://en.cppreference.com/w/cpp/memory/allocator
Damit habe ich bsp. schon STL Container in shared_memory untergebracht welche von mehreren Prozessen genutzt wurden.

Vorteilhaft sind bsp. die Klassen, template Metaprogrammierung und andere Dinge welche C++ mitbringt. Meinen RC5 Dekoder habe ich in C++ auf dem AVR geschrieben. Er nutzt Klassen und Bitfelder.

Zusammenfassen kann man sagen, dass die meisten Sachen aus der STL nicht gehen ohne Custom allocator. Reine Kompilergeschichten gehen sicher.

Gruß
Georg

Wsk8
13.09.2013, 16:52
Um das nochmal zusammenzufassen, er will nicht einen AVR etc programmieren, sondern ein PC-Programm schreiben, dass eine USB-Schnittstelle anspricht, welche die Kommandos über I2C weitergibt!

mfg

sast
13.09.2013, 17:15
Die Frage ist, wie sich der USB-I2C Adapter im Windowssystem darstellt. Oft wird bei einfachen Baugruppen das USB als UART Brücke verwendet und auf dem Rechner ist es eine Com(Serialport)-Schnittstelle.

Microsoft bietet kostenlos die Expressvarianten der Entwicklungsumgebungen verschiedener Programmiersprachen. Es muss nicht unbedingt C++ sein. Da gibts auch noch C# und VB.
Für C# hat z.B. shedepe was ins Forum geschrieben. Das müsste man nur anpassen. Vorausgesetzt meine Vermutung mit dem USB zu I2C Adapter stimmt.

sast

fw-thomas
13.09.2013, 17:32
der USB Adapter bekommt einen eigenen Com Port, meine Port 12 zugewiesen ...

http://www.elv-downloads.de/Assets/Produkte/8/841/84123/Downloads/84123_usb_i2c_handbuch_v1_7.pdf


mfg

oberallgeier
13.09.2013, 17:35
Die Frage ist, wie sich der USB-I2C Adapter im Windowssystem darstellt ...Ich habe dieses US B-I²C-Interface (Artikel-Nr.: 68-09 22 55) von ELV.

......http://www.elv-downloads.de/bilder/artikel/normalneu/84123_1.jpg

Das lässt sich (WinXPpro) simpel vom HTherm ansprechen durch Senden bestimmter Befehle, hier mal ein Beispiel aus meinen Befehlsnotizen:


- - - - - - - - - - - - - - - - - - - - - - - - - - - -
Adressiere Device auf Adresse 84hex = 132
s 84 p
Adressiere Device auf Adresse 84hex = 132, Byte 100 (=64hex)
s 84 64 p
================================================== =====

- - - - - - - - - - - - - - - - - - - - - - - - - - - -
Adressiere Device auf Adresse 84hex, byte 100 und lies 10hex Bytes zurück
s 84 p
w 64 01 01 90 01 00 00 00 00 00 01 p s8460p r10p
================================================== =====

Für eine praktikable Anwendung als Steuerung natürlich SEHR hölzern, aber das müsste eben ein vorgeschaltetes (Windows-) Programm erledigen. Das ELV-Teilchen hat an sich ne hübsch einfache Syntax - und funktioniert bei mir völlig problemlos.

Andre_S
13.09.2013, 18:01
Hallo,

dies kann ich ebenfalls bestätigen!
Ich habe das I²C-USB Interface bei mir am Bot und dort hängen aktuell 3 Ultraschall-Module SRF08 und das Kompass-Modul CMPS10 dran.
Funktioniert auch periodisch mit sehr kurzen Abfragezyklen bisher völlig problemlos. Aktuell bei mir verwendet unter Windows7 und C#.
Sollte aber, da es über einen virtuellen Comport-Treiber angebunden ist, welcher für verschiedenste BS angeboten wird, auch anderweitig problemlos funktionieren.


Gruß André

fw-thomas
13.09.2013, 22:23
Hallo,
will ja im grundegenommen nix großartiges damit machen, halt nur die Weichen ansteuern,ggf Strecken dafür programmieren und meine gesamten LED`s in Häusern, Hallen und Strassen damit aktiv steuern.

Und daher die Frage halt, welche Programmiersprache ich dafür verwenden kann..


gruß thomas

Geistesblitz
13.09.2013, 22:53
Also ich würde da auch zu einer der Sprachen raten, wo man im entsprechenden Editor schon fertige Fenster hat, in denen man sich schon das wichtigste zusammenklicken kann. Ich würde wohl Visual Basic nehmen, da ich darin schon Erfahrung hab, aber wahrscheinlich geht C#, Java, Python oder Delphi ebenso gut (und sicher noch einige andere). Du wirst hier wohl keine wirklich klare Antwort bekommen, informier dich lieber zu den genannten Sprachen und entscheide dann selbst. Manchmal muss man sich die Entscheidung auch gar nicht schwer machen, man nimmt halt einfach eine der Sprachen und guckt dann, wie man sein Problem damit lösen kann. Von den Sprachen, die ich bisher einigermaßen gelernt hab (sind eigentlich auch nicht viel) würde jedenfalls Visual Basic am ehesten passen. Kannst dir ja mal in ein Tutorial dazu einarbeiten, dann hast schonmal einen Überblick.

PsiQ
13.09.2013, 23:05
Ich rate jedem Anfänger zum Arduino (mein Favorit: Leonardo) mit IDE und C kompatibler/ähnlicher Programmierung.
Fertige + einfache Umgebung, Tonnen von Beispielen und Foreninfos.
Und wer möchte kann dann auch tiefer in den Code einsteigen.
..
Und I²C kann das Ding auch, ist ja nur eine Art von Daten-Bus.

Neutro
14.09.2013, 16:28
Bei Galileo Bücher gibt es Bücher zu fast allen Programmiersprachen als openbook zum download, kostet nix und du kannst mal gucken was dir so zusagt. Entwicklungsumgebungen wie sharp develop gibt es auch für lau.

Mfg
Neutro