Version 3.1

Nach dem ersten Testlauf von Version 3.0 habe ich mich entschieden, dann doch neben den Verbesserungen auch gleich die Halterung für die Spitzen zu integrieren, weshalb daraus nun Version 3.1 geworden ist.

Die Änderungen

Zuerst habe ich die Führungen verkleinert. Eigentlich nur den inneren Durchmesser, wodurch die Stabilität weiter erhöht wird. Man bleibt immer mal dort hängen und auch wenn ich schon lange keine Probleme an dieser Stelle mehr habe, sollen dort auch keine mehr auftreten.

Dann habe ich die Löcher zum Einstecken der Darts verändert. Oben ist das Loch nun grösser und verjüngt sich immer weiter. Dadurch hoffe ich, auch verschieden dicke Spitzen sicher aufnehmen zu können. Wird sich zeigen müssen.

Weiterhin habe ich die Ecken unten abgeschrägt. Die waren in der letzten Version schon ziemlich spitz, was je nachdem auch mal etwas wehtun konnte. Das sollte damit behoben sein.

Zum Schluss habe ich dann noch zwei Plätze für Ersatz-Spitzen vorgesehen. Die sitzen zwischen den Darts und können insgesamt 18 Spitzen aufnehmen. Jeweils 9 also. Solange es keine Probleme mit dem Platz gibt, sollte das in meinen Augen funktional sein. Alles deutlich kompakter als vorher. Auch die Löcher verjüngen sich nach unten hin. Während das Modul für die Version 2 quasi gerade Löcher hatte, die ich anfangs sogar nach bearbeiten musste, sollte so die Aufnahme der Ersatz-Spitzen deutlich einfacher funktionieren. So die Hoffnung.

Erhofftes Ergebnis

Ich hoffe sehr, dass mit dieser Version die letzten Kinderkrankheiten behoben sind. Da mittlerweile schon ein wenig Interesse an dem Halter gezeigt wurde und ich auch schon Zusagen gemacht habe, allerdings noch für die Version 2, kann ich diese nun hoffentlich bald auch erfüllen!

Erster Test von Version 3.0

Es hat jetzt etwas gedauert, aber nun habe ich endlich die Zeit gefunden, die Version 3.0 zu testen. Es gibt zwar noch ein paar Dinge, die nachgebessert werden müssen, aber davon abgesehen lief alles ziemlich gut!

Negatives

Ich fange ja immer ganz gerne mit den schlechten Dingen an, dann hab ich die hinter mir. Also, los gehts!

  • Die Führungen sind eindeutig zu gross. Die Darts hängen manchmal so schief in der Gegend, dass es einfach kein schönes Bild ergibt. Es bleibt funktional, aber definitiv optisch nicht ansprechend!
  • Der Durchmesser des Lochs für die Spitzen sollte am Eingang noch grösser sein. Die Darts lassen sich zwar gut positionieren, dringen aber nicht tief in die Halterung ein. Bei ruckartigen, oder ausschweifenden Bewegungen könnte es so zu Reibungsverlust und einem ungewollt herausfallendem Dart kommen.

Damit wären die negativen Punkte schon abgehakt.

Positives

  • Dadurch, dass nur noch ein Klettband verwendet wird, ist das anlegen deutlich einfacher!
  • Die verringerte Grösse macht das tragen angenehmer.

Das wären die Punkte, die mir aufgefallen sind. Alles Andere kann man von der Vorgängerversion übernehmen. Es funktioniert auf jeden Fall!

Verbesserungen

Das ergibt sich eigentlich durch die negativen Punkte:

  • Die Führungen werden kleiner
  • Die Löcher für die Spitzen am Eingang grösser und verjüngen sich dann
  • Ich spiele mit dem Gedanken eine Führung für das Klettband einzubauen. Bin mir aber noch nicht sicher!

Darüber hinaus muss da irgendwo ein Platz für die Ersatz-Spitzen hin. Hätte nicht gedacht, wie schnell man sich an so etwas gewöhnen kann, aber es ist so! Ohne diese Vorrichtung fehlt einfach was. Das bringe ich aber schon noch irgendwo unter.

Fazit

Trotz der Neukonstruktion haben sich die Meisten der positiven Eigenschaften bewahrt. Es sind neue, positive Punkte hinzugekommen und die neuen Fehler sind nur Kinderkrankheiten, die schnell behoben sein sollten.

Ich denke, die Version 3.1, mit dem Update für die Ersatz-Spitzen, wird schon ein funktionsfähiges Exemplar ohne Probleme werden.

V 3.0 bereit zum Einsatz!

Es hat ein bisschen gedauert, aber nun ist die Version 3.0 gedruckt und wartet auf den ersten Einsatz!

Wie auch schon bei den Vorgängerversionen, habe ich auch bei diesem Druck eine Layer-Höhe von 0,15 eingestellt, um den Ausdruck etwas zu beschleunigen. Dennoch dauert es über vier Stunden, bis der Druck beendet ist!

Das Sringing nervt mich dabei allerdings etwas. Ich muss mit den Einstellungen spielen um dieses Problem irgendwie zu umgehen. Hoffentlich klappt das auch, denn davon abgesehen, auch wenn es hier und da etwas grob erscheint, finde ich den Ausdruck durchaus gelungen!

Ausserdem scheint mir bei dieser Version die Führung für die Darts dann doch etwas zu gross. Bei der Version 3.0 haben die Führungen einen Innendurchmesser von 13mm. Bei Version 2.3 waren es nur 10mm und die waren mehr als ausreichend. Von daher wird dieser Teil wahrscheinlich noch verändert und als Version 3.1 erscheinen.

Der direkte Vergleich zwischen Version 2.3 und 3.0. Es ist recht gut zu erkennen, dass die Version 3.0 von der Grösser her lediglich auf die beiden Führungen für die Riemen verzichtet. Dadurch fehlen zwar auch die Erweiterungsmöglichkeiten, doch da werde ich mir noch etwas einfallen lassen.

Ich will anmerken, die hier gezeigte Version 2.3 war nun wirklich sehr oft im Einsatz. Sie ist etwas verbogen, da ich sie im Sommer im Auto habe liegen lassen, doch davon abgesehen ist sie weiterhin voll funktionsfähig und hat sich wirklich mehr als bewährt. Kein Schaden in irgendeiner Form! Alles funktioniert noch genauso, wie es auch sein soll!

Hier zeigt sich der eigentliche Unterschied deutlich. Nur noch ein Riemen wird zum befestigen gebraucht! Ausserdem dürfte die verringerte Grösse das tragen auf die Dauer angenehmer gestallten.

Jetzt heisst es die ersten Einsätze abwarten! Funktioniert diese Version so gut wie V 2.3? Was gibt es zu verändern? Habe ich die gewonnen Erkenntnisse aus V 2.3 korrekt übernommen? All das wird sich noch zeigen, doch bin ich sehr zuversichtlich, dass mit Version 3 nun die vorerst finale Version gefunden wurde, die ich auch in bester Qualität drucken kann!

Projektbeschreibung

Kurzbeschreibung

dU-Buchführung ist ein Projekt, um hin und wieder ein bisschen programmieren zu können. Es ist ein Langzeitprojekt ohne festgesetzte Laufzeit. Prinzipiell ist es ein Projekt, um abseits meiner normalen Arbeit den Kopf freizubekommen.

Eingesetzte Mittel

Das Projekt wird, nach aktuellem Stand, folgendes verwenden:

  • C++
  • Qt
  • libpqxx

Durchführung

Durchgeführt wird das Projekt Schritt für Schritt, so wie ich Zeit und Lust habe. Augenmerk wird dabei darauf gelegt, dass die Software sowohl auf Linux, wie auch Windows lauffähig ist. Deshalb werden jegliche Schritte, nach der Fertigstellung auf Linux, auch gleich auf Windows getestet.

Geplant sind kleine Schritte.

  • Erstellung der GUI
  • Implementation der Konfiguration
  • Einbau verschiedener Benutzerkonten
  • Anlegen von Konten für den Kontenrahmen
  • Eingabe von Buchungssätzen
  • usw.

Jeder Schritt bekommt eine eigene Versionsnummer, angefangen bei Version 0.1. Version 1.0 wird dann vergeben, wenn alle notwendigen Funktionen implementiert und getestet sind. Dies beinhaltet auch den Ausdruck von einzelnen, oder allen Konten sowie des Journals.

Dart-Halter V 3.0

Ach ja, man entwickelt etwas, ist dann soweit zufrieden damit und was dann? So ganz aus Versehen löscht man das Zeug und es ist weg. Da nützt alles heulen nicht, schliesslich hätte ich ja auch ein Backup machen können. Habe ich nicht, also frisch ran ans Werk!

Alles kopieren?

Die Version 2.3 des Darthalters hat sich mittlerweile bewährt! Ich weiss gar nicht, wie viele Spiele ich damit schon absolviert habe und alles, was ich daran wirklich zu bemängeln habe ist, dass sich das PLA im Auto bei hohen Temperaturen verformt hat. Davon abgesehen hat sich das System als absolut tauglich herausgestellt!

Also könnte ich einfach das Original noch einmal vermessen und nachbauen. Wäre nicht unlogisch und auch nachvollziehbar!

Neu bauen?

Ich könnte aber natürlich auch zurück ans Reissbrett und alles von Vorne entwickeln. Das hätte auch so seine Vorteile, könnte ich doch auf diese Weise einen völlig neuen Ansatz verfolgen. Es hätte aber auch wieder den Nachteil, alle bisher erlangten Erfahrungen sind für die Katz und es beginnt das erneute Versuch und Scheitern! Würde das nicht immer Filament kosten und vor allem auch immer ein paar Stunden Druck bedeuten, wäre das tatsächlich eine Möglichkeit. Oder wenn ich eine Möglichkeit hätte, einen Fehldruck zu schmelzen und wieder zu verwenden. Habe ich aber leider auch nicht. Will ich zwar bauen, aber so weit bin ich noch lange nicht!

Einfach weiterentwickeln?

Das wäre wohl die Variante mit der grössten Logik! Ich nehme einfach meine Erfahrungen und während ich das Original neu in Blender aufbaue, lasse ich gleich neue Ideen mit einfliessen. Ja, so klingt das doch sehr gut!

Neu in V 3.0

Ich nehme also alles, was ich an der verloren gegangenen Version gut fand und baue das ein, was ich als sinnvoll erachte. Das kommt dabei heraus:

Deutlich zu sehen ist, die ganze Sache ist kompakter geworden. Die Führung für die Riemen sitzt nun nicht mehr Rechts und links, sondern direkt Vorne und Hinten. Dadurch erhoffe ich, mit einem einzigen Riemen auskommen zu können und auch andere Varianten, als nur Klettband verwenden zu können.

Allerdings gehen damit die Erweiterungsmöglichkeiten verloren! Nicht ganz, denn es gibt genug Aussparungen, in die ich noch was einbauen kann, aber so, wie es bislang realisiert wurde, geht es jetzt nicht mehr. Schlimm ist das aber nur bedingt, denn was ich bislang an Erweiterungen erdacht habe, wird sich auch so realisieren lassen.

Gebaut ist es schon, jetzt muss es nur gedruckt und getestet werden. Ich bin schon sehr gespannt, wie es sich schlägt!

So sieht das dann beim Druck aus

Kleiner Denkfehler

In meiner Euphorie über die Inbetriebnahme der Wetterstation habe ich einen kleinen Fehler gemacht! Der Sensor ist ungeschützt! Bislang ist mir da nichts negatives aufgefallen. Aber nun, da ich die Werte des Sensors ja im Widget sehe, wird es dann doch deutlich.

Die Sonne ist über den Tag natürlich gewandert. Bislang war das kein Problem, denn dort, wo der Sensor sitzt, war bisher Schatten. Nun steht die Sonne jedoch so, dass der Sensor direkter Einstrahlung ausgesetzt ist. Okay, es ist nicht kalt draussen, aber was der Sensor mir anzeigt ist ein wenig übertrieben!

Laut dem Widget sind draussen runde 38°C. Ganz ehrlich, dass glaube ich ihm nicht! Kalt es es wirklich nicht, aber 38°C? Nee.

Leider ist die Sache aber logisch und hätte mir direkt auffallen müssen. Ich denke auch, die Meisten, die das hier lesen, werden meinen Fehler schon lange erkannt haben! Natürlich heizt der sich auf, wenn er von der Sonne angestrahlt wird. Ergo, ich bekomme keine korrekten Daten!

Aber gut. Kleiner Rückschlag, dummer Denkfehler, kann man beheben! Ich werde einfach einen Schutz dafür bauen. Erst einmal aus Pappe, um die Wirkung zu sehen. Wenn das klappt, drucke ich mir ein Gehäuse für den Sensor, den ich draussen anbringe. Hoffentlich kriege ich damit dann die korrekten Werte!

Der nächste Client ist da!

Tja, kaum vermelde ich die Inbetriebnahme der Wetterstation, kann ich schon den nächsten Fortschritt vermelden!

Ja, wenn es läuft …

Wie ich im letzten Artikel ja geschrieben habe, Daten in einer Datenbank nutzen nichts, wenn man damit nicht auch irgendwie arbeiten kann. Das Widget für Awesome-WM ist ja nichts besonders und kann eigentlich nichts, deshalb hier jetzt der nächste Client. Der kann zwar auch noch nichts, aber dem werde ich noch Abhilfe schaffen!

Nice, oder? Was kann das gute Stück denn nun?

Es kann die Daten aus der Datenbank abrufen. Immerhin!

Na gut, ein bisschen mehr macht der Client schon. Drückt man auf Abrufen, zieht das Programm zuerst alle Daten aus der Datenbank. Logisch. Dabei zeigt es in der Status-Leiste an, wie viele Datensätze abgerufen werden und verarbeitet diese.

Was heisst verarbeiten? Die Rohdaten beinhalten die UNIX-Zeit und die jeweiligen Temperaturdaten. Da ich aber nicht so gut im lesen der Unix-Zeit bin, bzw. in der Umrechnung, will ich natürlich Zeit und Datum so vorfinden, dass ich sie auch sofort verstehe. Das macht das Programm schon beim abrufen. Ausserdem soll, wenn auch nur für die Optik, °C hinter der Temperatur stehen. Auch das macht das Programm.

Schlussendlich zeigt es die Werte in der Liste an und beendet seine Arbeit. Das ist natürlich noch nicht viel, aber stellt nur den Anfang dar! Daran werde ich noch weiterarbeiten. Das Plotten aller Daten, oder nur von ausgewählten zum Beispiel. Auch den Zugriff auf die Speicherkarte der Wetterstation will ich noch einbauen. Das hatte ich ja schon in der ersten Variante. Ich denke aber, im Laufe der Zeit werden mir da noch einige Dinge einfallen, die ich dem Programm antun kann. Für den Moment soll das so aber reichen.

Wetterstation in Betrieb!

Man mag es kaum glauben, aber die Wetterstation ist nun offiziell in Betrieb!

Ich habe es mir gespart, die Herstellung des Kabels zu zeigen. Ich denke mal, jeder, der Interesse an so etwas hat, wird wissen wie man so etwas zusammenlötet. Spannend fand ich das also eher weniger.

Aber gut, jetzt ans Eingemachte!

Wie im letzten Artikel gezeigt, sitzt die Platine mit dem Arduino Nano und den beiden Temperatursensoren neben dem Raspberry Pi unter meinem Tisch. Ein Sensor erfasst die Temperatur im Raum, einer die draussen vor dem Fenster. Der Arduino ermittelt die Daten und speichert sie auf der SD-Karte.

Hier muss ich anmerken, ohne eine Uhr ist das wenig nutzbringend. Die Wetterstation soll aber irgendwann mit einer Uhr ausgestattet werden, so dass die Daten auf der SD-Karte mit der entsprechenden UNIX-Zeit gespeichert werden. Auf diese Weise kann der Server die Daten in der Datenbank synchronisieren. Ist aber noch Zukunftsmusik.

Okay. Der Wetterserver auf dem Raspberry Pi ruft nun alle 60 Sekunden die Daten vom Arduino ab und speichert sie in der Datenbank. Das lief ja vorher schon einwandfrei, muss ich also nichts mehr zu sagen.

Solche Daten sind auch schön und gut, nur nützen sie ja nichts, wenn man damit nichts anfangen kann. Deshalb nun die erste Client-Software, die auf meinem Arbeitsgerät läuft. Natürlich in C++ geschrieben, wie sich das gehört. Wobei ich aber auch sagen muss, für das, was das Programm macht, ist C++ eigentlich übertrieben. Es ist und bleibt aber meine bevorzugte Programmiersprache.

Was macht der Client?

Sehr wenig. Er ruft einfach die Daten für die Aussentemperatur aus der Datenbank des Servers ab und gibt sie aus. Also eigentlich kein wirklicher Aufwand.

Für Awesome-WM habe ich mir ein kleines Widget gebaut (wie man das macht will ich auch noch beschreiben), welches die Aussentemperatur in der unteren Leiste anzeigt.

So sieht das dann bei mir aus. Ja, wie man sehen kann ist das Bild wirklich zeitnah erstellt, da ich gerade an dem Beitrag hier arbeite.

Unten Links ist nun die aktuelle Temperatur ablesbar. Das Widget aktualisiert sich alle 60 Sekunden, bekommt also immer die aktuellen Werte vom Server.

Hier noch einmal in “gross”.

Ich freue mich deshalb sagen zu können, eins meiner Projekte ist nun wirklich betriebsbereit. Noch nicht so weit entwickelt, wie ich es haben will, aber es läuft und das freut mich!

Die Halterung

Das war ziemlich einfach. Erstellt war das Teil schnell und so sieht es aus:

(aus dem letzten Artikel)

Hier zeigt sich wieder die unglaubliche Präzision des 3D Drucker. Die Platine passt so genial da rein, ich bin einfach nur fasziniert! Hier das Ergebnis:

Kleine Zwischenbemerkung:

Der 3D-Drucker ist in meinen Augen wirklich eine der genialsten Entwicklungen seit vielen Jahren! Laut Cura soll das Objekt exakte 4g haben. Habe ich gewogen, stimmt! Ich habe auch vorher und nachher die Rolle mit dem Filament gewogen. Ebenfalls ein Verlust von 4g. Das heisst, ich habe so ziemlich nur exakt das benötigte Material verbraucht! Würde ich so ein Objekt fräsen, wäre der Verschnitt viel, viel grösser. Spritzguss kommt ja auch nicht infrage, da man dafür erst eine Form herstellen müsste. Brutaler Aufwand für nur ein Objekt. Wobei ich diese Halterung natürlich auch für andere Platinen dieser Grösse nutzen kann! Auf jeden Fall, es ist einfach nur genial. Am Computer mit den exakten Abmessungen erstellt, kurz darauf hat man es als physisches Objekt in der Hand. Extrem genial!

Also, unter den Tisch mit dem Ding!

Zum guten Schluss noch die Platine rein, verkabeln, fertig!

Tut mir leid, dass es so unscharf ist.

Nachdem das alles so wunderbar funktioniert hat, muss ich jetzt nur noch ein Kabel für den Aussensensor bauen und dann kann ich mit der Entwicklung der Software beginnen.

Wetterstation: Es geht weiter!

Ja, nur weil ein Projekt eine Zeit inaktiv ist, ist es noch lange nicht abgebrochen! So verhält es sich nun auch mit der Wetterstation, die eigentlich auf Module wartet und deshalb schon einige Zeit unangetastet geblieben ist. Doch nun geht es weiter, mit neuer Erfahrung und einem neuen Ansatz!

In der Zwischenzeit

Seit dem letzten Artikel zur Wetterstation ist nicht wirklich viel passiert. Eigentlich will ich die Station mit einer eigenen Uhr ausstatten, damit auch auf der SD-Karte die Daten mit Zeitstempel gespeichert werden. Ausserdem will ich noch ein paar Sensoren für die Überwachung der Umwelt. Aber, ist alles noch nicht da, aus verschiedenen Gründen.

Bislang war ja die Idee, dass ein Server auf dem Raspberry Pi eine Kommunikation zur Wetterstation herstellt und man auf diesen Server von aussen zugreifen kann. Das heisst also, ich muss eine Software für den Server schreiben und eine für den Client. Dieser Schritt hatte ich ja schon in Angriff genommen.

In der Zwischenzeit musste ich jedoch, aufgrund eines anderen Projektes, die Arbeit mit Datenbanken erlernen. Dazu benutze ich eine Postgres-Datenbank. Dabei kam mir die Idee, auch auf dem Raspberry eine solche Datenbank einzurichten. Dieser Schritt ist auch schon erledigt und funktioniert einwandfrei!

Aktueller Stand

Die Software der Wetterstation ist unverändert geblieben. Sie speichert nach wie vor die Daten auf der SD-Karte und kann vom Server noch entsprechend gesteuert werden.

Den Server hingegen habe ich komplett neu geschrieben. Es ist nur ein kleines Programm, welches die Innen- und Aussentemperatur alle 60 Sekunden abruft. Die empfangenen Daten werden dekodiert, mit Zeitstempel (Unix-Zeit, also Sekunden seit dem 01.01.1970) versehen und in der Datenbank gespeichert. Da alles in den Tests einwandfrei funktioniert hat, liegt der Server nun in Version 1.0 vor.

Da sich Software und Verkabelung der Wetterstation bewährt hat, habe ich nun auch eine Platine gelötet. So sieht das nun aus:

Ist vielleicht nicht schön, aber selten! Am wichtigsten ist aber, es funktioniert! Ein Test hat ergeben, die SD-Karte wird einwandfrei mit Daten gefüllt und die Kommunikation mit dem Server, inklusive Übergabe der Temperaturen, funktioniert einwandfrei!

Ich habe die Platine so gestaltet, dass alle Komponenten ausgetauscht werden können.

Wie geht es jetzt weiter?

Drei Punkte sind noch zu erledigen, bevor ich die Wetterstation offiziell als “In Betrieb” bezeichne.

  1. Eine Halterung für die Platine muss her. Die werde ich mit Blender erstellen und ausdrucken. Ich will sie so gestalten, dass ich die Platine einfach darauf drücken kann und diese einrastet. Des Weiteren wird die Halterung mit zwei Schrauben unter den Tisch geschraubt.
  2. Einer der Sensoren soll mit einem langen Kabel aus dem Fenster geführt werden, um die Aussentemperatur zu ermitteln. Das Kabel muss ich noch bauen.
  3. Ich muss noch Software entwickeln, mit welcher ich die Daten auch verwenden kann. Derzeit habe ich zwei Varianten im Sinn. Einmal eine, welche Innen und Aussentemperatur einfach ohne GUI ausgibt, um damit ein Widget für Awesome erstellen zu können. Zum Anderen will ich eine Software haben, welche die ganzen Daten aus der Datenbank holen und auswerten kann. Mit Graphen und was auch immer. Da bin ich mit meinen Überlegungen noch nicht ganz durch.