Python und Sensoren??

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

alfadas hat geschrieben:Hierbei ist der Microcontroller über USB mit dem PC verbunden.
Hallo alfadas!

Wenn du Glück hast, dann installiert sich auf dem Computer automatisch eine neue, virtuelle RS-232-Schnittstelle, sobald du den Mikrocontroller am Computer anschließst.

Wenn du weniger Glück hast, dann musst du den zugehörigen Treiber installieren. Aber es wird danach auch eine virtuelle RS-232-Schnittstelle simuliert. Der, der den Mikrocontroller programmiert hat, weiß welcher Treiber zu installieren ist.

Wenn du weniger Glück hast, dann musst du den Treiber installieren und es steht danach trotzdem keine neue, virtuelle RS-232-Schnittstelle zur Verfügung.

Für die ersten beiden Fälle ist pySerial die Python-Schnittstelle deiner Wahl. Und für den dritten Fall musst du dich mit pyUSB befassen. Ich kenne pySerial, aber mit pyUSB habe ich noch nicht ernsthaft etwas gemacht.

Aber zuerst mal herausfinden, wie die Verbindung stattfindet.

Unter Windows:

Trenne den Mikrocontroller vom Computer.

START-->Ausführen: Dort gibst du CMD ein und drückst ENTER. Danach befindest du dich in der DOS-Konsole. Dort gibst du den Befehl "MODE" ein. Hier werden dir die vorhandenen COM-Schnittstellen aufgezeigt.

Stecke jetzt den Mikrocontroller über USB an.

Starte eine **zusätzliche** DOS-Konsole und führe den Befehl "MODE" dort noch einmal aus. Vergleiche! Schau nach, ob eine neue COM-Schnittstelle hinzugekommen ist. Wenn JA, dann hast du Glück und kannst direkt mit pySerial arbeiten.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
alfadas
User
Beiträge: 11
Registriert: Montag 3. März 2008, 13:18

OK

Werde ich versuchen und berichte euch davon^^

danke dir
alfadas
User
Beiträge: 11
Registriert: Montag 3. März 2008, 13:18

So, wie versprochen melde ich mich zurück. Wir haben mit unserem betreuer gesprochen und wir hätten sogar die Möglichkeit über eine parallele Schnittstelle. Ich habe auch nachgesehen, doch ich werde nicht ganz schlüssig, ob ich noch weitere Treiber oder Ähnliches brauche.

Zudem hab ich Probleme mit den Zeilen:

>>> import parallel
>>> p = parallel.Parallel() #open LPT1
>>> p.setData(0x55)


da mir diese vorher noch nie über den Weg gelaufen sind.

Hoffe ihr könnt mir ein weiteres mal helfen.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

alfadas hat geschrieben:wir hätten sogar die Möglichkeit über eine parallele Schnittstelle
Hallo alfadas!

Kläre ab, ob du die Möglichkeit hast, über USB auf einen simulierten COM-Port zuzugreifen. Das ist nämlich einfacher als das Installieren von pyParallel.

Wenn das nicht möglich ist, dann musst du wohl mit pyParallel arbeiten. Dafür ist es zuerst mal wichtig zu wissen, welches Betriebssystem auf dem Computer läuft.

Irgendwo habe ich mir mal aufgeschrieben, welches der beste Treiber dafür ist. Aber das suche ich erst dann raus. -- Ich finde nichts. Suche hier im Forum nach "pyParallel". Vielleicht findest du hier einen Hinweis. -- aber nur, wenn du keinen simulierten COM-Port kriegst. Denn das mit dem Parallelport ist Murks.

mfg
Gerold
:-)
Zuletzt geändert von gerold am Montag 10. März 2008, 13:57, insgesamt 1-mal geändert.
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
alfadas
User
Beiträge: 11
Registriert: Montag 3. März 2008, 13:18

danke für die schnelle Antwort.

Also USB ist bei uns nicht wirklich möglich. Deshalb kmüsste ich mich in parallele Schnittstelle einarbeiten, doch ich weiß nicht wie wo was?? damit bin ich etwas überfordert. Eig. liegt mein Problem ja noch relativ einfach, denn ich möchte "nur" ein SIgnal 1 oder 0 von der schnittstelle ablesen.

Zur Zeit benutezn wir Windows XP
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

http://www.geocities.com/dinceraydin/py ... exeng.html

...ich habe keine Erfahrung damit, aber damit http://www.geocities.com/dinceraydin/py ... t_py24.zip dürftest du wohl weiter kommen. Das sollte auch mit Python 2.5 funktionieren. cTypes muss du dann nicht mehr installieren, das ist bei Python 2.5 schon mit dabei.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Also ich arbeite zu Hause mit dem pyparallel Modul. Allerdings unter Linux. Ich weiß nicht, ob das auch unter Win funzt.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Hyperion hat geschrieben:Also ich arbeite zu Hause mit dem pyparallel Modul. Allerdings unter Linux. Ich weiß nicht, ob das auch unter Win funzt.
Hallo Hyperion!

Unter Linux ist es ziemlich einfach zu installieren. Unter Windows nicht. Aber ganz was anderes: Kannst du damit auch Daten vom Parallelport lesen? Und wie?

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

@Gerold: Ich nutze das Teil nur zum senden von Signalen (für meine Relais-Box). Eingelesen habe ich damit noch nichts, daher kann ich Dir da leider nichts zu sagen!
alfadas
User
Beiträge: 11
Registriert: Montag 3. März 2008, 13:18

das ist sehr schade...

denn für unsere Arbeit wäre es sehr wichtig zu wissen, ob einlesen möglich ist.

wenn ja wie geht es?
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Hallo alfadas!

Damit http://www.geocities.com/dinceraydin/py ... exeng.html sollte man auch lesen können. Probier es einfach mal aus.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
alfadas
User
Beiträge: 11
Registriert: Montag 3. März 2008, 13:18

das Problem ist nur ich finde da keine ANleitung von wegen befehle zum Lesen und Register usw.
skypa
User
Beiträge: 97
Registriert: Freitag 5. Januar 2007, 03:13

Hey alfadas!

Also wenn ich das richtig verstehe, hast du dein optischen Sensor,
schickt solange Licht an is?! ne 1 an den Mikrocontroller.
Der Mikrocontroller triggert los sobald er anstatt der 1 eine 0 am eingang hat, und schickt am ausgang dann das entsprechende signal.
dein script wartet ab, bis mal was an der Schnittstelle ankommt was wie ne 1 aussieht (oder eben das entsprechende Signal was man ja einprogrammieren kann), und macht dann eben was auch immer du willst.

Klingt easy, musst dich halt nur mit Mikrocontroller Programmierung beschäftigen.
Kann dir da leider nicht so auf die schnelle helfen, sry!
Aber bisschen Assembler kann nie schaden ;)
alfadas
User
Beiträge: 11
Registriert: Montag 3. März 2008, 13:18

skypa hat geschrieben:Hey alfadas!

Also wenn ich das richtig verstehe, hast du dein optischen Sensor,
schickt solange Licht an is?! ne 1 an den Mikrocontroller.
Der Mikrocontroller triggert los sobald er anstatt der 1 eine 0 am eingang hat, und schickt am ausgang dann das entsprechende signal.
dein script wartet ab, bis mal was an der Schnittstelle ankommt was wie ne 1 aussieht (oder eben das entsprechende Signal was man ja einprogrammieren kann), und macht dann eben was auch immer du willst.

Klingt easy, musst dich halt nur mit Mikrocontroller Programmierung beschäftigen.
Kann dir da leider nicht so auf die schnelle helfen, sry!
Aber bisschen Assembler kann nie schaden ;)
Das problem ist nur wie bekomme ich das Signal, welches durch die parallel Schnittstelle zu Phyton übertragen wird. hierfür müsste Ich ein register abfragen, doch ich weiß nicht welches und wie der befehl lautet.

Dagegen haben wir mit dem Microcontroller keine Probleme.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

alfadas hat geschrieben:das Problem ist nur ich finde da keine ANleitung von wegen befehle zum Lesen und Register usw.
Hallo alfadas!

Lies dir den Quellcode von "winioport.py" durch. Die meisten Funktionsnamen sind selbsterklärend. Dort findest du die Funktion "pportInp". Damit, oder mit "inp", kannst du lesen. Ich habe es aber nicht ausprobiert.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
skypa
User
Beiträge: 97
Registriert: Freitag 5. Januar 2007, 03:13

Und die Funktion lauscht dann an dem Port?!
Ja sry alfadas, ich hab nicht ganz mitgekriegt anscheinend wie weit ihr mit der Planung seid, excuse moi ;)
nordish1982
User
Beiträge: 7
Registriert: Sonntag 16. März 2008, 20:46

Moin Moin,

ich habe grade den Thread überflogen, da die Problemstellung ähnlich ist wie meine üblichen Verdächtigen: Reale Welt löst Ereignisse im PC aus.
Mein Ansatz dazu ist in der Regel handelsübliche HIDs, also Maus, Tastatur, oder in diesem Fall ein Joypad zu zerlegen und dann in der Software nur die HID-Ereignisse zu behandeln. So bin ich überhaupt erst zu Python gekommen, da die pygame lib wirklich wunderbar ist. Wenn die Auslöser für die Sounds an die Knöpfe des Joypads (gibt locker welche mit 10 knöpfen für kleines Geld) gelegt werden, hat man einen sehr bequemen USB-Controller der an jedem PC läuft, und dazu noch bus-powered.
Der ganze Microcontroller Ansatz ist manchmal etwas too much.
Antworten