hey super! mit so viel antworten/resonanz hätte ich jetzt nicht gerechnet da freut sich meiner einer!
ich hole mal ein bisschen aus, da ich weiß das hier alle sehr technikverliebt sind (wohlfühl mal schnell zum ausdruck bring an dieser stelle) also ab gehts mitn lesestoff
Hardware-Computer/Server
Okay, die ganze schaltung wird über einen kleinen computer realisiert. dieser computer muss nicht wirklich bombige hardware an board haben. ich habe für mich einen kleinen ausrangierten laptop (700mhz, 256mb arbeitsspeicher, 20 gb hdd, windows xp) verwendet. das reicht vollkommen und ist eigentlich sogar schon überdimmensioniert man kann natürlich auch einen desktop-rechner nehmen oder wenn man bereits einen htpc sein eigen nennt kann dieser natürlich auch benutzt werden. das wichtige an dieser stelle: ein parallelport muss vorhanden sein.
1_2013-01-10.jpg
(parallele schnittstelle oder LPT)
Der parallelport wurde früher dazu benutzt um einen drucker anzuschließen. heutige drucker werden fast ausschließlich über den usb-port bedient, deshalb ist bei neueren rechnern leider KEIN parallelport mehr vorhanden (mir fällt auch jetzt keine andere hardware außer ein null-modem-kabel ein, die an dem parallelport angeschlossen werden konnte)
falls ihr einen rechner habt der keinen parallelport mehr hat, könnt ihr diesen nachrüsten mit einer pci-steckkarte (kostet zu diesem Zeitpunkt bei reichelt oder anderen firmen um die 12-15 euro).
Aufbau-Parallelport
Das schöne am Parallelport ist, das er über die software ohne großartige kenntnis über microcontroller ö.ä. ansteuerbar ist. zweites, großes plus: er ist voll ttl kompatibel, d.h. er kann direkt an einen schaltkreis mit gängigen ic's, transistoren usw. angeschlossen werden, da die ausgangsspannung 5V beträgt (bitte ggf. vorwiderstand benutzen). er verfügt über 8 einzeln schaltbare ausgänge die wir für unser projekt benutzen werden, sowie über 4 eingänge, die benutzt werden können um dem system etwas mitzuteilen (bspw. der vorhang ist zu, jemand betritt den raum o.ä.) doch das werden wir eventuell später im weiteren verlauf des projektes benötigen. primär beschäftigen wir uns erst mal mit den 8 ausgängen.
ich möchte hier noch einmal betonen, das jeder hier auf eigene faust handelt, also bitte nicht sauer sein wenn euere schaltung einen kurzen verursacht, weil sie falsch verdratet ist und euch der rechner um die ohren fliegt. wir werden hier später mit 220Volt arbeiten!! also bitte, falls ihr nicht gerade elektriker seid, holt bitte jemanden der eure schaltung überprüft bevor ihr loslegt. genauso verhält es sich auch mit der schwachstrom logikschaltung: EIN KURZSCHLUSS KANN EUREN COMPUTER ZERSTÖREN!(auch meinen! also: keinerlei haftung, basteln ist die devise)
Parallelport - viele pins - was ist wo
2_2013-01-10.jpg
D0-D7 (grün) sind die ausgänge die wir brauchen. (und natürlich die masse)
ich habe ein altes druckerkabel genommen, mit einem messgerät nach den entsprechenden leitungen gesucht und diese alle erst mal an eine lüsterklemme mit led's gehängt.
3_2013-01-10.jpg
(sorry für die schlechte quali)
und bevor mich jemand schlägt: ja, es fehlen die vorwiderstände, aber der port und die led's können das ab.
Software
natürlich muss auf dem computer ein betriebssystem drauf. ich hatte früher eine schaltung mit linux realisiert (ich mag linux) aber auf windows geht es auch. (für linux gibt es tonnenweise anleitungen für die steuerung des parallelports im netz). da mein lappi auf windows läuft beschränke ich mich auch auf die windows-variante.
steuerung des ports
als erstes müssen wir dem betriebssystem eine .dll datei zur verfügung stellen damit programme auf den parallelport zugreifen dürfen. (bei windows 95 und nt ging das auch ohne diese datei, aber die sicherheitsbeschränkungen des betriebssystems ab xp sind etwas härter geworden, so dass diese datei benötigt wird.) die datei heißt inpout32.dll und läuft in der version 1.0.0.1 auf windows xp stabil. diese datei muss in das system32 verzeichnis (bspw. c:\winxp\system32 ) einfach reinkopieren reicht.
inpout32.zip
dann brauchen wir eine software die den port steuert (diese braucht die inpout32.dll). es gibt viele kleine programme die das machen, aber letztendlich hat sich für mich portcontrol von Tomi Engdahl (gibts für windows und linux) durchgesetzt.
portcontrol.zip
Mit diesem kleinen programm kann man den port per commandozeile steuern.
4.jpg
(portcontrol.exe)
um den ausgang d0 zu aktivieren schreibt man bspw:
portcontrol.exe LPT1DATA read setbit 0 write
schwups leuchtet die erste led.
um die den ausgang d0 wieder auszuschalten schreibt man:
portcontrol.exe LPT1DATA read resetbit 0 write
und schon geht die led aus.
wenn das funktioniert haben wir schon mal die halbe miete. wir können ausgänge ein- und ausschalten. natürlich will niemand großartig kommandozeilen tippen. wir machen uns das einfacher.
wir werden auf dem computer einen kleinen webserver aufsetzen. somit können wir, wenn man das will sogar von unterwegs alles kontrollieren. bevor jetzt alle mit paranoia wie wild auf den schließen-button klicken... man muss den webserver ja nicht ins internet hängen. alleine das er im lokalem netzwerk über w-lan für smartphones, laptops oder tablets erreichbar ist, die im selben netzwerk sind reicht vollkommen.
Webserver
Als absolut alternativlos und einfach zu installieren hat sich bei mir wamp eingebürgert (wamp = windows apache mysql php). das ist ein paket welches einen webserver mit allen erforderlichen vorraussetzungen installiert, der sofort nach der installation ohne größeren installationsaufwand lauffähig ist. für unser projekt genau das richtige.
Wamp-Webseite
ich habe bei mir die neueste distribution verwendet. läuft wie zucker
Steuerung über php
jetzt wird ein wenig kniffelig, denn wenn man etwas customized haben möchte muss man sich ein wenig mit php programmierung und ajax auskennen. da ich from the hell webentwickler bin, werde ich im laufe des projektes eine oberfläche erstellen in der ihr alle knöpfe und auch abfolgen einfach über das interface steuern und eingeben könnt. im jetzigen stadium (testphase) ist das leider noch nicht so, dennoch hier ein script welches zumindest schon einmal die einzelnen d0-d7 pins aktiviert und deaktiviert. zum testen reicht das vollkommen aus. die software für das projekt werde ich natürlich hier jeweils in der neuesten version online stellen. (die programmierung würde hier glaub ich den rahmen sprengen)
www.zip
(diese datei entpacken und alles inkl. portcontrol.exe ins www verzeichnis (bspw: c:\wamp\www) kopieren.
Das script stammt auch von tomi engdahl der hier eine wirklich gute vorarbeit geleistet hat. danke an dieser stelle.
ihr solltet beim aufruf im browser dann etwas das hier bekommen:
5.jpg
mit den knöpfen könnt ihr die pins d0 bis d7 ein und ausschalten.
wer gerne mit meiner umgebung arbeiten möchte bzw. sie sich mal anschauen möchte kann sich gerne diese datei hier herunterladen (danke an dieser stelle für das lob des designs Morris )
byteboosts_autocinema_v0_1.zip
Was macht das php-script eigentlich?
im prinzip ganz simpel. das was ihr machen würdet wenn ihr alles per commando in die portcontrol.exe schreiben würdet. das php-script ruft das programm portcontrol.exe mit entsprechend hinterlegten parametern im hintergrund auf. Das schöne an so einem programm ist, das es mehrere dinge hintereinander erledigen kann.
Bei den screenshots im anfrangspost sieht man zum beispiel den knopf "kino start". dahinter verbirgt sich eine abfolge von codes die folgendes durchführen:
Leinwand runter
Beamer an
10 sek warten
alle beleuchtungen ausschalten
analog dazu verhält sich "kino stop"
Beamer aus
leinwand hoch
1 hintergrundbeleuchtung an
im nächsten post werde ich zur ansteuerung der hardware kommen. doch für heute erst mal pause. (finger glühen :)) falls ihr fragen habt immer her damit!