Démarrage rapide en 10 minutes

Tutoriel vidéo 1 - Introduction à OpenMV : https://singtown.com/learn/688
Tutoriel vidéo 2 - Présentation du déballage : https://singtown.com/learn/49985
Tutoriel vidéo 3 - Installation et utilisation des pilotes et de l'IDE : https://singtown.com/learn/49989/

Télécharger le logiciel

Site officiel en Chine : http://openmv.cc (cliquez sur Télécharger le logiciel)

Site officiel aux États-Unis : https://openmv.io/pages/download

Windows

Après le téléchargement, continuez à cliquer sur Suivant, et l'installation se termine normalement.\

S'il n'y a pas de fenêtre d'image, vous pouvez la faire glisser depuis la droite.

Installer le pilote

Branchez OpenMV sur l'ordinateur.\ En temps normal, le pilote s'installera automatiquement, et rien ne nécessite d'installation manuelle. Dans le gestionnaire de périphériques, vous verrez :

Mais sur certains ordinateurs, le pilote peut ne pas s'installer automatiquement.\ Dans ce cas, un point d'exclamation apparaîtra dans le gestionnaire de périphériques, indiquant que le pilote n'est pas installé normalement.

Dans ce cas, vous devez l'installer manuellement.\ Téléchargez d'abord le pilote : https://dl.singtown.com/openmv/openmv_windowsdriver.zip

Décompressez sur le bureau, puis faites un clic droit sur le périphérique dans le gestionnaire de périphériques, puis cliquez sur Mettre à jour le pilote :

Échec de l'installation du pilote Windows

Si la situation suivante se produit (cela arrive rarement, il s'agit d'une panne de l'ordinateur) :\

L'échec de l'installation du pilote OpenMV est dans 90 % des cas un problème lié à l'ordinateur ; les systèmes d'exploitation allégés et l'utilisation de certains logiciels d'optimisation sont généralement à l'origine de ce genre de problème. La solution pour le pilote OpenMV est similaire à celle d'Arduino.

Cela est dû au fait que la version allégée du système Windows supprime certaines informations de pilotes peu courantes.

Référence en cas d'échec :\ https://forum.singtown.com/topic/230

Enfin, il est recommandé :

  • Lors de l'achat d'un ordinateur, achetez un ordinateur avec un système authentique.
  • Activez Windows Update (il est activé par défaut, ne le désactivez pas).
  • Même si vous utilisez un système piraté, veuillez télécharger la version pure et complète sur MSDN.
  • N'utilisez jamais Ghost pour installer le système ! 90 % des problèmes de pilotes sont causés par Ghost.

MacOS

Après avoir téléchargé le logiciel IDE, double-cliquez sur l'installateur. Continuez simplement à cliquer sur Suivant.

S'il indique que vous ne pouvez installer que des applications provenant de l'App Store et des applications approuvées, réglez-le sur Toute source dans Sécurité et confidentialité.\

Ubuntu

Ubuntu nécessite d'accorder des permissions au fichier téléchargé. Ensuite, double-cliquez pour installer.

Exécuter hello world !

Tout d'abord, assurez-vous que l'IDE et le pilote sont correctement installés.

Branchez OpenMV à l'ordinateur via un câble USB, et une clé USB apparaîtra

Ouvrez l'IDE OpenMV.

Concentrez-vous sur cette image.

  • Cliquez sur Connect
  • puis cliquez sur Run

L'image s'affiche correctement dans la fenêtre d'image en haut à droite.\ Cliquez sur le terminal série en bas, et une fenêtre de terminal apparaîtra.\ En même temps, des données seront affichées dans le terminal série. C'est le taux d'images par seconde. C'est le résultat de l'exécution de print(clock.fps()) à la ligne 17 du code.

Suivre la balle

Supprimez tout le contenu de la zone d'édition et remplacez-le par le code suivant :

# Exemple de détection de blocs de couleur
#
# Cet exemple montre comment utiliser la fonction find_blobs() pour trouver
# des blocs de couleur dans l'image
# La couleur recherchée dans cet exemple est le vert foncé

import csi, image, time
csi0 = csi.CSI()

# Exemple de suivi de couleur, veillez absolument à contrôler l'éclairage
# ambiant, en gardant une lumière stable.
green_threshold   = (   0,   80,  -70,   -10,   -0,   30)
# Définit le seuil de vert, les valeurs entre parenthèses sont respectivement
# les valeurs maximale et minimale de L A B (minL, maxL, minA, maxA, minB,
# maxB), les valeurs LAB sont sélectionnées dans les trois graphiques de
# coordonnées à gauche de l'image. Pour une image en niveaux de gris, il
# suffit de définir deux nombres (min, max).

csi0.reset() # Initialise la caméra
csi0.pixformat(csi.RGB565) # format RGB565.
csi0.framesize(csi.QQVGA) # utilise QQVGA pour plus de rapidité
csi0.snapshot(time = 2000) # attend 2000ms pour que les nouveaux réglages prennent effet, et règle automatiquement la balance des blancs
csi0.auto_gain(False) # désactive le gain automatique. Activé par défaut, il doit absolument être désactivé pour la reconnaissance de couleur.
csi0.auto_whitebal(False)
# désactive la balance des blancs. Elle est activée par défaut, elle doit absolument être désactivée pour la reconnaissance de couleur.
clock = time.clock() # suit le taux d'images

while(True):
    clock.tick() # Suit les millisecondes écoulées entre les snapshot().
    img = csi0.snapshot() # obtient une image depuis la puce photosensible

    blobs = img.find_blobs([green_threshold])
    # find_blobs(thresholds, invert=False, roi=Auto), thresholds est le seuil
    # de couleur, c'est un tuple, il doit être entouré de crochets [ ].
    # invert=1 inverse le seuil de couleur, invert=False par défaut ne
    # l'inverse pas. roi définit la zone de vision pour la reconnaissance de
    # couleur, roi est un tuple, roi = (x, y, w, h), représentant une zone
    # rectangulaire de largeur w et hauteur h à partir du sommet supérieur
    # gauche (x,y) ; si roi n'est pas défini, la zone par défaut est
    # l'ensemble du champ de vision de l'image.
    # Cette fonction renvoie une liste, [0] représente la coordonnée x du
    # sommet supérieur gauche de la zone de couleur cible détectée, [1]
    # représente la coordonnée y du sommet supérieur gauche, [2] représente
    # la largeur de la zone cible, [3] représente la hauteur de la zone
    # cible, [4] représente le nombre de pixels de la zone cible, [5]
    # représente la coordonnée x du point central de la zone cible, [6]
    # représente la coordonnée y du point central de la zone cible, [7]
    # représente l'angle de rotation de la zone de couleur cible (valeur en
    # radians, de type flottant, les autres éléments de la liste sont de
    # type entier), [8] représente le nombre de cibles qui se croisent avec
    # cette zone cible, [9] représente le numéro de la couleur (il permet de
    # distinguer avec quel seuil de couleur threshold cette zone a été
    # détectée).
    if blobs:
    # si une couleur cible a été trouvée
        for b in blobs:
        # parcourt les zones de couleur cible trouvées
            # Dessine un rectangle autour du blob.
            img.draw_rectangle(b[0:4]) # rect
            # marque la zone de couleur cible avec un rectangle
            img.draw_cross((b[5], b[6])) # cx, cy
            # dessine une marque en croix au centre de la zone de couleur cible

    print(clock.fps()) # remarque : une fois votre OpenMV connecté à l'ordinateur, le taux d'images est environ deux fois plus faible qu'auparavant
    # si vous déconnectez l'ordinateur, le taux d'images augmentera

Après l'exécution du programme

Ce programme recherchera des blocs de couleur selon le seuil de green_threshold.

Modifier le seuil

Alors comment modifier ce seuil vous-même ? Comment connaître le seuil de couleur de notre objet ?

  • Projet de liste de nombres : trouvez d'abord la couleur cible dans la caméra, et entourez d'un rectangle la couleur cible dans le tampon d'image par un clic gauche
  • Dans le diagramme de coordonnées sous le tampon d'image, sélectionnez l'espace colorimétrique LAB.

  • Les trois diagrammes de coordonnées représentent les valeurs LAB des couleurs dans la zone rectangulaire entourée, et sélectionnez les valeurs maximale et minimale des trois diagrammes de coordonnées, c'est-à-dire (0, 60, -70, -10, -0, 30)

Système de fichiers

Le système de fichiers est une fonctionnalité particulièrement remarquable d'OpenMV (ou de MicroPython). Qu'est-ce qu'un système de fichiers ? En termes simples, divers dossiers et fichiers sont organisés en structure arborescente, en somme, c'est votre clé USB. Et vous pouvez utiliser le chemin dans le code pour lire des fichiers, créer des fichiers, etc.

Fonctionnement hors ligne

Annexe du tutoriel vidéo 2 - Fonctionnement hors ligne : https://singtown.com/video

La question est alors : à quoi sert le support du système de fichiers par OpenMV ?

La réponse est que c'est très pratique !\ OpenMV virtualise la mémoire Flash intégrée en système de fichiers. Lorsque vous branchez OpenMV sur l'ordinateur, celui-ci fera apparaître une clé USB ! À l'intérieur se trouve le système de fichiers d'OpenMV. Lorsque vous voulez graver le firmware, il suffit de copier le fichier de script vers le main.py de cette « clé USB ». À chaque mise sous tension, OpenMV exécutera automatiquement le main.py à l'intérieur, ce qui lui permet de fonctionner hors ligne.

Téléchargement en un clic

Dans la barre d'outils, cliquez sur enregistrer le script ouvert sur OpenMV Cam (en tant que main.py), et l'IDE enregistrera automatiquement le fichier actuel sous main.py, ce qui est très pratique.

Alimentation

OpenMV dispose de deux bornes d'entrée d'alimentation :

  • VIN (parfois aussi marquée VCC)
  • Entrée USB

L'entrée VIN accepte de 3,6V à 5V, 5V étant recommandé.\ L'USB et le VIN peuvent alimenter en même temps.

OpenMV dispose d'une borne de sortie d'alimentation :

  • 3,3V, cette tension est produite par le régulateur d'OpenMV, utilisée pour alimenter d'autres capteurs. Remarque : n'alimentez pas directement en 3,3V, sans la protection de la puce interne, cela grille facilement.

Carte SD

Que faire si votre code fait 100 000 lignes et que la flash intégrée ne suffit pas ? Que faire si vous voulez enregistrer des images ?

La réponse est : vous pouvez utiliser une carte SD !

Alors comment utiliser la carte SD ? La carte SD est aussi un système de fichiers. Lors de la mise sous tension, si la carte SD est insérée, le système de fichiers de la carte SD remplacera automatiquement le système de fichiers Flash intégré. À chaque mise sous tension, le main.py de la carte SD sera exécuté. N'est-ce pas très intuitif et pratique ? La capacité maximale de la carte SD est de 32 Go.

results matching ""

    No results matching ""