Innovations et R&D

Gyrocompas MEMS

Ce projet met en œuvre un gyrocompas d'un nouveau type basé sur des gyroscopes MEMS pour déterminer le nord géographique et la latitude. Le système est construit autour du microcontrôleur Pi Pico, utilisant deux capteurs BMI 160, un driver A4988 pour la gestion du moteur pas à pas, un moteur pas à pas bipolaire NEMA17, un capteur de fin de course IR et un écran tactile de 3,5 pouces fonctionnant sur le port SPI. Les capteurs MEMS A et B sont disposés selon la même direction de mesure mais selon deux sens opposée.

Le gyrocompas classique est un instrument de navigation qui indique le nord géographique en utilisant la rotation de la Terre. Comparé aux gyrocompas traditionnels, notre dispositif innove en utilisant des gyroscopes MEMS (on mesure le taux de rotation suivant x pour les deux capteurs A et B), qui, malgré leurs limites en termes de résolution et de dérive, peuvent mesurer le taux de rotation de la Terre grâce à un traitement du signal adapté.

Fonctionnement du Dispositif

Nous procédons aux mesures dans le plan horizontal, c'est-à-dire un plan incliné de 90° - latitude. Chaque mesure s'opère selon deux positions décalées de 180°. Avoir deux positions pour chaque mesure permet, en soustrayant les valeurs obtenues pour chaque position, de s'affranchir grandement du biais de mesure (qu'on peut considèrer quasi constant pour les deux positions successives d'une mesure). Nous mesurons ainsi le taux de rotation de la Terre projeté dans le plan horizontal, c'est-à-dire un plan incliné de 90° - latitude, selon cinq angles différents, séparés de 72°.

Architecture du Programme

Il a été nécessaire de modifier la bibliothèque utilisée pour les capteurs BMI 160 afin de la rendre compatible avec l'utilisation de deux ports I2C. En effet, cette bibliothèque a été développée dans le contexte des Arduino disposant d'un seul port I2C. Ici, nous utilisons les deux ports I2C du Pi PICO. Chaque capteur est connecté directement à un port, ce qui permet d'augmenter le taux d'acquisition et de s'affranchir des problèmes d'adressage I2C.

L'application du filtre de Kalman et l'extraction des résultats se fait après chaque cycle d'acquisition. Le traitement complet s'opère en environ 2 secondes alors que le cycle d'acquisition dure une douzaine de secondes. 64 valeurs sont acquises par capteur et pour chaque angle de mesure selon les deux position. Ainsi, 1280  valeurs sont acquises au cours de chaque cycle. Ce nombre relativement élevé explique le résultat surprenant que nous obtenons lorsque nous utilisons le dispositif : dès les premiers cycles, l'estimation de la position du nord géographique est généralement assez bonne, avec une précision de quelques degrés. Après une centaine de cycle la position semble déterminée de manière très précise, avec une résolution sans doute inférieure au degré et une erreur sur la latitude de l'ordre du degré également.

Objectifs du projet

Ce projet démontre qu'il est possible, dans le cadre d'un système embarqué, de :

  • Réaliser une séquence de mesures complexe générant une grande quantité de données au fil du temps (1280 x 2 octets / 15 : environ ,

  • Utiliser un filtre de Kalman en temps réel pour identifier dans des signaux très bruités une mesure très fine, de l'ordre de grandeur de la LSB des capteurs,

  • Effectuer un post-traitement robuste de ces données,

  • Afficher les résultats en temps réel.

Améliorations Possibles

Rendre le gyrocompas MEMS compatible avec une mesure en mouvement (avec un traitement du signal adapté et d'autres capteurs),

Le miniaturiser pour le rendre compatible avec les dimensions d'une montre de poignet et créer un objet élégant et novateur

Mots clefs

Systèmes embarqués, gyroscope, MEMS, microcontrôleur, Pi Pico, nord magnétique, nord géographique, anomalie pôle magnétique terrestre, filtre de Kalman, ajustement harmonique, capteur IR, moteur pas à pas, NEMA17, traitement du signal, mesures précises, gyroscopes MEMS, navigation.

Un cycle d'acquisition complet se compose donc de :

CAPTEUR A
  1. mesure angle 0°, position 1

  2. mesure angle 0°, position 2 (+180°)

  3. mesure angle 72°, position 1

  4. mesure angle 72°, position 2 (+180°)

  5. ....



CAPTEUR B
  1. mesure angle 180°, position 1

  2. mesure angle 180°, position 2 (+180°)

  3. mesure angle 252°, position 1

  4. mesure angle 252°, position 2 (+180°)

  5. ....

Perspectives

Ce système, dont le coût n'excède pas la vingtaine d'euros, permet déjà de manière pleinement opérationnelle de déterminer la position du nord géographique. Un tel dispositif pourrait avoir une utilité pour mesurer la position du nord géographique sans recourir à des dispositifs coûteux comme un gyrocompas dans des situations extrêmes (mesure proche des pôles, mesure dans des zones d'anomalie de la magnétosphère comme au-dessus de l'océan Pacifique, mesure sous terre, mesure à l'intérieur d'une structure métallique, mesure en présence de forts champs magnétiques).

En cas d'excursion ou d'inversion des pôles magnétiques terrestres, ce dispositif permettrait toujours de s'orienter par exemple. Cependant, malgré ses nombreux avantages, ce dispositif ne peut pas actuellement remplacer un gyrocompas traditionnel : la mesure doit s'opérer en statique, en étant immobile. Aujourd'hui, les gyrocompas sont principalement utilisés dans les sous-marins ou les grands navires métalliques. Notre dispositif ne pourrait pas être déployé avec succès dans ce contexte sans modification.

L'offset présent sur toutes les identifications de la position du nord géographique s'explique par un décalage entre le référentiel de l'écran et des capteurs. Sinon, on peut constater qu'en quelques cycles seulement, on identifie la position du nord géographique. Avec plusieurs centaines de cycles il est possible également d'identifier la valeur de la latitude au degré près

tous droits réservés ©

Angle d'arrivé du son

Le dispositif se compose d'un microcontrôleur PI PICO, associé à un écran tactile de 3,5 pouces pour l'affichage des résultats. Quatre microphones analogiques, équipés de préamplificateurs, sont disposés sur une structure imprimée en 3D. Ces microphones sont positionnés sur une sphère de rayon 10 cm, avec trois d'entre eux formant un cercle dans un plan horizontal et le quatrième placé au centre du cercle, à une distance verticale égale au rayon de ce cercle.

Le dispositif est basé sur les éléments suivants :
  • PI PICO

  • 4 micros analogiques

  • Ecran 3.5 pouce tactile

Fonctionnement global

Le dispositif est conçu pour détecter et afficher la direction d'origine d'un son ainsi que l'inclinaison par rapport à l'horizontale. Lorsqu'un bruit suffisamment fort est détecté, le système mesure les décalages temporels entre les signaux reçus par les différents microphones. En supposant que la source sonore est ponctuelle et statique, ces décalages permettent de déterminer la position de la source.

Pour déterminer ces décalages, une transformation de Fourier rapide (FFT) est appliquée aux signaux des microphones, les convertissant du domaine temporel au domaine fréquentiel. Ensuite, la convolution des signaux est effectuée dans le domaine fréquentiel, ce qui est plus efficace en termes de complexité de calcul (O(n log n) contre O(n²) pour une corrélation temporelle directe).

Pour trouver les différences de temps d'arrivée entre les signaux des microphones, on calcule la corrélation croisée des signaux. Plutôt que de calculer la corrélation directement dans le domaine temporel, on utilise la propriété de convolution dans le domaine fréquentiel :

Calcul de la corrélation croisée

Les retards entre les signaux sont obtenus en trouvant le maximum de la fonction de corrélation croisée résultante. Ce maximum indique le décalage temporel entre les deux signaux. Ces retards sont ensuite utilisés pour déterminer l'origine du son en se référant à une table de résultats pré-calculée, réduisant ainsi le temps de traitement. Les angles identifiés sont affichés sur l'écran, et le dispositif se réinitialise pour un nouveau cycle.

Mise en contexte

Des dispositifs similaires existent déjà dans le domaine militaire, équipant par exemple les véhicules blindés comme le Griffon de l'armée française. Ces systèmes de localisation acoustique sont utilisés pour détecter et localiser la provenance de tirs ennemis. Ils fonctionnent sur des principes similaires de mesure des décalages temporels entre les signaux reçus par plusieurs microphones, permettant de trianguler la position exacte de la source sonore. Cela permet une réponse rapide et précise aux menaces, améliorant la sécurité et l'efficacité des opérations militaires.

Améliorations possibles

Ce système, dont le coût est inférieur à une dizaine d'euros, permet de déterminer de manière opérationnelle l'origine d'un son fort. Par exemple, il pourrait être utilisé pour localiser le départ d'un coup de feu. Plusieurs améliorations pourraient le rendre encore plus performant :

Utilisation d'un microcontrôleur ESP32 : Équipé de fonctions DSP et de deux ports I2S, il permettrait d'accélérer le traitement et de remplacer les microphones analogiques par des microphones MEMS plus sensibles.

Communication par modem LoRa : En utilisant plusieurs dispositifs communiquant leurs données via LoRa, il serait possible de trianguler la position exacte de la source sonore avec une grande précision, en fonction du nombre de dispositifs connectés.

Déploiement sur des drones : Pour une couverture discrète et rapide d'une zone étendue, les microphones pourraient être montés sur des drones.

Discrimination des sons par Deep Learning : La capacité de traitement de l'ESP32 permettrait d'utiliser des méthodes d'apprentissage profond pour différencier les types de sons (coups de feu, machines en fonctionnement, éclats de voix, etc.).

Perspectives

Un tel dispositif pourrait avoir des applications variées. En particulier en robotique, il permettrait à un robot de déterminer avec précision la position d'un son, fournissant ainsi une information supplémentaire sur son environnement ou pour aider au pointage d'un dispositif sur l'origine d'un son.

Mots clefs

Systèmes embarqués, Intelligence artificielle, MEMS, Microphone, ESP32, PI PICO, Détection de l'origine d'un son, Angle d'arrivée, Transformée de Fourier rapide, FFT, Transformée inverse de Fourier, Convolution, Complexité de calcul, Fonction d'autocorrélation

Objectif du Projet

Ce projet démontre la capacité à réaliser un traitement de signal complexe sur un matériel limité, permis par une optimisation du temps de traitement. Il illustre également mes compétences en modélisation physique, en particulier dans la compréhension et l'application des principes de propagation des ondes sonores et de la relation entre le temps de vol des ondes et les différences de marche.

tous droits réservés ©

Détection d'Angle d'Arrivée de Signal Radio avec un Orange Pi Zero 3 et Modules RTL-SDR

Objectif du Projet

Ce projet ambitieux démontre un traitement du signal en temps réel impliquant l'analyse fréquentielle de trois signaux, permettant de calculer la différence de phase entre eux. Ces valeurs sont ensuite interprétées pour déterminer l'angle d'arrivée du signal détecté, sous l'hypothèse de l'absence de réflexions et d'un signal unique. Le résultat est affiché sur le terminal et visualisé sur un PC via un tunnel SSH WiFi.

Contexte et Présentation des Modules RTL-SDR

Les modules RTL-SDR (Software Defined Radio) sont des dispositifs polyvalents dédiés à la réception et au traitement des signaux radio. Initialement conçus comme des tuners TV USB, ils ont été détournés de leur usage d'origine pour devenir des récepteurs radio à large bande et à faible coût. Leur capacité à recevoir une gamme de fréquences étendue, de 30 MHz à 1500 MHz, en fait des outils précieux pour de nombreuses applications, allant de l'écoute des communications radio à l'analyse du spectre et à la radiogoniométrie.

Un RTL-SDR fonctionne en convertissant les signaux radiofréquences (RF) analogiques en signaux numériques (IQ) que l'on peut traiter sur un ordinateur ou un microcontrôleur. Ce processus se fait via un tuner RF et un démodulateur numérique.

Les radios numériques fonctionnent sur un procédé qui permet d'échantillonner un signal à une fréquence inférieure à celle requise par le théorème de Nyquist tout en évitant les aliasings indésirables. Ce processus de sous-echantillonage conserve la phase du signal d'origine, ce qui garantit que les mesures de phase restent possible. Cette propriété est essentielle pour la détection d'angle.

Dans le contexte de notre projet, nous exploitons trois modules RTL-SDR modifiés pour détecter l'angle d'arrivée (azimut) d'un signal radio.

Fonctionnalités et Architecture

Le dispositif permet de détecter l'angle d'arrivée d'un signal radio dans une plage de fréquence comprise entre 30 et 1500 MHz. Les antennes sont disposées sur un cercle de 0,2 m de rayon, espacées de 120°. Chaque module RTL-SDR est relié à un switch RF, qui peut soit connecter le module à une antenne, soit au signal généré par le générateur RF.

Le dispositif mesure la différence de phase entre les signaux reçus. Cette différence de phase, conditionnée par la différence de marche d'onde, est utilisée pour calculer l'angle d'origine du signal. Le traitement s'inspire des techniques utilisées pour la détection de l'origine du son.

Synchronisation et Traitement des Signaux

Le principal défi résidait dans la synchronisation précise des acquisitions sur les trois voies. Plusieurs stratégies ont été mises en œuvre :

Modification des RTL-SDR : Les TCXO de deux modules RTL-SDR ont été retirés, et le troisième TCXO a été relié aux deux autres modules via des capacités de 22 pF pour assurer une synchronisation précise.

Utilisation de threads : Chaque module RTL-SDR fonctionne de manière asynchrone, avec un thread dédié à l'acquisition sur chaque voie, permettant de maintenir un retard constant.

Générateur RF pour la calibration : Les switches RF basculent pour connecter les RTL-SDR à la sortie du générateur RF via les diviseurs de Wilkinson, fournissant une référence pour la synchronisation des phases.
Le traitement du signal est réalisé en utilisant la bibliothèque kissfft.h pour l'analyse fréquentielle. On calcule l'amplitude et la phase des signaux acquis et on extrait la phase correspondant à l'amplitude maximale identifiée. Ces valeurs maximales d'amplitude et les phases correspondantes sont ensuite utilisées pour extraire les phases pour chacun des signaux et calculer les différences de phase entre les trois signaux nécessaires pour déterminer l'angle d'arrivée.

Mots clefs

Mini ordinateur, Raspberry Pi, Orange Pi Zero 3, traitement du signal, RTL-SDR, TCXO, fonction de corrélation, analyse fréquentielle, radiogoniométrie, synchronisation de signaux, phase de signal, antennes circulaires, WiFi, traitement fréquentiel, parallélisation des calculs.

Support Matériel

Le dispositif est composé de :

Un Orange Pi Zero 3 pour le traitement centralisé.

Trois modules RTL-SDR synchronisés sur le même TCXO.

Trois switches RF pour basculer entre le signal généré et les antennes.

Un générateur de signal RF ADF435X pour la synchronisation.

Trois diviseurs de Wilkinson pour la distribution du signal de référence.

Performance et Améliorations

Le processus est continu avec un temps de traitement d'environ 80 ms par cycle, grâce aux performances de l'Orange Pi Zero 3 et à l'utilisation de la bibliothèque omp.h pour la parallélisation des calculs et le framework multitâche pthread. Le programme est compilé directement sur l'Orange Pi, mais le code est édité avec Visual Studio Code sur un PC via SSH.

Des améliorations possibles incluent :

Meilleure gestion de la saturation des RTL-SDR.

Intégration d'un affichage indépendant, tel qu'un écran SPI connecté à l'Orange Pi.

Portabilité accrue du système.

Limitations :
Le système n'est compatible qu'avec l'identification de signaux FM ou à modulation d'amplitude. Les signaux transmis en utilisant l'étalement de spectre sont non utilisables par le dispositif.

Vitesse d'un véhicule par méthode sonore passive

Dans de nombreuses applications, il est essentiel de mesurer la vitesse d'un véhicule sans révéler la présence du système de mesure. Les méthodes traditionnelles, comme les radars ou la télémétrie laser, émettent des signaux ou des ondes détectables par les dispositifs embarqués des véhicules, ce qui peut compromettre l'efficacité de la surveillance. L'approche adoptée dans ce projet se distingue par son caractère entièrement passif : elle permet de mesurer la vitesse d'un véhicule sans émettre aucun signal vers l'objet sondé. Cette méthode, indétectable par nature, offre une solution innovante et discrète pour des applications où la furtivité est un atout majeur..

Support Matériel

Mini ordinateur: Orange Pi Zero 3

Microphones: 2 micros analogiques avec préamplificateur intégré

Convertisseur Analogique-Numérique: TCM 3008

Affichage: Écran LCD I2C

Objectif du Projet

L'objectif de ce projet était de mesurer la vitesse d'un véhicule avec un système complètement passif. La plupart des systèmes de mesure de vitesse utilisent des techniques d'émission comme les radars à effet Doppler ou la télémétrie laser. Mon but était de développer une méthode indétectable en utilisant la propagation du son.

Défis et Stratégies

Initialement, j'avais envisagé d'utiliser un seul microphone pour mesurer la vitesse par l'effet Doppler, en analysant le son à l'approche et à l'éloignement du véhicule. Cependant, j'ai constaté que cette méthode était inefficace car le son émis par les véhicules ne conserve pas ses caractéristiques temporelles, ne respectant pas l'hypothèse d'ergodicité nécessaire à cette analyse. À titre d'exemple, ce type de stratégie fonctionnerait si le véhicule était équipé d'un klaxon émettant un son à une fréquence fixe au cours du temps : on pourrait dans ces conditions clairement identifier le shift fréquentiel et en déduire la vitesse.

Pour contourner ce problème, j'ai décidé d'utiliser deux microphones espacés d'un mètre, fixé sur une structure imprimé en PLA. L'idée était de mesurer le décalage temporel entre les signaux reçus par les deux micros. Après filtrage pour obtenir la courbe enveloppe du signal, j'ai ajusté ces données avec une courbe théorique issue des propriétés associées à la propagation du son, en prenant en compte que la densité de puissance sonore décroît avec le carré de la distance.

Méthode

L'acquisition du son se fait à 50 kHz pour chaque voie. Les deux microphones enregistrent les données qui sont ensuite filtrées pour conserver l'enveloppe de l'amplitude. En ajustant cette enveloppe avec la fonction théorique, nous pouvons déterminer le décalage temporel (τ) entre les signaux des deux microphones. La vitesse (v) du véhicule est alors calculée avec la formule :

Limitations et Améliorations

Le traitement n'est pas continu. L'enregistrement et l'analyse commencent lorsqu'un seuil d'amplitude est franchi. La phase d'acquisition et de traitement prend environ 5 secondes. Cette approche impose la condition qu'un seul véhicule soit détecté à la fois, pour éviter des interférences dans l'identification des pics d'amplitude : il ne faut pas qu'un nouveau véhicule se présente avant la fin de ce délai.

Aspect Logiciel

Multitâche: Utilisation de pthread pour le multitâche.

Parallélisation: Bibliothèque OpenMP pour les calculs parallèles.

Adaptation: Modification des librairies nécessaires pour l'utilisation de l'écran LCD et du TCM3008 avec l'Orange Pi.

Analyse de données: Utilisation de la bibliothèque nlopt pour les ajustements des courbes mathématiques. Cette bibliothèque permet d'optimiser des fonctions non linéaires, facilitant ainsi l'ajustement précis des courbes théoriques sur les données mesurées et l'identification des paramètres pertinents dans notre contexte.

Conclusion

Malgré l'échec initial de l'utilisation d'un seul microphone et de l'effet Doppler, j'ai pu développer une solution alternative efficace en utilisant deux microphones et l'analyse de l'enveloppe du signal. L'hypothèse d'ergodicité des signaux, qui permet de confondre les moyennes temporelles et statistiques, ne s'applique pas au son d'un véhicule enregistré sur quelques secondes. Il a donc été nécessaire de cumuler les informations provenant de deux microphones et de remplacer l'approche fréquentielle initialement choisie par une analyse de l'enveloppe du signal. La puissance de l'Orange Pi Zero permet de réaliser des ajustements (fits) en utilisant la forme théorique du signal attendu, ce qui permet, en fin de compte, d'identifier le décalage temporel entre les deux pics d'amplitude. Ce projet démontre non seulement mes compétences avancées en traitement du signal et en systèmes embarqués, mais aussi mon ingéniosité à résoudre des défis complexes de manière créative et efficace.

Mots clefs

Mini ordinateur, Raspberry Pi, Orange Pi Zero 3, traitement du signal, micros analogiques, librairie de mathématiques, fit avec des fonctions.