Forum: Platinen USB Microcontroller Programmieren


von Dennis L. (dennis84do)


Lesenswert?

Hallo leute,

sry fals es schon einen ähnlichen Beitrag gibt, aber ich denke mein 
Vorhaben ist  etwas speziell.

ich habe vor einen USB Microcontroller zu kaufen und mit einigen 
Schaltern und 7 Segment Displays  zu versehen. Ist es möglich den 
Controller so zu Programmieren das ich damit  Tastatur Commandos 
immitieren kann.


Ich möchte damit bezwecken das Schalter und Displays Synchron mit dem 
Flugsimmulator von Microsoft  laufen, als Software Schnittstelle steht 
Fsuipc  zur Verfügung.

 Ich habe an folgenden Controller gedacht  ...  hier mal ein Link:

http://www.beboxx.com/code/arduino-duemilanove-usb-microcontroller-atmega168.html?currency=EUR&track=feedgCrU

Besste  Grüße

Dennis

von Jens (Gast)


Lesenswert?

Dennis Lange schrieb:
> Ist es möglich den
> Controller so zu Programmieren das ich damit  Tastatur Commandos
> immitieren kann.

Ja, das ist möglich. Dein Zauberwort heißt "HID-Device".

Dennis Lange schrieb:
> Ich habe an folgenden Controller gedacht  ...  hier mal ein Link:

> http://www.beboxx.com/code/arduino-duemilanove-usb...

Ob es damit funktioniert ist fraglich. Auf der Platine kann ich bei 
großer Vergrößerung einen FTDI-Chip erkennen. Das ist ein 
USB-Schnittstellenwandler der USB in ein serielles oder paralleles 
Interface umsetzt. Damit kannst du aber keine Tastaturkommandos 
imitieren.

Mein Tip: Schaue dir mal die µCs von Microchip an, z.B. den PIC 
18F14K50. Das ist ein kleiner µC mit ein paar I/Os und einem USB-Port 
drauf. Es gibt bei Microchip schon ein fertiges Framework für die 
USB-Schnittstelle, das spart dir ein Haufen Zeit und Mühe. Trotzdem ist 
die USB-Programmierung nicht ohne. Bist du Anfäger? Wenn ja, dann 
vergiss es...

von Dennis L. (dennis84do)


Lesenswert?

Jens schrieb:
> Wenn ja, dann
> vergiss es...

Jeder hat mal angefangen.

Ich schaue es mir mal an  ansonsten bleibt noch Acarze USB Interface

von Frank K. (fchk)


Lesenswert?

Dennis Lange schrieb:

> ich habe vor einen USB Microcontroller zu kaufen und mit einigen
> Schaltern und 7 Segment Displays  zu versehen. Ist es möglich den
> Controller so zu Programmieren das ich damit  Tastatur Commandos
> immitieren kann.

Du möchtest also ein USB Human Interface Device (HID) bauen. Das ist 
nicht ungewöhnlich und eigentlich kein Problem.

>  Ich habe an folgenden Controller gedacht  ...  hier mal ein Link:
>
> 
http://www.beboxx.com/code/arduino-duemilanove-usb-microcontroller-atmega168.html?currency=EUR&track=feedgCrU

Der ist absolut ungeeignet, weil die USB-Funktionalität nicht durch den 
Prozessor, sondern durch den FTDI USB-Seriell-Chip bereitgestellt wird, 
und der kann nur sein herstellerspezifisches USB-Protokoll, aber nicht 
das Standard USB HID-Protokoll.

Mein Tip: Den PIC24FJ64GB002-ISP gibts bei Reíchelt für 3.75€. Das ist 
ein 16 Bit Prozessor im DIL28, der Full-Speed USB-OTG hardwaremäßig 
eingebaut hat und daher im Gegensatz zu den immer wieder anzutreffenden 
reinen AVR Low-Speed Softwarelösungen 100% USB compliant ist. Das USB 
HID-Protokoll bekommst Du bei Microchip fix&fertig geliefert - es ist 
Bestandteil der Application Libraries. Den Rest solltest Du selber 
hinbekommen können.

fchk

von Jens (Gast)


Lesenswert?

Dennis Lange schrieb:
> Jeder hat mal angefangen.

Richtig, ich auch. Denoch habe ich nicht mit dem kompliziertesten 
angefangen sondern mich Schritt für Schritt gesteigert. Aber trotzdem 
viel Erfolg.

Dennis Lange schrieb:
> ansonsten bleibt noch Acarze USB Interface

Das dürfte für deine Anwendung die beste Lösung sein. Zumal es offenbar 
genau für deinen Anwendungszweck gemacht zu sein scheint.

von Dennis L. (dennis84do)


Lesenswert?

Jens schrieb:
> Das dürfte für deine Anwendung die beste Lösung sein. Zumal es offenbar
> genau für deinen Anwendungszweck gemacht zu sein scheint.

Jep das ist es wohl ,  ich dachte nur vl kann ich aus der Nummer 
irgendwie  günstiger raus kommen ,    es gibt so viele fertige   Boards 
für diesen Zweck aber  diese sind auch sch....  teuer,   Acarze ist da 
noch mit das  günstigste und da ich  mal absulut nichts vom 
Microcontroller  Programmieren verstehe   ....

von Potter (Gast)


Lesenswert?

Nur um etwas klarzustellen:

>Ist es möglich den Controller so zu Programmieren das ich damit  Tastatur 
>Commandos immitieren kann.
Das geht mit einem HID-Gerät.

>Ich möchte damit bezwecken das Schalter und Displays Synchron mit dem
>Flugsimmulator von Microsoft  laufen
Das geht nur bedingt. Infos von Deiner Schaltung kannst Du an den PC 
senden und - keine Ahnung - die Landeklappen einfahren.
Wenn aber Dein Flugzeug unter 100 km/h fällt, dann kann das Deine 
7-Segment-Anzeige nicht anzeigen.
Kommunikation nur von USB-Gerät nach PC, nicht andersrum.

Gruß Potter

von Frank K. (fchk)


Lesenswert?

Potter schrieb:

>>Ich möchte damit bezwecken das Schalter und Displays Synchron mit dem
>>Flugsimmulator von Microsoft  laufen
> Das geht nur bedingt. Infos von Deiner Schaltung kannst Du an den PC
> senden und - keine Ahnung - die Landeklappen einfahren.
> Wenn aber Dein Flugzeug unter 100 km/h fällt, dann kann das Deine
> 7-Segment-Anzeige nicht anzeigen.
> Kommunikation nur von USB-Gerät nach PC, nicht andersrum.

Auch das ist in den USB HID Usage Tables definiert. HID's können nicht 
nur Daten an den Rechner senden, sondern auch Daten vom Rechner 
empfangen. Beispiele wären die Keyboard LEDs oder die Motoren in Force 
Feedback Joysticks.

In Kapitel 18 des HID Usage Table Version 1.12 Dokumentes ist die Usage 
Page 0x14 für "Alphanumeric Displays" vorgesehen. Abschnitt 18.1.8.2 
definiert die Verwendung von 7-Segment Anzeigen.

USB kann es. Die Frage ist, ob die Applikation das kann, aber da gibts 
bestimmt irgendwelche Plugins und Addons, die das implementieren.

fchk

von Dennis L. (dennis84do)


Lesenswert?

Frank K. schrieb:
> USB kann es. Die Frage ist, ob die Applikation das kann, aber da gibts
> bestimmt irgendwelche Plugins und Addons, die das implementieren.

Das ist  die Frage,   es muss quasi vom Pc zurück zum USB 
Microcontroller alles zurück gesendet werden.

Aber es gibt halt schon sehr viele  Geräte   oder auch Boards zb wie 
erwähnt Acarze,  allerdings scheint da was nicht ok zu  sein da der Shop 
offline ist und auch  derzeit kein  richtiger Support da ist.

von Potter (Gast)


Lesenswert?

>Auch das ist in den USB HID Usage Tables definiert.
Schon klar, dass man auch zum Gerät Daten senden kann. Ich habe mich da 
auf das Synchronisieren mit dem Flugsimulator bezogen und ging davon 
aus, dass der Simulator keine Datenschnittstelle zur Verfügung stellt, 
mit der es ein leichtes wäre Simulator-spezifische Daten auszulesen. 
Denn die Daten braucht man schon, wenn man sie an das USB-Gerät senden 
will.

von Dennis L. (dennis84do)


Lesenswert?

Die Daten  womit der Flusi oder dieses speziellle  Ad on was ich 
ansteuern möchte   haben möchte habe ich  ... ( wassen deutsch am frühen 
morgen )
Es geht über Key  Commands  die  mit Fsuipc   Programmiert werden . . 
mir fehlt quasi nur eine möglichkeit  Den  MicroController   mit Fsuipc 
zu  verbinden . .  Ich denke das Geheimnis heist C++  Es errinert mich 
sehr an PHP  ..  naja wir werden sehen .  .

von Christoph B. (christophbudelmann) Benutzerseite


Lesenswert?

Das Acarze USB Interface kostet 49€ - ganz ehrlich, wenn du nicht 
sowieso in die Mikrocontroller-Programmierung einsteigen willst, dann 
nehme das. So viel günstiger ist das selber bauen auch nicht, wenn man 
ein entsprechendes Board und eventuell noch einen Programmer kauft.

Ansonsten wäre meine Empfehlung, wenn du es selber machen willst: 
AT90USBKey-Board und der LUFA-USB-Stack (mit fertigen Beispielen für 
HID, beispielsweise ist auf dem Board ein Joystick, dessen Eingaben 
direkt als Tastendrücke an den PC gesendet werden).

von Dennis L. (dennis84do)


Lesenswert?

Christoph Budelmann schrieb:
> Das Acarze USB Interface kostet 49€ -
>


Es ist halt die Frage   was besser ist  ...  Ich brauche halt ene ganze 
menge  von  Anschluss  möglichkeiten für Displays  und  Schalter  . .  7 
segment  Displays habe ich zusammen schon 20 stk . .   Schalter ebenfals 
um die 20 ...

von Electronics'nStuff (Gast)


Lesenswert?

Dennis Lange schrieb:
> 7 segment  Displays habe ich zusammen schon 20 stk . .

Nimm einfach ein kleines 2 x 16 Zeichen LCD Display.. gibt's bei Ebay ab 
2€, ist super einfach anzusteuern (gibt fertige Bibliotheken dafür) und 
nimmt dir gerade mal 6 Pins am Mikrocontroller!

Gruss

von Dennis L. (dennis84do)


Lesenswert?

http://www.opencockpits.com/catalog/mcp-737ng-v2-pi-110.html?image=0



So sind die Displays aufgeteilt ,  ich denke  sie müssten alle einzeln 
angesteuert werden.

von Electronics'nStuff (Gast)


Lesenswert?

Dennis Lange schrieb:
> So sind die Displays aufgeteilt ,  ich denke  sie müssten alle einzeln
> angesteuert werden.

Hm, für diese Art von Display kenne ich gerade keinen geeigneten 
Treiber.. vllt. BCD-7Segment & Multiplex.

Gruss

von Jürgen S. (jurs)


Lesenswert?

Dennis Lange schrieb:
> ich habe vor einen USB Microcontroller zu kaufen und mit einigen
> Schaltern und 7 Segment Displays  zu versehen. Ist es möglich den
> Controller so zu Programmieren das ich damit  Tastatur Commandos
> immitieren kann.

Ja.

Aber nicht mit dem alten 2009er Board, sondern mit dem hier:
http://arduino.cc/en/Main/ArduinoBoardLeonardo

Aus den Features:
> The Leonardo differs from all preceding boards in that the
> ATmega32u4 has built-in USB communication, eliminating the need
> for a secondary processor. This allows the Leonardo to appear
> to a connected computer as a mouse and keyboard

Ich kenne den Leonardo nur vom Hörensagen, ebenso wie ich die Features 
nur vom Hörensagen kenne, die die Arduino-Software (ab 1.0 oder höher) 
für dieses Board bereitstellen soll, als da wären diese drei Funktionen:

Keyboard.write(variable or constant);  // Writes the ASCII equivalent

Keyboard.print(variable or string);  // Prints either a variable value 
or string

Keyboard.println(variable or string); // Prints either a variable value 
or string with a line-feed

Siehe auch:
http://arduino.cc/en/Tutorial/KeyboardReprogram

Eine Maus als HID-Device wird von Arduino aber wohl noch nicht 
unterstützt.

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Ja der Arduino Leonardo kann USB-Devices. Reichelt hat den Leonardo seit 
kurzem im Programm, knapp 25€.
Es gibt dort auch noch den älteren AT90USBKEY für ca. 36€, der kann auch 
USB-OTG oder "reduced Host" (was immer das heißt), da dort der größere 
AT90USB1287 draufsitzt.
Die LUFA-Bibliothek kennt mittlerweile beide Boards:
http://www.fourwalledcubicle.com/LUFA.php

von Sabine W. (sabine_w)


Lesenswert?

Christoph Kessler (db1uq) schrieb:
> Es gibt dort auch noch den älteren AT90USBKEY für ca. 36€, der kann auch
> USB-OTG oder "reduced Host" (was immer das heißt), da dort der größere
> AT90USB1287 draufsitzt.

Für USB-OTG ginge auch das recht günstige STM32F4-Discovery-Board, keine 
Ahnung, wie aufwändig sowas dann zu programmieren wäre.

Sabine

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.