diff options
author | Christian Franke <nobody@nowhere.ws> | 2016-03-08 00:00:23 +0100 |
---|---|---|
committer | Christian Franke <nobody@nowhere.ws> | 2016-03-08 00:00:23 +0100 |
commit | 3b3b5df6ec23af05519075fc32a784716f4479dd (patch) | |
tree | 5712f1857a2d7af78d9b8c0a156f5c199e67b7c4 /Projekte | |
parent | cf5f1ab0af3ab5d502d351da76d9030b8a70efa8 (diff) |
Reorganisation
Diffstat (limited to 'Projekte')
21 files changed, 575 insertions, 0 deletions
diff --git a/Projekte/Bierbrauen.mdwn b/Projekte/Bierbrauen.mdwn new file mode 100644 index 0000000..a62f165 --- /dev/null +++ b/Projekte/Bierbrauen.mdwn @@ -0,0 +1,141 @@ +Wir wollen Bier brauen! + +## Informationen + +Das Chaosdorf hat schonmal Bier gebraut - [[https://wiki.chaosdorf.de/OwnBeer]] + +Andreas bogk auch: [[http://www.bogk-bier.de/]] + +Der Hobbybrauerversand: [[http://www.hobbybrauerversand.de/]] + +Unter/Obergärige Hefe: [[http://www.bier-deluxe.de/bier-wissen/bier-grundwissen/untergaerig-vs.-obergaerig]] + +Verschiedene Berechnungen: [[http://fabier.de/biercalcs.html]] + +Geräte selber bauen: [[http://www.besser-bier-brauen.de/selber-bier-brauen/anleitungen]] + +Wasserhärte: [[http://www.besser-bier-brauen.de/selber-bier-brauen/zutaten/wasser]] + +Wasserhärte in Leipzig: [[http://www.wasser-leipzig.de/index.php?page=121]] + + +## Konzept + +2bdone + +## Brauprozess mit benötigten Geräten + +### Maischen: +* Würzepfanne (Glühweinkocher bzw. großer Topf) +* Jod zum Stärketest +* Thermomether + +### Läutern: +* Läuterbottich mit Läuterblech + +### Hopfen Kochen: +* Würzepfanne + +### Abseihen: +* Gerät zum Abseihen, ob das mit dem Läterbottich geht? + +### Kühlen und Hefe Hinzufügen, Stammwürze bestimmen +* Gährbottich +* Bierspindel + +### Abfüllen, Nachgährung, Lagern +* Abfüllröhrchen +* Flaschen + +## Rezepte + +Hier eine kleine Sammlung: [[http://meinsudhaus.de/bier-rezepte/]] + +## Benötigte Verbrauchsmaterialien + +Malz 2-3euro/kg - ca. 4kg fuer 20 Liter --> 12 Euro + +Hopfen 4 Euro/100g - ca. 50g fuer 20 Liter --> 4 Euro + +BierHefe 3 Euro fuer 20 Liter --> 3 Euro + +Jod - 50ml fuer 3 euro + +Gesamt (pro Brauvorgang): 22 Euro + +## Benötigte Technik + +Glühweinkocher zum Würze kochen bekommen wir erst mal für lau ansonsten + +Thermometer 12 - 15 euro + +Würzespindel - ca. 6 euro + +Großer Topf 20l - ca. 30 euro bei ebay + +Gährbehälter mit Läuterblech, z.B. Gärfass - 57 euro + +Thermometer - 12 Euro + +Abfüllröhrchen - 2.50 Euro + +Gesamt (einmalig): ca. 80 Euro + +## Kalkulation + +Anschaffungen: 80.00 Euro + +Verbrauchsmat.: 22.00 Euro + +Biersteuer: 3.00 Euro + +Energiekosten: 10.00 Euro + +-------------------------------------------------- + 115.00 Euro + +Erster Brauvorgang - ca. 20l --> 40 Flaschen a 0.5 Liter + +Bei 5 Brauvorgängen im Jahr, verteilen sich die Anschaffungskosten so, +das man mit 2 - 3 Euro pro Flasche auskommen sollte. + + +## Biersteueranmeldung + +Die Anmeldung der Biersteuer hat beim HZA in Dresden zu erfolgen. +Am 9. Januar wurde diesbezüglich beim HZA telefonisch und per Mail angefragt. + +Hauptzollamt Dresden +0351 / 8161 - 1267 + +## Email an HZA + +An: poststelle@hzadd3.bfinv.de +Betreff: Biersteuerenmeldung (erstmalig) + +Sehr geehrte Damen und Herren, + +Wir sind zwei Privatpersonen, die in den Räumen eines gemeinnützigen Vereins Bier zu +Demonstrationszwecken brauen möchten. Anschliessend soll das Bier in Flaschen gegen +eine Spende abgegeben werden. + +Die jährliche Produktion soll 2 Hektoliter nicht übersteigen. Pro Brauvorgang werden zunächst +maximal 25 Liter (0.25 Hektoliter) gebraut werden. Der erste Brauvorgang ist für Anfang +Februar 2014 geplant. + +Welche Möglichkeiten der Steueranmeldung bestehen bei dieser Art des Brauvorhabens +und wie sind diese durchzuführen? + +Ort des Brauens soll sein: +sublab e.V. +Karl-Heine-Strasse 93 +04229 Leipzig + +mit freundlichen Grüßen + + + + + + + diff --git a/Projekte/CCTV-Hacking.mdwn b/Projekte/CCTV-Hacking.mdwn new file mode 100644 index 0000000..eb8558c --- /dev/null +++ b/Projekte/CCTV-Hacking.mdwn @@ -0,0 +1,119 @@ +[[!img BdzMCUkIIAA_te2.jpg- align="right" size="" alt=""]] + +##Zusammenfassung + +Wir experimentieren gerade im Rahmen eines Kunstprojektes mit Überwachungskameras herum. Das Ziel ist ein Interface für 8 Überwachungskameras zu schreiben, welches die Bilder aller Kameras anzeigt, und mit dem man die Kameras steuern kann. + +Da es sich dabei um undokumentierte Hardware handelt, haben wir die Befehle, die die Kamera per Webinterface entgegennimmt mitgelesen. + +## Wireshark starten + +Die Kamera hat im Auslieferungszustand eine feste statische IP aus 192.168.0.0/24. Wenn die Kamera bootet sendet sie einige IP Pakete, diese kann man z.B. mit Wireshark aufzeichnen um schnell die IP der Kamera herauszufinden. + +Damit man jetzt nicht den ganzen Traffic durchwühlen muss, empfiehlt es sich als display Filter +*http.request.method* zu nehmen. Dann sieht man alle Requests, die in Richtung Kamera vom Webinterface aus gehen. + +Anschliessend steuert man die IP der Kamera im Browser an (bei mir 192.168.0.117). Als Login funktioniert hoffentlich die Werkseinstellung (admin/123456). + +Nun kann man im Webinterface rumklicken, und sieht in wireshark alle Requests. + +## Die Kamera + +Es handelt sich bei den benutzten Kameras um die *Conceptronic Wireless Pan & Tilt Network Camera*. Diese gibt es unter vielen anderen Bezeichnungen für wenig Geld im Elektronikladen des Vertrauens. + +## Steuerbefehle + +One Direction: +[[!format c """ +http://192.168.0.117/decoder_control.cgi?onestep=1&command=X +X = 0 --> down +X = 2 --> up +X = 4 --> clockwise +X = 6 --> counter-clockwise +"""]] + +Two Directions: +[[!format c """ +http://192.168.0.117/decoder_control.cgi?command=X +X = 93 --> up AND counter-clockwise +X = 92 --> up AND clockwise +X = 91 --> down AND counter-clockwise +X = 90 --> down AND clockwise +"""]] + +after the two directions commands is sent, a second request is sent 500ms later: +[[!format c """ +http://192.168.0.117/decoder_control.cgi?command=1 +"""]] + +Streife: +[[!format c """ +Horizontal: http://192.168.0.117/decoder_control.cgi?command=28 +Stop: http://192.168.0.117/decoder_control.cgi?command=29 +Vertikal: http://192.168.0.117/decoder_control.cgi?command=26 +Stop: http://192.168.0.117/decoder_control.cgi?command=27 +"""]] + +Bildeinstellungen: +[[!format c """ +Reversal: http://192.168.0.117/camera_control.cgi?param=5&value=1 +Non-Reversal: http://192.168.0.117/camera_control.cgi?param=5&value=2 +Mirror: http://192.168.0.117/camera_control.cgi?param=5&value=3 +Non-Mirror: http://192.168.0.117/camera_control.cgi?param=5&value=0 +"""]] + +Snapshot: +[[!format c """ +http://192.168.0.117/snapshot.cgi +"""]] + +Refresh-Button: +[[!format c """ +http://192.168.0.117/live.htm +http://192.168.0.117/videostream.cgi?rate=0 +"""]] + +Mode: +[[!format c """ +50Hz: http://192.168.0.117/camera_control.cgi?param=3&value=0 +60Hz: http://192.168.0.117/camera_control.cgi?param=3&value=1 +outdoor: http://192.168.0.117/camera_control.cgi?param=3&value=2 +"""]] + +Size: +[[!format c """ +160x120: http://192.168.0.117/camera_control.cgi?param=0&value=2 +320x240: http://192.168.0.117/camera_control.cgi?param=0&value=8 +640x480: http://192.168.0.117/camera_control.cgi?param=0&value=32 +"""]] + +Rate: +[[!format c """ +Full Speed: http://192.168.0.117/videostream.cgi?rate=0 +20 fps: http://192.168.0.117/videostream.cgi?rate=1 +15 fps: http://192.168.0.117/videostream.cgi?rate=3 +10 fps: http://192.168.0.117/videostream.cgi?rate=6 + 5 fps: http://192.168.0.117/videostream.cgi?rate=11 + 4 fps: http://192.168.0.117/videostream.cgi?rate=12 + 3 fps: http://192.168.0.117/videostream.cgi?rate=13 + 2 fps: http://192.168.0.117/videostream.cgi?rate=14 + 1 fps: http://192.168.0.117/videostream.cgi?rate=15 +.5 fps: http://192.168.0.117/videostream.cgi?rate=17 +.33 fps: http://192.168.0.117/videostream.cgi?rate=19 +.25 fps: http://192.168.0.117/videostream.cgi?rate=21 +.2 fps: http://192.168.0.117/videostream.cgi?rate=23 +"""]] + + +Brightness: +[[!format c """ +http://192.168.0.117/camera_control.cgi?param=1&value=X +X = 0, 16, 32, 48, 64, 80, 96, 112, 128, 144, 160, 176, 192, 208, 224, 240 +"""]] + +Contrast: +[[!format c """ +http://192.168.0.117/camera_control.cgi?param=2&value=X +X = 0, 1, 2, 3, 4, 5, 6 +"""]] + diff --git a/Projekte/CCTV-Hacking/BdzMCUkIIAA_te2.jpg- b/Projekte/CCTV-Hacking/BdzMCUkIIAA_te2.jpg- Binary files differnew file mode 100644 index 0000000..467353c --- /dev/null +++ b/Projekte/CCTV-Hacking/BdzMCUkIIAA_te2.jpg- diff --git a/Projekte/Coreboot-X201.mdwn b/Projekte/Coreboot-X201.mdwn new file mode 100644 index 0000000..df87846 --- /dev/null +++ b/Projekte/Coreboot-X201.mdwn @@ -0,0 +1,79 @@ +[[!img coreboot.png align="right" alt="coreboot logo"]] + +## n00bie guide for getting [[coreboot|http://www.coreboot.org/Welcome_to_coreboot]] to a x201{i/s/t} + +###why would I want this? +- prevent [[badBIOS|https://www.schneier.com/blog/archives/2013/11/badbios.html]] +- free open source BIOS / EFI implementation +- fast (faster than Lenovo BIOS) +- no PCI ID whitelist restrictions (WiFi / WWAN) +- you can boot even with SATA-password set (for example to change/delete it with hdparm) +- hotswap harddrive (didn't test, but should work) +- it's cool. + +###okay, show me how! +#### preliminary actions +first you should update your existing BIOS. This is important as you cannot update your [[ECP|http://www.thinkwiki.org/wiki/Embedded_Controller_Firmware]] version afterwards. Linux users can use the ISO files provided by Lenovo and do some nice trick described [[here|http://www.thinkwiki.org/wiki/BIOS_update_without_optical_disk]] + +It is also advisable to save the output of dmidecode somewhere, as you need specific BIOS versions strings to get thinkpad_acpi to work. + +next buy or build a SPI flasher and get a SOIC8 clip for mounting the chip correctly. + +#### the ugly part +you have to dump the existing BIOS using [[flashrom|http://www.flashrom.org]] and an external SPI flasher. +here's the pinout: +[[!format bash """ + ==== front (display) ===== +3.3V N/C CLK MOSI + | | | | + | | | | +CS MISO N/C ground + ==== back (touchpad) ===== +"""]] + +[[!img bus_pirate.jpg align="right" size="" alt="buspirate attached"]] +Now it should look similar to this: + +You probably have to adjust your contacts quite often for it to work, so don't give up ;) try to keep the cables as short as possible. + + +now read your chip at least twice with + +[[!format bash """ +flashrom -p <yourprogrammer> -r flash.bin +flashrom -p <yourprogrammer> -r flash2.bin +diff flash.bin flash2.bin +"""]] + +If the files differ you have read errors +-> bad: check your cables && try again. + +#### easy part +- extract descriptor / intel ME +[[!format bash """ +dd if=flash.bin of=coreboot/3rdparty/mainboard/lenovo/x201/descriptor.bin \ + count=12288 bs=1M iflag=count_bytes +dd if=flash.bin of=coreboot/3rdparty/mainboard/lenovo/x201/me.bin \ + skip=12288 count=5230592 bs=1M iflag=count_bytes,skip_bytes +"""]] +- extract vgabios.bin from BIOS (I used [[PhoenixTool|http://forums.mydigitallife.info/threads/13194-Tool-to-Insert-Replace-SLIC-in-Phoenix-Insyde-Dell-EFI-BIOSes]] in a WinBitch VM for this, as the included bios extractor from coreboot didn't work for me) +- hint [[SWIM|http://www.urbandictionary.com/define.php?term=swim]] [[uploaded|http://www.datafilehost.com/d/4c01e3d8]] [[it|http://rghost.net/55012997]] [[somewhere|http://fbx.ro/sseikovp02nh3ds2]] in the internets +- use your prior version number for local version string (e.g [["6QET70WW (1.40)"|http://www.thinkwiki.org/wiki/List_of_DMI_IDs]]) +- at least UNCHECK fake IFD and specify paths to descriptor / ME +- select SeaBIOS as payload +- DO NOT FORGET vgabios.bin +- [[compile coreboot|http://www.coreboot.org/Build_HOWTO]] (you'll need gcc-multilib and your python bin should point to python2, else create a venv) +- flash resulting ROM image with +[[!format bash """ +flashrom -c $Chip -w coreboot/build/coreboot.rom -p internal:laptop=force_I_want_a_brick """]] + +credits to Vladimir Serbinenko (coreboot developer) for answering to all my questions and fixing minor problems. + +## additional pics +[[!img chip_location.jpg alt="Chip location"]] +[[!img soic_clip.jpg alt="SOIC mount"]] +[[!img self_build_spi.jpg alt="SPI flasher"]] + +## additional links +[[Coreboot wiki page for x201|http://www.coreboot.org/Board:lenovo/x201]] +[[BIOS extract|http://www.coreboot.org/Bios_extract]] diff --git a/Projekte/Coreboot-X201/bus_pirate.JPG b/Projekte/Coreboot-X201/bus_pirate.JPG Binary files differnew file mode 100644 index 0000000..a877be2 --- /dev/null +++ b/Projekte/Coreboot-X201/bus_pirate.JPG diff --git a/Projekte/Coreboot-X201/chip_location.JPG b/Projekte/Coreboot-X201/chip_location.JPG Binary files differnew file mode 100644 index 0000000..1c02614 --- /dev/null +++ b/Projekte/Coreboot-X201/chip_location.JPG diff --git a/Projekte/Coreboot-X201/coreboot.png b/Projekte/Coreboot-X201/coreboot.png Binary files differnew file mode 100644 index 0000000..00cc41d --- /dev/null +++ b/Projekte/Coreboot-X201/coreboot.png diff --git a/Projekte/Coreboot-X201/self_build_spi.JPG b/Projekte/Coreboot-X201/self_build_spi.JPG Binary files differnew file mode 100644 index 0000000..0268a66 --- /dev/null +++ b/Projekte/Coreboot-X201/self_build_spi.JPG diff --git a/Projekte/Coreboot-X201/soic_clip.JPG b/Projekte/Coreboot-X201/soic_clip.JPG Binary files differnew file mode 100644 index 0000000..b861881 --- /dev/null +++ b/Projekte/Coreboot-X201/soic_clip.JPG diff --git a/Projekte/Fahrradlauti.mdwn b/Projekte/Fahrradlauti.mdwn new file mode 100644 index 0000000..04c1aa5 --- /dev/null +++ b/Projekte/Fahrradlauti.mdwn @@ -0,0 +1,22 @@ +Der Fahrradlauti *Makeshift 3000* war ein Projekt, welches in kurzer Zeit im Herbst 2010 realiziert worden ist. + +## Ziel + +[[!img fahrradlauti.jpg align="right" size="" alt=""]] + +Ohne Budget (wie immer, Anm: war zu diesem Zeitpunkt so, ist inzwischen anders) eine mobile Beschallungsmoeglichkeit fuer eine Klimademo mit 50 - 150 Leuten zu bauen, welche (aufgrund des Anliegens) nicht mit einem Kraftfahrzeug bewegt wird. + +## Aufbau + +[[!img fahrradlauti_parts.jpg align="right" size="" alt=""]] + +Der Verstaerker welcher benutzt worden ist, ist in einem gesonderten Artikel beschrieben. + +[[!img daemmung.jpg align="right" size="" alt=""]] + +## Erfahrungen + +[[!img seitenteil.jpg align="right" size="" alt=""]] + +Insgesamt waren wir vom Ergebnis recht positiv ueberrascht. Die Anlage uebersteuerte zwar hoerbar, aber nicht stoerend, wenn sie mit voller Lautstaerke betrieben worden ist. Dennoch konnten offensichtlich (es gab keine Beschwerden) alle Demoteilnehmer_innen die Redner_innen gut verstehen. Man muss dazusagen, das die Startkundgebung auf dem Willi-Brandt-Platz in Leipzig auch ein denkbar lauter Ort ist. + diff --git a/Projekte/Fahrradlauti/daemmung.jpg b/Projekte/Fahrradlauti/daemmung.jpg Binary files differnew file mode 100644 index 0000000..86a970a --- /dev/null +++ b/Projekte/Fahrradlauti/daemmung.jpg diff --git a/Projekte/Fahrradlauti/fahrradlauti.jpg b/Projekte/Fahrradlauti/fahrradlauti.jpg Binary files differnew file mode 100644 index 0000000..0fce0e7 --- /dev/null +++ b/Projekte/Fahrradlauti/fahrradlauti.jpg diff --git a/Projekte/Fahrradlauti/fahrradlauti_parts.jpg b/Projekte/Fahrradlauti/fahrradlauti_parts.jpg Binary files differnew file mode 100644 index 0000000..f9af999 --- /dev/null +++ b/Projekte/Fahrradlauti/fahrradlauti_parts.jpg diff --git a/Projekte/Fahrradlauti/seitenteil.jpg b/Projekte/Fahrradlauti/seitenteil.jpg Binary files differnew file mode 100644 index 0000000..ab376a7 --- /dev/null +++ b/Projekte/Fahrradlauti/seitenteil.jpg diff --git a/Projekte/Fermenter.mdwn b/Projekte/Fermenter.mdwn new file mode 100644 index 0000000..0c73975 --- /dev/null +++ b/Projekte/Fermenter.mdwn @@ -0,0 +1,33 @@ +Mit Fermentation lassen sich viele nette Dinge herstellen, angefangen von Tempeh über Sojasoße bis hin zu Nattō. Ein Fermenter in dem man die Temperatur regeln kann ist dafür je nach konkretem Anwendungsfall nützlich oder erforderlich. Auf dieser Wikiseite soll nun der im sublab gebaute Fermenter beschrieben werden. + +## Such Box +Da der Fermenter über längere Zeit Temperaturen um die 30°C aufrecht erhalten soll, empfiehlt es sich, dafür einen isolierten Schrank zu nutzen, um nicht unnötig Energie zu verschwenden. Auf der Suche nach einem Schrank der diese Anforderung erfüllt wird man relativ schnell fündig: Kühlschränke gibt es zuhauf und sie sind normalerweise recht gut isoliert. Nach einem Aufruf auf der Mailingliste hatten wir relativ schnell einen alten Getränkekühlschrank im sublab stehen der darauf wartete zum Fermenter umgebaut zu werden. + +## Such Electronics +Bei dessen Untersuchung stellte sich heraus dass die Kühlung nicht wie oftmals üblich mittels eines Kompressors und Kühlmittelkreislaufs realisiert war, sondern durch ein [[Peltier-Element|http://de.wikipedia.org/wiki/Peltier-Element]]. Zwar sind diese beim Einsatz zum Kühlen nicht besonders effizient, haben für unsere Anwendung aber den Vorteil dass man sie meist einfach umpolen kann und damit dann in diesem Falle das Innere des Kühlschranks heizen. + +### Netzteil + +[[!img fermenter-psu.jpg align="right" size="" alt="Hauptplatine/Netzteil des Kühlschranks"]] + + +Die aktive Elektronik des Kühlschranks bestand aus einer einzigen Platine. Auf der einen Seite wurde sie ans Stromnetz angeschlossen, auf der anderen Seite befanden sich Anschlüsse für das Peltierelement, den sich im Kühlschrank befindenden Temperatursensor und die Lüfter die sowohl innen als auch aussen einen ausreichenden Wärmefluss am Peltierelement sicherstellen. Diese Platine stellte sich mehr oder weniger als ein 12V Netzteil heraus das zusaetzlich in der Lage ist, die Stromversorgung des Peltierelements abzuschalten, sobald die gewünschte Temperatur erreicht ist. Um die Temperatur im Fermenter selber regeln zu können, war dieses Modul nicht direkt geeignet, da es dazu keine Dokumentation gab und es auch nicht in der Lage schien das Peltier-Element umpolen zu können. Daher wurde kurzerhand die Buchse an welche der Temperatursensor angeschlossen war ausgelötet und durch einen Widerstand ersetzt. Dieser vermittelt dem Modul kontinuierlich den Eindruck, es sei zu warm im Kühlschrank. Weiterhin wurde das Peltierelement von dem Modul abgetrennt und an dessen ehemaligen Anschluss zwei Drähte eingelötet, und fertig war das 12V Netzteil für die eigene Temperaturregelung. + +### Regelung + +[[!img fermenter-mcu.png align="right" size="" alt="Schaltplan der Regelung"]] + +Um die Temperatur im Fermenter regeln zu können brauchten wir eine Schaltung die die Temperatur im Inneren des Schrankes misst und entscheidet ob es notwendig ist mit dem Peltier-Element zu heizen oder zu kühlen um die gewünschte Zieltemperatur zu erreichen bzw zu halten. Zum Einsatz kam dabei ein in der Grabbelkiste vorhandener ATMega32 der für diesen Zweck ziemlich übertrieben ist, aber alles notwendige mitbringt. Der ATMega wird mit 5V betrieben die mit einem Linearregler des Typs 7805 erzeugt werden. + +Der Temperatursensor wird über den ADC des ATMega ausgelesen. Am ADC Eingang kann eine Spannung zwischen 0 bis 2.56V gemessen werden. Um diesen Bereich effizient für die Temperaturmessung ausnutzen zu können wurde mit Q6, R9, R10 und R11 eine Konstantstromquelle aufgebaut sodass am Eingang des ADC eine zum Widerstand des Temperaturfühlers proportionale Spannung anliegt. (Rückblickend ist die Konstantstromquelle keine so gute Idee, da sie aufgrund des kleinen benötigten Stroms sehr fragil auf Bauteiltoleranzen reagiert. Ein einfacher Spannungsteiler wäre wahrscheinlich ausreichend und besser gewesen.) + +Um die Temperatur von aussen setzen und überwachen zu können wird der UART des ATMega benutzt um eine serielle Schnittstelle bereit zu stellen. + +[[!img fermenter-bridge.png align="right" size="" alt="Schaltplan der H-Bridge"]] + +Das Peltier-Element soll durch die Regelelektronik sowohl zum Heizen als auch zum Kühlen benutzt werden. Um es dementsprechend umpolen zu können ist der Ausgang als H-Brücke aus 2-PMOS und 2-NMOS Transistoren mit vorgeschalteter Treiberschaltung aufgebaut. Dabei ist zu beachten dass nie beide Transistoren einer Seite gleichzeitig durchgeschaltet werden dürfen da diese ansonsten ein Kurzschluss der 12V Spannungsversorgung verursachen. Um schnellere Schaltzeiten zu ermöglichen und den Stromverbrauch zu reduzieren könnten die Widerstände R1-R4 durch 4,7 Kiloohm ersetzt und den Transistoren T1-T4 eine Gegentaktendstufe nachgeschaltet werden. + +Der Aufbau dieser Schaltung erfolgte prototypisch auf einer Lochrasterplatine, in dieser Form ist sie aktuell auch noch in Benutzung. + +## Such Software +Der ATMega wurde in C programmiert, der Source-Code findet sich im [[git|http://git.sublab.org/fermenter/]]. Die Ansteuerung des Peltier-Elements übernimmt momentan ein simpler [[Dreipunktregler|http://de.wikipedia.org/wiki/Dreipunktregler]]. Ob die Regelung aktiv ist und welche die Zieltemperatur ist, kann über die Serielle Schnittstelle kontrolliert werden. Ebenso kann über diese die aktuelle Temperatur abgefragt werden. diff --git a/Projekte/Fermenter/fermenter-bridge.png b/Projekte/Fermenter/fermenter-bridge.png Binary files differnew file mode 100644 index 0000000..8dfdad3 --- /dev/null +++ b/Projekte/Fermenter/fermenter-bridge.png diff --git a/Projekte/Fermenter/fermenter-mcu.png b/Projekte/Fermenter/fermenter-mcu.png Binary files differnew file mode 100644 index 0000000..e37ed3c --- /dev/null +++ b/Projekte/Fermenter/fermenter-mcu.png diff --git a/Projekte/Fermenter/fermenter-psu.jpg b/Projekte/Fermenter/fermenter-psu.jpg Binary files differnew file mode 100644 index 0000000..1fa3f26 --- /dev/null +++ b/Projekte/Fermenter/fermenter-psu.jpg diff --git a/Projekte/Projectionmapping/SurfaceMapperGUI.mdwn b/Projekte/Projectionmapping/SurfaceMapperGUI.mdwn new file mode 100644 index 0000000..06bdb38 --- /dev/null +++ b/Projekte/Projectionmapping/SurfaceMapperGUI.mdwn @@ -0,0 +1,89 @@ +Es gibt eine Vielzahl von Open-Source-Programmen, welche mit einfachen Mitteln [[Projectionmapping]] ermöglichen. Leider sind die meisten nicht ganz einfach zu installieren. + +Ein vielversprechender Kandidat ist *SurfaceMapperGUI*. Eine Programm, welches auf [[Processing|http://www.processing.org/]] aufsetzt. Leider funktioniert die Software derzeit maximal mit Processing 1.5.1 (und nicht mit der aktuellen Version 2.1), da die *surfacemapper*-Library noch die veraltete XMLElement-Klasse verwendet, welche zugunsten der XML-Klasse in Processing 2.0 ersetzt worden ist. + +Das hat noch ein paar weitere Einschränkungen zur Folge. Processing 1.5 ist nicht 64bit-fähig, was zur Folge hat, das man auf einem 64bit-System sämtliche Dependencies, aller Processing-Libraries nochmal als 32bit-Version installieren muss. + +Weiterhin fiel meir spontan kein sinnvoller Weg ein, Processing 1.5 und Processing 2.1 nebeneinander zu betreiben, da beide auf das gleiche Config-Verzeichnis im Homedir zugreifen, in welchem u.a. der Sketchbook-Ordner referenziert ist. Das hat zur Folge, das man sich dann entscheiden muss, ob man nun die Processing1.5- oder die Processing2.1-Version einer Bibliothek haben will. + +Es folgt eine einigermaßen ausführliche Anleitung, um SurfaceMapperGUI unter einem 64bit-System zum laufen zu bringen. + +## Installation + +### Install Dependencies (32bit!) + +First you need to install 32bit-Version of libraries processing 1.5 depends on. Since I have a fresh 64bit-system, I assume, this should be everything you need. The package gstreamer-base-plugins may be omitted. + +[[!format c """ +lib32-mesa-libgl +lib32-intel-dri +lib32-gstreamer0.10 +lib32-gstreamer0.10-base +lib32-gstreamer0.10-base-plugins +lib32 glib +"""]] + +### Processing (1.5) +Now, you can download [[processing|http://www.processing.org/download/]], and please consider a donation. The download link for Version 1.5.1 is on the lower part of the page. + +### Processing Libraries +After that, you can proceed to download the processing-libraries, you need to run SurfaceMapperGUI. You will need: + +[[GLGraphics|http://sourceforge.net/projects/glgraphics/files/glgraphics/1.0/]] + +[[GSVideo|http://sourceforge.net/projects/gsvideo/files/gsvideo/1.0/]] + +[[SurfaceMapper 0.912|https://bitbucket.org/ixagon/surfacemapper/downloads]] + +[[controlP5 1.5.|https://code.google.com/p/controlp5/downloads/detail?name=controlP5-1.5.2.zip]] + +Navigate to your *sketchbook* directory and in there to the *libraries*-subdirectory. By default this can be achieved by + +[[!format c """ +cd ~/sketchbook/libraries +"""]] + +### SurfaceMapperGUI + +[[SurfaceMapperGUI|https://github.com/jasonwebb/SurfaceMapperGUI]] + can be found on github. you need *git* installed on your system, which should to be found in your favourite package manager of your favourite linux distribution. If you have *git*, you navigate *sketchbook* directory. By default this can be achieved by + +[[!format c """ +cd ~/sketchbook +"""]] + +Here you *clone* into the git-repository of SurfaceMapperGUI. + +[[!format c """ +git clone https://github.com/jasonwebb/SurfaceMapperGUI.git +"""]] + +...and your done. With the installation.! + +### Start + +Navigate to your processing1.5 directory, and start processing. + +[[!format c """ +./processing +"""]] + +Open SurfaceMapperGUI via File -> Sketchbook -> SurfaceMapperGUI. Click *Run* and your done! :-) + +If it fails to run, check the Error Messages section of this article, to find a solution. + +## Error Messages + +### Memory Allocation Error + +[[!format c """ +(GSVideo:6598): GLib-ERROR **: gmem.c:366: overflow allocating 1702259061*4 bytes +"""]] + +This error is strongly connected to gstreamer. It is caused by a gstreamer registry file *registry.x86_64.bin* which is located in the .gstreamer-Directory *~/.gstreamer-0.10* in your Homedir. Delete that file, *registry.x86_64.bin* or move it, if you don't want to delete it. + +[[!format c """ +mv ~/.gstreamer-0.10/registry.x86_64.bin ~/.gstreamer-0.10/registry.x86_64.bin.old +"""]] + +That should do the trick diff --git a/Projekte/Projectionmapping/Ueberblick.mdwn b/Projekte/Projectionmapping/Ueberblick.mdwn new file mode 100644 index 0000000..7d0a648 --- /dev/null +++ b/Projekte/Projectionmapping/Ueberblick.mdwn @@ -0,0 +1,68 @@ +## Was ist Projectionmapping? (PM) + +Einer Beamer/Projektor wird auf ein beliegiges Objekt gerichtet, welches idealerweise eine weiße Oberfläche besitzt. Mithilfe des Beamers werden Bewegt- oder Standbilder angezeigt, die aufgrund von Transformationen nur auf dem Objekt erscheinen und nicht in der Umgebung. Es wird die Illusion erzeugt, als handele es sich bei dem Objekt um etwas ganz anderes als z.B. nur eine Leinwand, einen Würfel, ... + +## Famous Examples + +"Box" von "The Creators Project": [[https://www.youtube.com/watch?v=lX6JcybgDFo]] + +Ein "fahrendes" Auto von Audi: [[https://www.youtube.com/watch?v=x4sVTUAdoLg]] + +Sculpture PM by Sober Industries: [[https://www.youtube.com/watch?v=KpYKzkwMPLU]] + +## Materialen + +Man benötigt einen Beamer und einen Computer, um diesen anzusteuern. Die Softwareseite kann komplett mit freier Software abgefackelt werden. + +### Software + +*Keystone5* + +Ganz einfach und schnell geht es mit Keystone5 für Processing. Dafür muss man nur Processing installieren, dann Keystone5 herunterladen, und das Keystone-Archiv in das libraries-Verzeichnis des Sketchbook-Ordners von Processing kopieren. + +Im examples-Verzeichnis von keystone5 befindet sich ein kleines Beispiel, mit dem man schnell mal was mappen kann. + +Die Keystone-Klasse kann man dann in andere Processing-Programme laden, um gespeicherte Mapping-Templates dort benutzen zu können + +[[Keystone5|http://keystonep5.sourceforge.net/]] + +[[Processing|http://processing.org]] + +*lpmt* + +Das Programm lpmt ist eine App für OpenFrameworks. Es ist etwas schwierig zu kompillieren, unterstützt aber diverese Green/Blue/Black/White-Screen Effekte, Videos, Webcam-Einbindung, usw. + +Um lpmt kompillieren zu können muss man openFrameworks kompillieren. Es gibt auch ein lpmt-Binary auf der Herstellerwebsite, allerdings konnten wir das nicht zum Laufen bringen. + +Kompillieranleitung: lpmt-git in das apps-Verzeichnis von openFrameworks klonen, dann in der config.make, das openFrameworks-Root auf "../.." ändern. Anschliessend alle Dependencies aus der addons.make installieren (ofx-dev) stellt einiges davon bereit. + +[[lpmt|hv-a.com/lpmt/]] + +[[lpmt-Linux-Binary|http://hv-a.com/lpmt/?page_id=63]] + +[[lpmt-Source (github)|https://github.com/hvfrancesco/ProjectionMapping]] + +[[ofx-dev-Repository (github)|https://github.com/lian/ofx-dev]] + +[[ofxMostPixelsEver|https://github.com/hvfrancesco/ofxMostPixelsEver]] + +*Sonstiges* + +Es gibt natürlich noch weitere unzählige Programme. Eines davon ist MPM, welches wir aber noch nicht getestet haben. +Die Multiprojector-Map [[http://www.arisona.ch/web/mpm/]] + +## Pläne + +### Würfelecke + +Wir wollen im sublab in die eine Ecke der Bühne in der Lounge eine Skulptur aus 100-200 würfelförmigen Pappkartons bauen, und diese dann mithilfe von PM erleuchten, und animieren. Das wäre auch eine tolle Grundlage, um Menschen die Technologie des PM näher zu bringen. + +Um das Projekt umsetzen zu können benötigen wir einen Beamer und 100 bis 200 würfelförmige Pappkartons. Das kostet so 200 - 300 Euro. Wer da was dazulegen möchte ist herzlich dazu eingeladen. Wir würden uns sehr freuen. Dazu am besten per Mail kontakt (at} sublab punkt org kontaktieren. Vielen Dank. + +### Kinect + +Mithilfe einer Kinect könnte man Veränderungen in der Szenerie in Echtzeit erfassen, und das Mapping anpassen. Die Illusion wäre noch spannender. Dynamisches PM ist aber durchaus sehr komplex, insbesondere wenn nicht alles vorausberechnet ist, wie bei "Box" (s.o.) + + + + diff --git a/Projekte/Trollette.mdwn b/Projekte/Trollette.mdwn new file mode 100644 index 0000000..ad1a28b --- /dev/null +++ b/Projekte/Trollette.mdwn @@ -0,0 +1,24 @@ +TL;DR: Seit Anfang Mai 2013 wird unsere Toilette videoueberwacht. NICHT. + +## Funktionsweise + +Es handelt sich nicht um eine tatsächliche Überwachung der Toilette. Vielmehr ist es eine anschauliche Demonstration. Wir verhalten uns anders, wenn wir uns beobachtet fühlen. Insbeondere die überwachung von intimen Momenten empfinden die meisten Menschen als schändlich. + +Um dir zu versichern, das es sich tatsächlich nur um eine scheinbare und keine tatsächliche Überwachung handelt, sei folgendes gezeigt. + +Auf unserem Server wird alle fünf Minuten per Cronjob ein Skript aufgerufen, welches mehr oder weniger zufällig (Details siehe Sourcecode) ein Bild aus einem Bilderpool auswählt. Alle Bilder des Pools wurden irgendwann Anfang 2013 im Abstand von wenigen Minuten aufgenommen. Anschliessend werden die Helligkeit des Bildes verändert, zufälliges Rauschen hinzugefügt und das aktuelle Datum sowie die Uhrezeit eingeblendet. + + +## Indizien zur Realitätsabweichung +Es gibt einige Indizien, die zeigen, das es sich bei dem Bildmaterial keineswegs um aktuelle Bilder handelt. + +1. Das Handtuch hängt immer gleich, in allen Bildern. +2. Da hängt kein Handtuch mehr, weil wir inzwischen Papiertücher benutzen +3. Es kleibt kein Aufkleber auf dem Spülknopf. + + +## Sourcecode + +<<http://git.sublab.org/website/tree/scripts/trollette.sh>> + +<<http://git.sublab.org/website/tree/scripts/trollette.py>> |