OpenMV Cam: Technischer Leitfaden für Smart Vision Kameras (MicroPython)
Smart Vision Kameras sind Bildverarbeitungssysteme mit integriertem Sensor, die Bilder aufnehmen, per Algorithmen analysieren und Entscheidungen treffen (Objekterkennung, Tracking, Messung). Die OpenMV Cam ist eine kostengünstige, programmierbare MicroPython-Kamera für Machine Vision am Edge – ideal für Bildung, Rapid Prototyping und Embedded Vision.
Was ist OpenMV?
OpenMV ist ein Open-Source-Projekt (Hardware + Firmware + IDE), das Machine Vision für Maker, Studenten und Ingenieure zugänglich macht. Programmiert wird in MicroPython (Python 3 Subset) – hochlevel, schnell lesbar, mit Zugriff auf komplexe Datenstrukturen (Listen, Dicts, Klassen).
Bildverarbeitungs-Features (on-board)
- GIF / MJPEG Videoaufzeichnung
- AprilTags (robuste Fiducial-Marker, 6-DoF Pose)
- QR-Code / Barcode Dekodierung
- Farbtracking (Color Blobs, LAB/RGB/HSV Thresholds)
- Keypoints & Deskriptoren (ORB, FREAK – Feature Matching)
- Gesichtserkennung (Haar-Cascades, CNN-Modelle)
- TensorFlow Lite for Microcontrollers (TFLite Micro) – eigene Modelle
- Optical Flow, Template Matching, Shape Detection (Kreise, Rechtecke, Linien)
- Eye Tracking, Marker Tracking
OpenMV IDE (Qt-basiert, Cross-Platform)
Die IDE ist das zentrale Werkzeug:
- Framebuffer-Liveview (Kamerabild in Echtzeit)
- Sensor-Konfiguration (Auflösung, Fensterung, Gain, Belichtung)
- Skript-Editor mit Syntax-Highlighting, REPL, Plotter
- Flashen per USB (DFU) / Wi-Fi / BLE / SD-Karte
- Bildverarbeitungs-Tools: Threshold-Editor, Keypoint-Visualizer, Tag-Generator
OpenMV Cam – Hardware-Übersicht (Cortex-M7, z. B. H7/R2)
Definition
OpenMV Cam = Mikrocontroller-Board (STM32H7 / STM32F7) + Bildsensor (OV7725 / OV5640 / Global Shutter) + MicroPython-Firmware + Standard-M12-Objektivhalter.
Funktionen
- Machine-Vision-Algorithmen on-device (kein PC nötig)
- I/O-Pins direkt ansteuerbar (GPIO, PWM, ADC, DAC, Servo, SPI, I²C, CAN, UART) – Reaktion auf Vision-Ergebnisse in Echtzeit
- Programmierung in MicroPython statt C/C++ → schnellere Entwicklung, weniger Boilerplate
OpenMV Cam M7 (Vorgängergeneration)
Ähnliches Konzept, basiert auf STM32F7 (Cortex-M7 @ 216 MHz). Noch erhältlich, aber H7-Serie (STM32H7, 480 MHz, mehr RAM/Flash) empfohlen für neue Designs.
Technische Daten (OpenMV Cam H7 / H7 Plus – repräsentativ)
- MCU: STM32H743VI (Cortex-M7 @ 480 MHz, DP-FPU)
- RAM: 1 MB SRAM + 2 MB externes Flash (H7 Plus: 32 MB SDRAM + 32 MB Flash)
- Sensor: OV7725 (VGA, 640×480, 30 fps) oder OV5640 (5 MP, 2592×1944) / Global Shutter (MT9V034)
- I/O: 10 I/O-Pins (3,3 V, nicht 5 V tolerant!), davon 3 Servo-PWM, alle PWM/Interrupt-fähig
- SPI: bis 54 Mbps (Streaming)
- I²C, CAN, UART (Async), USB FS (12 Mbps)
- Wi-Fi/BLE: über ATWINC1500 / ESP32 (Shield/Modul) nachrüstbar
- microSD: bis 100 MB/s (Logging, Modelle, Bilder)
- Objektiv: M12-Mount, 2,8 mm Standard (weitere: Tele, Fischauge, Global Shutter)
- Stromversorgung: USB 5 V oder 3,3–5 V an VIN
- Abmessungen: ca. 45 × 36 mm
Interface Library: RPC (Remote Procedure Call)
OpenMV bietet eine RPC-Bibliothek (Python), um die Kamera als Vision-Co-Prozessor an einen Host anzubinden (Arduino, Raspberry Pi, ESP32, PC, SBC).
Unterstützte Transporte & Bandbreiten
- USB VCP (Virtual COM Port): 12 Mbps
- UART (Async Serial): 7,5 Mbps
- SPI: 54 Mbps (40/80 Mbps mit kurzen Leitungen)
- I²C: 1 Mbps (mit Pull-Ups)
- CAN: 1 Mbps
- Wi-Fi (via Shield): 12 Mbps
Funktionen: JPG/RAW Streaming, Inferenz-Ergebnisse abholen, Low-Level-Hardware (Motoren) über zweiten MCU steuern lassen.
Verfügbare Host-Libraries
- Arduino RPC Library: I²C, UART, SPI, CAN (MCP2515, ESP32 CAN). Funktioniert auf allen Arduino-Varianten.
- Generic Python RPC: Linux (Raspberry Pi, BeagleBone), macOS, Windows. Transporte: SPI/I²C (SBC), KVASER CAN, Ethernet/Wi-Fi, USB VCP, UART (TTL/RS485/RS232).
Serielle Ports – Vorsichtsmaßnahmen
Beim Öffnen des USB VCP (Virtual COM Port) per PySerial:
import serial
ser = serial.port(port='/dev/ttyACM0', baudrate=115200, dtr=False) # WICHTIG: dtr=False!
Funktioniert auf Linux, macOS (/dev/tty.usbmodem*), Windows (COMx). Ohne dtr=False setzt der Host DTR High → OpenMV bootet neu / Ausgabe wird unterdrückt.
Anwendungsbeispiele
- Linien- / Kantenerkennung (Line Follower Roboter)
- Frame Differencing (Bewegungserkennung)
- Videoaufzeichnung (MJPEG/GIF auf SD)
- AprilTag Tracking (Navigation, Pose)
- Multi-Blob Farbtracking (Farbmarker, Sortieranlagen)
- Bildaufnahme (Trigger extern / Timer)
- Template Matching (Bauteilerkennung)
- Formerkennung (Rechtecke, Kreise – Hough)
- 1D/2D Barcode & QR Dekodierung
- Data Matrix (Industrie)
- Optical Flow (Drohnen-Navigation)
- TensorFlow Lite Micro (Custom Models: Klassifikation, Detektion)
- Eye Tracking (HCI, Forschung)
- Gesichtserkennung (Zugangskontrolle, Demo)
- Marker Tracking (AR, Robotik)
Fazit
Die OpenMV Cam ist eine leistungsstarke, programmierbare Machine-Vision-Plattform im MicroPython-Ökosystem. Sie bringt komplexe Bildverarbeitung (Deep Learning, Feature Detection, Tracking) auf den Mikrocontroller – ohne PC, ohne Cloud. Durch RPC lässt sie sich nahtlos in größere Systeme (ROS, PLC, SBC, Arduino) einbinden. Ideal für Education, Rapid Prototyping, Robotik, QC-Automation, Smart Agriculture. Weitere Infos & Support? Kontaktieren Sie uns!
Industrietechnik
- Smart Factory aufbauen: Praktischer Schritt-für-Schritt-Blaupause
- ADLINK launcht NEON‑1000‑MDX: Turnkey Edge AI Smart Camera für schnelles Industrial Vision Deployment
- Raspberry Pi Kamera im Vogelhaus installieren – Schritt-für-Schritt-Anleitung
- B&R startet vollintegrierte Smart Cameras für präzise Automation
- Aluminiumhartlöten meistern: Expertentechniken & Praxisleitfaden
- Expertenrat zum Kupferschweißen: Techniken, Tipps & Best Practices
- MIG-Schweißgerät einrichten: Leistung optimieren & perfekte Nähte erzielen
- Das richtige PCB-Material wählen: Ein umfassender Leitfaden
- PCB-Steifverstärker (Stiffener) meistern: Kompletter Leitfaden für Flex-PCBs
- PCB-Design für das Internet der Dinge meistern: Ein umfassender Leitfaden