Zum Inhalt springen

Thomas 'heth' Helmke

Interessen: Programmierung, Robotik, Automatisierung

Programmierung: Ich schreibe Software in C++, JavaScript und Python. Java hab ich noch nicht verstanden. Wo immer möglich benutze ich vim zum programmieren. Robotik: Immer noch Thema: Hexapod auf Basis eines Raspberry Pi. Fertigstellung: "When it's done." Automatisierung: Mache ich beruflich. Home Automation kommt demnächst vielleicht auch mal dran.

Buchrezension: Effektiv Python programmieren

Veröffentlicht von Thomas Helmke am in Buchrezensionen

In dieser Rezension geht es um das Buch Effektiv Python programmieren von Brett Slatkin. Ich habe mir die deutsche Übersetzung in der Print-Variante angeschaut. Diese kostet bei mitp 35€ und umfasst 270 Seiten. Das Buch richtet sich sowohl an Einsteiger als auch an Fortgeschrittene. Ziel laut Vorwort ist es, dem Leser den pythonic way of programming nahezubringen. Als Grundlage nimmt der Autor das Dokument PEP8 und The Zen of Python.

Es gibt acht Kapitel die verschiedene Themen von Funktionen und Klassen über Nebenläufigkeit und Standardmodule bis hin zu Zusammenarbeit und Veröffentlichung abdecken. In jedem Kapitel gibt es Codebeispiele, die jeweilige Thema verdeutlichen. Meist startet ein Abschnitt mit einem Code, der zwar funktioniert aber nicht pythonic ist. Es wird dann in mehreren Schritten gezeigt, wie es besser geht.

Mein subjektiver Eindruck war, dass die Komplexität der Codebeispiele stark variiert von sehr einfach und klar bis zu sehr abstrakt und kompliziert. Für diese Rezension habe ich

das Buch von vorne nach hinten durchgelesen, was wahrscheinlich nicht die beste Variante ist. Ich denke das Buch ist eher geeignet um bei konkreten Programmieraufgaben als Nachschlagewerk genutzt zu werden. Dann kann man die gezeigten Tipps direkt anwenden und sie bleiben eher im Gedächtnis.

Alles in allem halte ich das Buch für empfehlenswert.

 

Meine neue smarte Klingel

Veröffentlicht von Thomas Helmke am in Mitgliederblog

Moin! Ich habe heute den ersten Teil meines Projekts „Smarte Klingel“ fertig gestellt und lasse euch hiermit daran teilhaben.

Hintergrund

Vor ziemlich genau einem Jahr habe ich angefangen, meine Wohnung smarter zu machen. Bei mir läuft Home Assistant auf einem Raspberry Pi und bindet ein breites Sammelsurium an smarten Geräten zusammen. Von Homematic IP über Xiaomi und Sonoff bis hin zu ESP-basierenden Eigenkreationen ist alles dabei.

Da die Balkon- bzw. Gartensaison jetzt ja doch bald beginnt, rückt auch die Haustürklingel wieder in den Fokus. Im Garten hört man nichts von der Klingel und selbst auf dem Balkon nur mit Glück. Hier im Haus ist eine Klingelanlage installiert. Eigentlich ganz nett mit Gegensprechanlage, Türöffner, etc. Allerdings ist das System nicht dafür gedacht, einfach mal die Klingel anzuzapfen.

Klingelanlage

Die Klingelanlage ist ein geschlossenes System von TCS. Es gibt eine Basisstation an der Außentür mit den Tastern für die einzelnen Wohnungen und in jeder Wohnung eine Satellitenstation. In jeder Wohnung kommen 2 Drähte an, alle Satelliten sind in Reihe angeschlossen. Über die beiden Drähte kommt zum einen die 24 Volt Versorgungsspannung an, zum anderen wird ein proprietärer Bus aufmoduliert. In der frei verfügbaren Dokumentation findet man nur die Information, dass jede Station eine eindeutige Adresse hat und Nachrichten von jeder Station quittiert werden. Die Satellitenstation hat einen Anschluss für ein Funkmodul, aber auf das müsste als Busteilnehmer angelernt werden. Also ist kreatives Hacken gefragt.

Umsetzung

Hardware

Da es im Internet nicht viel Detailinformation gibt, war der erste Schritt die Spannung mit dem Multimeter zu messen, während geklingelt wird. Das Gerät ist natürlich viel zu langsam um konkrete Aussagen treffen zu können, aber es reichte für die Erkenntnis, dass die Spannung abgesenkt wird, wenn Nachrichten auf dem Bus laufen. Ich musste also einen Bus-Sniffer bauen, um die einzelnen Bits mitlesen zu können. Der Wemos D1 Mini erlaubt am ADC Eingang maximal 3,2 Volt, daher habe ich einen Spannungsteiler aus 1 MΩ zu 147 kΩ zusammengelötet, der die 24 Volt auf knapp unter 3 Volt drückt. Dazu zwei Schraubklemmen und Sockel für den Wemos. Verpackt wird das ganze in ein gelasertes Gehäuse auf MDF.

Software

Die Software auf dem Wemos ist ein Arduino Sketch (Code auf Github). Ich lese die Spannung am A0 ein und skaliere die Digits auf die ursprünglichen 24 Volt. Der nächste Schritt ist die Flankenauswertung. Das TCS Installationshandbuch spricht von 24V +/- 8%, also habe ich als Threshold willkürlich 20 Volt eingetragen. Wenn die Spannung unter diesen Wert fällt, merke ich mir den Zeitpunkt, wenn die Spannung wieder höher steigt, bilde ich die Zeitdifferenz. Das hat auf Anhieb sehr gut funktioniert, allerdings musste ich von Millisekunden auf Mikrosekunden wechseln, um die Bitlängen zuverlässig messen zu können.

Den ursprünglichen Plan, das Busprotokoll zu reverse-engineeren, habe ich schnell verworfen zugunsten einer einfacheren Variante. Da beim Klingeln immer die gleiche Nachricht gesendet wird, muss ich nur genau diese eine Abfolge von Flanken erkennen. Die Sequenz der Bitdauern habe ich schließlich als Array fest ins Programm geschrieben. Bei jeder Flanke wird die Anzahl der Mikrosekunden seit der letzten Flanke mit dem Wert im Array verglichen. Gibt es eine Übereinstimmung wird weitergezählt, andernfalls wird der Sequenzzähler zurückgesetzt. Wenn die Sequenz vollständig durchlaufen wurde, wird eine Nachricht verschickt.

Die Nachricht wird per MQTT an mein Home Assistant geschickt. Da die MQTT Libraries für Arduino anscheinend ein Problem haben, wenn der Client zu oft aufgerufen wird, ist in meinem Standard-Code ein Delay von 10 Millisekunden im Loop eingebaut. Damit würde natürlich die Flankenauswertung nicht mehr funktionieren, also verbinde in diesem Fall den MQTT Client erst dann, wenn eine Nachricht gesendet werden soll und trenne dann sofort die Verbindung wieder.

Ausblick

Der schwierigste Teil des Projekts ist erledigt. Ich erkenne, dass es an meiner Haustür klingelt und melde die Information an mein Smart Home. Jetzt fehlt noch ein System zur Benachrichtigung auf dem Balkon bzw. im Garten. Wahrscheinlich werde ich dort einen weiteren ESP mit LEDs, einem Summer oder etwas ähnliches installieren.

Update

Der zweite ESP zur Benachrichtigung auf dem Balkon ist zwar noch nicht fertig, aber der Adapter ist mittlerweile fest montiert.

Microcontroller Werkstatt am Samstag

Veröffentlicht von Thomas Helmke am in Veranstaltungen

Auch in diesem Monat gibt es natürlich wieder die Mikrocontroller Werkstatt!

Dieses Mal steht die Themen MQTT, 433MHz, ESP8266, ESP32 und BLE auf meinem Plan. Das alles soll mit Hilfe von OpenMQTTGateway verknüpft werden.

Wie jedes Mal sind natürlich auch alle anderen kleinen Platinen gerne gesehen. Sei es Arduino, Rspberry Pi oder etwas ganz anderes. Kommt einfach vorbei, bringt eigene Projekte mit oder lasst euch inspirieren.

Der Termin ist der 26.05. und los geht es wie immer um 12 Uhr bei uns in der Bornstraße.

Microcontroller Werkstatt am Samstag

Veröffentlicht von Thomas Helmke am in Veranstaltungen

Auch in diesem Monat gibt es natürlich wieder die Mikrocontroller Werkstatt!

Ich werde mich nochmal an MicroPython auf dem ESP32 versuchen. Hinzu kommt als mögliches Thema für dieses Mal MQTT, einer der Internet of Things Standards.

Wie jedes Mal sind natürlichauch alle anderen kleinen Platinen gerne gesehen. Sei es Arduino, Rspberry Pi oder etwas ganz anderes. Kommt einfach vorbei, bringt eigene Projekte mit oder lasst euch inspirieren.

Der Termin ist der 28.04. und los geht es wie immer um 12 Uhr bei uns in der Bornstraße.

Microcontroller Werkstatt am Samstag

Veröffentlicht von Thomas Helmke am in Veranstaltungen

Es ist mal wieder Zeit für Mikrocontroller!

Wie jeden Monat steht morgen wieder die Mikrocontroller Werkstatt an. Mögliche Themen sind:

  • USB Devices emulieren mit Raspberry Pi Zero und Python
  • Platinen mit KiCad entwerfen und ätzen
  • MicroPython auf ESP32 installieren

Aber es sind natürlich wie jedes Mal auch alle anderen kleinen Platinen gerne gesehen. Sei es Arduino, ESP oder etwas ganz anderes. Kommt einfach vorbei, bringt eigene Projekte mit oder lasst euch inspirieren.

Der Termin ist der 24.03.und los geht es wie immer um 12 Uhr bei uns in der Bornstraße.

Microcontroller Werkstatt am Samstag

Veröffentlicht von Thomas Helmke am in Veranstaltungen

Die erste Microcontroller Werkstatt des Jahres steht vor der Tür! Ich werde den Termin nutzen, um mir die Fähigkeit des Raspberry Pi Zero anzuschauen, als USB Device zu arbeiten. Damit kann man theoretisch ein beliebiges Gerät emulieren.

Aber es sind natürlich wie jedes Mal auch alle anderen kleinen Platinen gerne gesehen. Sei es Arduino, ESP oder etwas ganz anderes. Kommt einfach vorbei, bringt eigene Projekte mit oder lasst euch inspirieren.

Der Termin ist der 27.01.und los geht es wie immer um 12 Uhr bei uns in der Bornstraße.

Drops geht in die nächste Runde

Veröffentlicht von Thomas Helmke am in Allgemein, Mitgliederblog

Dieses Jahr findet zum vierten Mal das vom ZARM und DLR School Lab ausgerichtete DroPS statt. Bei DroPS haben Schülergruppen aus Bremen und Umzu die Möglichkeit Experimente zu bauen, die schließlich im Fallturm abgeworfen werden. Für die Schüler geht es in den nächsten Wochen zunächst um die Ausarbeitung der technischen Details und der benötigten Materialien. Der erste Testabwurf findet im April beim DLR statt, der Final Drop ist dann im Juni.

Nach dem offiziellen Auftakt am Montag im Zarm fand am Samstag der erste DroPS-Termin im Hackerspace statt.  Im Rahmen unserer Nachwuchsförderung unterstützen wir die Schüler mit technischem KnowHow und stellen unsere Räumlichkeiten und Werkzeug zur Verfügung. Die Experimente befassen sich in diesem Jahr mit dem Verhalten von Luftwirbeln, mit gyroskopischer Präzession und mit dem Fließverhalten von Polyoxyethylen. Dementsprechend wurde heute über Servomotoren, Kolben und Gleitlager, Bechergläser und Gewindestangen, Klappmechanismen und vieles mehr diskutiert.

Wir wünschen allen Teilnehmern viel Spaß und viel Erfolg bei ihren Experimenten!

Offene µController-Werkstatt

Veröffentlicht von Thomas Helmke am in Vorträge und Workshops

Endlich Sommer! Das gute Wetter hält uns aber natürlich nicht davon ab, unserer Lieblingsbeschäftigung nachzugehen. So habt ihr auch am morgigen Samstag, den 22. Juli, die Gelegenheit, mit Arduino, NodeMCU und Co. zu basteln und euch mit anderen Gästen im Hackerspace auszutauschen.

Thomas wird zum Beispiel ausprobieren, seine Gewitterwolkenlampe von Arduino+Raspberry Pi auf ESP32 (im Video: Beispielapplikation auf Lolin ESP32 OLED Modul) umzubauen. Schaut ihm über die Schulter oder bringt eure eigenen Projekte mit.

Natürlich stehen auch gekühlte Getränke, Grill und Bratwürste bereit, um dabei das gute Wetter zu genießen.

(mehr …)

Mikrocontroller-Werkstatt am 24.06.

Veröffentlicht von Thomas Helmke am in Vorträge und Workshops

Es ist wieder ein Monat rum und es steht die Mikrocontroller-Werkstatt vor der Tür. Pünktlich dazu habe ich Post vom Chinesen bekommen: zwei MPU6500 Gyroskop Platinen. Die werde ich am Samstag mal an einen Arduino oder NodeMCU hängen und mal schauen, was man damit anstellen kann.

Ansonsten gibt es aber kein festgelegtes Thema, alles, was irgendwie mit Mikrocontrollern zu tun hat, ist herzlich willkommen!

Es geht wie immer los um 12 Uhr. Wir sehen uns am 24.06.!

Mikrocontroller-Werkstatt am Samstag

Veröffentlicht von Thomas Helmke am in Vorträge und Workshops

Was macht man eigentlich mit einem Mikrocontroller? Man baut sich zum Beispiel eine WordClock. Oder zwei. Oder man macht etwas ganz anderes. Auf jeden Fall bietet die Mikrocontroller Werkstatt wieder reichlich Gelegenheit, sich über Arudino, ESP, Raspberry und die vielen anderen Varianten auszutauschen und zu informieren.

Wir sehen uns am Samstag, den 25.3.17, ab 12 Uhr im Hackerspace!