Comment lancer rapidement des conceptions de détection ToF optique 3D
Avec la contribution de Rédacteurs nord-américains de DigiKey
2022-04-26
La mesure de la distance de temps de vol (ToF) optique joue un rôle fondamental dans diverses applications s'étendant de la détection industrielle aux interfaces utilisateurs basées sur les gestes. Grâce à la disponibilité de capteurs ToF multipixels précis et rapides, les développeurs peuvent mettre en œuvre des algorithmes de détection tridimensionnelle (3D) plus sophistiqués, nécessaires à ces applications. Cependant, le temps de développement est ralenti par la complexité du sous-système de détection optique multipixel.
Cet article traite des principes de base du temps de vol. Il présente ensuite un kit d'évaluation ToF optique de Broadcom qui permet aux développeurs de prototyper rapidement des applications de mesure de distance 1D et 3D précises, et d'implémenter rapidement des solutions de détection ToF optique personnalisées.
Bases de la technologie ToF optique
Utilisée pour déterminer des distances précises dans de nombreuses applications, la technologie ToF optique permet d'effectuer des mesures basées sur le temps nécessaire à la lumière pour se déplacer dans l'air. Les calculs spécifiques utilisés pour effectuer ces mesures reposent en général sur deux approches différentes : ToF direct et ToF indirect. Dans le ToF direct, ou mesure de distance d'impulsion, un dispositif mesure le temps entre l'émission et la réception d'une impulsion lumineuse particulière par un capteur ToF en utilisant l'Équation 1 :
  Équation 1
 Équation 1
Où :
c0 = Vitesse de la lumière dans le vide
∆T = Temps écoulé entre l'émission et la réception
Bien que simple dans son concept, la possibilité de réaliser des mesures précises avec cette approche se heurte à un certain nombre de défis, notamment la nécessité de disposer d'émetteurs et de récepteurs suffisamment puissants, d'améliorer le rapport signal/bruit et de détecter précisément les fronts d'impulsion.
Par contraste, les méthodes de ToF indirect utilisent une onde continue modulée et mesurent la différence de phase entre les signaux émis et reçus, selon l'Équation 2 :
  Équation 2
 Équation 2
Où :
c0 = Vitesse de la lumière dans le vide
fmod = Fréquence de modulation laser
∆φ = Différence de phase déterminée
L'approche de ToF indirect réduit non seulement les exigences de puissance pour l'émetteur et le récepteur, mais également les exigences de mise en forme des impulsions, simplifiant la complexité de conception pour effectuer des mesures de distance 3D et la détection de mouvement.
Les méthodes directes et indirectes exigent toutes les deux une conception minutieuse de l'interface optique et un contrôle précis des signaux de l'émetteur et du récepteur. Depuis des années, les développeurs peuvent parti de capteurs ToF optiques intégrés qui combinent des dispositifs d'émission et des capteurs de réception dans un seul boîtier. Néanmoins, les générations précédentes de ces dispositifs ont généralement obligé les développeurs à faire des compromis entre combinaison de performances et caractéristiques de fonctionnement telles que la consommation d'énergie, la portée, la précision et la vitesse. De tels compromis se sont révélés être un obstacle majeur pour un nombre croissant d'applications de détection industrielle devant fonctionner à des distances moyennes jusqu'à 10 mètres (m).
Des modules de capteurs ToF indirects plus avancés, comme l'AFBR-S50MV85G de Broadcom, sont conçus spécifiquement pour répondre au besoin croissant de résultats rapides et précis à des distances moyennes, tout en maintenant une taille de boîtier et une consommation d'énergie minimales. Basés sur ce capteur, le kit d'évaluation AFBR-S50MV85G-EK de Broadcom et le kit de développement logiciel (SDK) associé fournissent une plateforme de développement de capteur ToF multipixel qui permet aux développeurs de mettre rapidement en œuvre des applications de détection ToF 3D.
Comment un module intégré simplifie la mesure de distance ToF
Développé pour les applications de détection industrielle, le module AFBR-S50MV85G offre une solution de détection ToF optique complète dans un seul boîtier. Ses composants intégrés incluent un laser à cavité verticale et à émission par la surface (VCSEL) de 850 nanomètres (nm) pour l'éclairage infrarouge (IR), une matrice de capteurs hexagonale de 32 pixels, des lentilles intégrées pour le VCSEL et l'optique du capteur, et un circuit intégré à application spécifique (ASIC).
Positionné dans un alignement fixe par rapport à la matrice de détection, l'émetteur éclaire un objet cible, conduisant un certain nombre de pixels de la matrice de détection à détecter le signal IR réfléchi. En fonctionnement de base, cela permet au module de prendre en charge la mesure précise de la distance sur des surfaces blanches, noires, colorées, métalliques ou rétroréfléchissantes — même en plein soleil — grâce aux capacités intégrées de suppression de la lumière ambiante.
Lorsque la distance à un objet diminue, la compensation automatique des erreurs de parallaxe permet d'effectuer des mesures avec pratiquement aucune limite de distance inférieure. En même temps, la combinaison de l'éclairage IR et de la matrice de détection permet d'obtenir des informations supplémentaires sur l'objet, notamment son mouvement, sa vitesse, son angle d'inclinaison ou son alignement latéral. En conséquence, le module peut fournir les données requises pour déterminer la direction et la vitesse d'un objet cible qui passe ou approche (Figure 1).
 Figure 1 : En utilisant les données acquises par la matrice de détection de 8 x 4 pixels du module AFBR-S50MV85G, les développeurs peuvent implémenter des applications 3D capables de mesurer les caractéristiques de mouvement des objets. (Source de l'image : Broadcom)
Figure 1 : En utilisant les données acquises par la matrice de détection de 8 x 4 pixels du module AFBR-S50MV85G, les développeurs peuvent implémenter des applications 3D capables de mesurer les caractéristiques de mouvement des objets. (Source de l'image : Broadcom)
Orchestrant le fonctionnement précis du VCSEL et de la matrice de détection, le circuit ASIC intégré du module fournit tous les circuits requis pour la commande du VCSEL, la capture des signaux analogiques depuis la matrice de détection et la mise en forme des signaux numériques (Figure 2).
 Figure 2 : Un ASIC intégré dans le module AFBR-S50MV85G inclut tous les circuits requis pour commander la source lumineuse VCSEL du module, acquérir les signaux reçus de la matrice de détection et générer des données numériques à transférer via un bus SPI. (Source de l'image : Broadcom)
Figure 2 : Un ASIC intégré dans le module AFBR-S50MV85G inclut tous les circuits requis pour commander la source lumineuse VCSEL du module, acquérir les signaux reçus de la matrice de détection et générer des données numériques à transférer via un bus SPI. (Source de l'image : Broadcom)
Le circuit d'alimentation intégré de l'ASIC permet au module de fonctionner avec une seule alimentation de 5 volts (V), tandis que la boucle à verrouillage de phase numérique (PLL) et l'oscillateur résistance-capacité (RC) étalonné en usine et compensé en température intégrés fournissent tous les signaux d'horloge requis. Grâce à cette intégration, les développeurs peuvent facilement incorporer le module dans leurs conceptions en utilisant une unité de microcontrôleur (MCU) et quelques composants externes supplémentaires. L'interface avec le microcontrôleur ne nécessite qu'une broche entrée/sortie à usage général (GPIO) pour un signal de disponibilité des données depuis le module, ainsi qu'une connexion via l'interface périphérique série (SPI) numérique du module (Figure 3).
 Figure 3 : Le module AFBR-S50MV85G de Broadcom ne nécessite qu'un microcontrôleur et quelques composants supplémentaires pour la mise en œuvre d'un système de détection ToF complet. (Source de l'image : Broadcom)
Figure 3 : Le module AFBR-S50MV85G de Broadcom ne nécessite qu'un microcontrôleur et quelques composants supplémentaires pour la mise en œuvre d'un système de détection ToF complet. (Source de l'image : Broadcom)
En complément de cette conception matérielle simple, les fonctionnalités logicielles associées, nécessaires à la mise en œuvre de la mesure de distance, sont fournies par le logiciel pilote ToF de Broadcom. Tandis que le module se charge de la collecte des données optiques pour les applications de mesure de distance, le logiciel pilote ToF de Broadcom inclus dans le SDK AFBR-S50 de la société effectue toutes les étapes de configuration matérielle, d'étalonnage et de mesure. Pendant la mesure, le logiciel pilote extrait à la fois les valeurs de distance et d'amplitude des pixels.
Comment développer rapidement une application de mesure de distance
Associé au SDK AFBR-S50, le kit d'évaluation AFBR-S50MV85G-EK de Broadcom fournit une plateforme complète pour le prototypage et le développement rapides d'applications de mesure de distance. Le kit est fourni avec une carte d'adaptateur contenant le module AFBR-S50MV85G, la carte d'évaluation FRDM-KL46Z de NXP basée sur un microcontrôleur Arm Cortex-M0+, et un câble mini-USB pour connecter l'assemblage de carte d'évaluation à un ordinateur portable ou à un autre système embarqué (Figure 4).
 Figure 4 : Le kit d'évaluation AFBR-S50MV85G-EK de Broadcom et le logiciel associé fournissent une plateforme complète pour l'évaluation et le prototypage d'applications de mesure de distance ToF. (Source de l'image : Broadcom)
Figure 4 : Le kit d'évaluation AFBR-S50MV85G-EK de Broadcom et le logiciel associé fournissent une plateforme complète pour l'évaluation et le prototypage d'applications de mesure de distance ToF. (Source de l'image : Broadcom)
La mesure de distance ToF avec le kit d'évaluation ne nécessite que quelques étapes pour commencer. Une fois le SDK AFBR-S50 téléchargé, un assistant de configuration guide le développeur tout au long d'une procédure d'installation rapide. Une fois que le développeur a lancé l'application logicielle AFBR-S50 Explorer de Broadcom incluse dans le SDK, le logiciel se connecte à la carte d'évaluation AFBR-S50 par l'intermédiaire de l'interface USB, reçoit les données de mesure via le logiciel pilote s'exécutant sur le microcontrôleur de la carte de NXP et permet à l'utilisateur d'afficher les résultats sous forme de graphiques 1D ou 3D (Figure 5).
 Figure 5 : Le logiciel AFBR-S50 Explorer simplifie l'évaluation des mesures ToF grâce à des graphiques 3D montrant l'amplitude d'éclairage reçue pour chaque pixel dans la matrice de capteur ToF. (Source de l'image : Broadcom)
Figure 5 : Le logiciel AFBR-S50 Explorer simplifie l'évaluation des mesures ToF grâce à des graphiques 3D montrant l'amplitude d'éclairage reçue pour chaque pixel dans la matrice de capteur ToF. (Source de l'image : Broadcom)
Comme illustré à la Figure 5, la vue du graphique 3D affiche les lectures depuis chaque pixel, mais le logiciel fournit une autre vue qui permet aux développeurs de ne voir que les pixels considérés comme valides pour la mesure. Dans cette vue alternative, les pixels qui ne répondent pas aux critères définis sont supprimés du graphique (Figure 6).
 Figure 6 : Avec le logiciel AFBR-S50 Explorer de Broadcom, les développeurs peuvent visualiser des graphiques 3D rationalisés qui éliminent les pixels ne répondant pas aux critères prédéfinis. (Source de l'image : Broadcom)
Figure 6 : Avec le logiciel AFBR-S50 Explorer de Broadcom, les développeurs peuvent visualiser des graphiques 3D rationalisés qui éliminent les pixels ne répondant pas aux critères prédéfinis. (Source de l'image : Broadcom)
Pour explorer la précision et les performances de mesure dans différents scénarios d'application tels que l'éclairage, la réflectivité et le type de surface, les développeurs peuvent visualiser l'impact de différentes configurations de détection, comme l'utilisation de plus de pixels pour des applications 3D améliorées ou de moins de pixels pour des applications 1D exigeant des mesures plus précises. Après avoir évalué les méthodes de mesure dans leurs prototypes, les développeurs peuvent s'appuyer sur le logiciel d'exemple inclus dans le SDK AFBR-S50 de Broadcom pour rapidement implémenter des applications de détection ToF personnalisées.
Créer des applications logicielles de détection ToF personnalisées
Broadcom construit le support des applications de détection ToF autour d'une architecture efficace basée sur la bibliothèque centrale AFBR-S50 comprenant un code spécifique au matériel du capteur, une interface de programmation (API) et des couches d'abstraction matérielle (HAL) (Figure 7).
 Figure 7 : Dans l'environnement opérationnel ToF de Broadcom, l'API du pilote ToF permet au code d'application utilisateur d'accéder aux fonctions d'étalonnage, de mesure et d'évaluation dans la bibliothèque centrale précompilée du pilote ToF. (Source de l'image : Broadcom)
Figure 7 : Dans l'environnement opérationnel ToF de Broadcom, l'API du pilote ToF permet au code d'application utilisateur d'accéder aux fonctions d'étalonnage, de mesure et d'évaluation dans la bibliothèque centrale précompilée du pilote ToF. (Source de l'image : Broadcom)
Dans le kit SDK AFBR-S50, Broadcom fournit la bibliothèque centrale sous la forme d'un fichier de bibliothèque ANSI-C précompilé qui intègre toutes les données et tous les algorithmes nécessaires au fonctionnement du matériel AFBR-S50MV85G. Exécutée sur le microcontrôleur du système de mesure de la distance, la bibliothèque centrale fournit des fonctionnalités telles que l'étalonnage, la mesure et l'évaluation pour effectuer la mesure de distance avec une charge de traitement ou une consommation d'énergie minimum. Comme les fonctions de la bibliothèque centrale gèrent tous les détails sous-jacents, le cycle de mesure de base vu par le développeur est simple (Figure 8).
 Figure 8 : Le logiciel ToF du SDK AFBR-S50 minimise la charge de travail du processeur en utilisant des interruptions et des rappels. (Source de l'image : Broadcom)
Figure 8 : Le logiciel ToF du SDK AFBR-S50 minimise la charge de travail du processeur en utilisant des interruptions et des rappels. (Source de l'image : Broadcom)
Au début de chaque cycle de mesure (initié par une interruption de temporisateur périodique, ou IRQ), le microcontrôleur lance la mesure et retourne immédiatement à un état de repos (ou continue à traiter un code d'application). Une fois la mesure terminée, le module AFBR-S50MV85G utilise la ligne GPIO connectée pour signaler une interruption, activant le microcontrôleur pour lancer une lecture de données sur le bus SPI avant de repasser à son état précédent. Une fois la lecture des données terminée (signalée par une IRQ de SPI terminée), le microcontrôleur exécute un code pour évaluer les données du capteur ToF acquises.
Pour éviter de perdre des données de mesure, la bibliothèque centrale empêche le démarrage d'un nouveau cycle de mesure en bloquant le tampon de données jusqu'à ce que la routine d'évaluation soit appelée. À ce titre, les développeurs incluent généralement un double tampon pour les données brutes afin de permettre l'exécution intercalée des tâches de mesure et d'évaluation.
Pour les développeurs de logiciels d'application, les routines de la bibliothèque centrale protègent les détails d'étalonnage, de mesure et d'évaluation. En fait, les développeurs peuvent utiliser le kit d'évaluation et l'application AFBR-S50 Explorer comme une plateforme de prototypage complète pour fournir des données de mesure au code d'application logiciel de haut niveau.
Pour les développeurs qui doivent implémenter un logiciel d'application personnalisé, le kit SDK AFBR-S50 combine les modules de la bibliothèque centrale précompilés avec plusieurs exemples de logiciels. Par conséquent, les développeurs peuvent rapidement créer leurs propres applications de détection ToF en s'appuyant sur des d'applications d'exemple fournies dans le SDK. Les développeurs peuvent accéder au matériel AFBR-S50MV85G et aux fonctionnalités de la bibliothèque centrale AFBR-S50 dans leur code logiciel spécifique à l'application en appelant les fonctions dans l'API du SDK AFBR-S50 et en spécifiant leurs propres fonctions pour les différents rappels pris en charge par la bibliothèque centrale (Figure 7).
Broadcom fournit une documentation complète sur l'API et les logiciels d'exemple, permettant aux développeurs d'adapter rapidement les exemples logiciels à leurs besoins ou de commencer de zéro. En fait, le cycle de mesure et d'évaluation de base est simple, il suffit de faire correspondre les fonctions personnalisées et les appels API au cycle de mesure (Figure 8). Par exemple, un cycle de mesure comme précédemment mentionné inclut trois phases : intégration du dispositif ToF, lecture des données et évaluation. Les appels API de la bibliothèque centrale nécessaires pour lancer ces trois phases incluent :
- Argus_TriggerMeasurement(), qui déclenche une seule trame de mesure de manière asynchrone
- Argus_GetStatus(), qui retourne STATUS_OK lorsque la mesure est terminée avec succès
- Argus_EvaluateData(), qui évalue les informations utiles à partir des données de mesure brutes
Broadcom démontre cette boucle de mesure fondamentale dans une application d'exemple incluse dans la distribution SDK, illustrée dans la Liste 1.
Copier
int main(void)
{
   status_t status = STATUS_OK;
   
   /* Initialize the platform hardware including the required peripherals
   * for the API. */
   hardware_init();
   
   /* The API module handle that contains all data definitions that is
   * required within the API module for the corresponding hardware device.
   * Every call to an API function requires the passing of a pointer to this
   * data structure. */
   argus_hnd_t * hnd = Argus_CreateHandle();
   handle_error(hnd ? STATUS_OK : ERROR_FAIL, "Argus_CreateHandle failed!");
   
   /* Initialize the API with default values.
   * This implicitly calls the initialization functions
   * of the underlying API modules.
   *
   * The second parameter is stored and passed to all function calls
   * to the S2PI module. This piece of information can be utilized in
   * order to determine the addressed SPI slave and enabled the usage
   * of multiple devices on a single SPI peripheral. */
   
   status = Argus_Init(hnd, SPI_SLAVE);
   handle_error(status, "Argus_Init failed!");
   
   /* Print some information about current API and connected device. */
   uint32_t value = Argus_GetAPIVersion();
   uint8_t a = (value >> 24) & 0xFFU;
   uint8_t b = (value >> 16) & 0xFFU;
   uint8_t c = value & 0xFFFFU;
   uint32_t id = Argus_GetChipID(hnd);
   argus_module_version_t mv = Argus_GetModuleVersion(hnd);
   print("\n##### AFBR-S50 API - Simple Example ##############\n"
   " API Version: v%d.%d.%d\n"
   " Chip ID: %d\n"
   " Module: %s\n"
   "##################################################\n",
   a, b, c, id,
   mv == AFBR_S50MV85G_V1 ? "AFBR-S50MV85G (v1)" :
   mv == AFBR_S50MV85G_V2 ? "AFBR-S50MV85G (v2)" :
   mv == AFBR_S50MV85G_V3 ? "AFBR-S50MV85G (v3)" :
   mv == AFBR_S50LV85D_V1 ? "AFBR-S50LV85D (v1)" :
   mv == AFBR_S50MV68B_V1 ? "AFBR-S50MV68B (v1)" :
   mv == AFBR_S50MV85I_V1 ? "AFBR-S50MV85I (v1)" :
   mv == AFBR_S50SV85K_V1 ? "AFBR-S50SV85K (v1)" :
   "unknown");
      
/* Adjust some configuration parameters by invoking the dedicated API methods. */
   status = Argus_SetConfigurationFrameTime( hnd, 100000 ); // 0.1 second = 10 Hz
   handle_error(status, "Argus_SetConfigurationFrameTime failed!");
   
   /* The program loop ... */
   for (;;)
   {
      myData = 0;
      /* Triggers a single measurement.
      * Note that due to the laser safety algorithms, the method might refuse
      * to restart a measurement when the appropriate time has not been elapsed
      * right now. The function returns with status #STATUS_ARGUS_POWERLIMIT and
      * the function must be called again later. Use the frame time configuration
      * in order to adjust the timing between two measurement frames. */
      Argus_TriggerMeasurement(hnd, measurement_ready_callback);
      handle_error(status, "Argus_StartMeasurementTimer failed!");
      STATUS_ARGUS_POWERLIMIT)
      {
         /* Not ready (due to laser safety) to restart the measurement yet.
         * Come back later. */
         continue;
      }
      else
      {
         /* Wait until measurement data is ready. */
      do
         {
            status = Argus_GetStatus(hnd);
         }
         while (status == STATUS_BUSY);
         handle_error(status, "Waiting for measurement data ready (Argus_GetStatus) failed!");
         /* The measurement data structure. */
         argus_results_t res;
         
         /* Evaluate the raw measurement results. */
         status = Argus_EvaluateData(hnd, &res, (void*) myData);
         handle_error(status, "Argus_EvaluateData failed!");
         
         /* Use the obtain results, e.g. print via UART. */
         print_results(&res);
         }
      }
}
Liste 1 : Le code d'exemple dans la distribution SDK AFBR-S50 de Broadcom démontre le modèle de conception de base pour l'acquisition et l'évaluation des données ToF depuis le module AFBR-S50MV85G. (Source du code : Broadcom)
Comme illustré dans la liste, les trois appels de fonction API mentionnés précédemment constituent l'épine dorsale de l'exécution d'un cycle de mesure. En étudiant la documentation API et d'autres applications d'exemple dans le SDK, les développeurs peuvent rapidement mettre en œuvre des applications 3D complexes en utilisant la capacité du module à fournir les données nécessaires pour déterminer des caractéristiques avancées telles que la vitesse, la direction et l'angle d'inclinaison d'un objet cible.
Conclusion
Les dispositifs de détection ToF optique permettent des applications dans divers segments exigeant une mesure précise de la distance, mais les limites de la plage de mesure, de la précision ou de la fiabilité ont freiné l'expansion vers des applications telles que les systèmes de détection industrielle qui nécessitent des dispositifs basse consommation capables de fournir des résultats précis à des distances plus longues. Un sous-système ToF optique intégré de Broadcom répond à ces exigences émergentes pour les applications de détection nouvelle génération. Grâce à un kit d'évaluation basé sur ce dispositif, les développeurs peuvent rapidement implémenter des systèmes pour la mesure de précision dans les applications de télémétrie 1D et pour le suivi de mouvements d'objets complexes dans les applications 3D.
 
            
        Avertissement : les opinions, convictions et points de vue exprimés par les divers auteurs et/ou participants au forum sur ce site Web ne reflètent pas nécessairement ceux de DigiKey ni les politiques officielles de la société.
 
                 
                 
                 
 
 
 
 Paramètres
        Paramètres
     Livraison rapide
                                    Livraison rapide
                                 Livraison gratuite
                                    Livraison gratuite
                                 Incoterms
                                    Incoterms
                                 Types de paiement
                                    Types de paiement
                                






 Produit marketplace
                                    Produit marketplace
                                 
            




 
                 
                     
                                 
                                 
                                 
                         
                                 
                                 
                                 
                                 
                                 
                                 
                                 France
France