Forum: Mikrocontroller und Digitale Elektronik AVR per USB Befehle geben, welche Programmiersprache?


von thecrazyone (Gast)


Lesenswert?

Hallo
ich bin gerade am überlegen, welches µController Projekt ich als 
nächstes anpacken soll und bin schließlich bei einer kompletten 
Zimmerbeleuchtung hängen geblieben:
Insgesamt habe ich etwa 80 RGB Gruppen, also 240 Kanäle, die ich 
ansteuern will. Daher hab ich mir gedacht, dass ich gleich 255 Kanäle 
mache und DMX zur Ansteuerung verwende. Dieser Teil ist bereits fertig 
geplant, eine Testansteuerung funktioniert schon (15Kanäle). Jetzt hab 
ich mir jedoch noch gedacht, es wäre doch schön, wenn ich die Werte 
nicht am DMX Sender einstellen müsste, sondern das über USB vom PC aus 
machen könnte :)
Für das Umwandeln der USB Signale habe ich an einen FT232 gedacht, da 
sollte es ja eigentlich keinerlei Probleme geben.
Dazu könnte ich jetzt notfalls ein fertiges DMX Programm verwenden, 
schöner finden würde ich es jedoch wenn ich mir das Programm selber 
schreibe, weil ich dann einfach mehr Möglichkeiten habe. Ich hab mich 
ein wenig umgesehen, aber anscheinend gibt es für JAVA (meine 
Hauptprogrammiersprache, ansonsten kann ich noch ein bischen C, eben für 
die µController) keine direkte Möglichkeit eine Zahl per auf einem 
bestimmten USB-Port auszugeben.
Mich würde jetzt interessieren, welche Sprachen ihr verwendet, um per 
USB Daten zu senden und vielleicht später sogar zu empfangen? Das Ganze 
soll unter Windows funktionieren und mit möglichst wenig 
Programmieraufwand erledigt werden. Also am besten wäre eine integrierte 
Funktion im Sinn von USBsend(1,245) um auf dem ersten Port die 245 
auszugeben, aber so einfach wirds wohl nicht werden ;) Alternativ wäre 
natürlich auch eine JAVA USB API was schönes, wenn mir da jemand was 
empfehlen kann?

von Michael H. (michael_h45)


Lesenswert?

du willst doch nicht über usb senden, sondern über serielle ports.

von Achim M. (minifloat)


Lesenswert?

http://obdev.at/products/vusb/projects.html
Schau mal ein paar Projekte da an^^

Wenn dein FT232 geht, warum nicht direkt TX mit RX des Atmegas 
verbinden, wie gewohnt mit sscanf() Zeichenketten auswerten etc?
mfg mf

von André M. (pc-fan)


Lesenswert?

Hi thecrazyone,

es gibt auch schon USB zu DMX512 Projekte von anderen, vielleicht kannst 
du dir da ja was abschauen:

http://www.ulrichradig.de/home/index.php/avr/rs232-dmx
http://www.dzionsko.de/elektronic/index.htm

Viel Spaß und Gruß
pc-fan

von Oliver J. (skriptkiddy)


Lesenswert?

thecrazyone schrieb:
> Für das Umwandeln der USB Signale habe ich an einen FT232 gedacht, da
> sollte es ja eigentlich keinerlei Probleme geben.

> Mich würde jetzt interessieren, welche Sprachen ihr verwendet, um per
> USB Daten zu senden und vielleicht später sogar zu empfangen?

Wenn du einen FT232 verwendest, dann brauchst du dich um die 
USB-Geschichte nicht kümmern. Das nimmt dir der FTDI-Treiber ab. Du hast 
dann einen virtuellen COM-Port und der lässt sich einfach benutzen.


Gruß Skriptkiddy

von thecrazyone (Gast)


Lesenswert?

Ah das ist schon mal ein sehr wertvoller Hinweis, dass der FT232 einen 
eigenen USB Treiber mitbringt :)
Beim COM Port sollte dann natürlich das schon deutlich einfacher 
gehen... Ist natürlich sehr praktisch... Wenn ich jetzt aber statt dem 
FT232 einen kleinen Attiny oder ähnliches verwenden würde müsste ich 
mich wohl um den Treiber usw selbst kümmern und damit hätte ich dann den 
kompletten USB Ärger?

von André M. (pc-fan)


Lesenswert?

Hi thecrazyone,

wenn du nur einen ATtiny (ohne FT232) nehmen würdest, dann wäre 
vielleicht (wie minifloat oben auch schon schrieb) folgendes etwas für 
dich:

http://obdev.at/products/vusb/index.html

Gruß
pc-fan

von ameise (Gast)


Lesenswert?

ne gibt da schon genügend leute die den stack, gerade für avr, 
implementiert haben. mittlerweile eine recht einfache sache. aber FTDI 
ist auch eine sehr elegante Lösung. Für die Host seite gibt es sogar C# 
wrapper-treiber!

wann welche methode besser ist, können andere dir sicher beantworten...

von thecrazyone (Gast)


Lesenswert?

Danke für die Antworten! Da hab ich auf jeden Fall genug Stoff zu lesen 
und weiss jetzt an was ich mich ca. orientieren muss... Hatte schon 
befürchtet, dass ich schlimmsten Falls alles selbst schreiben muss :)

von TestX .. (xaos)


Lesenswert?

für den FTDI chip gibt es direkt treiber inkl. dlls die du einfach in 
C/C++/C# oder mit Wrappern in Java verwenden kannst. die stellen dir 
dann methoden wie read() oder write() zur verfügung mit denen du einfach 
byteweise kommunizieren kannst - einfacher geht es kaum.

p.s. eine "zahl" ausgeben auf usb geht nicht so wie du dir das denkst ;)

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
Noch kein Account? Hier anmelden.