EEG-Solaranlage – der nächste Schritt

Mit den Erfahrungen aus der „kleinen“ Solaranlage ist es nun Zeit den großen Bruder aufzubauen. Diesmal nicht mehr als „Kleinstanlage“, sondern als EEG Anlage. Mein Timing könnte schlechter nicht sein.

Projekt: Solaranlage II

Kontakt: Boris Dirnfeldner

Link– eigenes Projekt –

Mit der kleinen Anlage sollten ja Erfahrungen gesammelt werden ohne allzu großen Aufwand und zum Teil auch als kleines Forschungsprojekt. Die konkrete Anwendung war die Grundlastversorgung und ein Ausgleich zur Poolpumpe. Alles in allen war das Thema ziemlich erfolgreich, wenngleich dann doch aufwendiger als erwartet.

In der aktuellen Situation mit der Energiekriese, ständig wachsenden Preisen und immer wahrscheinlicheren Ausfallszenarios ist die logische Konsequenz eine größere Anlage, um auch ein Paar Spitzen abzufedern oder auch Weichen für später zu stellen. Das Carportdach war ja ganz bewusst frei gelassen worden für eine solche Anlage, also warum nicht?

Plandaten

Folgende Komponenten habe ich mir für die Anlage ausgesucht:

  • 18 Module Trina Solar TSM-405-DE09.08 Vertex S 405Wp
  • Wechselrichter KACO Blueplanet 6.5 TL3-INT
  • Befestigungssystem K2-Rail

Somit ergeben sich folgende Daten:

  • Anlagenleistung max. 7.2 KWp als EEG-Anlage mit Eigenverbrauchsanteil
  • Montage auf Carport-Dach auf Trapez-Blechdach

Auf einen Batteriespeicher verzichte ich noch, da die Dinger immer noch ziemlich teuer sind, schlecht verfügbar und auch nicht unkritisch in der Anwendung. Der Wechselrichter bietet hier keine Unterstützung zum Nachrüsten, aber ein entsprechendes Gerät vorbereitend zu installieren ist mir aktuell zu teuer. Vielleicht eine blöde Entscheidung, muss man später sehen.

Der Wechselrichter-Hersteller hat ein Planungstool, mit dem die Auslegung geprüft werden kann. Alles ok, die Teile können miteinander (1-String Konfiguration).
K2 bietet ebenfalls eine vergleichbare Option, um die Montage statisch zu prüfen, auch hier keine Beanstandungen.
Für den Carport selber habe ich keine Statikberechnung, allerdings ist er ziemlich massiv ausgeführt und auch kein Baumarkt-Billigteil oder Eigenbau. Hier sollte es keine Probleme geben.
Das Befestigungssystem hat mit seinen Kurzschienen auch den Charm, das der Potentialausgleich über das Blechdach erfolgen kann. Wenn überhaupt braucht es also noch einen Ableitungspunkt und gut ist es. Ich habe sogar schon einen Staberder in Reichweite, das wäre dann auch nicht so schwer. Das muss ich dann noch mit dem Elektriker klären (so ich den habe).

Anders als bei der Kleinstanlage benötigt diese Anlage einen Anschluss am zentralen Sicherungskasten. Die Leitung muss ich auch noch ziehen und dann vom Elektriker entsprechend anschließen lassen.

EEG-Anlage

Das Thema EEG-Anlage wollte ich eigentlich so lange wie möglich aussparen, aber eine Anlage dieser Größe muss sich entweder abregeln („Nulleinspeisung“) oder in dieser Form angeschlossen werden, sofern man rechtlich sauber arbeiten will. Leider hat das Ganze eine Reihe von Konsequenzen, die ich mir gerne gespart hätte.

  • Die Anlage ist wieder anmeldepflichtig (das war keine Überraschung, musste ich ja schon bei der Kleinstanlage)
  • Der Anschluss der Anlage muss zwingend von einem dafür qualifizierten und zugelassenen Elektriker erfolgen (vom Versorger vorgeschrieben)
  • Dieser muss einen zusätzlichen Zähler installieren („Einspeisezähler“) zur Berechnung des Eigenverbrauchs (dazu später mehr in der Abrechnung)
  • Die Anlage ist zwingend gewerblich, damit auch so zu führen (vor allen steuerrechtlich interessant)
  • Der Eigenverbrauch ist entsprechend zu berücksichtigen (und das ist richtig interessant und überraschend kompliziert).

Der Elektriker ist ein Problem. Erste Anfragen haben schnell gezeigt, das es zwar viele Betriebe für elektrische Installationen gibt, die aber oft keinen Hintergrund in Solaranlagen haben und damit nicht geeignet sind. Das Thema bleibt spannend.

Offen ist auch, ob ich die bestehende Kleinstanlage weiter betreiben kann wie gehabt. Die Einspeisung von 25KWh/Jahr ist vernachlässigbar, aber sollte ich das Teil ebenfalls mit der Gewerberegelung nutzen müssen, würde ich den Betrieb vermutlich einstellen (da die Anlage zu fast 100% privat genutzt wird). Auch weil die Anlage wegen Gebrauchtteilen und fehlenden Rechnungen kaum sinnvoll in der Buchhaltung erfasst werden kann. Das wird sicher noch spannend.

Beschaffung

Bei der Recherche ist schnell klar geworden das 2022 ein blödes Jahr ist, sowas zu starten. Auf der einen Seite enormer Bedarf, dagegen so gut wie nirgends verfügbare Handwerker und dann noch die permanenten und sich verschärfenden Lieferengpässe. Da aber auf der anderen Seite die EEG-Einspeisevergütung monatlich weniger wird, hilft es nix. Ich habe zum Jahreswechsel 21/22 erstmals konkrete Überlegungen dazu gestartet, seitdem sind die Preise allerdings schon erheblich gestiegen und noch am Steigen.

Die Solarmodule sind überraschend „schnell“ nach nur 4 Wochen angekommen. Das war schon toll, gerade wenn man sich geistig auf Monate eingestellt hatte. Scheinbar habe ich gerade einen günstigen Zeitpunkt erwischt. Die liegen nun dekorativ in der Garage und tuen nix. Schaden nehmen sie aber auch keinen dabei.
Mein Problem ist vor allem der Wechselrichter. Da ist der Markt aktuell ganz übel und die Dinger entweder unglaublich teuer (z.B. für einen von Sunny) oder halt nicht verfügbar. Aktuell warte ich im Monat 3 und werde weiterhin alle 4 Wochen um 4 Wochen vertröstet. Hersteller KACO („eine Siemens-Company“) kann nicht liefern. Da es bei anderen Herstellern auch nicht besser aussieht warte ich halt weiter, aber so richtig glücklich bin ich damit nicht. Da mein geplanter Zeitraum zur Montage ohnehin inzwischen durch ist und ich wieder arbeiten muss, tut es auch nicht mehr ganz so weh.
Beim Befestigungssystem hatte ich dann wieder Glück. Erst war da nichts zu bekommen und ich hatte schon andere Systeme geprüft. Dann war es doch innerhalb 4 Wochen soweit und die Teile liegen erstmal neben den Modulen.
Bis auf Solarkabel und dem Wechselrichter ist damit alles da, aber ohne den macht es nicht viel Sinn loszulegen.

Abrechnung

Eine EEG-Anlage ist in der Abrechnung schon eine ganz eigene Hausnummer. Da die Anlage zwingend als ein Gewerbe betrieben werden muss, hat es weitreichende steuerrechtliche Konsequenzen.

Da ich bereits Gewerbetreibender bin, fällt für mich die Kleingewerberegelung flach. Ich muss die Anlage also regulär als Gewebebetrieb betreiben. Und da ich bereits Einkommen aus Gewerbebetrieb erwirtschafte, ist auch der Freibetrag für die Gewerbesteuer hier schon weg. Somit sind viele Argumente, mit denen Privatleuten der Weg etwas weniger steinig gemacht wird, schon mal gestorben.
Zumindest muss ich keine zusätzliche Arbeit in die Buchhaltung und Umsatzsteuermeldungen investieren, da ich das ohnehin schon alles tun muss.
Da die Solaranlage als Gewerbe laufen muss, muss ich wiederum alles private wiederum der Firma vergüten (Eigenverbrauchsanteil). Dazu muss der Eigenverbrauch entweder mit aktuellen Marktpreisen oder ca. 20ct/KWh in der Firma als Einkommen verbuchen und versteuern. Das gilt dann sowohl für Gewerbesteuer als auch Umsatzsteuer. Auch deshalb habe ich derzeit keinen Lust auf einen Speicher. Der würde hier das Verhältnis noch weiter verschlechtern. Natürlich muss der Anteil messbar sein, daher brauche ich den zweiten Zähler.

Das Ganze ist ziemlich aufwendig, aber zum Glück für mich eh Tagegeschäft. Und die Verrechnung der privaten Anteile macht es auch nicht gleich unrentabel, nur komplizierter. Im Vergleich zur Kleinstanlage ist es aber ein Molloch und ein ziemlicher Frustfaktor.

Zwischenfazit

Die Anlage macht, wie schon der kleine Bruder, eine Menge Arbeit. Mit der aktuellen Situation allerorts ist es erheblich stressiger als notwendig. Ich glaube aber auch, dass es ein richtiger Schritt ist. Der Weg ist das Ziel, und das Jahr ja noch nicht vorbei. Ich berichte wie es weiter gegangen ist.

 

EEG-Solaranlage – der nächste Schritt

Mit den Erfahrungen aus der "kleinen" Solaranlage ist es nun Zeit den großen Bruder aufzubauen. Diesmal nicht mehr als "Kleinstanlage", ...
Weiterlesen …

Solaranlage – das Erwachen der Macht

So langsam wacht die Natur wieder auf und auch die Sonne macht sich langsam wieder bemerkbar. Grund genug nach einigen ...
Weiterlesen …

NoSolarPower – Wir haben Herbst

Nach den ereignisreichen Monaten bisher in 2020 stellt sich doch langsam heraus, dass es Herbst wird. Die Blätter werden bunter, ...
Weiterlesen …

Solarpower – Energie durch Winkel

Die letzten Monate waren geprägt durch das Sammeln von Erfahrungen. Nun sollte langsam Ruhe in dieses spezielle Projekt kommen, daher ...
Weiterlesen …

Houston – wir haben ein Bild

Das ewige An-die-Anlage-Latschen-um-Leistungsdaten-zu-bekommen ist mir nun endgültig zu blöd, zumal es bei >35° noch weniger Laune macht als sonst. Es ...
Weiterlesen …

Solaranlage Retrofit – Höhere Sphären

Nachdem die Anlage nun ein Paar Monate in verschiedenen Konstellationen gelaufen ist, zeigen die gewonnenen Erkenntnisse schon deutlich das weiterer ...
Weiterlesen …

Energieneutraler Pool – Etappenziel erreicht

Der energieneutrale Pool als Ziel für dieses Jahr scheint realistisch. Mehrere Maßnahmen greifen gut ineinander und scheinen zumindest dieses Ziel ...
Weiterlesen …

Solare Freiheit – Weiteres Modul und Zahlenspiele

Im Mai war das Wetter solartechnisch bescheiden (nur Wolken und Regen) und die Werte der Anlage so schlecht, das Theorie ...
Weiterlesen …

Solare Freiheit – Erstes Fazit

Nachdem die Solaranlage nun ein Monat gelaufen war, ist es Zeit für ein erstes Fazit. Schatten und Licht liegen nahe ...
Weiterlesen …

Solare Freiheit – Nächste Schritte

Da nun die Solaranlage läuft und Theorie und Praxis sich scheinbar bestätigen, stellt sich nun die Frage nach weiteren Schritten ...
Weiterlesen …

Solaranlage – das Erwachen der Macht

So langsam wacht die Natur wieder auf und auch die Sonne macht sich langsam wieder bemerkbar. Grund genug nach einigen trüben Monaten mal wieder auf die Solaranlage zu schauen.

Projekt: Solaranlage

Kontakt: Boris Dirnfeldner

Link– eigenes Projekt –

Nachdem Ende September die Anlage mehr oder weniger in den Winterschlaf gefallen ist, kommen nun wieder sonnenreiche Tage auf. Der Sonnenstand ist nun auch wieder ausreichend hoch, dass die Anlage frühzeitig und beständig Sonne abbekommt. Auch ist die Einstrahlung wieder spürbar besser geworden, was sich sowohl im eigenen Befinden als auch in der Stromerzeugung merklich auswirkt.

Fazit 2020:
Das letzte Jahr (seit dem ersten Aufbau im April ’20) war gezeichnet durch Ausprobieren und Lernen. So ab August war auch ein leistungsfähiges Monitoring dabei, leider für manche Daten schon zu spät. Trotzdem hat sich für die eigenen Ansprüche ein ganz ordentlicher Aufbau ergeben, wenngleich natürlich auch viel Leistung nicht abgerufen werden konnte. Zum Ende hin konnte die Anlage praktisch mit Sonnenaufgang bis zum frühen Nachmittag gute Leistung bringen, dann auch noch ein wenig bis zum späten Abend auf niedrigerem Niveau. Das Ziel, eine zwar weniger optimale, dafür aber lange Versorgung auf (im Vergleich zu optimalen Aufstellungsbedingungen) niedrigeren Niveau konnte gut erreicht werden. Die Spitzenleistung von nur 600W (bei 1040WP Modulleistung) kann bei Sonne gut abgerufen werden und passt auch gut zur Grundlast von ca. 300W (nachts) bzw. 600W (unter Tags). Spitzen kann die Anlage nicht versorgen, dafür gibt es praktisch kaum Einspeisung ins Netz. Da die Anlage keine Vergütung erwirtschaftet, ist diese für mich auch wertfrei, bei zu hohen Werten sogar gefährlich (da der Netzbetreiber hier ungemütlich werden kann). In den Wintermonaten war die Anlage praktisch tot. Zum einen gab es kaum Sonne, zum anderen hat der niedrige Sonnenstand auch verhindert das die Module in Wandmontage überhaupt aus der Verschattung des Nachbarhauses rausgekommen sind. Selbst dann wären die Sonnenzeiten aber kaum relevant gewesen.
In Zahlen hat die Anlage 2020 324 KWh erzeugt, davon wurden 15,5 KWh eingespeist. Das ist an sich noch zu wenig, aber für die Rahmenbedingungen (Auf- und Umbauten sowie Schlechtwetterperioden) trotzdem Ok.

Stand und Ausblick 2021:
Unsere Grundlast hat sich wegen zusätzlichen Geräten und Pandemiebedingungen erhöht. Damit sollte sich der Eigenverbrauch auch verbessern, wobei dieser hier ohnehin nicht kritisch ist.
Da der Aufbau inzwischen final ist und neben wenigen kosmetischen Arbeiten auch nichts mehr geplant ist, sehe ich das Jahr als Referenz für die Ertragsfähigkeit.
Mit der letzten Woche im März ist die Anlage gut aktiv und bringt gerade sehr ordentliche Werte.
Der Ertragsspitzenwert wurde mit 3,8 KWh erreicht am 2.4.2021, der 7-Tage-Durchschnitt (29.3.-4.4.) beträgt 3,3 KWh/Tag. Dieses Jahr wurden bisher insgesamt 112 KWh erzeugt, davon alleine 47 KWh in den letzten 14 Tagen. Das entspricht in etwa den Erwartungswerten der Anlage für den Aufbau (Ausrichtung, Aufständerung und 600W-Limit durch Wechselrichter. Wenn das so weiter geht kann ich mich hier nicht mehr beklagen.

Ausbaumöglichkeiten:
Egal wie gut oder schlecht die Anlage arbeitet, es ist schon toll, wenn aus Sonne relevante Mengen an Strom erzeugt werden, gerade auch mit der schon recht kleinen Anlage. Wie schon im letzten Jahr abgeschätzt ist ein weiterer Ausbau der Grundlastversorgung nur sinnvoll, wenn damit die Grundlast über Nacht versorgt werden kann (da sonst nur Stromspitzen abgefangen werden können). Das bedingt aber eine ganz andere Architektur mit Speicher, und diese ist immer noch zu teuer um sich in vernünftiger Zeit zu amortisieren. Es wird wohl noch ein Paar (wenige) Jahre brauchen bis Stromspeicher hier kostengünstig genug geworden sind, aber dann wird wohl auch eine Ergänzung in diese Richtung angegangen. Aktuell rechne ich mit Amortisationszeiten von >15 Jahren, und das ist so nicht sinnvoll.

Softwareprobleme:
Da die einzelnen Datenlogger schon einige Monate Daten auf Halde klopfen, kann man erste Aussagen zur Langzeitproblemen machen. Neben ein Paar Bugs bzw. Verbesserungen im Startverhalten (z.B. bei Stromausfall) wurde der Datenbankzugriff auf den Loggern optimiert. Der Raspberry Zero im Schaltschrank hatte inzwischen Probleme seine Daten zeitnah in die SQLite-DB reinzukloppen. Da ein anderer Raspi per REST besagte Daten auch regelmäßig abfragt (zur Aggregation) ist es immer wieder zu Konflikten im Datenbankzugriff gekommen. Da die Software hier noch zu wenig fehlertolerant ist, sind immer wieder Werte nicht abgelegt worden. Das Problem hat sich in den letzten Wochen deutlich verschärft, so dass die Software nun zum einen ordentlich zwischen R/O Zugriffen und Schreibzugriff unterscheidet, zum anderen nun die Datenbank mit WAL (Write-Ahead-Log) arbeitet und damit auch am Zero keine Engpässe mehr hat. Als Produkt wäre das System immer noch zu einfach gestrickt, für mich im Hausgebrauch tut es aber erst mal wieder.

Formalien, …:
Solaranlagen bis 600W sind gemäß Gesetz zwar genehmigungsfrei, aber anmeldepflichtig (Stand 2020). Zum einen muss der zuständige Betreiber informiert werden, zum anderen hat man sich in das Marktstammregister entsprechend einzutragen. Wie oft in Deutschland sind diese Prozesse nicht unbedingt komfortabel und mit einigen Detailproblemen versehen. Meine Anmeldung ins Marktstammregister war z.B. lästig, aber überschaubar kompliziert. Daneben habe ich ein Meldeformular vom Betreiber als Fax an ein Kundenzentrum des lokalen Betreibers geschickt und war guter Dinge das damit alles passt.
Das Marktstammregister hat im Hintergrund ein Prüfungsticket an den Betreiber aufgemacht, der die Anlage entsprechend „genehmigen“ muss. Primär braucht es das wohl für EEG-Anlagen, ist aber auch bei den Zwergenanlagen so hinterlegt. Im Januar 2021(!) hat mir besagtes Register mitgeteilt, dass mein Netzbetreiber sich hierfür nicht verantwortlich fühlt und ich eine Betreiberkorrektur vornehmen soll. Im Ticket steht dazu, dass die Anlage nicht beim Betreiber angemeldet und damit unbekannt ist. Falls doch, soll ich die Vorgangsnummer dazu angeben. Habe ich nicht, da ich nach dem Fax dazu nichts mehr gehört habe.
Lange Rede, gar kein Sinn, das Fax ging wohl an die (aus der Sicht des Betreibers) falsche Nummer (richtiger Betreiber, aber Verwaltung Kundenzentrum, nicht Kundenzentrum selbst) und wurde kommentarlos ignoriert. Das ganze also neu an eine andere Nummer (auf der gleichen Webseite als Unterpunkt gelistet) und ab da ging das alles dann voran. Zum einen zeitnah eine Bestätigung mit besagter Nummer, zum anderen ein bzw. mehrere Vor-Ort Termine zur Zählerstandsablesung (Wintereinbruch in Bayern). Danach noch etwas Detailklärung und nun ist die Anlage sogar konform angemeldet. Wie immer, wenn man es irgendwie geschafft hat ist es einfach, bis dahin wird man in Verwaltungsmühlen kleingerieben. Sollte ich das nochmal machen ist aber eh wieder alles anders, also unnützes Wissen. Ich kann jedenfalls gut verstehen, dass sich das viele Leute sparen und die Anlage „schwarz“ betreiben. Der Sinn ist jedenfalls nicht erkennbar, und bis auf Verwaltungsaufwand bei allen Beteiligten bringt die Registrierung dieser Minianlagen auch keinem was. Ist halt Deutschland…

Fazit
So wie es aktuell läuft bin ich mit der Solaranlage zufrieden und finde es auch toll, dass zumindest für einen kleinen Anteil der eigene Strom eben nicht nur aus der Steckdose kommt. Die Anlage sollte in wenigen Jahren in die Gewinnzone kommen und ist damit sicher eines meiner besseren Projekte. Nicht zu vergessen, das mit den erhobenen Daten auch wieder einiges anzufangen ist.
Und das ganz ohne Cloud, Datenschutzproblemen und kostenpflichtigen Abos, man mag es nicht glauben!

EEG-Solaranlage – der nächste Schritt

Mit den Erfahrungen aus der "kleinen" Solaranlage ist es nun Zeit den großen Bruder aufzubauen. Diesmal nicht mehr als "Kleinstanlage", ...
Weiterlesen …

Solaranlage – das Erwachen der Macht

So langsam wacht die Natur wieder auf und auch die Sonne macht sich langsam wieder bemerkbar. Grund genug nach einigen ...
Weiterlesen …

NoSolarPower – Wir haben Herbst

Nach den ereignisreichen Monaten bisher in 2020 stellt sich doch langsam heraus, dass es Herbst wird. Die Blätter werden bunter, ...
Weiterlesen …

Solarpower – Energie durch Winkel

Die letzten Monate waren geprägt durch das Sammeln von Erfahrungen. Nun sollte langsam Ruhe in dieses spezielle Projekt kommen, daher ...
Weiterlesen …

Houston – wir haben ein Bild

Das ewige An-die-Anlage-Latschen-um-Leistungsdaten-zu-bekommen ist mir nun endgültig zu blöd, zumal es bei >35° noch weniger Laune macht als sonst. Es ...
Weiterlesen …

Solaranlage Retrofit – Höhere Sphären

Nachdem die Anlage nun ein Paar Monate in verschiedenen Konstellationen gelaufen ist, zeigen die gewonnenen Erkenntnisse schon deutlich das weiterer ...
Weiterlesen …

Energieneutraler Pool – Etappenziel erreicht

Der energieneutrale Pool als Ziel für dieses Jahr scheint realistisch. Mehrere Maßnahmen greifen gut ineinander und scheinen zumindest dieses Ziel ...
Weiterlesen …

Solare Freiheit – Weiteres Modul und Zahlenspiele

Im Mai war das Wetter solartechnisch bescheiden (nur Wolken und Regen) und die Werte der Anlage so schlecht, das Theorie ...
Weiterlesen …

Solare Freiheit – Erstes Fazit

Nachdem die Solaranlage nun ein Monat gelaufen war, ist es Zeit für ein erstes Fazit. Schatten und Licht liegen nahe ...
Weiterlesen …

Solare Freiheit – Nächste Schritte

Da nun die Solaranlage läuft und Theorie und Praxis sich scheinbar bestätigen, stellt sich nun die Frage nach weiteren Schritten ...
Weiterlesen …

ESP32 funkt mit Blauzahn

Bei einer Suchaktion ist mir mein alter PS3-Controller wieder in die Hände gefallen, mit dem ich meinen Buggy gebaut hatte. Damals hatte ich mein Pairing-Problem mit Bluetooth umschifft und stattdessen eine USB-Kabelanbindung verwendet. Mit dem ESP32 hätte ich eigentlich wieder Bluetooth zur Verfügung, daher ist es Zeit wieder einen neuen Versuch zu starten. Auch fürs Debug-Logging wäre es schön, wenn über Bluetooth ohne USB-Kabel gearbeitet werden könnte.

Projekt: ESP32 Bluetooth Basics

Kontakt: Boris Dirnfeldner

Link– eigenes Projekt –

Ziel:
Es soll für ESP32-basierende Projekte das Bluetooth-Modul verfügbar gemacht werden. Als unmittelbare Features will ich den PS3-Controller per Bluetooth verwenden können und das Debug-Logging über Bluetooth verfügbar machen.

Konzept:
Der ESP32 hat ja eigentlich ein recht ordentliches Bluetooth-Modul eingebaut (bisher ungenutzt). Dafür gibt es bereits fertige Libs, die unter Arduino verwendbar sind und recht einfache Einbindung versprechen.

Debug-Logging:
An sich ist das ein No-Brainer. Die Lib einbinden (ESPSoftwareSerial), eine Instanz erzeugen und wie Serial als Ausgabe nutzen. Das Teil hat lediglich einen beachtlichen Speicherhunger, so dass die Standardeinstellungen zum Partition-Schema nicht mehr nutzbar sind. Wenn man der App aber mehr Platz zugesteht (Huge App/ 3MB) dann ist das wirklich so einfach. Ob die Lib so riesig ist oder Bluetooth einfach den Platz braucht habe ich nicht nachgeprüft, da ich ohnehin früher oder später auf diese Konfiguration hätte wechseln müssen und das Interesse daran erst mal eher akademisch ist. Das Ganze habe ich auch gut in meine Basisumgebung integrieren können, so dass ich das für alle ESP-basierenden Programme gut verwenden kann. Der ESP meldet sich als Bluetooth-Serial-Gerät und kann z.B. am Handy per App (z.B. Serial Bluetooth Terminal) als Debug-Hilfe ohne bauliche Änderung verwendet werden. Bei manchen schnellen Tests hätte ich mir das schon viel früher gewünscht.

PS3 Bluetooth Controller:
Der Controller liegt bei mir schon länger rum. Ursprünglich hatte ich damit meinen Buggy gelenkt, allerdings kabelgebunden. Da mein Hexapod auch wieder einen Controller nutzt (PS2 mit Funkdongle) und Probleme macht (Funkdongle hat manchmal Verbindungsverluste und ist groß) wäre eine reine Funklösung schon schön. Auch hat der PS2-Controller auf den Analog-Sticks deutliche Totpunkte, die am PS3-Controller weniger ausgeprägt waren.
Auch hier gibt es bereits ordentliche Libs, wobei ich mich für ESP32-PS3 entschieden habe. Von der Anbindung auch einfach und mit den Beispiel-Programmen auch toll dokumentiert. Und es hat mir endlich erklärt warum ich damals damit nicht weitergekommen bin. Die Playstation-Controller verbinden sich nicht wie ein normales Bluetooth-Gerät, sondern verlangen ein kabelgebundenes Pairing und akzeptieren dann auch nur Verbindung mit der dabei übergebenen MAC-Adresse. Zum Glück findet sich ein entsprechendes Tool für diesen Vorgang (SixaxisPairTool). Damit kann ich sowohl die aktuelle MAC auslesen oder auch neu setzen. Und damit funktioniert auch die Anbindung an den ESP32 schon fast zu einfach. Das Beispielprogramm zeigt mir, das ich auf alles Knöpfe und Knüppel Zugriff habe und auch die Spieler-ID korrekt setzen kann. Akkustand gibt es auch gemeldet, lediglich der Lage- oder Beschleunigungssensor scheint nix zu liefern. Ob der Controller überhaupt einen hat weiß ich aber auch nicht. Das Teil wird auf jeden Fall auch in meine Basis-Library integriert, dann kann auch mein Hexapod ab sofort auch ohne Dongle arbeiten.

Fazit:
Bluetooth war ein wichtiger Schritt vorwärts, zumal der ESP32 bei mir derzeit das Mittel für praktisch alle Projekte ist (wenn es kein Raspberry oder mehr sein muss). Es gibt hier schon recht ordentliche Lösungen die auch recht einfach gehalten sind, gerade weil die ESP-eigene Umgebung doch recht komplex ist (wenn auch leistungsfähiger). Ich schätze es aber, wenn ich durch das Arduino-Konzept einfach Zeit und Mühen spare. Und derzeit gibt es keine zwingenden Gründe hier eine Umstellung zu machen.
BTW: Bei der Gelegenheit habe ich mir noch einen PS4-Controller bestellt. In der Theorie geht der auch, hat aber zusätzlich ein Touchpad und eine Mono-Soundausgabe. Ob das klappt ist aber ein eigenes Mini-Projekt und Thema eines anderen Artikels.

To be continued…. 

Intelligenter Chatbot mit Lernschwäche – Erste Schritte mit Rasa

Nach einigen anderen Arbeiten war es an der Zeit das Thema Chatbot wieder aufzunehmen. Die letzten Versuche mit Chatterbot und Telegram waren ja ganz nett, aber von „intelligent“ waren wir doch weit weg. Nun geht es an das Thema Satzverständnis und Kontext mit Rasa als Basisprodukt.

Projekt: Telegram Bot

Kontakt: Boris Dirnfeldner

Link: – eigenes Projekt –

Beim letzten Versuch hat sich herausgestellt, das einfaches Nachplappern tatsächlich ganz interessante Dialoge ermöglicht. Allerdings war es auch offensichtlich, dass der Bot absolut keine Ahnung hatte um was es da geht und die untrainierten Bereiche entsprechend zufällig beantwortete. Das war zwar zuweilen lustig, aber manchmal auch sehr unglücklich im Ergebnis.

Bei den Recherchen zum Thema sind die Themen NLP – Natual Language Processing und KI – Künstliche Intelligenz als nächste Evolutionsstufe identifiziert worden mit den (für Python geeigneten) Lösungen spacy (für NLP) und Rasa (als integriertes Paket, das bereits die notwendigen Komponenten für einen Chatbot und Lernfähigkeit per KI-Umgebung zusammenbringt). Und Schnittstellen, auch zu Telegram, sind im Paket auch schon enthalten.

Rasa – erste Schritte
Die Installation an sich ist (eine fertige Python-Umgebung vorausgesetzt) einfach und gut dokumentiert (link). Für den Start empfiehlt sich die Umgebung mit „rasa x“ zu starten und damit die mitgelieferte UI zu nutzen. Zwar ist die manchmal hakelig und nicht fehlerfrei, zumindest zu Beginn aber gut geeignet zur Einarbeitung.
Im Kern speichert Rasa seine Daten in ein Paar wenigen Dateien und der eigenen Datenbank. Diese Daten werden idealerweise aus Versuchsdialogen erzeugt und dann manuell nachgearbeitet.
Mit den Daten wird dann ein Training vorgenommen, das entsprechend seine Modelle aktualisiert. Dann beginnt man das ganze wieder von vorn, bis ein geeignetes Modell für seine Zwecke erreicht wurde. Für den Start wird die eigentlich vorhandene Komplexität der Umgebung recht gut versteckt. Mit jedem Schritt weiter geht es aber schnell tiefer in die Materie und weg von „einfach“. Spätestens wenn man ernsthaft versucht, einen etwas komplexeren Bot über das Niveau von „Hallo Welt!“ zu heben, ist man schon gut unterwegs und ohne Hintergrundwissen und Hilfen bzw. Doku ziemlich verloren. Allerdings ist da auch einiges vorhanden, wenn auch nicht immer einfach zu finden. Mit etwas guten Willen kommt man zurecht, und das Forum scheint auch recht gut zu laufen.

Modell und Elemente
Anders als in einfachen Lösungen, die einfach vorhandene Antworten mehr oder weniger gut nachplappern, kann Rasa durchaus ein gewisses Satzverständnis aufbauen und Kontextwissen zum Dialog halten. Das ist allerdings auch wesentlich komplexer als einfach nur Texte einzutippen bis es einigermaßen läuft.
Grundsätzlich (und stark vereinfacht) wird die Eingabe durch eine „Pipeline“ an Komponenten geschickt. Je nach Konfiguration (und die ist schon so gar nicht ohne Hintergrund möglich) werden hier die Strategie und auch die Möglichkeiten der Verarbeitung definiert. Hier lohnt es sich mit einer vorbereiteten Konfiguration zu starten und diese dann schrittweise anzupassen.
Der Kernablauf ist, dass zuerst mehr oder weniger Hintergrund zur Eingabe erarbeitet wird (hier ist bei mir z.B. spacy aktiv) und der Satz in seine Bestandteile zerlegt wird bzw. bewertet. Basierend auf vorher gelernten Beispielsätzen wird dann damit gefolgert, welche Absicht (Intent) der Benutzer gerade verfolgt. Je nach verwendeten Modulen in der Pipeline und der Qualität der Trainingsdaten werden hier auch schon bestimmte Daten erfasst (Entities) und gespeichert (Slots). Je nach Absicht kann man mit festen Regeln (Rules) oder längeren Geschichten (Stories), daraus geeignete Aktionen darauf (Actions) bestimmt werden. Die sind dann z.B. standardisierte Antwortsätze oder eigener Code zur weiteren Bearbeitung (Custom Actions).
Rules sind hierbei vordefinierte, idealerweise einfach als Frage-Antwort definierte Logikschnipsel, die verbindliche Reaktionen definieren. Stories sind dann meist längere Episoden, die einen Gesprächsverlauf über einer längere Strecke definieren. Letztere sind vor allen dann wertvoll, wenn ein Gespräch einen ungeplanten Verlauf nimmt. Dann wird auf Basis der vorhandenen Stories vom Modell „geschätzt“ wie eine Reaktion darauf sein könnte. Je nach Qualität und Menge der Eingabedaten ist das dann aber auch mehr oder weniger richtig.

Etwas eigene Meinung zur Umgebung und Aufgabe
Die Lösung ist intern ziemlich komplex und mächtig. Intelligente Bearbeitung von Sprache ist auch keine leichte Kost und leider auch nicht aus dem Ärmel zu schütteln. Man kann dies gut an der Entwicklung der „intelligenten“ Assistenten über die letzten Jahrzehnte verfolgen, die zu Beginn so gar keine Hilfe waren und inzwischen durchaus schon gute Ergebnisse erzielen. Man sollte aber nicht glauben das dies einfach und schnell erreicht werden konnte und wird. Ebenfalls ist Sprache ein unglaublich komplexes Thema, wenn man versucht hier ein künstliches Verständnis zu erreichen. Rasa erlaubt es hier langsam tiefer zu gehen und immer wieder eine neue Stufe zu erreichen. Allerdings ist das auch erforderlich, wenn man was erreichen möchte.

Lernkurfe und Leistungsfähigkeit
Bei den Versuchen, einen deutschsprachigen Bot aufzubauen, bin ich immer wieder von „es-läuft“ hin zu „gar-nix-geht-mehr“ gewechselt und wieder zurück. Mit jedem neu gelernten Detail haben sich neue Untiefen gezeigt oder notwendige Anpassungen in der Konfiguration. Gerade die richtige Strukturierung der Lerndaten ist nicht wirklich einfach, die Konfiguration des Systems so ganz und gar nicht. Da war ich schon mehrmals an einem Punkt von „ich kapiere gar nix mehr“. Mit der Zeit wird es aber immer besser, und die Lernkurfe des Systems ist eigentlich sehr ordentlich (auch meine bei der Einarbeitung). Man merkt der Lösung schon an, dass da einige viele Jahre Entwicklung und Hintergrund drinstecken und viel Mühe darauf verwendet wurde, es kontrollierbar zu halten.

Geschwindigkeit und Ressourcenbedarf
Rasa braucht (gerade im Vergleich zum sehr einfachen Chatterbot) schon einiges an Rechnerperformance, hier vor allen Speicher. Einige hundert MB am RAM sind für den Betrieb erforderlich. Beim Trainieren ist auch eine leistungsfähige CPU notwendig. Für einen Raspberry ist das jedenfalls nichts, da muss schon was Stärkeres her. Wenn man mit der UI arbeitet, erscheint das System auch im Chat recht träge. Allerdings wird hier viel in der UI verbraten. Auf der Kommandozeile sieht man dann aber, dass das Modell an sich aber relativ schnell, zumindest ausreichend, im Chat reagiert. In den Foren und auf der Webseite wird mit Docker-Containern und AWS-Systemen gearbeitet, also Rechenzentrumsumfeld. Für Embedded-Lösungen ist das System jedenfalls schwierig einzupassen.

Dinge zur Beachtung
Wenn man mit Rasa (bzw. Rasa x) arbeitet, sollte man folgende Punkte beachten:

  • Alle Änderungen in der Konfiguration bzw. den Trainingsdaten sind erst nach erfolgreichem Training verfügbar.
  • Ein Training erzeugt ein neues Modell, das zuerst aktiviert werden muss.
  • Die UI zeigt manchmal widersprüchliches Verhalten und erscheint nicht überall stabil oder fehlerfrei. Im Zweifel mal in die Dateien schauen.
  • Wenn man mit der UI arbeitet („rasa x“), benötigt man oft die Logs der Kommandozeile um Details zu auftretenden Fehlern zu bekommen.
  • Manchmal ist es leichter direkt in den Dateien zu arbeiten, um z.B. schnell Trainingsdaten einzupflegen oder zu überarbeiten.
  • YML-Dateien sind im aktuellen Format (2.x), MD-Dateien aus den alten Versionen (1.x). Allerdings werden beide berücksichtigt und aktiv verwendet.
  • Kleine Frage-Antwort Dialoge sind gut in den Regeln aufgehoben, komplexere Dialogstrecken in den Stories.
  • Regeln und Stories dürfen sich nicht widersprechen, sonst schlägt das Training fehl.

Fazit
Nach einigen Stunden mit Rasa läuft ein erstes Modell, das schon gut das Potential der Umgebung zeigt. Die elementaren Funktionen sind vorbereitet und erste Schnittstellen zum Haussystem vorbereitet (über Custom Actions). Für ein robustes Modell sind die Trainingsdaten aber einfach noch zu klein und das Verhalten noch zu ungerichtet. An manchen Stellen hakt es bei mir noch ganz klar am Verständnis der internen Vorgänge und den NLP-Hintergründen. Mal sehen wie gut das Modell über die Zeit werden kann.

Intelligenter Chatbot mit Lernschwäche – Erste Schritte mit Rasa

Nach einigen anderen Arbeiten war es an der Zeit das Thema Chatbot wieder aufzunehmen. Die letzten Versuche mit Chatterbot und Telegram waren ja ganz nett, aber von "intelligent" waren wir doch weit weg. Nun geht es an das Thema Satzverständnis ...
Weiterlesen …

Telegram Bot – Hirn ist aus

In einem früheren Post hatte ich ja schon über den Telegram Bot als Interface für die Heimautomatisierung geschrieben und die Idee, nicht-Kommandos über einen ChatBot zu bearbeiten. Die Idee ist inzwischen etwas weiter gedacht und erheblich komplexer geworden.Projekt: Telegram Bot ...
Weiterlesen …

Telegram Bot – Chat mit Raspberry

Mittelfristiges Ziel ist, die ganzen Projekte zusammen zu schließen und auch von außen sicher zu nutzen. Dazu ist ein kleiner Versuch zur Anbindung von Telegram an einen Raspberry gestartet worden. Am Ende ist ein funktionierender Telegram Bot in Python auf ...
Weiterlesen …

Hexapod – Wir werden besser

Der erste Ansatz hat ja einige Probleme mit sich gebracht und leider doch wieder einige Anpassungen notwendig gemacht. Neben der Schüttellähmung bei den Drehservos ist leider auch immer wieder die Servoansteuerung ganz ausgestiegen und die Bewegung wurde nie flüssig. Inzwischen sind wir hier weiter und ein neuer Artikel ist fällig.

Projekt: Hexapod 12 DOF

Kontakt: Boris Dirnfeldner

Link– eigenes Projekt –

Nachdem die Software eine gewisse Reife hatte, sind trotzdem einige Dinge nicht durch simples Parametertunen zu lösen gewesen.

Das große Zittern
Ein wirklich blödes Verhalten war das ständige Gezittere bei den Drehservos. Die Plastikgetriebe (ok, Nylon) sind zwar ok und sehr günstig, da aber dann doch überfordert. Nur mit anziehen der Schrauben wurde es zwar etwas besser, am Ende aber immer noch ein Problem oder die Gelenke nicht mehr zu bewegen. Da ich inzwischen Servos mit Metallgetriebe habe (MG90), wurden die 6 Drehservos kurzerhand getauscht. Die MG90 sind hier um Welten besser und bieten kaum Spiel. Damit war das Aufschaukeln weg und die Bewegungen im Vergleich sehr gut kontrollierbar. Kraft war hier ohnehin nie ein Thema, lediglich die Lautstärke ist etwas höher. Die Hebeservos waren hier problemlos, daher bleiben die erst mal drin.

Plötzlicher Kontrollverlust
Ein richtig nerviges Ding war, das immer wieder und plötzlich alle Servos kraftlos wurden. Im Code war das nicht zu begründen, schien sich aber bei komplexeren Bewegungen aller Servos zu häufen. Danach war das System nur durch Neustart mit Powercycle wieder zur Kooperation bewegen. Der ESP hat dabei aber immer fröhlich weiter gemacht, nur hat es die Servos nicht mehr interessiert. Nach etwas Fehlersuche schien der I2C-Bus, über den der PCA9685 angeschlossen ist, die Grätsche zu machen. Nach etwas Netzrecherche scheint es wohl Probleme mit dem ESP32 zu geben, wenn zeitgleich die serielle Schnittstelle und der I2C-Bus am Werkeln sind. Keine Ahnung ob das nun wirklich so stimmt, bleiben konnte es so nicht. Da das Gamepad zwingend eine serielle Verbindung braucht, muss dann halt der Servocontroller weichen. Der zickte ja auch beim Einschalten rum (harte Ausschläge der Beine beim Initialisieren der Lib) und sollte in einer späteren Version auch ersetzt werden, daher gleich weg damit.
Der ESP triggert nun direkt per I/O die PWM-Eingänge der Servos. Damit das einigermaßen ordentlich funktioniert, musste auch schon mal eine erste Version einer Stromverteilerplatine dazu, die sowohl Servokabel, Strom als auch Signale zusammenbringt. War auch erst später geplant, aber was solls. Die erste Version ist leider wieder löttechnischer Pfusch, tut aber erst mal. Für das nächste Modell muss das aber nochmal und richtig gemacht werden.

Grenzen des PWM
Da nun der Servocontroller in den ESP gewandert ist, muss nun auch eine passende Lib dafür her. Die gibt es zuhauf und verwenden (fast alle) das eingebaute PWM-Modul. Leider hat der ESP32 damit „nur“ 16 unabhängige Kanäle, damit für das spätere 18DOF-Modell Zuwenig. Wenn ich aber schon umbauen muss, dann auch so dass die Lösung nachher auch weiterverwendet werden kann. Bei der Suche nach einer Lösung ist mir eine Library untergekommen, die mit einem Timer und Interrupt arbeitet und (mit kleinen Anpassungen und auch gemäß der Meinung des Entwicklers) auch deutlich mehr Servos verkraftet (Link). Mit etwas Try&Error und der Verteilerplatine hat sich tatsächlich eine stabile Lösung zur Servoansteuerung gefunden, die auch mit den geplanten 18 Servos klarkommen sollte. Die Ansteuerung haut auch nicht unkontrollierte Bewegungen raus wie beim Servocontroller. Im Code ist der Umstieg relativ schnell getan, und bis auf kleine Anpassung der Parameter in der Berechnung und Initialisierung funktionierte es auch fast Out-of-the-box. Leider hatte der Ansatz mit dem Timer Anfangs auch Probleme gemacht, da auch der Scheduler so arbeitet und der Überwachungsthread hier mit der Servolib den gleichen Timer verwenden wollte. Nachdem das klar war auch kein Problem, zumal ich die Überwachung in dieser Lösung eh nicht brauche.

Ruckelnde Bewegungen
Eigentlich war ja die Bewegungssteuerung für mich das interessante an diesem Projekt. Umso ärgerlicher war es, dass ich es bisher nicht geschafft hatte eine flüssige Bewegung ohne ruckeln zu bekommen. Entweder die Servos auf Vollgas laufen lassen (und damit zu schnell) oder ruckeln. Zwar wurde das Ruckeln immer formvollendeter, aber es blieb dabei. Nachdem mit den ganzen Änderungen zumindest ein stabiles System erreicht worden ist, ging es also wieder an die Steuerung. Eigentlich war es klar, dass die Steuerung nicht schnell genug durch die Regelschleifen kommt und dadurch ruckelt. Normalerweise sollte durch Anpassen der Scheduler-Konfiguration das leicht anzupassen sein, aber irgendwie brauchte der Code einfach zu lange. Der ARM-Kern sollte aber locker genug Leistung haben, zumal vergleichbares auch schon mit 8-Bit ATMEL-CPUs gemacht worden ist. Irgendwann (eher durch Zufall) hatte ich plötzlich eine saubere, ruckelfreie Bewegung, und zwar einfach durch Abschalten der Debug-Meldungen. Tatsächlich bremsen die Debug-Meldungen am seriellen Bus das System derart aus, das alle anderen Parameter schlicht nicht mehr zum Tragen gekommen sind. Nachdem das klar war, ging es in Riesenschritten zu im Vergleich schon sehr guten Bewegungen.

Der macht was er will
Ein letztes Thema ist aber immer noch, dass immer wieder das System eigenwillig in die Ruhelage steuert (egal was ich am Gamepad mache). Hier hatte ich vorher noch die Hardware oder die Servos im Verdacht, tatsächlich ist es aber ein Standardverhalten des Dongles für den PS2-Controller, wenn die Verbindung abbricht. Das System bekommt das nicht mit (der Dongle verhält sich wie ein Gamepad ohne Input), lediglich der Controller selbst blinkt dann als Hinweis auf den Verbindungsverlust. Es scheint, als on der Dongle nicht zu nah am ESP sein darf, weil sonst die Verbindung abbricht. Naja, auch nicht unmöglich zu lösen, wenn man es weiß.

Fazit:
Natürlich ist das Teil immer noch eine Bastelei. Allerdings sind viele der Anpassungen, die erst fürs nächste Modell geplant waren bereits umgesetzt und wieder neues dazu gelernt worden.
Die Steuerung macht schon richtig Laune, und im Übermut konnte ich sogar kleine Hopser mit dem Teil fabrizieren. Jetzt geht es aber zurück an die eigentliche Aufgabe, nämlich dem Teil endlich das Gehen beizubringen (soweit halt möglich mit den eingeschränkten Freiheitsgraden).

Hexapod – Wir werden besser

Der erste Ansatz hat ja einige Probleme mit sich gebracht und leider doch wieder einige Anpassungen notwendig gemacht. Neben der ...
Weiterlesen …

Hexapod – wir lernen laufen

Die Hausspinne hat inzwischen Fortschritte gemacht, genug um den neuen Stand in einem Text zu beschreiben. Verbesserungen im Steuerprogramm, neue ...
Weiterlesen …

Hexapod – Roboter mit Schüttellähmung

Nachdem nun alle Teile im Haus sind und der Aufbau erst mal fertig ist, geht es daran die Bewegungen richtig ...
Weiterlesen …

DIY – Hexapod als neue Hausspinne

Ein schon langes geplantes Projekt, dass ich aber auch lange mangels Zeit verschieben musste, war ein Hexapod aus eigener Fertigung ...
Weiterlesen …

Hexapod – wir lernen laufen

Die Hausspinne hat inzwischen Fortschritte gemacht, genug um den neuen Stand in einem Text zu beschreiben. Verbesserungen im Steuerprogramm, neue Schnittstellen und ein Gamepad als Eingabegerät machen die weitere Entwicklung einfacher und auch mehr Spaß.

Projekt: Hexapod 12 DOF

Kontakt: Boris Dirnfeldner

Link– eigenes Projekt –

Die Hausspinne basiert ja auf einem fertigen Design (beim Druckmodell) und eigener Software. Nach den ersten Versuchen haben sich schnell auch erste Defizite gezeigt und die Detailprobleme, die das vorhandene Konzept hat.

Änderungen und Verbesserungen Mechanik/Elektronik:
Das Thema Schüttellähmung hat sich mit besser angezogenen Schrauben vermindert, wenn auch nicht gelöst. Hier sind wohl bessere Dämpfungslösungen im Design erforderlich oder eine andere Form der Kraftübertragung von den Servos, das ist aber für die „Lernversion“ nicht mehr relevant. Leider hilft das Festschrauben auch nicht beliebig, weil irgendwann die Servos nicht mehr gegen die Reibung ankommen.
Bei der Stromversorgung hat sich der Ansatz mit dem 18650-Shield nicht bewährt. Der hat einfach nicht genügend Saft um schnelle und komplexe Bewegungen mit ausreichend Strom zu unterstützen und schaltet immer wieder wegen der Überlastung ab. Hier wurde nun auf Modellbau-Komponenten umgestellt, mit einem 3S Lipo, einem Festspannungs-SBEC und entsprechenden Kabeln/Steckern. Damit sollte für das Modell die Stromversorgung geklärt sein.
Den Arduino UNO hatte ich ja bald schon ersetzt durch einen ESP32, der neben deutlich großzügigeren Speicherbedingungen auch mehr Prozessorleistung bietet. Mit jeder Software-Erweiterung sieht man aber den erhöhten Bedarf, so dass der Umstieg ohnehin zeitnah notwendig gewesen wäre.
Neu ist die Anbindung eines PS2-Controllers per Funkdongle. Das Teil hatte ich schon mal in Verwendung, zumindest die Hardware war also wenig problematisch.
Da für die Version damit die Hardware definiert und ausgereizt ist, wird es wohl noch angepasste Druckteile geben um den Ausbau auch sicher zu befestigen.

Software:
Hier wird am meisten gearbeitet und hier gibt es auch am meisten zu tun.
Zum einen werden die Gelenkservos nun mit 50Hz angesteuert und laufen damit weniger hakelig als vorher. Die Steuerung des Gesamtsystems hat nun einen eigenen „Steuerungs-Thread“ und ist damit auch für komplexere Ansteuerung gerüstet. Die Bewegungssequenzen sind nun auch präziser, da nicht mehr jedes Gelenk einzeln angesteuert wird, sondern alle Servos zusammen (und fast zeitgleich) aktualisiert werden. Dadurch wird auch der erforderliche Code für die Bewegungen kürzer und übersichtlicher. Die einzelnen Gelenke laufen auch jeweils in kleinen „Threads“ und interpolieren die geforderte Bewegung in der gewünschten Geschwindigkeit (allerdings bisher noch linear).
Über die Kommandozeile ist es nun auch möglich Kommandos auf Gelenkebene und für das Gesamtsystem direkt per USB-Verbindung einzuspeisen und sich so komfortabler an mögliche Bewegungen ranzutasten. Ohne Try&Error geht da fast nichts, zumal nicht jede Bewegung theoretisch sicher abgeschätzt werden kann.
Auch muss ich so nicht mehr jeden Versuch erst mal als Programm neu übertragen, was auf Dauer auch das Flash ausnudelt.
Da die Kommandozeile auf Dauer auch keine Laune macht, vor allen nicht wenn es um Timing-Fragen geht, ist nun ein PS2-Spielecontroller mit Funkverbindung im System. Eigentlich ein bekannter Kandidat, allerdings nur auf den Arduinos. Mit dem ESP32 gab es einige hakelige Punkte die erst mal (in der Library) angepasst werden musste. Nach ein paar Stunden Fluchen, Suchen, Umstecken und weiteren Fluchen macht das Teil endlich wieder was es soll. Aber so richtig Lustig war das nicht, zumal ich da keine derartigen Probleme erwartet hatte.
Aktuell ist der Fokus der Entwicklung also in den Bewegungen des Systems und den Übergängen zwischen Kommandos. Auch wird alles für ein 18DOF Modell vorbereitet um hier die Anpassungen übersichtlich zu halten. Je mehr ausprobiert wird, desto öfter finden sich auch kleine Bugs die natürlich auch rausgearbeitet werden.

Mit dem Gamepad hat nun auch der Sohnemann den ersten Kontakt mit dem neuen Stubenmitglied und schon (für den geringen Funktionsumfang) viel Spaß. Hier noch ein kurzes Video mit den ersten Versuchen mit Gamepad und Lipo nach Umbau:

Planspiele NextGen:
Mit den Erfahrungen gibt es natürlich auch den Wunsch nach Verbesserung. Am aktuellen Modell wird nicht mehr viel geschraubt, und die fehlenden Freiheitsgrade sind nicht auszugleichen.
Nebenher wird also die neue Generation schon mitentworfen. Folgende Rahmenbedingungen zeichnen sich bereits ab:

  • Das Basisdesign orientiert sich an einem Nachbau des bekannten PhantomX AX von Trossen Robotics. Um die Kosten im Rahmen zu halten, wird dort mit MG996R Digitalservos gearbeitet. Scheinbar kraftvoll genug, 18DOF, kugelgelagerten Gelenken, einem geeigneteren rechteckigen Layout und genügend Platz alles drauf zu montieren. Der Grundaufbau mit kleinem Akku sollte mit ca. 200€ Materialkosten möglich sein.
  • Die Ansteuerung der Servos wird direkt vom Controller erfolgen anstatt über den bisher verwendeten PCA9685. Zum einen ist der I2C-Bus ein potentieller Flaschenhals bei schneller Ansteuerung aller Servos, zum anderen möchte ich bessere Kontrolle über die Ansteuerung bekommen. Der ESP32 hat hierfür genügend I/Os, sollte also passen.
  • Die Stromversorgung wird ähnlich ausgeführt, benötigt aber einen leistungsfähigeren SBEC. Eine Version mit 20A sollte normalerweise genügen und ist bestellt. Der könnte dann auch mit leistungsfähigeren Lipos umgehen, falls notwendig.
  • Die Fernsteuerung per PS2-Controller bleibt. Je mehr die Software bietet, desto höher ist der Nutzen einer solchen Steuerung.
  • Die Software sollte sich nahtlos umstellen lassen, natürlich mit einigem an Feintuning. Durch die zusätzlichen Freiheitsgrade sollte es aber speziell bei Bewegungen in eine Richtung wesentlich flüssiger und ohne das ausgeprägte Gerutsche laufen.
  • Ein Feedback über die Gelenkpositionen wäre wichtig, aber noch ungelöst. Eine Option wäre ein Rückkanal über Potis, dafür fehlen dem ESP aber die benötigten Eingänge. Eine Idee sind hier Analogmultiplexer, aber das muss sich erst noch zeigen.
  • Auch wäre es sinnvoll, an den Beinspitzen ein Feedback für Kontakt zu bekommen. Das geht z.B. mit Mikroschaltern oder über Drucksensoren. Auch hier ist es noch nicht klar wohin die Reise geht.

Natürlich gibt es Tonnen an weiteren Ideen und erforderlichen zusätzlichen Arbeiten, aber auch hier ist die Basisplattform erst mal das wichtigste.

Fazit:
Es bleibt also spannend und weiterhin viel zu tun. Es zeigt sich aber, dass es in die richtige Richtung geht und die Ergebnisse werden mit jedem Versuch besser. Das NextGen-Projekt wird aber auch erst 2021 starten und dann vermutlich auch einige Zeit brauchen, zumal ich dann hoffentlich auch wieder in regulären (Brot&Butter-) Projekten zu tun habe.

Hexapod – Wir werden besser

Der erste Ansatz hat ja einige Probleme mit sich gebracht und leider doch wieder einige Anpassungen notwendig gemacht. Neben der ...
Weiterlesen …

Hexapod – wir lernen laufen

Die Hausspinne hat inzwischen Fortschritte gemacht, genug um den neuen Stand in einem Text zu beschreiben. Verbesserungen im Steuerprogramm, neue ...
Weiterlesen …

Hexapod – Roboter mit Schüttellähmung

Nachdem nun alle Teile im Haus sind und der Aufbau erst mal fertig ist, geht es daran die Bewegungen richtig ...
Weiterlesen …

DIY – Hexapod als neue Hausspinne

Ein schon langes geplantes Projekt, dass ich aber auch lange mangels Zeit verschieben musste, war ein Hexapod aus eigener Fertigung ...
Weiterlesen …

Wir benutzen Cookies und Logs mit personenbezogenen Daten ausschließlich für essentielle Funktionen wie z.B. bei der Benutzeranmeldung oder der Fehlersuche. Für Videos werden weitere Cookies von Drittanbietern benötigt. Details finden sie unter dem Link "Weitere Informationen".