🛠 MicroPython + machine vision : le firmware OpenMV sur un cœur, C++ sur l'autre

Arduino Portenta H7 · avance · Schéma : IMG-portenta-h7-avance-1-portenta-h7-micropython-openmv.svg — Portenta H7 avec caméra branchée sur le connecteur CSI, écran OpenMV IDE affichant une image QVGA avec rectangle de détection, étiquettes MicroPython OpenMV sur un coeur et Arduino C++ sur l'autre, Vision Shield à côté

Objetivos

La Portenta H7 es también una placa de visión embebida: la vía oficial de MicroPython pasa por el firmware OpenMV, y la placa dispone de un conector de cámara CSI (la Vision Shield añade un micrófono y sensores). Vas a capturar imágenes en MicroPython, entender que el firmware OpenMV coexiste con el modelo de doble núcleo — un núcleo puede ejecutar el intérprete MicroPython/JavaScript mientras el otro mantiene código Arduino compilado, conectados mediante RPC. Es la puerta de entrada hacia TensorFlow Lite y los tutoriales de cámara oficiales (getting-started-openmv-micropython, openmv-cheat-sheet).

Material

Código completo

# vision_openmv.py — OpenMV MicroPython sur Portenta H7
import sensor, image, time

sensor.reset                      # init camera sur le connecteur CSI
sensor.set_pixformat(sensor.RGB565) # couleur 16 bits
sensor.set_framesize(sensor.QVGA)   # 320x240
sensor.skip_frames(time=2000)       # laisse l'expo se stabiliser

clock = time.clock                # horo FPS facon OpenMV

while True:
    clock.tick
    img = sensor.snapshot         # une trame en memoire
    # brique de base de la vision : trouver les blobs lumineux
    for b in img.find_blobs([(0, 100, 0, 100, 0, 100)],
                            pixels_threshold=200):
        img.draw_rectangle(b[0:4], color=(255, 0, 0))
    print("fps %.1f" % clock.fps)
# > 
# (forme de retour de find_blobs notamment) — la page cheat-sheet est
# JS-renderée et n'a pas pu etre verifiee ; teste dans l'OpenMV IDE.

Verificación esperada

El OpenMV IDE muestra el flujo de la cámara en directo con los rectángulos de detección, y los FPS se muestran en la consola del script. El pipeline de hardware detrás es el del STM32H747: el acelerador gráfico Chrom-ART (DMA2D) y el codificador JPEG dedicados — los mismos que el tutorial oficial de GUI LVGL que controla un monitor en DisplayPort sobre USB-C.

Errores frecuentes

Otros tutoriales para esta placa

Ejemplos de código para esta placa

← Volver a la ficha 🛠 Todos los tutoriales