Schlagwort-Archive: Webcam

BitBastelei #560 – NE3/NE7 – Smarter Ohrauskratzlöffel (Otoskop / Ohr-Kamera)

BitBastelei #560 - NE3/NE7 - Smarter Ohrauskratzlöffel (Otoskop / Ohr-Kamera)

(817 MB) 00:22:04

2023-10-08 10:00 🛈

Heute muss offenbar alles „smart“ sein – im Zweifel auch die Ohr-Hygiene. Einige Händler bieten Stifte mit Silikonlöffel an, mit denen man Ohrenschmalz herauskratzen können soll. Um besser zielen zu können, haben die Dinger auch gleich noch eine eingebaute Kameras, welche die wohl eher mäßig appetitlichen Bilder aus dem Körperinneren auf das Smartphone zaubern. Der Clou: Teils werden für diese Kombination aus Kamera, WLAN-Chip, Akku und Gehäuse weniger als 5€ aufgerufen. Und wer sagt, dass man damit nur das Ohrinnere von innen betrachten kann – Elektronik ist auch klein. Es gibt nur ein Problem: Die App. Diese wird für Android lediglich als APK über One-Click-Hoster bereitgestellt – nicht grade vertrauenerweckend. Ständige Abstürze bessern das Bild auch nicht. Aber Einschränkungen durch den Hersteller haben ja noch keinen Bastler abgehalten, so haben einige Mitglieder*innen des lokalen Makerspace das Protokoll zerlegt und eine freie Software-Alternative für den PC geschaffen. Schauen wir mal, was die Kamera kann, über welche Wege man das Protokoll lernen kann und was die Alternativ-Software so bietet.

Inhalt

  • 00:00 Unfug.
  • 00:45 Smarte Ohrenlöffel
  • 01:32 Packung
  • 02:44 Lieferumfang
  • 03:56 Technische Daten (laut Anleitung)
  • 05:12 Innenleben
  • 08:15 Android-App-Versuch
  • 09:40 iOS-App & Original-Funktionen
  • 12:28 Traffic-Analyse
  • 14:30 App-Analyse
  • 16:52 Python-App
  • 20:55 Fazit

Links zum Thema

Transparenz

Die Geräte wurden selbst gekauft und bezahlt. In der Videobeschreibung sind Affiliate-Links zu Produkten, welche im Video zu sehen sind. Durch Nutzung dieser Links erkennt der Händler, dass Ihr über meine Seite zu ihnen gefunden habt. Ich werde prozentual an hierüber erzielten Umsätzen beteiligt, die Preise ändern sich hierdurch für Käufer*innen nicht. Tipp: Vergleicht vor einem Kauf die Preise – einige Händler erhöhen diese, wenn sie merken, dass die in Videos verlinkt wurden. In Fall von AliExpress sind die Preise in den Choice-Listen der App derzeit deutlich günstiger als über Links. Da die Händler die Hardware trotz selbem Namen/Gehäuse immer wieder wechseln kann es vorkommen, dass die Software nicht ohne Anpassungen funktioniert.

BitBastelei #420a – Tipps für Videokonferenzen

BitBastelei #420a - Tipps für Videokonferenzen

(93 MB) 00:09:01

2021-01-17 11:00 🛈

Aktuell werden immer mehr Videokonferenzen durchgeführt. Angenehm sind sie oft nicht, aber viele der Probleme kann man mit wenigen Handgriffen schnell verhindern. Also schauen wir mal, wie man bei einer solchen Videokonferenz möglichst nicht negativ auffällt und möglichst professionell auftreten kann.

BitBastelei #309 – ½-Sachen-IP-Kamera: Modul für 5€?

BitBastelei #309 - ½-Sachen-IP-Kamera: Modul für 5€?

(382 MB) 00:21:50

2018-11-18 11:00 🛈
Vor langer Zeit hatte ich eine IP-Kamera für 10€ gezeigt. Für den Preis gab es eine funktionierende Kamera, welche allerdings softwaretechnisch viele Lücken zeigte. Wenn man mit 10€ Blödsinn bekommt – was bekommt man dann für die Hälfte?

BitBastelei #223 – 10€ IP-Kamera – viel Kommunikation für wenig Geld (Hi3516C)

BitBastelei #223 - 10€ IP-Kamera - viel Kommunikation für wenig Geld (Hi3516C)

(274 MB) 00:52:48

2016-12-18 11:00 🛈
Bei einigen Preisen kommt – trotz Bullshitverdacht – doch die Neugier in mir hoch, so auch als eine IP-Kamera für gerade mal 10€ durchtickerte. Jene Geräte waren zuletzt durch ihre massenhafte Übernahme durch das „Mirai“-Botnet auffällig geworden. 720p, vernunftige Framerate, Nachtsicht und mit Outdoor-Bildern in der Beschreibung – für den Preis ein üppiges Versprechen. Auf den ersten Blick sieht Sie sogar recht gut verarbeitet aus – schaut man jedoch darauf wie und wohin die Kamera kommuniziert wird schnell klar, dass sie besser nicht ungeschützt ins Netz sollte.

Poor mans PC-Interface – Multimeter per Webcam auslesen

Improvisieren? Kann ich. Derzeit teste ich mit einem Gerät herum, welches sich in regelmäßigen Abständen einschaltet – interessant für mich wäre es nun diese Zyklen genauer zu kennen. Zwar habe ich einige Energiekostenmessgeräte, damit lässt sich jedoch nur Min/Max bzw. der Durchschnitt errechnen, nicht jedoch wie oft das Gerät nun tatsächlich läuft. Hier würde ein Multimeter mit PC-Anbindung helfen, leider käme hierzu nur mein UniT in Frage, welches im Dauerbetrieb jedoch recht schnell mit leerer Batterie seinen Dienst einstellen würde. Meine „großen“ HPs besitzen zwar eine GPIB-Schnittstelle, den passenden PC-Adapter habe ich allerdings noch nicht fertig.

Bleibt nur ein anderer Ansatz: Optische Erkennung. Als Multimeter hält mein Rohde&Schwarz/Keithley her – durch die LEDs ist dessen Anzeige am einfachsten lesbar. Direkt davor sitzt nun eine Webcam, welche die Anzeige im Auge behält. Über die Software „motion“ stellt mein Linux-Server einen MJPEG-Stream bereit – ich bin diesen Weg gegangen, da ein ständiges Reinitialisieren der Kamera für einzelne Screenshots gerne zu Hängern führt.

Bild: https://adlerweb.info/blog/wp-content/uploads/2014/08/cam1.jpg

Ein kleiner PHP-Daemon fragt nun regelmäßig das letzte Bild ab, hierzu wird ein (modifizierter) Code des motion-Projektes verwendet:

$camurl='http://127.0.0.1:8081/';
$boundary="\n--";

$f = fopen($camurl,"r") ;

   if(!$f)
   {
        //**** cannot open
        echo "error";
   }
    else
   {
        //**** URL OK
         $r='';
         unset($p);
         while (substr_count($r,"Content-Length") != 2) $r.=fread($f,512);

         $start = strpos($r,chr(0xFF));
         $end   = strpos($r,$boundary,$start)-1;
         $frame = substr("$r",$start,$end - $start);

         //In $frame sind nun die rohen JPEG-Daten - diese können ausgegeben werden, gespeichert werden oder per imagecreatefromstring (gd) in PHP weiter verarbeitet werden
   }

Weiterhin wird das Bild passend beschnitten, gedreht und in ein invertiertes Schwarz-Weiß-Bild umgewandelt:

$src = imagecreatefromstring($frame);
$dst = imagecreatetruecolor(173,75);

imagecopy($dst, $src, 0, 0, 225, 66, 173, 75);
$dst = imagerotate($dst, 10, 0);
imagefilter($dst, IMG_FILTER_NEGATE);
imagefilter($dst, IMG_FILTER_GRAYSCALE);
imagefilter($dst, IMG_FILTER_CONTRAST, -100);

Im Anschluss wird über eine Reihe von „imagecolorat“-Abfragen für jede der 7-Segment-Stellen ein Array generiert – jedes Segment ist entweder an (1) oder aus (0). Zur besseren Erkennung wird jedes Segment an mehreren Stellen abgefragt und der Durchschnitt mit einem Schwellwert bewertet, so ist das System unempfindlicher gegen Rauschen.

Bild: https://adlerweb.info/blog/wp-content/uploads/2014/08/7SEG-208×300.png
(Im Array ist der Index entsprechend 0-6, nicht 1-7)

Am Ende steht ein Mapping, welches die erkannte Anzeige in einen Integer umwandelt

function seven2int($p) {
    $map[1][1][1][0][1][1][1] = 0;
    $map[0][1][0][0][1][0][0] = 1;
    $map[0][0][1][0][0][1][0] = 1;
    $map[1][0][1][1][1][0][1] = 2;
    $map[1][0][1][1][0][1][1] = 3;
    $map[0][1][1][1][0][1][0] = 4;
    $map[1][1][0][1][0][1][1] = 5;
    $map[1][1][0][1][1][1][1] = 6;
    $map[0][1][0][1][1][1][1] = 6;
    $map[1][0][1][0][0][1][0] = 7;
    $map[1][1][1][1][1][1][1] = 8;
    $map[1][1][1][1][0][1][0] = 9;
    $map[1][1][1][1][0][1][1] = 9;

    if(isset($map[$p[0]][$p[1]][$p[2]][$p[3]][$p[4]][$p[5]][$p[6]])) {
        return $map[$p[0]][$p[1]][$p[2]][$p[3]][$p[4]][$p[5]][$p[6]];
    }else{
        return false;
    }
}

Die (passend multiplizierten) Werte ergeben den Messwert. Die Erkennung ist zwar nicht 100%ig, jedoch bei der verfügbaren Auflösung wesentlich zuverlässiger als ein klassischer OCR und ausreichend um ein paar Kurven zu zeichnen. Derzeit werden etwa 80-90% der Captures erkannt. Die meisten Fehler kommen durch ungünstiges Timing – wenn die Kamera eine Aufnahme macht während die LED-Anzeige gerade aktualisiert kommt es zu halben Zahlen.

Bild: https://adlerweb.info/blog/wp-content/uploads/2014/08/Unbenannt.png