🛠 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é

Objectifs

La Portenta H7 est aussi une carte de vision embarquée : la voie MicroPython officielle passe par le firmware OpenMV, et la carte dispose d'un connecteur caméra CSI (la Vision Shield ajoute un micro et des capteurs). Tu vas capturer des images en MicroPython, comprendre que le firmware OpenMV cohabite avec le modèle dual-core — un cœur peut faire tourner l'interpréteur MicroPython/JavaScript pendant que l'autre garde du code Arduino compilé, reliés par RPC. C'est la porte d'entrée vers TensorFlow Lite et les tutos caméra officiels (getting-started-openmv-micropython, openmv-cheat-sheet).

Matériel

Code complet

# 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 façon 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 être vérifiée ; teste dans l'OpenMV IDE.

Vérification attendue

L'OpenMV IDE affiche le flux caméra en direct avec les rectangles de détection, et le FPS défile dans le script console. Le pipeline matériel derrière est celui du STM32H747 : l'accélérateur graphique Chrom-ART (DMA2D) et le codeur JPEG dédiés — les mêmes que le tuto officiel GUI LVGL qui pilote un moniteur en DisplayPort sur l'USB-C.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels