Lowlight.fr

Un robot ne peut pas porter atteinte à l'humanité, ni, par son inaction, permettre que l'humanité soit exposée au danger

Prélude à Fondation
Isaac Asimov (illustrations de Osamu Tezuka)

Le métier d'ingénieur

Un bon ingénieur sait s'entourer d'une équipe compétente, capable de rechercher, d'innover et d'élaborer des solutions qui permettront au monde d'évoluer. Suivant une formation d'ingénieur, je suis amené régulièrement à prendre part à différents projets. Les plus intéressants ne manqueront pas d'avoir une petite section sur cette page !

Prochainement

La percolation et les 6 degrés de séparation

Il s'agit d'un mini-projet qui a été réalisé lors de ma troisième année à l'**ISEN**, avec deux autres étudiants. Le but était de mettre en évidence la théorie des 6 dégrés de séparation, qui stipule que chaque personne sur la planète pourrait être réliée à une autre personne par 6 relations ou plus.

En choisissant une **population** °(Nombre de noeuds)° ainsi qu'une **densité** de liens °(comprendre qu'une densité de 0.01 indique que chaque individu de la population choisie est lié en moyenne avec 1% de la population totale)°, l'objectif est de déterminer à partir de quelle densité le graphe généré est forcément **connexe**.

Pour cela, on peut utiliser ce qu'on appelle la **percolation**. Celle-ci est effectué par selon un **nombre de tirages** et un **pas de densité** que l'on peut choisir, cependant les temps de caluls deviennent de plus en plus long au fur et à mesure que l'on augmente la précision °(l'affichage des graphes générés est bien entendu désactivé et n'est pas pris en compte)°, c'est pourquoi il est nécessaire de choisir judicieusement ces paramètres.

Avec **10** tirages et un pas de **0.01** jusqu'à une densité de **0.1** °(i.e. 10*0.1/0.01 = 100 constructions de graphes et tests de connectivité)°, on trouve un **degré de séparation** oscillant autour de **8**, ce qui est assez proche de la théorie. Notez toutefois que les liens entre les individus dans ce programme sont effectués de manière **aléatoire**, ce qui peut être contestable dans la réalité...

  • Cliquez sur un individu pour afficher son **"réseau d'amis"**
  • Cliquez sur un second individu pour afficher les différentes **relations** qui relie les deux individus
  • Le calcul de **sociabilité** d'un individu indique le pourcentage de la population totale auquel celui-ci peut être relié

Le problème traité est **exponentiel**, soyez vigilants si vous modifiez les paramètres ci-dessous ou la page risque d'être ralentie.

Configuration
Nombre de noeuds
Densité des liens
Graphe
Connectivité
 
Noeud particulier
Identifiant
Socialbilité
Percolation
Cette opération nécessite du temps.
Tirages
Pas de densité
Densité max.
Percolation
Degrés de séparation (Estimation)

°Pokémon est une marque déposée de Nintendo.°
°Cet article est destiné à des fins purement pédagogique et ne vise en aucun cas à nuire à la propriété intellectuelle de Nintendo.°

Smooky beacon, géolocalisation à échelle réduite

Il s'agit d'un projet qui a été réalisé lors de ma troisième année à l'**ISEN** en un peu moins de 5 jours, avec 3 autres étudiants. Il consiste en un **système de géolocalisation** de haute précision à **petite échelle** qui vient pallier le manque de précision du GPS. Avec un système d'événements intégré, il devient par exemple possible d'éteindre automatiquement les lumières d'une pièce lorsque celle-ci est vide, d'allumer la télé dès qu'on arrive dans le salon, de localiser son chat dans son appart, ..., etc.

Le système se repose sur des "beacons" (balises) que l'on positionne à des endroits stratégiques. Celles-ci émettent un **signal horodaté** avec une puissance diminuant suivant la distance parcourue. À l'aide d'un appareil adapté, comme un smartphone, il est possible d'estimer la distance à laquelle se trouve la balise nous ayant transmis le signal afin de trianguler sa position, et par extension, déterminer la position de son propriétaire.

Bien que nous ayons utilisé comme support la technologie **Bluetooth**, il est tout à fait envisageable d'en utiliser d'autres, comme le Wi-Fi. En effet, les distances sont estimées à l'aide de leur RSSI. Un calibrage est cependant nécessaire.

Vous pourrez trouver ci-dessous une simulation simplifiée de ce produit.

Notez que le code présent sur cette page ne provient **pas** du code source de Smooky Beacon.
Smooky Beacon n'est pas en licence libre.

B-S01
B-A02
B-E03
B-T04
B-C06
B-A05
B-R07

Laboratoire

Salon

Entrée

Atelier

Salle de réunion

Cuisine

Chambre

Salle de bain

Smooky
B-S010.36
B-A020.75
B-E030.33
B-T040.36
B-A050.50
B-C060.70
B-R070.22
Position0.43
0.22

Le principe fondamental consiste à supposer que l'utilisateur se trouve aux alentours des périmètres des différents disques. Aux croisements de ceux-ci (ou du moins dans la zone qui s'en rapproche) se trouve l'objet ou la personne à géolocaliser.

Ce qui nous a permis d'avoir une meilleure précision repose sur des algorithmes plus complexes, comme par exemple :

  • **Lissage de la position** : Échantillonnage de la position sur un intervalle de temps permettant de réduire les variations dues aux imperfections de réceptions
  • **Cartographie avancée** : Prendre en compte le mappage de la carte en prenant en compte que l'utilisateur ne peut °(normalement)° pas passer à travers les murs
  • **Repérer les signaux douteux ** : Il peut arriver que les signaux soient perturbés, incohérent voire mêmes coupés pendant un cours laps de temps, ce qui peut entraîner des erreurs de calcul si l'on n'effectue pas de traitement particulier

Kiwi, le porte-clé connecté

Il s'agit d'un projet d'**électronique** qui a été réalisé lors de ma troisième année à l'**ISEN**, dont la seule contrainte était d'utiliser la technologie **LoRa**, commandée par des microcontrôleurs de la gamme **PIC18** de chez **Microchip**.

Le produit consiste en deux parties, la base et le porte-clés, qui fonctionnent en synergie. La base est prévue pour rester chez vous, et permet de garder une trace de vos activités quotidienne, permet de déclencher le mode recherche du porte-clé et permet également de le configurer. Le porte-clés est destiné à vous accompagner tout au long de vos journées.

Notre équipe était composée de 5 personnes.
J'ai majoritairement travaillé sur la partie logicielle du porte-clé (assembleur, fonctionnalités, liaisons matérielles avec les protocoles I²C et SPI, etc.) et réalisé le prototype sur plaquette du porte-clé °(voir ci-dessous)°.

Voici une liste non exhaustive des caractéristiques de ce produit :

  • **Podomètre** : Un accéléromètre permet de détecter les variations de mouvements pour compter les pas.
  • **Lampe-torche** : A l'aide de deux LEDs de puissance, il est possible de faire un appui court sur le bouton pour les allumer/éteindre.
  • **Sans-fil** : Grâce à la technologie LoRa, la base et le porte-clé peuvent communiquer facilement. Un appui long sur le bouton permet de synchroniser les données entre les deux modules.
  • **Mode recherche** : Un buzzer piézo-électrique reproduit le doux cri du kiwi, en plus de faire clignoter les LEDs. Cela permet de retrouver ses clés en toute simplicité, et est également adapté aux personnes malentendantes ou malvoyantes.
  • **Estimation de distance** : La base peut estimer la distance qui la sépare du porte-clé en mesurant le RSSI de signaux horodatés envoyés par le porte-clé.
  • **Autonome** : L'intégralité du système fonctionne sous basse tension °(3V)° et possède une forte autonomie °(à condition de ne pas abuser des LEDs)°.