www.mikrocontroller.net

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


Autor: thecrazyone (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: Michael H. (michael_h45)
Datum:

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

Autor: Joachim K. (minifloat)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: André M. (pc-fan)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Oliver Ju. (skriptkiddy)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: thecrazyone (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: André M. (pc-fan)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: ameise (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: thecrazyone (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 :)

Autor: Andi ... (xaos)
Datum:

Bewertung
0 lesenswert
nicht 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 ;)

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.