Videozentrifuge/HowTo
Aus Wikiants
Inhaltsverzeichnis |
[Bearbeiten] Technisches Prinzip
Das abgespielte Video besteht aus zwei oder mehreren separierten Videos. Diese oszillieren untereinander mit der Frequenz der Umdrehungsgeschwindigkeit des Bildschirms. Der generierte Videokörper teit sich so in verschiedene raumbezogene Bereiche.
[Bearbeiten] Abwicklung
- Die Rezeptionisten können die " Videozentrifuge " mittels einem Fusstaster starten.
- Der Schalter übergibt einem USB-Interface ein einfaches Signal,
- welches zum Server weitergeleitet wird.
- Zudem startet das Interface den Frequenzumrichter,
- welcher den drei-Phasen-Motor betreibt.
- Der Server logt sich via Wireless Ethernet beim drehendem Computer ein
- und startet ein Videoscript.
- Am Ende des Videos übergibt der gedrehte Computer dem Server ein Stop-Befehl.
- Der Stop-Befehl kann auch beim Stop-Taster ausgelöst werden.
Zusätzlich
- Das Starten des erschütterungsresistenten Computers beim Aufbooten des Servers via wireless wake on lan ( wol )
[Bearbeiten] Fusstaster
Mit einem Relais betrieben. (Bilder und HowTo folgen)
[Bearbeiten] Arduino
Mit diesem Program werden digitale Eingänge überwacht. Kommt ein 5V Signal ( digital ein High ) fährt der analoge Ausgang hoch ( von 0V bis hier jetzt 2,irgendwas V ). Bei einem nächsten High Signal, fährt der analoge Ausgang wieder auf Low zurück. Beim Hochfahren wird zusätzlich ein Character an den seriellen Ausgang übergeben. Kommt von der Serverseite her ein spezifischer Character, geht der analoge Ausgang auch auf Low zurück.
Nicht gerade High End, jedoch läufts einigermassen (der analoge Ausgang ist nicht gerade so, dass man ihn als stabil bezeichnen könnte). Aus zeitlichen Gründen musste ich diesen Weg einschlagen. Ich hoffe, dass ich das ganze bei einer weiteren Version überarbeiten kann.
[Bearbeiten] Weblink
- Arduino ist ein einfach programmierbares OpenSource Interface.
[Bearbeiten] Frequenzumrichter
(Bilder und HowTo folgen)
[Bearbeiten] drei-Phasen-Motor
(Bilder und HowTo folgen)
[Bearbeiten] ASUS WL-500g Premium
ASUS WL-500g Premium kann bequem mit dem edlen X-wrt-Betriebssystem installiert und bedient werden.
Arduino-serial.zip: Arduino Serial IO - für Asus wl-500g XWRT - mittels NSLU2 compiliert
Screen ist ein vielfältiges bidirectionales Übertragungsprogi. Damit kann man auch dem Arduino einzelne Zeichen schicken und empfangen.
screen /dev/usb/tts/0
[Bearbeiten] Weblinks
- x-wrt.org
- dd-wrt.org
- downloads x-wrt snapshots
- wiki.openwrt.org backup and restore
- systemausfall.org ein suuper HowTo Wiki!!!
[Bearbeiten] erschütterungsresistenter Computer
Es gibt verschiedene Möglichkeiten, einen PC erschütterungsresistent um zu bauen. Das Wichtigste ist natürlich die Hard Disk. Hierfür können kommerzielle USB-Flashdisks zum Einsatz kommen. Ein hierfür geeignetes Debian basierendes Betriebssystem wäre z.B.:
Aus diversen Gründen habe ich mich aber für ein schlankes hauseigenes Debian entschieden und verwende dafür ein edles Solid State Drive. Dies ist wie eine herkömmliche Hard Disk, einfach schneller, leiser und auch erschütterungsfest :)
(Bilder und HowTo-Ergänzungen folgen noch)
[Bearbeiten] Automatisches Login & Start des X Servers mittels Debian ( ohne gdm, kdm oder xdm )
vim /etc/inittab
bei den respawn Einträgen (zuunterst) folgendes abändern (beim vim: i für insert):
1:2345:respawn:/sbin/autologin tty1 login -f rosenkohl 2:23:respawn:/sbin/getty 38400 tty2 3:23:respawn:/sbin/getty 38400 tty3 4:23:respawn:/sbin/getty 38400 tty4 5:23:respawn:/sbin/getty 38400 tty5 6:23:respawn:/sbin/getty 38400 tty6
existiert der Benutzer rosenkohl noch nicht, so muss er/sie/es noch erstellt werden. Das Passwort kann gesetzt werden, jedoch wird es mit dem autologin script umgangen:
adduser rosenkohl
XServer auf dem Display 0 starten:
vim /sbin/autologin
#!/bin/bash #exec 0</dev/$1 1>/dev/$1 2>&1 exec 0</dev/$1 2>&1 su rosenkohl startx /usr/bin/fluxbox -- :0
[Bearbeiten] Aufstarten des erschütterungsresistenten Computer via Wireless WOL
per Zweitcompi aufstarten:
#!/bin/ash exec wakelan -b 192.168.31.255 -m xx:xx:xx:xx:xx:xx
oder beim Aufbooten des Servers:
# vim /etc/init.d/ibm-wol
#!/bin/sh exec /opt/bin/wakelan -b 192.168.31.255 -m xx:xx:xx:xx:xx:xx sleep 1 exec /opt/bin/wakelan -b 192.168.31.255 -m xx:xx:xx:xx:xx:xx sleep 1 exec /opt/bin/wakelan -b 192.168.31.255 -m xx:xx:xx:xx:xx:xx sleep 1 exec /opt/bin/wakelan -b 192.168.31.255 -m xx:xx:xx:xx:xx:xx sleep 1
Dabei muss noch ein Symlink in die Bootabfolge gesetzt werden. Bspw. Aufstartposition 50:
ln -s /etc/init.d/ibm-wol /etc/rc.d/S50ibm-wol
[Bearbeiten] mplay
Mplayer auf dem XServer, Display 0 starten. Danach den Stopbefehl zur Abschaltung des Motores via Arduino abschicken.
#!/bin/bash killall -9 mplayer sleep 1 #DISPLAY=:0 mplayer -fs -vo x11 -vf scale=1024:768 -sws 0 avimerge4.avi DISPLAY=:0 mplayer -fs -vo x11 -vf scale=1024:768 -sws 0 6fps.avimerge.avi ssh root@192.168.31.xx '/opt/bin/arduino-serial -b 9600 -p /dev/usb/tts/0 -s p'
[Bearbeiten] Videoscripts
[Bearbeiten] Videos auf einem Zweitrechner abspielen
hierbei muss das Script mplay das Video starten
#!/bin/ash dbclient -t -y -i /opt/.ssh/id_rsa elchig@192.168.31.112 '/usr/local/bin/mplay'
hier wird per das video per ssh auf dem Fremdrechner gestartet... bei hoher Auflösung des Filmes geht dies nicht mehr.
#!/bin/ash dbclient -i .ssh/id_rsa.pub elchig@192.168.31.112 'DISPLAY=:0 mplayer -vo x11 -fs cbr.avi'
[Bearbeiten] Weblinks
[Bearbeiten] nach dem der Stoppbefehl ausgeführt wird, noch vorhandene mplayer PID's beseitigen
dbclient -t -y -i /opt/.ssh/id_rsa elchig@192.168.31.112 'killall -9 mplayer'
[Bearbeiten] Videos erstellen
Das Ziel ist, aus zwei separaten ein osziellierendes Video erzeugen.
Hiermit kann in der Konsole aus einem Video ein Ordner mit Bildern im Format png, jpg... erstellt werden.
mplayer elchig.avi -vo png
- z = 0 --> ohne Komprimierung
- z = 1 --> schlechte Bildqualität, aber schnell
mplayer elchig.avi -vo png:z=1
Mittels diesem Script können die Bilder unbenamst werden ( beim zweiten Video x bspw. auf 1 setzen ):
#!/bin/bash
x=0
mkdir renamed
for pics in *.jpg
do
picname=`printf "%.6d.jpg" ${x}`
cp "$pics" "./renamed/$picname"
let "x+=2"
done
und hier wird nun der Ordner mit den chronologisch, nummerisch benannten Bildern zu einem Video zusammen gerechnet:
mencoder 'mf://*.png' -mf type=png:fps=6 -ovc libdv -o 6fps.raw mencoder 'mf://*.png' -mf type=png:fps=12 -o 1.1.scene.avi -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=4000:vhq:keyint=250 mencoder 'mf://*.png' -mf type=png:fps=12 -o 1.scene.avi -ovc lavc -lavcopts vcodec=msmpeg4v2:vbitrate=4000:vhq:keyint=250i mencoder 'mf://*.jpg' -mf type=jpg:fps=36 -o 36fps.pingu.avi -ovc lavc-lavcopts vcodec=mpeg4
- fps=x ( so können die Frames per Second definiert werden )
mencoder -ovc help # dies zeigt die verschiedenen codecs, welche von den mplayer libarys unterstützt werden und von mencoder genutzt werden man mencoder # so gelangt man mit Debian ins Manual von mplayer & mencoder
[Bearbeiten] Weblinks
- gentoo-wiki und hier eine Online Hilfe.
[Bearbeiten] Quellen
[Bearbeiten] Weblinks
[Bearbeiten] Lizenz
Alle hier beschriebenen Arbeiten wie auch das technische Prinzip unterliegen der Lizenz by-nc-sa 3.0 von Creative Commons ( Namensnennung, keine kommerzielle Nutzung, Weitergabe unter gleichen Bedingungen, unported ). Der Urheber ist Patrick Schönenberger - Petrak ( Petrak.WikiBees.org ).

