Wir haben uns heute Musik angeschaut

Nachdem wir das letzte Mal schon auf einem analogen Oszilloskop ‚Musik‘ angesehen haben (siehe oscilloscopemusic.com) wollten wir uns heute mal dran machen und selbst etwas kreieren.

Als Vorlage habe ich das hier genommen und etwas angepasst und herum gespielt. Relativ schnell konnten wir so einen Kreis und ein Viereck ‚zeichnen‘ 🙂

Den Code um die entsprechende Sounddatei zu erstellen findet ihr in diesem Repo chaostreff-gun/pyscopemusic. Vielleicht will da ja jemand noch dran weiter basteln 😉

Versuche mit einem Arexx AAR-04 Roboter

Es war mal wieder Bastelkeller Zeit!

Irgendwo im hintersten Eck habe ich noch einen Roboter des Typs Arexx AAR-04 ausgegraben. Dieser hat zwar durch auslaufende Batterien schon einen Säureschaden abbekommen, funktioniert aber immer noch 🙂

Mit dem dazugehörigen Schaltplan ist das Programmieren zumindest technisch gesehen schonmal kein Problem mehr:

Der Roboter lässt sich direkt in der Arduino IDE über USB programmieren (ein Arduino Bootloader ist schon auf dem Atmega328P drauf). Außerdem besitzt er einen L293D Motortreiber sowie einen FT232RL USB to Seriell Wandler.

Dazu gibt es eine LED mit zwei Fototransistoren am Kopf zum folgen einer Linie, eine frei ansteuerbare LED, zwei Lichtschranken zum Messen der Motorgeschwindigkeit sowie natürlich die Motoren. Betrieben wird er entweder über USB (was zu wenig Strom für die Motoren liefert) oder über 4 AAA Batterien.

Als erstes sollte der Roboter:
a) Eine Linie suchen, und
b) dieser folgen.

So einfach es klingt, so kompliziert war es dann doch, denn die Helligkeit, die die Fototransistoren messen hängt natürlich nicht nur vom Untergrund ab, sondern auch von der Umgebungshelligkeit. Trotz bester Planung mit dem neuen Whiteboard

war der Programmcode nicht auf Anhieb fertig. Zwar folgte er manchmal der Linie. Manchmal aber auch nicht. Und manchmal drehte er sich einfach nur im Kreis….

Wenn das mal funktioniert dann soll der Roboter natürlich noch WLAN bekommen (hierfür steht ein ESP8266 Chip in den Startlöchern, der aber mit 3.3 Volt angesprochen werden will, deshalb muss hier noch ein Spannungsteiler und Spannungsregler dazu) und zusätzlich soll noch ein Ultraschall-Abstandssensor mit drauf kommen.

Abseits der Roboterprogrammierung rauchten auch die Köpfe beim Konfigurieren von automatisierten Erinnerungen basierend auf Taskwarrior-Aufgaben und beim Server-Upgrade von Debian Jessie auf Stretch wobei mit Erschrecken festgestellt wurde, dass Puppet dort in Version 4 vorhanden ist und sich doch das ein oder andere geändert hat.

Der Erste Tag im Bastelkeller

So ein echter Chaostreff braucht auch einen extra (chaotischen!) Bastelkeller. Mittlerweile konnten wir eine Location auftreiben die standesgemäß in einem Keller liegt, aber mit genügend Steckdosen und koffeinhaltigen Getränken versorgt ist.

Nachdem die Location geputzt und vorbereitet wurde hatte ich schon das erste Projekt. Und zwar handelte es sich um eine Batterie für ein IBM DS3400 Storage System. Diese Batterien müssen regelmäßig (alle paar Jahre) gewechselt werden und kosten so ab 250 € das Stück. Wechselt man die Batterie nicht so wird der Schreibcache des Storagesystems deaktiviert, was natürlich absolut nicht wünschenswert ist.

Es scheint hier zwei Arten zu geben wie das Storage erkennt ob eine Batterie gewechselt werden muss. Und zwar entweder mit einem regelmäßigen Lerncyclus (Cache deaktivieren, Batterie komplett entladen, Batterie komplett vollladen, Cache aktivieren) oder aber mit einer Automatik die wohl das Alter der Batterie bestimmt.

Bei diesen Batterien scheint aber eine andere Technik zum Einsatz zu kommen. Außerdem wurde ich neugierig da das Storage-System einem das Herstelldatum der Batterie anzeigen kann. Und wo eine Anzeige ist müssen die Daten auch irgendwo gespeichert werden!

Ich habe also die Platine mal etwas genauer angesehen, und neben einem Hochleistungsentladewiderstand und einigem weiteren Hühnerfutter fand sich tatsächlich ein Chip mit der Beschriftung „PCA9500“. Dem Datenblatt nach ist das ein 8-Bit I/O-Expander der ein 2-kbit-EEPROM beinhaltet. Na mal sehen was da gespeichert ist.

Ein bisschen durchpiepsen mit dem Multimeter führte zu den richtigen Anschlüssen von VCC, GND, SCL und SDA:

Ich wollte nun eigentlich mit einem Arduino mit dem Chip sprechen, aber im Datenblatt stand unter „Absolute Maximum Ratings“ nur 3.8 V – also hätte ein 5V Arduino wohl eher ein Barbeque verursacht.

Zum Glück hatte Bernd einen Raspberry Pi rumfliegen – den wir erstmal nicht übers Netzwerk erreichen konnten. Ein USB zu seriell Kabel führte hier zum Erfolg und die Konsole des Pis begrüßte uns.

Mittels i2cdetect konnten wir tatächlich den Chip mit der Adresse 0x20 und 0x50 finden. Wobei 0x20 der IO-Expander ist (0b00100000) und 0x50 das EEPROM (0b01010000). Die Adressen stehen freundlicherweise auch im Datenblatt (man muss hier wegen dem R/W-Bit um eines nach rechts shiften). Die Hardware Programmable Pins (das sind die Widerstände links oben) liegen alle auf GND.

Ein kurzes i2cdump später hatten wir die Daten:

Leider funktionierte das schreiben des Herstelldatums (von 2011 auf 2016) nicht auf Anhieb. Doch das Datenblatt half auch hier weiter: Pin 13 ist der Write-Enable Pin.  Er liegt normalerweise auf VCC und muss zum schreiben auf GND gezogen werden. Netterweise ist da relativ direkt daneben ein großes goldenes Pad damit man da bequem rankommt – schätzungsweise wird mit diesem in der Fabrik der Schreibschutz einmalig deaktiviert. Rausgeführt ist der Pin nicht auf den Connector denn das Storage soll die Daten nicht ändern.

Wir aber schon 🙂

Wenn man jetzt noch ein neues Batterie-Pack dranklemmt wäre der manuelle refurbish fertig. Und schätzungsweise 200 € hat man auch noch gespart.

Leider traue ich mich nicht dass Ding jetzt auch wirklich in einem aktiv laufenden Storage zu testen…

Im weiteren Verlauf des Abends kam dann noch endlich der lang ersehnte 3D Drucker an.

Nach erstem großen Staunen und interessierten Blicken wollten wir ihn natürlich auch gleich ausprobieren. Also kurz einen Zylinder entworfen, in die Software des 3D-Druckers geworfen …

… und los geht’s:

Und siehe da, der 3D-Drucker druckt unseren Zylinder 🙂Für den ersten Versuch doch schon mal ganz gut. Eventuell sollten wir den 3D-Drucker mal noch neu kalibrieren nach dem Transport oder uns allgemein etwas genauer damit auseinandersetzen 😀

Chaostreff am 29.03.2017

Diesen Abend ging es unter anderem darum, dass man sein ZFS Filesystem auf keinen Fall volllaufen lassen soll.
Wenn das mal der Fall ist, kann ein ’scrub‘ ein bisschen helfen, aber das dauert ziemlich lang. Länger jedenfalls als der Abend 🙂

Außerdem ging das deutsche Wort „auserkoren“ herum und es stimmten alle überein dass niemand so recht weiß wie man hier Präsens oder Futur I im Konjunktiv I oder II bildet.
Dafür kennen wir nun den deutschen Fall Futur III – dieser ist extra bestimmt für den Berliner Flughafen 🙂

Später ging es noch ein kleines bisschen um das beliebte Microsoft Bashing.
Vorallem der Ärger, dass jede Schule grundsätzlich Windows und Microsoft Office voraussetzt.
In keiner Schule wird den Schülern der Vorteil von Opensource Software wie z.B. LibreOffice nahegebracht.
Ist aber vielleicht auch nicht ganz einfach solange fast jede Firma voraussetzt, dass man sich in Microsoft Produkten auskennt 🙁

Von dort ging es nahtlos weiter zu einer Diskussion über die Probleme von Cloud Software. Programme wie Office 356 oder Photoshop, die grundsätzlich ohne Internetanschluss (und monatliche Gebühr) nicht mehr funktionieren sind ein großes Problem und machen einen abhängig vom Hersteller. Spätestens wenn der Dienst abgeschalten wird hat man nichts mehr davon.

Dank eines Gastes aus dem Irak konnten gleich noch die Unterschiede zwischen unseren Ländern und die Probleme in Deutschland diskutiert werden. So mögen wir in Deutschland zwar auch unsere Probleme haben (Flughafen BER), aber die Korruption ist im Irak sicherlich noch ein viel größeres Problem. Dafür gibt es kostenlose Gesundheitsvorsorge – etwas wo sie den Amerikanern noch ein gutes Stück vorraus sind 🙂

 

Chaostreff am 01.03.2017

Wir waren hier 🙂

Auch wenn wir es nicht schaffen bei jedem Treffen auch ein Rückschau zu schreiben haben wir uns bisher fleißig jeden zweiten Mittwoch getroffen. Damit hier auch mal wieder was aktuelles steht hier mal eine ganz kurze Übersicht der heutigen Themen: Lasertag, FabLab, (E-)Autos, Nextcloud, Antiviren-Software, u.v.m.

Für mehr Infos einfach mal vorbei schauen 😉

Chaostreff am 9.11.2016

Wir haben uns auch diesen Mittwoch wieder zum gemeinsamen Chaos getroffen. Angestachelt von der /dev/night vom Vortag kamen wir um das Thema TDD nicht herum und ließen das gestern erlernte nochmal Revue passieren.

Zudem versuchten wir das Interesse innerhalb unserer Gruppe am Global Game Jam abzustecken, was wohl eine Veranstaltung wird, die über 48 Stunden überall auf der Welt stattfinden wird und bei der an verschiedenen Locations Leute zusammen Spiele entwickeln. Die Idee klingt auf jeden Fall spannend. Michael zeigte uns passend zum Thema dann noch JS1k.

Ich hatte diesmal auch ein Thema dabei welches uns den ganzen Abend über beschäftigen sollte. Und zwar hatte ich ein etwas seltsames Problem mit dem VPN auf meinem vServer, das wir dann zusammen aber lösen konnten. Mehr Infos dazu gibt es auf meinem Blog zu finden. Nochmals vielen Dank an alle die mir bei der Lösung des Problems geholfen haben, ich hätte vermutlich ansonsten langsam aufgegeben.

Chaostreff am 26.10.2016

Es ist schwierig immer alle Themen, da es oft auch viele kleine gib, hier zu dokumentieren. Ich kann nur sagen, dass wir beim letzten Treffen so viele waren, was mich sehr gefreut hat, dass automatisch kleinere Themengruppen entstanden.
Deswegen nur kurz und knapp der Tisch für acht Personen wurde mit zehn besetzt und wir hatten einen tollen Abend! 🙂

Chaostreff am 12.10.2016

Die Hauptthemen heute waren zum einen die gestrige /dev/night auf der die Hälfte von uns anwesend war und zum anderen ging es auch wieder um das Thema FabLab. Auslöser war die Veranstaltung FabLab zum Anfassen, welche diese Woche hier in Gunzenhausen statt fand und von der uns Andreas und Michael erzählten. Zudem wurde noch über PC-Hardware gefachsimpelt und wir haben festgestellt, dass man inzwischen auch bei Konsolen die Spiele erstmal installieren und Patches herunterladen muss bevor man loslegen darf. Das waren noch Zeiten, als man die Konsole einfach nur an den TV anschließen musste, das Spiel eingelegt hat und spielen konnte 🙂

dev_night-logoAuf der /dev/night ging es diesmal um das Thema TDD (Test-Driven-Development). Weitere Infos dazu und der Code der beim Pair-Programming herauskam befinden sich hier.