PiCase

Diesmal geht es um das Thema Resteverwertung.

Aus verschiedenen Bastelprojekten hatte ich noch einen Raspberry Pi und einen Pi2, sowie ein 7″ Touchscreen. Das ganze wollte ich schon lange in einem Gehäuse unterbringen. Von Bjoern Giesler gibt es auf Thingiverse ein Gehäuse für das Display zum Ausdrucken (thingiverse), allerdings wollt sich eher alles in einem Gehäuse abspielen und keine Anschlüsse kappen (Außerdem hatte ich noch andere Reste zum Verwerten).

Meine Anforderungen waren also simpel:

Ein Gehäuse für

  • Display
  • Raspberry Pi 1/2
  • Öffnungen für USB (um Sticks o.ä. anzustecken
  • Öffnungen für die Videoausgänge um etwas von Außen anhängen zu können (okay, ich gebe es zu, eine alte Konsole), daher keine innenliegende Verkabelung
  • Evtl. ein Lautsprecher
  • Von außen bedienbare Monitortasten

Weiterlesen →

C# String Performanz – Macht Optimierung Sinn?

Hi,

Worum geht es hier?

String sind Zeichenketten in Programmiersprachen. Ein wichtiger Aspekt bei C# (und einigen anderen Sprachen) ist, das Strings immutable (unveränderlich) sind.

Was kann man sich darunter vorstellen?

Ein String ist eine Zeichenkette, z.B. „Hallo“. Intern wird der String in einem zusammenhängendem Datenbereich, einem Array, als einzelne Zeichen gespeichert. Hallo ist also [‚H‘,’a‘,’l‘,’l‘,’o‘]. Möchte man einen String mit einem anderen verknüpften, so kann dies nicht im gleichen Array passieren (es ist ja schon sozusagen „voll“). Je nach Technik wird im Normalfall das Array in ein neues Array umkopiert, welches genug Platz für den neuen String bietet.
Weiterlesen →

0 Bytes?

Hallo,

es gibt immer mal Probleme mit 0-Byte Ergebnisdateien. Die entstehen normalerweise aus 2 Gründen:

  • die Software kann den Laser nicht erkennen
  • die Software findet keine Überschneidungspunkte

Zum ersten Bereich gab es bereits den Beitrag mit den Filtern. Der Beitrag ist leider nur die halbe Wahrheit. Wenn der Hintergrundbereich ungünstig ist (Folie/Farbe wurde verwendet, dazu kommen wir unten noch) dann sind die Reflexionen vom Laser eventuell nicht zu erfassen.
Weiterlesen →

Dies&Das

Wie geht’s weiter?

Momentan bin ich gerade beruflich etwas stärker eingespannt.

Richtung Simple3DScan möchte ich als nächstes Folgendes tun (wenn nicht böse Fehlermeldungen kommen).

  • Mich stört momentan die Kamera. Ich bekomme keine scharfen Bilder.
    • Zum Testen habe ich noch ein Dell Venue 8 mit integrierter 5MP Kamera auf der Rückseite (heißt: Windows Tablet mit integrierter Kamera, an das könnte man mit einer USB-Kupplung den Arduino direkt dranhängen) – dazu fehlt noch ein (provisorischer) Halter + Zeit zum Ausprobieren.
    • Alternativ fliegen noch ältere Windows oder Android Smartphones herum, die ebenfalls eine bessere Kamera haben. Mit ip Webcam kann ein solches Gerät als Kamera dienen – halt nicht besonders schnell. Das coole ist der ip camera adapter. Mit diesem kann eine ip-Cam einfach als Art lokale Kamera eingebunden werden – heißt: Auf dem Smartphoen wird eine Kamerasoftware aktiviert. Der Kamera Adapter bekommt ip, Benutzernamen + Passwort der Kamera udn tut so, als sei die Kamera lokal angeschlossen. Und das eigentlich noch ganz nette: Über eine URL bekommt man auch ein Bild in maximaler Auflösung der Handykamera. Bei normalen WebCams werden Bilder meist nur hochgerechnet. Damit sind hohe Auflösungsangaben ala 21 MP für 10€ purer Mist. Bei den Handies werden meist echte Auflösungen angegeben. Heißt: Selbst ein älteres Mittelklasse ist mit 4-8MP gesegnet und liefert schärfere Bilder. Dafür dauert das Abrufen eines Einzelbildes über WLAN einige Sekunden (und der Teil müsste noch ins Programm). Finde ich momentan am interessantesten.
  • Ein bisschen mehr Erklärten was was im Programm ist. Eigentlich wollte ich es selbsterklärend – ein Button -> Programm tut was. Mittlerweile sind einige Einstellungen dazugekommen.
  • Fixing von Minisachen, z.B. dass die Linien im Programm direkt mit der Konfiguration geändert wird, Sprachänderung direkt gemacht wird, …
  • Wenn ich viel Zeit habe der Versuch einer Autokalibrierung.
  • Punkte im Vorschaubild markierbar machen – z.B. Schwenkbereich des Lasers, Turntable um von dessen Breite die Bildbreite berechnen zu lassen (  Beispiel: 5 MP Kamera – ganz anderer Bereich den die sieht. Markiert man den Turntable rechts und links müsste die Breite des Bildausschnitts einfach rückrechenbar sein, ohne das jemand mit einem Lineal rumfummeln muss). Oder markieren eines Punktes an den der Laser fahren soll….
  • Anschluss von blau/weiß LEDs direkt an den Shield zur Verbesserung des Kamerabildes
  • Wenn ich sehr viel Zeit habe (dazu wird es dank Töchterlein wahrscheinlich nicht kommen):
    • powercrust auf .net zu portieren
    • Evtl. Glyphen auf Turntable „drucken“ und mal etwas spielen wie die Erkennung ohne Kamera ist.
  • Sachen die ich vergessen habe
  • Irgendwann mit WordPress befassen – das letzte Fremd-Template lies sich nicht mehr übersetzen… deswegen jetzt ein etwas anderer Stil.

Achja – und GANZ WICHTIG: 8.5. AC/DC in Nürnberg – davor wird hier kaum was passieren… 🙂

Generische Singletons mit C#

In der objektorientierten Softwareentwicklung ist es meist verpönt, globale Variablen oder Objekte zu verwenden. Und doch gibt es viele Anwendungen, an denen es einfacher ist ein globales Objekt zu haben, statt Parameterurwälder zu bilden und alles in einzelne Methoden durchzureichen. Ein Anwendungsbeispiel könnte ein globaler Logmechanismus sein.

Eine Lösung bietet das Erzeugungsmuster „Singleton“. Ein Singleton ist ein Entwurfsmuster, welches im Buch Entwurfsmuster . Elemente wiederverwendbarer objektorientierter Software von Gamma, Helm, Johnson und Vlissides (der sogenannten Gang of Four) beschrieben wurde.
Weiterlesen →

Simple3DScan 0.1.0

Hallo,

es gibt einige Updates zu der Simple3D-Scansoftware.

Möchte man es wie bisher nutzen, kann man einfach weiter auf der Hauptseite eine Kamera auswählen und einen Scan starten.
Startseite 0.1.0

Neuerungen

Als Hauptneuerungen sind folgende Eigenschaften hinzugekommen:

  • Erweitertes Logging mit Postsharp – im Logordner bleibt nur eine Logdatei, momentan wird zunächst relativ ausführlich geloggt
  • Simple/Advanced Mode ist weggefallen, jetzt sind alle EInstellmöglichkeiten immer sichtbar, aber als einfacher Einstieg muss nur die Programmstartseite genutzt werden
  • Einführung von Konfigurationsdialogen (dazu unten mehr)
  • Einstellmöglichkeiten zur Genauigkeit der Scans.
  • Erweiterte Einstellungen zum Drehteller
  • Sprache ist jetzt Deutsch wählbar (in den Konfigurationen unter „Language“)
  • Einstellmöglichkeiten zur Bilderkennung (auch dazu unten mehr)
  • Fehlerbehebung bei Verbindungsabbruch zu Arduino
  • Versionsnummer im Titel
  • PDB-Dateien werden zum Debuggen mitgeliefert (wenn es jemand möchte)
  • Bei den runden Wahlschaltern gab es hin und wieder Probleme das ein benachbarter Wert genommen wurde die jetzt behoben sein sollten.
  • Kamera kann über den Button „Reload“/“Neu“ refreshed werden
  • Während dem Scan werden die Konfigurationsdialoge / manuelle Kontrolle gesperrt

Weiterlesen →