Videozentrifuge/HowTo

Aus Wikiants

Wechseln zu: Navigation, Suche

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


Zusätzlich


[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


[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


[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
[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 ).

Persönliche Werkzeuge