[Umfrage] Wozu nutzt ihr den IO-Warrior?

Dies ist das deutsche Forum für alle Themen um den IO-Warrior. Beiträge bitte nur in Deutsch.

Moderator: Guido Körber

Robert Marquardt
Posts: 543
Joined: Mon Dec 01, 2003 6:09 pm

Post by Robert Marquardt »

Ein IO-Warrior 24 mit IR sollte das Problem erschlagen.

Das groesste Problem dabei ist das Erstellen eines bedienbaren und flexiblen Programms zur Generierung von Tastendruecken. Das Programm fuer die c't war nur ein Minimalteil.

In diesem Fall kann man natuerlich den IO-Warrior innerhalb des Media-Players abfragen und hat keine Probleme.[/b]
Last edited by Robert Marquardt on Thu Apr 28, 2005 9:00 am, edited 1 time in total.
orange-blue
Posts: 28
Joined: Wed Feb 23, 2005 5:26 pm

Post by orange-blue »

:shock: über Touchscreen? cool!
Manfred Albrecht
Posts: 3
Joined: Tue Feb 22, 2005 4:52 pm
Location: Stuttgart/Germany

Biometrisches Zuganssystem

Post by Manfred Albrecht »

Dann will ich auch mal berichten warum ich Nacht für Nacht vor der blöden Monitor sitze und wozu ich den I/O Warrior benutze:

ich erstellte im Rahmen einer Technikerarbeit eine intelligente Personenidentifikation durch biometrischen Fingerabdruck.

Dazu wurde ein Terminal mit Touchscreen unter C++ erstellt und ein Log - und Zeiterfassungssystem sowie die benutzerverwaltung mittels PHP.

Der Systemaufbau:
[Bild wieder vom Server genommer]

Wobei ich sagen muss: Der I/O Warrior war das kleinste "Problem" vom ganzen Projekt.... DANKE an die Profis in dem Forum. Ihr versteht was von eurem Hobby/Arbeit und habt´s mir einfach gemacht...

Eine Schaltung zum Relais welches an den I/O Warrior angeschlossen ist gibts unter: http://www.codemercs.com/phpBB2/viewtopic.php?t=30


---
Signaturen werden überschätzt.....
Last edited by Manfred Albrecht on Sat Aug 13, 2005 6:02 pm, edited 1 time in total.
zbr147
Posts: 27
Joined: Thu Feb 24, 2005 10:15 am
Location: Stuttgart

Post by zbr147 »

HMM und ich hab es mittlerweile soweit das ich mein Fahrwerk vom Wagen
übers Touchscreen sowie IR-FB steuern kann und zugleich mit Winamp
rumspielen kann. :lol:


Vielen dank nochmals an die Profis im Forum :lol:
HappyAura
Posts: 68
Joined: Sun Feb 27, 2005 2:13 pm

Post by HappyAura »

Ursprünglich hab ich den IOW 24 ja nur als fernbedienung für den PC einsetzen wollen, dann hab ich die weiteren möglichkeiten entdeckt.

die LED'S geben den high/low pegel der pins an, sind über einen schalter alle abschaltbar, oder einzelnd die dip schalter.
der zweite schalter schaltet das Display ab, dann ist noch die IR diode zu sehen, rechts daneben der zugehörige jumper.
Oben rechts hab ich mir die pins noch mal zum abgreifen und temporären anschliessen von externen geräten rausgelegt.
Oben mittig sind 4 lüsterklemmen für I2c: VCC, GND, SCL und SDA
Das LCD wird von dem PC Netzteil versorgt, da ich, wie in anderem thread erwähnt, probleme mit dem flackern der Hintergrundbeleuchtung hatte. Auf das kontrast Poti hab ich verzichtet, da es eh voll aufgedreht ist.

eigentlich nur eine kleine spielerei, die dafür sorgt, daß ich nicht die ganze zeit eine platine auf dem schreibtisch rumfliegen hab.

als nächstes will ich ein wenig mit I2C rumspielen, temperatur messen mit A/D wandler, vielleicht 'ne kleine wetterstation, oder nur den rechner überwachen, wobei das im moment mit STILCD und MBM5 schon ganz gut angezeigt wird. mal sehen, was für ideen beim spielen noch so kommen...

hat jemand eine Idee, wie man einen reset button realisieren kann? soll den IOW zurücksetzen. einfach nur GND oder VCC per taster unterbrechen? oder gibt es da was, was ich laut USB spezifikation o.ä. beachten muß/soll?

Gruß Martin



Image
Guido Körber
Site Admin
Posts: 2856
Joined: Tue Nov 25, 2003 10:25 pm
Location: Germany/Berlin
Contact:

Post by Guido Körber »

HappyAura wrote:hat jemand eine Idee, wie man einen reset button realisieren kann? soll den IOW zurücksetzen. einfach nur GND oder VCC per taster unterbrechen? oder gibt es da was, was ich laut USB spezifikation o.ä. beachten muß/soll?
Wozu sollte der IO-Warrior einen manuellen Reset benötigen?
FlitzPin
Posts: 24
Joined: Sun Apr 18, 2004 3:47 pm

Post by FlitzPin »

Wozu sollte der IO-Warrior einen manuellen Reset benötigen?
Unter bestimmten Umständen kann es schon mal sein das der IOW einen Reset braucht. Zumindest in der Entwicklung recht praktisch.

Hier ein Beispiel was ich mal in einem anderen Thread gepostet habe.
Ein IOWKitRead führt sogar dazu das man IowKitReadImmediate nicht mehr richtig benutzen kann.

(Form mit 2 Command Buttons)
Code:

Option Explicit

Private Declare Sub CopyMemory Lib "kernel32" Alias _
"RtlMoveMemory" (Destination As Any, Source As Any, _
ByVal Length As Long)

Dim iowHandle As Long

Private Sub Command1_Click()
Dim lng_res As Long
Dim lng_buffer As Long
Dim i As Integer
Dim by_arr(3) As Byte
lng_res = IowKitReadImmediate(iowHandle, lng_buffer)
CopyMemory by_arr(0), lng_buffer, 4&
Debug.Print
For i = 0 To 3: Debug.Print CStr(i) & ": " & Hex(by_arr(i)): Next i
Debug.Print lng_res,
If lng_res <> 0 Then Debug.Print "Neue Daten !!"; Else Debug.Print ; "Keine neuen Daten"

End Sub

Private Sub Command2_Click()
Dim res As Long
Dim data(4)
' Perform a read
' Don't forget that we read report ID too
' So we have 5 bytes buffer
' Turn off all LEDs
' Unmask all input lines
' first byte is report ID
data(0) = &O0
' first report byte
data(1) = &HFF
' second report byte
data(2) = &HFF
' third report byte
data(3) = &HFF
' fourth report byte
data(4) = &HFF
' Write to IO-Warrior
Dim nWritten As Long
nWritten = IowKitWrite(iowHandle, 0, data(0), 5)
' Handle error
If (nWritten <> 5) Then
' You can use GetLastError() to get error code
MsgBox "Can not set input mask!", 0, "Error"
Exit Sub
End If
' After this write, all input lines are unmasked
' Set caption

' Read from IO-Warrior
res = IowKitRead(iowHandle, 0, data(0), 5)
' Check results
If (res <> 5) Then
Debug.Print "error"
Else
' Convert and set data
Debug.Print Hex$(data(1))
Debug.Print Hex$(data(2))
Debug.Print Hex$(data(3))
Debug.Print Hex$(data(4))
Debug.Print "Read from IOW complete"
End If
End Sub



Private Sub Form_Load()
iowHandle = IowKitOpenDevice()
End Sub

Code ausführen und
- Command2-Klick für IOWKitRead.(Daten sollten nun neu sein bei Tastendruck)
- Command1- Klick für IowKitReadImmediate.
[...] Die ByRef übergebene Variable lng_buffer hat den Wert 0.
Nun kann man sich an dem kleinen Taster neben dem Chip richtig verausgaben - ein IowKitReadImmediate liefert immer das obige Ergebnis. IOWKitRead bleibt hängen, weil anscheinend doch keine neuen Daten anliegen.
Natürlich könnte man nun mit einem IOWKitWrite bestimmt wieder alle Ports in einen anderen Zustand bringen (nicht probiert), allerdings nicht wenn "VB6 beim IOWKitRead hängt".



Desweiteren habe ich noch ein recht "merkwürdiges" Problem mit LM75-Tempsensoren nach dem Starten des Rechners.
Nach dem Booten des Rechners (Win2000) und dem Starten des Programmes, wird bei einem der drei LM75- Chips ein Temperaturwert nahe der 0°C ausgelesen (nicht nur einmal sondern die ganze Zeit).
Wenn ich das USB-Kabel kurz ziehe und das Programm neu starte wird bei allen LM75 der richtige Wert ausgelesen.
Woran das liegt weiss ich nicht, bin dem Problem noch nicht weiter zu Leibe gerückt. Am Code liegts höchstwahrscheinlich nicht.


Gruß FlitzPin
Robert Marquardt
Posts: 543
Joined: Mon Dec 01, 2003 6:09 pm

Post by Robert Marquardt »

Der IO-Warrior braucht keinen Reset, weil er sich nicht aufhaengt.

Wer IowKitRead und IowKitReadImmediate auf die IO-Pins mischt ist selber schuld.
IowKitRead sollte man nur aufrufen wenn man sicher ist das ein Report zum lesen da ist. Das ist z. B. der Fall beim Schreiben auf den IIC, da dort ein ACK-Report generiert wird.
IowKitReadImmediate startet einen Thread, der immer ein ReadFileEx auf den File Handle fuer die IO-Pins warten hat.
Wer da mit IowKitRead dazwischenfunkt kann natuerlich alles durcheinanderbringen.
Es ist ja auch ein sinnloses Unterfangen, da IowKitReadImmediate bereits die gewuenschten Daten liefert.

Bei den LM75-Temperatursensoren wuerde ich eine falsche Initialisierung durch das Programm vermuten. Bitte in einem eigenen Thread die Initialisierung posten oder direkt an mich senden marquardt at codemercs dot com
Guido Körber
Site Admin
Posts: 2856
Joined: Tue Nov 25, 2003 10:25 pm
Location: Germany/Berlin
Contact:

Post by Guido Körber »

Also auf einen bereits wartenden iowkitRead sollte man nicht noch einen iowkitReadImmediate drauffallen lassen, das gibt wie Robert schon geschrieben hat Probleme.

Was den LM75 betrifft so würde ich eher auf ein Problem mit der Initalisierung oder mit der Hardware tippen. Der IO-Warrior interessiert sich eigentlich nicht für den Inhalt der IIC Daten, sondern reicht die transparent durch.

Eventuell ist die Stromversorgung der LM75 nicht richtig ausgelegt. Wo ist denn der Siebkondensator für den Chip?
FlitzPin
Posts: 24
Joined: Sun Apr 18, 2004 3:47 pm

Post by FlitzPin »

@Robert
Schon klar das das Beispiel keinen praktischen Wert hat. Es ist angefallen als ich mit IOWKitRead und IowKitReadImmediate rumexperimentiert habe. Damals habe ich mir auch einen Resettaster gewünscht.

Den LM75-Problemthread werde ich eröffnen sobald ich mir die Sache näher angeschaut habe.




Damit nicht alles OT ist was ich hier poste, schreibe ich noch schnell was ich mit dem IOW mache ;-)

Der IOW hängt bei meinem Aquarium. Mit dem LM75-Sensoren bestimme ich die Temperatur von Becken, Quarantänebecken und Raum. Leider sind die Werte mit dem LM75 ungenau.
Desweiteren steuert der IOW einen Schrittmotor an dem eine Webcam befestigt ist, und einige superhelle LEDs, die für nächtliche Beleuchtung sorgen.
Über einen (kurzen) Tastendruck lassen sich verschiedene Informationen auf einem 2*16 LCD anzeigen (Temperatur, Webcammodul geladen?,...). Über einen langen Tastendruck lassen sich bei einigen Info-Anzeigen Aktionen ausführen (z.B. Webserver starten, Webcammodul laden,...)

Primär habe ich mir den IOW jedoch geholt weil ich kein Platz für eine Eisenbahn habe :lol:

Gruß FlitzPin
HappyAura
Posts: 68
Joined: Sun Feb 27, 2005 2:13 pm

Post by HappyAura »

Der IO-Warrior braucht keinen Reset, weil er sich nicht aufhaengt.
das mag sein, aber es kann trotzdem einfacher sein, einmal den stecker zu ziehen, als die gemachten einstellungen zurückzusetzen. und es wär natürlich toll, wenn das über ein drücken eines tasters ginge. gerade während der entwiklung von programmen kann es schon mal passieren, daß man sich das so wünscht. zur not muß ich mal schauen, ob ich 'nen taster mit 4 anschlüssen finde, aber es hätte ja sein können, daß es reicht, dem IOW kurzfristig VCC wegzunehmen oder so.
Guido Körber
Site Admin
Posts: 2856
Joined: Tue Nov 25, 2003 10:25 pm
Location: Germany/Berlin
Contact:

Post by Guido Körber »

Taster mit 4 Anschlüssen ist ganz schlecht. Die USB Stecker haben nicht umsonst vorauseilende Kontakte für Vcc und Gnd. Damit wird sichergestellt, dass die Versorgungsspannung vor den Signalen kontaktiert und kein Latchup entstehen kann.

Die einfachste Lösung ist den Pull-Up Widerstand an D- abzuhängen, das ist genauso wie ein Disconnect.

Natürlich die 5V bzw. den Ausgang vom IOW24 abhängen, nicht die D- Leitung über ein Kabel zum Taster führen.
rumpelstielzen
Posts: 2
Joined: Sat May 21, 2005 2:56 pm

Post by rumpelstielzen »

hai
ich benutze iow24 fur fernbedienung per ir und hab ne 4x16 lcd angeschlossen womit ich uhrzeit cpulast usw anzeigen lassen .
das entsprechende programm habe ich unter vb6 entwichkelt.
wer es haben will kann mich e-mailen unter sdm@bossmail.de
Guido Mocken
Posts: 13
Joined: Sun Sep 26, 2004 7:57 pm

Post by Guido Mocken »

Also, ich hab' über den IOW24 ein 4-Zeilen LCD und den IR-Fernbedienungsempfänger an mein Apple Powerbook angeschlossen, außerdem über den I2C-Bus eine alte Videotextdecoder-Schaltung (SAA 5246 basierend).
Was ich genau damit machen will, weiß ich noch nicht - aber Spaß macht's!

Guido
Robert Marquardt
Posts: 543
Joined: Mon Dec 01, 2003 6:09 pm

Post by Robert Marquardt »

Na beim Videotextdecoder wuerde ich mal vermuten das der schneller Daten senden will als der IO-Warrior transportieren kann.
Aber Spass macht es wirklich :-)
Wir koennen ja mal gemeinsam hier eine Liste von IIC- und SPI-Chips zusammenstellen, die sinnvollerweise mit dem IO-Wariror verwendet werden koennen.
Post Reply