PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Joystick und mega32



Dominik009
12.12.2009, 22:37
hallo
ich habe hier ne rnctontrol 1.4 und ein rs232 kabel zum pc.
Nun bin ich auf diesen artikel gestossen:
http://www.rn-wissen.de/index.php/Joystick_am_PC_zur_Kontrolle_eines_Roboters

leider öffnet das beispielprogramm für den pc nicht.
es kommt nur die meldung letzterversuch funktioniert nicht mehr.
ich habe win7 x86 (32bit).
kan mr da wer auf die sprünge helfen wie ich das ding ans laufen bekomme? pls.

gruß
Dominik

shedepe
13.12.2009, 00:23
Ich vermute das ManagedDirectX wie es im Artikel verwendet wird nicht mehr mit Windows 7 kompatibel ist. Du könntest versuchen das ganze mit SlimDX nachzuschreiben, wenn du erfahrung im .Net bereich hast. (Eine Sprache wie C# beherrschst)

Wobei wenn ich noch mal genauer darüber nachdenke kann es auch daran liegen dass dir einfach die entsprechenden Assemblies fehlen
versuch die mal nachzuinstallieren
http://msdn.microsoft.com/en-us/directx/aa937788.aspx
DirectX Enduser Runtimes

Dominik009
13.12.2009, 13:39
kana mir wer helfen.
wen ich das aus dem link lade geht immer noch nicht immre nur die fehlermeldung.

Dominik009
13.12.2009, 13:41
oder kann mir jemand ein link auf ein funktionierendes programm geben?
oder es schreiben da ich von sowas keine ahnung habe :(

Kenny5020
13.12.2009, 17:08
bei mir funktionierts auch nicht. Ich hab Vista (Business 64bit)
vielleicht liegts am Framework?
Am besten mal das aktuellste runterladen

Dominik009
13.12.2009, 18:30
das aktuelste framewirk habe ich bereits.
kan mir keiner helfen, oder das prgramm anhand des tutroials neu schreiben? pls pls pls.
bin selber zu dumm dafür.

shedepe
13.12.2009, 18:41
du könntest eventuell den autor des artikels fragen

Dominik009
13.12.2009, 20:08
und wer ist das und wie kontaktiere ich ihn?

shedepe
13.12.2009, 20:19
steht am ende des artikels, und du könnstest schauen ob er hier im forum ist und im dann eine pm schreiben

Dominik009
13.12.2009, 21:08
ich habe ihm mal ne pm geschrieben.
ich hoffe er meldet sich

Willa
13.12.2009, 22:33
Moin,
also an Vista an sich kanns nicht liegen, weil das auf nem Vista Rechner programmiert wurde. Ich habs eben auch noch mal auf Vista probiert, da läuft es. Morgen werde ich es mal auf der Arbeit an einem Win7 Rechner probieren und versuchen herauszufinden wo der Fehler liegen könnte. Wahrscheinlich liegst an irgendeinem DirextX Kram, davon habe ich aber auch nicht so viel Ahnung...

Willa
14.12.2009, 10:22
Hallo, ich habe den "Fehler" gefunden. Eigentlich ist es kein Fehler, sondern nur eine anscheinend undokumentierte Änderung.
In Sharp Develop muss man im Menü auf Projekt -> Referenz hinzufügen klicken und dann in der GAC Liste Microsoft.DirectX und Microsoft.DirectX.DirectInput markieren (mit gedrückter STRG Taste) und dann auf "Wählen" klicken. Wenn man jetzt das Projekt neu kompiliert funktioniert es ohne Fehlermeldung. Allerdings habe ich keinen Joystick mehr, daher kann ich es nicht probieren. Sollte aber ziemlich sicher klappen.

Dominik009
14.12.2009, 13:58
hi
danke für die infos.
jetzt muss ich nurnoch sehen das ich das alles auf die reihe bekomme.
kann ich das beispielprogramm von dir einfach mit diesem sharp devolop öffnen und es umändern?
oder muss ich alles selbst programiieren?
(habe nämlich davon keine ahnung, aber ich versuche es mal.
melde mich dan nochmal.
Wen es von von dir gestattet ist stelle ich dan hier einen link zu einer unter win 7 funktionieren version rein

Dominik009
14.12.2009, 14:12
ich bekomme es einach nicht auf die reihe :(
köntes´t du dar programm vieleicht komplimieren und mir den link gebebn pls?
bin am verzweifeln.

Willa
14.12.2009, 15:08
Hi,
ich habs noch mal kompiliert und angehängt. Starte mal das Programm in
\joystick_test\bin\Release\JoystickTest.exe

Auf meinem Win7 Rechner gehts scheinbar.

Kenny5020
14.12.2009, 15:28
Bei mir unter Vista gehts noch immer nicht.
Ich hab aber auch keinen Joystick angeschlossen.
Mein Rechner hat noch nicht mal einen Serialport mehr.
Kann es sein, dass das Program abschmiert, weil er keinen Port findet und du das im Program nicht abfängst?

Dominik009
14.12.2009, 16:03
hallo
ich probiere das prog gleich mal an meinem 2ten rechner aus.
der joystick wird aber via usb angeschlossen.
ist das ein problem?
mus der joystick beim ausführen iengesteckt sien oder erst später

Willa
14.12.2009, 16:16
Der Joystick MUSS per usb angeschlossen sein. Beim Programmstart macht das Programm erst mal gar nichts glaube ich. Joystick sollte aber vorher eingesteckt sein. Erst wenn man auf einen der Buttons drückt wird der Serialport bzw. der Joystick wirklich geöffnet. Gibts das nicht stürzt das Programm ab. Fehler fange ich nicht ab, ist ja nur ne quick & dirty demonstration.

Dominik009
14.12.2009, 16:30
also also also,
das prgramm läuft thx.
echt nett von dir danke für die mühe.
So nun habe ich das näckste problem.
Wen ich im programm com1 wähle (da hängt mein rs232 kabel dran steht auch so in meinem terminal programm) und dan auf joystick instalieren drücke, schreibt er mir die position nur an meiner rn control (1.4) regt sich nichts.
Ich habe einen beispielcode aus dem beitrag genommen, aber es kommt garnichts.
ich habe am angang des codes noch ein geräusch am lautsprecher und eine rs232 ausgabe reingemacht.
der ton kommt und auch mein test satzt wird im terminal angezeigt.
wen ich dan das terminal schließe und dein prog benutze passiert gernichts :(
kan mir da wer helfen?
stelle gleich den code rein einen mom

Dominik009
14.12.2009, 16:40
hier der code:

$regfile = "m32def.dat"
$framesize = 32
$swstack = 32
$hwstack = 64
$crystal = 16000000
$baud = 9600

Dim X As Integer
Dim Y As Integer
Dim X1 As Word
Dim X2 As Word
Dim Y1 As Word
Dim Y2 As Word
Sound Portd.7 , 200 , 450
Print "Starte Joystick-Test"
Sound Portd.7 , 200 , 450
Do
'Darauf warten dass irgendwas gesendet wird
Input "" , X
Input "" , Y

'Die Variablen umskalieren
X1 = X + 20
X2 = X1 * 40

Y1 = Y + 20
Y2 = Y1 * 40
'Einen Ton (Tonhöhe = Joystick Position) ausgeben
Sound Portd.7 , 10 , X2
Sound Portd.7 , 10 , Y2
Loop

Dominik009
14.12.2009, 21:26
kan mir den keiner helfen???

shedepe
14.12.2009, 22:35
es gibt meistens konflikte wenn 2 programm gleichzeitig auf die serielle schnittstelle zugreifen wollen, musst dich also entscheiden dass du entweder das terminal aufmachst oder das Programm für den joystick

als nächstes könntest du versuchen die daten wie sie das joystick programm senden würde einfach mal von hand ins terminal einzutippen, dann kannst du einen fehler in der joystick software ausschließen

leider kenn ich mich mit bascom nich so aus sonst könnte ich dir sagen ob dein programm so funzen kann oder nicht. Aber gibt ja viele andere User hier im Forum die sich mit Bascom auskennen, kann sich ja vielleicht mal jdm. das programm anschaun

Dominik009
15.12.2009, 12:32
also,
mit dem terminal schaue ich.
wie gebe ich die daten den von hand ein?
wie muss das in etwa aussehen wass ich tippe?
kan mir wer ein beispiel gebebn?

Dominik009
15.12.2009, 14:53
ich weis leider nicht wie ich die befehle senden muss.
das terminal ist geschloßen.
kan mir da wer helfen?
pls

Willa
15.12.2009, 14:59
ich bin grad etwas verwirrt und weiss gar nicht mehr genau welche Version von dem Joystick testprogramm du nun verwendest... Wie wäre es wenn du einfach mal das Tutorial "Windows Programm zur Steuerung vom AVR" im RN-Wiki durcharbeitest. Das geht bedeutend schneller als hier auf Antworten zu warten. Und damit könntest du dein Problem sicher ganz schnell eingrenzen.

Dominik009
15.12.2009, 16:59
hi
es ist so:
da das erste eprogramm nicht startet arbeite ich mit den neuen von dir
(nochmal thx).
dort drücke ich auf den button joystick instalieren.
die positpn wird nun richtig angezeigt
danach wähle ich com1 ( da hängt mein rs232 kabel) und drücke auf open com 1.
auf meiner rn control ist nun folgendes prgramm:


$regfile = "m32def.dat"
$framesize = 32
$swstack = 32
$hwstack = 64
$crystal = 16000000
$baud = 9600

Dim X As Integer
Dim Y As Integer
Dim X1 As Word
Dim X2 As Word
Dim Y1 As Word
Dim Y2 As Word

Do
'Darauf warten dass irgendwas gesendet wird
Input "" , X
Input "" , Y

'Die Variablen umskalieren
X1 = X + 20
X2 = X1 * 40

Y1 = Y + 20
Y2 = Y1 * 40
'Einen Ton (Tonhöhe = Joystick Position) ausgeben
Sound Portd.7 , 10 , X2
Sound Portd.7 , 10 , Y2
Loop

wen ich nun den joystick bewege passiert gernichts.
warum?
den artikel in rn wisen habe ich nun schon mehrmals gelesen.
rs232 ausgaben vom microkontroler kan ich aber problemlos empfangen.
(normae print befehle)
kan es sein das ich nicht senden kann?
wie sende ich manuel die daten?
würde mich über hilfe sehr freuen

Dominik009
15.12.2009, 16:59
hi
es ist so:
da das erste eprogramm nicht startet arbeite ich mit den neuen von dir
(nochmal thx).
dort drücke ich auf den button joystick instalieren.
die positpn wird nun richtig angezeigt
danach wähle ich com1 ( da hängt mein rs232 kabel) und drücke auf open com 1.
auf meiner rn control ist nun folgendes prgramm:


$regfile = "m32def.dat"
$framesize = 32
$swstack = 32
$hwstack = 64
$crystal = 16000000
$baud = 9600

Dim X As Integer
Dim Y As Integer
Dim X1 As Word
Dim X2 As Word
Dim Y1 As Word
Dim Y2 As Word

Do
'Darauf warten dass irgendwas gesendet wird
Input "" , X
Input "" , Y

'Die Variablen umskalieren
X1 = X + 20
X2 = X1 * 40

Y1 = Y + 20
Y2 = Y1 * 40
'Einen Ton (Tonhöhe = Joystick Position) ausgeben
Sound Portd.7 , 10 , X2
Sound Portd.7 , 10 , Y2
Loop

wen ich nun den joystick bewege passiert gernichts.
warum?
den artikel in rn wisen habe ich nun schon mehrmals gelesen.
rs232 ausgaben vom microkontroler kan ich aber problemlos empfangen.
(normae print befehle)
kan es sein das ich nicht senden kann?
wie sende ich manuel die daten?
würde mich über hilfe sehr freuen

shedepe
15.12.2009, 17:09
du empfängst die daten am microcontroller, z.B einfach nur einen zahlen wert den du in dein terminal eintippst und generierst damit z.B. einen sound. Damit kannst du z.B prüfen ob das ganze überhaupt ankommnt.
Ansonsten könntest du auch einfach im programm die empfangenen daten wieder zurück schicken

Dominik009
15.12.2009, 17:22
kanst du mir ein programm geben was die daten wieder zurücksendet pls?
also wen ich in mein terminal zaheln eingebe (z.b . : 10 oder 5 oder X = 5)
dan geht aucch nichts.
der controler kan mir aber texte an den rechner senden das geht.
ich hoffe ihr könnt mir helfen

Dominik009
16.12.2009, 15:21
Kan mir den keiner helfen???
:(
:(
:(

shedepe
16.12.2009, 16:37
Mit bascom sowas zu realisieren sollte nicht alzu schwer sein, les dir halt mal ein oder zwei tutorials oder beispiele dazu durch, oder google nach einem Loop Test programm.