Hallo Giktayms!UPD: Es gibt eine Videodemonstration .Wie der Name schon sagt, konzentriert sich dieser Artikel auf die Erkennung von Zahlen auf dem Mikrocontroller. Ich möchte sofort reservieren, dass der Quellcode in diesem Artikel nicht angegeben wird, die Technologie oder der Erkennungsalgorithmus berücksichtigt werden. Ich kann nur sagen, dass die Ideen eines Systemansatzes verwendet werden. Einige davon werden in unseren Artikeln vorgestellt ( hier , hier und hier ). Dies liegt an der Tatsache, dass unser Ansatz auf Originalität beruht, jedoch eine Klärung einiger Fragen erfordert. Jemand könnte sagen: "Ein weiterer Artikel über die Programmierung von Mikrocontrollern." Die Suche nach solchen Projekten ergab mit Ausnahme dieses Videos überhaupt keine verständlichen Ergebnisse. : ( + = , ) , . , , , Arduino , . .
, :Kurz gesagt, alles begann mit dem Wunsch, sich zu versuchen und Ihre Ideen in der Bilderkennung zu testen. Während der Diskussion kamen wir zu dem Schluss, dass wir mit kleiner Rechenleistung dieses Problem lösen können. Aus offensichtlichen Gründen werden die Details dieser Diskussionen nicht beschrieben.Installation
Die Aufgabe ist also festgelegt, die Implementierung ist erforderlich. Ohne von bereits festgelegten Grundsätzenabzuweichen, nehmen wir das, was zur Hand ist. Und zur Hand waren ein paar Arduino Uno, eine alte optische Maus und ein CD-Laufwerk. Ein Artikel veranlasste uns übrigens, einen optischen Maussensor als Kamera für die Bildaufnahme zu verwendenLesen Sie vor langer Zeit, nun, eigentlich geht es bei dem Rest um "Maus" -Material. Das einzige, was wir tun mussten, war, den Sensor und seinen gesamten Kabelbaum zu entlöten, um die Bedienung zu vereinfachen, und ein Objektiv daran anzubringen, das wir vorsichtig aus dem CD-Laufwerk "herausgerissen" haben. Dies war notwendig, um den Abstand vom Motiv zur Kamera zu vergrößern, da sonst die Zahlen unserer Größe nicht passten und nur ein kleiner Teil sichtbar war. Übrigens haben wir vor dem Objektiv des CD-Laufwerks versucht, die Optik der Webkamera anzubringen, sind aber irgendwie nicht zusammengewachsen.
. , . . , CD . CD . .

: , , . «». «» , .
Es wurde klar, dass nur das Hervorheben nicht funktioniert. Die Intensität ist wichtig. Die Richtung des externen Lichts nimmt ebenfalls Anpassungen vor. Ich musste eine weitere „Arduinka“ in meine Arbeit einbeziehen, um die Intensität der Hintergrundbeleuchtung zu steuern ( natürlich könnte sie anders gesteuert werden, aber später nicht nur die Hintergrundbeleuchtung, sondern auch das Umschalten der Zahlen auf der Anzeige ). Infolgedessen stellte sich heraus, dass das Schießen im Licht viel besser war. Und wenn Sie zum Beispiel einen leuchtenden Sieben-Segment-Indikator als Ziel verwenden, sieht der Sensor ihn perfekt. Jetzt haben wir also einen Indikator und einen Streifen mit weißen Zahlen, die mit einem schwarzen Hintergrund als Aufnahmeobjekte überflutet sind.
Das Bild links in Graustufen, das vom Indikator erhalten wurde (ein solches Bild erhalten wir vom Sensor), rechts binarisiert.
Gesamtansicht der gesamten Baugruppe


Erkennungsblock
Eine wichtige Rolle in unserer Installation spielt die sogenannte Erkennungseinheit (im Bild oben). Wie Sie sehen können, besteht es aus Arduino Uno und dem bekannten WLAN-Sender ESP8266 . Ich erkläre, wir brauchen einen WLAN-Sender, um das Erkennungsergebnis auf dem Tablet zu sehen. Die Anwendung auf dem Tablet sendet eine Anfrage, "arduinka", empfängt eine Anfrage, "nimmt" das Bild vom Maussensor und digitalisiert es dann. Nach der Binarisierung erfolgt eine Erkennung, und nach deren Abschluss wird eine Antwort gebildet. In der Antwort senden wir das Erkennungsergebnis und 41 Bytes, um der Übersichtlichkeit halber ein binärisiertes Bild auf dem Tablet-Bildschirm zu erstellen. , « » : , , esp8266. — .
, .. . : ( ) «» ( « ») ESP8266 .
.