Hardware ansteuern - Signal an PCI-Karte

Alles, was nicht direkt mit Python-Problemen zu tun hat. Dies ist auch der perfekte Platz für Jobangebote.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Hallo!

Ich bin im Moment ein wenig für dieses Thema sensibilisiert, da ich mich derzeit ein wenig in Elektronik einarbeite. Ich möchte mit dem Computer Geräte steuern und auch Signale von Geräten erhalten.

Dafür gibt es z.B. die einfache Steuerung über den Parallelport. Damit kann man auf einfachste Art und Weise acht Relais ansteuern. Dafür braucht man nicht mal eine besondere Karte von Conrad. 8 Optokoppler, 8 Widerstände, 8 LEDs, ein Kabel und schon kann man ein Leuchtfeuer veranstalten.

Wie einfach das funktionieren kann, sieht man schon aus dieser Anleitung: http://www.strippenstrolch.de/5-2-3-lpt ... euern.html Dort wird die Steuerung des Parallelports zwar mit Profan erledigt, aber das kann Python mit pyParallel natürlich auch.

Aber jetzt kommts:

Wie sieht das aus, wenn ich in den PCI-Port des Computers eine passende Platine stecke? Eine Karte wo nichts drauf ist. Erstes Ziel ist es, einfach ein paar LEDs auf der Platine zum Leuchten bringen.

Ich kann mir vorstellen, dass bei den vielen PCI-Pins sicher ein paar Pins sind, die man über den Computer ein- oder ausschalten kann. Wahrscheinlich über das Zuweisen eines Wertes an ein vorgegebenes Register. So wie es hier beschrieben wird: http://ezs.kr.hsnr.de/TreiberBuch/html/ ... TERZUGRIFF

Schafft man es, gezielt ein paar LEDs zum Leuchten zu bringen, ohne dass man auf der eingesteckten Platine irgendwelche Microprozessoren einsetzen muss?

Wenn ja, gibt es einen "quasi" Instant-Treiber, den man verwenden kann, um gezielt ein paar Register ansprechen zu können? Die Sprache ist egal. Es gibt ja "ctypes".

Gibt es dafür eine C-Library, die man per ctypes ansprechen kann?

Vereinfacht gedacht:

Code: Alles auswählen

SET: PCI Gerät 0 - Register XY = 0
SET: PCI Gerät 0 - Register YZ = 1
Ich bitte um eure Gedanken zu diesem Thema.

EDIT:

Betriebssystem kann Linux oder Windows sein.

lg
Gerold
:-)
Zuletzt geändert von gerold am Montag 6. August 2007, 07:23, insgesamt 1-mal geändert.
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
BlackJack

Ich denke PCI ist mittlerweile zu komplex für so etwas, falls es den jemals geeignet war.

Der Rechner erwartet doch, dass er über den PCI-Bus mit den eingesteckten Karten kommunizieren kann. Das fängt schon im BIOS an, wo die Karten gefragt werden können welchen Interrupt sie brauchen und ob sie in der Lage sind Interrupts zu "sharen". Da steckt ein Busprotokoll dahinter, was sich wohl ohne Mikrochip nicht implementieren lässt.

Eine PCI-Karte müsste auch in der Lage sein die Informationen zu liefern, die `lspci` unter Linux ausgibt:

Code: Alles auswählen

bj@s8n:~$ lspci
00:00.0 Host bridge: nVidia Corporation nForce3 250Gb Host Bridge (rev a1)
00:01.0 ISA bridge: nVidia Corporation nForce3 250Gb LPC Bridge (rev a2)
00:01.1 SMBus: nVidia Corporation nForce 250Gb PCI System Management (rev a1)
00:02.0 USB Controller: nVidia Corporation CK8S USB Controller (rev a1)
00:02.1 USB Controller: nVidia Corporation CK8S USB Controller (rev a1)
00:02.2 USB Controller: nVidia Corporation nForce3 EHCI USB 2.0 Controller (rev a2)
00:05.0 Bridge: nVidia Corporation CK8S Ethernet Controller (rev a2)
00:08.0 IDE interface: nVidia Corporation CK8S Parallel ATA Controller (v2.5) (rev a2)
00:0b.0 PCI bridge: nVidia Corporation nForce3 250Gb AGP Host to PCI Bridge (rev a2)
00:0e.0 PCI bridge: nVidia Corporation nForce3 250Gb PCI-to-PCI Bridge (rev a2)
00:18.0 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] HyperTransport Technology Configuration
00:18.1 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Address Map
00:18.2 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] DRAM Controller
00:18.3 Host bridge: Advanced Micro Devices [AMD] K8 [Athlon64/Opteron] Miscellaneous Control
01:00.0 VGA compatible controller: ATI Technologies Inc RV280 [Radeon 9200 PRO] (rev 01)
01:00.1 Display controller: ATI Technologies Inc RV280 [Radeon 9200 PRO] (Secondary) (rev 01)
02:06.0 Multimedia audio controller: Creative Labs SB Live! EMU10k1 (rev 0a)
02:06.1 Input device controller: Creative Labs SB Live! Game Port (rev 0a)
02:08.0 Multimedia video controller: Brooktree Corporation Bt878 Video Capture (rev 11)
02:08.1 Multimedia controller: Brooktree Corporation Bt878 Audio Capture (rev 11)
Die ganzen Texte mit den Typenbezeichnungen kommen von den Karten selbst.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

BlackJack hat geschrieben:Ich denke PCI ist mittlerweile zu komplex für so etwas, falls es den jemals geeignet war.
[...]
Die ganzen Texte mit den Typenbezeichnungen kommen von den Karten selbst.
Hallo BlackJack!

Daran hatte ich noch nicht gedacht. :roll: Ich habe nur ein paar Berichte gelesen, aus denen hervor ging, dass es mit dem ISA-Slot funktioniert. Außerdem dachte ich an so eine Art ISA-Kompatibilitätsmodus, da man ja öfter mal von einer ISA Bridge liest. Und irgendwo schwirrt bei mir im Hinterkopf, dass der PCI die Informationen parallel überträgt. Dann *hoffe* ich noch, dass die von dir erwähnten Informationen von einer Datenbank mit Serien-/Produktnummern stammen. ;-)

Meine Hoffnung ist noch nicht zerstört. Vielleicht funktioniert es ja doch. Z.B. als "Unknown Controller". :D

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
mkesper
User
Beiträge: 919
Registriert: Montag 20. November 2006, 15:48
Wohnort: formerly known as mkallas
Kontaktdaten:

gerold hat geschrieben: Daran hatte ich noch nicht gedacht. :roll: Ich habe nur ein paar Berichte gelesen, aus denen hervor ging, dass es mit dem ISA-Slot funktioniert.
Außerdem dachte ich an so eine Art ISA-Kompatibilitätsmodus, da man ja öfter mal von einer ISA Bridge liest.
Du kannst in den PCI-Bus keine ISA-Karten einsetzen.
Es kann lediglich sein, daß dein Motherboard (noch) eine PCI-ISA-Schnittstelle hat und darüber ISA-Slots zur Verfügung stellt.
So einen einfachen Anschluß wie Parallelport scheint es heute nicht mehr (standardmäßig) zu geben, aber vielleicht wäre ja noch eher der USB-Port etwas für dich?
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

mkallas hat geschrieben:Du kannst in den PCI-Bus keine ISA-Karten einsetzen.
Hallo mkallas!

Ich habe in meinem Leben schon ein paar tausend Computer zusammengebaut. (das kannst du nicht wissen) Ich weiß wie der PCI-Bus aussieht. Ich dachte eher an eine Art Pin-Kompatibilität (eines Teils der PCI-Pins) und nicht daran, eine ISA-Karte in einen PCI-Bus zu stecken. :roll:

USB braucht auf jeden Fall einen Microprozessor der die Anweisungen umsetzt. Oft sogar einen (internen) Wandler von USB auf Seriell. Das wollte ich umgehen. Mir ging es eher um (annähernd) Echtzeit. Also so wenig wie möglich Kommunikationswege und Controller zwischen dem anzusteuernden Gerät und dem Computer.

@all: Wenn niemand eine einfache Möglichkeit weiß, wie man über den PCI ein paar LEDs gezielt ein- oder ausschalten kann, dann bleibt mir bei meinem noch spärlichen Wissen über die Erstellung von PCI-Karten nur so etwas übrig: http://www.pci-card.com/neuep.htm#proto3

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
thelittlebug
User
Beiträge: 188
Registriert: Donnerstag 20. Juli 2006, 20:46
Wohnort: Wien
Kontaktdaten:

hi gerold,

lt. infos im web hat pci 32 datenleitungen ( damit wäre es also parallel ) allerdings sind das datenleitungen, die werden nicht viel "saft" hergeben, selbst wenn würd ich es lassen ;)
du müsstest mit etlichen mbyte/s 1er schicken damit die led "an" bleibt.

zusätzlich, so wie blackjack es erwähnt hat, musst du das busprotokoll sprechen können ( oder zumindest dein gerät/karte ). hierfür gibt es mikrocontroller die das bereits eingebaut haben. aber wenn es eine fertige lösung gibt und man nur ein wenig probieren möchte und keine großserie starten will, ist es sicher die leichteste möglichkeit.

die frage wäre wie das gerät das du ansteuern möchtest zu erreichen ist.
sollte rs232 zu langsam sein wäre eventuell rs485 eine möglichkeit.
sobald du jedoch schaltungsaufgaben vornehmen möchtest ist ein microcontroller immer eine gute wahl.

atmel bietet mit der avr reihe "liebe" kleine einfache µc's ;)
siehe hierzu: http://de.wikipedia.org/wiki/Atmel_AVR und http://www.mikrocontroller.net/forum/

was verstehst du unter echtzeit?

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

Hallo herby!
thelittlebug hat geschrieben:lt. infos im web hat pci 32 datenleitungen ( damit wäre es also parallel ) allerdings sind das datenleitungen, die werden nicht viel "saft" hergeben, selbst wenn würd ich es lassen ;) du müsstest mit etlichen mbyte/s 1er schicken damit die led "an" bleibt.
Beim ISA-Bus kann man die vorhandenen Datenleitungen ein- und ausschalten. Die bleiben dann gleich wie beim Parallel-Port so lange ein, bis eine andere Anweisung kommt. Und wenn man das Taktsignal bei den jeweiligen Ports ignoriert, dann kann man damit schon mal recht gut die jeweils vorhandenen Datenleitungen zum einfachen Schalten verwenden.
Da ISA beim Aussterben ist, werde ich mich nicht damit befassen. Wenn man beim PCI gleich wie beim ISA und beim Parallelport die Datenleitungen gezielt ein- und ausschalten kann, dann hätte ich alles, was ich mir im Moment vorstelle.

Kann man evt. das PCI-Bios übergehen???
thelittlebug hat geschrieben:busprotokoll sprechen können
Auch ISA spricht ein eigenes Protokoll und trotzdem kann man die Datenleitungen gezielt ansprechen. Mit AVR beschäftige ich mich erst in ein paar Monaten. Jetzt bin ich noch bei einfachen Schaltungen mit Dioden, Widerständen, Transistoren und Optokopplern. Ich muss mich erst noch durch Z-Dioden, Schmitt-Trigger, Thyristoren, FET und Logikbausteine durcharbeiten. Vorher möchte ich mich nicht mit µP beschäftigen.

Bei PCI ist mir aber anscheinend das PCI-Bios im Weg, das die Karte registriert, Adressen und IRQs zuweist. Das gibt es bei ISA nicht. Dort wird über Jumper die Adresse eingestellt und fertig. Interessant wäre, ob man einzelne Register einer PCI-Schnittstelle ansprechen kann, ohne dass das PCI-Bios weiß, ob dort eine Karte steckt oder nicht.
thelittlebug hat geschrieben:rs232 zu langsam
Weiß ich nicht. Ich möchte nur mal vorab Informationen sammeln. Ich will ausloten, was möglich ist und was nicht. Für was brauche ich µP und für was nicht.
thelittlebug hat geschrieben:atmel bietet mit der avr reihe "liebe" kleine einfache µc's ;)
Ja, AVR scheint einige Anhänger zu haben. Ich muss noch endgültig zwischen PIC und AVR entscheiden, aber ich glaube, mit AVR werde ich glücklicher.
thelittlebug hat geschrieben:was verstehst du unter echtzeit?
Nehmen wir mal an, ich steuere einzig über einen Computer einen Roboterarm. Der Roboterarm hat **keine eigene Logik** eingebaut. Alles über den Computer. -- Dann möchte ich den Roboterarm stoppen wenn der Berührungssensor (Drucksensor) einen bestimmten Wert erreicht hat. Rechtzeitig bevor das Ei zerdrückt wird. ;-) Das wäre dann Echtzeit für mich. :D

So weit bin ich aber noch nicht. Deshalb mache ich mir noch keine weiteren Gedanken darüber. Ich wollte ja nur mal ein paar LEDs leuchten lassen. Man muss klein beginnen.

Wenn es dann so weit sein sollte, dann werde ich wahrscheinlich die Anweisungen vom Computer an den µP weiter geben. -->
Servus µP. Steuere den Schrittmotor XY langsam an. Prüfe in der Schleife was der Drucksensor so meldet und wenn der Wert XY erreicht ist, stoppe den Schrittmotor. Wenn das erledigt ist, gib mir (dem Computer) eine Rückmeldung. -- Wenn der Drucksensor auf einmal keinen Druck mehr anzeigt, dann möchte ich (der Computer) das auch wissen. Dann spiele ich die WAV-Datei "ojeoje.wav" ab.
lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Panke
User
Beiträge: 185
Registriert: Sonntag 18. März 2007, 19:26

Servus µP. Steuere den Schrittmotor XY langsam an. Prüfe in der Schleife was der Drucksensor so meldet und wenn der Wert XY erreicht ist, stoppe den Schrittmotor. Wenn das erledigt ist, gib mir (dem Computer) eine Rückmeldung. -- Wenn der Drucksensor auf einmal keinen Druck mehr anzeigt, dann möchte ich (der Computer) das auch wissen. Dann spiele ich die WAV-Datei "ojeoje.wav" ab.
Haste dafür nen Interpreter?

Und warum reicht dir der Parallelport nicht?
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

BlackJack hat geschrieben:Der Rechner erwartet doch, dass er über den PCI-Bus mit den eingesteckten Karten kommunizieren kann. Das fängt schon im BIOS an, wo die Karten gefragt werden können welchen Interrupt sie brauchen und ob sie in der Lage sind Interrupts zu "sharen". Da steckt ein Busprotokoll dahinter, was sich wohl ohne Mikrochip nicht implementieren lässt.
Hallo BlackJack!
Hallo RestDerWelt! ;-)

:roll: Ich habe immer noch keine Informationen gefunden, die mir zeigen könnten, wie man die Pins der PCI-Schnittstellen einzeln ansprechen kann.

Ich finde massig Links zu solchen Schnittstellenkarten: http://www.bmc-messsysteme.de/ger/pr-pci-base1000.html
So wie es aussieht, braucht man immer irgend eine IO-Karte. Das Problem das ich damit habe ist, dass so gut wie alle immer nur eine API für Windows anbieten. Die einzigen IO-Systeme, für die es auch Linux-Treiber gibt, sind externe Systeme, die über RS232 oder USB anzusprechen sind. Leider konnte ich noch keine genauen Informationen über deren Reaktionszeiten herausfinden.

Mit solchen Systemen ist nichts mit Steuern in "annähernd" Echtzeit. Da läuft es immer auf modulare Konzepte raus. Computer gibt Anweisung an IO-Karte weiter. Karte gibt Anweisung z.B. per I2O an andere Microprozessoren weiter. Diese erledigen ihre Arbeit und geben ab und an eine Meldung per I2O an die Schittstellenkarte zurück. Diese gibt die Meldungen an den Computer. Das hat zwar seine Existenzberechtigung, aber ich werde damit noch nicht so ganz warm.

Eigentlich ist bei mir im Hinterkopf immer dieser Gedanke: Ich kann mit einem µP um 9 Euro 17 digitale Ausgangssignale und 12 Digitale Eingangssignale steuern und abfragen. Was muss dann erst mit einem ausgewachsenen PC um 1000 Euro möglich sein... :roll:
PICAXE-28X
21 IOs: 9-17 Digital-Out, 0-12 Digital-In (0-4 Analog), incl. keram. Resonator 4MHz
Ich sehe schon -- ich muss mich noch ein paar Monate in diese Materie einlesen.

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Panke hat geschrieben:
Servus µP. Steuere den Schrittmotor XY langsam an. Prüfe in der Schleife was der Drucksensor so meldet und wenn der Wert XY erreicht ist, stoppe den Schrittmotor. Wenn das erledigt ist, gib mir (dem Computer) eine Rückmeldung. -- Wenn der Drucksensor auf einmal keinen Druck mehr anzeigt, dann möchte ich (der Computer) das auch wissen. Dann spiele ich die WAV-Datei "ojeoje.wav" ab.
Haste dafür nen Interpreter?
Und warum reicht dir der Parallelport nicht?
Hallo Panke!

Im Moment reicht mir der Parallelport. Ich warte zwar immer noch auf ein paar Optokoppler von Conrad, aber ich werde mich damit sicher ein wenig spielen. Und mehr als spielen ist das dann auch nicht. Acht mal die Information EIN oder AUS ist nicht viel. Damit kann ich nicht einmal meinen geplanten Roboterarm steuern. Ja, ich dachte wirklich an einen Roboterarm als erstes elektronisches Projekt. Ein Roboterarm mit Sensoren, dem ich beibringen kann, ein paar (verschiedene) Gegenstände zu erfühlen und von einem Ort zum Nächsten zu transportieren. Der Arm soll erkennen was zu transportieren ist und soll es entsprechend dessen Beschaffenheit transportieren.

Es muss ja nicht gleich ein Nussknacker sein. :mrgreen:

--> http://www.myvideo.de/watch/1038919

Und jetzt zu deiner Frage nach einem Interpreter. Die Computerseite möchte ich mit Python machen. Das ist wohl klar. Und wahrscheinlich werde ich zur Steuerung mehrere AVR-Microcontroller heranziehen. Mit diesen kann man per RS232 oder USB-Kabel kommunizieren.

Die AVR-Microcontroller http://www.roboternetz.de/wissen/index.php/Avr kann man (mindesens) in Basic, C oder Assembler programmieren. Für den Anfang dürfte Bascom http://www.roboternetz.de/wissen/index.php/Bascom sicher ausreichen. Damit kann man also dem Microcontroller (kurz µC oder µP) einimpfen, dass wenn vom Computer eine spezielle Signalfolge kommt, dieser etwas spezielles tun soll.

Und es geht auch umgekehrt. Wenn z.B. der µC an seinen Eingängen etwas vorher ausgemachtes "erfühlt", dann kann dieser über das USB-Kabel Daten an den Computer zurück geben.

Ein solcher µC kann über Datenleitungen (z.B. I2C oder CAN) mit anderen µC Kontakt aufnehmen und Daten weitergeben. So entsteht ein komplexes Netzwerk zwischen den Microcontrollern und dem steuernden Hauptcomputer.

In etwa so habe ich meine Aussage mit "Servus µP. Steuere den Schrittmotor..." gemeint.

Links:

- http://www.roboternetz.de/wissen/index. ... ht_gemacht
- http://www.roboternetz.de/wissen/index. ... controller
- http://www.roboternetz.de/wissen/index.php/I2C
- http://www.roboternetz.de/wissen/index.php/CAN

mfg
Gerold
:-)

PS: Ich werde mich erst in ein paar Monaten in Microcontroller einlesen, denn ich muss erst mal den Einstieg in die Elektronik vollziehen. Meine Versuche sind noch in diesem Stadium: :-)

Erste Brettschaltung:
Bild

Das wird mein Parallelport-Versuchsbrett:
Bild

EDIT: Links zu Bilder geändert
Zuletzt geändert von gerold am Mittwoch 17. Oktober 2007, 21:01, insgesamt 1-mal geändert.
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Hallo Gerold!

Ich wuerde mich freuen, wenn du weiterhin ueber deine Versuche berichtest. Ich wollte naemlich auch mal ein wenig ins die Elektronik-Basteln reinschnuppern und habe nach einer einfachen Moeglichkeit gesucht, simple Schaltungen via PC zu steuern. Habe dann auch erstmal acht LEDs ueber die parallele Schnittstelle zum Leuchten gebracht (aehnlich wie hier). Danach verlief sich die ganze Sache irgendwie wieder im Sande... :? Also wenn jemand einfache Projekte/Spielereien kennt, die man auf Linux mit C oder Python umsetzen kann und wo sich die Kosten in Grenzen halten, immer her damit.

Empfehlen kann ich uebrigens die Bastelecke auf http://www.b-kainka.de/, die macht richtig Lust darauf, kaputte Geraete auseinanderzunehmen, zu erforschen und neuen Bestimmungen zuzufuehren.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Rebecca hat geschrieben:Ich wuerde mich freuen, wenn du weiterhin ueber deine Versuche berichtest.
Hallo Rebecca!

Ja, werde ich machen. :D

lg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Rebecca hat geschrieben:Ich wuerde mich freuen, wenn du weiterhin ueber deine Versuche berichtest.
Hallo Rebecca!

Endlich habe ich wieder ein paar Stunden Zeit dafür gefunden. :-)

Ich kann leider im Moment nicht ausführlich darüber berichten. Aber das werde ich nachholen, sobald ich wieder von Wien zurück bin. Bis dahin gibt es ein paar Bilder.

Bild

Bild

Bild

Bild

Bild

Bild

Bild

Bild

Bild


Und hier noch das >> Testvideo <<

Das ist der Code, mit dem ich getestet habe:

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: iso-8859-15 -*-

import parallel
import time


p = parallel.Parallel(port=0)

for i in range(256):
    p.setData(i)
    time.sleep(0.1)

time.sleep(2)
p.setData(0)
lg
Gerold
:-)

EDIT: URLs zu den Bildern geändert
Zuletzt geändert von gerold am Mittwoch 17. Oktober 2007, 21:03, insgesamt 1-mal geändert.
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
thelittlebug
User
Beiträge: 188
Registriert: Donnerstag 20. Juli 2006, 20:46
Wohnort: Wien
Kontaktdaten:

8 widerstände am paralellport können eine soundkarte ergeben ;)

das war zu zeiten interessant als 8bit soundkarten mit 15khz samplefrequenz noch 150€ gekostet haben. die 8 bit hatte man mit dem druckerport auch.
einige alte grafikdemos bieten den druckerport als soundoption an.

die 8 widerstände dienen dazu die unterschiedlichen bits unterschiedlich stark zu bewerten, also im prinzip ist es ein DAC.

lgherby
Andy
User
Beiträge: 196
Registriert: Sonntag 1. Januar 2006, 20:12
Wohnort: aus dem hohen Norden....

Hi Gerold,

ich musste grad ein wenig schmunzeln - oder gar lachen!

Die frühen Anfänge in Richtung "nur ein paar LED´s zu schalten" oder so (letzter Absatz- einfach toll dass Video)

Dein Thread kam mir einfach zu bekannt vor *grins* :lol: :mrgreen:

Gruß Andy
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Mit der Steckplatine und den Klemmen bist du jetzt komplett ohne Loeten ausgekommen, oder? Nicht schlecht...
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Nachtrag

Hier noch der Schaltplan dazu:
Bild

lg
Gerold
:-)

EDIT: URL zum Bild geändert
Zuletzt geändert von gerold am Mittwoch 17. Oktober 2007, 21:05, insgesamt 1-mal geändert.
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Hand
User
Beiträge: 65
Registriert: Sonntag 28. Januar 2007, 14:28

Zufällig arbeite ich in dem Bereich ;)

Sauber währe es:

USB-Microcontroller
Microcontroller mit Ethernet Stack
RS232 (hat fast jeder Micro onboard)

wenns professionell werden soll Über RS232 / Ethernet auf ne SPS zugreifen ;)

bzw RS232 auf RS485 da kannst dann dezentral kostengünstig jeder menge Steuern

Ich träume eh seit geraumer Zeit Python in irgend ner Firma als Steuerzentrale mit dezentraler Pheripherie einzusetzen, leider fehlen mir die Connections ;)
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Hand hat geschrieben:Sauber währe es:
USB-Microcontroller
Microcontroller mit Ethernet Stack
RS232 (hat fast jeder Micro onboard)
[...]
bzw RS232 auf RS485 da kannst dann dezentral kostengünstig jeder menge Steuern
Hallo Hand!

Ich arbeite daran. Derzeit lese ich das Buch "AVR Mikrocontroller Lehrbuch" von Roland Walter. Ich experimentiere intensiv mit dem ATMega8 und bin auf der Stufe, dass ich mit RS232 mit dem Microcontroller kommunizieren kann. Messwerte kann ich bereits vom ATMega zum PC übertragen und per PC Aktionen auslösen. (LEDs schalten ;-) )

Der nächste Schritt wird die Kommunikation mit mehreren EEproms und Mikrocontrollern per RS485, I2C und SPI sein. Vielleicht zwischendrinnen noch ein Experiment mit USB.

Ich will ja nicht langsam erscheinen, aber da es nur ein Hobby ist, werde ich noch eine Weile warten, bis ich mich um Ethernet-Verbindungen mit kleinen Mikrocontrollern kümmere. Aber ich habe mich schon informiert. Es gibt erfolgreiche Projekte mit einem ATMega168. Man muss also kein großes Geld dafür ausgeben. Aber es ist sehr komplex.

Aber du wirst sicher zugeben, für einen Anfänger ist es zuerst mal einfacher etwas mit dem Parallelport zu machen. ;-)

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Hand
User
Beiträge: 65
Registriert: Sonntag 28. Januar 2007, 14:28

Ja die AVR's sind nette Dinger ;)

Ich benutz meistens die kleinen tiny2313 tiny22 und versuch mich im Moment mit Multitasking mit C unter Linux, angefangen hab ich mit ASM und dem Studio ;)

Mit dem Ethernet hab ich mich mal beschäftigt, gibt von Wilke praktisch fertige Controller die man entweder parallel oder seriell steuern kann, feine Sache :)

Mein letztes Projekt war eine Heizgriffsteuerung mit PWM und LIN-Bus Schnittstelle zum PC, liegt jetzt irgendwo hier rum,
mir fehlt einfach die Freizeit um da mal was zu Ende zu bringen ;)

Wie wärs Python ansatzweise zu portieren so dass Scripts aus einem externen bzw. internen Eprom ausgeführt werden, und die serielle Schnittstelle als Console dient? ;)
Antworten