www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik USB Joystick auswerten


Autor: Pr0gm4n (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe vor, 2 USB-Joysticks mit einem Mikrocontroller auszuwerten und 
die Daten anschliessend mit RC-Funk(Modellbau) zu versenden.

Am anderen Ende soll ein weiterer Mikrocontroller dann die Empfangenen 
Daten auslesen und verwerten.

Nun mein Problem: Wie kann ich die Joysticks auswerten?

Ich weis nicht genau, welche Signale auf den Leitungen Data- und Data+ 
des USB-Anschlusses ankommen, und wie ich diese dann mit einem 
Controller einlesen kann.

Als Joysticks nehme ich 2x 
http://www.ayoo.de/details.php?ART=G89Z105&PID=13009

Der eine für die linke, der Andere für die rechte Hand.

Für den Controller nehme ich +5V und GND vom PC, da die Joysticks 
zusätzlich zum Controller auch mit dem Rechner verbunden werden.


Hätte da irgendjemand einen Vorschlag, welchen Controller ich da am 
besten nehme? (am besten nen ATMEL AVR, die kenn ich schon ein bisschen)


Danke!!


MfG Pr0gm4n

Autor: JÜrgen Grieshofer (Firma: 4CKnowLedge) (psicom) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei USB Antwortet das Device (Joystick) nur auf Anfragen vom Host (PC), 
und schickt nie "von sich aus" Daten.

Ein reines Mitlauschen auf den USB-Datenleitungen kann also 
prinzipbedingt nur Funktionieren, wenn der PC auch ständig die Joysticks 
abfragt.

Das Dekodieren der HID-Requests ist rein theoretisch dann schon möglich, 
und ein AVR könnte bei entsprechender Programmierung sogar schnell genug 
dafür sein. Ist aber keine Wochenend-Aufgabe, sondern sehr komplex.

Als Startpunkt vielleicht mal bei http://www.usb.org/ die USB 2.0 
Spezifikation herunterladen und durcharbeiten...

VIEL einfacher wirds wenn du das USB nur am rechner lässt, die 
Joysticks aufmachst, und dort direkt an den Potis/Tastern deinen AVR 
anschließt.

Autor: Pr0gm4n (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
DANKE für die echt superschnellen Antworten!!

Also, ich möchte das ganze dann so einsetzen, dass am Computer ein 
Programm gestartet wird, das den Joystick dauerhaft ausliest und später 
mal die Rückgabewerte auch verwendet.

der Computer und der AVR sollen also quasi "parallel" geschalten werden.

Kann ich dann, wenn der Computer den Joystick ausliest gleichzeitig die 
Rückgabewerte mit dem AVR empfangen?


@Jürgen: Ja, ich hab gegoogelt, kann aber leider nur gutes 9. Klasse 
Schulenglisch... d.h. ich hab erstmal alle 20 Seiten mit "Seiten auf 
Deutsch" durchgeschaut



Eigentlich hatte ich vor, das ganze als eine Art "Box" an den PC zu 
hängen, an der vorne 2 USB-Buchsen beschriftet mit Joystick L und 
Joystick R und einem Schalter, der das Senden per Funk an- und 
ausschaltet.

Wenns gar nicht anders geht kann ich das auch direkt an die Potis 
hängen, sofern die o.g. Joysticks analog sind.


Wenn ich das richtig verstanden habe, dann ist es also rein theoretisch 
möglich, die Data- und Data+ eines Joysticks an nen AVR zu hängen und 
dann auszulesen bzw. aus den ankommenden Signalen dann zu erkennen, wo 
der Joystick grade ist (halt die Achsen).

Gibt es dafür schon so ne art Tutorial mit Schaltplan etc.

Das sollte übrigens in so ner Box sein, da ich dann nur einen Controller 
und einen RC-Sender für die beiden Joysticks brauche(oder halt 2 
Controller aber zumindest nur 1 Sender)



MfG Pr0gm4n

PS: Das soll ein Teil meines nächsten Jugend forscht Projekts werden.

Autor: Pr0gm4n (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zusatz:

Ich hab die www.usb.org mal überflogen, nach was muss ich da suchen um 
zu Tutorial zu kommen?

werde es später nochmal durchschauen und wenn das mit dem auslesen so 
klappen könnte wie oben beschrieben, dann geh ich das dann ma durch

MfG Pr0gm4n

Autor: ARM-Fan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ich hätte auch mal ganz starkes und konkretes Interesse daran,
ob jemand schon einmal USB-HID Devices mit einem Host-fähigen
Mikrocontoller ausgelesen hat!

Es gibt ja viele schöne HID-Geräte, die sich durchaus auch für
industrielle Steuerungen verwenden ließen. Nur habe ich keine Lust
(nein, Kosten und Zeit sinds) gleich ein Windows CE Rechnerchen
oder ähnliches zu verbauen, nur um einen Joystick oder Trackball
auszulesen.

Hat das also schon einmal jemand gemacht oder kennt ein Internet-
Projekt in dieser Richtung?

Grüße, Frank

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hardware ist recht simpel, einfach D+ und D- an einen AVR-Port, einer 
der Pins muss interrupt-fähig sein.

Für die Software kannst du dir z.B. 
http://www.xs4all.nl/~dicks/avr/usbtiny/
anschauen, den Sende-Teil musst du natürlich komplett deaktiveren.

Wenn du dann damit Daten empfangen kannst, musst du natürlich bedenken 
dass du sowohl die Anfragen vom PC als auch die Antworten vom Joystick 
empfängst, also richtig aussortieren.
Auch sendet der Joystick mehr als nur die Positionsdaten, z.B. 
Enumeration-Informationen etc.
Die auch ignorieren, nur die HID-Reports sind für dich interressant.

Wie die dann auszuwerten sind, steht in der USB-Dokumentation.

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die einfachere Lösuch, den Joystick ohne PC auszulesen wäre von FTDI
der Vinculum Chip. Der kann HID-Host. An den kann man dann nen AVR per 
SPI oder UART dranhängen. Evtl. auch einen USB-Stick (falls man eine 
"Blackbox"
für die Ruderbefehle braucht ;-) )

Hat zumindes auf der Messe mit einem von den USB-Raketenwerfern prima 
funktioniert und der soll angeblich "HID class" sein.

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
der Vinculum ist zwar eine schöne Lösung für "ARM-Fan", aber für die 
Original-Aufgabe, "Passives Mithören am USB-Bus", nicht geeignet.

Autor: ARM-Fan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke Matthias, den Vinculum hatte ich ganz vergessen. Bzw. wußte nicht,
dass der auch HID können soll. Schaue ich mir gleich mal an.

Bin ansonsten auch für andere Lösungen offen (auch wenn ich vielleicht
etwas den Thread bzw. das Anliegen des OP hijacke, aber zum Titel
paßt es ganz gut). Oder vielleicht kommt ja für uns beide was raus.

Autor: Pr0gm4n (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja, das glaube ich nicht wirklich...

Also das mit diesem TinyUSB versteh ich auch nich so ganz...


Also die Software die du gemeint hast, was soll die machen, auf den µC 
oder auf den PC?


Ach ja, und kann mir jemand sagen, wie ich das USB-Signal dann im 
entefekt wirklich auslese/Quellcode, bei dem ich nur noch einfügen muss, 
was er dann auf best. Ports senden soll?

Wäre echt nett...

also irgendwie so.
void read_USB(void)
{//auslesen
}

void sendDataRC(Pin1, Pin2, Pin3, Pin4,...)
{//das füg ich dann noch ein
}

int main(void)
{
while(1)
{
read_USB();
sendDataRC(Pin1,...);
}
return 0;
}


MfG Pr0gm4n

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
TinyUSB ist (wie die obdev.at- und Igor-Variante) eine Software-Only 
Implementierung von USB für AVRs.
D.h. dort ist EMPFANGEN und SENDEN von Daten über USB implementiert.

Du brauchst davon natürlich nur den EMPFANGEN-Teil, den kannst du dir 
dort aus dem Quelltext rausziehen.

Autor: Pr0gm4n (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
du meinst also, ich muss nur den Empfangsteil da einfügen wie in meinem 
oberen Code und sagen, was er wie senden soll, richtig?

Ich hab das ding jetz runtergeladen, aber wo iss da das eine File, das 
ich verändere, kompiliere und dann in den AVR lade? (Name wäre gut)


Oder ist das Ding da meine Library, sodass ich quasi die Befehle angucke 
und dann in meinem eigenen File hernehme?


MfG Pr0gm4n

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Einfach copy&paste ist da leider nicht. Du wirst den Code genau 
anschauen und zumindest oberflächlich verstehen müssen.
Wie bereits gesagt, das Ganze wird sehr komplex.
Startpunkte zum Anschauen wären z.B. int.S (Assembler-File!), Empfangen 
ist bei "USB_INT_VECTOR"/rxloop und usb_receive() aus usb.c für die 
Highlevel-Sachen.

Autor: Pr0gm4n (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, also ich hab jetz viele neue Probleme:

-Ich weis nich genau, wo ich in der USB 2.0 Spezifikation anfangen soll 
zu lesen und wo das drinstehen soll, was ich brauche (Erkenntniss nach 
Inhaltsverzeichniss)

-Ich kann 0 Assembler und soll da aber irgendwas anschauen


Frage: Ist das Ding wenn man es einmal verstanden hat noch viel Arbeit, 
diese Empfangssachen zu machen?

Wenn nein, könnte evtl. jemand der das sowieso schon kann das nicht kurz 
machen, wäre sehr nett...

Wenn ja, dann werde ich mich wohl oder übel in diese ganzen Sachen 
reinlesen müssen (ich bin erst 14, ich hab mein Leben noch vor mir, 
bitte helft mir!! :) )


@ernst: Kannst du das nich eh alles? Ich mein, ich will ja die Daten 
empfangen und dann Achsen und einige Knöpfe in Variablen als int-Werte 
speichern, iss das wirklich so komplex, wenn man das eh schon kann?


MfG Pr0gm4n

PS: {Denk} bitte lass es nich viel Arbeit sein wenn man's dann 
verstanden hat und jemanden so nett sein und das machen... {/Denk}

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das ist heftig komplex. Als Einsteigerprojekt ist das ähnlich 
ungeeignet wie die Entwicklung einer neuen Motorsteuerung für einen 
modernen Sechszylindermotor.

Autor: Pr0gm4n (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

ich mein nicht, ob das für mich so komplex ist, das glaube ich auch, 
aber ob das für jemanden wie ernst noch so komplex ist, denn der kann 
das doch eh, oder?

Ich hab Mikrocontrollermässig auch noch nich soooooooooo viel Erfahrung, 
hauptsächlich mit dem Robby RP6 von Arexx, aber da ist ja ne Library und 
ne Anleitung dabei, hab das aber eigentlich recht gut verstanden, also 
auch das, was alles in der Library steht...


Also die Frage von mir war eigentlich, ob es für jemanden wie euch, die 
das können noch viel Arbeit wäre, meinen Code zu ergänzen. Wenn es nicht 
so viel ist, dann wollte ich jemanden bitten, ob er das nicht machen 
könnte, da ich meinen Kopf nicht unnötig mit noch etwas zum lernen in 
Anspruch nehmen will, da ich gerade mitten in einem C++ Tutorial und in 
einem für Mikrocontrollerprogrammierung bin.


Also wenn jemand so nett ist, kann ich mich gerne irgendwann 
revanchieren, sofern er z.B. ein PC-Interface (Softwaremässig) oder 
Ähnliches mal braucht, dann bin ich ja vielleicht mit meinem C++ schon 
so weit, dass er dann ein WXWidget von mir kriegt...



MfG Pr0gm4n

Autor: Jojo S. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
es gibt hier die Implementierung eines USB HID Endgerätes auf einem AVR: 
http://www.obdev.at/products/avrusb/hidkeys.html
Vielleicht hilft das für die Entwicklung des HID Hosts weiter?

Autor: Gast5000 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Das ist heftig komplex. Als Einsteigerprojekt ist das ähnlich
> ungeeignet wie die Entwicklung einer neuen Motorsteuerung für einen
> modernen Sechszylindermotor.
Um noch einen anderen Vergleich anzubringen:
Die Komplexität der USB-Daten auswerten möchte ich mal damit 
vergleichen, dass ein Buch auf chinesisch verfasst werden soll. Ernst 
spricht schon fliessend chinesisch. Du möchtest aber jetzt ein Buch über 
die Kreuzzüge im Mittelalter in Europa auf chinesisch schreiben.
Was nützen jetzt Ernsts Chinesischkentnisse? Wenig, das Buch muss er 
trotzdem noch vollständig schreiben, denn von dem historischen 
Hintergrund hat er keine Ahnung (Einarbeiten) - auch wenn er die Sprache 
spricht, in der das Buch verfasst werden soll.

> ich mein nicht, ob das für mich so komplex ist, das glaube ich auch,
> aber ob das für jemanden wie ernst noch so komplex ist, denn der kann
> das doch eh, oder?
können schon, aber du unterschätzt den Aufwand.

> dann wollte ich jemanden bitten, ob er das nicht machen könnte, da ich
> meinen Kopf nicht unnötig mit noch etwas zum lernen in Anspruch nehmen
> will
Mit dem Spruch könntest du Manager werden. ;-)

Ich sehe für dich in absehbarer Zeit keine Chance die USB-Daten 
vernünftig da rauszulesen (das soll eine realistische Einschätzung sein, 
keine "Verurteilung"!). Siehs als Anspor_n oder greif die Potis ab und 
lies diese per AD-Wandler in den AVR ein.

Autor: Pr0gm4n (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist das nich in etwa das gleiche was ernst forher gepostet hat?

naja, ich versteh das eh nich, also ich kriegs allein nich hin...


Wenn das also zu viel Arbeit ist, dann nehme ich doch wohl eher die 
Variante mit Joysticks aufschrauben...




MfG Pr0gm4n

Autor: Pr0gm4n (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da bin ich eigentlich deiner Meinung, ich denke auch, dass ich das so 
wie beschrieben nur realisieren kann, wenn ich Hilfe habe. Ohne MUSS ich 
die Potis abgreifen...

MfG Pr0gm4n

Autor: Daniel P. (ppowers)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie stellst Du Dir denn die "Hilfe" vor?
Du sprachst hier doch nur von "...wer schreibt mir das Programm mal 
eben?"
Wo wäre denn dann Dein Beitrag?
Und wie bereits geschrieben wurde, Du kannst bei der ganzen Geschichte 
ausschließlich dann einen Beitrag leisten, wenn Du Assemblerprogramme 
lesen & schreiben gelernt hast, Dich bereits ausgiebig mit 
Mikrocontrollern beschäftigt hast und ansatzweise verstehst, was in dem 
Programm abgeht.
USB Kommunikation gehört nunmal nicht gerade zu den Grundlagen bei 
Spielereien mit Mikrocontrollern.
Also bitte nicht beleidigt sein, dass hier keiner direkt bereitwillig 
geschätzte 20 Stunden seiner spärlichen Freizeit (im Gegensatz zu Dir 
sind hier auch manche arbeitstätig...) für Dich opfert.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das Thema ist auch für Leute mit ausführlicher USB-Erfahrung 
nichttrivial.

Ein verfolgbarer Ansatz bestünde darin, einen Aufbau wie folgt zu 
verwenden:



PC =====(usb)=====[ HID Device µC HID Host ] ====(usb)==== Joystick

Der mit einem Vinculum als HID Host angeschlossene Joystick wird von 
einem µC ausgewertet, die so erfassten Daten werden welcher Verwendung 
auch immer zugeführt und zusätzlich einem von µC angeschlossenen USB 
Device Controller zugeführt, der sich wie ein HID verhält. Und das ist 
an den PC angeschlossen.

So etwas ist auch ohne ausführliche USB-Erfahrung realisierbar; 
Programmieren und mit Hardware umgehen sollte man aber auch dafür schon 
können.

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es hat mal jemand einen low-speed-USB-Host mit einem AVR realisiert, ich 
zitiere mich mal:

Beitrag "Re: Maustreiber USB"

Autor: Pr0gm4n (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie schon gesagt, ich habe keine Ahnung wie viel Arbeit das noch für 
jemanden ist, der es eh kann, deswegen hab ich ja auch schon 2 mal 
gefragt, wie viel es ist...


Wenn es so viel Arbeit ist, dann mache ich das mit dem Abgreifen der 
Potentiometer...

Irgendwann kann ich dann wenn ich das besser kann (2 Jahre oder so) das 
auf die USB-Version erweitern...



MfG Pr0gm4n

Autor: Schoasch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Na ja USB auf AVR auf Software implementieren ist ne menge arbeit, ich 
würde dir schon raten die Potis abzugreifen. Denn du müsstest ASM lernen 
und das USB   Protokoll verstehen und dann darauf HID aufbauen. Das ist 
schon ein gewaltiger Brocken für einen Newbie.

Autor: Pr0gm4n (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also solang du mich bitte nichmehr unbedingt als noob sondern lieber als 
Anfänger bezeichnest (noob iss eher als Nichtskönner verwendet) bin ich 
hier natürlich niemandem beleidigt, ihr könnt ja auch nichts dafür, dass 
das so kompliziert ist...


Ich melde mich dann wieder mal, wenn ich dann dabei bin, den Stick 
aufzuschrauben und den AVR anzuschliessen...


Vorab: welchen Controller würdet ihr mir da empfehlen?

folgender Joystick: http://www.ayoo.de/details.php?ART=G89Z105&PID=13009

dann baue ich das 2x und leite neben dem USB-Kabel noch irgendwo an den 
Sticks meine eigene Buchse nach draussen.


DANKE nochmal für all eure Bemühungen und die echt verdammt schnellen 
Antworten!!


MfG Pr0gm4n

Autor: Wurpfel Wurpfel (wurpfel)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi Leutz

vergesst bitte nicht dass WINDOOF kein echtzeitbetriebssystem ist, ich 
würde bestenfalls erd- und wassergebundene funktionsmodelle damit 
steuern wollen..


ohne WD wird der weg mit dem vinculum-host wohl am schmerzärmsten sein.
die teile reizen zur einarbeitung ;)




PS
wenn man ein funkmodul verwendet hat alles in einem joystick platz..

Autor: Guido Körber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also meine erste Frage dazu wäre: Was solls machen?

Meine Erfahrung sagt mir, dass wann immer eine komische Lösung verfolgt 
wird (und diese hier ist extrem komisch) ist die Definition des 
Projektes nicht korrekt.

Mit Sicherheit lässt sich das Problem lösen, nur der Lösungsweg ist 
offensichtlich falsch und die notwendigen Kenntnisse sind nicht 
vorhanden und das in einem Umfang, dass noch nicht mal bemerkt wird wie 
komplex der vermeintliche Lösungsansatz ist.

Autor: Pr0gm4n (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also, das Problem ist so:

man soll 2 USB-Joysticks (nicht mit PC) auswerten, die vom PC abgefragt 
werden und die den Strom vom PC kriegen. die ausgewerteten 
Joysticksignale sollen dann über Funk an einen Roboter gesendet werden. 
Dafür nehme ich RC-Funk. Der Roboter muss dann nurnoch den Signalen 
entsprechend programmiert werden...


Glaubst du immernoch, dass das der falsche Lösungsansatz war?


MfG Pr0gm4n

Autor: Karl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, IMO ziemlich falsch. Wozu muss der PC sein? Stromversorgung? Geht 
zur Not bis 100 mA per USB. Wenn sonst nichts ist, lass den PC weg und 
greif die Joysticksignale direkt ab, also am Poti/Knopf/whatever. Wenn 
du nicht am Joystick rumbasteln willst, schreib die eine Anwendung am 
PC, die den Joystick abfragt und dann auf anderem Weg weiterschickt. 
Wenn es dann immer noch USB sein muss, meinetwegen. Ohne eigenen Host 
wird es doch einfacher.

Autor: vinculum (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Da hat der Karl wohl recht.
Das Problem fängt bei der Verwendung der Joysticks an. Warum sollen es 
genau die sein und nicht solche, die viel besser µC kompatibel sind?
Ich glaube, du zäumst das Pferd von hinten auf.
Mit dem Vinculum als USB-Host habe ich selbst gearbeitet. Er ist aber 
nicht ohne weiteres zu USB-Joysticks kompatibel, sondern nur zu einigen 
wenigen anderen HID-Devices. Ohne langjährige Erfahrung im Umgang mit 
µCs kann das daher leider nichts werden. USB ist so ziemlich das 
Komplizierteste was einem an Schnittstelle unterkommen kann.

Autor: JojoS (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
die alten Gamepads von der Playstation I waren sehr robust und die 
konnte mit etwas basteln an einen Parallelport anschliessen, vielleicht 
wären das geeignete Kandidaten. Aber nicht die billigen Nachbauten 
nehmen, die halten nur von 12 bis mittag.

Autor: Pr0gm4n (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach ja, was ich vergessen habe:

für den PC schreibe ich noch ein Programm, das die Joysticks auswertet 
und die Daten auch verwendet, also nicht nur Stromversorgung, ich hab 
mir schon was dabei gedacht...


Und ich brauch deshalb auch USB-Joysticks...

Das mit den Potis abgreifen wurde übrigens schon gepostet und jetzt ja 
auch durchgeführt...

Ich wollte nie einen Host bauen, sondern die vom PC abgefragten 
Stellungen "mitlauschen" (post weiter oben)


und bevor du sowas nochmal reinschreibst, lies bitte den Thread zuerst 
durch...


Es hat also alles schon so gepasst, was da als Lösung geschrieben wurde


MfG Pr0gm4n

Autor: Pr0gm4n (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dazu kommt auch noch, dass ich allein um eine Funkverbindung zwischen PC 
und µC zu machen bei 60 Euro bin, was 2x dem Bausatz RN-Funk 
entspricht...


MfG Pr0gm4n

Autor: Karl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oh Mann, diese arroganten Pissköpfe, die sich noch über die gegebenen 
Lösungsansätze beschweren, nur weil sie zu der ursprünglich angedachten 
Lösung nicht identisch sind, sind echt zum kotzen. Mach wie du willst, 
aber müll dann nicht ein Forum zu.

Autor: Pr0gm4n (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Falls du mich meinst wollte ich nur dazu sagen, dass ich die 
Lösungsansätze begrüsse, aber Guido Körber hat diese Diskussion 
hervorgerufen, ohne davor den Thread durchzulesen...

Autor: Tilo L. (katagia)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das war nicht deine Frage, aber wären für die Analogjoysticks eine 
Alternative?
Da sind nur 2 Potis drin, die sich sehr leicht abfragen lassen.

Autor: Guido Körber (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Blumen.

Warum verwendest Du nicht einen Sender der seinerseits als USB Device am 
PC hängt und von Deiner Software die Joystickdaten bekommt?

Oder nimm Joysticks ohne Elektronik, bau Dir die Elektronik selber 
inklusive Sender und USB Interface.

Autor: Pr0gm4n (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es hat sich jetzt folgende Lösung rauskristallisiert:

-gebrauchten RC-Sender mit Empfänger kaufen

-aufschrauben (RC-Sender und Joysticks)

-Potis des Joysticks mit den Kabeln des Senders verbinden

-glücklich sein, weil es geht


ach ja, Knöpfen kann man alle auf einen Kanal legen, einfach andere 
Widerstände dran und dann von nem µC am Empfänger auswerten lassen, 
welcher Knopf gedrückt wird (der wichtigste erhält den niedrigsten 
Widerstand, damit er auch erkannt wird, wenn 2 gleichzeitig gedrückt 
werden)

MfG Pr0gm4n

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Warum nicht mit der Software auswerten und per RS232 an den µC senden 
der shcikts dann per Funk an den Robo...

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Irgendwie hat diese "Lösung" jetzt überhaupt nichts mehr mit PCs, USB 
oder µCs zu tun.

Merkwürdig.

Autor: Pr0gm4n (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das liegt daran, dass ich den USB ja nicht auswerten kann und in der 
RC-Funke ja eh nur Potis ausgelesen werden, die ja im Joystick drin sind 
und somit wäre der Controller reine Verschwendung

Und das mit dem PC wäre mir zu aufwendig und ist teurer als meine 
"Lösung"


In dem Fall lohnt es sich also nicht, das so zu machen, ausser:

Wie einfach ist es, mit einem µC die Potis direkt "auszulesen"?

dann könnte man mit dem Board RN-Funk eine direkte Funkverbindung 
aufbauen und damit steuern

MfG Pr0gm4n

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Wie einfach ist es, mit einem µC die Potis direkt "auszulesen"?

Du kannst damit einen Spannungsteiler aufbauen und damit einen ADC des 
µC ansteuern. Du musst natürlich auf geeignete Spannungspegel achten, 
aber davon abgesehen ist das recht einfach.

Autor: Pr0gm4n (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann bevorzuge ich wohl diese Version, denn ich will das Projekt später 
auf mehrere Roboter ausweiten, die dann mit dem RN-Funk auch 
untereinander kommunizieren sollen, dann müsste ich dann nur ein 
zusätzliches RN-Funk kaufen


MfG Pr0gm4n

Autor: Pr0gm4n (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi nochmal,

ich wollte fragen, ob es eine art Anleitung dazu gibt, ich weis zwar, 
was ein einfacher Spannungsteiler ist, aber nicht, wie ich den einlesen 
kann.

Was kann der ADC einlesen?  wie viel Spannung anliegt? (widerstand)


MfG Pr0gm4n

Autor: gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was kann der ADC einlesen?
www.gidf.de/ADC

Autor: Pr0gm4n (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nur so, ich kenn die Seite und ich muss sagen, ich hab gegoogelt...


aber gib mal ADC ein in Google Suche...

MfG Pr0gm4n

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ein ADC ist ein Analog-zu-Digitalwandler. Der wandelt i.d.R. einen 
angelegten Spannungswert in einen digitalen (also numerischen) Wert um. 
Die Wortbreite oder Auflösung des Wandlers gibt an, wieviele 
unterschiedliche Spannungswerte der ADC auseinanderhalten kann. Ein 
8-Bit-ADC kann 256 Spannungswerte unterscheiden, ein 10-Bit-ADC 1024 
etc.
Der Spannungsbereich, in dem die zu messende Spannung liegen darf, liegt 
zwischen 0V und der vom ADC verwendeten Referenzspannung - diese ist 
niedriger oder zumindest nicht höher als die vom ADC verwendete 
Betriebsspannung, bei einem in einen µC integrierten ADC also auch nicht 
höher als dessen Versorgungsspannung.
Den numerischen Wert muss man also unter Berücksichtigung der 
verwendeten Referenzspannung umrechnen, um auf einen Spannungswert in 
Volt zu gelangen.

Für Deine Poti-Auswerteschaltung baust Du Dir einen Spannungsteiler aus 
dem Poti und einem weiteren Widerstand, legst eine Spannung an die ganze 
Chose an und misst mit dem ADC die über dem Poti abfallende Spannung ... 
die steht in einem definierten Verhältnis zur Potistellung.

Autor: Pr0gm4n (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke,

ich muss also hinter jedes Poti noch nen Widerstand schalten und das mit 
der Versorgungsspannung von µC verbinden und nach dem Poti noch eine 
Abzweigung zum ADC, richtig?


Kann man das für Taster auch so lösen?

Also wenn gedrückt mit I/O einlesen?



MfG Pr0gm4n

Autor: Rainier (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Servus,

um vieleicht mal auf das Ursprüngliche Thema zurückzukommen.

Unter http://www.embedded-projects.net/index.php?page_id=153 ist eine 
Diplomarbeit zu finden, die sich damit beschäftigt hat einen USB Stack 
auf einem µc zu implementieren.

Unter anderen soweit ich es überflogen hab auch auf einem AVR.
Ist auch auf Deutsch :)

Autor: Pr0gm4n (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Habe nun ein ähnliches Projekt gesehen, jedoch wurde ausdrücklich 
empfohlen, die Joystick-Elektronik zu entfernen.

Gibt es eine Möglichkeit, die Joystickelektronik im Joystick zu lassen 
und auch zu verwenden während man die Potis mit einem DC in einen AVR 
einliest, ohne aber die Messwerte zu verfälschen?

MfG Pr0gm4n

Autor: Hartwig Woellstein (hartwig)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Pr0gm4n schrieb:
> Habe nun ein ähnliches Projekt gesehen, jedoch wurde ausdrücklich
> empfohlen, die Joystick-Elektronik zu entfernen.
>
> Gibt es eine Möglichkeit, die Joystickelektronik im Joystick zu lassen
> und auch zu verwenden während man die Potis mit einem DC in einen AVR
> einliest, ohne aber die Messwerte zu verfälschen?
>
> MfG Pr0gm4n



Hallo, wollte mal fragen, was jetzt eigentlich aus Deinem schönen
Vorhaben geworden ist?
Ich beschäftige mich gerade mit ähnlichem Thema und bin neugierig,
welchen Weg Du nun eingeschlagen hast. Die
Joystick-aufschrauben-und-Signale-direkt-abgreifen-Methode ist natürlich
der schnellste und am softwaretechnisch wenigsten aufwendige Weg,
beschränkt allerdings auf die Modifikation vorhandener Hardware für den
Bau eines Prototypen.
Mittlerweile sind schon an die 2Jahre ins Land gegangen, und es gibt
beispielsweise die PIC32-OTG-fähigen Controller, die genau das anbieten,
was Du wohl die ganze Zeit wolltest?
Viele Grüße,
Hartwig

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.