Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Joystick vorgaukeln

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Profi-Forum
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Mr_T
aka FtFanmaster


Anmeldungsdatum: 26.12.2004
Beiträge: 103
Wohnort: Speyer

BeitragVerfasst am: 22.01.2006, 11:25    Titel: Joystick vorgaukeln Antworten mit Zitat

Tach.
Ich wollte in FreeBasic über den Gameport ein paar Analogwerte einlesen.
Beim Testen mit dem Joystick funktioniert das mit Getjoystick auch wunderbar.
Sobald ich aber den Joystick abnehme sagt Windows (9cool: "Kein Joystick verbunden". Somit werden auch keine Werte eingelesen.

Wie bekomme ich also Windows dazu, auch ohne Joystick die Analogwerte einzulesen?


MfG
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Skilltronic



Anmeldungsdatum: 10.09.2004
Beiträge: 1148
Wohnort: Köln

BeitragVerfasst am: 22.01.2006, 12:58    Titel: Re: Joystick vorgaukeln Antworten mit Zitat

Hallo

FtFanmaster hat Folgendes geschrieben:
Wie bekomme ich also Windows dazu, auch ohne Joystick die Analogwerte einzulesen?


Was genau willst du denn einlesen wenn nichts angeschlossen ist? Oder geht es nur darum, dass das Programm mit und ohne Joystick laufen soll?

Gruss
Skilltronic
_________________
Elektronik und QB? www.skilltronics.de !
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Mr_T
aka FtFanmaster


Anmeldungsdatum: 26.12.2004
Beiträge: 103
Wohnort: Speyer

BeitragVerfasst am: 22.01.2006, 13:09    Titel: Antworten mit Zitat

Ich will Widerstandswerte (genauer: Werte von Potis, LDRs....) einlesen und im Proggi anzeigen lassen.
Das Programm funktioniert auch prima, allerdings nur mit Joystick. Ohne Joystick und mit Widerständen sagter halt "Kein Joystick angeschlossen" und das Programm kann auch nix einlesen.

In QBasic gings ja noch mit Stick, auch ohne Joystick. Aber Getjoystick verlangt halt die Joystick-ID um von Windows die Daten zu holen. Und wenn Windows keinen Joystick findet, gehts halt nicht.

MfG
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 22.01.2006, 13:57    Titel: Antworten mit Zitat

Klingt Brutal, aber Zerleg doch den Joystick, so das du den IC in der Hand hast der die ID erzeugt.

Alternativ hilft vielleicht Freebasic für DOS.

Oder man könnte eine QBasic Joystick Routine zerlegen und nach Freebasic umschreiben.
(Ich seh mal nach ob das geht.)
[Edit]
QBasic hatte auch eine interne Routine, also nichts mit einfachem Umschreiben ...
[/Edit]

Oder wenn's gar nicht anders geht, Benutz diese Schaltung:
http://www.skilltronics.de/versuch/elektronik_pc/ad.html
_________________
http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight


Zuletzt bearbeitet von Michael Frey am 22.01.2006, 14:05, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Mr_T
aka FtFanmaster


Anmeldungsdatum: 26.12.2004
Beiträge: 103
Wohnort: Speyer

BeitragVerfasst am: 22.01.2006, 14:01    Titel: Antworten mit Zitat

Tja. Den Joystick hab ich vorhin offen gehabt. Hat nicht viel gebracht.
Ich hätte ja auch alles am Stick anschließen können, aber den brauch ich noch^^

Ich glaube du hast da was falsch verstanden: Ich meinte die ID die Windows vergibt (Joystick #1, #2, #3, #4.....).

Die Schaltung kenn ich.
Das Problem ist, dass ich nur einen solchen A/D Wandler dahab, aber mind. 2 benötige. Ich wollte nämlich Temperatur und Helligkeit einlesen.
Mit dem Gameport wäre das ja kein Problem.
Sollte halt möglichst noch heute gehen.

MfG
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Skilltronic



Anmeldungsdatum: 10.09.2004
Beiträge: 1148
Wohnort: Köln

BeitragVerfasst am: 22.01.2006, 16:44    Titel: Antworten mit Zitat

Hallo

Mit FB und dessen Zusammenspiel mit Windows kenne ich mich nicht aus aber wenn du keine allzuhohen Ansprüche an Schnelligkeit und Genauigkeit hast, hätte ich da evtl. zwei Ausweichmöglichkeiten. Eine wäre die schon angesprochene Schaltung mit dem TLC549 zu verwenden und z.B. mit einem Relais abwechselnd zwischen den beiden Sensoren hin- und herzuschalten.

Die andere Variante braucht keine zusätzliche Stromversorgung und sieht so aus:



Und das passende Programm für COM1 so:

Code:
CLS
DO
z = 0
OUT 1020, 1                            'DTR anschalten
DO
z = z + 1
IF z > 10000 THEN EXIT DO
i = INP(1022) AND 16                   'CTS lesen
LOOP WHILE i = 0
OUT 1020, 0                            'DTR ausschalten
PRINT z
t = TIMER + .2
DO: LOOP WHILE t > TIMER
LOOP WHILE INKEY$ = ""


Wenn DTR eingeschaltet wird, springt die Spannung an CTS nicht sofort auf den vollen Wert, sondern steigt langsam an weil der Kondensator über den Widerstand aufgeladen wird. Wie lange es dauert, bis die Schaltschwelle des Eingangs erreicht ist, hängt dabei von der Kapazität und der Grösse des Widerstands ab. Über die Zählschleife wird diese Zeit gestoppt und so kann bei gleichem Kondensator eine Änderung des Widerstands gemessen werden. Der Joystickport macht es ganz ähnlich, nur mit einem internen Kondensator. Wenn DTR ausgeschaltet wird, entlädt sich der Kondensator wieder. Da dazu auch wieder ein bisschen Zeit nötig ist, ist im Programm die Warteschleife mit TIMER eingebaut.

Den Wert von maximal 30kOhm habe ich nur durch experimentieren gefunden. Bei höheren Werten schaltet CTS bei mir nicht mehr durch (deshalb auch der Ausstieg bei Werten >10000 für z). Ich habe auch schon Elkos mit 2,2 und 10µF ausprobiert und die sind trotz wechselnder Polarität nicht explodiert. Die Angaben zu den Bauteilen sind also nur ein Vorschlag. Die müsstest du dir an deine Bedürfnisse anpassen.

Ein anderes Problem ist der bekannte Ärger mit Zeitmessungen mit Schleifen unter Windows. Mir versaut dessen Hintergrundaktivität ungefähr jede zehnte Messung. Da bei Temperatur und Tageslicht (?) keine schnellen Änderungen zu erwarten sind, könnte man Messungen, die stark vom zuletzt gemessenen Wert abweichen ignorieren, oder je nach Anwendung auch solche, die einen bestimmten Maximalwert übersteigen. Mit den drei Ausgängen des COM lassen sich so drei Widerstände messen.

Bei Kunstlicht misst man übrigens zusätzlich leicht die 50Hz-Schwankungen der Netzspannung mit und die Werte springen wild hin und her.

Gruss
Skilltronic
_________________
Elektronik und QB? www.skilltronics.de !
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Michael Frey



Anmeldungsdatum: 18.12.2004
Beiträge: 2577
Wohnort: Schweiz

BeitragVerfasst am: 22.01.2006, 17:31    Titel: Antworten mit Zitat

Nicht schlecht ...

Aber das Lade verhalten ist nicht Linear, dadurch kann es zu sehr starken Abweichungen kommen!
_________________
http://de.wikibooks.org/wiki/FreeBasic Jede Hilfe für dieses Buch ist Willkommen!
http://de.wikibooks.org/wiki/FreeBasic:_FAQ FAQ zu Freebasic (im Aufbau, hilfe Willkommen)
Neu mit Syntax Highlight
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Mr_T
aka FtFanmaster


Anmeldungsdatum: 26.12.2004
Beiträge: 103
Wohnort: Speyer

BeitragVerfasst am: 22.01.2006, 18:57    Titel: Antworten mit Zitat

Hmmm. Nicht schlecht die Lösung, aber nicht ideal, auch deswegen, weil ich keinen Comport freihab und auch keine passende Buchse.
Aber ich hab jetzt ne Idee:
Ich nehm nen NE555 als widerstandsgesteuerter Frequenzgenerator und mess die Impulse pro Zeiteinheit. Das klemm ich dann an den Parallelport an.
Wären also...5 Eingänge...und dann ist da noch die bidirektionale Geschichte.

Danke vielmals für die Tips und Ideen!

MfG
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1874
Wohnort: D59192

BeitragVerfasst am: 24.01.2006, 22:41    Titel: Antworten mit Zitat

Hi,
FtFanmaster hat Folgendes geschrieben:
Ich nehm nen NE555 als widerstandsgesteuerter Frequenzgenerator und mess die Impulse pro Zeiteinheit.
Genau diese Schaltung, mit Zeitmessung sitzt schon auf der Gameport-Karte.
siehe:http://www.bnv-bamberg.de/home/ba1804/mathnat/Physik/Sensoren01.html

Das Problem ist, das nur bei beschalteten Eingängen (Position 0-3 mit max. 100k, oder Sensor max. 100k, an +5V) der Treiber einen Joystik am Gameport erkennt.

Damit sparst du die zusätzliche Elektronik ein, aber Achtung der Gameport ist nicht sehr präzise. Mit gleichem Widerstand an den einzelenen Eingängen 0-3 sind +/-5% normal.
Gruß
Volta
_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Profi-Forum Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz