<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
		<id>https://projets-ima.plil.fr/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Amoreau</id>
		<title>Wiki de Projets IMA - Contributions de l’utilisateur [fr]</title>
		<link rel="self" type="application/atom+xml" href="https://projets-ima.plil.fr/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Amoreau"/>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php/Sp%C3%A9cial:Contributions/Amoreau"/>
		<updated>2026-05-14T09:44:52Z</updated>
		<subtitle>Contributions de l’utilisateur</subtitle>
		<generator>MediaWiki 1.29.2</generator>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=76043</id>
		<title>IMA4 2018/2019 P70</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=76043"/>
				<updated>2019-05-10T10:48:44Z</updated>
		
		<summary type="html">&lt;p&gt;Amoreau : /* Feuille d'heures */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;font-size: 30px; width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;Impact du matériel et du logiciel sur le champ électromagnétique&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Projet'''&amp;lt;/ins&amp;gt; : Impact du matériel et du logiciel sur le rayonnement électromagnétique&lt;br /&gt;
&lt;br /&gt;
''Nous proposons d'évaluer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et la consommation électrique.''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Etudiants'''&amp;lt;/ins&amp;gt; : Souheib KHINACHE et Antoine MOREAU&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Encadrants'''&amp;lt;/ins&amp;gt; : Alexandre BOE, Xavier REDON et Thomas VANTROYS&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'internet des objets est un marché en plein essor. La communication entre les différents objets connectés crée un nuage de signaux autour d'eux. Ces derniers sont vus par les utilisateurs comme des boîtes noires : le fonctionnement se fait sans en connaître les composants matériels et logiciels. &lt;br /&gt;
Néanmoins, ces objets, de par leurs propriétés électroniques, créent des fuites électromagnétiques impactant le champ environnant. &lt;br /&gt;
&lt;br /&gt;
Bien qu'ils peuvent porter à débat sur l'impact sur la santé, ces signaux peuvent représenter de réelles sources d'informations sur l'aspect matériel et applicatif de l'objet.&lt;br /&gt;
&lt;br /&gt;
Il serait donc intéressant d'avoir idée générale sur le fonctionnement du système en interprétant les ondes électromagnétiques émises par ce système.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Les principaux objectifs de ce projet seront donc de mesurer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et sur la consommation électrique.&lt;br /&gt;
Pour cela, l'outil potentiel avec lequel nous pourrions travailler serait une sonde de champ électromagnétique afin d'établir des mesures. &lt;br /&gt;
Cependant, nous pourrions concevoir notre propre système de capture et d'interprétation à partir d'une antenne, de filtres de fréquences et d'un microcontrôleur (on commencera par un ATMega328P). Il sera nécessaire de prendre en compte les perturbations issues de notre appareil de mesure et d'en tenir compte.&lt;br /&gt;
&lt;br /&gt;
On effectuera ainsi plusieurs expérimentations sur différents supports d'étude :&lt;br /&gt;
*l'aspect &amp;quot;Hardware&amp;quot; en étudiant différents modèles pour un même type de shield  &lt;br /&gt;
*l'aspect calculatoire du matériel en se basant sur l'impact des microcontrôleurs en fonction du modèle (ATMega328P et ATMega2560)&lt;br /&gt;
*l'aspect &amp;quot;Software&amp;quot;, en étudiant l'impact du logiciel et du firmware d'un même composant (différents firmwares pour un même shield Wi-Fi)&lt;br /&gt;
*l'aspect puissance des composants électroniques de gestion de puissance (ponts, hacheurs, onduleurs...).&lt;br /&gt;
&lt;br /&gt;
L'étude des différentes informations se fera par traitement des signaux électromagnétiques et des spectres. &lt;br /&gt;
Afin de mieux appréhender le problème, il nous est nécessaire de comprendre les phénomènes physiques issus de la notion d'électromagnétisme.&lt;br /&gt;
&lt;br /&gt;
Ces études mèneront à une étape plus complexe : l'interprétation des signaux. En effet, l'un des objectifs de ce projet est de comprendre du mieux possible le fonctionnement d'un système sans y avoir accès directement, et donc dans ce contexte &amp;quot;traduire&amp;quot; un ensemble de signaux électromagnétiques.&lt;br /&gt;
&lt;br /&gt;
On pourra en outre apporter un aspect visuel à l'étude en rajoutant une interface informatique.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
Bien qu'aux yeux de nombreuses personnes le bruit électromagnétique créé par les équipements électroniques du quotidien peut porter à controverse (débats concernant l'impact sur la santé par exemple), il peut être une source d'informations. &lt;br /&gt;
De nos jours, les ondes électromagnétiques restent un vaste champ d'étude, sujettes à de nombreuses thèses et recherches au sein des laboratoires.&lt;br /&gt;
&lt;br /&gt;
On peut prendre l'exemple de [https://www.eurekalert.org/pub_releases/2015-01/giot-rwt010715.php Milos Prvulovic], professeur à l'Institut Technologique de Géorgie, ayant simulé un contexte de cybercafé, dans lequel il place une antenne magnétique, un ordinateur portable cible et un ordinateur &amp;quot;espion&amp;quot;. Il réussit, grâce aux signaux EM émis par l'impulsion de l'appui des touches clavier à capter un message écrit par un ordinateur cible. &lt;br /&gt;
&lt;br /&gt;
Néanmoins, dans le quotidien, l'utilisation des sondes électromagnétiques se fait pour l'étude énergétique d'un système électronique (fuites électromagnétiques anormales, preuves d'une anomalie...) afin de respecter certaines normes législatives. Le code du travail par exemple réglemente et définit des valeurs seuils par le biais des articles R. 4453-3 et R. 4453-4.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
'''NBM-520 de NARDA STS'''&lt;br /&gt;
[[Fichier: NBM_TS.png|thumb|300px|NBM-TS, application des appareils NBM]]&lt;br /&gt;
NARDA STS est une entreprise qui fournit des outils de mesure. Elle met à disposition aux professionnels des sondes électromagnétiques.&lt;br /&gt;
La NBM-520 est un appareil de la franchise, mesurant le champ électrique et magnétique. Elle donne des valeurs précises du champ électromagnétique ambiant sur une large bande. Elle propose différentes sondes modulables permettant une souplesse au niveau de l'étude en fonction des besoins, avec des sondes pouvant étudier des signaux de fréquence de 100kHz à 6GHz ou même de 300kHz à 50GHz (en fonction de la sonde choisie).&lt;br /&gt;
&lt;br /&gt;
En outre, le dispositif peut se connecter en USB sur PC afin d'envoyer les données capturées et d'en faire une étude. Le dispositif propose un logiciel d'étude, NBM-TS, permettant d'observer du champ en fonction du temps, de la fréquence, de la position...&lt;br /&gt;
&lt;br /&gt;
L'équipement est utilisé par l'ANF (l'Agence Nationale des Fréquences, agence gérant l'ensemble des normes autour des radiofréquences), et est donc un gage de qualité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Avantages :''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Large bande de fréquence&lt;br /&gt;
* Matériel solide&lt;br /&gt;
* Application fonctionnelle permettant l'étude et gestion des données&lt;br /&gt;
* Possibilité d'étudier séparément champ électrique et magnétique&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Inconvénients:''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Impossible d'étudier les basses fréquences (appareils sous tension, bobinages...)&lt;br /&gt;
* Prix élevé : à partir de 3100€&lt;br /&gt;
* La cible de ce produit est surtout les professionels&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
'''Une pita.'''&lt;br /&gt;
&lt;br /&gt;
''Comment mon pain à pita vole ta clé RSA ?''&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Pita.jpg|200px|thumb|left|Une pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Des chercheurs israéliens ont découvert un moyen de capturer des clés de cryptage RSA, réputées comme inviolables, par le biais d'une pita... du moins avec un dispositif suffisamment petit pour être caché dans un pain à pita. &lt;br /&gt;
Le dispositif, renommé PITA pour Portable Instrument for Trace Acquisition a la particularité de capturer les ondes radio électromagnétiques émanantes d'un PC, qu'il soit connecté à un réseau ou pas.&lt;br /&gt;
Les différentes opérations du processeur sont identifiées en distinguant les différents modèles de l'activité radio sur le spectre EM.&lt;br /&gt;
&lt;br /&gt;
Bien que la capture des clés RSA a été faite dans des conditions particulières (modification du processeur de l'ordinateur cible), il est néanmoins possible, selon les chercheurs, d'identifier quelle type d'activité est exercée par l'ordinateur ainsi que son état.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PITA.jpg|300px|thumb|right|Un dessous de pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'un des points importants concernant le dispositif est son coût : moins de 300 euros.&lt;br /&gt;
L'appareil dispose :&lt;br /&gt;
* d'un PC portatif (PC-on-a-stick) ''Rikomagic MK802 IV'',&lt;br /&gt;
* d'un recepteur radio SDR ''FUNcube Dongle Pro+''&lt;br /&gt;
* d'une antenne radio&lt;br /&gt;
* d'une batterie&lt;br /&gt;
* d'une antenne WiFi&lt;br /&gt;
* d'une carte MicroSD&lt;br /&gt;
* d'un adapteur d'antenne&lt;br /&gt;
* et d'une '''pita'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le dispositif aurait une portée de 50cm. &lt;br /&gt;
Les chercheurs israéliens ont collaboré avec GNU Private Guard (logiciel de cryptage asymétrique) afin de protéger contre ces attaques les clés de cryptage.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
&lt;br /&gt;
''Scénario 1''&lt;br /&gt;
&lt;br /&gt;
Gérard a toujours le flair pour les bonnes affaires. Il a acheté une centaine de clés WiFi à un prix dérisoire sur AloXpresso afin de faire du profit à la revente. Le vendeur lui garantit que toutes les clés fonctionnent correctement. Gérard veut vérifier. Après vérification, 99 des clés sur 100 fonctionnent comme prévu. Gérard aimerait être sûr du disfonctionnement, mais Gérard n'est pas une pointure en informatique. &lt;br /&gt;
&lt;br /&gt;
Coup de génie ! Il se rappelle qu'il dispose d'un dispositif qui capte les ondes EM et les interprète directement. C'est le moment de tester ça. Il remarque une anomalie sur le spectre.&lt;br /&gt;
Il décide de contacter le revendeur pour lui signaler un disfonctionnement sur l'une des clé. &lt;br /&gt;
Pas de soucis. Le vendeur, étant bon prince, lui envoie une autre clé USB et lui fait une ristourne.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Scénario 2''&lt;br /&gt;
&lt;br /&gt;
La police fait une perquisition chez un individu soupçonné de graves délits. Cela fait plusieurs mois que la brigade criminelle prépare l'intervention, et une fois sur les lieux ils arrêtent le soupçonné malfaiteur.&lt;br /&gt;
Cependant avant de repartir, elle veut faire l'acquisition d'un maximum de preuves. Elle veut alors prendre l'essentiel des objets, dont certains objets éléctroniques connectés de l'individu dont elle pourra extraire les informations qui serviront à le faire tomber.&lt;br /&gt;
&lt;br /&gt;
Par chance, elle dispose d'un petit outil qui scannera les signatures alentours des objets connectés, comme des téléphones cachés, clés USB wifi dissimulées dans le décor etc..&lt;br /&gt;
Et si le suspect avait modifié malignement un objet connecté banal pour l'utiliser autrement à ses fins, la police le découvrirait car elle possède une base de données de toutes les signatures spectrales des objets connectés sur le marché et celle de l'objet modifié ne collerait pas avec celle de la base de données.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
&lt;br /&gt;
'''Comment étudier les signaux malgré les perturbations électromagnétiques ambiants et les faibles signaux des µC ?'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les signaux électromagnétiques des microcontrôleurs ou d'autres composants peuvent être faibles. Il y a une possibilité pour palier à ce problème, c'est de capter les signaux depuis une antenne émettrice que l'on rajoute à l'objet d'étude. &lt;br /&gt;
Nous utiliserons un SDR (Software Defined-Radio) afin de capter les ondes radio et les étudier directement sur PC. Le filtrage s'effectuera ainsi de manière numérique. Plusieurs tests seront effectués pour le même objet à étudier (quand on parle d'objet, on évoque un ensemble de plusieurs composants, comme par exemple une alimentation, un micro-contrôleur et une antenne). Ainsi, de manière statistique, nous pourrons en déduire un pattern récurrent pour chaque expérience en les effectuant dans différents environnements (pourquoi pas une chambre anachoïque). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons &lt;br /&gt;
* Capter le signal émis par un objet connecté le plus précisément possible&lt;br /&gt;
&lt;br /&gt;
* Concevoir nos propres objets connectés tous différents mais basés sur un même modèle&lt;br /&gt;
&lt;br /&gt;
* Interpréter les spectrogrammes, faire une étude statistique des signaux émis par nos différents objets et en tirer des conclusions&lt;br /&gt;
&lt;br /&gt;
* Répertorier dans une base de données les signatures de nos objets , voire de quelques objets disponibles sur le marché&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix logiciel :&lt;br /&gt;
&lt;br /&gt;
- La distribution Linux Pentoo ou Kali pour traiter les signaux avec GNU RADIO (Suite logicielle dédiée à l’implémentation de radios logicielles et de systèmes de traitement du signal).&lt;br /&gt;
&lt;br /&gt;
- FemtoOS pour l'OS des ATMEGA328P et ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix Matériel : &lt;br /&gt;
&lt;br /&gt;
- Plusieurs modules radios émetteurs &lt;br /&gt;
&lt;br /&gt;
- Plusieurs microcontrôleurs ATMEGA328P et un ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
- Des alimentations identiques pour chaque PCB&lt;br /&gt;
&lt;br /&gt;
- Un HackRF pour la réception des signaux&lt;br /&gt;
&lt;br /&gt;
- Une antenne 50 Ohm pour le HackRF [https://www.passion-radio.fr/accessoires-sdr/antenne-ant500-74.html]&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous devons préparer tout le matériel qui servira à faire nos tests. C'est à dire concevoir :&lt;br /&gt;
&lt;br /&gt;
- Un ensemble SDR/PC qui traitera le signal reçu avec GNU RADIO.&lt;br /&gt;
&lt;br /&gt;
- Une multitude de PCB qui seront utilisés comme objets connectés (Sur chacun d'entre eux on trouvera au minimum une antenne radio, un microcontrôleur et une alimentation)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de récupérer une &amp;quot;signature&amp;quot; d'un de nos objets , il faudra faire plus de 50 analyses spectrales pour conclure statistiquement sur une bonne signature qui caractérisera l'objet.&lt;br /&gt;
&lt;br /&gt;
Nous devons donc dans un second temps: &lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques mais qui ont un '''firmware''' différent.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques qui ont pour seule différence le '''microcontrôleur'''.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques dont seul le '''PCB''' diffère.&lt;br /&gt;
&lt;br /&gt;
Grâce à tous ces tests , nous pourrons conclure et voir l'impact qu'à le matériel ou le logiciel sur la signature d'un objet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enfin si les délais nous le permettent, nous pourrons réaliser un software qui cartographiera nos objets connectés dans la pièce grâce à la puissance de la signature reçue (Ce qui devrait être réalisable puisqu'à ce stade nous aurons une base de donnée des signatures).&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Heures S11 !! Heures S12 !! Heures S13+ !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
|3&lt;br /&gt;
|8&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Recherches&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|6&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|4&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Prise en main de GnuRadio&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Configuration Xbee&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Préparation expérimentale (écriture de codes et scripts...) &lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Expériences&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|5&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Etude et interprétation des résultats&lt;br /&gt;
|3&lt;br /&gt;
|8&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|4&lt;br /&gt;
|15&lt;br /&gt;
|9&lt;br /&gt;
|8&lt;br /&gt;
|7&lt;br /&gt;
|8&lt;br /&gt;
|8&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
A partir de la semaine 10/11, nous n'avions plus trop de notions du temps passé sur notre projet. Nous préférons être honnête et ne rien mettre plutôt que de mettre de fausses heures !&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
[[Fichier:HackrfOne.jpeg|200px|thumb|right|Le HackRF One]]&lt;br /&gt;
Durant cette semaine, nous avons continué nos recherches notamment sur le moyen de transmission de nos objets connectés. Nous avons confirmé notre choix de notre SDR : Monsieur Boé nous a confirmé que des HackRF seraient disponibles dans les laboratoires et qu'il pourrait nous en prêter un. On disposera donc d'une antenne puissante pour traiter les signaux émis par nos objets communiquants. &lt;br /&gt;
&lt;br /&gt;
Il faudra coupler notre HackRF avec un logiciel appelé GNU RADIO qui est un logiciel très complet ( Pour information : la NASA a utilisé GNU RADIO afin de rétablir le contact avec une sonde spatiale abandonnée ). Afin de faire tourner ce logiciel libre, nous aurons besoin de la distribution Kali Linux, ex Backtrack.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Choix des émetteurs/récepteurs === &lt;br /&gt;
&lt;br /&gt;
Nous avons décidé que nos objets connectés communiqueront dans deux '''bandes de fréquences ISM''', l'une à '''900 MHz''' grâce à des modules Digi Xbee et l'autre à '''2,4 GHz''' par le moyen de modules émetteurs Bluetooth. On rappellera que les Digi Xbee et les émetteurs/récepteurs Bluetooth seront pilotés par des ATMEGA 2560.&lt;br /&gt;
&lt;br /&gt;
Les Xbee ne communiqueront pas entre eux et émettront en continu les mêmes données car ils le peuvent, alors que les émetteurs/récepteurs Bluetooth devront s'échanger des données si on veut pouvoir observer un quelconque signal autour de la fréquence de leurs porteuses. &lt;br /&gt;
&lt;br /&gt;
On voudra observer premièrement, si avec deux objets dans les '''mêmes''' conditions (donc même µc et même émetteur), on peut ou non '''distinguer une différence'''. Ceci est fondamental pour la suite des expériences, puisque si les deux émettent à la même fréquence, on pourra faire varier plusieurs paramètres afin de trouver '''des clés''' (des signes) qui pourraient aider à l'identification du matériel.&lt;br /&gt;
&lt;br /&gt;
Ces clés représentent différents facteurs potentiels d'identification du signal (le rapport signal-bruit en fonction de la distance par exemple...).&lt;br /&gt;
&lt;br /&gt;
''On planifie alors pour la semaine suivante de réussir à faire émettre, en utilisant simplement des breadboards pour commencer, nos Xbee et modules BT et observer quelque chose grâce à notre SDR.''&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration des modules XBee ===&lt;br /&gt;
&lt;br /&gt;
Nous avons configuré deux XBee afin qu'ils puissent communiquer entre eux : &lt;br /&gt;
&lt;br /&gt;
Les modules XBee ont été montés sur des platines d'interface USB/série de manière à ce qu'on puisse les paramétrer via le programme de contrôle ''minicom''. &lt;br /&gt;
&lt;br /&gt;
Dans le doute, on supposera que les XBee communiquent à 9600 Baud. On exécute la commande suivante : &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;minicom -b 9600 -D /dev/ttyUSB0&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
On active l'echo local dans minicom, afin de pouvoir observer ce qui a été envoyé par liaison série au XBee ('''CTRL+A''' puis '''E''').&lt;br /&gt;
&lt;br /&gt;
Pour commencer le paramètrage il faut taper ''' +++ ''' rapidement. Le XBee nous répond OK, cela veut dire que nous sommes dans le mode configuration et que nous pouvons utiliser les commandes '''AT'''. (Redirection vers la liste des commandes AT XBee [https://cdn.sparkfun.com/assets/resources/2/9/22AT_Commands.pdf]).&lt;br /&gt;
&lt;br /&gt;
Comme nos XBee ont été utilisés auparavant, il a fallu les restaurer à l'état usine avec la commande '''ATRE'''.&lt;br /&gt;
&lt;br /&gt;
Si on souhaite que des XBee puissent s'envoyer des données il faut qu'ils soient sur le même canal (commande '''ATCH''') et aient le même PAN ID (commande '''ATID'''). Notre PAN ID sera '''BEE6''' et le canal sera celui par défaut '''C'''.&lt;br /&gt;
&lt;br /&gt;
Ensuite il faut leur donner une adresse de destination ('''ATDH''' &amp;amp; '''ATDL''') qui sera l'adresse broadcast, pour ce faire on entre &lt;br /&gt;
 ATDH=0000&lt;br /&gt;
 ATDL=FFFF&lt;br /&gt;
&lt;br /&gt;
Enfin '''ATMY''' représente l'ID du XBee, notre premier XBee aura comme ID 5000 et le second 5001.&lt;br /&gt;
&lt;br /&gt;
N'oublions pas de sauvegarder les paramètres avec '''ATWR'''.&lt;br /&gt;
&lt;br /&gt;
On vérifie que tout a bien été pris en compte :&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;&lt;br /&gt;
+++OK&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATID&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
BEE6&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
C&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
0&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDL&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
FFFF&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATMY&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
5000&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCN&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Puis on fait de même avec le deuxième XBee (ID 5001).&lt;br /&gt;
&lt;br /&gt;
Voilà, lorsque on envoie des caractères par liaison série sur 5000, la LED '''Tx''' de 5000 s'allume et la Led '''Rx''' de 5001 s'allume elle aussi. Cela signifie que l'envoi de donnée par onde radio s'effectue correctement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que les XBee émettent et reçoivent, on peut commencer les mesures avec notre SDR. Mais avant cela il va falloir bien se familiariser avec le logiciel GNU RADIO qui est assez difficile à prendre en main.&lt;br /&gt;
&lt;br /&gt;
=== Première prise en main du logiciel GNURADIO ===&lt;br /&gt;
&lt;br /&gt;
Installation de GNU radio avec les fonctions + drivers pour HackRF : &lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install gqrx-sdr gnuradio gr-osmosdr hackrf &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le bloc Osmocom Source sert de &amp;quot;passerelle&amp;quot; entre le logiciel et la SDR, il permet de transmettre les informations récupérées par le HackRF afin qu'on puisse les traiter avec d'autres bloc de fonctions.&lt;br /&gt;
&lt;br /&gt;
Si on veut pouvoir récuperer les données il faut passer l'argument ''hackrf=0'' dans la box périphérique du bloc Osmocom.&lt;br /&gt;
&lt;br /&gt;
Ci-dessous on peut voir le spectre environnant entre 2.44GHz et 2.460GHz grâce au bloc WX GUI FFT Sink.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ScreenGnuRadio.png|Interface de GNURadio]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
===Premières observations===&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous a permis d'effectuer notre première expérience. L'utilisation des deux Xbees nous a permis d'observer l'impact des Xbee sur le champ électromagéntique environnant.&lt;br /&gt;
&lt;br /&gt;
Si on analyse le spectre environnant grâce au module FFT de GNU Radio, lorsque les Xbee communiquent entre eux, on peut apercevoir un pic caractéristique propre.&lt;br /&gt;
En effet, lors de l'emission d'un message sur le port série, on a un pic qui se dégage du spectre d'amplitude -20dBm. Ce pic est caractéristique au canal de communication choisi et configuré sur le Xbee.&lt;br /&gt;
Néanmoins, le signal est perturbé par le bruit environnant. &lt;br /&gt;
L'expérience étant effectuée au sein de l'école, les signaux Wi-Fi perturberont l'étude.&lt;br /&gt;
Il faut noter que la norme IEEE 802.11 impose au Wi-Fi l'utilisation d'une bande passante s'étalant de 2.4 GHz à 2.5 GHz.&lt;br /&gt;
&lt;br /&gt;
La bande passante des modules Zigbee se décomposent en 16 canaux, allant de 2400 MHz à 2480 MHz par pas de 5 MHz.&lt;br /&gt;
&lt;br /&gt;
Le canal ici utilisé est le canal 13 (3ème canal) de fréquence 2415 MHz.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[Fichier:Channel135001.png|thumb|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Fichier:channel135000.png|thumb|none|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBeeCh13.png|Spectre de l'environnement autour du XBee|thumb|none|400 px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBeeCh13SND.png|Lors de l'envoi de données au XBee voisin|thumb|none|400 px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut observer un pic de puissance lors de l'envoi d'une donnée en série à la fréquence 2.415 GHz.&lt;br /&gt;
Il nous est maintenant nécessaire d'analyser de plus près les signaux et leurs fréquence centrale dans la bande perçue au dessus de -20dB.&lt;br /&gt;
&lt;br /&gt;
On réeffectuera une expérience en zone isolée des signaux parasites.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous avons principalement fait des recherches dans le but de mieux comprendre les signaux émis par le Xbee.&lt;br /&gt;
&lt;br /&gt;
En somme, nous étions confrontés à de nombreuses interrogations. Le fonctionnement du Xbee étant assez simple et la sécurité du protocole Zigbee étant moindre, y a t-il possibilité de démoduler le signal émis afin de développer nos études ?&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
[[Fichier:Switchchannel pyscript.PNG|upright=0.8|thumb|right|Script Python]]&lt;br /&gt;
&lt;br /&gt;
Après réflexion et consultation de nos encadrants, nous nous sommes rendu compte que la démodulation prévue lors de la semaine 4 n'aiderait pas à répondre à la problématique de notre sujet !  &lt;br /&gt;
&lt;br /&gt;
Afin de mieux visualiser les signaux des Xbee , on décide d'automatiser le processus d'envoi sur le port série des données vers le Xbee. C'est à dire concevoir un programme Python qui automatisera l'envoi de données et le changement de channel à intervalle de temps régulier (Changement toutes les 10 secondes). &lt;br /&gt;
&lt;br /&gt;
L'utilisation de Minicom '''n'était pas du tout la meilleure solution''' pour faire émettre les Xbee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Après quelques essais, on remarque que lorsque le Xbee émet sur le channel 13, il émet à environ 2,445GHz au lieu d'émettre à 2,415GHz soit une différence de 30MHz : Ceci n'est pas important, car ce que l'on souhaite remarquer c'est un éventuel décalage de la fréquence centrale entre deux Xbee différents. Si les deux Xbee n'ont pas la même frequence centrale on pourra conclure que la '''fréquence centrale''' de la porteuse du Xbee n'est pas '''une des clés''' permettant d''''identifier''' cet émetteur/récepteur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaines 6 et 7==&lt;br /&gt;
&lt;br /&gt;
Afin de mieux cerner le comportement électromagnétique des modules XBee, il nous est nécessaire de comprendre leur fonctionnement et le protocole Zigbee.&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous avons cherché à souligner le parallélisme entre étude fréquentielle par le spectre et étude temporelle du signal.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PlancheXPtest.jpg|thumb|right|Planche prototype]]&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous avons paramétré la fréquence centrale de capture du HackRF. En effet, bien que le HackRF dispose d'une large bande passante, afin de se focaliser sur la porteuse, il est indispensable de configurer le HackRF en conséquence.&lt;br /&gt;
En second lieu, pour éviter une variation du RSSI (Received Signal Strength Indication) et de la puissance du signal, nous devions mettre en place une prototype de &amp;quot;planche expérimentale&amp;quot; sur laquelle devaient être fixés nos différents modules (l'antenne de reception et les Xbees).&lt;br /&gt;
&lt;br /&gt;
La position des antennes les unes par rapport aux autres est fondamentale. Afin d'optimiser la reception, les antennes doivent être parallèles.&lt;br /&gt;
&lt;br /&gt;
Chaque Xbee est identifié par un chiffre (1 ou 2). En effet, l'attribution de ces chiffres sera définitive pour ne pas perturber la cohérence des expériences. &lt;br /&gt;
Leur position est aussi fondamentale. Ainsi, en fonction que le Xbee soit emetteur ou récepteur, il sera disposé différement sur la planche.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Expérience : Le XBee 1 émetteur directement connecté en série au PC===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:GrapheGNURadio01.png|thumb|left|150px|Schéma simple d'étude fréquentielle et temporelle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette expérience est la première mettant en place un contexte (un seul Xbee émetteur connecté en série au PC, le deuxième Xbee étant inactif) et nous permettra d'étudier le plus de cas possibles.&lt;br /&gt;
&lt;br /&gt;
Nous avons tout d'abord commencé par un graphe GNURadio simple permettant l'observation du spectre et du signal et la variation de la fréquence d'étude.&lt;br /&gt;
&lt;br /&gt;
Le script python a été réécrit afin que le XBee puisse émettre une chaîne de caractère &amp;quot;HELLO&amp;quot; * 1024. En effet, même si la fréquence de balayage du module HackRF peut être grandement augmentée, il faut éviter d'aller au dessous de 0.01s, finissant par consommer de manière considérable les ressources octroyées par le CPU le cas échéant.&lt;br /&gt;
Le fait d'augmenter la taille de la chaine de caractère permet de mieux synchroniser l'étude en temps réel avec la capture des données.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc émis les données sur le canal 20 (14 en hexadécimal), soit la fréquence centrale est à 2.450GHz selon la norme Zigbee. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Etude fréquentielle&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L'étude fréquentielle est similaire à celle réalisée auparavant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div center&amp;gt;&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[Fichier:Spectrefreq2.png|thumb|center|750px|Spectre fréquentiel au canal 14]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[Fichier:Spectrogram.png|thumb|center|250px|Spectrogramme]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on peut observer sur l'analyseur de spectre GNURadio que la fréquence centrale est située 2.450GHz.&lt;br /&gt;
&lt;br /&gt;
D'autre part, l'ensemble des fréquences qui dessinent le spectre s'étalent sur une large bande de fréquence. En effet, cette technique d'étalement appelée DSSS (Direct-Sequence Spread Spectrum) utilisé par les modules XBee permet au signal d'être moins sensible aux interférences et aux brouillages. En outre, même si la puissance du spectre dans sa globalité reste la même, la densité spectrale elle diminue considérablement, rendant le signal plus &amp;quot;discret&amp;quot;.&lt;br /&gt;
La différence de puissance entre le lobe principal et les premiers lobes secondaires sont de 30 dB, ce qui est aussi commun au DSSS.&lt;br /&gt;
&lt;br /&gt;
Le spectrogramme témoigne aussi de l'étalement du signal sur un peu plus de 6 MHz (3MHz de par et d'autre de la fréquence centrale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt; Etude temporelle &amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Signal temporel.png|thumb|left|500px|Signal observable centré à 2.450GHz lors de l'émission]]&lt;br /&gt;
&lt;br /&gt;
Le signal ici est séparé en deux composantes car il s'agit d'un signal complexe. Nous avons supposé en premier temps qu'il s'agissait du signal principal décalé de 180°, ce qui n'était pas le cas.&lt;br /&gt;
Après quelques recherches, cette séparation des composantes permet de transmettre deux fois plus de données sur la même bande passante.&lt;br /&gt;
Le signal observable témoigne d'une modulation bien spécifique au XBee. En effet, on peut observer des sauts de phase à différents points, qui correspondent à une modulation par changement de phase (modulation QPSK ou Quadratic Phase-Shift Keying). Ce sont ces sauts de phases qui permettent la transmission des bits.&lt;br /&gt;
Les changements de phase s'il y a se font toutes les µs. En outre, on peut observer un décalage (offset) entre la composante Q et la composante I de µs/2 (propre à la modulation OQPSK).&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé d'enregistrer ces données brutes dans un fichier et nous l'avons étudié avec Audacity, logiciel open-source de son, et donc de signaux ! L'inconvénient avec l'interface graphique QT de GNURadio est son manque de précision lors d'un dézoom sur le signal en temps réel. Audacity permet de palier à celà !&lt;br /&gt;
En outre, on peut voir que les paquets Xbee sont reconnaissables. En effet, le signal témoigne de la taille du paquet XBee.&lt;br /&gt;
&lt;br /&gt;
Le paquet XBee est constitué d'un premier header (header physique) de 6 octets :&lt;br /&gt;
- la séquence de préambule (4 octets) constitué de 32 bits à 0&lt;br /&gt;
&lt;br /&gt;
- l'indice de début du paquet fixé à 0x7A (1 octet)&lt;br /&gt;
&lt;br /&gt;
- la longueur du paquet (1 octet);&lt;br /&gt;
&lt;br /&gt;
d'un header MAC (7 à 27 octets en fonction des informations de l'adresse), d'un bloc FCS de fin de paquet (2 octets) et l'ensemble des données (de 1 à 104 octets).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Signal2.png|thumb|right|400px|On observe graphiquement qu'un paquet est transmis en 3846µs]]&lt;br /&gt;
[[Fichier:PacketXBee.png|400px|thumb|right|Paquet XBee]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Comme dit plus haut, les signaux émis par le XBee connaissent un étalement sur le spectre par DSSS.&lt;br /&gt;
Cet étalement s'effectue en divisant chaque symbole (correspondant à une série de 4 bits) transmis en &amp;lt;B&amp;gt;&amp;lt;I&amp;gt;chips&amp;lt;/I&amp;gt;&amp;lt;/B&amp;gt;.&lt;br /&gt;
Chaque symbole, soit 4 bits, correspond à 32 chips, et donc 32 états binaires (1 octet correspond à 64 chips).&lt;br /&gt;
Dans le cas de la norme ZigBee, la transmission de chacun des chips est synchronisé sur chaque µs (1 chip toutes les µs).&lt;br /&gt;
&lt;br /&gt;
Les signaux reçus par l'antenne HackRF étaient deux sinusoïdes modulées en phase et qui s'étalaient sur une période d'environ 3840µs (3846µs graphiquement mais il y a possibilité d'erreur à l'echelle du µs).&lt;br /&gt;
Sachant qu'un octet correspond à 64µs, on a :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;N_{octets} =\frac{2*T_{signal}}{64*T_{chip}}=\frac{2*3.840*10^{-6}}{64*10^{-6}}=120 octets&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'analogie peut être effectuée entre paquet Ethernet et paquet ZigBee. En effet, la taille limite des données d'un paquet est de 104 octets. La chaîne de caractère n'étant qu'envoyée par paquet, le paquet observé n'est que de 120 octets, ce qui est cohérent avec les caractéristiques du XBee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Hello1024secs.png|thumb|none|Temps de transmission de la chaîne de caractères &amp;quot;HELLO&amp;quot; 1024 fois]] &amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:AudacitySignal2.png|thumb|none|51 Paquets XBee portent la chaîne de caractère &amp;quot;HELLO&amp;quot; 1024 fois]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 8==&lt;br /&gt;
&lt;br /&gt;
L'étude des signaux posait réellement problème de par le fait qu'une grande partie de la capture faite n'était que purement le bruit sans signal (utile plus tard pour l'étude du SNR).&lt;br /&gt;
Prenons l'exemple d'un paquet de 21 octets (un paquet contenant une seule chaîne de caractères HELLO). Le signal s'étalerait en théorie sur 21*64 chips soit 672 chips. Sachant que la modulation est une modulation QPSK, on s'étale sur un temps de 672µs.&lt;br /&gt;
En effet, le Xbee transmet toutes les 100ms.&lt;br /&gt;
Donc qu'une partie du signal nous est utile.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décider d'écrire un script qui nous permettrait d'étudier le signal dans de meilleures conditions, et donc de le filtrer.&lt;br /&gt;
&lt;br /&gt;
Chaque capture de signal effectuée est enregistrée dans un fichier par le biais du bloc fonction &amp;lt;B&amp;gt;&amp;lt;I&amp;gt;File Sink&amp;lt;/I&amp;gt;&amp;lt;/B&amp;gt; du compagnon GNURadio. Néanmoins, les fichiers obtenus sont des fichiers binaires assez lourds (environ 500Mo pour une capture de 3s), ce qui est un réel problème et qui implique le filtrage du signal.&lt;br /&gt;
&lt;br /&gt;
La bibliothèque numpy pour python nous permet en outre directement d'importer les échantillons des signaux, les traduisant du binaire à un format cible (complexe flottant 64 bits) dans un Array par le biais de la fonction:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; f = scipy.fromfile(open(&amp;quot;Nom du fichier&amp;quot;), dtype=scipy.complex64) &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La première solution pour réduire ce signal était d'imposer un threshold directement sur le signal, supérieur au bruit, mais qui conduirait à une perte d'une partie du signal à étudier.&lt;br /&gt;
La deuxième solution qui a été retenue était tout simplement de calculer l'amplitude et la phase du signal et appliquer ce même threshold à l'amplitude.&lt;br /&gt;
&lt;br /&gt;
== Semaine 9 et 10==&lt;br /&gt;
&lt;br /&gt;
A partir de la semaine 10 nous avons procéder aux expériences pour avoir suffisamment de données et en tirer des conclusions.&lt;br /&gt;
&lt;br /&gt;
Lorsqu'on fait une acquisition d'un signal xbee , on peut maintenant via un script traiter cette acquisition et récupérer seulement les parties qui nous intéressent : A savoir la partie réelle et la partie imaginaire, l'amplitude du signal et enfin la phase du signal.&lt;br /&gt;
&lt;br /&gt;
Exemple ci dessous après acquisition + traitement de notre xbee n°2 :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Traitement xbee2.png|thumb|right|redresse=2|Signal Xbee2 post-traitement ]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Constellation xbee2.png|thumb|right|redresse=2|Diagramme de constellation xbee2 après utilisation de LightSignal]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'utilisation du script LightSignal permet de retirer toutes les phases en dehors du signal. Ainsi, on peut caractériser le diagramme de constellation comme un diagramme propre à la modulation QPSK. &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
import scipy&lt;br /&gt;
import numpy&lt;br /&gt;
import sys&lt;br /&gt;
&lt;br /&gt;
def binToComplex64(name):&lt;br /&gt;
    threshold=0.10&lt;br /&gt;
    tmp=scipy.fromfile(open(name+&amp;quot;_PhaseMeg&amp;quot;), dtype=scipy.complex64)&lt;br /&gt;
    tmp2=scipy.fromfile(open(name), dtype=scipy.complex64)&lt;br /&gt;
    &lt;br /&gt;
    f2 = open(name+&amp;quot;_filtre&amp;quot;, &amp;quot;w+&amp;quot;) &lt;br /&gt;
    f = open(name+&amp;quot;_PhaseMeg_filtre&amp;quot;,&amp;quot;w+&amp;quot;)&lt;br /&gt;
    &lt;br /&gt;
    p=1&lt;br /&gt;
    size=tmp.__len__()&lt;br /&gt;
    size2=tmp2.__len__()&lt;br /&gt;
    &lt;br /&gt;
    if size &amp;gt; size2:&lt;br /&gt;
        size=size2&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    ground=False&lt;br /&gt;
    newListSignal=[]&lt;br /&gt;
    newListMagnPh=[]&lt;br /&gt;
    for val in range(0,size): &lt;br /&gt;
        if(val&amp;gt;=(size/100)*p):&lt;br /&gt;
            print(str(p)+&amp;quot; %&amp;quot;)&lt;br /&gt;
            p=p+1&lt;br /&gt;
        if(tmp[val].real&amp;gt;threshold):&lt;br /&gt;
            if(ground==True):&lt;br /&gt;
                for i in range(0,1000):&lt;br /&gt;
                    newListSignal.append(numpy.complex64(0))&lt;br /&gt;
                    newListMagnPh.append(numpy.complex64(0))&lt;br /&gt;
                ground=False&lt;br /&gt;
            newListSignal.append(tmp2[val])&lt;br /&gt;
            newListMagnPh.append(numpy.complex64(tmp[val].real+tmp[val].imag*0.3j))&lt;br /&gt;
        else:&lt;br /&gt;
            ground=True&lt;br /&gt;
    &lt;br /&gt;
    tmp=numpy.asarray(newListMagnPh)&lt;br /&gt;
    tmp.tofile(f)&lt;br /&gt;
    tmp2=numpy.asarray(newListSignal) &lt;br /&gt;
    tmp2.tofile(f2)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    try:&lt;br /&gt;
        binToComplex64(sys.argv[1])&lt;br /&gt;
    except IndexError:&lt;br /&gt;
        print(&amp;quot;Donnez le nom du fichier\n&amp;quot;)&lt;br /&gt;
    except IOError:&lt;br /&gt;
        print(&amp;quot;Le fichier n'existe pas\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__=='__main__':&lt;br /&gt;
    main()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le diagramme de constellation témoigne de nouveau du type de modulation utilisé par le module XBee.&lt;br /&gt;
En effet, on observe quatre points de part et d'autre des axes de quadrature et d'inphase.&lt;br /&gt;
&lt;br /&gt;
==Semaine 11==&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé cette semaine d'étudier, ce qui est selon pour nous, l'une des pistes fondamentales de notre projet, et plus particulièrement de l'étude de nos signaux : le rapport signal bruit.&lt;br /&gt;
&lt;br /&gt;
L'objectif de cette semaine et de celle à venir était, à partir du signal acquis par le hackrf, d'effectuer le calcul du SNR (signal-to-noise ratio) tel que :&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;SNR =\frac{P_{signal}}{P_{bruit}}&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le script python qui nous a permis de communiquer entre les deux shields Xbee se verra amélioré afin de faire plusieurs acquisition des signaux lors de la communication entre les Xbee, effectuer une moyenne statistique, et de même lorsqu'il n'y a pas de communication.&lt;br /&gt;
&lt;br /&gt;
Nous avons essayé d'approcher le SNR directement depuis l'interface de GnuRadio par le biais de l'utilitaire graphique et le langage en bloc, néanmoins nous procéderons à l'étude de ce rapport avec Scilab ou Matlab.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaines supplémentaires==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Expérience : Variation de l'amplitude===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 emet une chaîne de caractères HELLO*256 &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L'objectif de cette expérience est d'étudier le temps de variation de l'amplitude du signal entre l'état où le signal n'est pas reçu et l'état où le signal est réceptionné et donc l'amplitude constante.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats &amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
A 20MHz de fréquence d'echantillonage, le temps de variation moyen est de 3 échantillons, soit 0.15µs, pour toutes les captures faîtes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Conclusion sur l'expérience &amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
L'expérience n'a pas été concluante. Même si elle nous a permis de voir quelques différences (probablement provoquées pas des erreurs de capture et d'analyse), le HackRF nous limite beaucoup sur ce point de vue là. En effet, la fréquence d'échantillonage étant limitée à 20MHz, le HackRF n'est pas suffisamment précis pour capturer un nombre d'échantillons nous permettant de confirmer une quelconque hypothèse. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Code python utilisé pour l'étude du signal&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
def etudeAmplitude(name, liste_temps):&lt;br /&gt;
&lt;br /&gt;
    threshold_0=0.05 # Threshold&lt;br /&gt;
    threshold_1=0.4&lt;br /&gt;
    max_transition_time=50 #O&lt;br /&gt;
&lt;br /&gt;
    amppha=scipy.fromfile(open(name+&amp;quot;_PhaseMeg&amp;quot;), dtype=scipy.complex64) &lt;br /&gt;
&lt;br /&gt;
    p=1&lt;br /&gt;
    size=amppha.__len__()&lt;br /&gt;
    &lt;br /&gt;
    debut=1&lt;br /&gt;
    tps_variation=0 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    transition=False # Vérifie si le signal est en transition ou stable&lt;br /&gt;
&lt;br /&gt;
    for val in range(debut,size):&lt;br /&gt;
        if(val&amp;gt;=((size-debut)/100)*p):&lt;br /&gt;
            print(str(p)+&amp;quot; %&amp;quot;)&lt;br /&gt;
            p=p+1&lt;br /&gt;
&lt;br /&gt;
        if(amppha[val].real&amp;gt;threshold_0 and amppha[val].real&amp;lt;threshold_1): # Phase de transition du signal&lt;br /&gt;
            if(transition==False):&lt;br /&gt;
                transition=True&lt;br /&gt;
            tps_variation=tps_variation+1&lt;br /&gt;
&lt;br /&gt;
        elif(transition==True and amppha[val].real&amp;gt;threshold_1):&lt;br /&gt;
            if(amppha[val].real&amp;gt;=amppha[val-1].real-amppha[val-1].real*0.05 and amppha[val].real&amp;lt;=amppha[val-1].real+amppha[val-1].real*0.05): # L'amplitude du signal est stable&lt;br /&gt;
                if(tps_variation &amp;lt; max_transition_time):&lt;br /&gt;
                    liste_temps.append(tps_variation)&lt;br /&gt;
&lt;br /&gt;
                transition=False&lt;br /&gt;
                tps_variation=0&lt;br /&gt;
            else:&lt;br /&gt;
                tps_variation=tps_variation+1&lt;br /&gt;
        else:&lt;br /&gt;
            transition=False&lt;br /&gt;
            tps_variation=0&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Expérience : Temps de calcul du FCS entre le XBee1 et et le XBee2===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 1&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 et XBee2 sont alimentés sur 5V VCC par USB (connecté à l'ordinateur)&amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 et XBee2 disposent du firmware : 10EF &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 est d'abord emetteur et le XBee2 est recepteur puis inversement. Aucun paquet ACK n'est renvoyé de la part du recepteur &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On transmet la chaine de caractère HELLO 256 fois toutes les 1 secs&lt;br /&gt;
Les données étant assez conséquentes, le Xbee transmet plusieurs fragments du paquet.&lt;br /&gt;
L'objectif de cette expérience est d'étudier le temps entre chaque fragment d'un paquet.&lt;br /&gt;
L’espace de temps entre chacun des paquets permet de calculer le FCS (frame check sequence) afin de minimiser les erreurs de transmission.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:ChecksumGraphe.png|thumb|left|redresse=2|Les différents temps à mesurer]]  &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Néanmoins, l’étude de ces “temps morts” se voit entravée par le fait que le module HackRF ne permette pas d’obtenir un signal clair sur plus de 5 secondes.&lt;br /&gt;
En outre, pour 5 secondes d’étude et pour une fréquence d’échantillonage de 20MHz (soit un temps Te=5.10e8), on compte 100.000.000 d’échantillons.&lt;br /&gt;
Le CPU lors de la capture était grandement sollicité, ce qui explique le fait que la capture soit compromise.&lt;br /&gt;
Pour régler ce problème, on a écrit un script shell de capture.&lt;br /&gt;
Ce script consiste à:&lt;br /&gt;
&amp;lt;br&amp;gt;- effectuer une capture d’une durée de 1 sec&lt;br /&gt;
&amp;lt;br&amp;gt;- d’enregistrer la capture&lt;br /&gt;
&amp;lt;br&amp;gt;- d’effectuer un traitement de ces paquets par un algorithme python en étudiant le temps entre chacun des fragments. Ce temps sera obtenu en nombre d’échantillons, défini avec un seuil d’acceptation absolu entre 150.000 et 300.000 échantillons (pour bien capturer ces temps intermédiaires et pas les temps provoqués par des signaux parasites ou du bruit), et pour affiner l’étude, on impose un seuil d’erreur de +-10% autour de la moyenne. La moyenne est calculée en continue&lt;br /&gt;
&amp;lt;br&amp;gt;- l’ensemble des valeurs obtenues sont enregistrées dans un fichier&lt;br /&gt;
&amp;lt;br&amp;gt;- on réeffectue la capture …&lt;br /&gt;
&lt;br /&gt;
On répète le processus un certains nombre de fois afin d’obtenir un nombre de valeurs nous permettant de nous conforter sur l'issue de l'expérience (environ 1000 valeurs)&lt;br /&gt;
&lt;br /&gt;
La capture et l'étude de chacun des modules dure une à deux heures.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats :&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans le cas du XBee1 (à gauche) et du XBee2 (à droite), voici les résultats obtenus :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Xbee1Graphe256.png|thumb|left|redresse=2|On peut observer des pics caractéristiques à l'envoi]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBee2Graphe256.png|thumb|left|redresse=2|Les mêmes pics caractéristiques confirment un comportement non-aléatoires du module]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
XBee1 : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 259675,81&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 8369.7417&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 70052576.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
XBee2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 258762.58&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 9165.4097&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 84004736.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les graphes présentent le nombre de répétitions des temps de calcul de fragements.&lt;br /&gt;
&lt;br /&gt;
On peut voir des pics spécifiques à certains points dans les deux expériences. Ces pics sont caractéristiques et au module XBee, et à la chaîne de caractère HELLO. Les deux expériences étant effectuées dans le même contexte, &lt;br /&gt;
&lt;br /&gt;
De même que pour le second Xbee, on retrouve des pics bien distincts à certains points.&lt;br /&gt;
&lt;br /&gt;
En outre, on peut voir que ces pics bien distincts se rapprochent de ceux du premier Xbee.&lt;br /&gt;
Néanmoins, même si la moyenne varie que très peu par rapport aux deux Xbee, la variance est assez différente.&lt;br /&gt;
&lt;br /&gt;
Pour confirmer ces observations, il est peut être nécessaire de répéter la même expérimentation sur un nombre d'échantillons plus grand.&lt;br /&gt;
&lt;br /&gt;
Ainsi, afin de confirmer la conjecture, on décide de faire d’autres captures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En superposant les deux graphes (Xbee1 en rouge et Xbee2 en bleu), on peut voir qu'il y a moins de dispersion dans le cas du XBee1, plus centré sur des valeurs précises, contrairement au Xbee2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:XBee1Xbee2Graphe.png|thumb|left|redresse=2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour les deux nouveaux échantillons, on a les caractéristiques suivantes :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Xbee1 sur 1688 échantillons&amp;lt;/U&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 260230.3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 8427.3923&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 71020941&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Xbee2 sur 1722 échantillons&amp;lt;/U&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 259899.41&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 9831.5106&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 96658601&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:SignalAT328.png|thumb|right|Signal observé dans le cas de l'ATMega328p]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 2&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 est connecté à un Arduino ATMega328p par le biais d'un shield Libelium &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 dispose du firmware 10EF &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; On envoie exactement les mêmes données que précédemment, la chaîne de caractères HELLO*256 toutes les 0.5s &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hormis l'amplitude du signal qui paraît plus faible lors de la transmission par ATMega328p, le message transmis ne change PAS. Même si nous avons fait en sorte que la periode de transmission soit la même que pour l'expérience précédente, elle n'affecte en rien l'issue de l'expérience car c'est le temps de division de paquet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:ATMega328.png|thumb|650px|Observation du temps de division d'un paquet dans le cas de l'ATMega328p]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:ATMega2560.png|thumb|650px|Observation du temps de division d'un paquet dans le cas de l'ATMega2560]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour les nouveaux échantillons, on a les caractéristiques suivantes :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Xbee1 sur ATMega328p sur 706 échantillons&amp;lt;/U&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 265818.58&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 4748.5965&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 22549168&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Xbee1 sur ATMega2560 sur 711 échantillons&amp;lt;/U&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 262877.83&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 3675.037&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 13505897&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut observer une distinction significative entre une transmission effectuée directement par la machine et la transmission depuis les modules composés d'un ATMega328p ou d'un ATMega2560. En effet, on n'observe pas les mêmes pics caractéristiques dans cette expérience comparé à l'expérience précédente. Même si la moyenne est quasi la même, l'ecart type est plus faible, ainsi que la variance. En outre, de même que pour l'expérience précédente, l'écart-type entre ATMega328p et ATMega2560 est aussi différent. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 3&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 est dans les mêmes conditions que durant la première expérience &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; On change le firmware du XBee1 pour le 10ED &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:FW10ED.png|thumb|left|400px|Observation du temps de division d'un paquet lors du changement du firmware]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Xbee1 sur 821 échantillons&amp;lt;/U&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 259735.52&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 8501.3996&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 72273796&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Après avoir changé le firmware, on a pu voir que les résultats ne changeaient pas par rapport à l'expérience témoin. On est même très proche des temps du XBee bien que l'expérience ne s'est pas faîte dans les mêmes conditions (pas au même endroit, donc possibilité de perturbations).&lt;br /&gt;
On peut donc en conclure que le firmware n'a pas un impact sur le temps de calcul du FCS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Conclusion de l'expérience&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
L’hypothèse qui est que la variance des temps &amp;quot;morts&amp;quot; entre chaque fragments de paquet, soit le temps de calcul du FCS pour le signal émis peut être considéré comme “clé” de distinction d’un module Xbee n'est donc pas à négliger. &lt;br /&gt;
Le temps de calcul du FCS semble unique entre chaque paquet paraît une empreinte propre au matériel.&lt;br /&gt;
&lt;br /&gt;
On peut même considérer que cette étude peut distinguer un module Xbee d'un autre électromagnétiquement parlant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Code python utilisé pour l'étude du signal&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def etudeSubdivPaquet(name, inter_time_values):&lt;br /&gt;
&lt;br /&gt;
threshold = 0.30&lt;br /&gt;
ground = false&lt;br /&gt;
p=1&lt;br /&gt;
&lt;br /&gt;
## On converti chacun des nombres binaires en complexe 64 (deux flottants 32 bits)##&lt;br /&gt;
amppha=scipy.fromfile(open(name+&amp;quot;_PhaseMeg&amp;quot;), dtype=scipy.complex64) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
## On récupère la taille du tableau de complexes (taille du signal) ##&lt;br /&gt;
size=amppha.__len__()&lt;br /&gt;
&lt;br /&gt;
    debut=0&lt;br /&gt;
    inter_time=0&lt;br /&gt;
    min_limit=150000&lt;br /&gt;
    max_limit=350000&lt;br /&gt;
    accept_range=1./10. ## Permet de mettre un seuil d'intervalle d'acceptation&lt;br /&gt;
    signalFnd=False&lt;br /&gt;
&lt;br /&gt;
    for val in range(debut,size):&lt;br /&gt;
        if(val&amp;gt;=((size-debut)/100)*p):&lt;br /&gt;
            print(str(p)+&amp;quot; %&amp;quot;)&lt;br /&gt;
            p=p+1&lt;br /&gt;
&lt;br /&gt;
        if(amppha[val].real&amp;gt;threshold):&lt;br /&gt;
            if(ground==True):&lt;br /&gt;
                if(signalFnd==True):&lt;br /&gt;
                    if(len(inter_time_values)&amp;gt;0):&lt;br /&gt;
                        moy=moyenne(inter_time_values)&lt;br /&gt;
                        if(inter_time &amp;gt;= moy-accept_range*moy and inter_time &amp;lt;= moy+accept_range*moy):&lt;br /&gt;
                            print(&amp;quot;Yes &amp;quot;+str(inter_time))&lt;br /&gt;
                            inter_time_values.append(inter_time)&lt;br /&gt;
                        inter_time=0&lt;br /&gt;
                    elif(inter_time&amp;gt;=min_limit and inter_time&amp;lt;=max_limit):&lt;br /&gt;
                        inter_time_values.append(inter_time)&lt;br /&gt;
                else:&lt;br /&gt;
                    signalFnd=True&lt;br /&gt;
                ground=False&lt;br /&gt;
        else:&lt;br /&gt;
            ground=True&lt;br /&gt;
            if(signalFnd==True):&lt;br /&gt;
                inter_time=inter_time+1&lt;br /&gt;
&lt;br /&gt;
    if(len(inter_time_values)&amp;gt;0):&lt;br /&gt;
        print(&amp;quot;Moyenne &amp;quot;+ str(moyenne(inter_time_values)))&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Rencontre avec Etienne Helluy Lafont ===&lt;br /&gt;
&lt;br /&gt;
Bien que plusieurs pistes ont pu être explorées, notre manque d'expertise dans le domaine de la radio logicielle nous a fait défaut sur nos recherches. En effet, après avoir calculé le SNR d'un de nos signaux, nous nous sommes retrouvés avec des résultats assez incohérents. De nombreuses erreurs peuvent se glisser et nous avions besoin de conseils à ce sujet.&lt;br /&gt;
&lt;br /&gt;
Etienne Helluy-Lafont est un doctorant qui fait sa thèse sur les sondes pour la détection d’intrusions dans les architectures réseau hétérogènes et massivement distribuées. Il développe un outil permettant d'analyser le spectre environnant, de donner des informations sur les signaux émis sur certains canaux et même de démoduler ces signaux. Son programme en C est flexible puisqu'il est adapté pour beaucoup d'antennes (Une des librairies qu'il utilise est SoapySDR [https://github.com/pothosware/SoapySDR/] qui possède des &amp;quot;codec&amp;quot; dont un pour notre HackRF !). Nous nous sommes servi de son outil afin d'avoir de bien meilleurs résultats quant aux expériences orientées SNR des Xbee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:SDRProgC.gif|center|Le programme sniffe l'environnement et renvoie les caractéristiques lors de la reception d'un signal]]&lt;br /&gt;
&lt;br /&gt;
L'avantage de l'utilisation de l'application nous permet directement de nous focaliser sur les paquets correctement reçus et non les données parasites qui peuvent perturber l'antenne. En effet, le programme reste à l'écoute de l'environnement électromagnétique sur une bande de fréquence autour de la fréquence d'écoute du HackRF. Lors de la reception d'un signal, le programme démodule le signal et vérifie si le CRC (ou le FCS pour le Frame Check Sequence) et les données concordent. Si c'est le cas, le CRC nous renvoie 1. Il s'agit là alors d'un signal. L'utilisation ainsi de ce programme nous permet de ne pas obtenir de valeurs parasites pour le SNR et filtrer directement les informations qui nous sont intéressantes.&lt;br /&gt;
&lt;br /&gt;
L'algorithme que nous avions écrit en Python est correct, néanmoins l'étude sur un signal enregistré requiert le chargement de l'intégralité du signal. Là où nos recherches se basent sur de la capture et du traitement post-capture, le travail d'Etienne se base sur un traitement du signal en temps-réel, ce qui nous permet ainsi de gagner un temps considérable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Expérience : Variation du Rapport Signal Bruit en fonction de la distance de reception ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:FFTSNR.png|thumb|left|redresse=2|Calcul du SNR par FFT]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Fenetre.png|thumb|left|redresse=2|Calcul du SNR par fenêtre glissante]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L'objectif de cette expérience était de visualiser comment le rapport signal bruit (ou SNR) varie en fonction de la distance. &lt;br /&gt;
En effet, nous avions mis en suspens l'expérience qui consistait en la capture du SNR dû aux valeurs instables que l'on avait. &lt;br /&gt;
&lt;br /&gt;
La première idée était de faire une FFT du signal et de calculer le rapport en prenant la moyenne de sa puissance sur une bande de 2.4MHz (1.2Mhz de part et d'autre de la fréquence de capture du HackRF).&lt;br /&gt;
&lt;br /&gt;
Néanmoins, les caractéristiques du XBee (du point de vue de l'étalement spectral) rend le calcul du SNR imprécis. A la suite de la capture de signaux et de l'étude de ces mêmes signaux, les valeurs nous paraissaient incohérentes. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:SNRcalc.png|thumb|left|470px|Pics de SNR]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons donc procédé à une seconde méthode de calcul qui consiste à utiliser une fenêtre glissante de taille 2^k échantillons. &lt;br /&gt;
Pour chaque échantillon du signal, on calculait le SNR tel que :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;SNR =\frac{P_{signal+bruit}}{P_{bruit}}=\frac{|A_{signal+bruit}|^2}{|A_{bruit}|^2}&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans notre cas, on a :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;SNR_x =20.log \frac{Moyenne(W_x[2^{k-1}:2^k])}{Moyenne(W_x[0:2^{k-1}-1])}&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
W_x étant la fenêtre à l'échantillon x du signal, le rapport signal bruit est obtenu lorsqu'on a un pic.&lt;br /&gt;
La fenêtre choisie doit être suffisamment grande pour avoir une précision optimale.&lt;br /&gt;
On impose ainsi un threshold pour éviter des erreurs pouvant influencer les résultats de manière considérable.&lt;br /&gt;
Ainsi, on obtient les valeurs SNR cherchées.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous voulons donc vérifier si la mesure du SNR est une expérience pertinente pour l'identification du matériel. Nous allons prendre plusieurs XBee et mesurer le SNR à différentes distances de l'antenne SDR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 1&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 et XBee2 sont alimentés sur 3.3V VCC par USB (connecté à l'ordinateur)&amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 et XBee2  sont des modèles série s1&amp;lt;/I&amp;gt; disposent du firmware : 10EF&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee3 et XBee4 sont des modèles XBeePro &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Par défaut tous nos xbee disposent du même firmware (10EF), sauf si précisé que non &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Nous cherchons à observer la différence entre le XBee1 et XBee2 dans la même situation. &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Durant les expériences, le montage XBee1 connecté en USB sera le XBee témoin. &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PointsMoyenneXBee1Dist.png|thumb|left|470px|Les différentes valeurs du SNR acquises en fonction de la distance pour le XBee1]]&lt;br /&gt;
&lt;br /&gt;
Dans notre cas, le modèle XBee1 connecté en série à notre machine nous a servi de composant témoin afin d'étudier les signaux des autres modèles. En effet, suite à la capture et l'étude des signaux, on peut voir que le nuage de points qui constitue notre graphe témoigne d'un phénomène électromagnétique ondulatoire quant au champ. Avec la distance, plus l'on éloigne le module, plus le rapport signal sur bruit diminue (le contraire nous aurait étonné). En outre, la variation ondulatoire peut être caractérisée par le champs éléctrique.&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé de refaire cette expérience avec les trois autres XBee directement connectés à notre machine.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ALLXBEE comparaison SNR distance.png|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
De part les potentielles erreurs et les différentes perturbations électromagnétiques ambiantes, la valeur du SNR peut être affectée. Il n'est pas possible directement par les caractéristiques du rapport signal bruit d'effectuer le distinguo entre le XBee1 et le XBee2 (contrairement à l'expérience basée sur la subdivision de paquets). Cependant, les XBee3 et XBee4 présentent une caractéristique commune. Le SNR est beaucoup plus élevé. &lt;br /&gt;
&lt;br /&gt;
En effet, le pic de courant d'un XBee est de 45mA à la transmission pour une alimentation de 3.3V en tension continu, tandis qu'un module XBee pro, le pic de courant atteint les 150mA. Cette différence électronique permet ainsi au XBee pro de communiquer sur une plus grande zone (750m contre 90m pour un XBee simple).&lt;br /&gt;
&lt;br /&gt;
Ainsi, on peut conclure de cette expérience que le SNR est un élément témoin de la consommation énergétique d'un composant électrique (du moins de l'antenne).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:XBEE1 hardware comparaison SNR distance.png|thumb|400px|right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 2&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 est d'abord connecté à un Arduino UNO 328P par le biais d'un shield XBee Libelium puis est connecté à un Arduino Mega 2560 par le biais du même shield &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 dispose du firmware : 10EF &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
On peut observer que même si l'unité de contrôle n'est pas l'ordinateur mais le micro-contrôleur (ici ATMega2560 et ATMega328P), le rapport signal bruit ne change pas réellement. Néanmoins, il était pour nous intéressant de noter qu'un léger gap se créé à 30 et 40 cm de la SDR entre la communication USB et la communication avec les micro-contrôleurs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:XBEE3 hardware comparaison SNR distance.png|thumb|400px|right]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 3&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; L'expérience est similaire que pour le module XBee1 mais avec le XBee3 (pro) &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee3 est d'abord connecté à un Arduino UNO 328P par le biais d'un shield XBee Libelium puis est connecté à un Arduino Mega 2560 par le biais du même shield &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee3 dispose du firmware : 10EF &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
En outre, les résultats obtenus lors de l'expérience avec le XBee3 nous indique que le phénomène ondulatoire observé durant les tests précédents est moins souligné dans la communication avec les micro-contrôleur (toujours à 30 et 40cm) et celà après plusieurs tests.&lt;br /&gt;
&lt;br /&gt;
Des tests plus précis auraient été plusieurs avantageux et nous auraient permis de trancher sur la décision de l'importance du SNR concernant la différenciation de différentes unités de contrôle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:XBEE1 firmware comparaison SNR distance.png|thumb|400px|right]]&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 4&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 ici est connecté en série et dispose dans un premier temps du firmware 10EF (le firmware le plus récent) &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Après capture et expérimentation, on décide de réeffectuer la même chose avec le même XBee (XBee1) avec le firmware 10ED &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
Les acquisitions étant faites dans les mêmes conditions, il semblerait que le changement de firmware ait un petit impact sur la puissance d’émission : Cette petite différence de décibel ne semble pas aléatoire puisqu’on peut clairement voir que la courbe orange reste toujours inférieure à la courbe bleue, or le niveau de bruit est resté inchangé. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Conclusion de l'expérience&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; : &lt;br /&gt;
&lt;br /&gt;
'''Hardware''' : Les paquets émis via liaison série ont plus de puissance que ceux émis grâce aux arduino UNO et MEGA notamment à 10 cm, 40 cm et 50 cm. On remarque aussi une baisse du SNR moyen à 30 cm surtout en liaison série et ce, avec nos quatres XBEE. Coté ATMEGA , le SNR reste plutôt stable et décroit très doucement. Ainsi lors d’un calcul de SNR/Distance on pourra estimer si le XBEE est connecté au PC en liaison série ou à une ATMEGA quelconque selon si son SNR suit l’allure ou non de la courbe de la transmission classique. &lt;br /&gt;
&lt;br /&gt;
''En cherchant des raisons à cela, on se demande si ce phénomène n’a pas un rapport avec la longueur d’onde du signal modulé : la longueur d’onde est de 12 cm à 2.455 GHz, et la distance 30 cm coïnciderait avec sa demi-longueur d’onde.''&lt;br /&gt;
&lt;br /&gt;
Par le biais de ces mesures, on a pu démontrer que le matériel a un impact sur le SNR en fonction de la distance. A ce stade nous ne pouvons toujours pas déceler si le XBEE est géré par un microcontrôleur ATMEGA328P ou un ATMEGA2560.. Peut-être que l'étude du SNR selon le canal d'émission nous apportera des réponses? &lt;br /&gt;
&lt;br /&gt;
'''Software''' : Il n'y a pas de différence notable à en sortir de l'expérience quant à la partie logicielle. Nous ne pouvons pas nous avancer sur l'influence du firmware sur la puissance du signal uniquement par cette expérience.&lt;br /&gt;
&lt;br /&gt;
===Expérience : Variation du Rapport Signal Bruit en fonction du canal de fréquence===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'expérience s'effectue de la même manière que précédemment. L'algorithme utilisé est le même. Néanmoins, nous verrons comme le SNR varie ici non pas en fonction de la distance mais en fonction du canal choisi. Pour celà, on choisira 3 canaux : le canal 0x11 (17), le canal 0x13 (19) et le canal 0x15 (21).&lt;br /&gt;
En effet, ces canaux n'ont pas été choisis aléatoirement. Lors de nos études, on a observé le XBee Pro ne transmettait pas sur certains canaux particuliers.&lt;br /&gt;
&lt;br /&gt;
Etait-ce dû à une erreur de manipulation ?&lt;br /&gt;
&lt;br /&gt;
Afin d'être sûr, on a pris des canaux qui était communs aux deux modèles (série S1 et Pro).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ALLXBEE comparaison SNR freq.png|thumb|400px|left]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 1&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt;Les XBee1, XBee2, XBee3 et XBee4 sont connectés au PC et sont à 10 cm de l'antenne SDR. &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt;Ils disposent du même firmware : 10ef &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt;Les XBee transmettent d'abord sur le canal 0x11, sur le canal 0x13 et sur le canal 0x15 &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats &amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
Il n'y a pas réellement de conclusion à tirer dans ce contexte. On ne fait que confirmer la différence de SNR entre le XBee de série S1 et le XBee Pro, différence qu'on observait déjà lors de l'expérience précédente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:XBEE1 hardware comparaison SNR freq.png|thumb|400px|left]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 2&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt;Les XBee1 est d'abord connecté au PC comme précédemment par shield. On le connecte par la suite à l'ATMega328p puis à l'ATMega2560. Il se trouve à 10 cm de l'antenne SDR. &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt;Ils disposent du même firmware : 10ef &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt;Les XBee transmettent d'abord sur le canal 0x11, sur le canal 0x13 et sur le canal 0x15 &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats &amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
On observe que le rapport Signal Bruit lors de la transmission sur PC est supérieur au SNR transmis par l'ATMega328p et l'ATMega2560.&lt;br /&gt;
On observe en plus une légère différence entre celui de l'ATMega328p et l'ATMega2560. La puissance des microprocesseurs se reflèterait-elle sur le signal ?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:XBEE3 hardware comparaison SNR freq.png|thumb|400px|left]]&lt;br /&gt;
[[Fichier:XBEE4 SNR freq.png|thumb|400px|left]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 3&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt;Les XBee3 est d'abord connecté au PC comme précédemment par shield. On le connecte par la suite à l'ATMega328p puis à l'ATMega2560.&amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt;On réeffectue la même expérience avec le XBee4 &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt;Ils disposent du même firmware : 10ef &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt;Les XBee transmettent d'abord sur le canal 0x11, sur le canal 0x13 et sur le canal 0x15 &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats &amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
On observe la même chose que pour le contexte précédent, il y a une différence entre le SNR du XBee3 témoin et de celui relié aux micro-contrôleurs. L'erreur n'est pas à négliger, car la distance peut grandement influencer sur l'amplitude du signal. On considère une marge d'erreur de +-0,2cm lors de cette expérience, celà même si les résultats ne s'opposent à ceux du contexte précédent.&lt;br /&gt;
Pour le XBee3 et XBee4, les phénomènes sont semblables.&lt;br /&gt;
Celà nous conforte dans l'identité d'une identité électromagnétique pour un matériel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Conclusion de l'expérience &amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
Après avoir comparé tous les graphes, on peut dire que systématiquement la puissance émise selon les canaux est la même pour chaque hardware : &lt;br /&gt;
SNR_série &amp;gt; SNR_ATMEGA2560 &amp;gt; SNR_ATMEGA328&lt;br /&gt;
Cependant, les courbes ne suivent pas un pattern caractéristique qui permettrait à l’aide à l’identification du matériel. Si par exemple deux XBEE émettent avec un hardware différent, on pourra seulement conclure « Les XBEE n’utilisent pas le même matériel pour émettre ». Dans un contexte particulier, on pourrait distinguer le nombre de modules sans néanmoins les identifier.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Code python utilisé pour l'étude du signal&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def SNRStudy(name):&lt;br /&gt;
    tmp=scipy.fromfile(open(name+&amp;quot;_PhaseMeg&amp;quot;), dtype=scipy.complex64)&lt;br /&gt;
&lt;br /&gt;
    f = open(name+&amp;quot;_SNR_Values&amp;quot;,&amp;quot;a&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    p=1&lt;br /&gt;
    size = tmp.__len__()&lt;br /&gt;
    magnitude = (numpy.real(tmp)).tolist()&lt;br /&gt;
&lt;br /&gt;
    threshold=10&lt;br /&gt;
&lt;br /&gt;
    P=0&lt;br /&gt;
    SNR_graph=[]&lt;br /&gt;
    SNR=[]&lt;br /&gt;
&lt;br /&gt;
    win_sz=64&lt;br /&gt;
&lt;br /&gt;
    if(size&amp;gt;=win_sz):&lt;br /&gt;
        for val in range(0,size-win_sz):&lt;br /&gt;
&lt;br /&gt;
            if(val&amp;gt;=((size-win_sz)/100)*p): # Affiche l'état de l'étude&lt;br /&gt;
                print(str(p)+&amp;quot; %&amp;quot;)&lt;br /&gt;
                p=p+1&lt;br /&gt;
&lt;br /&gt;
            SNR_graph.append( 20*math.log((numpy.mean(magnitude[val + win_sz/2 : val + win_sz-1]))/(numpy.mean(magnitude[val+0 : val+win_sz/2-1])), 10) )&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
    size=len(SNR_graph)&lt;br /&gt;
&lt;br /&gt;
    for i in range(1, size-1):&lt;br /&gt;
        if (SNR_graph[i]&amp;gt;SNR_graph[i-1] and SNR_graph[i]&amp;gt;SNR_graph[i+1] and SNR_graph[i]&amp;gt;threshold):&lt;br /&gt;
            SNR.append(SNR_graph[i])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    tmp=numpy.asarray(SNR)&lt;br /&gt;
    tmp.tofile(f)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    try:&lt;br /&gt;
        SNRStudy(sys.argv[1])&lt;br /&gt;
    #except IndexError:&lt;br /&gt;
        #print(&amp;quot;Donnez le nom du fichier\n&amp;quot;)&lt;br /&gt;
    except IOError:&lt;br /&gt;
        print(&amp;quot;Le fichier n'existe pas\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Conclusion du projet=&lt;br /&gt;
&lt;br /&gt;
Durant ce projet, nous avons cherché à determiner l'impact potentiel du matériel et informatique sur le champ électromagnétique. Dans l'idée commune, le signal émis par une antenne de même type est censé être le même, afin de le démoduler correctement au niveau de la reception. Néanmoins, il est très rare d'un point de physique d'avoir des signaux parfaitement identiques et celà dans les mêmes conditions expérimentales.&lt;br /&gt;
&lt;br /&gt;
On a pu voir que de nombreux facteurs témoignaient de potentielles - et il est important de souligner le terme potentielles - caractéristiques uniques provoquées non pas par l'antenne émettrice, mais par le matériel et/ou le logiciel. En effet, les conjectures émises en conclusion des expériences ne peuvent être validées de manière absolue, mais sont néanmoins la preuve d'une réelle influence du matériel et sont selon nous des pistes à développer (le modèle de boîte noire se rapporte à notre projet). &lt;br /&gt;
&lt;br /&gt;
Dans le cadre de notre projet, c'est l'antenne XBee qui a été étudiée.&lt;br /&gt;
&lt;br /&gt;
A l'issue de ces expériences, nous avons pu mettre en évidence de nombreux points :&lt;br /&gt;
&lt;br /&gt;
- les signaux émis par les XBee respectent les caractéristiques temporelles et fréquentielles données par leur datasheet (première expérience)&lt;br /&gt;
&lt;br /&gt;
- le firmware ne semble pas avoir pas de réel impact sur les signaux, ni sur la variation d'amplitude&lt;br /&gt;
&lt;br /&gt;
- le SNR témoigne de la puissance d'émission de l'antenne et permet de distinguer un module XBee Pro d'un module Xbee Série S1, permet aussi de différencier les signaux (sans nécessairement les identifier) et présente un potentiel gap entre un signal émis directement par série et un signal émis par un Arduino.&lt;br /&gt;
&lt;br /&gt;
- le temps de fragmentation d'un paquet transmis ainsi que le calcul du FCS montre un schéma pouvant potentiellement être unique à tout un chacun des composants.&lt;br /&gt;
&lt;br /&gt;
Nous aurions pu faire d'autres expériences pour nous conforter sur nos positions, néanmoins, nous n'avions pas trouvé d'autres d'idées qui pouvaient être réalisées avec nos outils (la variation de l'amplitude du signal nous a montré que le HackRF n'est pas exempt de défaut).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ce projet a été pour nous une expérience nouvelle. Là où la plupart des projets étaient plus orientés à la conception et la réalisation, avec un objectif bien défini, le notre lui était tout autre. En effet, l'approche était plus expérimentale et orientée vers la recherche.&lt;br /&gt;
&lt;br /&gt;
Les premières pistes de ce projet, bien qu'elles ne soient pas à négliger, se basaient sur les fuites électromagnétiques dispersées par les différents composants électroniques et informatiques d'un système. Néanmoins, avec le matériel et les compétences actuelles, il nous aurait été difficile de mener à bien ce projet de recherche et de poursuivre nos idées.&lt;br /&gt;
Ainsi, le fait d'étudier les signaux directement par canal direct et non annexe (pas de CEM), nous permettant de chercher des potentielles caractéristiques uniques (le terme utilisé étant les clés) était donc la piste privilégiée.&lt;br /&gt;
&lt;br /&gt;
La difficulté n'en était pas amoindrie. De nombreux obstacles devaient être franchis.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, il nous a été nécessaire de nous initier à la radio logicielle, qui était l'outil principal pour mettre en oeuvre nos idées. Néanmoins, hormis dans le cadre de la démodulation de signaux et dans celui du Hacking (attaque radio, par replay etc...), il y a très peu de documentation au niveau de la radio logicielle et reste un domaine peu accessible au grand public (matériel et conditions d'acquisition obligent). Le procédé de recherches et les expériences nous ont donc été propre. &lt;br /&gt;
&lt;br /&gt;
Ce qui nous mène à la seconde difficulté : la mise en place du protocole de recherche. La caractérisation d'un signal ou d'une empreinte propre necessite de faire des tests qui peuvent mener ou alors à des pistes intéressantes voire concluantes, ou alors à des echecs.&lt;br /&gt;
&lt;br /&gt;
Dans notre cas, tout ne nous permettait pas de développer le sujet. &lt;br /&gt;
La rencontre de Etienne Helluy Lafont a été pour nous d'une grande aide et nous a permis de savoir si les pistes qui avaient été développées étaient pertinentes ou non.&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'archive des scripts et codes utilisés : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Scripts.zip]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le rapport&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Rapport_projet_P70_2019.pdf]]&lt;br /&gt;
&lt;br /&gt;
=Bibliographie et liens=&lt;br /&gt;
&lt;br /&gt;
Datasheet XBee : https://www.sparkfun.com/datasheets/Wireless/Zigbee/XBee-Datasheet.pdf&lt;br /&gt;
&lt;br /&gt;
Wiki GNURadio : https://wiki.gnuradio.org/index.php/Main_Page&lt;br /&gt;
&lt;br /&gt;
Documentation Doxygen GNURadio (prototypes des fonctions python) : https://www.gnuradio.org/doc/doxygen/&lt;br /&gt;
&lt;br /&gt;
HackRF One: https://greatscottgadgets.com/hackrf/&lt;/div&gt;</summary>
		<author><name>Amoreau</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=75969</id>
		<title>IMA4 2018/2019 P70</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=75969"/>
				<updated>2019-05-09T22:46:13Z</updated>
		
		<summary type="html">&lt;p&gt;Amoreau : /* Documents Rendus */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;font-size: 30px; width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;Impact du matériel et du logiciel sur le champ électromagnétique&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Projet'''&amp;lt;/ins&amp;gt; : Impact du matériel et du logiciel sur le rayonnement électromagnétique&lt;br /&gt;
&lt;br /&gt;
''Nous proposons d'évaluer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et la consommation électrique.''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Etudiants'''&amp;lt;/ins&amp;gt; : Souheib KHINACHE et Antoine MOREAU&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Encadrants'''&amp;lt;/ins&amp;gt; : Alexandre BOE, Xavier REDON et Thomas VANTROYS&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'internet des objets est un marché en plein essor. La communication entre les différents objets connectés crée un nuage de signaux autour d'eux. Ces derniers sont vus par les utilisateurs comme des boîtes noires : le fonctionnement se fait sans en connaître les composants matériels et logiciels. &lt;br /&gt;
Néanmoins, ces objets, de par leurs propriétés électroniques, créent des fuites électromagnétiques impactant le champ environnant. &lt;br /&gt;
&lt;br /&gt;
Bien qu'ils peuvent porter à débat sur l'impact sur la santé, ces signaux peuvent représenter de réelles sources d'informations sur l'aspect matériel et applicatif de l'objet.&lt;br /&gt;
&lt;br /&gt;
Il serait donc intéressant d'avoir idée générale sur le fonctionnement du système en interprétant les ondes électromagnétiques émises par ce système.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Les principaux objectifs de ce projet seront donc de mesurer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et sur la consommation électrique.&lt;br /&gt;
Pour cela, l'outil potentiel avec lequel nous pourrions travailler serait une sonde de champ électromagnétique afin d'établir des mesures. &lt;br /&gt;
Cependant, nous pourrions concevoir notre propre système de capture et d'interprétation à partir d'une antenne, de filtres de fréquences et d'un microcontrôleur (on commencera par un ATMega328P). Il sera nécessaire de prendre en compte les perturbations issues de notre appareil de mesure et d'en tenir compte.&lt;br /&gt;
&lt;br /&gt;
On effectuera ainsi plusieurs expérimentations sur différents supports d'étude :&lt;br /&gt;
*l'aspect &amp;quot;Hardware&amp;quot; en étudiant différents modèles pour un même type de shield  &lt;br /&gt;
*l'aspect calculatoire du matériel en se basant sur l'impact des microcontrôleurs en fonction du modèle (ATMega328P et ATMega2560)&lt;br /&gt;
*l'aspect &amp;quot;Software&amp;quot;, en étudiant l'impact du logiciel et du firmware d'un même composant (différents firmwares pour un même shield Wi-Fi)&lt;br /&gt;
*l'aspect puissance des composants électroniques de gestion de puissance (ponts, hacheurs, onduleurs...).&lt;br /&gt;
&lt;br /&gt;
L'étude des différentes informations se fera par traitement des signaux électromagnétiques et des spectres. &lt;br /&gt;
Afin de mieux appréhender le problème, il nous est nécessaire de comprendre les phénomènes physiques issus de la notion d'électromagnétisme.&lt;br /&gt;
&lt;br /&gt;
Ces études mèneront à une étape plus complexe : l'interprétation des signaux. En effet, l'un des objectifs de ce projet est de comprendre du mieux possible le fonctionnement d'un système sans y avoir accès directement, et donc dans ce contexte &amp;quot;traduire&amp;quot; un ensemble de signaux électromagnétiques.&lt;br /&gt;
&lt;br /&gt;
On pourra en outre apporter un aspect visuel à l'étude en rajoutant une interface informatique.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
Bien qu'aux yeux de nombreuses personnes le bruit électromagnétique créé par les équipements électroniques du quotidien peut porter à controverse (débats concernant l'impact sur la santé par exemple), il peut être une source d'informations. &lt;br /&gt;
De nos jours, les ondes électromagnétiques restent un vaste champ d'étude, sujettes à de nombreuses thèses et recherches au sein des laboratoires.&lt;br /&gt;
&lt;br /&gt;
On peut prendre l'exemple de [https://www.eurekalert.org/pub_releases/2015-01/giot-rwt010715.php Milos Prvulovic], professeur à l'Institut Technologique de Géorgie, ayant simulé un contexte de cybercafé, dans lequel il place une antenne magnétique, un ordinateur portable cible et un ordinateur &amp;quot;espion&amp;quot;. Il réussit, grâce aux signaux EM émis par l'impulsion de l'appui des touches clavier à capter un message écrit par un ordinateur cible. &lt;br /&gt;
&lt;br /&gt;
Néanmoins, dans le quotidien, l'utilisation des sondes électromagnétiques se fait pour l'étude énergétique d'un système électronique (fuites électromagnétiques anormales, preuves d'une anomalie...) afin de respecter certaines normes législatives. Le code du travail par exemple réglemente et définit des valeurs seuils par le biais des articles R. 4453-3 et R. 4453-4.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
'''NBM-520 de NARDA STS'''&lt;br /&gt;
[[Fichier: NBM_TS.png|thumb|300px|NBM-TS, application des appareils NBM]]&lt;br /&gt;
NARDA STS est une entreprise qui fournit des outils de mesure. Elle met à disposition aux professionnels des sondes électromagnétiques.&lt;br /&gt;
La NBM-520 est un appareil de la franchise, mesurant le champ électrique et magnétique. Elle donne des valeurs précises du champ électromagnétique ambiant sur une large bande. Elle propose différentes sondes modulables permettant une souplesse au niveau de l'étude en fonction des besoins, avec des sondes pouvant étudier des signaux de fréquence de 100kHz à 6GHz ou même de 300kHz à 50GHz (en fonction de la sonde choisie).&lt;br /&gt;
&lt;br /&gt;
En outre, le dispositif peut se connecter en USB sur PC afin d'envoyer les données capturées et d'en faire une étude. Le dispositif propose un logiciel d'étude, NBM-TS, permettant d'observer du champ en fonction du temps, de la fréquence, de la position...&lt;br /&gt;
&lt;br /&gt;
L'équipement est utilisé par l'ANF (l'Agence Nationale des Fréquences, agence gérant l'ensemble des normes autour des radiofréquences), et est donc un gage de qualité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Avantages :''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Large bande de fréquence&lt;br /&gt;
* Matériel solide&lt;br /&gt;
* Application fonctionnelle permettant l'étude et gestion des données&lt;br /&gt;
* Possibilité d'étudier séparément champ électrique et magnétique&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Inconvénients:''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Impossible d'étudier les basses fréquences (appareils sous tension, bobinages...)&lt;br /&gt;
* Prix élevé : à partir de 3100€&lt;br /&gt;
* La cible de ce produit est surtout les professionels&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
'''Une pita.'''&lt;br /&gt;
&lt;br /&gt;
''Comment mon pain à pita vole ta clé RSA ?''&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Pita.jpg|200px|thumb|left|Une pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Des chercheurs israéliens ont découvert un moyen de capturer des clés de cryptage RSA, réputées comme inviolables, par le biais d'une pita... du moins avec un dispositif suffisamment petit pour être caché dans un pain à pita. &lt;br /&gt;
Le dispositif, renommé PITA pour Portable Instrument for Trace Acquisition a la particularité de capturer les ondes radio électromagnétiques émanantes d'un PC, qu'il soit connecté à un réseau ou pas.&lt;br /&gt;
Les différentes opérations du processeur sont identifiées en distinguant les différents modèles de l'activité radio sur le spectre EM.&lt;br /&gt;
&lt;br /&gt;
Bien que la capture des clés RSA a été faite dans des conditions particulières (modification du processeur de l'ordinateur cible), il est néanmoins possible, selon les chercheurs, d'identifier quelle type d'activité est exercée par l'ordinateur ainsi que son état.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PITA.jpg|300px|thumb|right|Un dessous de pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'un des points importants concernant le dispositif est son coût : moins de 300 euros.&lt;br /&gt;
L'appareil dispose :&lt;br /&gt;
* d'un PC portatif (PC-on-a-stick) ''Rikomagic MK802 IV'',&lt;br /&gt;
* d'un recepteur radio SDR ''FUNcube Dongle Pro+''&lt;br /&gt;
* d'une antenne radio&lt;br /&gt;
* d'une batterie&lt;br /&gt;
* d'une antenne WiFi&lt;br /&gt;
* d'une carte MicroSD&lt;br /&gt;
* d'un adapteur d'antenne&lt;br /&gt;
* et d'une '''pita'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le dispositif aurait une portée de 50cm. &lt;br /&gt;
Les chercheurs israéliens ont collaboré avec GNU Private Guard (logiciel de cryptage asymétrique) afin de protéger contre ces attaques les clés de cryptage.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
&lt;br /&gt;
''Scénario 1''&lt;br /&gt;
&lt;br /&gt;
Gérard a toujours le flair pour les bonnes affaires. Il a acheté une centaine de clés WiFi à un prix dérisoire sur AloXpresso afin de faire du profit à la revente. Le vendeur lui garantit que toutes les clés fonctionnent correctement. Gérard veut vérifier. Après vérification, 99 des clés sur 100 fonctionnent comme prévu. Gérard aimerait être sûr du disfonctionnement, mais Gérard n'est pas une pointure en informatique. &lt;br /&gt;
&lt;br /&gt;
Coup de génie ! Il se rappelle qu'il dispose d'un dispositif qui capte les ondes EM et les interprète directement. C'est le moment de tester ça. Il remarque une anomalie sur le spectre.&lt;br /&gt;
Il décide de contacter le revendeur pour lui signaler un disfonctionnement sur l'une des clé. &lt;br /&gt;
Pas de soucis. Le vendeur, étant bon prince, lui envoie une autre clé USB et lui fait une ristourne.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Scénario 2''&lt;br /&gt;
&lt;br /&gt;
La police fait une perquisition chez un individu soupçonné de graves délits. Cela fait plusieurs mois que la brigade criminelle prépare l'intervention, et une fois sur les lieux ils arrêtent le soupçonné malfaiteur.&lt;br /&gt;
Cependant avant de repartir, elle veut faire l'acquisition d'un maximum de preuves. Elle veut alors prendre l'essentiel des objets, dont certains objets éléctroniques connectés de l'individu dont elle pourra extraire les informations qui serviront à le faire tomber.&lt;br /&gt;
&lt;br /&gt;
Par chance, elle dispose d'un petit outil qui scannera les signatures alentours des objets connectés, comme des téléphones cachés, clés USB wifi dissimulées dans le décor etc..&lt;br /&gt;
Et si le suspect avait modifié malignement un objet connecté banal pour l'utiliser autrement à ses fins, la police le découvrirait car elle possède une base de données de toutes les signatures spectrales des objets connectés sur le marché et celle de l'objet modifié ne collerait pas avec celle de la base de données.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
&lt;br /&gt;
'''Comment étudier les signaux malgré les perturbations électromagnétiques ambiants et les faibles signaux des µC ?'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les signaux électromagnétiques des microcontrôleurs ou d'autres composants peuvent être faibles. Il y a une possibilité pour palier à ce problème, c'est de capter les signaux depuis une antenne émettrice que l'on rajoute à l'objet d'étude. &lt;br /&gt;
Nous utiliserons un SDR (Software Defined-Radio) afin de capter les ondes radio et les étudier directement sur PC. Le filtrage s'effectuera ainsi de manière numérique. Plusieurs tests seront effectués pour le même objet à étudier (quand on parle d'objet, on évoque un ensemble de plusieurs composants, comme par exemple une alimentation, un micro-contrôleur et une antenne). Ainsi, de manière statistique, nous pourrons en déduire un pattern récurrent pour chaque expérience en les effectuant dans différents environnements (pourquoi pas une chambre anachoïque). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons &lt;br /&gt;
* Capter le signal émis par un objet connecté le plus précisément possible&lt;br /&gt;
&lt;br /&gt;
* Concevoir nos propres objets connectés tous différents mais basés sur un même modèle&lt;br /&gt;
&lt;br /&gt;
* Interpréter les spectrogrammes, faire une étude statistique des signaux émis par nos différents objets et en tirer des conclusions&lt;br /&gt;
&lt;br /&gt;
* Répertorier dans une base de données les signatures de nos objets , voire de quelques objets disponibles sur le marché&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix logiciel :&lt;br /&gt;
&lt;br /&gt;
- La distribution Linux Pentoo ou Kali pour traiter les signaux avec GNU RADIO (Suite logicielle dédiée à l’implémentation de radios logicielles et de systèmes de traitement du signal).&lt;br /&gt;
&lt;br /&gt;
- FemtoOS pour l'OS des ATMEGA328P et ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix Matériel : &lt;br /&gt;
&lt;br /&gt;
- Plusieurs modules radios émetteurs &lt;br /&gt;
&lt;br /&gt;
- Plusieurs microcontrôleurs ATMEGA328P et un ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
- Des alimentations identiques pour chaque PCB&lt;br /&gt;
&lt;br /&gt;
- Un HackRF pour la réception des signaux&lt;br /&gt;
&lt;br /&gt;
- Une antenne 50 Ohm pour le HackRF [https://www.passion-radio.fr/accessoires-sdr/antenne-ant500-74.html]&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous devons préparer tout le matériel qui servira à faire nos tests. C'est à dire concevoir :&lt;br /&gt;
&lt;br /&gt;
- Un ensemble SDR/PC qui traitera le signal reçu avec GNU RADIO.&lt;br /&gt;
&lt;br /&gt;
- Une multitude de PCB qui seront utilisés comme objets connectés (Sur chacun d'entre eux on trouvera au minimum une antenne radio, un microcontrôleur et une alimentation)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de récupérer une &amp;quot;signature&amp;quot; d'un de nos objets , il faudra faire plus de 50 analyses spectrales pour conclure statistiquement sur une bonne signature qui caractérisera l'objet.&lt;br /&gt;
&lt;br /&gt;
Nous devons donc dans un second temps: &lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques mais qui ont un '''firmware''' différent.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques qui ont pour seule différence le '''microcontrôleur'''.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques dont seul le '''PCB''' diffère.&lt;br /&gt;
&lt;br /&gt;
Grâce à tous ces tests , nous pourrons conclure et voir l'impact qu'à le matériel ou le logiciel sur la signature d'un objet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enfin si les délais nous le permettent, nous pourrons réaliser un software qui cartographiera nos objets connectés dans la pièce grâce à la puissance de la signature reçue (Ce qui devrait être réalisable puisqu'à ce stade nous aurons une base de donnée des signatures).&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Heures S11 !! Heures S12 !! Heures S13+ !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
|3&lt;br /&gt;
|8&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Recherches&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|6&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|4&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Prise en main de GnuRadio&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Configuration Xbee&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Préparation expérimentale (écriture de codes et scripts...) &lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Expériences&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|5&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Etude et interprétation des résultats&lt;br /&gt;
|3&lt;br /&gt;
|8&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|4&lt;br /&gt;
|15&lt;br /&gt;
|9&lt;br /&gt;
|8&lt;br /&gt;
|7&lt;br /&gt;
|8&lt;br /&gt;
|8&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
[[Fichier:HackrfOne.jpeg|200px|thumb|right|Le HackRF One]]&lt;br /&gt;
Durant cette semaine, nous avons continué nos recherches notamment sur le moyen de transmission de nos objets connectés. Nous avons confirmé notre choix de notre SDR : Monsieur Boé nous a confirmé que des HackRF seraient disponibles dans les laboratoires et qu'il pourrait nous en prêter un. On disposera donc d'une antenne puissante pour traiter les signaux émis par nos objets communiquants. &lt;br /&gt;
&lt;br /&gt;
Il faudra coupler notre HackRF avec un logiciel appelé GNU RADIO qui est un logiciel très complet ( Pour information : la NASA a utilisé GNU RADIO afin de rétablir le contact avec une sonde spatiale abandonnée ). Afin de faire tourner ce logiciel libre, nous aurons besoin de la distribution Kali Linux, ex Backtrack.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Choix des émetteurs/récepteurs === &lt;br /&gt;
&lt;br /&gt;
Nous avons décidé que nos objets connectés communiqueront dans deux '''bandes de fréquences ISM''', l'une à '''900 MHz''' grâce à des modules Digi Xbee et l'autre à '''2,4 GHz''' par le moyen de modules émetteurs Bluetooth. On rappellera que les Digi Xbee et les émetteurs/récepteurs Bluetooth seront pilotés par des ATMEGA 2560.&lt;br /&gt;
&lt;br /&gt;
Les Xbee ne communiqueront pas entre eux et émettront en continu les mêmes données car ils le peuvent, alors que les émetteurs/récepteurs Bluetooth devront s'échanger des données si on veut pouvoir observer un quelconque signal autour de la fréquence de leurs porteuses. &lt;br /&gt;
&lt;br /&gt;
On voudra observer premièrement, si avec deux objets dans les '''mêmes''' conditions (donc même µc et même émetteur), on peut ou non '''distinguer une différence'''. Ceci est fondamental pour la suite des expériences, puisque si les deux émettent à la même fréquence, on pourra faire varier plusieurs paramètres afin de trouver '''des clés''' (des signes) qui pourraient aider à l'identification du matériel.&lt;br /&gt;
&lt;br /&gt;
Ces clés représentent différents facteurs potentiels d'identification du signal (le rapport signal-bruit en fonction de la distance par exemple...).&lt;br /&gt;
&lt;br /&gt;
''On planifie alors pour la semaine suivante de réussir à faire émettre, en utilisant simplement des breadboards pour commencer, nos Xbee et modules BT et observer quelque chose grâce à notre SDR.''&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration des modules XBee ===&lt;br /&gt;
&lt;br /&gt;
Nous avons configuré deux XBee afin qu'ils puissent communiquer entre eux : &lt;br /&gt;
&lt;br /&gt;
Les modules XBee ont été montés sur des platines d'interface USB/série de manière à ce qu'on puisse les paramétrer via le programme de contrôle ''minicom''. &lt;br /&gt;
&lt;br /&gt;
Dans le doute, on supposera que les XBee communiquent à 9600 Baud. On exécute la commande suivante : &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;minicom -b 9600 -D /dev/ttyUSB0&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
On active l'echo local dans minicom, afin de pouvoir observer ce qui a été envoyé par liaison série au XBee ('''CTRL+A''' puis '''E''').&lt;br /&gt;
&lt;br /&gt;
Pour commencer le paramètrage il faut taper ''' +++ ''' rapidement. Le XBee nous répond OK, cela veut dire que nous sommes dans le mode configuration et que nous pouvons utiliser les commandes '''AT'''. (Redirection vers la liste des commandes AT XBee [https://cdn.sparkfun.com/assets/resources/2/9/22AT_Commands.pdf]).&lt;br /&gt;
&lt;br /&gt;
Comme nos XBee ont été utilisés auparavant, il a fallu les restaurer à l'état usine avec la commande '''ATRE'''.&lt;br /&gt;
&lt;br /&gt;
Si on souhaite que des XBee puissent s'envoyer des données il faut qu'ils soient sur le même canal (commande '''ATCH''') et aient le même PAN ID (commande '''ATID'''). Notre PAN ID sera '''BEE6''' et le canal sera celui par défaut '''C'''.&lt;br /&gt;
&lt;br /&gt;
Ensuite il faut leur donner une adresse de destination ('''ATDH''' &amp;amp; '''ATDL''') qui sera l'adresse broadcast, pour ce faire on entre &lt;br /&gt;
 ATDH=0000&lt;br /&gt;
 ATDL=FFFF&lt;br /&gt;
&lt;br /&gt;
Enfin '''ATMY''' représente l'ID du XBee, notre premier XBee aura comme ID 5000 et le second 5001.&lt;br /&gt;
&lt;br /&gt;
N'oublions pas de sauvegarder les paramètres avec '''ATWR'''.&lt;br /&gt;
&lt;br /&gt;
On vérifie que tout a bien été pris en compte :&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;&lt;br /&gt;
+++OK&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATID&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
BEE6&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
C&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
0&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDL&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
FFFF&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATMY&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
5000&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCN&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Puis on fait de même avec le deuxième XBee (ID 5001).&lt;br /&gt;
&lt;br /&gt;
Voilà, lorsque on envoie des caractères par liaison série sur 5000, la LED '''Tx''' de 5000 s'allume et la Led '''Rx''' de 5001 s'allume elle aussi. Cela signifie que l'envoi de donnée par onde radio s'effectue correctement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que les XBee émettent et reçoivent, on peut commencer les mesures avec notre SDR. Mais avant cela il va falloir bien se familiariser avec le logiciel GNU RADIO qui est assez difficile à prendre en main.&lt;br /&gt;
&lt;br /&gt;
=== Première prise en main du logiciel GNURADIO ===&lt;br /&gt;
&lt;br /&gt;
Installation de GNU radio avec les fonctions + drivers pour HackRF : &lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install gqrx-sdr gnuradio gr-osmosdr hackrf &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le bloc Osmocom Source sert de &amp;quot;passerelle&amp;quot; entre le logiciel et la SDR, il permet de transmettre les informations récupérées par le HackRF afin qu'on puisse les traiter avec d'autres bloc de fonctions.&lt;br /&gt;
&lt;br /&gt;
Si on veut pouvoir récuperer les données il faut passer l'argument ''hackrf=0'' dans la box périphérique du bloc Osmocom.&lt;br /&gt;
&lt;br /&gt;
Ci-dessous on peut voir le spectre environnant entre 2.44GHz et 2.460GHz grâce au bloc WX GUI FFT Sink.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ScreenGnuRadio.png|Interface de GNURadio]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
===Premières observations===&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous a permis d'effectuer notre première expérience. L'utilisation des deux Xbees nous a permis d'observer l'impact des Xbee sur le champ électromagéntique environnant.&lt;br /&gt;
&lt;br /&gt;
Si on analyse le spectre environnant grâce au module FFT de GNU Radio, lorsque les Xbee communiquent entre eux, on peut apercevoir un pic caractéristique propre.&lt;br /&gt;
En effet, lors de l'emission d'un message sur le port série, on a un pic qui se dégage du spectre d'amplitude -20dBm. Ce pic est caractéristique au canal de communication choisi et configuré sur le Xbee.&lt;br /&gt;
Néanmoins, le signal est perturbé par le bruit environnant. &lt;br /&gt;
L'expérience étant effectuée au sein de l'école, les signaux Wi-Fi perturberont l'étude.&lt;br /&gt;
Il faut noter que la norme IEEE 802.11 impose au Wi-Fi l'utilisation d'une bande passante s'étalant de 2.4 GHz à 2.5 GHz.&lt;br /&gt;
&lt;br /&gt;
La bande passante des modules Zigbee se décomposent en 16 canaux, allant de 2400 MHz à 2480 MHz par pas de 5 MHz.&lt;br /&gt;
&lt;br /&gt;
Le canal ici utilisé est le canal 13 (3ème canal) de fréquence 2415 MHz.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[Fichier:Channel135001.png|thumb|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Fichier:channel135000.png|thumb|none|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBeeCh13.png|Spectre de l'environnement autour du XBee|thumb|none|400 px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBeeCh13SND.png|Lors de l'envoi de données au XBee voisin|thumb|none|400 px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut observer un pic de puissance lors de l'envoi d'une donnée en série à la fréquence 2.415 GHz.&lt;br /&gt;
Il nous est maintenant nécessaire d'analyser de plus près les signaux et leurs fréquence centrale dans la bande perçue au dessus de -20dB.&lt;br /&gt;
&lt;br /&gt;
On réeffectuera une expérience en zone isolée des signaux parasites.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous avons principalement fait des recherches dans le but de mieux comprendre les signaux émis par le Xbee.&lt;br /&gt;
&lt;br /&gt;
En somme, nous étions confrontés à de nombreuses interrogations. Le fonctionnement du Xbee étant assez simple et la sécurité du protocole Zigbee étant moindre, y a t-il possibilité de démoduler le signal émis afin de développer nos études ?&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
[[Fichier:Switchchannel pyscript.PNG|upright=0.8|thumb|right|Script Python]]&lt;br /&gt;
&lt;br /&gt;
Après réflexion et consultation de nos encadrants, nous nous sommes rendu compte que la démodulation prévue lors de la semaine 4 n'aiderait pas à répondre à la problématique de notre sujet !  &lt;br /&gt;
&lt;br /&gt;
Afin de mieux visualiser les signaux des Xbee , on décide d'automatiser le processus d'envoi sur le port série des données vers le Xbee. C'est à dire concevoir un programme Python qui automatisera l'envoi de données et le changement de channel à intervalle de temps régulier (Changement toutes les 10 secondes). &lt;br /&gt;
&lt;br /&gt;
L'utilisation de Minicom '''n'était pas du tout la meilleure solution''' pour faire émettre les Xbee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Après quelques essais, on remarque que lorsque le Xbee émet sur le channel 13, il émet à environ 2,445GHz au lieu d'émettre à 2,415GHz soit une différence de 30MHz : Ceci n'est pas important, car ce que l'on souhaite remarquer c'est un éventuel décalage de la fréquence centrale entre deux Xbee différents. Si les deux Xbee n'ont pas la même frequence centrale on pourra conclure que la '''fréquence centrale''' de la porteuse du Xbee n'est pas '''une des clés''' permettant d''''identifier''' cet émetteur/récepteur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaines 6 et 7==&lt;br /&gt;
&lt;br /&gt;
Afin de mieux cerner le comportement électromagnétique des modules XBee, il nous est nécessaire de comprendre leur fonctionnement et le protocole Zigbee.&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous avons cherché à souligner le parallélisme entre étude fréquentielle par le spectre et étude temporelle du signal.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PlancheXPtest.jpg|thumb|right|Planche prototype]]&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous avons paramétré la fréquence centrale de capture du HackRF. En effet, bien que le HackRF dispose d'une large bande passante, afin de se focaliser sur la porteuse, il est indispensable de configurer le HackRF en conséquence.&lt;br /&gt;
En second lieu, pour éviter une variation du RSSI (Received Signal Strength Indication) et de la puissance du signal, nous devions mettre en place une prototype de &amp;quot;planche expérimentale&amp;quot; sur laquelle devaient être fixés nos différents modules (l'antenne de reception et les Xbees).&lt;br /&gt;
&lt;br /&gt;
La position des antennes les unes par rapport aux autres est fondamentale. Afin d'optimiser la reception, les antennes doivent être parallèles.&lt;br /&gt;
&lt;br /&gt;
Chaque Xbee est identifié par un chiffre (1 ou 2). En effet, l'attribution de ces chiffres sera définitive pour ne pas perturber la cohérence des expériences. &lt;br /&gt;
Leur position est aussi fondamentale. Ainsi, en fonction que le Xbee soit emetteur ou récepteur, il sera disposé différement sur la planche.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Expérience : Le XBee 1 émetteur directement connecté en série au PC===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:GrapheGNURadio01.png|thumb|left|150px|Schéma simple d'étude fréquentielle et temporelle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette expérience est la première mettant en place un contexte (un seul Xbee émetteur connecté en série au PC, le deuxième Xbee étant inactif) et nous permettra d'étudier le plus de cas possibles.&lt;br /&gt;
&lt;br /&gt;
Nous avons tout d'abord commencé par un graphe GNURadio simple permettant l'observation du spectre et du signal et la variation de la fréquence d'étude.&lt;br /&gt;
&lt;br /&gt;
Le script python a été réécrit afin que le XBee puisse émettre une chaîne de caractère &amp;quot;HELLO&amp;quot; * 1024. En effet, même si la fréquence de balayage du module HackRF peut être grandement augmentée, il faut éviter d'aller au dessous de 0.01s, finissant par consommer de manière considérable les ressources octroyées par le CPU le cas échéant.&lt;br /&gt;
Le fait d'augmenter la taille de la chaine de caractère permet de mieux synchroniser l'étude en temps réel avec la capture des données.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc émis les données sur le canal 20 (14 en hexadécimal), soit la fréquence centrale est à 2.450GHz selon la norme Zigbee. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Etude fréquentielle&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L'étude fréquentielle est similaire à celle réalisée auparavant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div center&amp;gt;&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[Fichier:Spectrefreq2.png|thumb|center|750px|Spectre fréquentiel au canal 14]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[Fichier:Spectrogram.png|thumb|center|250px|Spectrogramme]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on peut observer sur l'analyseur de spectre GNURadio que la fréquence centrale est située 2.450GHz.&lt;br /&gt;
&lt;br /&gt;
D'autre part, l'ensemble des fréquences qui dessinent le spectre s'étalent sur une large bande de fréquence. En effet, cette technique d'étalement appelée DSSS (Direct-Sequence Spread Spectrum) utilisé par les modules XBee permet au signal d'être moins sensible aux interférences et aux brouillages. En outre, même si la puissance du spectre dans sa globalité reste la même, la densité spectrale elle diminue considérablement, rendant le signal plus &amp;quot;discret&amp;quot;.&lt;br /&gt;
La différence de puissance entre le lobe principal et les premiers lobes secondaires sont de 30 dB, ce qui est aussi commun au DSSS.&lt;br /&gt;
&lt;br /&gt;
Le spectrogramme témoigne aussi de l'étalement du signal sur un peu plus de 6 MHz (3MHz de par et d'autre de la fréquence centrale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt; Etude temporelle &amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Signal temporel.png|thumb|left|500px|Signal observable centré à 2.450GHz lors de l'émission]]&lt;br /&gt;
&lt;br /&gt;
Le signal ici est séparé en deux composantes car il s'agit d'un signal complexe. Nous avons supposé en premier temps qu'il s'agissait du signal principal décalé de 180°, ce qui n'était pas le cas.&lt;br /&gt;
Après quelques recherches, cette séparation des composantes permet de transmettre deux fois plus de données sur la même bande passante.&lt;br /&gt;
Le signal observable témoigne d'une modulation bien spécifique au XBee. En effet, on peut observer des sauts de phase à différents points, qui correspondent à une modulation par changement de phase (modulation QPSK ou Quadratic Phase-Shift Keying). Ce sont ces sauts de phases qui permettent la transmission des bits.&lt;br /&gt;
Les changements de phase s'il y a se font toutes les µs. En outre, on peut observer un décalage (offset) entre la composante Q et la composante I de µs/2 (propre à la modulation OQPSK).&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé d'enregistrer ces données brutes dans un fichier et nous l'avons étudié avec Audacity, logiciel open-source de son, et donc de signaux ! L'inconvénient avec l'interface graphique QT de GNURadio est son manque de précision lors d'un dézoom sur le signal en temps réel. Audacity permet de palier à celà !&lt;br /&gt;
En outre, on peut voir que les paquets Xbee sont reconnaissables. En effet, le signal témoigne de la taille du paquet XBee.&lt;br /&gt;
&lt;br /&gt;
Le paquet XBee est constitué d'un premier header (header physique) de 6 octets :&lt;br /&gt;
- la séquence de préambule (4 octets) constitué de 32 bits à 0&lt;br /&gt;
&lt;br /&gt;
- l'indice de début du paquet fixé à 0x7A (1 octet)&lt;br /&gt;
&lt;br /&gt;
- la longueur du paquet (1 octet);&lt;br /&gt;
&lt;br /&gt;
d'un header MAC (7 à 27 octets en fonction des informations de l'adresse), d'un bloc FCS de fin de paquet (2 octets) et l'ensemble des données (de 1 à 104 octets).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Signal2.png|thumb|right|400px|On observe graphiquement qu'un paquet est transmis en 3846µs]]&lt;br /&gt;
[[Fichier:PacketXBee.png|400px|thumb|right|Paquet XBee]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Comme dit plus haut, les signaux émis par le XBee connaissent un étalement sur le spectre par DSSS.&lt;br /&gt;
Cet étalement s'effectue en divisant chaque symbole (correspondant à une série de 4 bits) transmis en &amp;lt;B&amp;gt;&amp;lt;I&amp;gt;chips&amp;lt;/I&amp;gt;&amp;lt;/B&amp;gt;.&lt;br /&gt;
Chaque symbole, soit 4 bits, correspond à 32 chips, et donc 32 états binaires (1 octet correspond à 64 chips).&lt;br /&gt;
Dans le cas de la norme ZigBee, la transmission de chacun des chips est synchronisé sur chaque µs (1 chip toutes les µs).&lt;br /&gt;
&lt;br /&gt;
Les signaux reçus par l'antenne HackRF étaient deux sinusoïdes modulées en phase et qui s'étalaient sur une période d'environ 3840µs (3846µs graphiquement mais il y a possibilité d'erreur à l'echelle du µs).&lt;br /&gt;
Sachant qu'un octet correspond à 64µs, on a :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;N_{octets} =\frac{2*T_{signal}}{64*T_{chip}}=\frac{2*3.840*10^{-6}}{64*10^{-6}}=120 octets&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'analogie peut être effectuée entre paquet Ethernet et paquet ZigBee. En effet, la taille limite des données d'un paquet est de 104 octets. La chaîne de caractère n'étant qu'envoyée par paquet, le paquet observé n'est que de 120 octets, ce qui est cohérent avec les caractéristiques du XBee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Hello1024secs.png|thumb|none|Temps de transmission de la chaîne de caractères &amp;quot;HELLO&amp;quot; 1024 fois]] &amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:AudacitySignal2.png|thumb|none|51 Paquets XBee portent la chaîne de caractère &amp;quot;HELLO&amp;quot; 1024 fois]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 8==&lt;br /&gt;
&lt;br /&gt;
L'étude des signaux posait réellement problème de par le fait qu'une grande partie de la capture faite n'était que purement le bruit sans signal (utile plus tard pour l'étude du SNR).&lt;br /&gt;
Prenons l'exemple d'un paquet de 21 octets (un paquet contenant une seule chaîne de caractères HELLO). Le signal s'étalerait en théorie sur 21*64 chips soit 672 chips. Sachant que la modulation est une modulation QPSK, on s'étale sur un temps de 672µs.&lt;br /&gt;
En effet, le Xbee transmet toutes les 100ms.&lt;br /&gt;
Donc qu'une partie du signal nous est utile.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décider d'écrire un script qui nous permettrait d'étudier le signal dans de meilleures conditions, et donc de le filtrer.&lt;br /&gt;
&lt;br /&gt;
Chaque capture de signal effectuée est enregistrée dans un fichier par le biais du bloc fonction &amp;lt;B&amp;gt;&amp;lt;I&amp;gt;File Sink&amp;lt;/I&amp;gt;&amp;lt;/B&amp;gt; du compagnon GNURadio. Néanmoins, les fichiers obtenus sont des fichiers binaires assez lourds (environ 500Mo pour une capture de 3s), ce qui est un réel problème et qui implique le filtrage du signal.&lt;br /&gt;
&lt;br /&gt;
La bibliothèque numpy pour python nous permet en outre directement d'importer les échantillons des signaux, les traduisant du binaire à un format cible (complexe flottant 64 bits) dans un Array par le biais de la fonction:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; f = scipy.fromfile(open(&amp;quot;Nom du fichier&amp;quot;), dtype=scipy.complex64) &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La première solution pour réduire ce signal était d'imposer un threshold directement sur le signal, supérieur au bruit, mais qui conduirait à une perte d'une partie du signal à étudier.&lt;br /&gt;
La deuxième solution qui a été retenue était tout simplement de calculer l'amplitude et la phase du signal et appliquer ce même threshold à l'amplitude.&lt;br /&gt;
&lt;br /&gt;
== Semaine 9 et 10==&lt;br /&gt;
&lt;br /&gt;
A partir de la semaine 10 nous avons procéder aux expériences pour avoir suffisamment de données et en tirer des conclusions.&lt;br /&gt;
&lt;br /&gt;
Lorsqu'on fait une acquisition d'un signal xbee , on peut maintenant via un script traiter cette acquisition et récupérer seulement les parties qui nous intéressent : A savoir la partie réelle et la partie imaginaire, l'amplitude du signal et enfin la phase du signal.&lt;br /&gt;
&lt;br /&gt;
Exemple ci dessous après acquisition + traitement de notre xbee n°2 :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Traitement xbee2.png|thumb|right|redresse=2|Signal Xbee2 post-traitement ]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Constellation xbee2.png|thumb|right|redresse=2|Diagramme de constellation xbee2 après utilisation de LightSignal]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'utilisation du script LightSignal permet de retirer toutes les phases en dehors du signal. Ainsi, on peut caractériser le diagramme de constellation comme un diagramme propre à la modulation QPSK. &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
import scipy&lt;br /&gt;
import numpy&lt;br /&gt;
import sys&lt;br /&gt;
&lt;br /&gt;
def binToComplex64(name):&lt;br /&gt;
    threshold=0.10&lt;br /&gt;
    tmp=scipy.fromfile(open(name+&amp;quot;_PhaseMeg&amp;quot;), dtype=scipy.complex64)&lt;br /&gt;
    tmp2=scipy.fromfile(open(name), dtype=scipy.complex64)&lt;br /&gt;
    &lt;br /&gt;
    f2 = open(name+&amp;quot;_filtre&amp;quot;, &amp;quot;w+&amp;quot;) &lt;br /&gt;
    f = open(name+&amp;quot;_PhaseMeg_filtre&amp;quot;,&amp;quot;w+&amp;quot;)&lt;br /&gt;
    &lt;br /&gt;
    p=1&lt;br /&gt;
    size=tmp.__len__()&lt;br /&gt;
    size2=tmp2.__len__()&lt;br /&gt;
    &lt;br /&gt;
    if size &amp;gt; size2:&lt;br /&gt;
        size=size2&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    ground=False&lt;br /&gt;
    newListSignal=[]&lt;br /&gt;
    newListMagnPh=[]&lt;br /&gt;
    for val in range(0,size): &lt;br /&gt;
        if(val&amp;gt;=(size/100)*p):&lt;br /&gt;
            print(str(p)+&amp;quot; %&amp;quot;)&lt;br /&gt;
            p=p+1&lt;br /&gt;
        if(tmp[val].real&amp;gt;threshold):&lt;br /&gt;
            if(ground==True):&lt;br /&gt;
                for i in range(0,1000):&lt;br /&gt;
                    newListSignal.append(numpy.complex64(0))&lt;br /&gt;
                    newListMagnPh.append(numpy.complex64(0))&lt;br /&gt;
                ground=False&lt;br /&gt;
            newListSignal.append(tmp2[val])&lt;br /&gt;
            newListMagnPh.append(numpy.complex64(tmp[val].real+tmp[val].imag*0.3j))&lt;br /&gt;
        else:&lt;br /&gt;
            ground=True&lt;br /&gt;
    &lt;br /&gt;
    tmp=numpy.asarray(newListMagnPh)&lt;br /&gt;
    tmp.tofile(f)&lt;br /&gt;
    tmp2=numpy.asarray(newListSignal) &lt;br /&gt;
    tmp2.tofile(f2)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    try:&lt;br /&gt;
        binToComplex64(sys.argv[1])&lt;br /&gt;
    except IndexError:&lt;br /&gt;
        print(&amp;quot;Donnez le nom du fichier\n&amp;quot;)&lt;br /&gt;
    except IOError:&lt;br /&gt;
        print(&amp;quot;Le fichier n'existe pas\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__=='__main__':&lt;br /&gt;
    main()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le diagramme de constellation témoigne de nouveau du type de modulation utilisé par le module XBee.&lt;br /&gt;
En effet, on observe quatre points de part et d'autre des axes de quadrature et d'inphase.&lt;br /&gt;
&lt;br /&gt;
==Semaine 11==&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé cette semaine d'étudier, ce qui est selon pour nous, l'une des pistes fondamentales de notre projet, et plus particulièrement de l'étude de nos signaux : le rapport signal bruit.&lt;br /&gt;
&lt;br /&gt;
L'objectif de cette semaine et de celle à venir était, à partir du signal acquis par le hackrf, d'effectuer le calcul du SNR (signal-to-noise ratio) tel que :&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;SNR =\frac{P_{signal}}{P_{bruit}}&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le script python qui nous a permis de communiquer entre les deux shields Xbee se verra amélioré afin de faire plusieurs acquisition des signaux lors de la communication entre les Xbee, effectuer une moyenne statistique, et de même lorsqu'il n'y a pas de communication.&lt;br /&gt;
&lt;br /&gt;
Nous avons essayé d'approcher le SNR directement depuis l'interface de GnuRadio par le biais de l'utilitaire graphique et le langage en bloc, néanmoins nous procéderons à l'étude de ce rapport avec Scilab ou Matlab.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaines supplémentaires==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Expérience : Variation de l'amplitude===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 emet une chaîne de caractères HELLO*256 &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L'objectif de cette expérience est d'étudier le temps de variation de l'amplitude du signal entre l'état où le signal n'est pas reçu et l'état où le signal est réceptionné et donc l'amplitude constante.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats &amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
A 20MHz de fréquence d'echantillonage, le temps de variation moyen est de 3 échantillons, soit 0.15µs, pour toutes les captures faîtes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Conclusion sur l'expérience &amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
L'expérience n'a pas été concluante. Même si elle nous a permis de voir quelques différences (probablement provoquées pas des erreurs de capture et d'analyse), le HackRF nous limite beaucoup sur ce point de vue là. En effet, la fréquence d'échantillonage étant limitée à 20MHz, le HackRF n'est pas suffisamment précis pour capturer un nombre d'échantillons nous permettant de confirmer une quelconque hypothèse. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Code python utilisé pour l'étude du signal&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
def etudeAmplitude(name, liste_temps):&lt;br /&gt;
&lt;br /&gt;
    threshold_0=0.05 # Threshold&lt;br /&gt;
    threshold_1=0.4&lt;br /&gt;
    max_transition_time=50 #O&lt;br /&gt;
&lt;br /&gt;
    amppha=scipy.fromfile(open(name+&amp;quot;_PhaseMeg&amp;quot;), dtype=scipy.complex64) &lt;br /&gt;
&lt;br /&gt;
    p=1&lt;br /&gt;
    size=amppha.__len__()&lt;br /&gt;
    &lt;br /&gt;
    debut=1&lt;br /&gt;
    tps_variation=0 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    transition=False # Vérifie si le signal est en transition ou stable&lt;br /&gt;
&lt;br /&gt;
    for val in range(debut,size):&lt;br /&gt;
        if(val&amp;gt;=((size-debut)/100)*p):&lt;br /&gt;
            print(str(p)+&amp;quot; %&amp;quot;)&lt;br /&gt;
            p=p+1&lt;br /&gt;
&lt;br /&gt;
        if(amppha[val].real&amp;gt;threshold_0 and amppha[val].real&amp;lt;threshold_1): # Phase de transition du signal&lt;br /&gt;
            if(transition==False):&lt;br /&gt;
                transition=True&lt;br /&gt;
            tps_variation=tps_variation+1&lt;br /&gt;
&lt;br /&gt;
        elif(transition==True and amppha[val].real&amp;gt;threshold_1):&lt;br /&gt;
            if(amppha[val].real&amp;gt;=amppha[val-1].real-amppha[val-1].real*0.05 and amppha[val].real&amp;lt;=amppha[val-1].real+amppha[val-1].real*0.05): # L'amplitude du signal est stable&lt;br /&gt;
                if(tps_variation &amp;lt; max_transition_time):&lt;br /&gt;
                    liste_temps.append(tps_variation)&lt;br /&gt;
&lt;br /&gt;
                transition=False&lt;br /&gt;
                tps_variation=0&lt;br /&gt;
            else:&lt;br /&gt;
                tps_variation=tps_variation+1&lt;br /&gt;
        else:&lt;br /&gt;
            transition=False&lt;br /&gt;
            tps_variation=0&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Expérience : Temps de calcul du FCS entre le XBee1 et et le XBee2===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 1&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 et XBee2 sont alimentés sur 5V VCC par USB (connecté à l'ordinateur)&amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 et XBee2 disposent du firmware : 10EF &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 est d'abord emetteur et le XBee2 est recepteur puis inversement. Aucun paquet ACK n'est renvoyé de la part du recepteur &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On transmet la chaine de caractère HELLO 256 fois toutes les 1 secs&lt;br /&gt;
Les données étant assez conséquentes, le Xbee transmet plusieurs fragments du paquet.&lt;br /&gt;
L'objectif de cette expérience est d'étudier le temps entre chaque fragment d'un paquet.&lt;br /&gt;
L’espace de temps entre chacun des paquets permet de calculer le FCS (frame check sequence) afin de minimiser les erreurs de transmission.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:ChecksumGraphe.png|thumb|left|redresse=2|Les différents temps à mesurer]]  &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Néanmoins, l’étude de ces “temps morts” se voit entravée par le fait que le module HackRF ne permette pas d’obtenir un signal clair sur plus de 5 secondes.&lt;br /&gt;
En outre, pour 5 secondes d’étude et pour une fréquence d’échantillonage de 20MHz (soit un temps Te=5.10e8), on compte 100.000.000 d’échantillons.&lt;br /&gt;
Le CPU lors de la capture était grandement sollicité, ce qui explique le fait que la capture soit compromise.&lt;br /&gt;
Pour régler ce problème, on a écrit un script shell de capture.&lt;br /&gt;
Ce script consiste à:&lt;br /&gt;
&amp;lt;br&amp;gt;- effectuer une capture d’une durée de 1 sec&lt;br /&gt;
&amp;lt;br&amp;gt;- d’enregistrer la capture&lt;br /&gt;
&amp;lt;br&amp;gt;- d’effectuer un traitement de ces paquets par un algorithme python en étudiant le temps entre chacun des fragments. Ce temps sera obtenu en nombre d’échantillons, défini avec un seuil d’acceptation absolu entre 150.000 et 300.000 échantillons (pour bien capturer ces temps intermédiaires et pas les temps provoqués par des signaux parasites ou du bruit), et pour affiner l’étude, on impose un seuil d’erreur de +-10% autour de la moyenne. La moyenne est calculée en continue&lt;br /&gt;
&amp;lt;br&amp;gt;- l’ensemble des valeurs obtenues sont enregistrées dans un fichier&lt;br /&gt;
&amp;lt;br&amp;gt;- on réeffectue la capture …&lt;br /&gt;
&lt;br /&gt;
On répète le processus un certains nombre de fois afin d’obtenir un nombre de valeurs nous permettant de nous conforter sur l'issue de l'expérience (environ 1000 valeurs)&lt;br /&gt;
&lt;br /&gt;
La capture et l'étude de chacun des modules dure une à deux heures.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats :&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans le cas du XBee1 (à gauche) et du XBee2 (à droite), voici les résultats obtenus :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Xbee1Graphe256.png|thumb|left|redresse=2|On peut observer des pics caractéristiques à l'envoi]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBee2Graphe256.png|thumb|left|redresse=2|Les mêmes pics caractéristiques confirment un comportement non-aléatoires du module]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
XBee1 : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 259675,81&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 8369.7417&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 70052576.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
XBee2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 258762.58&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 9165.4097&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 84004736.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les graphes présentent le nombre de répétitions des temps de calcul de fragements.&lt;br /&gt;
&lt;br /&gt;
On peut voir des pics spécifiques à certains points dans les deux expériences. Ces pics sont caractéristiques et au module XBee, et à la chaîne de caractère HELLO. Les deux expériences étant effectuées dans le même contexte, &lt;br /&gt;
&lt;br /&gt;
De même que pour le second Xbee, on retrouve des pics bien distincts à certains points.&lt;br /&gt;
&lt;br /&gt;
En outre, on peut voir que ces pics bien distincts se rapprochent de ceux du premier Xbee.&lt;br /&gt;
Néanmoins, même si la moyenne varie que très peu par rapport aux deux Xbee, la variance est assez différente.&lt;br /&gt;
&lt;br /&gt;
Pour confirmer ces observations, il est peut être nécessaire de répéter la même expérimentation sur un nombre d'échantillons plus grand.&lt;br /&gt;
&lt;br /&gt;
Ainsi, afin de confirmer la conjecture, on décide de faire d’autres captures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En superposant les deux graphes (Xbee1 en rouge et Xbee2 en bleu), on peut voir qu'il y a moins de dispersion dans le cas du XBee1, plus centré sur des valeurs précises, contrairement au Xbee2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:XBee1Xbee2Graphe.png|thumb|left|redresse=2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour les deux nouveaux échantillons, on a les caractéristiques suivantes :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Xbee1 sur 1688 échantillons&amp;lt;/U&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 260230.3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 8427.3923&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 71020941&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Xbee2 sur 1722 échantillons&amp;lt;/U&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 259899.41&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 9831.5106&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 96658601&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:SignalAT328.png|thumb|right|Signal observé dans le cas de l'ATMega328p]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 2&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 est connecté à un Arduino ATMega328p par le biais d'un shield Libelium &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 dispose du firmware 10EF &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; On envoie exactement les mêmes données que précédemment, la chaîne de caractères HELLO*256 toutes les 0.5s &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hormis l'amplitude du signal qui paraît plus faible lors de la transmission par ATMega328p, le message transmis ne change PAS. Même si nous avons fait en sorte que la periode de transmission soit la même que pour l'expérience précédente, elle n'affecte en rien l'issue de l'expérience car c'est le temps de division de paquet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:ATMega328.png|thumb|650px|Observation du temps de division d'un paquet dans le cas de l'ATMega328p]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:ATMega2560.png|thumb|650px|Observation du temps de division d'un paquet dans le cas de l'ATMega2560]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour les nouveaux échantillons, on a les caractéristiques suivantes :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Xbee1 sur ATMega328p sur 706 échantillons&amp;lt;/U&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 265818.58&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 4748.5965&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 22549168&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Xbee1 sur ATMega2560 sur 711 échantillons&amp;lt;/U&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 262877.83&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 3675.037&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 13505897&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut observer une distinction significative entre une transmission effectuée directement par la machine et la transmission depuis les modules composés d'un ATMega328p ou d'un ATMega2560. En effet, on n'observe pas les mêmes pics caractéristiques dans cette expérience comparé à l'expérience précédente. Même si la moyenne est quasi la même, l'ecart type est plus faible, ainsi que la variance. En outre, de même que pour l'expérience précédente, l'écart-type entre ATMega328p et ATMega2560 est aussi différent. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 3&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 est dans les mêmes conditions que durant la première expérience &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; On change le firmware du XBee1 pour le 10ED &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:FW10ED.png|thumb|left|400px|Observation du temps de division d'un paquet lors du changement du firmware]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Xbee1 sur 821 échantillons&amp;lt;/U&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 259735.52&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 8501.3996&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 72273796&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Après avoir changé le firmware, on a pu voir que les résultats ne changeaient pas par rapport à l'expérience témoin. On est même très proche des temps du XBee bien que l'expérience ne s'est pas faîte dans les mêmes conditions (pas au même endroit, donc possibilité de perturbations).&lt;br /&gt;
On peut donc en conclure que le firmware n'a pas un impact sur le temps de calcul du FCS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Conclusion de l'expérience&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
L’hypothèse qui est que la variance des temps &amp;quot;morts&amp;quot; entre chaque fragments de paquet, soit le temps de calcul du FCS pour le signal émis peut être considéré comme “clé” de distinction d’un module Xbee n'est donc pas à négliger. &lt;br /&gt;
Le temps de calcul du FCS semble unique entre chaque paquet paraît une empreinte propre au matériel.&lt;br /&gt;
&lt;br /&gt;
On peut même considérer que cette étude peut distinguer un module Xbee d'un autre électromagnétiquement parlant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Code python utilisé pour l'étude du signal&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def etudeSubdivPaquet(name, inter_time_values):&lt;br /&gt;
&lt;br /&gt;
threshold = 0.30&lt;br /&gt;
ground = false&lt;br /&gt;
p=1&lt;br /&gt;
&lt;br /&gt;
## On converti chacun des nombres binaires en complexe 64 (deux flottants 32 bits)##&lt;br /&gt;
amppha=scipy.fromfile(open(name+&amp;quot;_PhaseMeg&amp;quot;), dtype=scipy.complex64) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
## On récupère la taille du tableau de complexes (taille du signal) ##&lt;br /&gt;
size=amppha.__len__()&lt;br /&gt;
&lt;br /&gt;
    debut=0&lt;br /&gt;
    inter_time=0&lt;br /&gt;
    min_limit=150000&lt;br /&gt;
    max_limit=350000&lt;br /&gt;
    accept_range=1./10. ## Permet de mettre un seuil d'intervalle d'acceptation&lt;br /&gt;
    signalFnd=False&lt;br /&gt;
&lt;br /&gt;
    for val in range(debut,size):&lt;br /&gt;
        if(val&amp;gt;=((size-debut)/100)*p):&lt;br /&gt;
            print(str(p)+&amp;quot; %&amp;quot;)&lt;br /&gt;
            p=p+1&lt;br /&gt;
&lt;br /&gt;
        if(amppha[val].real&amp;gt;threshold):&lt;br /&gt;
            if(ground==True):&lt;br /&gt;
                if(signalFnd==True):&lt;br /&gt;
                    if(len(inter_time_values)&amp;gt;0):&lt;br /&gt;
                        moy=moyenne(inter_time_values)&lt;br /&gt;
                        if(inter_time &amp;gt;= moy-accept_range*moy and inter_time &amp;lt;= moy+accept_range*moy):&lt;br /&gt;
                            print(&amp;quot;Yes &amp;quot;+str(inter_time))&lt;br /&gt;
                            inter_time_values.append(inter_time)&lt;br /&gt;
                        inter_time=0&lt;br /&gt;
                    elif(inter_time&amp;gt;=min_limit and inter_time&amp;lt;=max_limit):&lt;br /&gt;
                        inter_time_values.append(inter_time)&lt;br /&gt;
                else:&lt;br /&gt;
                    signalFnd=True&lt;br /&gt;
                ground=False&lt;br /&gt;
        else:&lt;br /&gt;
            ground=True&lt;br /&gt;
            if(signalFnd==True):&lt;br /&gt;
                inter_time=inter_time+1&lt;br /&gt;
&lt;br /&gt;
    if(len(inter_time_values)&amp;gt;0):&lt;br /&gt;
        print(&amp;quot;Moyenne &amp;quot;+ str(moyenne(inter_time_values)))&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Rencontre avec Etienne Helluy Lafont ===&lt;br /&gt;
&lt;br /&gt;
Bien que plusieurs pistes ont pu être explorées, notre manque d'expertise dans le domaine de la radio logicielle nous a fait défaut sur nos recherches. En effet, après avoir calculé le SNR d'un de nos signaux, nous nous sommes retrouvés avec des résultats assez incohérents. De nombreuses erreurs peuvent se glisser et nous avions besoin de conseils à ce sujet.&lt;br /&gt;
&lt;br /&gt;
Etienne Helluy-Lafont est un doctorant qui fait sa thèse sur les sondes pour la détection d’intrusions dans les architectures réseau hétérogènes et massivement distribuées. Il développe un outil permettant d'analyser le spectre environnant, de donner des informations sur les signaux émis sur certains canaux et même de démoduler ces signaux. Son programme en C est flexible puisqu'il est adapté pour beaucoup d'antennes (Une des librairies qu'il utilise est SoapySDR [https://github.com/pothosware/SoapySDR/] qui possède des &amp;quot;codec&amp;quot; dont un pour notre HackRF !). Nous nous sommes servi de son outil afin d'avoir de bien meilleurs résultats quant aux expériences orientées SNR des Xbee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:SDRProgC.gif|center|Le programme sniffe l'environnement et renvoie les caractéristiques lors de la reception d'un signal]]&lt;br /&gt;
&lt;br /&gt;
L'avantage de l'utilisation de l'application nous permet directement de nous focaliser sur les paquets correctement reçus et non les données parasites qui peuvent perturber l'antenne. En effet, le programme reste à l'écoute de l'environnement électromagnétique sur une bande de fréquence autour de la fréquence d'écoute du HackRF. Lors de la reception d'un signal, le programme démodule le signal et vérifie si le CRC (ou le FCS pour le Frame Check Sequence) et les données concordent. Si c'est le cas, le CRC nous renvoie 1. Il s'agit là alors d'un signal. L'utilisation ainsi de ce programme nous permet de ne pas obtenir de valeurs parasites pour le SNR et filtrer directement les informations qui nous sont intéressantes.&lt;br /&gt;
&lt;br /&gt;
L'algorithme que nous avions écrit en Python est correct, néanmoins l'étude sur un signal enregistré requiert le chargement de l'intégralité du signal. Là où nos recherches se basent sur de la capture et du traitement post-capture, le travail d'Etienne se base sur un traitement du signal en temps-réel, ce qui nous permet ainsi de gagner un temps considérable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Expérience : Variation du Rapport Signal Bruit en fonction de la distance de reception ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:FFTSNR.png|thumb|left|redresse=2|Calcul du SNR par FFT]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Fenetre.png|thumb|left|redresse=2|Calcul du SNR par fenêtre glissante]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L'objectif de cette expérience était de visualiser comment le rapport signal bruit (ou SNR) varie en fonction de la distance. &lt;br /&gt;
En effet, nous avions mis en suspens l'expérience qui consistait en la capture du SNR dû aux valeurs instables que l'on avait. &lt;br /&gt;
&lt;br /&gt;
La première idée était de faire une FFT du signal et de calculer le rapport en prenant la moyenne de sa puissance sur une bande de 2.4MHz (1.2Mhz de part et d'autre de la fréquence de capture du HackRF).&lt;br /&gt;
&lt;br /&gt;
Néanmoins, les caractéristiques du XBee (du point de vue de l'étalement spectral) rend le calcul du SNR imprécis. A la suite de la capture de signaux et de l'étude de ces mêmes signaux, les valeurs nous paraissaient incohérentes. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:SNRcalc.png|thumb|left|470px|Pics de SNR]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons donc procédé à une seconde méthode de calcul qui consiste à utiliser une fenêtre glissante de taille 2^k échantillons. &lt;br /&gt;
Pour chaque échantillon du signal, on calculait le SNR tel que :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;SNR =\frac{P_{signal+bruit}}{P_{bruit}}=\frac{|A_{signal+bruit}|^2}{|A_{bruit}|^2}&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans notre cas, on a :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;SNR_x =20.log \frac{Moyenne(W_x[2^{k-1}:2^k])}{Moyenne(W_x[0:2^{k-1}-1])}&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
W_x étant la fenêtre à l'échantillon x du signal, le rapport signal bruit est obtenu lorsqu'on a un pic.&lt;br /&gt;
La fenêtre choisie doit être suffisamment grande pour avoir une précision optimale.&lt;br /&gt;
On impose ainsi un threshold pour éviter des erreurs pouvant influencer les résultats de manière considérable.&lt;br /&gt;
Ainsi, on obtient les valeurs SNR cherchées.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous voulons donc vérifier si la mesure du SNR est une expérience pertinente pour l'identification du matériel. Nous allons prendre plusieurs XBee et mesurer le SNR à différentes distances de l'antenne SDR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 1&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 et XBee2 sont alimentés sur 3.3V VCC par USB (connecté à l'ordinateur)&amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 et XBee2  sont des modèles série s1&amp;lt;/I&amp;gt; disposent du firmware : 10EF&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee3 et XBee4 sont des modèles XBeePro &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Par défaut tous nos xbee disposent du même firmware (10EF), sauf si précisé que non &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Nous cherchons à observer la différence entre le XBee1 et XBee2 dans la même situation. &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Durant les expériences, le montage XBee1 connecté en USB sera le XBee témoin. &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PointsMoyenneXBee1Dist.png|thumb|left|470px|Les différentes valeurs du SNR acquises en fonction de la distance pour le XBee1]]&lt;br /&gt;
&lt;br /&gt;
Dans notre cas, le modèle XBee1 connecté en série à notre machine nous a servi de composant témoin afin d'étudier les signaux des autres modèles. En effet, suite à la capture et l'étude des signaux, on peut voir que le nuage de points qui constitue notre graphe témoigne d'un phénomène électromagnétique ondulatoire quant au champ. Avec la distance, plus l'on éloigne le module, plus le rapport signal sur bruit diminue (le contraire nous aurait étonné). En outre, la variation ondulatoire peut être caractérisée par le champs éléctrique.&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé de refaire cette expérience avec les trois autres XBee directement connectés à notre machine.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ALLXBEE comparaison SNR distance.png|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
De part les potentielles erreurs et les différentes perturbations électromagnétiques ambiantes, la valeur du SNR peut être affectée. Il n'est pas possible directement par les caractéristiques du rapport signal bruit d'effectuer le distinguo entre le XBee1 et le XBee2 (contrairement à l'expérience basée sur la subdivision de paquets). Cependant, les XBee3 et XBee4 présentent une caractéristique commune. Le SNR est beaucoup plus élevé. &lt;br /&gt;
&lt;br /&gt;
En effet, le pic de courant d'un XBee est de 45mA à la transmission pour une alimentation de 3.3V en tension continu, tandis qu'un module XBee pro, le pic de courant atteint les 150mA. Cette différence électronique permet ainsi au XBee pro de communiquer sur une plus grande zone (750m contre 90m pour un XBee simple).&lt;br /&gt;
&lt;br /&gt;
Ainsi, on peut conclure de cette expérience que le SNR est un élément témoin de la consommation énergétique d'un composant électrique (du moins de l'antenne).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:XBEE1 hardware comparaison SNR distance.png|thumb|400px|right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 2&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 est d'abord connecté à un Arduino UNO 328P par le biais d'un shield XBee Libelium puis est connecté à un Arduino Mega 2560 par le biais du même shield &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 dispose du firmware : 10EF &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
On peut observer que même si l'unité de contrôle n'est pas l'ordinateur mais le micro-contrôleur (ici ATMega2560 et ATMega328P), le rapport signal bruit ne change pas réellement. Néanmoins, il était pour nous intéressant de noter qu'un léger gap se créé à 30 et 40 cm de la SDR entre la communication USB et la communication avec les micro-contrôleurs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:XBEE3 hardware comparaison SNR distance.png|thumb|400px|right]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 3&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; L'expérience est similaire que pour le module XBee1 mais avec le XBee3 (pro) &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee3 est d'abord connecté à un Arduino UNO 328P par le biais d'un shield XBee Libelium puis est connecté à un Arduino Mega 2560 par le biais du même shield &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee3 dispose du firmware : 10EF &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
En outre, les résultats obtenus lors de l'expérience avec le XBee3 nous indique que le phénomène ondulatoire observé durant les tests précédents est moins souligné dans la communication avec les micro-contrôleur (toujours à 30 et 40cm) et celà après plusieurs tests.&lt;br /&gt;
&lt;br /&gt;
Des tests plus précis auraient été plusieurs avantageux et nous auraient permis de trancher sur la décision de l'importance du SNR concernant la différenciation de différentes unités de contrôle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:XBEE1 firmware comparaison SNR distance.png|thumb|400px|right]]&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 4&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 ici est connecté en série et dispose dans un premier temps du firmware 10EF (le firmware le plus récent) &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Après capture et expérimentation, on décide de réeffectuer la même chose avec le même XBee (XBee1) avec le firmware 10ED &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
Les acquisitions étant faites dans les mêmes conditions, il semblerait que le changement de firmware ait un petit impact sur la puissance d’émission : Cette petite différence de décibel ne semble pas aléatoire puisqu’on peut clairement voir que la courbe orange reste toujours inférieure à la courbe bleue, or le niveau de bruit est resté inchangé. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Conclusion de l'expérience&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; : &lt;br /&gt;
&lt;br /&gt;
'''Hardware''' : Les paquets émis via liaison série ont plus de puissance que ceux émis grâce aux arduino UNO et MEGA notamment à 10 cm, 40 cm et 50 cm. On remarque aussi une baisse du SNR moyen à 30 cm surtout en liaison série et ce, avec nos quatres XBEE. Coté ATMEGA , le SNR reste plutôt stable et décroit très doucement. Ainsi lors d’un calcul de SNR/Distance on pourra estimer si le XBEE est connecté au PC en liaison série ou à une ATMEGA quelconque selon si son SNR suit l’allure ou non de la courbe de la transmission classique. &lt;br /&gt;
&lt;br /&gt;
''En cherchant des raisons à cela, on se demande si ce phénomène n’a pas un rapport avec la longueur d’onde du signal modulé : la longueur d’onde est de 12 cm à 2.455 GHz, et la distance 30 cm coïnciderait avec sa demi-longueur d’onde.''&lt;br /&gt;
&lt;br /&gt;
Par le biais de ces mesures, on a pu démontrer que le matériel a un impact sur le SNR en fonction de la distance. A ce stade nous ne pouvons toujours pas déceler si le XBEE est géré par un microcontrôleur ATMEGA328P ou un ATMEGA2560.. Peut-être que l'étude du SNR selon le canal d'émission nous apportera des réponses? &lt;br /&gt;
&lt;br /&gt;
'''Software''' : Il n'y a pas de différence notable à en sortir de l'expérience quant à la partie logicielle. Nous ne pouvons pas nous avancer sur l'influence du firmware sur la puissance du signal uniquement par cette expérience.&lt;br /&gt;
&lt;br /&gt;
===Expérience : Variation du Rapport Signal Bruit en fonction du canal de fréquence===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'expérience s'effectue de la même manière que précédemment. L'algorithme utilisé est le même. Néanmoins, nous verrons comme le SNR varie ici non pas en fonction de la distance mais en fonction du canal choisi. Pour celà, on choisira 3 canaux : le canal 0x11 (17), le canal 0x13 (19) et le canal 0x15 (21).&lt;br /&gt;
En effet, ces canaux n'ont pas été choisis aléatoirement. Lors de nos études, on a observé le XBee Pro ne transmettait pas sur certains canaux particuliers.&lt;br /&gt;
&lt;br /&gt;
Etait-ce dû à une erreur de manipulation ?&lt;br /&gt;
&lt;br /&gt;
Afin d'être sûr, on a pris des canaux qui était communs aux deux modèles (série S1 et Pro).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ALLXBEE comparaison SNR freq.png|thumb|400px|left]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 1&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt;Les XBee1, XBee2, XBee3 et XBee4 sont connectés au PC et sont à 10 cm de l'antenne SDR. &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt;Ils disposent du même firmware : 10ef &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt;Les XBee transmettent d'abord sur le canal 0x11, sur le canal 0x13 et sur le canal 0x15 &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats &amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
Il n'y a pas réellement de conclusion à tirer dans ce contexte. On ne fait que confirmer la différence de SNR entre le XBee de série S1 et le XBee Pro, différence qu'on observait déjà lors de l'expérience précédente.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:XBEE1 hardware comparaison SNR freq.png|thumb|400px|left]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 2&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt;Les XBee1 est d'abord connecté au PC comme précédemment par shield. On le connecte par la suite à l'ATMega328p puis à l'ATMega2560. Il se trouve à 10 cm de l'antenne SDR. &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt;Ils disposent du même firmware : 10ef &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt;Les XBee transmettent d'abord sur le canal 0x11, sur le canal 0x13 et sur le canal 0x15 &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats &amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
On observe que le rapport Signal Bruit lors de la transmission sur PC est supérieur au SNR transmis par l'ATMega328p et l'ATMega2560.&lt;br /&gt;
On observe en plus une légère différence entre celui de l'ATMega328p et l'ATMega2560. La puissance des microprocesseurs se reflèterait-elle sur le signal ?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:XBEE3 hardware comparaison SNR freq.png|thumb|400px|left]]&lt;br /&gt;
[[Fichier:XBEE4 SNR freq.png|thumb|400px|left]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 3&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt;Les XBee3 est d'abord connecté au PC comme précédemment par shield. On le connecte par la suite à l'ATMega328p puis à l'ATMega2560.&amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt;On réeffectue la même expérience avec le XBee4 &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt;Ils disposent du même firmware : 10ef &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt;Les XBee transmettent d'abord sur le canal 0x11, sur le canal 0x13 et sur le canal 0x15 &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats &amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
On observe la même chose que pour le contexte précédent, il y a une différence entre le SNR du XBee3 témoin et de celui relié aux micro-contrôleurs. L'erreur n'est pas à négliger, car la distance peut grandement influencer sur l'amplitude du signal. On considère une marge d'erreur de +-0,2cm lors de cette expérience, celà même si les résultats ne s'opposent à ceux du contexte précédent.&lt;br /&gt;
Pour le XBee3 et XBee4, les phénomènes sont semblables.&lt;br /&gt;
Celà nous conforte dans l'identité d'une identité électromagnétique pour un matériel.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Conclusion de l'expérience &amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
Après avoir comparé tous les graphes, on peut dire que systématiquement la puissance émise selon les canaux est la même pour chaque hardware : &lt;br /&gt;
SNR_série &amp;gt; SNR_ATMEGA2560 &amp;gt; SNR_ATMEGA328&lt;br /&gt;
Cependant, les courbes ne suivent pas un pattern caractéristique qui permettrait à l’aide à l’identification du matériel. Si par exemple deux XBEE émettent avec un hardware différent, on pourra seulement conclure « Les XBEE n’utilisent pas le même matériel pour émettre ». Dans un contexte particulier, on pourrait distinguer le nombre de modules sans néanmoins les identifier.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Code python utilisé pour l'étude du signal&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def SNRStudy(name):&lt;br /&gt;
    tmp=scipy.fromfile(open(name+&amp;quot;_PhaseMeg&amp;quot;), dtype=scipy.complex64)&lt;br /&gt;
&lt;br /&gt;
    f = open(name+&amp;quot;_SNR_Values&amp;quot;,&amp;quot;a&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    p=1&lt;br /&gt;
    size = tmp.__len__()&lt;br /&gt;
    magnitude = (numpy.real(tmp)).tolist()&lt;br /&gt;
&lt;br /&gt;
    threshold=10&lt;br /&gt;
&lt;br /&gt;
    P=0&lt;br /&gt;
    SNR_graph=[]&lt;br /&gt;
    SNR=[]&lt;br /&gt;
&lt;br /&gt;
    win_sz=64&lt;br /&gt;
&lt;br /&gt;
    if(size&amp;gt;=win_sz):&lt;br /&gt;
        for val in range(0,size-win_sz):&lt;br /&gt;
&lt;br /&gt;
            if(val&amp;gt;=((size-win_sz)/100)*p): # Affiche l'état de l'étude&lt;br /&gt;
                print(str(p)+&amp;quot; %&amp;quot;)&lt;br /&gt;
                p=p+1&lt;br /&gt;
&lt;br /&gt;
            SNR_graph.append( 20*math.log((numpy.mean(magnitude[val + win_sz/2 : val + win_sz-1]))/(numpy.mean(magnitude[val+0 : val+win_sz/2-1])), 10) )&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
    size=len(SNR_graph)&lt;br /&gt;
&lt;br /&gt;
    for i in range(1, size-1):&lt;br /&gt;
        if (SNR_graph[i]&amp;gt;SNR_graph[i-1] and SNR_graph[i]&amp;gt;SNR_graph[i+1] and SNR_graph[i]&amp;gt;threshold):&lt;br /&gt;
            SNR.append(SNR_graph[i])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    tmp=numpy.asarray(SNR)&lt;br /&gt;
    tmp.tofile(f)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    try:&lt;br /&gt;
        SNRStudy(sys.argv[1])&lt;br /&gt;
    #except IndexError:&lt;br /&gt;
        #print(&amp;quot;Donnez le nom du fichier\n&amp;quot;)&lt;br /&gt;
    except IOError:&lt;br /&gt;
        print(&amp;quot;Le fichier n'existe pas\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Conclusion du projet=&lt;br /&gt;
&lt;br /&gt;
Durant ce projet, nous avons cherché à determiner l'impact potentiel du matériel et informatique sur le champ électromagnétique. Dans l'idée commune, le signal émis par une antenne de même type est censé être le même, afin de le démoduler correctement au niveau de la reception. Néanmoins, il est très rare d'un point de physique d'avoir des signaux parfaitement identiques et celà dans les mêmes conditions expérimentales.&lt;br /&gt;
&lt;br /&gt;
On a pu voir que de nombreux facteurs témoignaient de potentielles - et il est important de souligner le terme potentielles - caractéristiques uniques provoquées non pas par l'antenne émettrice, mais par le matériel et/ou le logiciel. En effet, les conjectures émises en conclusion des expériences ne peuvent être validées de manière absolue, mais sont néanmoins la preuve d'une réelle influence du matériel et sont selon nous des pistes à développer (le modèle de boîte noire se rapporte à notre projet). &lt;br /&gt;
&lt;br /&gt;
Dans le cadre de notre projet, c'est l'antenne XBee qui a été étudiée.&lt;br /&gt;
&lt;br /&gt;
A l'issue de ces expériences, nous avons pu mettre en évidence de nombreux points :&lt;br /&gt;
&lt;br /&gt;
- les signaux émis par les XBee respectent les caractéristiques temporelles et fréquentielles données par leur datasheet (première expérience)&lt;br /&gt;
&lt;br /&gt;
- le firmware ne semble pas avoir pas de réel impact sur les signaux, ni sur la variation d'amplitude&lt;br /&gt;
&lt;br /&gt;
- le SNR témoigne de la puissance d'émission de l'antenne et permet de distinguer un module XBee Pro d'un module Xbee Série S1, permet aussi de différencier les signaux (sans nécessairement les identifier) et présente un potentiel gap entre un signal émis directement par série et un signal émis par un Arduino.&lt;br /&gt;
&lt;br /&gt;
- le temps de fragmentation d'un paquet transmis ainsi que le calcul du FCS montre un schéma pouvant potentiellement être unique à tout un chacun des composants.&lt;br /&gt;
&lt;br /&gt;
Nous aurions pu faire d'autres expériences pour nous conforter sur nos positions, néanmoins, nous n'avions pas trouvé d'autres d'idées qui pouvaient être réalisées avec nos outils (la variation de l'amplitude du signal nous a montré que le HackRF n'est pas exempt de défaut).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ce projet a été pour nous une expérience nouvelle. Là où la plupart des projets étaient plus orientés à la conception et la réalisation, avec un objectif bien défini, le notre lui était tout autre. En effet, l'approche était plus expérimentale et orientée vers la recherche.&lt;br /&gt;
&lt;br /&gt;
Les premières pistes de ce projet, bien qu'elles ne soient pas à négliger, se basaient sur les fuites électromagnétiques dispersées par les différents composants électroniques et informatiques d'un système. Néanmoins, avec le matériel et les compétences actuelles, il nous aurait été difficile de mener à bien ce projet de recherche et de poursuivre nos idées.&lt;br /&gt;
Ainsi, le fait d'étudier les signaux directement par canal direct et non annexe (pas de CEM), nous permettant de chercher des potentielles caractéristiques uniques (le terme utilisé étant les clés) était donc la piste privilégiée.&lt;br /&gt;
&lt;br /&gt;
La difficulté n'en était pas amoindrie. De nombreux obstacles devaient être franchis.&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, il nous a été nécessaire de nous initier à la radio logicielle, qui était l'outil principal pour mettre en oeuvre nos idées. Néanmoins, hormis dans le cadre de la démodulation de signaux et dans celui du Hacking (attaque radio, par replay etc...), il y a très peu de documentation au niveau de la radio logicielle et reste un domaine peu accessible au grand public (matériel et conditions d'acquisition obligent). Le procédé de recherches et les expériences nous ont donc été propre. &lt;br /&gt;
&lt;br /&gt;
Ce qui nous mène à la seconde difficulté : la mise en place du protocole de recherche. La caractérisation d'un signal ou d'une empreinte propre necessite de faire des tests qui peuvent mener ou alors à des pistes intéressantes voire concluantes, ou alors à des echecs.&lt;br /&gt;
&lt;br /&gt;
Dans notre cas, tout ne nous permettait pas de développer le sujet. &lt;br /&gt;
La rencontre de Etienne Helluy Lafont a été pour nous d'une grande aide et nous a permis de savoir si les pistes qui avaient été développées étaient pertinentes ou non.&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'archive des scripts et codes utilisés : &lt;br /&gt;
&lt;br /&gt;
[[Fichier:Scripts.zip]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le rapport&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Rapport_projet_P70_2019.pdf]]&lt;br /&gt;
&lt;br /&gt;
=Bibliographie et liens=&lt;br /&gt;
&lt;br /&gt;
Datasheet XBee : https://www.sparkfun.com/datasheets/Wireless/Zigbee/XBee-Datasheet.pdf&lt;/div&gt;</summary>
		<author><name>Amoreau</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Rapport_projet_P70_2019.pdf&amp;diff=75968</id>
		<title>Fichier:Rapport projet P70 2019.pdf</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Rapport_projet_P70_2019.pdf&amp;diff=75968"/>
				<updated>2019-05-09T22:45:31Z</updated>
		
		<summary type="html">&lt;p&gt;Amoreau : Impact du matériel et du logiciel sur le champ électromagnétique&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Impact du matériel et du logiciel sur le champ électromagnétique&lt;/div&gt;</summary>
		<author><name>Amoreau</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=75720</id>
		<title>IMA4 2018/2019 P70</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=75720"/>
				<updated>2019-05-09T12:51:20Z</updated>
		
		<summary type="html">&lt;p&gt;Amoreau : /* Expérience : Variation de l'amplitude */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;font-size: 30px; width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;Impact du matériel et du logiciel sur le champ électromagnétique&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Projet'''&amp;lt;/ins&amp;gt; : Impact du matériel et du logiciel sur le rayonnement électromagnétique&lt;br /&gt;
&lt;br /&gt;
''Nous proposons d'évaluer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et la consommation électrique.''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Etudiants'''&amp;lt;/ins&amp;gt; : Souheib KHINACHE et Antoine MOREAU&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Encadrants'''&amp;lt;/ins&amp;gt; : Alexandre BOE, Xavier REDON et Thomas VANTROYS&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'internet des objets est un marché en plein essor. La communication entre les différents objets connectés crée un nuage de signaux autour d'eux. Ces derniers sont vus par les utilisateurs comme des boîtes noires : le fonctionnement se fait sans en connaître les composants matériels et logiciels. &lt;br /&gt;
Néanmoins, ces objets, de par leurs propriétés électroniques, créent des fuites électromagnétiques impactant le champ environnant. &lt;br /&gt;
&lt;br /&gt;
Bien qu'ils peuvent porter à débat sur l'impact sur la santé, ces signaux peuvent représenter de réelles sources d'informations sur l'aspect matériel et applicatif de l'objet.&lt;br /&gt;
&lt;br /&gt;
Il serait donc intéressant d'avoir idée générale sur le fonctionnement du système en interprétant les ondes électromagnétiques émises par ce système.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Les principaux objectifs de ce projet seront donc de mesurer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et sur la consommation électrique.&lt;br /&gt;
Pour cela, l'outil potentiel avec lequel nous pourrions travailler serait une sonde de champ électromagnétique afin d'établir des mesures. &lt;br /&gt;
Cependant, nous pourrions concevoir notre propre système de capture et d'interprétation à partir d'une antenne, de filtres de fréquences et d'un microcontrôleur (on commencera par un ATMega328P). Il sera nécessaire de prendre en compte les perturbations issues de notre appareil de mesure et d'en tenir compte.&lt;br /&gt;
&lt;br /&gt;
On effectuera ainsi plusieurs expérimentations sur différents supports d'étude :&lt;br /&gt;
*l'aspect &amp;quot;Hardware&amp;quot; en étudiant différents modèles pour un même type de shield  &lt;br /&gt;
*l'aspect calculatoire du matériel en se basant sur l'impact des microcontrôleurs en fonction du modèle (ATMega328P et ATMega2560)&lt;br /&gt;
*l'aspect &amp;quot;Software&amp;quot;, en étudiant l'impact du logiciel et du firmware d'un même composant (différents firmwares pour un même shield Wi-Fi)&lt;br /&gt;
*l'aspect puissance des composants électroniques de gestion de puissance (ponts, hacheurs, onduleurs...).&lt;br /&gt;
&lt;br /&gt;
L'étude des différentes informations se fera par traitement des signaux électromagnétiques et des spectres. &lt;br /&gt;
Afin de mieux appréhender le problème, il nous est nécessaire de comprendre les phénomènes physiques issus de la notion d'électromagnétisme.&lt;br /&gt;
&lt;br /&gt;
Ces études mèneront à une étape plus complexe : l'interprétation des signaux. En effet, l'un des objectifs de ce projet est de comprendre du mieux possible le fonctionnement d'un système sans y avoir accès directement, et donc dans ce contexte &amp;quot;traduire&amp;quot; un ensemble de signaux électromagnétiques.&lt;br /&gt;
&lt;br /&gt;
On pourra en outre apporter un aspect visuel à l'étude en rajoutant une interface informatique.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
Bien qu'aux yeux de nombreuses personnes le bruit électromagnétique créé par les équipements électroniques du quotidien peut porter à controverse (débats concernant l'impact sur la santé par exemple), il peut être une source d'informations. &lt;br /&gt;
De nos jours, les ondes électromagnétiques restent un vaste champ d'étude, sujettes à de nombreuses thèses et recherches au sein des laboratoires.&lt;br /&gt;
&lt;br /&gt;
On peut prendre l'exemple de [https://www.eurekalert.org/pub_releases/2015-01/giot-rwt010715.php Milos Prvulovic], professeur à l'Institut Technologique de Géorgie, ayant simulé un contexte de cybercafé, dans lequel il place une antenne magnétique, un ordinateur portable cible et un ordinateur &amp;quot;espion&amp;quot;. Il réussit, grâce aux signaux EM émis par l'impulsion de l'appui des touches clavier à capter un message écrit par un ordinateur cible. &lt;br /&gt;
&lt;br /&gt;
Néanmoins, dans le quotidien, l'utilisation des sondes électromagnétiques se fait pour l'étude énergétique d'un système électronique (fuites électromagnétiques anormales, preuves d'une anomalie...) afin de respecter certaines normes législatives. Le code du travail par exemple réglemente et définit des valeurs seuils par le biais des articles R. 4453-3 et R. 4453-4.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
'''NBM-520 de NARDA STS'''&lt;br /&gt;
[[Fichier: NBM_TS.png|thumb|300px|NBM-TS, application des appareils NBM]]&lt;br /&gt;
NARDA STS est une entreprise qui fournit des outils de mesure. Elle met à disposition aux professionnels des sondes électromagnétiques.&lt;br /&gt;
La NBM-520 est un appareil de la franchise, mesurant le champ électrique et magnétique. Elle donne des valeurs précises du champ électromagnétique ambiant sur une large bande. Elle propose différentes sondes modulables permettant une souplesse au niveau de l'étude en fonction des besoins, avec des sondes pouvant étudier des signaux de fréquence de 100kHz à 6GHz ou même de 300kHz à 50GHz (en fonction de la sonde choisie).&lt;br /&gt;
&lt;br /&gt;
En outre, le dispositif peut se connecter en USB sur PC afin d'envoyer les données capturées et d'en faire une étude. Le dispositif propose un logiciel d'étude, NBM-TS, permettant d'observer du champ en fonction du temps, de la fréquence, de la position...&lt;br /&gt;
&lt;br /&gt;
L'équipement est utilisé par l'ANF (l'Agence Nationale des Fréquences, agence gérant l'ensemble des normes autour des radiofréquences), et est donc un gage de qualité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Avantages :''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Large bande de fréquence&lt;br /&gt;
* Matériel solide&lt;br /&gt;
* Application fonctionnelle permettant l'étude et gestion des données&lt;br /&gt;
* Possibilité d'étudier séparément champ électrique et magnétique&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Inconvénients:''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Impossible d'étudier les basses fréquences (appareils sous tension, bobinages...)&lt;br /&gt;
* Prix élevé : à partir de 3100€&lt;br /&gt;
* La cible de ce produit est surtout les professionels&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
'''Une pita.'''&lt;br /&gt;
&lt;br /&gt;
''Comment mon pain à pita vole ta clé RSA ?''&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Pita.jpg|200px|thumb|left|Une pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Des chercheurs israéliens ont découvert un moyen de capturer des clés de cryptage RSA, réputées comme inviolables, par le biais d'une pita... du moins avec un dispositif suffisamment petit pour être caché dans un pain à pita. &lt;br /&gt;
Le dispositif, renommé PITA pour Portable Instrument for Trace Acquisition a la particularité de capturer les ondes radio électromagnétiques émanantes d'un PC, qu'il soit connecté à un réseau ou pas.&lt;br /&gt;
Les différentes opérations du processeur sont identifiées en distinguant les différents modèles de l'activité radio sur le spectre EM.&lt;br /&gt;
&lt;br /&gt;
Bien que la capture des clés RSA a été faite dans des conditions particulières (modification du processeur de l'ordinateur cible), il est néanmoins possible, selon les chercheurs, d'identifier quelle type d'activité est exercée par l'ordinateur ainsi que son état.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PITA.jpg|300px|thumb|right|Un dessous de pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'un des points importants concernant le dispositif est son coût : moins de 300 euros.&lt;br /&gt;
L'appareil dispose :&lt;br /&gt;
* d'un PC portatif (PC-on-a-stick) ''Rikomagic MK802 IV'',&lt;br /&gt;
* d'un recepteur radio SDR ''FUNcube Dongle Pro+''&lt;br /&gt;
* d'une antenne radio&lt;br /&gt;
* d'une batterie&lt;br /&gt;
* d'une antenne WiFi&lt;br /&gt;
* d'une carte MicroSD&lt;br /&gt;
* d'un adapteur d'antenne&lt;br /&gt;
* et d'une '''pita'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le dispositif aurait une portée de 50cm. &lt;br /&gt;
Les chercheurs israéliens ont collaboré avec GNU Private Guard (logiciel de cryptage asymétrique) afin de protéger contre ces attaques les clés de cryptage.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
&lt;br /&gt;
''Scénario 1''&lt;br /&gt;
&lt;br /&gt;
Gérard a toujours le flair pour les bonnes affaires. Il a acheté une centaine de clés WiFi à un prix dérisoire sur AloXpresso afin de faire du profit à la revente. Le vendeur lui garantit que toutes les clés fonctionnent correctement. Gérard veut vérifier. Après vérification, 99 des clés sur 100 fonctionnent comme prévu. Gérard aimerait être sûr du disfonctionnement, mais Gérard n'est pas une pointure en informatique. &lt;br /&gt;
&lt;br /&gt;
Coup de génie ! Il se rappelle qu'il dispose d'un dispositif qui capte les ondes EM et les interprète directement. C'est le moment de tester ça. Il remarque une anomalie sur le spectre.&lt;br /&gt;
Il décide de contacter le revendeur pour lui signaler un disfonctionnement sur l'une des clé. &lt;br /&gt;
Pas de soucis. Le vendeur, étant bon prince, lui envoie une autre clé USB et lui fait une ristourne.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Scénario 2''&lt;br /&gt;
&lt;br /&gt;
La police fait une perquisition chez un individu soupçonné de graves délits. Cela fait plusieurs mois que la brigade criminelle prépare l'intervention, et une fois sur les lieux ils arrêtent le soupçonné malfaiteur.&lt;br /&gt;
Cependant avant de repartir, elle veut faire l'acquisition d'un maximum de preuves. Elle veut alors prendre l'essentiel des objets, dont certains objets éléctroniques connectés de l'individu dont elle pourra extraire les informations qui serviront à le faire tomber.&lt;br /&gt;
&lt;br /&gt;
Par chance, elle dispose d'un petit outil qui scannera les signatures alentours des objets connectés, comme des téléphones cachés, clés USB wifi dissimulées dans le décor etc..&lt;br /&gt;
Et si le suspect avait modifié malignement un objet connecté banal pour l'utiliser autrement à ses fins, la police le découvrirait car elle possède une base de données de toutes les signatures spectrales des objets connectés sur le marché et celle de l'objet modifié ne collerait pas avec celle de la base de données.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
&lt;br /&gt;
'''Comment étudier les signaux malgré les perturbations électromagnétiques ambiants et les faibles signaux des µC ?'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les signaux électromagnétiques des microcontrôleurs ou d'autres composants peuvent être faibles. Il y a une possibilité pour palier à ce problème, c'est de capter les signaux depuis une antenne émettrice que l'on rajoute à l'objet d'étude. &lt;br /&gt;
Nous utiliserons un SDR (Software Defined-Radio) afin de capter les ondes radio et les étudier directement sur PC. Le filtrage s'effectuera ainsi de manière numérique. Plusieurs tests seront effectués pour le même objet à étudier (quand on parle d'objet, on évoque un ensemble de plusieurs composants, comme par exemple une alimentation, un micro-contrôleur et une antenne). Ainsi, de manière statistique, nous pourrons en déduire un pattern récurrent pour chaque expérience en les effectuant dans différents environnements (pourquoi pas une chambre anachoïque). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons &lt;br /&gt;
* Capter le signal émis par un objet connecté le plus précisément possible&lt;br /&gt;
&lt;br /&gt;
* Concevoir nos propres objets connectés tous différents mais basés sur un même modèle&lt;br /&gt;
&lt;br /&gt;
* Interpréter les spectrogrammes, faire une étude statistique des signaux émis par nos différents objets et en tirer des conclusions&lt;br /&gt;
&lt;br /&gt;
* Répertorier dans une base de données les signatures de nos objets , voire de quelques objets disponibles sur le marché&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix logiciel :&lt;br /&gt;
&lt;br /&gt;
- La distribution Linux Pentoo ou Kali pour traiter les signaux avec GNU RADIO (Suite logicielle dédiée à l’implémentation de radios logicielles et de systèmes de traitement du signal).&lt;br /&gt;
&lt;br /&gt;
- FemtoOS pour l'OS des ATMEGA328P et ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix Matériel : &lt;br /&gt;
&lt;br /&gt;
- Plusieurs modules radios émetteurs &lt;br /&gt;
&lt;br /&gt;
- Plusieurs microcontrôleurs ATMEGA328P et un ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
- Des alimentations identiques pour chaque PCB&lt;br /&gt;
&lt;br /&gt;
- Un HackRF pour la réception des signaux&lt;br /&gt;
&lt;br /&gt;
- Une antenne 50 Ohm pour le HackRF [https://www.passion-radio.fr/accessoires-sdr/antenne-ant500-74.html]&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous devons préparer tout le matériel qui servira à faire nos tests. C'est à dire concevoir :&lt;br /&gt;
&lt;br /&gt;
- Un ensemble SDR/PC qui traitera le signal reçu avec GNU RADIO.&lt;br /&gt;
&lt;br /&gt;
- Une multitude de PCB qui seront utilisés comme objets connectés (Sur chacun d'entre eux on trouvera au minimum une antenne radio, un microcontrôleur et une alimentation)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de récupérer une &amp;quot;signature&amp;quot; d'un de nos objets , il faudra faire plus de 50 analyses spectrales pour conclure statistiquement sur une bonne signature qui caractérisera l'objet.&lt;br /&gt;
&lt;br /&gt;
Nous devons donc dans un second temps: &lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques mais qui ont un '''firmware''' différent.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques qui ont pour seule différence le '''microcontrôleur'''.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques dont seul le '''PCB''' diffère.&lt;br /&gt;
&lt;br /&gt;
Grâce à tous ces tests , nous pourrons conclure et voir l'impact qu'à le matériel ou le logiciel sur la signature d'un objet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enfin si les délais nous le permettent, nous pourrons réaliser un software qui cartographiera nos objets connectés dans la pièce grâce à la puissance de la signature reçue (Ce qui devrait être réalisable puisqu'à ce stade nous aurons une base de donnée des signatures).&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
|3&lt;br /&gt;
|8&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Recherches&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|6&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Prise en main de GnuRadio&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Configuration Xbee&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Expériences&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|5&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|4&lt;br /&gt;
|15&lt;br /&gt;
|9&lt;br /&gt;
|8&lt;br /&gt;
|7&lt;br /&gt;
|8&lt;br /&gt;
|8&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
[[Fichier:HackrfOne.jpeg|200px|thumb|right|Le HackRF One]]&lt;br /&gt;
Durant cette semaine, nous avons continué nos recherches notamment sur le moyen de transmission de nos objets connectés. Nous avons confirmé notre choix de notre SDR : Monsieur Boé nous a confirmé que des HackRF seraient disponibles dans les laboratoires et qu'il pourrait nous en prêter un. On disposera donc d'une antenne puissante pour traiter les signaux émis par nos objets communiquants. &lt;br /&gt;
&lt;br /&gt;
Il faudra coupler notre HackRF avec un logiciel appelé GNU RADIO qui est un logiciel très complet ( Pour information : la NASA a utilisé GNU RADIO afin de rétablir le contact avec une sonde spatiale abandonnée ). Afin de faire tourner ce logiciel libre, nous aurons besoin de la distribution Kali Linux, ex Backtrack.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Choix des émetteurs/récepteurs === &lt;br /&gt;
&lt;br /&gt;
Nous avons décidé que nos objets connectés communiqueront dans deux '''bandes de fréquences ISM''', l'une à '''900 MHz''' grâce à des modules Digi Xbee et l'autre à '''2,4 GHz''' par le moyen de modules émetteurs Bluetooth. On rappellera que les Digi Xbee et les émetteurs/récepteurs Bluetooth seront pilotés par des ATMEGA 2560.&lt;br /&gt;
&lt;br /&gt;
Les Xbee ne communiqueront pas entre eux et émettront en continu les mêmes données car ils le peuvent, alors que les émetteurs/récepteurs Bluetooth devront s'échanger des données si on veut pouvoir observer un quelconque signal autour de la fréquence de leurs porteuses. &lt;br /&gt;
&lt;br /&gt;
On voudra observer premièrement, si avec deux objets dans les '''mêmes''' conditions (donc même µc et même émetteur), on peut ou non '''distinguer une différence'''. Ceci est fondamental pour la suite des expériences, puisque si les deux émettent à la même fréquence, on pourra faire varier plusieurs paramètres afin de trouver '''des clés''' (des signes) qui pourraient aider à l'identification du matériel.&lt;br /&gt;
&lt;br /&gt;
Ces clés représentent différents facteurs potentiels d'identification du signal (le rapport signal-bruit en fonction de la distance par exemple...).&lt;br /&gt;
&lt;br /&gt;
''On planifie alors pour la semaine suivante de réussir à faire émettre, en utilisant simplement des breadboards pour commencer, nos Xbee et modules BT et observer quelque chose grâce à notre SDR.''&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration des modules XBee ===&lt;br /&gt;
&lt;br /&gt;
Nous avons configuré deux XBee afin qu'ils puissent communiquer entre eux : &lt;br /&gt;
&lt;br /&gt;
Les modules XBee ont été montés sur des platines d'interface USB/série de manière à ce qu'on puisse les paramétrer via le programme de contrôle ''minicom''. &lt;br /&gt;
&lt;br /&gt;
Dans le doute, on supposera que les XBee communiquent à 9600 Baud. On exécute la commande suivante : &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;minicom -b 9600 -D /dev/ttyUSB0&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
On active l'echo local dans minicom, afin de pouvoir observer ce qui a été envoyé par liaison série au XBee ('''CTRL+A''' puis '''E''').&lt;br /&gt;
&lt;br /&gt;
Pour commencer le paramètrage il faut taper ''' +++ ''' rapidement. Le XBee nous répond OK, cela veut dire que nous sommes dans le mode configuration et que nous pouvons utiliser les commandes '''AT'''. (Redirection vers la liste des commandes AT XBee [https://cdn.sparkfun.com/assets/resources/2/9/22AT_Commands.pdf]).&lt;br /&gt;
&lt;br /&gt;
Comme nos XBee ont été utilisés auparavant, il a fallu les restaurer à l'état usine avec la commande '''ATRE'''.&lt;br /&gt;
&lt;br /&gt;
Si on souhaite que des XBee puissent s'envoyer des données il faut qu'ils soient sur le même canal (commande '''ATCH''') et aient le même PAN ID (commande '''ATID'''). Notre PAN ID sera '''BEE6''' et le canal sera celui par défaut '''C'''.&lt;br /&gt;
&lt;br /&gt;
Ensuite il faut leur donner une adresse de destination ('''ATDH''' &amp;amp; '''ATDL''') qui sera l'adresse broadcast, pour ce faire on entre &lt;br /&gt;
 ATDH=0000&lt;br /&gt;
 ATDL=FFFF&lt;br /&gt;
&lt;br /&gt;
Enfin '''ATMY''' représente l'ID du XBee, notre premier XBee aura comme ID 5000 et le second 5001.&lt;br /&gt;
&lt;br /&gt;
N'oublions pas de sauvegarder les paramètres avec '''ATWR'''.&lt;br /&gt;
&lt;br /&gt;
On vérifie que tout a bien été pris en compte :&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;&lt;br /&gt;
+++OK&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATID&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
BEE6&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
C&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
0&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDL&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
FFFF&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATMY&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
5000&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCN&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Puis on fait de même avec le deuxième XBee (ID 5001).&lt;br /&gt;
&lt;br /&gt;
Voilà, lorsque on envoie des caractères par liaison série sur 5000, la LED '''Tx''' de 5000 s'allume et la Led '''Rx''' de 5001 s'allume elle aussi. Cela signifie que l'envoi de donnée par onde radio s'effectue correctement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que les XBee émettent et reçoivent, on peut commencer les mesures avec notre SDR. Mais avant cela il va falloir bien se familiariser avec le logiciel GNU RADIO qui est assez difficile à prendre en main.&lt;br /&gt;
&lt;br /&gt;
=== Première prise en main du logiciel GNURADIO ===&lt;br /&gt;
&lt;br /&gt;
Installation de GNU radio avec les fonctions + drivers pour HackRF : &lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install gqrx-sdr gnuradio gr-osmosdr hackrf &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le bloc Osmocom Source sert de &amp;quot;passerelle&amp;quot; entre le logiciel et la SDR, il permet de transmettre les informations récupérées par le HackRF afin qu'on puisse les traiter avec d'autres bloc de fonctions.&lt;br /&gt;
&lt;br /&gt;
Si on veut pouvoir récuperer les données il faut passer l'argument ''hackrf=0'' dans la box périphérique du bloc Osmocom.&lt;br /&gt;
&lt;br /&gt;
Ci-dessous on peut voir le spectre environnant entre 2.44GHz et 2.460GHz grâce au bloc WX GUI FFT Sink.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ScreenGnuRadio.png|Interface de GNURadio]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous a permis d'effectuer notre première expérience. L'utilisation des deux Xbees nous a permis d'observer l'impact des Xbee sur le champ électromagéntique environnant.&lt;br /&gt;
&lt;br /&gt;
Si on analyse le spectre environnant grâce au module FFT de GNU Radio, lorsque les Xbee communiquent entre eux, on peut apercevoir un pic caractéristique propre.&lt;br /&gt;
En effet, lors de l'emission d'un message sur le port série, on a un pic qui se dégage du spectre d'amplitude -20dBm. Ce pic est caractéristique au canal de communication choisi et configuré sur le Xbee.&lt;br /&gt;
Néanmoins, le signal est perturbé par le bruit environnant. &lt;br /&gt;
L'expérience étant effectuée au sein de l'école, les signaux Wi-Fi perturberont l'étude.&lt;br /&gt;
Il faut noter que la norme IEEE 802.11 impose au Wi-Fi l'utilisation d'une bande passante s'étalant de 2.4 GHz à 2.5 GHz.&lt;br /&gt;
&lt;br /&gt;
La bande passante des modules Zigbee se décomposent en 16 canaux, allant de 2400 MHz à 2480 MHz par pas de 5 MHz.&lt;br /&gt;
&lt;br /&gt;
Le canal ici utilisé est le canal 13 (3ème canal) de fréquence 2415 MHz.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[Fichier:Channel135001.png|thumb|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Fichier:channel135000.png|thumb|none|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBeeCh13.png|Spectre de l'environnement autour du XBee|thumb|none|400 px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBeeCh13SND.png|Lors de l'envoi de données au XBee voisin|thumb|none|400 px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut observer un pic de puissance lors de l'envoi d'une donnée en série à la fréquence 2.415 GHz.&lt;br /&gt;
Il nous est maintenant nécessaire d'analyser de plus près les signaux et leurs fréquence centrale dans la bande perçue au dessus de -20dB.&lt;br /&gt;
&lt;br /&gt;
On réeffectuera une expérience en zone isolée des signaux parasites.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous avons principalement fait des recherches dans le but de mieux comprendre les signaux émis par le Xbee.&lt;br /&gt;
&lt;br /&gt;
En somme, nous étions confrontés à de nombreuses interrogations. Le fonctionnement du Xbee étant assez simple et la sécurité du protocole Zigbee étant moindre, y a t-il possibilité de démoduler le signal émis afin de développer nos études ?&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
[[Fichier:Switchchannel pyscript.PNG|upright=0.8|thumb|right|Script Python]]&lt;br /&gt;
&lt;br /&gt;
Après réflexion et consultation de nos encadrants, nous nous sommes rendu compte que la démodulation prévue lors de la semaine 4 n'aiderait pas à répondre à la problématique de notre sujet !  &lt;br /&gt;
&lt;br /&gt;
Afin de mieux visualiser les signaux des Xbee , on décide d'automatiser le processus d'envoi sur le port série des données vers le Xbee. C'est à dire concevoir un programme Python qui automatisera l'envoi de données et le changement de channel à intervalle de temps régulier (Changement toutes les 10 secondes). &lt;br /&gt;
&lt;br /&gt;
L'utilisation de Minicom '''n'était pas du tout la meilleure solution''' pour faire émettre les Xbee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Après quelques essais, on remarque que lorsque le Xbee émet sur le channel 13, il émet à environ 2,445GHz au lieu d'émettre à 2,415GHz soit une différence de 30MHz : Ceci n'est pas important, car ce que l'on souhaite remarquer c'est un éventuel décalage de la fréquence centrale entre deux Xbee différents. Si les deux Xbee n'ont pas la même frequence centrale on pourra conclure que la '''fréquence centrale''' de la porteuse du Xbee n'est pas '''une des clés''' permettant d''''identifier''' cet émetteur/récepteur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaines 6 et 7==&lt;br /&gt;
&lt;br /&gt;
Afin de mieux cerner le comportement électromagnétique des modules XBee, il nous est nécessaire de comprendre leur fonctionnement et le protocole Zigbee.&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous avons cherché à souligner le parallélisme entre étude fréquentielle par le spectre et étude temporelle du signal.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PlancheXPtest.jpg|thumb|right|Planche prototype]]&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous avons paramétré la fréquence centrale de capture du HackRF. En effet, bien que le HackRF dispose d'une large bande passante, afin de se focaliser sur la porteuse, il est indispensable de configurer le HackRF en conséquence.&lt;br /&gt;
En second lieu, pour éviter une variation du RSSI (Received Signal Strength Indication) et de la puissance du signal, nous devions mettre en place une prototype de &amp;quot;planche expérimentale&amp;quot; sur laquelle devaient être fixés nos différents modules (l'antenne de reception et les Xbees).&lt;br /&gt;
&lt;br /&gt;
La position des antennes les unes par rapport aux autres est fondamentale. Afin d'optimiser la reception, les antennes doivent être parallèles.&lt;br /&gt;
&lt;br /&gt;
Chaque Xbee est identifié par un chiffre (1 ou 2). En effet, l'attribution de ces chiffres sera définitive pour ne pas perturber la cohérence des expériences. &lt;br /&gt;
Leur position est aussi fondamentale. Ainsi, en fonction que le Xbee soit emetteur ou récepteur, il sera disposé différement sur la planche.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Expérience : Le XBee 1 émetteur directement connecté en série au PC===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:GrapheGNURadio01.png|thumb|left|150px|Schéma simple d'étude fréquentielle et temporelle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette expérience est la première mettant en place un contexte (un seul Xbee émetteur connecté en série au PC, le deuxième Xbee étant inactif) et nous permettra d'étudier le plus de cas possibles.&lt;br /&gt;
&lt;br /&gt;
Nous avons tout d'abord commencé par un graphe GNURadio simple permettant l'observation du spectre et du signal et la variation de la fréquence d'étude.&lt;br /&gt;
&lt;br /&gt;
Le script python a été réécrit afin que le XBee puisse émettre une chaîne de caractère &amp;quot;HELLO&amp;quot; * 1024. En effet, même si la fréquence de balayage du module HackRF peut être grandement augmentée, il faut éviter d'aller au dessous de 0.01s, finissant par consommer de manière considérable les ressources octroyées par le CPU le cas échéant.&lt;br /&gt;
Le fait d'augmenter la taille de la chaine de caractère permet de mieux synchroniser l'étude en temps réel avec la capture des données.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc émis les données sur le canal 20 (14 en hexadécimal), soit la fréquence centrale est à 2.450GHz selon la norme Zigbee. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Etude fréquentielle&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L'étude fréquentielle est similaire à celle réalisée auparavant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div center&amp;gt;&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[Fichier:Spectrefreq2.png|thumb|center|750px|Spectre fréquentiel au canal 14]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[Fichier:Spectrogram.png|thumb|center|250px|Spectrogramme]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on peut observer sur l'analyseur de spectre GNURadio que la fréquence centrale est située 2.450GHz.&lt;br /&gt;
&lt;br /&gt;
D'autre part, l'ensemble des fréquences qui dessinent le spectre s'étalent sur une large bande de fréquence. En effet, cette technique d'étalement appelée DSSS (Direct-Sequence Spread Spectrum) utilisé par les modules XBee permet au signal d'être moins sensible aux interférences et aux brouillages. En outre, même si la puissance du spectre dans sa globalité reste la même, la densité spectrale elle diminue considérablement, rendant le signal plus &amp;quot;discret&amp;quot;.&lt;br /&gt;
La différence de puissance entre le lobe principal et les premiers lobes secondaires sont de 30 dB, ce qui est aussi commun au DSSS.&lt;br /&gt;
&lt;br /&gt;
Le spectrogramme témoigne aussi de l'étalement du signal sur un peu plus de 6 MHz (3MHz de par et d'autre de la fréquence centrale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt; Etude temporelle &amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Signal temporel.png|thumb|left|500px|Signal observable centré à 2.450GHz lors de l'émission]]&lt;br /&gt;
&lt;br /&gt;
Le signal ici est séparé en deux composantes car il s'agit d'un signal complexe. Nous avons supposé en premier temps qu'il s'agissait du signal principal décalé de 180°, ce qui n'était pas le cas.&lt;br /&gt;
Après quelques recherches, cette séparation des composantes permet de transmettre deux fois plus de données sur la même bande passante.&lt;br /&gt;
Le signal observable témoigne d'une modulation bien spécifique au XBee. En effet, on peut observer des sauts de phase à différents points, qui correspondent à une modulation par changement de phase (modulation QPSK ou Quadratic Phase-Shift Keying). Ce sont ces sauts de phases qui permettent la transmission des bits.&lt;br /&gt;
Les changements de phase s'il y a se font toutes les µs. En outre, on peut observer un décalage (offset) entre la composante Q et la composante I de µs/2 (propre à la modulation OQPSK).&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé d'enregistrer ces données brutes dans un fichier et nous l'avons étudié avec Audacity, logiciel open-source de son, et donc de signaux ! L'inconvénient avec l'interface graphique QT de GNURadio est son manque de précision lors d'un dézoom sur le signal en temps réel. Audacity permet de palier à celà !&lt;br /&gt;
En outre, on peut voir que les paquets Xbee sont reconnaissables. En effet, le signal témoigne de la taille du paquet XBee.&lt;br /&gt;
&lt;br /&gt;
Le paquet XBee est constitué d'un premier header (header physique) de 6 octets :&lt;br /&gt;
- la séquence de préambule (4 octets) constitué de 32 bits à 0&lt;br /&gt;
&lt;br /&gt;
- l'indice de début du paquet fixé à 0x7A (1 octet)&lt;br /&gt;
&lt;br /&gt;
- la longueur du paquet (1 octet);&lt;br /&gt;
&lt;br /&gt;
d'un header MAC (7 à 27 octets en fonction des informations de l'adresse), d'un bloc FCS de fin de paquet (2 octets) et l'ensemble des données (de 1 à 104 octets).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Signal2.png|thumb|right|400px|On observe graphiquement qu'un paquet est transmis en 3846µs]]&lt;br /&gt;
[[Fichier:PacketXBee.png|400px|thumb|right|Paquet XBee]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Comme dit plus haut, les signaux émis par le XBee connaissent un étalement sur le spectre par DSSS.&lt;br /&gt;
Cet étalement s'effectue en divisant chaque symbole (correspondant à une série de 4 bits) transmis en &amp;lt;B&amp;gt;&amp;lt;I&amp;gt;chips&amp;lt;/I&amp;gt;&amp;lt;/B&amp;gt;.&lt;br /&gt;
Chaque symbole, soit 4 bits, correspond à 32 chips, et donc 32 états binaires (1 octet correspond à 64 chips).&lt;br /&gt;
Dans le cas de la norme ZigBee, la transmission de chacun des chips est synchronisé sur chaque µs (1 chip toutes les µs).&lt;br /&gt;
&lt;br /&gt;
Les signaux reçus par l'antenne HackRF étaient deux sinusoïdes modulées en phase et qui s'étalaient sur une période d'environ 3840µs (3846µs graphiquement mais il y a possibilité d'erreur à l'echelle du µs).&lt;br /&gt;
Sachant qu'un octet correspond à 64µs, on a :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;N_{octets} =\frac{2*T_{signal}}{64*T_{chip}}=\frac{2*3.840*10^{-6}}{64*10^{-6}}=120 octets&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'analogie peut être effectuée entre paquet Ethernet et paquet ZigBee. En effet, la taille limite des données d'un paquet est de 104 octets. La chaîne de caractère n'étant qu'envoyée par paquet, le paquet observé n'est que de 120 octets, ce qui est cohérent avec les caractéristiques du XBee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Hello1024secs.png|thumb|none|Temps de transmission de la chaîne de caractères &amp;quot;HELLO&amp;quot; 1024 fois]] &amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:AudacitySignal2.png|thumb|none|51 Paquets XBee portent la chaîne de caractère &amp;quot;HELLO&amp;quot; 1024 fois]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 8==&lt;br /&gt;
&lt;br /&gt;
L'étude des signaux posait réellement problème de par le fait qu'une grande partie de la capture faite n'était que purement le bruit sans signal (utile plus tard pour l'étude du SNR).&lt;br /&gt;
Prenons l'exemple d'un paquet de 21 octets (un paquet contenant une seule chaîne de caractères HELLO). Le signal s'étalerait en théorie sur 21*64 chips soit 672 chips. Sachant que la modulation est une modulation QPSK, on s'étale sur un temps de 672µs.&lt;br /&gt;
En effet, le Xbee transmet toutes les 100ms.&lt;br /&gt;
Donc qu'une partie du signal nous est utile.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décider d'écrire un script qui nous permettrait d'étudier le signal dans de meilleures conditions, et donc de le filtrer.&lt;br /&gt;
&lt;br /&gt;
Chaque capture de signal effectuée est enregistrée dans un fichier par le biais du bloc fonction &amp;lt;B&amp;gt;&amp;lt;I&amp;gt;File Sink&amp;lt;/I&amp;gt;&amp;lt;/B&amp;gt; du compagnon GNURadio. Néanmoins, les fichiers obtenus sont des fichiers binaires assez lourds (environ 500Mo pour une capture de 3s), ce qui est un réel problème et qui implique le filtrage du signal.&lt;br /&gt;
&lt;br /&gt;
La bibliothèque numpy pour python nous permet en outre directement d'importer les échantillons des signaux, les traduisant du binaire à un format cible (complexe flottant 64 bits) dans un Array par le biais de la fonction:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; f = scipy.fromfile(open(&amp;quot;Nom du fichier&amp;quot;), dtype=scipy.complex64) &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La première solution pour réduire ce signal était d'imposer un threshold directement sur le signal, supérieur au bruit, mais qui conduirait à une perte d'une partie du signal à étudier.&lt;br /&gt;
La deuxième solution qui a été retenue était tout simplement de calculer l'amplitude et la phase du signal et appliquer ce même threshold à l'amplitude.&lt;br /&gt;
&lt;br /&gt;
== Semaine 9 et 10==&lt;br /&gt;
&lt;br /&gt;
A partir de la semaine 10 nous avons procéder aux expériences pour avoir suffisamment de données et en tirer des conclusions.&lt;br /&gt;
&lt;br /&gt;
Lorsqu'on fait une acquisition d'un signal xbee , on peut maintenant via un script traiter cette acquisition et récupérer seulement les parties qui nous intéressent : A savoir la partie réelle et la partie imaginaire, l'amplitude du signal et enfin la phase du signal.&lt;br /&gt;
&lt;br /&gt;
Exemple ci dessous après acquisition + traitement de notre xbee n°2 :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Traitement xbee2.png|thumb|right|redresse=2|Signal Xbee2 post-traitement ]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Constellation xbee2.png|thumb|right|redresse=2|Diagramme de constellation xbee2 après utilisation de LightSignal]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'utilisation du script LightSignal permet de retirer toutes les phases en dehors du signal. Ainsi, on peut caractériser le diagramme de constellation comme un diagramme propre à la modulation QPSK. &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
import scipy&lt;br /&gt;
import numpy&lt;br /&gt;
import sys&lt;br /&gt;
&lt;br /&gt;
def binToComplex64(name):&lt;br /&gt;
    threshold=0.10&lt;br /&gt;
    tmp=scipy.fromfile(open(name+&amp;quot;_PhaseMeg&amp;quot;), dtype=scipy.complex64)&lt;br /&gt;
    tmp2=scipy.fromfile(open(name), dtype=scipy.complex64)&lt;br /&gt;
    &lt;br /&gt;
    f2 = open(name+&amp;quot;_filtre&amp;quot;, &amp;quot;w+&amp;quot;) &lt;br /&gt;
    f = open(name+&amp;quot;_PhaseMeg_filtre&amp;quot;,&amp;quot;w+&amp;quot;)&lt;br /&gt;
    &lt;br /&gt;
    p=1&lt;br /&gt;
    size=tmp.__len__()&lt;br /&gt;
    size2=tmp2.__len__()&lt;br /&gt;
    &lt;br /&gt;
    if size &amp;gt; size2:&lt;br /&gt;
        size=size2&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    ground=False&lt;br /&gt;
    newListSignal=[]&lt;br /&gt;
    newListMagnPh=[]&lt;br /&gt;
    for val in range(0,size): &lt;br /&gt;
        if(val&amp;gt;=(size/100)*p):&lt;br /&gt;
            print(str(p)+&amp;quot; %&amp;quot;)&lt;br /&gt;
            p=p+1&lt;br /&gt;
        if(tmp[val].real&amp;gt;threshold):&lt;br /&gt;
            if(ground==True):&lt;br /&gt;
                for i in range(0,1000):&lt;br /&gt;
                    newListSignal.append(numpy.complex64(0))&lt;br /&gt;
                    newListMagnPh.append(numpy.complex64(0))&lt;br /&gt;
                ground=False&lt;br /&gt;
            newListSignal.append(tmp2[val])&lt;br /&gt;
            newListMagnPh.append(numpy.complex64(tmp[val].real+tmp[val].imag*0.3j))&lt;br /&gt;
        else:&lt;br /&gt;
            ground=True&lt;br /&gt;
    &lt;br /&gt;
    tmp=numpy.asarray(newListMagnPh)&lt;br /&gt;
    tmp.tofile(f)&lt;br /&gt;
    tmp2=numpy.asarray(newListSignal) &lt;br /&gt;
    tmp2.tofile(f2)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    try:&lt;br /&gt;
        binToComplex64(sys.argv[1])&lt;br /&gt;
    except IndexError:&lt;br /&gt;
        print(&amp;quot;Donnez le nom du fichier\n&amp;quot;)&lt;br /&gt;
    except IOError:&lt;br /&gt;
        print(&amp;quot;Le fichier n'existe pas\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__=='__main__':&lt;br /&gt;
    main()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le diagramme de constellation témoigne de nouveau du type de modulation utilisé par le module XBee.&lt;br /&gt;
En effet, on observe quatre points de part et d'autre des axes de quadrature et d'inphase.&lt;br /&gt;
&lt;br /&gt;
==Semaine 11==&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé cette semaine d'étudier, ce qui est selon pour nous, l'une des pistes fondamentales de notre projet, et plus particulièrement de l'étude de nos signaux : le rapport signal bruit.&lt;br /&gt;
&lt;br /&gt;
L'objectif de cette semaine et de celle à venir était, à partir du signal acquis par le hackrf, d'effectuer le calcul du SNR (signal-to-noise ratio) tel que :&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;SNR =\frac{P_{signal}}{P_{bruit}}&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le script python qui nous a permis de communiquer entre les deux shields Xbee se verra amélioré afin de faire plusieurs acquisition des signaux lors de la communication entre les Xbee, effectuer une moyenne statistique, et de même lorsqu'il n'y a pas de communication.&lt;br /&gt;
&lt;br /&gt;
Nous avons essayé d'approcher le SNR directement depuis l'interface de GnuRadio par le biais de l'utilitaire graphique et le langage en bloc, néanmoins nous procéderons à l'étude de ce rapport avec Scilab ou Matlab.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaines supplémentaires==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Expérience : Variation de l'amplitude===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 emet une chaîne de caractères HELLO*256 &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L'objectif de cette expérience est d'étudier le temps de variation de l'amplitude du signal entre l'état où le signal n'est pas reçu et l'état où le signal est réceptionné et donc l'amplitude constante.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats &amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
A 20MHz de fréquence d'echantillonage, le temps de variation moyen est de 3 échantillons, soit 0.15µs, pour toutes les captures faîtes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Conclusion sur l'expérience &amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
L'expérience n'a pas été concluante. Même si elle nous a permis de voir quelques différences (probablement provoquées pas des erreurs de capture et d'analyse), le HackRF nous limite beaucoup sur ce point de vue là. En effet, la fréquence d'échantillonage étant limitée à 20MHz, le HackRF n'est pas suffisamment précis pour capturer un nombre d'échantillons nous permettant de confirmer une quelconque hypothèse. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Code python utilisé pour l'étude du signal&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
def etudeAmplitude(name, liste_temps):&lt;br /&gt;
&lt;br /&gt;
    threshold_0=0.05 # Threshold&lt;br /&gt;
    threshold_1=0.4&lt;br /&gt;
    max_transition_time=50 #O&lt;br /&gt;
&lt;br /&gt;
    amppha=scipy.fromfile(open(name+&amp;quot;_PhaseMeg&amp;quot;), dtype=scipy.complex64) &lt;br /&gt;
&lt;br /&gt;
    p=1&lt;br /&gt;
    size=amppha.__len__()&lt;br /&gt;
    &lt;br /&gt;
    debut=1&lt;br /&gt;
    tps_variation=0 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    transition=False # Vérifie si le signal est en transition ou stable&lt;br /&gt;
&lt;br /&gt;
    for val in range(debut,size):&lt;br /&gt;
        if(val&amp;gt;=((size-debut)/100)*p):&lt;br /&gt;
            print(str(p)+&amp;quot; %&amp;quot;)&lt;br /&gt;
            p=p+1&lt;br /&gt;
&lt;br /&gt;
        if(amppha[val].real&amp;gt;threshold_0 and amppha[val].real&amp;lt;threshold_1): # Phase de transition du signal&lt;br /&gt;
            if(transition==False):&lt;br /&gt;
                transition=True&lt;br /&gt;
            tps_variation=tps_variation+1&lt;br /&gt;
&lt;br /&gt;
        elif(transition==True and amppha[val].real&amp;gt;threshold_1):&lt;br /&gt;
            if(amppha[val].real&amp;gt;=amppha[val-1].real-amppha[val-1].real*0.05 and amppha[val].real&amp;lt;=amppha[val-1].real+amppha[val-1].real*0.05): # L'amplitude du signal est stable&lt;br /&gt;
                if(tps_variation &amp;lt; max_transition_time):&lt;br /&gt;
                    liste_temps.append(tps_variation)&lt;br /&gt;
&lt;br /&gt;
                transition=False&lt;br /&gt;
                tps_variation=0&lt;br /&gt;
            else:&lt;br /&gt;
                tps_variation=tps_variation+1&lt;br /&gt;
        else:&lt;br /&gt;
            transition=False&lt;br /&gt;
            tps_variation=0&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Expérience : Temps de calcul du FCS entre le XBee1 et et le XBee2===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 1&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 et XBee2 sont alimentés sur 5V VCC par USB (connecté à l'ordinateur)&amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 et XBee2 disposent du firmware : 10EF &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 est d'abord emetteur et le XBee2 est recepteur puis inversement. Aucun paquet ACK n'est renvoyé de la part du recepteur &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On transmet la chaine de caractère HELLO 256 fois toutes les 1 secs&lt;br /&gt;
Les données étant assez conséquentes, le Xbee transmet plusieurs fragments du paquet.&lt;br /&gt;
L'objectif de cette expérience est d'étudier le temps entre chaque fragment d'un paquet.&lt;br /&gt;
L’espace de temps entre chacun des paquets permet de calculer le FCS (frame check sequence) afin de minimiser les erreurs de transmission.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:ChecksumGraphe.png|thumb|left|redresse=2|Les différents temps à mesurer]]  &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Néanmoins, l’étude de ces “temps morts” se voit entravée par le fait que le module HackRF ne permette pas d’obtenir un signal clair sur plus de 5 secondes.&lt;br /&gt;
En outre, pour 5 secondes d’étude et pour une fréquence d’échantillonage de 20MHz (soit un temps Te=5.10e8), on compte 100.000.000 d’échantillons.&lt;br /&gt;
Le CPU lors de la capture était grandement sollicité, ce qui explique le fait que la capture soit compromise.&lt;br /&gt;
Pour régler ce problème, on a écrit un script shell de capture.&lt;br /&gt;
Ce script consiste à:&lt;br /&gt;
&amp;lt;br&amp;gt;- effectuer une capture d’une durée de 1 sec&lt;br /&gt;
&amp;lt;br&amp;gt;- d’enregistrer la capture&lt;br /&gt;
&amp;lt;br&amp;gt;- d’effectuer un traitement de ces paquets par un algorithme python en étudiant le temps entre chacun des fragments. Ce temps sera obtenu en nombre d’échantillons, défini avec un seuil d’acceptation absolu entre 150.000 et 300.000 échantillons (pour bien capturer ces temps intermédiaires et pas les temps provoqués par des signaux parasites ou du bruit), et pour affiner l’étude, on impose un seuil d’erreur de +-10% autour de la moyenne. La moyenne est calculée en continue&lt;br /&gt;
&amp;lt;br&amp;gt;- l’ensemble des valeurs obtenues sont enregistrées dans un fichier&lt;br /&gt;
&amp;lt;br&amp;gt;- on réeffectue la capture …&lt;br /&gt;
&lt;br /&gt;
On répète le processus un certains nombre de fois afin d’obtenir un nombre de valeurs nous permettant de nous conforter sur l'issue de l'expérience (environ 1000 valeurs)&lt;br /&gt;
&lt;br /&gt;
La capture et l'étude de chacun des modules dure une à deux heures.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats :&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans le cas du XBee1 (à gauche) et du XBee2 (à droite), voici les résultats obtenus :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Xbee1Graphe256.png|thumb|left|redresse=2|On peut observer des pics caractéristiques à l'envoi]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBee2Graphe256.png|thumb|left|redresse=2|Les mêmes pics caractéristiques confirment un comportement non-aléatoires du module]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
XBee1 : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 259675,81&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 8369.7417&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 70052576.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
XBee2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 258762.58&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 9165.4097&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 84004736.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les graphes présentent le nombre de répétitions des temps de calcul de fragements.&lt;br /&gt;
&lt;br /&gt;
On peut voir des pics spécifiques à certains points dans les deux expériences. Ces pics sont caractéristiques et au module XBee, et à la chaîne de caractère HELLO. Les deux expériences étant effectuées dans le même contexte, &lt;br /&gt;
&lt;br /&gt;
De même que pour le second Xbee, on retrouve des pics bien distincts à certains points.&lt;br /&gt;
&lt;br /&gt;
En outre, on peut voir que ces pics bien distincts se rapprochent de ceux du premier Xbee.&lt;br /&gt;
Néanmoins, même si la moyenne varie que très peu par rapport aux deux Xbee, la variance est assez différente.&lt;br /&gt;
&lt;br /&gt;
Pour confirmer ces observations, il est peut être nécessaire de répéter la même expérimentation sur un nombre d'échantillons plus grand.&lt;br /&gt;
&lt;br /&gt;
Ainsi, afin de confirmer la conjecture, on décide de faire d’autres captures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En superposant les deux graphes (Xbee1 en rouge et Xbee2 en bleu), on peut voir qu'il y a moins de dispersion dans le cas du XBee1, plus centré sur des valeurs précises, contrairement au Xbee2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:XBee1Xbee2Graphe.png|thumb|left|redresse=2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour les deux nouveaux échantillons, on a les caractéristiques suivantes :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Xbee1 sur 1688 échantillons&amp;lt;/U&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 260230.3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 8427.3923&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 71020941&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Xbee2 sur 1722 échantillons&amp;lt;/U&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 259899.41&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 9831.5106&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 96658601&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:SignalAT328.png|thumb|right|Signal observé dans le cas de l'ATMega328p]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 2&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 est connecté à un Arduino ATMega328p par le biais d'un shield Libelium &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 dispose du firmware 10EF &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; On envoie exactement les mêmes données que précédemment, la chaîne de caractères HELLO*256 toutes les 0.5s &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hormis l'amplitude du signal qui paraît plus faible lors de la transmission par ATMega328p, le message transmis ne change PAS. Même si nous avons fait en sorte que la periode de transmission soit la même que pour l'expérience précédente, elle n'affecte en rien l'issue de l'expérience car c'est le temps de division de paquet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:ATMega328.png|thumb|650px|Observation du temps de division d'un paquet dans le cas de l'ATMega328p]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:ATMega2560.png|thumb|650px|Observation du temps de division d'un paquet dans le cas de l'ATMega2560]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour les nouveaux échantillons, on a les caractéristiques suivantes :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Xbee1 sur ATMega328p sur 706 échantillons&amp;lt;/U&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 265818.58&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 4748.5965&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 22549168&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Xbee1 sur ATMega2560 sur 711 échantillons&amp;lt;/U&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 262877.83&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 3675.037&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 13505897&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut observer une distinction significative entre une transmission effectuée directement par la machine et la transmission depuis les modules composés d'un ATMega328p ou d'un ATMega2560. En effet, on n'observe pas les mêmes pics caractéristiques dans cette expérience comparé à l'expérience précédente. Même si la moyenne est quasi la même, l'ecart type est plus faible, ainsi que la variance. En outre, de même que pour l'expérience précédente, l'écart-type entre ATMega328p et ATMega2560 est aussi différent. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 3&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 est dans les mêmes conditions que durant la première expérience &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; On change le firmware du XBee1 pour le 10ED &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:FW10ED.png|thumb|left|400px|Observation du temps de division d'un paquet lors du changement du firmware]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Xbee1 sur 821 échantillons&amp;lt;/U&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 259735.52&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 8501.3996&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 72273796&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Après avoir changé le firmware, on a pu voir que les résultats ne changeaient pas par rapport à l'expérience témoin. On est même très proche des temps du XBee bien que l'expérience ne s'est pas faîte dans les mêmes conditions (pas au même endroit, donc possibilité de perturbations).&lt;br /&gt;
On peut donc en conclure que le firmware n'a pas un impact sur le temps de calcul du FCS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Conclusion de l'expérience&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
L’hypothèse qui est que la variance des temps &amp;quot;morts&amp;quot; entre chaque fragments de paquet, soit le temps de calcul du FCS pour le signal émis peut être considéré comme “clé” de distinction d’un module Xbee n'est donc pas à négliger. &lt;br /&gt;
Le temps de calcul du FCS semble unique entre chaque paquet paraît une empreinte propre au matériel.&lt;br /&gt;
&lt;br /&gt;
On peut même considérer que cette étude peut distinguer un module Xbee d'un autre électromagnétiquement parlant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Code python utilisé pour l'étude du signal&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def etudeSubdivPaquet(name, inter_time_values):&lt;br /&gt;
&lt;br /&gt;
threshold = 0.30&lt;br /&gt;
ground = false&lt;br /&gt;
p=1&lt;br /&gt;
&lt;br /&gt;
## On converti chacun des nombres binaires en complexe 64 (deux flottants 32 bits)##&lt;br /&gt;
amppha=scipy.fromfile(open(name+&amp;quot;_PhaseMeg&amp;quot;), dtype=scipy.complex64) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
## On récupère la taille du tableau de complexes (taille du signal) ##&lt;br /&gt;
size=amppha.__len__()&lt;br /&gt;
&lt;br /&gt;
    debut=0&lt;br /&gt;
    inter_time=0&lt;br /&gt;
    min_limit=150000&lt;br /&gt;
    max_limit=350000&lt;br /&gt;
    accept_range=1./10. ## Permet de mettre un seuil d'intervalle d'acceptation&lt;br /&gt;
    signalFnd=False&lt;br /&gt;
&lt;br /&gt;
    for val in range(debut,size):&lt;br /&gt;
        if(val&amp;gt;=((size-debut)/100)*p):&lt;br /&gt;
            print(str(p)+&amp;quot; %&amp;quot;)&lt;br /&gt;
            p=p+1&lt;br /&gt;
&lt;br /&gt;
        if(amppha[val].real&amp;gt;threshold):&lt;br /&gt;
            if(ground==True):&lt;br /&gt;
                if(signalFnd==True):&lt;br /&gt;
                    if(len(inter_time_values)&amp;gt;0):&lt;br /&gt;
                        moy=moyenne(inter_time_values)&lt;br /&gt;
                        if(inter_time &amp;gt;= moy-accept_range*moy and inter_time &amp;lt;= moy+accept_range*moy):&lt;br /&gt;
                            print(&amp;quot;Yes &amp;quot;+str(inter_time))&lt;br /&gt;
                            inter_time_values.append(inter_time)&lt;br /&gt;
                        inter_time=0&lt;br /&gt;
                    elif(inter_time&amp;gt;=min_limit and inter_time&amp;lt;=max_limit):&lt;br /&gt;
                        inter_time_values.append(inter_time)&lt;br /&gt;
                else:&lt;br /&gt;
                    signalFnd=True&lt;br /&gt;
                ground=False&lt;br /&gt;
        else:&lt;br /&gt;
            ground=True&lt;br /&gt;
            if(signalFnd==True):&lt;br /&gt;
                inter_time=inter_time+1&lt;br /&gt;
&lt;br /&gt;
    if(len(inter_time_values)&amp;gt;0):&lt;br /&gt;
        print(&amp;quot;Moyenne &amp;quot;+ str(moyenne(inter_time_values)))&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Rencontre avec Etienne Helluy Lafont ===&lt;br /&gt;
&lt;br /&gt;
Bien que plusieurs pistes ont pu être explorées, notre manque d'expertise dans le domaine de la radio logicielle nous a fait défaut sur nos recherches. En effet, après avoir calculé le SNR d'un de nos signaux, nous nous sommes retrouvés avec des résultats assez incohérents. De nombreuses erreurs peuvent se glisser et nous avions besoin de conseils à ce sujet.&lt;br /&gt;
&lt;br /&gt;
Etienne Helluy-Lafont est un doctorant qui fait sa thèse sur les sondes pour la détection d’intrusions dans les architectures réseau hétérogènes et massivement distribuées. Il développe un outil permettant d'analyser le spectre environnant, de donner des informations sur les signaux émis sur certains canaux et même de démoduler ces signaux. Son programme en C est flexible puisqu'il est adapté pour beaucoup d'antennes (Une des librairies qu'il utilise est SoapySDR [https://github.com/pothosware/SoapySDR/] qui possède des &amp;quot;codec&amp;quot; dont un pour notre HackRF !). Nous nous sommes servi de son outil afin d'avoir de bien meilleurs résultats pour les expériences sur le SNR des Xbee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Expérience : Variation du Rapport Signal Bruit en fonction de la distance de reception ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:FFTSNR.png|thumb|left|redresse=2|Calcul du SNR par FFT]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Fenetre.png|thumb|left|redresse=2|Calcul du SNR par fenêtre glissante]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L'objectif de cette expérience était de visualiser comment le rapport signal bruit (ou SNR) varie en fonction de la distance. &lt;br /&gt;
En effet, nous avions mis en suspens l'expérience qui consistait en la capture du SNR dû aux valeurs instables que l'on avait. &lt;br /&gt;
&lt;br /&gt;
La première idée était de faire une FFT du signal et de calculer le rapport en prenant la moyenne de sa puissance sur une bande de 2.4MHz (1.2Mhz de part et d'autre de la fréquence de capture du HackRF).&lt;br /&gt;
&lt;br /&gt;
Néanmoins, les caractéristiques du XBee (du point de vue de l'étalement spectral) rend le calcul du SNR imprécis. A la suite de la capture de signaux et de l'étude de ces mêmes signaux, les valeurs nous paraissaient incohérentes. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:SNRcalc.png|thumb|left|470px|Pics de SNR]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons donc procédé à une seconde méthode de calcul qui consiste à utiliser une fenêtre glissante de taille 2^k échantillons. &lt;br /&gt;
Pour chaque échantillon du signal, on calculait le SNR tel que :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;SNR =\frac{P_{signal+bruit}}{P_{bruit}}=\frac{|A_{signal+bruit}|^2}{|A_{bruit}|^2}&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans notre cas, on a :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;SNR_x =20.log \frac{Moyenne(W_x[2^{k-1}:2^k])}{Moyenne(W_x[0:2^{k-1}-1])}&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
W_x étant la fenêtre à l'échantillon x du signal, le rapport signal bruit est obtenu lorsqu'on a un pic.&lt;br /&gt;
La fenêtre choisie doit être suffisamment grande pour avoir une précision optimale.&lt;br /&gt;
On impose ainsi un threshold pour éviter des erreurs pouvant influencer les résultats de manière considérable.&lt;br /&gt;
Ainsi, on obtient les valeurs SNR cherchées.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous voulons donc vérifier si la mesure du SNR est une expérience pertinente pour l'identification du matériel. Nous allons prendre plusieurs XBee et mesurer le SNR à différentes distances de l'antenne SDR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 1&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 et XBee2 sont alimentés sur 3.3V VCC par USB (connecté à l'ordinateur)&amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 et XBee2  sont des modèles série s1&amp;lt;/I&amp;gt; disposent du firmware : 10EF&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee3 et XBee4 sont des modèles XBeePro &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Par défaut tous nos xbee disposent du même firmware (10EF), sauf si précisé que non &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Nous cherchons à observer la différence entre le XBee1 et XBee2 dans la même situation. &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Durant les expériences, le montage XBee1 connecté en USB sera le XBee témoin. &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PointsMoyenneXBee1Dist.png|thumb|left|470px|Les différentes valeurs du SNR acquises en fonction de la distance pour le XBee1]]&lt;br /&gt;
&lt;br /&gt;
Dans notre cas, le modèle XBee1 connecté en série à notre machine nous a servi de composant témoin afin d'étudier les signaux des autres modèles. En effet, suite à la capture et l'étude des signaux, on peut voir que le nuage de points qui constitue notre graphe témoigne d'un phénomène électromagnétique ondulatoire quant au champ. Avec la distance, plus l'on éloigne le module, plus le rapport signal sur bruit diminue (le contraire nous aurait étonné). En outre, la variation ondulatoire peut être caractérisée par le champs éléctrique.&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé de refaire cette expérience avec les trois autres XBee directement connectés à notre machine.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ALLXBEE comparaison SNR distance.png|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
De part les potentielles erreurs et les différentes perturbations électromagnétiques ambiantes, la valeur du SNR peut être affectée. Il n'est pas possible directement par les caractéristiques du rapport signal bruit d'effectuer le distinguo entre le XBee1 et le XBee2 (contrairement à l'expérience basée sur la subdivision de paquets). Cependant, les XBee3 et XBee4 présentent une caractéristique commune. Le SNR est beaucoup plus élevé. &lt;br /&gt;
&lt;br /&gt;
En effet, le pic de courant d'un XBee est de 45mA à la transmission pour une alimentation de 3.3V en tension continu, tandis qu'un module XBee pro, le pic de courant atteint les 150mA. Cette différence électronique permet ainsi au XBee pro de communiquer sur une plus grande zone (750m contre 90m pour un XBee simple).&lt;br /&gt;
&lt;br /&gt;
Ainsi, on peut conclure de cette expérience que le SNR est un élément témoin de la consommation énergétique d'un composant électrique (du moins de l'antenne).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:XBEE1 hardware comparaison SNR distance.png|thumb|400px|right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 2&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 est d'abord connecté à un Arduino UNO 328P par le biais d'un shield XBee Libelium puis est connecté à un Arduino Mega 2560 par le biais du même shield &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 dispose du firmware : 10EF &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
On peut observer que même si l'unité de contrôle n'est pas l'ordinateur mais le micro-contrôleur (ici ATMega2560 et ATMega328P), le rapport signal bruit ne change pas réellement. Néanmoins, il était pour nous intéressant de noter qu'un léger gap se créé à 30 et 40 cm de la SDR entre la communication USB et la communication avec les micro-contrôleurs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:XBEE3 hardware comparaison SNR distance.png|thumb|400px|right]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 3&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; L'expérience est similaire que pour le module XBee1 mais avec le XBee3 (pro) &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee3 est d'abord connecté à un Arduino UNO 328P par le biais d'un shield XBee Libelium puis est connecté à un Arduino Mega 2560 par le biais du même shield &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee3 dispose du firmware : 10EF &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
En outre, les résultats obtenus lors de l'expérience avec le XBee3 nous indique que le phénomène ondulatoire observé durant les tests précédents est moins souligné dans la communication avec les micro-contrôleur (toujours à 30 et 40cm) et celà après plusieurs tests.&lt;br /&gt;
&lt;br /&gt;
Des tests plus précis auraient été plusieurs avantageux et nous auraient permis de trancher sur la décision de l'importance du SNR concernant la différenciation de différentes unités de contrôle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:XBEE1 firmware comparaison SNR distance.png|thumb|400px|right]]&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 4&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 ici est connecté en série et dispose dans un premier temps du firmware 10EF (le firmware le plus récent) &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Après capture et expérimentation, on décide de réeffectuer la même chose avec le même XBee (XBee1) avec le firmware 10ED &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
Les acquisitions étant faites dans les mêmes conditions, il semblerait que le changement de firmware ait un petit impact sur la puissance d’émission : Cette petite différence de décibel ne semble pas aléatoire puisqu’on peut clairement voir que la courbe orange reste toujours inférieure à la courbe bleue, or le niveau de bruit est resté inchangé. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Conclusion de l'expérience&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; : &lt;br /&gt;
&lt;br /&gt;
'''Hardware''' : Les paquets émis via liaison série ont plus de puissance que ceux émis grâce aux arduino UNO et MEGA notamment à 10 cm, 40 cm et 50 cm. On remarque aussi une baisse du SNR moyen à 30 cm surtout en liaison série et ce, avec nos quatres XBEE. Coté ATMEGA , le SNR reste plutôt stable et décroit très doucement. Ainsi lors d’un calcul de SNR/Distance on pourra estimer si le XBEE est connecté au PC en liaison série ou à une ATMEGA quelconque selon si son SNR suit l’allure ou non de la courbe de la transmission classique. &lt;br /&gt;
&lt;br /&gt;
''En cherchant des raisons à cela, on se demande si ce phénomène n’a pas un rapport avec la longueur d’onde du signal modulé : la longueur d’onde est de 12 cm à 2.455 GHz, et la distance 30 cm coïnciderait avec sa demi-longueur d’onde.''&lt;br /&gt;
&lt;br /&gt;
Par le biais de ces mesures, on a pu démontrer que le matériel a un impact sur le SNR en fonction de la distance. A ce stade nous ne pouvons toujours pas déceler si le XBEE est géré par un microcontrôleur ATMEGA328P ou un ATMEGA2560.. Peut-être que l'étude du SNR selon le canal d'émission nous apportera des réponses? &lt;br /&gt;
&lt;br /&gt;
'''Software''' : Le firmware affecte un peu la puissance d'émission&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Expérience : Variation du Rapport Signal Bruit en fonction du canal de fréquence===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'expérience s'effectue de la même manière que précédemment. L'algorithme utilisé est le même. Néanmoins, nous verrons comme le SNR varie ici non pas en fonction de la distance mais en fonction du canal choisi. Pour celà, on choisira 3 canaux : le canal 0x11 (17), le canal 0x13 (19) et le canal 0x15 (21).&lt;br /&gt;
En effet, ces canaux n'ont pas été choisis aléatoirement. Lors de nos études, on a observé le XBee Pro ne transmettait pas sur certains canaux particuliers.&lt;br /&gt;
&lt;br /&gt;
Etait-ce dû à une erreur de manipulation ?&lt;br /&gt;
&lt;br /&gt;
Afin d'être sûr, on a pris des canaux qui était communs aux deux modèles (série S1 et Pro).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ALLXBEE comparaison SNR freq.png|thumb|400px|left]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 1&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats &amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:XBEE1 hardware comparaison SNR freq.png|thumb|400px|left]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 2&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats &amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:XBEE3 hardware comparaison SNR freq.png|thumb|400px|left]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 3&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats &amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Conclusion de l'expérience &amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Code python utilisé pour l'étude du signal&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def SNRStudy(name):&lt;br /&gt;
    tmp=scipy.fromfile(open(name+&amp;quot;_PhaseMeg&amp;quot;), dtype=scipy.complex64)&lt;br /&gt;
&lt;br /&gt;
    f = open(name+&amp;quot;_SNR_Values&amp;quot;,&amp;quot;a&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    p=1&lt;br /&gt;
    size = tmp.__len__()&lt;br /&gt;
    magnitude = (numpy.real(tmp)).tolist()&lt;br /&gt;
&lt;br /&gt;
    threshold=10&lt;br /&gt;
&lt;br /&gt;
    P=0&lt;br /&gt;
    SNR_graph=[]&lt;br /&gt;
    SNR=[]&lt;br /&gt;
&lt;br /&gt;
    win_sz=64&lt;br /&gt;
&lt;br /&gt;
    if(size&amp;gt;=win_sz):&lt;br /&gt;
        for val in range(0,size-win_sz):&lt;br /&gt;
&lt;br /&gt;
            if(val&amp;gt;=((size-win_sz)/100)*p): # Affiche l'état de l'étude&lt;br /&gt;
                print(str(p)+&amp;quot; %&amp;quot;)&lt;br /&gt;
                p=p+1&lt;br /&gt;
&lt;br /&gt;
            SNR_graph.append( 20*math.log((numpy.mean(magnitude[val + win_sz/2 : val + win_sz-1]))/(numpy.mean(magnitude[val+0 : val+win_sz/2-1])), 10) )&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
    size=len(SNR_graph)&lt;br /&gt;
&lt;br /&gt;
    for i in range(1, size-1):&lt;br /&gt;
        if (SNR_graph[i]&amp;gt;SNR_graph[i-1] and SNR_graph[i]&amp;gt;SNR_graph[i+1] and SNR_graph[i]&amp;gt;threshold):&lt;br /&gt;
            SNR.append(SNR_graph[i])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    tmp=numpy.asarray(SNR)&lt;br /&gt;
    tmp.tofile(f)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    try:&lt;br /&gt;
        SNRStudy(sys.argv[1])&lt;br /&gt;
    #except IndexError:&lt;br /&gt;
        #print(&amp;quot;Donnez le nom du fichier\n&amp;quot;)&lt;br /&gt;
    except IOError:&lt;br /&gt;
        print(&amp;quot;Le fichier n'existe pas\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'archive des scripts python : &lt;br /&gt;
&lt;br /&gt;
[archive.zip]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le rapport&lt;br /&gt;
&lt;br /&gt;
[Rapport.pdf]&lt;/div&gt;</summary>
		<author><name>Amoreau</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=75714</id>
		<title>IMA4 2018/2019 P70</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=75714"/>
				<updated>2019-05-09T12:16:40Z</updated>
		
		<summary type="html">&lt;p&gt;Amoreau : /* Expérience : Variation du Rapport Signal Bruit en fonction de la distance de reception */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;font-size: 30px; width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;Impact du matériel et du logiciel sur le champ électromagnétique&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Projet'''&amp;lt;/ins&amp;gt; : Impact du matériel et du logiciel sur le rayonnement électromagnétique&lt;br /&gt;
&lt;br /&gt;
''Nous proposons d'évaluer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et la consommation électrique.''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Etudiants'''&amp;lt;/ins&amp;gt; : Souheib KHINACHE et Antoine MOREAU&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Encadrants'''&amp;lt;/ins&amp;gt; : Alexandre BOE, Xavier REDON et Thomas VANTROYS&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'internet des objets est un marché en plein essor. La communication entre les différents objets connectés crée un nuage de signaux autour d'eux. Ces derniers sont vus par les utilisateurs comme des boîtes noires : le fonctionnement se fait sans en connaître les composants matériels et logiciels. &lt;br /&gt;
Néanmoins, ces objets, de par leurs propriétés électroniques, créent des fuites électromagnétiques impactant le champ environnant. &lt;br /&gt;
&lt;br /&gt;
Bien qu'ils peuvent porter à débat sur l'impact sur la santé, ces signaux peuvent représenter de réelles sources d'informations sur l'aspect matériel et applicatif de l'objet.&lt;br /&gt;
&lt;br /&gt;
Il serait donc intéressant d'avoir idée générale sur le fonctionnement du système en interprétant les ondes électromagnétiques émises par ce système.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Les principaux objectifs de ce projet seront donc de mesurer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et sur la consommation électrique.&lt;br /&gt;
Pour cela, l'outil potentiel avec lequel nous pourrions travailler serait une sonde de champ électromagnétique afin d'établir des mesures. &lt;br /&gt;
Cependant, nous pourrions concevoir notre propre système de capture et d'interprétation à partir d'une antenne, de filtres de fréquences et d'un microcontrôleur (on commencera par un ATMega328P). Il sera nécessaire de prendre en compte les perturbations issues de notre appareil de mesure et d'en tenir compte.&lt;br /&gt;
&lt;br /&gt;
On effectuera ainsi plusieurs expérimentations sur différents supports d'étude :&lt;br /&gt;
*l'aspect &amp;quot;Hardware&amp;quot; en étudiant différents modèles pour un même type de shield  &lt;br /&gt;
*l'aspect calculatoire du matériel en se basant sur l'impact des microcontrôleurs en fonction du modèle (ATMega328P et ATMega2560)&lt;br /&gt;
*l'aspect &amp;quot;Software&amp;quot;, en étudiant l'impact du logiciel et du firmware d'un même composant (différents firmwares pour un même shield Wi-Fi)&lt;br /&gt;
*l'aspect puissance des composants électroniques de gestion de puissance (ponts, hacheurs, onduleurs...).&lt;br /&gt;
&lt;br /&gt;
L'étude des différentes informations se fera par traitement des signaux électromagnétiques et des spectres. &lt;br /&gt;
Afin de mieux appréhender le problème, il nous est nécessaire de comprendre les phénomènes physiques issus de la notion d'électromagnétisme.&lt;br /&gt;
&lt;br /&gt;
Ces études mèneront à une étape plus complexe : l'interprétation des signaux. En effet, l'un des objectifs de ce projet est de comprendre du mieux possible le fonctionnement d'un système sans y avoir accès directement, et donc dans ce contexte &amp;quot;traduire&amp;quot; un ensemble de signaux électromagnétiques.&lt;br /&gt;
&lt;br /&gt;
On pourra en outre apporter un aspect visuel à l'étude en rajoutant une interface informatique.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
Bien qu'aux yeux de nombreuses personnes le bruit électromagnétique créé par les équipements électroniques du quotidien peut porter à controverse (débats concernant l'impact sur la santé par exemple), il peut être une source d'informations. &lt;br /&gt;
De nos jours, les ondes électromagnétiques restent un vaste champ d'étude, sujettes à de nombreuses thèses et recherches au sein des laboratoires.&lt;br /&gt;
&lt;br /&gt;
On peut prendre l'exemple de [https://www.eurekalert.org/pub_releases/2015-01/giot-rwt010715.php Milos Prvulovic], professeur à l'Institut Technologique de Géorgie, ayant simulé un contexte de cybercafé, dans lequel il place une antenne magnétique, un ordinateur portable cible et un ordinateur &amp;quot;espion&amp;quot;. Il réussit, grâce aux signaux EM émis par l'impulsion de l'appui des touches clavier à capter un message écrit par un ordinateur cible. &lt;br /&gt;
&lt;br /&gt;
Néanmoins, dans le quotidien, l'utilisation des sondes électromagnétiques se fait pour l'étude énergétique d'un système électronique (fuites électromagnétiques anormales, preuves d'une anomalie...) afin de respecter certaines normes législatives. Le code du travail par exemple réglemente et définit des valeurs seuils par le biais des articles R. 4453-3 et R. 4453-4.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
'''NBM-520 de NARDA STS'''&lt;br /&gt;
[[Fichier: NBM_TS.png|thumb|300px|NBM-TS, application des appareils NBM]]&lt;br /&gt;
NARDA STS est une entreprise qui fournit des outils de mesure. Elle met à disposition aux professionnels des sondes électromagnétiques.&lt;br /&gt;
La NBM-520 est un appareil de la franchise, mesurant le champ électrique et magnétique. Elle donne des valeurs précises du champ électromagnétique ambiant sur une large bande. Elle propose différentes sondes modulables permettant une souplesse au niveau de l'étude en fonction des besoins, avec des sondes pouvant étudier des signaux de fréquence de 100kHz à 6GHz ou même de 300kHz à 50GHz (en fonction de la sonde choisie).&lt;br /&gt;
&lt;br /&gt;
En outre, le dispositif peut se connecter en USB sur PC afin d'envoyer les données capturées et d'en faire une étude. Le dispositif propose un logiciel d'étude, NBM-TS, permettant d'observer du champ en fonction du temps, de la fréquence, de la position...&lt;br /&gt;
&lt;br /&gt;
L'équipement est utilisé par l'ANF (l'Agence Nationale des Fréquences, agence gérant l'ensemble des normes autour des radiofréquences), et est donc un gage de qualité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Avantages :''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Large bande de fréquence&lt;br /&gt;
* Matériel solide&lt;br /&gt;
* Application fonctionnelle permettant l'étude et gestion des données&lt;br /&gt;
* Possibilité d'étudier séparément champ électrique et magnétique&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Inconvénients:''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Impossible d'étudier les basses fréquences (appareils sous tension, bobinages...)&lt;br /&gt;
* Prix élevé : à partir de 3100€&lt;br /&gt;
* La cible de ce produit est surtout les professionels&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
'''Une pita.'''&lt;br /&gt;
&lt;br /&gt;
''Comment mon pain à pita vole ta clé RSA ?''&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Pita.jpg|200px|thumb|left|Une pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Des chercheurs israéliens ont découvert un moyen de capturer des clés de cryptage RSA, réputées comme inviolables, par le biais d'une pita... du moins avec un dispositif suffisamment petit pour être caché dans un pain à pita. &lt;br /&gt;
Le dispositif, renommé PITA pour Portable Instrument for Trace Acquisition a la particularité de capturer les ondes radio électromagnétiques émanantes d'un PC, qu'il soit connecté à un réseau ou pas.&lt;br /&gt;
Les différentes opérations du processeur sont identifiées en distinguant les différents modèles de l'activité radio sur le spectre EM.&lt;br /&gt;
&lt;br /&gt;
Bien que la capture des clés RSA a été faite dans des conditions particulières (modification du processeur de l'ordinateur cible), il est néanmoins possible, selon les chercheurs, d'identifier quelle type d'activité est exercée par l'ordinateur ainsi que son état.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PITA.jpg|300px|thumb|right|Un dessous de pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'un des points importants concernant le dispositif est son coût : moins de 300 euros.&lt;br /&gt;
L'appareil dispose :&lt;br /&gt;
* d'un PC portatif (PC-on-a-stick) ''Rikomagic MK802 IV'',&lt;br /&gt;
* d'un recepteur radio SDR ''FUNcube Dongle Pro+''&lt;br /&gt;
* d'une antenne radio&lt;br /&gt;
* d'une batterie&lt;br /&gt;
* d'une antenne WiFi&lt;br /&gt;
* d'une carte MicroSD&lt;br /&gt;
* d'un adapteur d'antenne&lt;br /&gt;
* et d'une '''pita'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le dispositif aurait une portée de 50cm. &lt;br /&gt;
Les chercheurs israéliens ont collaboré avec GNU Private Guard (logiciel de cryptage asymétrique) afin de protéger contre ces attaques les clés de cryptage.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
&lt;br /&gt;
''Scénario 1''&lt;br /&gt;
&lt;br /&gt;
Gérard a toujours le flair pour les bonnes affaires. Il a acheté une centaine de clés WiFi à un prix dérisoire sur AloXpresso afin de faire du profit à la revente. Le vendeur lui garantit que toutes les clés fonctionnent correctement. Gérard veut vérifier. Après vérification, 99 des clés sur 100 fonctionnent comme prévu. Gérard aimerait être sûr du disfonctionnement, mais Gérard n'est pas une pointure en informatique. &lt;br /&gt;
&lt;br /&gt;
Coup de génie ! Il se rappelle qu'il dispose d'un dispositif qui capte les ondes EM et les interprète directement. C'est le moment de tester ça. Il remarque une anomalie sur le spectre.&lt;br /&gt;
Il décide de contacter le revendeur pour lui signaler un disfonctionnement sur l'une des clé. &lt;br /&gt;
Pas de soucis. Le vendeur, étant bon prince, lui envoie une autre clé USB et lui fait une ristourne.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Scénario 2''&lt;br /&gt;
&lt;br /&gt;
La police fait une perquisition chez un individu soupçonné de graves délits. Cela fait plusieurs mois que la brigade criminelle prépare l'intervention, et une fois sur les lieux ils arrêtent le soupçonné malfaiteur.&lt;br /&gt;
Cependant avant de repartir, elle veut faire l'acquisition d'un maximum de preuves. Elle veut alors prendre l'essentiel des objets, dont certains objets éléctroniques connectés de l'individu dont elle pourra extraire les informations qui serviront à le faire tomber.&lt;br /&gt;
&lt;br /&gt;
Par chance, elle dispose d'un petit outil qui scannera les signatures alentours des objets connectés, comme des téléphones cachés, clés USB wifi dissimulées dans le décor etc..&lt;br /&gt;
Et si le suspect avait modifié malignement un objet connecté banal pour l'utiliser autrement à ses fins, la police le découvrirait car elle possède une base de données de toutes les signatures spectrales des objets connectés sur le marché et celle de l'objet modifié ne collerait pas avec celle de la base de données.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
&lt;br /&gt;
'''Comment étudier les signaux malgré les perturbations électromagnétiques ambiants et les faibles signaux des µC ?'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les signaux électromagnétiques des microcontrôleurs ou d'autres composants peuvent être faibles. Il y a une possibilité pour palier à ce problème, c'est de capter les signaux depuis une antenne émettrice que l'on rajoute à l'objet d'étude. &lt;br /&gt;
Nous utiliserons un SDR (Software Defined-Radio) afin de capter les ondes radio et les étudier directement sur PC. Le filtrage s'effectuera ainsi de manière numérique. Plusieurs tests seront effectués pour le même objet à étudier (quand on parle d'objet, on évoque un ensemble de plusieurs composants, comme par exemple une alimentation, un micro-contrôleur et une antenne). Ainsi, de manière statistique, nous pourrons en déduire un pattern récurrent pour chaque expérience en les effectuant dans différents environnements (pourquoi pas une chambre anachoïque). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons &lt;br /&gt;
* Capter le signal émis par un objet connecté le plus précisément possible&lt;br /&gt;
&lt;br /&gt;
* Concevoir nos propres objets connectés tous différents mais basés sur un même modèle&lt;br /&gt;
&lt;br /&gt;
* Interpréter les spectrogrammes, faire une étude statistique des signaux émis par nos différents objets et en tirer des conclusions&lt;br /&gt;
&lt;br /&gt;
* Répertorier dans une base de données les signatures de nos objets , voire de quelques objets disponibles sur le marché&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix logiciel :&lt;br /&gt;
&lt;br /&gt;
- La distribution Linux Pentoo ou Kali pour traiter les signaux avec GNU RADIO (Suite logicielle dédiée à l’implémentation de radios logicielles et de systèmes de traitement du signal).&lt;br /&gt;
&lt;br /&gt;
- FemtoOS pour l'OS des ATMEGA328P et ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix Matériel : &lt;br /&gt;
&lt;br /&gt;
- Plusieurs modules radios émetteurs &lt;br /&gt;
&lt;br /&gt;
- Plusieurs microcontrôleurs ATMEGA328P et un ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
- Des alimentations identiques pour chaque PCB&lt;br /&gt;
&lt;br /&gt;
- Un HackRF pour la réception des signaux&lt;br /&gt;
&lt;br /&gt;
- Une antenne 50 Ohm pour le HackRF [https://www.passion-radio.fr/accessoires-sdr/antenne-ant500-74.html]&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous devons préparer tout le matériel qui servira à faire nos tests. C'est à dire concevoir :&lt;br /&gt;
&lt;br /&gt;
- Un ensemble SDR/PC qui traitera le signal reçu avec GNU RADIO.&lt;br /&gt;
&lt;br /&gt;
- Une multitude de PCB qui seront utilisés comme objets connectés (Sur chacun d'entre eux on trouvera au minimum une antenne radio, un microcontrôleur et une alimentation)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de récupérer une &amp;quot;signature&amp;quot; d'un de nos objets , il faudra faire plus de 50 analyses spectrales pour conclure statistiquement sur une bonne signature qui caractérisera l'objet.&lt;br /&gt;
&lt;br /&gt;
Nous devons donc dans un second temps: &lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques mais qui ont un '''firmware''' différent.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques qui ont pour seule différence le '''microcontrôleur'''.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques dont seul le '''PCB''' diffère.&lt;br /&gt;
&lt;br /&gt;
Grâce à tous ces tests , nous pourrons conclure et voir l'impact qu'à le matériel ou le logiciel sur la signature d'un objet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enfin si les délais nous le permettent, nous pourrons réaliser un software qui cartographiera nos objets connectés dans la pièce grâce à la puissance de la signature reçue (Ce qui devrait être réalisable puisqu'à ce stade nous aurons une base de donnée des signatures).&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
|3&lt;br /&gt;
|8&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Recherches&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|6&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Prise en main de GnuRadio&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Configuration Xbee&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Expériences&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|5&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|4&lt;br /&gt;
|15&lt;br /&gt;
|9&lt;br /&gt;
|8&lt;br /&gt;
|7&lt;br /&gt;
|8&lt;br /&gt;
|8&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
[[Fichier:HackrfOne.jpeg|200px|thumb|right|Le HackRF One]]&lt;br /&gt;
Durant cette semaine, nous avons continué nos recherches notamment sur le moyen de transmission de nos objets connectés. Nous avons confirmé notre choix de notre SDR : Monsieur Boé nous a confirmé que des HackRF seraient disponibles dans les laboratoires et qu'il pourrait nous en prêter un. On disposera donc d'une antenne puissante pour traiter les signaux émis par nos objets communiquants. &lt;br /&gt;
&lt;br /&gt;
Il faudra coupler notre HackRF avec un logiciel appelé GNU RADIO qui est un logiciel très complet ( Pour information : la NASA a utilisé GNU RADIO afin de rétablir le contact avec une sonde spatiale abandonnée ). Afin de faire tourner ce logiciel libre, nous aurons besoin de la distribution Kali Linux, ex Backtrack.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Choix des émetteurs/récepteurs === &lt;br /&gt;
&lt;br /&gt;
Nous avons décidé que nos objets connectés communiqueront dans deux '''bandes de fréquences ISM''', l'une à '''900 MHz''' grâce à des modules Digi Xbee et l'autre à '''2,4 GHz''' par le moyen de modules émetteurs Bluetooth. On rappellera que les Digi Xbee et les émetteurs/récepteurs Bluetooth seront pilotés par des ATMEGA 2560.&lt;br /&gt;
&lt;br /&gt;
Les Xbee ne communiqueront pas entre eux et émettront en continu les mêmes données car ils le peuvent, alors que les émetteurs/récepteurs Bluetooth devront s'échanger des données si on veut pouvoir observer un quelconque signal autour de la fréquence de leurs porteuses. &lt;br /&gt;
&lt;br /&gt;
On voudra observer premièrement, si avec deux objets dans les '''mêmes''' conditions (donc même µc et même émetteur), on peut ou non '''distinguer une différence'''. Ceci est fondamental pour la suite des expériences, puisque si les deux émettent à la même fréquence, on pourra faire varier plusieurs paramètres afin de trouver '''des clés''' (des signes) qui pourraient aider à l'identification du matériel.&lt;br /&gt;
&lt;br /&gt;
Ces clés représentent différents facteurs potentiels d'identification du signal (le rapport signal-bruit en fonction de la distance par exemple...).&lt;br /&gt;
&lt;br /&gt;
''On planifie alors pour la semaine suivante de réussir à faire émettre, en utilisant simplement des breadboards pour commencer, nos Xbee et modules BT et observer quelque chose grâce à notre SDR.''&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration des modules XBee ===&lt;br /&gt;
&lt;br /&gt;
Nous avons configuré deux XBee afin qu'ils puissent communiquer entre eux : &lt;br /&gt;
&lt;br /&gt;
Les modules XBee ont été montés sur des platines d'interface USB/série de manière à ce qu'on puisse les paramétrer via le programme de contrôle ''minicom''. &lt;br /&gt;
&lt;br /&gt;
Dans le doute, on supposera que les XBee communiquent à 9600 Baud. On exécute la commande suivante : &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;minicom -b 9600 -D /dev/ttyUSB0&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
On active l'echo local dans minicom, afin de pouvoir observer ce qui a été envoyé par liaison série au XBee ('''CTRL+A''' puis '''E''').&lt;br /&gt;
&lt;br /&gt;
Pour commencer le paramètrage il faut taper ''' +++ ''' rapidement. Le XBee nous répond OK, cela veut dire que nous sommes dans le mode configuration et que nous pouvons utiliser les commandes '''AT'''. (Redirection vers la liste des commandes AT XBee [https://cdn.sparkfun.com/assets/resources/2/9/22AT_Commands.pdf]).&lt;br /&gt;
&lt;br /&gt;
Comme nos XBee ont été utilisés auparavant, il a fallu les restaurer à l'état usine avec la commande '''ATRE'''.&lt;br /&gt;
&lt;br /&gt;
Si on souhaite que des XBee puissent s'envoyer des données il faut qu'ils soient sur le même canal (commande '''ATCH''') et aient le même PAN ID (commande '''ATID'''). Notre PAN ID sera '''BEE6''' et le canal sera celui par défaut '''C'''.&lt;br /&gt;
&lt;br /&gt;
Ensuite il faut leur donner une adresse de destination ('''ATDH''' &amp;amp; '''ATDL''') qui sera l'adresse broadcast, pour ce faire on entre &lt;br /&gt;
 ATDH=0000&lt;br /&gt;
 ATDL=FFFF&lt;br /&gt;
&lt;br /&gt;
Enfin '''ATMY''' représente l'ID du XBee, notre premier XBee aura comme ID 5000 et le second 5001.&lt;br /&gt;
&lt;br /&gt;
N'oublions pas de sauvegarder les paramètres avec '''ATWR'''.&lt;br /&gt;
&lt;br /&gt;
On vérifie que tout a bien été pris en compte :&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;&lt;br /&gt;
+++OK&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATID&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
BEE6&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
C&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
0&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDL&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
FFFF&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATMY&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
5000&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCN&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Puis on fait de même avec le deuxième XBee (ID 5001).&lt;br /&gt;
&lt;br /&gt;
Voilà, lorsque on envoie des caractères par liaison série sur 5000, la LED '''Tx''' de 5000 s'allume et la Led '''Rx''' de 5001 s'allume elle aussi. Cela signifie que l'envoi de donnée par onde radio s'effectue correctement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que les XBee émettent et reçoivent, on peut commencer les mesures avec notre SDR. Mais avant cela il va falloir bien se familiariser avec le logiciel GNU RADIO qui est assez difficile à prendre en main.&lt;br /&gt;
&lt;br /&gt;
=== Première prise en main du logiciel GNURADIO ===&lt;br /&gt;
&lt;br /&gt;
Installation de GNU radio avec les fonctions + drivers pour HackRF : &lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install gqrx-sdr gnuradio gr-osmosdr hackrf &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le bloc Osmocom Source sert de &amp;quot;passerelle&amp;quot; entre le logiciel et la SDR, il permet de transmettre les informations récupérées par le HackRF afin qu'on puisse les traiter avec d'autres bloc de fonctions.&lt;br /&gt;
&lt;br /&gt;
Si on veut pouvoir récuperer les données il faut passer l'argument ''hackrf=0'' dans la box périphérique du bloc Osmocom.&lt;br /&gt;
&lt;br /&gt;
Ci-dessous on peut voir le spectre environnant entre 2.44GHz et 2.460GHz grâce au bloc WX GUI FFT Sink.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ScreenGnuRadio.png|Interface de GNURadio]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous a permis d'effectuer notre première expérience. L'utilisation des deux Xbees nous a permis d'observer l'impact des Xbee sur le champ électromagéntique environnant.&lt;br /&gt;
&lt;br /&gt;
Si on analyse le spectre environnant grâce au module FFT de GNU Radio, lorsque les Xbee communiquent entre eux, on peut apercevoir un pic caractéristique propre.&lt;br /&gt;
En effet, lors de l'emission d'un message sur le port série, on a un pic qui se dégage du spectre d'amplitude -20dBm. Ce pic est caractéristique au canal de communication choisi et configuré sur le Xbee.&lt;br /&gt;
Néanmoins, le signal est perturbé par le bruit environnant. &lt;br /&gt;
L'expérience étant effectuée au sein de l'école, les signaux Wi-Fi perturberont l'étude.&lt;br /&gt;
Il faut noter que la norme IEEE 802.11 impose au Wi-Fi l'utilisation d'une bande passante s'étalant de 2.4 GHz à 2.5 GHz.&lt;br /&gt;
&lt;br /&gt;
La bande passante des modules Zigbee se décomposent en 16 canaux, allant de 2400 MHz à 2480 MHz par pas de 5 MHz.&lt;br /&gt;
&lt;br /&gt;
Le canal ici utilisé est le canal 13 (3ème canal) de fréquence 2415 MHz.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[Fichier:Channel135001.png|thumb|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Fichier:channel135000.png|thumb|none|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBeeCh13.png|Spectre de l'environnement autour du XBee|thumb|none|400 px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBeeCh13SND.png|Lors de l'envoi de données au XBee voisin|thumb|none|400 px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut observer un pic de puissance lors de l'envoi d'une donnée en série à la fréquence 2.415 GHz.&lt;br /&gt;
Il nous est maintenant nécessaire d'analyser de plus près les signaux et leurs fréquence centrale dans la bande perçue au dessus de -20dB.&lt;br /&gt;
&lt;br /&gt;
On réeffectuera une expérience en zone isolée des signaux parasites.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous avons principalement fait des recherches dans le but de mieux comprendre les signaux émis par le Xbee.&lt;br /&gt;
&lt;br /&gt;
En somme, nous étions confrontés à de nombreuses interrogations. Le fonctionnement du Xbee étant assez simple et la sécurité du protocole Zigbee étant moindre, y a t-il possibilité de démoduler le signal émis afin de développer nos études ?&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
[[Fichier:Switchchannel pyscript.PNG|upright=0.8|thumb|right|Script Python]]&lt;br /&gt;
&lt;br /&gt;
Après réflexion et consultation de nos encadrants, nous nous sommes rendu compte que la démodulation prévue lors de la semaine 4 n'aiderait pas à répondre à la problématique de notre sujet !  &lt;br /&gt;
&lt;br /&gt;
Afin de mieux visualiser les signaux des Xbee , on décide d'automatiser le processus d'envoi sur le port série des données vers le Xbee. C'est à dire concevoir un programme Python qui automatisera l'envoi de données et le changement de channel à intervalle de temps régulier (Changement toutes les 10 secondes). &lt;br /&gt;
&lt;br /&gt;
L'utilisation de Minicom '''n'était pas du tout la meilleure solution''' pour faire émettre les Xbee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Après quelques essais, on remarque que lorsque le Xbee émet sur le channel 13, il émet à environ 2,445GHz au lieu d'émettre à 2,415GHz soit une différence de 30MHz : Ceci n'est pas important, car ce que l'on souhaite remarquer c'est un éventuel décalage de la fréquence centrale entre deux Xbee différents. Si les deux Xbee n'ont pas la même frequence centrale on pourra conclure que la '''fréquence centrale''' de la porteuse du Xbee n'est pas '''une des clés''' permettant d''''identifier''' cet émetteur/récepteur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaines 6 et 7==&lt;br /&gt;
&lt;br /&gt;
Afin de mieux cerner le comportement électromagnétique des modules XBee, il nous est nécessaire de comprendre leur fonctionnement et le protocole Zigbee.&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous avons cherché à souligner le parallélisme entre étude fréquentielle par le spectre et étude temporelle du signal.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PlancheXPtest.jpg|thumb|right|Planche prototype]]&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous avons paramétré la fréquence centrale de capture du HackRF. En effet, bien que le HackRF dispose d'une large bande passante, afin de se focaliser sur la porteuse, il est indispensable de configurer le HackRF en conséquence.&lt;br /&gt;
En second lieu, pour éviter une variation du RSSI (Received Signal Strength Indication) et de la puissance du signal, nous devions mettre en place une prototype de &amp;quot;planche expérimentale&amp;quot; sur laquelle devaient être fixés nos différents modules (l'antenne de reception et les Xbees).&lt;br /&gt;
&lt;br /&gt;
La position des antennes les unes par rapport aux autres est fondamentale. Afin d'optimiser la reception, les antennes doivent être parallèles.&lt;br /&gt;
&lt;br /&gt;
Chaque Xbee est identifié par un chiffre (1 ou 2). En effet, l'attribution de ces chiffres sera définitive pour ne pas perturber la cohérence des expériences. &lt;br /&gt;
Leur position est aussi fondamentale. Ainsi, en fonction que le Xbee soit emetteur ou récepteur, il sera disposé différement sur la planche.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Expérience : Le XBee 1 émetteur directement connecté en série au PC===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:GrapheGNURadio01.png|thumb|left|150px|Schéma simple d'étude fréquentielle et temporelle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette expérience est la première mettant en place un contexte (un seul Xbee émetteur connecté en série au PC, le deuxième Xbee étant inactif) et nous permettra d'étudier le plus de cas possibles.&lt;br /&gt;
&lt;br /&gt;
Nous avons tout d'abord commencé par un graphe GNURadio simple permettant l'observation du spectre et du signal et la variation de la fréquence d'étude.&lt;br /&gt;
&lt;br /&gt;
Le script python a été réécrit afin que le XBee puisse émettre une chaîne de caractère &amp;quot;HELLO&amp;quot; * 1024. En effet, même si la fréquence de balayage du module HackRF peut être grandement augmentée, il faut éviter d'aller au dessous de 0.01s, finissant par consommer de manière considérable les ressources octroyées par le CPU le cas échéant.&lt;br /&gt;
Le fait d'augmenter la taille de la chaine de caractère permet de mieux synchroniser l'étude en temps réel avec la capture des données.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc émis les données sur le canal 20 (14 en hexadécimal), soit la fréquence centrale est à 2.450GHz selon la norme Zigbee. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Etude fréquentielle&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L'étude fréquentielle est similaire à celle réalisée auparavant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div center&amp;gt;&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[Fichier:Spectrefreq2.png|thumb|center|750px|Spectre fréquentiel au canal 14]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[Fichier:Spectrogram.png|thumb|center|250px|Spectrogramme]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on peut observer sur l'analyseur de spectre GNURadio que la fréquence centrale est située 2.450GHz.&lt;br /&gt;
&lt;br /&gt;
D'autre part, l'ensemble des fréquences qui dessinent le spectre s'étalent sur une large bande de fréquence. En effet, cette technique d'étalement appelée DSSS (Direct-Sequence Spread Spectrum) utilisé par les modules XBee permet au signal d'être moins sensible aux interférences et aux brouillages. En outre, même si la puissance du spectre dans sa globalité reste la même, la densité spectrale elle diminue considérablement, rendant le signal plus &amp;quot;discret&amp;quot;.&lt;br /&gt;
La différence de puissance entre le lobe principal et les premiers lobes secondaires sont de 30 dB, ce qui est aussi commun au DSSS.&lt;br /&gt;
&lt;br /&gt;
Le spectrogramme témoigne aussi de l'étalement du signal sur un peu plus de 6 MHz (3MHz de par et d'autre de la fréquence centrale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt; Etude temporelle &amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Signal temporel.png|thumb|left|500px|Signal observable centré à 2.450GHz lors de l'émission]]&lt;br /&gt;
&lt;br /&gt;
Le signal ici est séparé en deux composantes car il s'agit d'un signal complexe. Nous avons supposé en premier temps qu'il s'agissait du signal principal décalé de 180°, ce qui n'était pas le cas.&lt;br /&gt;
Après quelques recherches, cette séparation des composantes permet de transmettre deux fois plus de données sur la même bande passante.&lt;br /&gt;
Le signal observable témoigne d'une modulation bien spécifique au XBee. En effet, on peut observer des sauts de phase à différents points, qui correspondent à une modulation par changement de phase (modulation QPSK ou Quadratic Phase-Shift Keying). Ce sont ces sauts de phases qui permettent la transmission des bits.&lt;br /&gt;
Les changements de phase s'il y a se font toutes les µs. En outre, on peut observer un décalage (offset) entre la composante Q et la composante I de µs/2 (propre à la modulation OQPSK).&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé d'enregistrer ces données brutes dans un fichier et nous l'avons étudié avec Audacity, logiciel open-source de son, et donc de signaux ! L'inconvénient avec l'interface graphique QT de GNURadio est son manque de précision lors d'un dézoom sur le signal en temps réel. Audacity permet de palier à celà !&lt;br /&gt;
En outre, on peut voir que les paquets Xbee sont reconnaissables. En effet, le signal témoigne de la taille du paquet XBee.&lt;br /&gt;
&lt;br /&gt;
Le paquet XBee est constitué d'un premier header (header physique) de 6 octets :&lt;br /&gt;
- la séquence de préambule (4 octets) constitué de 32 bits à 0&lt;br /&gt;
&lt;br /&gt;
- l'indice de début du paquet fixé à 0x7A (1 octet)&lt;br /&gt;
&lt;br /&gt;
- la longueur du paquet (1 octet);&lt;br /&gt;
&lt;br /&gt;
d'un header MAC (7 à 27 octets en fonction des informations de l'adresse), d'un bloc FCS de fin de paquet (2 octets) et l'ensemble des données (de 1 à 104 octets).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Signal2.png|thumb|right|400px|On observe graphiquement qu'un paquet est transmis en 3846µs]]&lt;br /&gt;
[[Fichier:PacketXBee.png|400px|thumb|right|Paquet XBee]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Comme dit plus haut, les signaux émis par le XBee connaissent un étalement sur le spectre par DSSS.&lt;br /&gt;
Cet étalement s'effectue en divisant chaque symbole (correspondant à une série de 4 bits) transmis en &amp;lt;B&amp;gt;&amp;lt;I&amp;gt;chips&amp;lt;/I&amp;gt;&amp;lt;/B&amp;gt;.&lt;br /&gt;
Chaque symbole, soit 4 bits, correspond à 32 chips, et donc 32 états binaires (1 octet correspond à 64 chips).&lt;br /&gt;
Dans le cas de la norme ZigBee, la transmission de chacun des chips est synchronisé sur chaque µs (1 chip toutes les µs).&lt;br /&gt;
&lt;br /&gt;
Les signaux reçus par l'antenne HackRF étaient deux sinusoïdes modulées en phase et qui s'étalaient sur une période d'environ 3840µs (3846µs graphiquement mais il y a possibilité d'erreur à l'echelle du µs).&lt;br /&gt;
Sachant qu'un octet correspond à 64µs, on a :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;N_{octets} =\frac{2*T_{signal}}{64*T_{chip}}=\frac{2*3.840*10^{-6}}{64*10^{-6}}=120 octets&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'analogie peut être effectuée entre paquet Ethernet et paquet ZigBee. En effet, la taille limite des données d'un paquet est de 104 octets. La chaîne de caractère n'étant qu'envoyée par paquet, le paquet observé n'est que de 120 octets, ce qui est cohérent avec les caractéristiques du XBee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Hello1024secs.png|thumb|none|Temps de transmission de la chaîne de caractères &amp;quot;HELLO&amp;quot; 1024 fois]] &amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:AudacitySignal2.png|thumb|none|51 Paquets XBee portent la chaîne de caractère &amp;quot;HELLO&amp;quot; 1024 fois]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 8==&lt;br /&gt;
&lt;br /&gt;
L'étude des signaux posait réellement problème de par le fait qu'une grande partie de la capture faite n'était que purement le bruit sans signal (utile plus tard pour l'étude du SNR).&lt;br /&gt;
Prenons l'exemple d'un paquet de 21 octets (un paquet contenant une seule chaîne de caractères HELLO). Le signal s'étalerait en théorie sur 21*64 chips soit 672 chips. Sachant que la modulation est une modulation QPSK, on s'étale sur un temps de 672µs.&lt;br /&gt;
En effet, le Xbee transmet toutes les 100ms.&lt;br /&gt;
Donc qu'une partie du signal nous est utile.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décider d'écrire un script qui nous permettrait d'étudier le signal dans de meilleures conditions, et donc de le filtrer.&lt;br /&gt;
&lt;br /&gt;
Chaque capture de signal effectuée est enregistrée dans un fichier par le biais du bloc fonction &amp;lt;B&amp;gt;&amp;lt;I&amp;gt;File Sink&amp;lt;/I&amp;gt;&amp;lt;/B&amp;gt; du compagnon GNURadio. Néanmoins, les fichiers obtenus sont des fichiers binaires assez lourds (environ 500Mo pour une capture de 3s), ce qui est un réel problème et qui implique le filtrage du signal.&lt;br /&gt;
&lt;br /&gt;
La bibliothèque numpy pour python nous permet en outre directement d'importer les échantillons des signaux, les traduisant du binaire à un format cible (complexe flottant 64 bits) dans un Array par le biais de la fonction:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; f = scipy.fromfile(open(&amp;quot;Nom du fichier&amp;quot;), dtype=scipy.complex64) &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La première solution pour réduire ce signal était d'imposer un threshold directement sur le signal, supérieur au bruit, mais qui conduirait à une perte d'une partie du signal à étudier.&lt;br /&gt;
La deuxième solution qui a été retenue était tout simplement de calculer l'amplitude et la phase du signal et appliquer ce même threshold à l'amplitude.&lt;br /&gt;
&lt;br /&gt;
== Semaine 9 et 10==&lt;br /&gt;
&lt;br /&gt;
A partir de la semaine 10 nous avons procéder aux expériences pour avoir suffisamment de données et en tirer des conclusions.&lt;br /&gt;
&lt;br /&gt;
Lorsqu'on fait une acquisition d'un signal xbee , on peut maintenant via un script traiter cette acquisition et récupérer seulement les parties qui nous intéressent : A savoir la partie réelle et la partie imaginaire, l'amplitude du signal et enfin la phase du signal.&lt;br /&gt;
&lt;br /&gt;
Exemple ci dessous après acquisition + traitement de notre xbee n°2 :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Traitement xbee2.png|thumb|right|redresse=2|Signal Xbee2 post-traitement ]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Constellation xbee2.png|thumb|right|redresse=2|Diagramme de constellation xbee2 après utilisation de LightSignal]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'utilisation du script LightSignal permet de retirer toutes les phases en dehors du signal. Ainsi, on peut caractériser le diagramme de constellation comme un diagramme propre à la modulation QPSK. &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
import scipy&lt;br /&gt;
import numpy&lt;br /&gt;
import sys&lt;br /&gt;
&lt;br /&gt;
def binToComplex64(name):&lt;br /&gt;
    threshold=0.10&lt;br /&gt;
    tmp=scipy.fromfile(open(name+&amp;quot;_PhaseMeg&amp;quot;), dtype=scipy.complex64)&lt;br /&gt;
    tmp2=scipy.fromfile(open(name), dtype=scipy.complex64)&lt;br /&gt;
    &lt;br /&gt;
    f2 = open(name+&amp;quot;_filtre&amp;quot;, &amp;quot;w+&amp;quot;) &lt;br /&gt;
    f = open(name+&amp;quot;_PhaseMeg_filtre&amp;quot;,&amp;quot;w+&amp;quot;)&lt;br /&gt;
    &lt;br /&gt;
    p=1&lt;br /&gt;
    size=tmp.__len__()&lt;br /&gt;
    size2=tmp2.__len__()&lt;br /&gt;
    &lt;br /&gt;
    if size &amp;gt; size2:&lt;br /&gt;
        size=size2&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    ground=False&lt;br /&gt;
    newListSignal=[]&lt;br /&gt;
    newListMagnPh=[]&lt;br /&gt;
    for val in range(0,size): &lt;br /&gt;
        if(val&amp;gt;=(size/100)*p):&lt;br /&gt;
            print(str(p)+&amp;quot; %&amp;quot;)&lt;br /&gt;
            p=p+1&lt;br /&gt;
        if(tmp[val].real&amp;gt;threshold):&lt;br /&gt;
            if(ground==True):&lt;br /&gt;
                for i in range(0,1000):&lt;br /&gt;
                    newListSignal.append(numpy.complex64(0))&lt;br /&gt;
                    newListMagnPh.append(numpy.complex64(0))&lt;br /&gt;
                ground=False&lt;br /&gt;
            newListSignal.append(tmp2[val])&lt;br /&gt;
            newListMagnPh.append(numpy.complex64(tmp[val].real+tmp[val].imag*0.3j))&lt;br /&gt;
        else:&lt;br /&gt;
            ground=True&lt;br /&gt;
    &lt;br /&gt;
    tmp=numpy.asarray(newListMagnPh)&lt;br /&gt;
    tmp.tofile(f)&lt;br /&gt;
    tmp2=numpy.asarray(newListSignal) &lt;br /&gt;
    tmp2.tofile(f2)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    try:&lt;br /&gt;
        binToComplex64(sys.argv[1])&lt;br /&gt;
    except IndexError:&lt;br /&gt;
        print(&amp;quot;Donnez le nom du fichier\n&amp;quot;)&lt;br /&gt;
    except IOError:&lt;br /&gt;
        print(&amp;quot;Le fichier n'existe pas\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__=='__main__':&lt;br /&gt;
    main()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le diagramme de constellation témoigne de nouveau du type de modulation utilisé par le module XBee.&lt;br /&gt;
En effet, on observe quatre points de part et d'autre des axes de quadrature et d'inphase.&lt;br /&gt;
&lt;br /&gt;
==Semaine 11==&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé cette semaine d'étudier, ce qui est selon pour nous, l'une des pistes fondamentales de notre projet, et plus particulièrement de l'étude de nos signaux : le rapport signal bruit.&lt;br /&gt;
&lt;br /&gt;
L'objectif de cette semaine et de celle à venir était, à partir du signal acquis par le hackrf, d'effectuer le calcul du SNR (signal-to-noise ratio) tel que :&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;SNR =\frac{P_{signal}}{P_{bruit}}&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le script python qui nous a permis de communiquer entre les deux shields Xbee se verra amélioré afin de faire plusieurs acquisition des signaux lors de la communication entre les Xbee, effectuer une moyenne statistique, et de même lorsqu'il n'y a pas de communication.&lt;br /&gt;
&lt;br /&gt;
Nous avons essayé d'approcher le SNR directement depuis l'interface de GnuRadio par le biais de l'utilitaire graphique et le langage en bloc, néanmoins nous procéderons à l'étude de ce rapport avec Scilab ou Matlab.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaines supplémentaires==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Expérience : Variation de l'amplitude===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 emet une chaîne de caractères HELLO*256 &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L'objectif de cette expérience est d'étudier le temps de variation de l'amplitude du signal entre l'état où le signal n'est pas reçu et l'état où le signal est réceptionné et donc l'amplitude constante.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats &amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
A 20MHz de fréquence d'echantillonage, le temps de variation moyen est de 3 échantillons, soit 0.15µs, pour toutes les captures faîtes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Conclusion sur l'expérience &amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
L'expérience n'a pas été concluante. Même si elle nous a permis de voir quelques différences (probablement provoquées pas des erreurs de capture et d'analyse), le HackRF nous limite beaucoup sur ce point de vue là. En effet, la fréquence d'échantillonage étant limitée à 20MHz, le HackRF n'est pas suffisamment précis pour capturer un nombre d'échantillons nous permettant de confirmer une quelconque hypothèse. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Code python utilisé pour l'étude du signal&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
def etudeAmplitude(name, liste_temps):&lt;br /&gt;
&lt;br /&gt;
    threshold_0=0.05 # Threshold&lt;br /&gt;
    threshold_1=0.4&lt;br /&gt;
    max_transition_time=50 #O&lt;br /&gt;
&lt;br /&gt;
    amppha=scipy.fromfile(open(name+&amp;quot;_PhaseMeg&amp;quot;), dtype=scipy.complex64) &lt;br /&gt;
&lt;br /&gt;
    p=1&lt;br /&gt;
    size=amppha.__len__()&lt;br /&gt;
    &lt;br /&gt;
    debut=1&lt;br /&gt;
    tps_variation=0 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    transition=False # Vérifie si le signal est en transition ou stable&lt;br /&gt;
&lt;br /&gt;
    for val in range(debut,size):&lt;br /&gt;
        if(val&amp;gt;=((size-debut)/100)*p):&lt;br /&gt;
            print(str(p)+&amp;quot; %&amp;quot;)&lt;br /&gt;
            p=p+1&lt;br /&gt;
&lt;br /&gt;
        if(amppha[val].real&amp;gt;threshold_0 and amppha[val].real&amp;lt;threshold_1): # Phase de transition du signal&lt;br /&gt;
            if(transition==False):&lt;br /&gt;
                transition=True&lt;br /&gt;
            tps_variation=tps_variation+1&lt;br /&gt;
&lt;br /&gt;
        elif(transition==True and amppha[val].real&amp;gt;threshold_1):&lt;br /&gt;
            if(amppha[val].real&amp;gt;=amppha[val-1].real-amppha[val-1].real*0.05 and amppha[val].real&amp;lt;=amppha[val-1].real+amppha[val-1].real*0.05): # L'amplitude du signal est stable&lt;br /&gt;
                if(tps_variation &amp;lt; max_transition_time):&lt;br /&gt;
                    liste_temps.append(tps_variation)&lt;br /&gt;
&lt;br /&gt;
                transition=False&lt;br /&gt;
                tps_variation=0&lt;br /&gt;
            else:&lt;br /&gt;
                tps_variation=tps_variation+1&lt;br /&gt;
        else:&lt;br /&gt;
            transition=False&lt;br /&gt;
            tps_variation=0&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Expérience : Temps de calcul du FCS entre le XBee1 et et le XBee2===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 1&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 et XBee2 sont alimentés sur 5V VCC par USB (connecté à l'ordinateur)&amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 et XBee2 disposent du firmware : 10EF &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 est d'abord emetteur et le XBee2 est recepteur puis inversement. Aucun paquet ACK n'est renvoyé de la part du recepteur &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On transmet la chaine de caractère HELLO 256 fois toutes les 1 secs&lt;br /&gt;
Les données étant assez conséquentes, le Xbee transmet plusieurs fragments du paquet.&lt;br /&gt;
L'objectif de cette expérience est d'étudier le temps entre chaque fragment d'un paquet.&lt;br /&gt;
L’espace de temps entre chacun des paquets permet de calculer le FCS (frame check sequence) afin de minimiser les erreurs de transmission.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:ChecksumGraphe.png|thumb|left|redresse=2|Les différents temps à mesurer]]  &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Néanmoins, l’étude de ces “temps morts” se voit entravée par le fait que le module HackRF ne permette pas d’obtenir un signal clair sur plus de 5 secondes.&lt;br /&gt;
En outre, pour 5 secondes d’étude et pour une fréquence d’échantillonage de 20MHz (soit un temps Te=5.10e8), on compte 100.000.000 d’échantillons.&lt;br /&gt;
Le CPU lors de la capture était grandement sollicité, ce qui explique le fait que la capture soit compromise.&lt;br /&gt;
Pour régler ce problème, on a écrit un script shell de capture.&lt;br /&gt;
Ce script consiste à:&lt;br /&gt;
&amp;lt;br&amp;gt;- effectuer une capture d’une durée de 1 sec&lt;br /&gt;
&amp;lt;br&amp;gt;- d’enregistrer la capture&lt;br /&gt;
&amp;lt;br&amp;gt;- d’effectuer un traitement de ces paquets par un algorithme python en étudiant le temps entre chacun des fragments. Ce temps sera obtenu en nombre d’échantillons, défini avec un seuil d’acceptation absolu entre 150.000 et 300.000 échantillons (pour bien capturer ces temps intermédiaires et pas les temps provoqués par des signaux parasites ou du bruit), et pour affiner l’étude, on impose un seuil d’erreur de +-10% autour de la moyenne. La moyenne est calculée en continue&lt;br /&gt;
&amp;lt;br&amp;gt;- l’ensemble des valeurs obtenues sont enregistrées dans un fichier&lt;br /&gt;
&amp;lt;br&amp;gt;- on réeffectue la capture …&lt;br /&gt;
&lt;br /&gt;
On répète le processus un certains nombre de fois afin d’obtenir un nombre de valeurs nous permettant de nous conforter sur l'issue de l'expérience (environ 1000 valeurs)&lt;br /&gt;
&lt;br /&gt;
La capture et l'étude de chacun des modules dure une à deux heures.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats :&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans le cas du XBee1 (à gauche) et du XBee2 (à droite), voici les résultats obtenus :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Xbee1Graphe256.png|thumb|left|redresse=2|On peut observer des pics caractéristiques à l'envoi]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBee2Graphe256.png|thumb|left|redresse=2|Les mêmes pics caractéristiques confirment un comportement non-aléatoires du module]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
XBee1 : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 259675,81&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 8369.7417&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 70052576.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
XBee2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 258762.58&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 9165.4097&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 84004736.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les graphes présentent le nombre de répétitions des temps de calcul de fragements.&lt;br /&gt;
&lt;br /&gt;
On peut voir des pics spécifiques à certains points dans les deux expériences. Ces pics sont caractéristiques et au module XBee, et à la chaîne de caractère HELLO. Les deux expériences étant effectuées dans le même contexte, &lt;br /&gt;
&lt;br /&gt;
De même que pour le second Xbee, on retrouve des pics bien distincts à certains points.&lt;br /&gt;
&lt;br /&gt;
En outre, on peut voir que ces pics bien distincts se rapprochent de ceux du premier Xbee.&lt;br /&gt;
Néanmoins, même si la moyenne varie que très peu par rapport aux deux Xbee, la variance est assez différente.&lt;br /&gt;
&lt;br /&gt;
Pour confirmer ces observations, il est peut être nécessaire de répéter la même expérimentation sur un nombre d'échantillons plus grand.&lt;br /&gt;
&lt;br /&gt;
Ainsi, afin de confirmer la conjecture, on décide de faire d’autres captures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En superposant les deux graphes (Xbee1 en rouge et Xbee2 en bleu), on peut voir qu'il y a moins de dispersion dans le cas du XBee1, plus centré sur des valeurs précises, contrairement au Xbee2.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:XBee1Xbee2Graphe.png|thumb|left|redresse=2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Pour les deux nouveaux échantillons, on a les caractéristiques suivantes :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Xbee1 sur 1688 échantillons&amp;lt;/U&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 260230.3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 8427.3923&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 71020941&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Xbee2 sur 1722 échantillons&amp;lt;/U&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 259899.41&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 9831.5106&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 96658601&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:SignalAT328.png|thumb|right|Signal observé dans le cas de l'ATMega328p]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 2&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 est connecté à un Arduino ATMega328p par le biais d'un shield Libelium &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 dispose du firmware 10EF &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; On envoie exactement les mêmes données que précédemment, la chaîne de caractères HELLO*256 toutes les 0.5s &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hormis l'amplitude du signal qui paraît plus faible lors de la transmission par ATMega328p, le message transmis ne change PAS. Même si nous avons fait en sorte que la periode de transmission soit la même que pour l'expérience précédente, elle n'affecte en rien l'issue de l'expérience car c'est le temps de division de paquet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:ATMega328.png|thumb|650px|Observation du temps de division d'un paquet dans le cas de l'ATMega328p]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:ATMega2560.png|thumb|650px|Observation du temps de division d'un paquet dans le cas de l'ATMega2560]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour les nouveaux échantillons, on a les caractéristiques suivantes :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Xbee1 sur ATMega328p sur 706 échantillons&amp;lt;/U&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 265818.58&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 4748.5965&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 22549168&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Xbee1 sur ATMega2560 sur 711 échantillons&amp;lt;/U&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 262877.83&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 3675.037&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 13505897&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut observer une distinction significative entre une transmission effectuée directement par la machine et la transmission depuis les modules composés d'un ATMega328p ou d'un ATMega2560. En effet, on n'observe pas les mêmes pics caractéristiques dans cette expérience comparé à l'expérience précédente. Même si la moyenne est quasi la même, l'ecart type est plus faible, ainsi que la variance. En outre, de même que pour l'expérience précédente, l'écart-type entre ATMega328p et ATMega2560 est aussi différent. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 3&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 est dans les mêmes conditions que durant la première expérience &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; On change le firmware du XBee1 pour le 10ED &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:FW10ED.png|thumb|left|400px|Observation du temps de division d'un paquet lors du changement du firmware]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Xbee1 sur 821 échantillons&amp;lt;/U&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 259735.52&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 8501.3996&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 72273796&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Après avoir changé le firmware, on a pu voir que les résultats ne changeaient pas par rapport à l'expérience témoin. On est même très proche des temps du XBee bien que l'expérience ne s'est pas faîte dans les mêmes conditions (pas au même endroit, donc possibilité de perturbations).&lt;br /&gt;
On peut donc en conclure que le firmware n'a pas un impact sur le temps de calcul du FCS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Conclusion de l'expérience&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
L’hypothèse qui est que la variance des temps &amp;quot;morts&amp;quot; entre chaque fragments de paquet, soit le temps de calcul du FCS pour le signal émis peut être considéré comme “clé” de distinction d’un module Xbee n'est donc pas à négliger. &lt;br /&gt;
Le temps de calcul du FCS semble unique entre chaque paquet paraît une empreinte propre au matériel.&lt;br /&gt;
&lt;br /&gt;
On peut même considérer que cette étude peut distinguer un module Xbee d'un autre électromagnétiquement parlant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Code python utilisé pour l'étude du signal&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def etudeSubdivPaquet(name, inter_time_values):&lt;br /&gt;
&lt;br /&gt;
threshold = 0.30&lt;br /&gt;
ground = false&lt;br /&gt;
p=1&lt;br /&gt;
&lt;br /&gt;
## On converti chacun des nombres binaires en complexe 64 (deux flottants 32 bits)##&lt;br /&gt;
amppha=scipy.fromfile(open(name+&amp;quot;_PhaseMeg&amp;quot;), dtype=scipy.complex64) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
## On récupère la taille du tableau de complexes (taille du signal) ##&lt;br /&gt;
size=amppha.__len__()&lt;br /&gt;
&lt;br /&gt;
    debut=0&lt;br /&gt;
    inter_time=0&lt;br /&gt;
    min_limit=150000&lt;br /&gt;
    max_limit=350000&lt;br /&gt;
    accept_range=1./10. ## Permet de mettre un seuil d'intervalle d'acceptation&lt;br /&gt;
    signalFnd=False&lt;br /&gt;
&lt;br /&gt;
    for val in range(debut,size):&lt;br /&gt;
        if(val&amp;gt;=((size-debut)/100)*p):&lt;br /&gt;
            print(str(p)+&amp;quot; %&amp;quot;)&lt;br /&gt;
            p=p+1&lt;br /&gt;
&lt;br /&gt;
        if(amppha[val].real&amp;gt;threshold):&lt;br /&gt;
            if(ground==True):&lt;br /&gt;
                if(signalFnd==True):&lt;br /&gt;
                    if(len(inter_time_values)&amp;gt;0):&lt;br /&gt;
                        moy=moyenne(inter_time_values)&lt;br /&gt;
                        if(inter_time &amp;gt;= moy-accept_range*moy and inter_time &amp;lt;= moy+accept_range*moy):&lt;br /&gt;
                            print(&amp;quot;Yes &amp;quot;+str(inter_time))&lt;br /&gt;
                            inter_time_values.append(inter_time)&lt;br /&gt;
                        inter_time=0&lt;br /&gt;
                    elif(inter_time&amp;gt;=min_limit and inter_time&amp;lt;=max_limit):&lt;br /&gt;
                        inter_time_values.append(inter_time)&lt;br /&gt;
                else:&lt;br /&gt;
                    signalFnd=True&lt;br /&gt;
                ground=False&lt;br /&gt;
        else:&lt;br /&gt;
            ground=True&lt;br /&gt;
            if(signalFnd==True):&lt;br /&gt;
                inter_time=inter_time+1&lt;br /&gt;
&lt;br /&gt;
    if(len(inter_time_values)&amp;gt;0):&lt;br /&gt;
        print(&amp;quot;Moyenne &amp;quot;+ str(moyenne(inter_time_values)))&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Rencontre avec Etienne Helluy Lafont ===&lt;br /&gt;
&lt;br /&gt;
Bien que plusieurs pistes ont pu être explorées, notre manque d'expertise dans le domaine de la radio logicielle nous a fait défaut sur nos recherches. En effet, après avoir calculé le SNR d'un de nos signaux, nous nous sommes retrouvés avec des résultats assez incohérents. De nombreuses erreurs peuvent se glisser et nous avions besoin de conseils à ce sujet.&lt;br /&gt;
&lt;br /&gt;
Etienne Helluy-Lafont est un doctorant qui fait sa thèse sur les sondes pour la détection d’intrusions dans les architectures réseau hétérogènes et massivement distribuées. Il développe un outil permettant d'analyser le spectre environnant, de donner des informations sur les signaux émis sur certains canaux et même de démoduler ces signaux. Son programme en C est flexible puisqu'il est adapté pour beaucoup d'antennes (Une des librairies qu'il utilise est SoapySDR [https://github.com/pothosware/SoapySDR/] qui possède des &amp;quot;codec&amp;quot; dont un pour notre HackRF !). Nous nous sommes servi de son outil afin d'avoir de bien meilleurs résultats pour les expériences sur le SNR des Xbee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Expérience : Variation du Rapport Signal Bruit en fonction de la distance de reception ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:FFTSNR.png|thumb|left|redresse=2|Calcul du SNR par FFT]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Fenetre.png|thumb|left|redresse=2|Calcul du SNR par fenêtre glissante]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L'objectif de cette expérience était de visualiser comment le rapport signal bruit (ou SNR) varie en fonction de la distance. &lt;br /&gt;
En effet, nous avions mis en suspens l'expérience qui consistait en la capture du SNR dû aux valeurs instables que l'on avait. &lt;br /&gt;
&lt;br /&gt;
La première idée était de faire une FFT du signal et de calculer le rapport en prenant la moyenne de sa puissance sur une bande de 2.4MHz (1.2Mhz de part et d'autre de la fréquence de capture du HackRF).&lt;br /&gt;
&lt;br /&gt;
Néanmoins, les caractéristiques du XBee (du point de vue de l'étalement spectral) rend le calcul du SNR imprécis. A la suite de la capture de signaux et de l'étude de ces mêmes signaux, les valeurs nous paraissaient incohérentes. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:SNRcalc.png|thumb|left|470px|Pics de SNR]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons donc procédé à une seconde méthode de calcul qui consiste à utiliser une fenêtre glissante de taille 2^k échantillons. &lt;br /&gt;
Pour chaque échantillon du signal, on calculait le SNR tel que :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;SNR =\frac{P_{signal+bruit}}{P_{bruit}}=\frac{|A_{signal+bruit}|^2}{|A_{bruit}|^2}&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans notre cas, on a :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;SNR_x =20.log \frac{Moyenne(W_x[2^{k-1}:2^k])}{Moyenne(W_x[0:2^{k-1}-1])}&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
W_x étant la fenêtre à l'échantillon x du signal, le rapport signal bruit est obtenu lorsqu'on a un pic.&lt;br /&gt;
La fenêtre choisie doit être suffisamment grande pour avoir une précision optimale.&lt;br /&gt;
On impose ainsi un threshold pour éviter des erreurs pouvant influencer les résultats de manière considérable.&lt;br /&gt;
Ainsi, on obtient les valeurs SNR cherchées.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous voulons donc vérifier si la mesure du SNR est une expérience pertinente pour l'identification du matériel. Nous allons prendre plusieurs XBee et mesurer le SNR à différentes distances de l'antenne SDR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 1&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 et XBee2 sont alimentés sur 3.3V VCC par USB (connecté à l'ordinateur)&amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 et XBee2  sont des modèles série s1&amp;lt;/I&amp;gt; disposent du firmware : 10EF&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee3 et XBee4 sont des modèles XBeePro &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Par défaut tous nos xbee disposent du même firmware (10EF), sauf si précisé que non &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Nous cherchons à observer la différence entre le XBee1 et XBee2 dans la même situation. &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Durant les expériences, le montage XBee1 connecté en USB sera le XBee témoin. &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PointsMoyenneXBee1Dist.png|thumb|left|470px|Les différentes valeurs du SNR acquises en fonction de la distance pour le XBee1]]&lt;br /&gt;
&lt;br /&gt;
Dans notre cas, le modèle XBee1 connecté en série à notre machine nous a servi de composant témoin afin d'étudier les signaux des autres modèles. En effet, suite à la capture et l'étude des signaux, on peut voir que le nuage de points qui constitue notre graphe témoigne d'un phénomène électromagnétique ondulatoire quant au champ. Avec la distance, plus l'on éloigne le module, plus le rapport signal sur bruit diminue (le contraire nous aurait étonné). En outre, la variation ondulatoire peut être caractérisée par le champs éléctrique.&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé de refaire cette expérience avec les trois autres XBee directement connectés à notre machine.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ALLXBEE comparaison SNR distance.png|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
De part les potentielles erreurs et les différentes perturbations électromagnétiques ambiantes, la valeur du SNR peut être affectée. Il n'est pas possible directement par les caractéristiques du rapport signal bruit d'effectuer le distinguo entre le XBee1 et le XBee2 (contrairement à l'expérience basée sur la subdivision de paquets). Cependant, les XBee3 et XBee4 présentent une caractéristique commune. Le SNR est beaucoup plus élevé. &lt;br /&gt;
&lt;br /&gt;
En effet, le pic de courant d'un XBee est de 45mA à la transmission pour une alimentation de 3.3V en tension continu, tandis qu'un module XBee pro, le pic de courant atteint les 150mA. Cette différence électronique permet ainsi au XBee pro de communiquer sur une plus grande zone (750m contre 90m pour un XBee simple).&lt;br /&gt;
&lt;br /&gt;
Ainsi, on peut conclure de cette expérience que le SNR est un élément témoin de la consommation énergétique d'un composant électrique (du moins de l'antenne).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:XBEE1 hardware comparaison SNR distance.png|thumb|400px|right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 2&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 est d'abord connecté à un Arduino UNO 328P par le biais d'un shield XBee Libelium puis est connecté à un Arduino Mega 2560 par le biais du même shield &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 dispose du firmware : 10EF &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
On peut observer que même si l'unité de contrôle n'est pas l'ordinateur mais le micro-contrôleur (ici ATMega2560 et ATMega328P), le rapport signal bruit ne change pas réellement. Néanmoins, il était pour nous intéressant de noter qu'un léger gap se créé à 30 et 40 cm de la SDR entre la communication USB et la communication avec les micro-contrôleurs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:XBEE3 hardware comparaison SNR distance.png|thumb|400px|right]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 3&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; L'expérience est similaire que pour le module XBee1 mais avec le XBee3 (pro) &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee3 est d'abord connecté à un Arduino UNO 328P par le biais d'un shield XBee Libelium puis est connecté à un Arduino Mega 2560 par le biais du même shield &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee3 dispose du firmware : 10EF &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
En outre, les résultats obtenus lors de l'expérience avec le XBee3 nous indique que le phénomène ondulatoire observé durant les tests précédents est moins souligné dans la communication avec les micro-contrôleur (toujours à 30 et 40cm) et celà après plusieurs tests.&lt;br /&gt;
&lt;br /&gt;
Des tests plus précis auraient été plusieurs avantageux et nous auraient permis de trancher sur la décision de l'importance du SNR concernant la différenciation de différentes unités de contrôle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:XBEE1 firmware comparaison SNR distance.png|thumb|400px|right]]&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 4&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 ici est connecté en série et dispose dans un premier temps du firmware 10EF (le firmware le plus récent) &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Après capture et expérimentation, on décide de réeffectuer la même chose avec le même XBee (XBee1) avec le firmware 10ED &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
Les acquisitions étant faites dans les mêmes conditions, il semblerait que le changement de firmware ait un petit impact sur la puissance d’émission : Cette petite différence de décibel ne semble pas aléatoire puisqu’on peut clairement voir que la courbe orange reste toujours inférieure à la courbe bleue, or le niveau de bruit est resté inchangé. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Conclusion de l'expérience&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; : &lt;br /&gt;
&lt;br /&gt;
'''Hardware''' : Les paquets émis via liaison série ont plus de puissance que ceux émis grâce aux arduino UNO et MEGA notamment à 10 cm, 40 cm et 50 cm. On remarque aussi une baisse du SNR moyen à 30 cm surtout en liaison série et ce, avec nos quatres XBEE. Coté ATMEGA , le SNR reste plutôt stable et décroit très doucement. Ainsi lors d’un calcul de SNR/Distance on pourra estimer si le XBEE est connecté au PC en liaison série ou à une ATMEGA quelconque selon si son SNR suit l’allure ou non de la courbe de la transmission classique. &lt;br /&gt;
&lt;br /&gt;
''En cherchant des raisons à cela, on se demande si ce phénomène n’a pas un rapport avec la longueur d’onde du signal modulé : la longueur d’onde est de 12 cm à 2.455 GHz, et la distance 30 cm coïnciderait avec sa demi-longueur d’onde.''&lt;br /&gt;
&lt;br /&gt;
Par le biais de ces mesures, on a pu démontrer que le matériel a un impact sur le SNR en fonction de la distance. A ce stade nous ne pouvons toujours pas déceler si le XBEE est géré par un microcontrôleur ATMEGA328P ou un ATMEGA2560.. Peut-être que l'étude du SNR selon le canal d'émission nous apportera des réponses? &lt;br /&gt;
&lt;br /&gt;
'''Software''' : Le firmware affecte un peu la puissance d'émission&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Expérience : Variation du Rapport Signal Bruit en fonction du canal de fréquence===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'expérience s'effectue de la même manière que précédemment. L'algorithme utilisé est le même. Néanmoins, nous verrons comme le SNR varie ici non pas en fonction de la distance mais en fonction du canal choisi. Pour celà, on choisira 3 canaux : le canal 0x11 (17), le canal 0x13 (19) et le canal 0x15 (21).&lt;br /&gt;
En effet, ces canaux n'ont pas été choisis aléatoirement. Lors de nos études, on a observé le XBee Pro ne transmettait pas sur certains canaux particuliers.&lt;br /&gt;
&lt;br /&gt;
Etait-ce dû à une erreur de manipulation ?&lt;br /&gt;
&lt;br /&gt;
Afin d'être sûr, on a pris des canaux qui était communs aux deux modèles (série S1 et Pro).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ALLXBEE comparaison SNR freq.png|thumb|400px|left]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 1&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats &amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:XBEE1 hardware comparaison SNR freq.png|thumb|400px|left]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 2&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats &amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:XBEE3 hardware comparaison SNR freq.png|thumb|400px|left]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 3&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats &amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Conclusion de l'expérience &amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Code python utilisé pour l'étude du signal&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def SNRStudy(name):&lt;br /&gt;
    tmp=scipy.fromfile(open(name+&amp;quot;_PhaseMeg&amp;quot;), dtype=scipy.complex64)&lt;br /&gt;
&lt;br /&gt;
    f = open(name+&amp;quot;_SNR_Values&amp;quot;,&amp;quot;a&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    p=1&lt;br /&gt;
    size = tmp.__len__()&lt;br /&gt;
    magnitude = (numpy.real(tmp)).tolist()&lt;br /&gt;
&lt;br /&gt;
    threshold=10&lt;br /&gt;
&lt;br /&gt;
    P=0&lt;br /&gt;
    SNR_graph=[]&lt;br /&gt;
    SNR=[]&lt;br /&gt;
&lt;br /&gt;
    win_sz=64&lt;br /&gt;
&lt;br /&gt;
    if(size&amp;gt;=win_sz):&lt;br /&gt;
        for val in range(0,size-win_sz):&lt;br /&gt;
&lt;br /&gt;
            if(val&amp;gt;=((size-win_sz)/100)*p): # Affiche l'état de l'étude&lt;br /&gt;
                print(str(p)+&amp;quot; %&amp;quot;)&lt;br /&gt;
                p=p+1&lt;br /&gt;
&lt;br /&gt;
            SNR_graph.append( 20*math.log((numpy.mean(magnitude[val + win_sz/2 : val + win_sz-1]))/(numpy.mean(magnitude[val+0 : val+win_sz/2-1])), 10) )&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
    size=len(SNR_graph)&lt;br /&gt;
&lt;br /&gt;
    for i in range(1, size-1):&lt;br /&gt;
        if (SNR_graph[i]&amp;gt;SNR_graph[i-1] and SNR_graph[i]&amp;gt;SNR_graph[i+1] and SNR_graph[i]&amp;gt;threshold):&lt;br /&gt;
            SNR.append(SNR_graph[i])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    tmp=numpy.asarray(SNR)&lt;br /&gt;
    tmp.tofile(f)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    try:&lt;br /&gt;
        SNRStudy(sys.argv[1])&lt;br /&gt;
    #except IndexError:&lt;br /&gt;
        #print(&amp;quot;Donnez le nom du fichier\n&amp;quot;)&lt;br /&gt;
    except IOError:&lt;br /&gt;
        print(&amp;quot;Le fichier n'existe pas\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'archive des scripts python : &lt;br /&gt;
&lt;br /&gt;
[archive.zip]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le rapport&lt;br /&gt;
&lt;br /&gt;
[Rapport.pdf]&lt;/div&gt;</summary>
		<author><name>Amoreau</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=75685</id>
		<title>IMA4 2018/2019 P70</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=75685"/>
				<updated>2019-05-09T11:47:41Z</updated>
		
		<summary type="html">&lt;p&gt;Amoreau : /* Expérience : Temps de calcul du FCS entre le XBee1 et et le XBee2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;font-size: 30px; width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;Impact du matériel et du logiciel sur le champ électromagnétique&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Projet'''&amp;lt;/ins&amp;gt; : Impact du matériel et du logiciel sur le rayonnement électromagnétique&lt;br /&gt;
&lt;br /&gt;
''Nous proposons d'évaluer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et la consommation électrique.''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Etudiants'''&amp;lt;/ins&amp;gt; : Souheib KHINACHE et Antoine MOREAU&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Encadrants'''&amp;lt;/ins&amp;gt; : Alexandre BOE, Xavier REDON et Thomas VANTROYS&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'internet des objets est un marché en plein essor. La communication entre les différents objets connectés crée un nuage de signaux autour d'eux. Ces derniers sont vus par les utilisateurs comme des boîtes noires : le fonctionnement se fait sans en connaître les composants matériels et logiciels. &lt;br /&gt;
Néanmoins, ces objets, de par leurs propriétés électroniques, créent des fuites électromagnétiques impactant le champ environnant. &lt;br /&gt;
&lt;br /&gt;
Bien qu'ils peuvent porter à débat sur l'impact sur la santé, ces signaux peuvent représenter de réelles sources d'informations sur l'aspect matériel et applicatif de l'objet.&lt;br /&gt;
&lt;br /&gt;
Il serait donc intéressant d'avoir idée générale sur le fonctionnement du système en interprétant les ondes électromagnétiques émises par ce système.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Les principaux objectifs de ce projet seront donc de mesurer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et sur la consommation électrique.&lt;br /&gt;
Pour cela, l'outil potentiel avec lequel nous pourrions travailler serait une sonde de champ électromagnétique afin d'établir des mesures. &lt;br /&gt;
Cependant, nous pourrions concevoir notre propre système de capture et d'interprétation à partir d'une antenne, de filtres de fréquences et d'un microcontrôleur (on commencera par un ATMega328P). Il sera nécessaire de prendre en compte les perturbations issues de notre appareil de mesure et d'en tenir compte.&lt;br /&gt;
&lt;br /&gt;
On effectuera ainsi plusieurs expérimentations sur différents supports d'étude :&lt;br /&gt;
*l'aspect &amp;quot;Hardware&amp;quot; en étudiant différents modèles pour un même type de shield  &lt;br /&gt;
*l'aspect calculatoire du matériel en se basant sur l'impact des microcontrôleurs en fonction du modèle (ATMega328P et ATMega2560)&lt;br /&gt;
*l'aspect &amp;quot;Software&amp;quot;, en étudiant l'impact du logiciel et du firmware d'un même composant (différents firmwares pour un même shield Wi-Fi)&lt;br /&gt;
*l'aspect puissance des composants électroniques de gestion de puissance (ponts, hacheurs, onduleurs...).&lt;br /&gt;
&lt;br /&gt;
L'étude des différentes informations se fera par traitement des signaux électromagnétiques et des spectres. &lt;br /&gt;
Afin de mieux appréhender le problème, il nous est nécessaire de comprendre les phénomènes physiques issus de la notion d'électromagnétisme.&lt;br /&gt;
&lt;br /&gt;
Ces études mèneront à une étape plus complexe : l'interprétation des signaux. En effet, l'un des objectifs de ce projet est de comprendre du mieux possible le fonctionnement d'un système sans y avoir accès directement, et donc dans ce contexte &amp;quot;traduire&amp;quot; un ensemble de signaux électromagnétiques.&lt;br /&gt;
&lt;br /&gt;
On pourra en outre apporter un aspect visuel à l'étude en rajoutant une interface informatique.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
Bien qu'aux yeux de nombreuses personnes le bruit électromagnétique créé par les équipements électroniques du quotidien peut porter à controverse (débats concernant l'impact sur la santé par exemple), il peut être une source d'informations. &lt;br /&gt;
De nos jours, les ondes électromagnétiques restent un vaste champ d'étude, sujettes à de nombreuses thèses et recherches au sein des laboratoires.&lt;br /&gt;
&lt;br /&gt;
On peut prendre l'exemple de [https://www.eurekalert.org/pub_releases/2015-01/giot-rwt010715.php Milos Prvulovic], professeur à l'Institut Technologique de Géorgie, ayant simulé un contexte de cybercafé, dans lequel il place une antenne magnétique, un ordinateur portable cible et un ordinateur &amp;quot;espion&amp;quot;. Il réussit, grâce aux signaux EM émis par l'impulsion de l'appui des touches clavier à capter un message écrit par un ordinateur cible. &lt;br /&gt;
&lt;br /&gt;
Néanmoins, dans le quotidien, l'utilisation des sondes électromagnétiques se fait pour l'étude énergétique d'un système électronique (fuites électromagnétiques anormales, preuves d'une anomalie...) afin de respecter certaines normes législatives. Le code du travail par exemple réglemente et définit des valeurs seuils par le biais des articles R. 4453-3 et R. 4453-4.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
'''NBM-520 de NARDA STS'''&lt;br /&gt;
[[Fichier: NBM_TS.png|thumb|300px|NBM-TS, application des appareils NBM]]&lt;br /&gt;
NARDA STS est une entreprise qui fournit des outils de mesure. Elle met à disposition aux professionnels des sondes électromagnétiques.&lt;br /&gt;
La NBM-520 est un appareil de la franchise, mesurant le champ électrique et magnétique. Elle donne des valeurs précises du champ électromagnétique ambiant sur une large bande. Elle propose différentes sondes modulables permettant une souplesse au niveau de l'étude en fonction des besoins, avec des sondes pouvant étudier des signaux de fréquence de 100kHz à 6GHz ou même de 300kHz à 50GHz (en fonction de la sonde choisie).&lt;br /&gt;
&lt;br /&gt;
En outre, le dispositif peut se connecter en USB sur PC afin d'envoyer les données capturées et d'en faire une étude. Le dispositif propose un logiciel d'étude, NBM-TS, permettant d'observer du champ en fonction du temps, de la fréquence, de la position...&lt;br /&gt;
&lt;br /&gt;
L'équipement est utilisé par l'ANF (l'Agence Nationale des Fréquences, agence gérant l'ensemble des normes autour des radiofréquences), et est donc un gage de qualité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Avantages :''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Large bande de fréquence&lt;br /&gt;
* Matériel solide&lt;br /&gt;
* Application fonctionnelle permettant l'étude et gestion des données&lt;br /&gt;
* Possibilité d'étudier séparément champ électrique et magnétique&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Inconvénients:''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Impossible d'étudier les basses fréquences (appareils sous tension, bobinages...)&lt;br /&gt;
* Prix élevé : à partir de 3100€&lt;br /&gt;
* La cible de ce produit est surtout les professionels&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
'''Une pita.'''&lt;br /&gt;
&lt;br /&gt;
''Comment mon pain à pita vole ta clé RSA ?''&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Pita.jpg|200px|thumb|left|Une pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Des chercheurs israéliens ont découvert un moyen de capturer des clés de cryptage RSA, réputées comme inviolables, par le biais d'une pita... du moins avec un dispositif suffisamment petit pour être caché dans un pain à pita. &lt;br /&gt;
Le dispositif, renommé PITA pour Portable Instrument for Trace Acquisition a la particularité de capturer les ondes radio électromagnétiques émanantes d'un PC, qu'il soit connecté à un réseau ou pas.&lt;br /&gt;
Les différentes opérations du processeur sont identifiées en distinguant les différents modèles de l'activité radio sur le spectre EM.&lt;br /&gt;
&lt;br /&gt;
Bien que la capture des clés RSA a été faite dans des conditions particulières (modification du processeur de l'ordinateur cible), il est néanmoins possible, selon les chercheurs, d'identifier quelle type d'activité est exercée par l'ordinateur ainsi que son état.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PITA.jpg|300px|thumb|right|Un dessous de pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'un des points importants concernant le dispositif est son coût : moins de 300 euros.&lt;br /&gt;
L'appareil dispose :&lt;br /&gt;
* d'un PC portatif (PC-on-a-stick) ''Rikomagic MK802 IV'',&lt;br /&gt;
* d'un recepteur radio SDR ''FUNcube Dongle Pro+''&lt;br /&gt;
* d'une antenne radio&lt;br /&gt;
* d'une batterie&lt;br /&gt;
* d'une antenne WiFi&lt;br /&gt;
* d'une carte MicroSD&lt;br /&gt;
* d'un adapteur d'antenne&lt;br /&gt;
* et d'une '''pita'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le dispositif aurait une portée de 50cm. &lt;br /&gt;
Les chercheurs israéliens ont collaboré avec GNU Private Guard (logiciel de cryptage asymétrique) afin de protéger contre ces attaques les clés de cryptage.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
&lt;br /&gt;
''Scénario 1''&lt;br /&gt;
&lt;br /&gt;
Gérard a toujours le flair pour les bonnes affaires. Il a acheté une centaine de clés WiFi à un prix dérisoire sur AloXpresso afin de faire du profit à la revente. Le vendeur lui garantit que toutes les clés fonctionnent correctement. Gérard veut vérifier. Après vérification, 99 des clés sur 100 fonctionnent comme prévu. Gérard aimerait être sûr du disfonctionnement, mais Gérard n'est pas une pointure en informatique. &lt;br /&gt;
&lt;br /&gt;
Coup de génie ! Il se rappelle qu'il dispose d'un dispositif qui capte les ondes EM et les interprète directement. C'est le moment de tester ça. Il remarque une anomalie sur le spectre.&lt;br /&gt;
Il décide de contacter le revendeur pour lui signaler un disfonctionnement sur l'une des clé. &lt;br /&gt;
Pas de soucis. Le vendeur, étant bon prince, lui envoie une autre clé USB et lui fait une ristourne.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Scénario 2''&lt;br /&gt;
&lt;br /&gt;
La police fait une perquisition chez un individu soupçonné de graves délits. Cela fait plusieurs mois que la brigade criminelle prépare l'intervention, et une fois sur les lieux ils arrêtent le soupçonné malfaiteur.&lt;br /&gt;
Cependant avant de repartir, elle veut faire l'acquisition d'un maximum de preuves. Elle veut alors prendre l'essentiel des objets, dont certains objets éléctroniques connectés de l'individu dont elle pourra extraire les informations qui serviront à le faire tomber.&lt;br /&gt;
&lt;br /&gt;
Par chance, elle dispose d'un petit outil qui scannera les signatures alentours des objets connectés, comme des téléphones cachés, clés USB wifi dissimulées dans le décor etc..&lt;br /&gt;
Et si le suspect avait modifié malignement un objet connecté banal pour l'utiliser autrement à ses fins, la police le découvrirait car elle possède une base de données de toutes les signatures spectrales des objets connectés sur le marché et celle de l'objet modifié ne collerait pas avec celle de la base de données.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
&lt;br /&gt;
'''Comment étudier les signaux malgré les perturbations électromagnétiques ambiants et les faibles signaux des µC ?'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les signaux électromagnétiques des microcontrôleurs ou d'autres composants peuvent être faibles. Il y a une possibilité pour palier à ce problème, c'est de capter les signaux depuis une antenne émettrice que l'on rajoute à l'objet d'étude. &lt;br /&gt;
Nous utiliserons un SDR (Software Defined-Radio) afin de capter les ondes radio et les étudier directement sur PC. Le filtrage s'effectuera ainsi de manière numérique. Plusieurs tests seront effectués pour le même objet à étudier (quand on parle d'objet, on évoque un ensemble de plusieurs composants, comme par exemple une alimentation, un micro-contrôleur et une antenne). Ainsi, de manière statistique, nous pourrons en déduire un pattern récurrent pour chaque expérience en les effectuant dans différents environnements (pourquoi pas une chambre anachoïque). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons &lt;br /&gt;
* Capter le signal émis par un objet connecté le plus précisément possible&lt;br /&gt;
&lt;br /&gt;
* Concevoir nos propres objets connectés tous différents mais basés sur un même modèle&lt;br /&gt;
&lt;br /&gt;
* Interpréter les spectrogrammes, faire une étude statistique des signaux émis par nos différents objets et en tirer des conclusions&lt;br /&gt;
&lt;br /&gt;
* Répertorier dans une base de données les signatures de nos objets , voire de quelques objets disponibles sur le marché&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix logiciel :&lt;br /&gt;
&lt;br /&gt;
- La distribution Linux Pentoo ou Kali pour traiter les signaux avec GNU RADIO (Suite logicielle dédiée à l’implémentation de radios logicielles et de systèmes de traitement du signal).&lt;br /&gt;
&lt;br /&gt;
- FemtoOS pour l'OS des ATMEGA328P et ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix Matériel : &lt;br /&gt;
&lt;br /&gt;
- Plusieurs modules radios émetteurs &lt;br /&gt;
&lt;br /&gt;
- Plusieurs microcontrôleurs ATMEGA328P et un ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
- Des alimentations identiques pour chaque PCB&lt;br /&gt;
&lt;br /&gt;
- Un HackRF pour la réception des signaux&lt;br /&gt;
&lt;br /&gt;
- Une antenne 50 Ohm pour le HackRF [https://www.passion-radio.fr/accessoires-sdr/antenne-ant500-74.html]&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous devons préparer tout le matériel qui servira à faire nos tests. C'est à dire concevoir :&lt;br /&gt;
&lt;br /&gt;
- Un ensemble SDR/PC qui traitera le signal reçu avec GNU RADIO.&lt;br /&gt;
&lt;br /&gt;
- Une multitude de PCB qui seront utilisés comme objets connectés (Sur chacun d'entre eux on trouvera au minimum une antenne radio, un microcontrôleur et une alimentation)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de récupérer une &amp;quot;signature&amp;quot; d'un de nos objets , il faudra faire plus de 50 analyses spectrales pour conclure statistiquement sur une bonne signature qui caractérisera l'objet.&lt;br /&gt;
&lt;br /&gt;
Nous devons donc dans un second temps: &lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques mais qui ont un '''firmware''' différent.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques qui ont pour seule différence le '''microcontrôleur'''.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques dont seul le '''PCB''' diffère.&lt;br /&gt;
&lt;br /&gt;
Grâce à tous ces tests , nous pourrons conclure et voir l'impact qu'à le matériel ou le logiciel sur la signature d'un objet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enfin si les délais nous le permettent, nous pourrons réaliser un software qui cartographiera nos objets connectés dans la pièce grâce à la puissance de la signature reçue (Ce qui devrait être réalisable puisqu'à ce stade nous aurons une base de donnée des signatures).&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
|3&lt;br /&gt;
|8&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Recherches&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|6&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Prise en main de GnuRadio&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Configuration Xbee&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Expériences&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|5&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|4&lt;br /&gt;
|15&lt;br /&gt;
|9&lt;br /&gt;
|8&lt;br /&gt;
|7&lt;br /&gt;
|8&lt;br /&gt;
|8&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
[[Fichier:HackrfOne.jpeg|200px|thumb|right|Le HackRF One]]&lt;br /&gt;
Durant cette semaine, nous avons continué nos recherches notamment sur le moyen de transmission de nos objets connectés. Nous avons confirmé notre choix de notre SDR : Monsieur Boé nous a confirmé que des HackRF seraient disponibles dans les laboratoires et qu'il pourrait nous en prêter un. On disposera donc d'une antenne puissante pour traiter les signaux émis par nos objets communiquants. &lt;br /&gt;
&lt;br /&gt;
Il faudra coupler notre HackRF avec un logiciel appelé GNU RADIO qui est un logiciel très complet ( Pour information : la NASA a utilisé GNU RADIO afin de rétablir le contact avec une sonde spatiale abandonnée ). Afin de faire tourner ce logiciel libre, nous aurons besoin de la distribution Kali Linux, ex Backtrack.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Choix des émetteurs/récepteurs === &lt;br /&gt;
&lt;br /&gt;
Nous avons décidé que nos objets connectés communiqueront dans deux '''bandes de fréquences ISM''', l'une à '''900 MHz''' grâce à des modules Digi Xbee et l'autre à '''2,4 GHz''' par le moyen de modules émetteurs Bluetooth. On rappellera que les Digi Xbee et les émetteurs/récepteurs Bluetooth seront pilotés par des ATMEGA 2560.&lt;br /&gt;
&lt;br /&gt;
Les Xbee ne communiqueront pas entre eux et émettront en continu les mêmes données car ils le peuvent, alors que les émetteurs/récepteurs Bluetooth devront s'échanger des données si on veut pouvoir observer un quelconque signal autour de la fréquence de leurs porteuses. &lt;br /&gt;
&lt;br /&gt;
On voudra observer premièrement, si avec deux objets dans les '''mêmes''' conditions (donc même µc et même émetteur), on peut ou non '''distinguer une différence'''. Ceci est fondamental pour la suite des expériences, puisque si les deux émettent à la même fréquence, on pourra faire varier plusieurs paramètres afin de trouver '''des clés''' (des signes) qui pourraient aider à l'identification du matériel.&lt;br /&gt;
&lt;br /&gt;
Ces clés représentent différents facteurs potentiels d'identification du signal (le rapport signal-bruit en fonction de la distance par exemple...).&lt;br /&gt;
&lt;br /&gt;
''On planifie alors pour la semaine suivante de réussir à faire émettre, en utilisant simplement des breadboards pour commencer, nos Xbee et modules BT et observer quelque chose grâce à notre SDR.''&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration des modules XBee ===&lt;br /&gt;
&lt;br /&gt;
Nous avons configuré deux XBee afin qu'ils puissent communiquer entre eux : &lt;br /&gt;
&lt;br /&gt;
Les modules XBee ont été montés sur des platines d'interface USB/série de manière à ce qu'on puisse les paramétrer via le programme de contrôle ''minicom''. &lt;br /&gt;
&lt;br /&gt;
Dans le doute, on supposera que les XBee communiquent à 9600 Baud. On exécute la commande suivante : &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;minicom -b 9600 -D /dev/ttyUSB0&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
On active l'echo local dans minicom, afin de pouvoir observer ce qui a été envoyé par liaison série au XBee ('''CTRL+A''' puis '''E''').&lt;br /&gt;
&lt;br /&gt;
Pour commencer le paramètrage il faut taper ''' +++ ''' rapidement. Le XBee nous répond OK, cela veut dire que nous sommes dans le mode configuration et que nous pouvons utiliser les commandes '''AT'''. (Redirection vers la liste des commandes AT XBee [https://cdn.sparkfun.com/assets/resources/2/9/22AT_Commands.pdf]).&lt;br /&gt;
&lt;br /&gt;
Comme nos XBee ont été utilisés auparavant, il a fallu les restaurer à l'état usine avec la commande '''ATRE'''.&lt;br /&gt;
&lt;br /&gt;
Si on souhaite que des XBee puissent s'envoyer des données il faut qu'ils soient sur le même canal (commande '''ATCH''') et aient le même PAN ID (commande '''ATID'''). Notre PAN ID sera '''BEE6''' et le canal sera celui par défaut '''C'''.&lt;br /&gt;
&lt;br /&gt;
Ensuite il faut leur donner une adresse de destination ('''ATDH''' &amp;amp; '''ATDL''') qui sera l'adresse broadcast, pour ce faire on entre &lt;br /&gt;
 ATDH=0000&lt;br /&gt;
 ATDL=FFFF&lt;br /&gt;
&lt;br /&gt;
Enfin '''ATMY''' représente l'ID du XBee, notre premier XBee aura comme ID 5000 et le second 5001.&lt;br /&gt;
&lt;br /&gt;
N'oublions pas de sauvegarder les paramètres avec '''ATWR'''.&lt;br /&gt;
&lt;br /&gt;
On vérifie que tout a bien été pris en compte :&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;&lt;br /&gt;
+++OK&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATID&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
BEE6&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
C&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
0&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDL&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
FFFF&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATMY&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
5000&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCN&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Puis on fait de même avec le deuxième XBee (ID 5001).&lt;br /&gt;
&lt;br /&gt;
Voilà, lorsque on envoie des caractères par liaison série sur 5000, la LED '''Tx''' de 5000 s'allume et la Led '''Rx''' de 5001 s'allume elle aussi. Cela signifie que l'envoi de donnée par onde radio s'effectue correctement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que les XBee émettent et reçoivent, on peut commencer les mesures avec notre SDR. Mais avant cela il va falloir bien se familiariser avec le logiciel GNU RADIO qui est assez difficile à prendre en main.&lt;br /&gt;
&lt;br /&gt;
=== Première prise en main du logiciel GNURADIO ===&lt;br /&gt;
&lt;br /&gt;
Installation de GNU radio avec les fonctions + drivers pour HackRF : &lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install gqrx-sdr gnuradio gr-osmosdr hackrf &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le bloc Osmocom Source sert de &amp;quot;passerelle&amp;quot; entre le logiciel et la SDR, il permet de transmettre les informations récupérées par le HackRF afin qu'on puisse les traiter avec d'autres bloc de fonctions.&lt;br /&gt;
&lt;br /&gt;
Si on veut pouvoir récuperer les données il faut passer l'argument ''hackrf=0'' dans la box périphérique du bloc Osmocom.&lt;br /&gt;
&lt;br /&gt;
Ci-dessous on peut voir le spectre environnant entre 2.44GHz et 2.460GHz grâce au bloc WX GUI FFT Sink.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ScreenGnuRadio.png|Interface de GNURadio]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous a permis d'effectuer notre première expérience. L'utilisation des deux Xbees nous a permis d'observer l'impact des Xbee sur le champ électromagéntique environnant.&lt;br /&gt;
&lt;br /&gt;
Si on analyse le spectre environnant grâce au module FFT de GNU Radio, lorsque les Xbee communiquent entre eux, on peut apercevoir un pic caractéristique propre.&lt;br /&gt;
En effet, lors de l'emission d'un message sur le port série, on a un pic qui se dégage du spectre d'amplitude -20dBm. Ce pic est caractéristique au canal de communication choisi et configuré sur le Xbee.&lt;br /&gt;
Néanmoins, le signal est perturbé par le bruit environnant. &lt;br /&gt;
L'expérience étant effectuée au sein de l'école, les signaux Wi-Fi perturberont l'étude.&lt;br /&gt;
Il faut noter que la norme IEEE 802.11 impose au Wi-Fi l'utilisation d'une bande passante s'étalant de 2.4 GHz à 2.5 GHz.&lt;br /&gt;
&lt;br /&gt;
La bande passante des modules Zigbee se décomposent en 16 canaux, allant de 2400 MHz à 2480 MHz par pas de 5 MHz.&lt;br /&gt;
&lt;br /&gt;
Le canal ici utilisé est le canal 13 (3ème canal) de fréquence 2415 MHz.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[Fichier:Channel135001.png|thumb|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Fichier:channel135000.png|thumb|none|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBeeCh13.png|Spectre de l'environnement autour du XBee|thumb|none|400 px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBeeCh13SND.png|Lors de l'envoi de données au XBee voisin|thumb|none|400 px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut observer un pic de puissance lors de l'envoi d'une donnée en série à la fréquence 2.415 GHz.&lt;br /&gt;
Il nous est maintenant nécessaire d'analyser de plus près les signaux et leurs fréquence centrale dans la bande perçue au dessus de -20dB.&lt;br /&gt;
&lt;br /&gt;
On réeffectuera une expérience en zone isolée des signaux parasites.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous avons principalement fait des recherches dans le but de mieux comprendre les signaux émis par le Xbee.&lt;br /&gt;
&lt;br /&gt;
En somme, nous étions confrontés à de nombreuses interrogations. Le fonctionnement du Xbee étant assez simple et la sécurité du protocole Zigbee étant moindre, y a t-il possibilité de démoduler le signal émis afin de développer nos études ?&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
[[Fichier:Switchchannel pyscript.PNG|upright=0.8|thumb|right|Script Python]]&lt;br /&gt;
&lt;br /&gt;
Après réflexion et consultation de nos encadrants, nous nous sommes rendu compte que la démodulation prévue lors de la semaine 4 n'aiderait pas à répondre à la problématique de notre sujet !  &lt;br /&gt;
&lt;br /&gt;
Afin de mieux visualiser les signaux des Xbee , on décide d'automatiser le processus d'envoi sur le port série des données vers le Xbee. C'est à dire concevoir un programme Python qui automatisera l'envoi de données et le changement de channel à intervalle de temps régulier (Changement toutes les 10 secondes). &lt;br /&gt;
&lt;br /&gt;
L'utilisation de Minicom '''n'était pas du tout la meilleure solution''' pour faire émettre les Xbee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Après quelques essais, on remarque que lorsque le Xbee émet sur le channel 13, il émet à environ 2,445GHz au lieu d'émettre à 2,415GHz soit une différence de 30MHz : Ceci n'est pas important, car ce que l'on souhaite remarquer c'est un éventuel décalage de la fréquence centrale entre deux Xbee différents. Si les deux Xbee n'ont pas la même frequence centrale on pourra conclure que la '''fréquence centrale''' de la porteuse du Xbee n'est pas '''une des clés''' permettant d''''identifier''' cet émetteur/récepteur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaines 6 et 7==&lt;br /&gt;
&lt;br /&gt;
Afin de mieux cerner le comportement électromagnétique des modules XBee, il nous est nécessaire de comprendre leur fonctionnement et le protocole Zigbee.&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous avons cherché à souligner le parallélisme entre étude fréquentielle par le spectre et étude temporelle du signal.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PlancheXPtest.jpg|thumb|right|Planche prototype]]&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous avons paramétré la fréquence centrale de capture du HackRF. En effet, bien que le HackRF dispose d'une large bande passante, afin de se focaliser sur la porteuse, il est indispensable de configurer le HackRF en conséquence.&lt;br /&gt;
En second lieu, pour éviter une variation du RSSI (Received Signal Strength Indication) et de la puissance du signal, nous devions mettre en place une prototype de &amp;quot;planche expérimentale&amp;quot; sur laquelle devaient être fixés nos différents modules (l'antenne de reception et les Xbees).&lt;br /&gt;
&lt;br /&gt;
La position des antennes les unes par rapport aux autres est fondamentale. Afin d'optimiser la reception, les antennes doivent être parallèles.&lt;br /&gt;
&lt;br /&gt;
Chaque Xbee est identifié par un chiffre (1 ou 2). En effet, l'attribution de ces chiffres sera définitive pour ne pas perturber la cohérence des expériences. &lt;br /&gt;
Leur position est aussi fondamentale. Ainsi, en fonction que le Xbee soit emetteur ou récepteur, il sera disposé différement sur la planche.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Expérience : Le XBee 1 émetteur directement connecté en série au PC===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:GrapheGNURadio01.png|thumb|left|150px|Schéma simple d'étude fréquentielle et temporelle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette expérience est la première mettant en place un contexte (un seul Xbee émetteur connecté en série au PC, le deuxième Xbee étant inactif) et nous permettra d'étudier le plus de cas possibles.&lt;br /&gt;
&lt;br /&gt;
Nous avons tout d'abord commencé par un graphe GNURadio simple permettant l'observation du spectre et du signal et la variation de la fréquence d'étude.&lt;br /&gt;
&lt;br /&gt;
Le script python a été réécrit afin que le XBee puisse émettre une chaîne de caractère &amp;quot;HELLO&amp;quot; * 1024. En effet, même si la fréquence de balayage du module HackRF peut être grandement augmentée, il faut éviter d'aller au dessous de 0.01s, finissant par consommer de manière considérable les ressources octroyées par le CPU le cas échéant.&lt;br /&gt;
Le fait d'augmenter la taille de la chaine de caractère permet de mieux synchroniser l'étude en temps réel avec la capture des données.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc émis les données sur le canal 20 (14 en hexadécimal), soit la fréquence centrale est à 2.450GHz selon la norme Zigbee. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Etude fréquentielle&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L'étude fréquentielle est similaire à celle réalisée auparavant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div center&amp;gt;&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[Fichier:Spectrefreq2.png|thumb|center|750px|Spectre fréquentiel au canal 14]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[Fichier:Spectrogram.png|thumb|center|250px|Spectrogramme]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on peut observer sur l'analyseur de spectre GNURadio que la fréquence centrale est située 2.450GHz.&lt;br /&gt;
&lt;br /&gt;
D'autre part, l'ensemble des fréquences qui dessinent le spectre s'étalent sur une large bande de fréquence. En effet, cette technique d'étalement appelée DSSS (Direct-Sequence Spread Spectrum) utilisé par les modules XBee permet au signal d'être moins sensible aux interférences et aux brouillages. En outre, même si la puissance du spectre dans sa globalité reste la même, la densité spectrale elle diminue considérablement, rendant le signal plus &amp;quot;discret&amp;quot;.&lt;br /&gt;
La différence de puissance entre le lobe principal et les premiers lobes secondaires sont de 30 dB, ce qui est aussi commun au DSSS.&lt;br /&gt;
&lt;br /&gt;
Le spectrogramme témoigne aussi de l'étalement du signal sur un peu plus de 6 MHz (3MHz de par et d'autre de la fréquence centrale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt; Etude temporelle &amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Signal temporel.png|thumb|left|500px|Signal observable centré à 2.450GHz lors de l'émission]]&lt;br /&gt;
&lt;br /&gt;
Le signal ici est séparé en deux composantes car il s'agit d'un signal complexe. Nous avons supposé en premier temps qu'il s'agissait du signal principal décalé de 180°, ce qui n'était pas le cas.&lt;br /&gt;
Après quelques recherches, cette séparation des composantes permet de transmettre deux fois plus de données sur la même bande passante.&lt;br /&gt;
Le signal observable témoigne d'une modulation bien spécifique au XBee. En effet, on peut observer des sauts de phase à différents points, qui correspondent à une modulation par changement de phase (modulation QPSK ou Quadratic Phase-Shift Keying). Ce sont ces sauts de phases qui permettent la transmission des bits.&lt;br /&gt;
Les changements de phase s'il y a se font toutes les µs. En outre, on peut observer un décalage (offset) entre la composante Q et la composante I de µs/2 (propre à la modulation OQPSK).&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé d'enregistrer ces données brutes dans un fichier et nous l'avons étudié avec Audacity, logiciel open-source de son, et donc de signaux ! L'inconvénient avec l'interface graphique QT de GNURadio est son manque de précision lors d'un dézoom sur le signal en temps réel. Audacity permet de palier à celà !&lt;br /&gt;
En outre, on peut voir que les paquets Xbee sont reconnaissables. En effet, le signal témoigne de la taille du paquet XBee.&lt;br /&gt;
&lt;br /&gt;
Le paquet XBee est constitué d'un premier header (header physique) de 6 octets :&lt;br /&gt;
- la séquence de préambule (4 octets) constitué de 32 bits à 0&lt;br /&gt;
&lt;br /&gt;
- l'indice de début du paquet fixé à 0x7A (1 octet)&lt;br /&gt;
&lt;br /&gt;
- la longueur du paquet (1 octet);&lt;br /&gt;
&lt;br /&gt;
d'un header MAC (7 à 27 octets en fonction des informations de l'adresse), d'un bloc FCS de fin de paquet (2 octets) et l'ensemble des données (de 1 à 104 octets).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Signal2.png|thumb|right|400px|On observe graphiquement qu'un paquet est transmis en 3846µs]]&lt;br /&gt;
[[Fichier:PacketXBee.png|400px|thumb|right|Paquet XBee]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Comme dit plus haut, les signaux émis par le XBee connaissent un étalement sur le spectre par DSSS.&lt;br /&gt;
Cet étalement s'effectue en divisant chaque symbole (correspondant à une série de 4 bits) transmis en &amp;lt;B&amp;gt;&amp;lt;I&amp;gt;chips&amp;lt;/I&amp;gt;&amp;lt;/B&amp;gt;.&lt;br /&gt;
Chaque symbole, soit 4 bits, correspond à 32 chips, et donc 32 états binaires (1 octet correspond à 64 chips).&lt;br /&gt;
Dans le cas de la norme ZigBee, la transmission de chacun des chips est synchronisé sur chaque µs (1 chip toutes les µs).&lt;br /&gt;
&lt;br /&gt;
Les signaux reçus par l'antenne HackRF étaient deux sinusoïdes modulées en phase et qui s'étalaient sur une période d'environ 3840µs (3846µs graphiquement mais il y a possibilité d'erreur à l'echelle du µs).&lt;br /&gt;
Sachant qu'un octet correspond à 64µs, on a :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;N_{octets} =\frac{2*T_{signal}}{64*T_{chip}}=\frac{2*3.840*10^{-6}}{64*10^{-6}}=120 octets&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'analogie peut être effectuée entre paquet Ethernet et paquet ZigBee. En effet, la taille limite des données d'un paquet est de 104 octets. La chaîne de caractère n'étant qu'envoyée par paquet, le paquet observé n'est que de 120 octets, ce qui est cohérent avec les caractéristiques du XBee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Hello1024secs.png|thumb|none|Temps de transmission de la chaîne de caractères &amp;quot;HELLO&amp;quot; 1024 fois]] &amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:AudacitySignal2.png|thumb|none|51 Paquets XBee portent la chaîne de caractère &amp;quot;HELLO&amp;quot; 1024 fois]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 8==&lt;br /&gt;
&lt;br /&gt;
L'étude des signaux posait réellement problème de par le fait qu'une grande partie de la capture faite n'était que purement le bruit sans signal (utile plus tard pour l'étude du SNR).&lt;br /&gt;
Prenons l'exemple d'un paquet de 21 octets (un paquet contenant une seule chaîne de caractères HELLO). Le signal s'étalerait en théorie sur 21*64 chips soit 672 chips. Sachant que la modulation est une modulation QPSK, on s'étale sur un temps de 672µs.&lt;br /&gt;
En effet, le Xbee transmet toutes les 100ms.&lt;br /&gt;
Donc qu'une partie du signal nous est utile.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décider d'écrire un script qui nous permettrait d'étudier le signal dans de meilleures conditions, et donc de le filtrer.&lt;br /&gt;
&lt;br /&gt;
Chaque capture de signal effectuée est enregistrée dans un fichier par le biais du bloc fonction &amp;lt;B&amp;gt;&amp;lt;I&amp;gt;File Sink&amp;lt;/I&amp;gt;&amp;lt;/B&amp;gt; du compagnon GNURadio. Néanmoins, les fichiers obtenus sont des fichiers binaires assez lourds (environ 500Mo pour une capture de 3s), ce qui est un réel problème et qui implique le filtrage du signal.&lt;br /&gt;
&lt;br /&gt;
La bibliothèque numpy pour python nous permet en outre directement d'importer les échantillons des signaux, les traduisant du binaire à un format cible (complexe flottant 64 bits) dans un Array par le biais de la fonction:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; f = scipy.fromfile(open(&amp;quot;Nom du fichier&amp;quot;), dtype=scipy.complex64) &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La première solution pour réduire ce signal était d'imposer un threshold directement sur le signal, supérieur au bruit, mais qui conduirait à une perte d'une partie du signal à étudier.&lt;br /&gt;
La deuxième solution qui a été retenue était tout simplement de calculer l'amplitude et la phase du signal et appliquer ce même threshold à l'amplitude.&lt;br /&gt;
&lt;br /&gt;
== Semaine 9 et 10==&lt;br /&gt;
&lt;br /&gt;
A partir de la semaine 10 nous avons procéder aux expériences pour avoir suffisamment de données et en tirer des conclusions.&lt;br /&gt;
&lt;br /&gt;
Lorsqu'on fait une acquisition d'un signal xbee , on peut maintenant via un script traiter cette acquisition et récupérer seulement les parties qui nous intéressent : A savoir la partie réelle et la partie imaginaire, l'amplitude du signal et enfin la phase du signal.&lt;br /&gt;
&lt;br /&gt;
Exemple ci dessous après acquisition + traitement de notre xbee n°2 :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Traitement xbee2.png|thumb|right|redresse=2|Signal Xbee2 post-traitement ]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Constellation xbee2.png|thumb|right|redresse=2|Diagramme de constellation xbee2 après utilisation de LightSignal]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'utilisation du script LightSignal permet de retirer toutes les phases en dehors du signal. Ainsi, on peut caractériser le diagramme de constellation comme un diagramme propre à la modulation QPSK. &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
import scipy&lt;br /&gt;
import numpy&lt;br /&gt;
import sys&lt;br /&gt;
&lt;br /&gt;
def binToComplex64(name):&lt;br /&gt;
    threshold=0.10&lt;br /&gt;
    tmp=scipy.fromfile(open(name+&amp;quot;_PhaseMeg&amp;quot;), dtype=scipy.complex64)&lt;br /&gt;
    tmp2=scipy.fromfile(open(name), dtype=scipy.complex64)&lt;br /&gt;
    &lt;br /&gt;
    f2 = open(name+&amp;quot;_filtre&amp;quot;, &amp;quot;w+&amp;quot;) &lt;br /&gt;
    f = open(name+&amp;quot;_PhaseMeg_filtre&amp;quot;,&amp;quot;w+&amp;quot;)&lt;br /&gt;
    &lt;br /&gt;
    p=1&lt;br /&gt;
    size=tmp.__len__()&lt;br /&gt;
    size2=tmp2.__len__()&lt;br /&gt;
    &lt;br /&gt;
    if size &amp;gt; size2:&lt;br /&gt;
        size=size2&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    ground=False&lt;br /&gt;
    newListSignal=[]&lt;br /&gt;
    newListMagnPh=[]&lt;br /&gt;
    for val in range(0,size): &lt;br /&gt;
        if(val&amp;gt;=(size/100)*p):&lt;br /&gt;
            print(str(p)+&amp;quot; %&amp;quot;)&lt;br /&gt;
            p=p+1&lt;br /&gt;
        if(tmp[val].real&amp;gt;threshold):&lt;br /&gt;
            if(ground==True):&lt;br /&gt;
                for i in range(0,1000):&lt;br /&gt;
                    newListSignal.append(numpy.complex64(0))&lt;br /&gt;
                    newListMagnPh.append(numpy.complex64(0))&lt;br /&gt;
                ground=False&lt;br /&gt;
            newListSignal.append(tmp2[val])&lt;br /&gt;
            newListMagnPh.append(numpy.complex64(tmp[val].real+tmp[val].imag*0.3j))&lt;br /&gt;
        else:&lt;br /&gt;
            ground=True&lt;br /&gt;
    &lt;br /&gt;
    tmp=numpy.asarray(newListMagnPh)&lt;br /&gt;
    tmp.tofile(f)&lt;br /&gt;
    tmp2=numpy.asarray(newListSignal) &lt;br /&gt;
    tmp2.tofile(f2)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    try:&lt;br /&gt;
        binToComplex64(sys.argv[1])&lt;br /&gt;
    except IndexError:&lt;br /&gt;
        print(&amp;quot;Donnez le nom du fichier\n&amp;quot;)&lt;br /&gt;
    except IOError:&lt;br /&gt;
        print(&amp;quot;Le fichier n'existe pas\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__=='__main__':&lt;br /&gt;
    main()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le diagramme de constellation témoigne de nouveau du type de modulation utilisé par le module XBee.&lt;br /&gt;
En effet, on observe quatre points de part et d'autre des axes de quadrature et d'inphase.&lt;br /&gt;
&lt;br /&gt;
==Semaine 11==&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé cette semaine d'étudier, ce qui est selon pour nous, l'une des pistes fondamentales de notre projet, et plus particulièrement de l'étude de nos signaux : le rapport signal bruit.&lt;br /&gt;
&lt;br /&gt;
L'objectif de cette semaine et de celle à venir était, à partir du signal acquis par le hackrf, d'effectuer le calcul du SNR (signal-to-noise ratio) tel que :&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;SNR =\frac{P_{signal}}{P_{bruit}}&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le script python qui nous a permis de communiquer entre les deux shields Xbee se verra amélioré afin de faire plusieurs acquisition des signaux lors de la communication entre les Xbee, effectuer une moyenne statistique, et de même lorsqu'il n'y a pas de communication.&lt;br /&gt;
&lt;br /&gt;
Nous avons essayé d'approcher le SNR directement depuis l'interface de GnuRadio par le biais de l'utilitaire graphique et le langage en bloc, néanmoins nous procéderons à l'étude de ce rapport avec Scilab ou Matlab.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaines supplémentaires==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Expérience : Variation de l'amplitude===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats &amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Conclusion sur l'expérience &amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
L'expérience n'a pas été fructueuse. Même si elle nous a permis de voir quelques différences (probablement provoquées pas des erreurs de capture et d'analyse), le HackRF nous limite beaucoup sur ce point de vue là. En effet, la fréquence d'échantillonage étant limitée à 20MHz, le HackRF n'est pas suffisamment précis pour capturer un nombre d'échantillons nous permettant de confirmer une quelconque hypothèse. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Code python utilisé pour l'étude du signal&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
def etudeAmplitude(name, liste_temps):&lt;br /&gt;
&lt;br /&gt;
    threshold_0=0.05 # Threshold&lt;br /&gt;
    threshold_1=0.4&lt;br /&gt;
    max_transition_time=50 #O&lt;br /&gt;
&lt;br /&gt;
    amppha=scipy.fromfile(open(name+&amp;quot;_PhaseMeg&amp;quot;), dtype=scipy.complex64) &lt;br /&gt;
&lt;br /&gt;
    p=1&lt;br /&gt;
    size=amppha.__len__()&lt;br /&gt;
    &lt;br /&gt;
    debut=1&lt;br /&gt;
    tps_variation=0 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    transition=False # Vérifie si le signal est en transition ou stable&lt;br /&gt;
&lt;br /&gt;
    for val in range(debut,size):&lt;br /&gt;
        if(val&amp;gt;=((size-debut)/100)*p):&lt;br /&gt;
            print(str(p)+&amp;quot; %&amp;quot;)&lt;br /&gt;
            p=p+1&lt;br /&gt;
&lt;br /&gt;
        if(amppha[val].real&amp;gt;threshold_0 and amppha[val].real&amp;lt;threshold_1): # Phase de transition du signal&lt;br /&gt;
            if(transition==False):&lt;br /&gt;
                transition=True&lt;br /&gt;
            tps_variation=tps_variation+1&lt;br /&gt;
&lt;br /&gt;
        elif(transition==True and amppha[val].real&amp;gt;threshold_1):&lt;br /&gt;
            if(amppha[val].real&amp;gt;=amppha[val-1].real-amppha[val-1].real*0.05 and amppha[val].real&amp;lt;=amppha[val-1].real+amppha[val-1].real*0.05): # L'amplitude du signal est stable&lt;br /&gt;
                if(tps_variation &amp;lt; max_transition_time):&lt;br /&gt;
                    liste_temps.append(tps_variation)&lt;br /&gt;
&lt;br /&gt;
                transition=False&lt;br /&gt;
                tps_variation=0&lt;br /&gt;
            else:&lt;br /&gt;
                tps_variation=tps_variation+1&lt;br /&gt;
        else:&lt;br /&gt;
            transition=False&lt;br /&gt;
            tps_variation=0&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Expérience : Temps de calcul du FCS entre le XBee1 et et le XBee2===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 1&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 et XBee2 sont alimentés sur 5V VCC par USB (connecté à l'ordinateur)&amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 et XBee2 disposent du firmware : 10EF &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 est d'abord emetteur et le XBee2 est recepteur puis inversement. Aucun paquet ACK n'est renvoyé de la part du recepteur &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On transmet la chaine de caractère HELLO 256 fois toutes les 1 secs&lt;br /&gt;
Les données étant assez conséquentes, le Xbee transmet plusieurs fragments du paquet.&lt;br /&gt;
L'objectif de cette expérience est d'étudier le temps entre chaque fragment d'un paquet.&lt;br /&gt;
L’espace de temps entre chacun des paquets permet de calculer le FCS (frame check sequence) afin de minimiser les erreurs de transmission.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:ChecksumGraphe.png|thumb|left|redresse=2|Les différents temps à mesurer]]  &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Néanmoins, l’étude de ces “temps morts” se voit entravée par le fait que le module HackRF ne permette pas d’obtenir un signal clair sur plus de 5 secondes.&lt;br /&gt;
En outre, pour 5 secondes d’étude et pour une fréquence d’échantillonage de 20MHz (soit un temps Te=5.10e8), on compte 100.000.000 d’échantillons.&lt;br /&gt;
Le CPU lors de la capture était grandement sollicité, ce qui explique le fait que la capture soit compromise.&lt;br /&gt;
Pour régler ce problème, on a écrit un script shell de capture.&lt;br /&gt;
Ce script consiste à:&lt;br /&gt;
&amp;lt;br&amp;gt;- effectuer une capture d’une durée de 1 sec&lt;br /&gt;
&amp;lt;br&amp;gt;- d’enregistrer la capture&lt;br /&gt;
&amp;lt;br&amp;gt;- d’effectuer un traitement de ces paquets par un algorithme python en étudiant le temps entre chacun des fragments. Ce temps sera obtenu en nombre d’échantillons, défini avec un seuil d’acceptation absolu entre 150.000 et 300.000 échantillons (pour bien capturer ces temps intermédiaires et pas les temps provoqués par des signaux parasites ou du bruit), et pour affiner l’étude, on impose un seuil d’erreur de +-10% autour de la moyenne. La moyenne est calculée en continue&lt;br /&gt;
&amp;lt;br&amp;gt;- l’ensemble des valeurs obtenues sont enregistrées dans un fichier&lt;br /&gt;
&amp;lt;br&amp;gt;- on réeffectue la capture …&lt;br /&gt;
&lt;br /&gt;
On répète le processus un certains nombre de fois afin d’obtenir un nombre de valeurs nous permettant de nous conforter sur l'issue de l'expérience (environ 1000 valeurs)&lt;br /&gt;
&lt;br /&gt;
La capture et l'étude de chacun des modules dure une à deux heures.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats :&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans le cas du XBee1 (à gauche) et du XBee2 (à droite), voici les résultats obtenus :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Xbee1Graphe256.png|thumb|left|redresse=2|On peut observer des pics caractéristiques à l'envoi]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBee2Graphe256.png|thumb|left|redresse=2|Les mêmes pics caractéristiques confirment un comportement non-aléatoires du module]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
XBee1 : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 259675,81&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 8369.7417&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 70052576.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
XBee2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 258762.58&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 9165.4097&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 84004736.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les graphes présentent le nombre de répétitions des temps de calcul de fragements.&lt;br /&gt;
&lt;br /&gt;
On peut voir des pics spécifiques à certains points dans les deux expériences. Ces pics sont caractéristiques et au module XBee, et à la chaîne de caractère HELLO. Les deux expériences étant effectuées dans le même contexte, &lt;br /&gt;
&lt;br /&gt;
De même que pour le second Xbee, on retrouve des pics bien distincts à certains points.&lt;br /&gt;
&lt;br /&gt;
En outre, on peut voir que ces pics bien distincts se rapprochent de ceux du premier Xbee.&lt;br /&gt;
Néanmoins, même si la moyenne varie que très peu par rapport aux deux Xbee, la variance est assez différente.&lt;br /&gt;
&lt;br /&gt;
Pour confirmer ces observations, il est peut être nécessaire de répéter la même expérimentation sur un nombre d'échantillons plus grand.&lt;br /&gt;
&lt;br /&gt;
Ainsi, afin de confirmer la conjecture, on décide de faire d’autres captures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En superposant les deux graphes (Xbee1 en rouge et Xbee2 en bleu), on peut voir qu'il y a moins de dispersion dans le cas du XBee1, plus centré sur des valeurs précises, contrairement au Xbee2.&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBee1Xbee2Graphe.png|thumb|left|redresse=2]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour les deux nouveaux échantillons, on a les caractéristiques suivantes :&lt;br /&gt;
&amp;lt;U&amp;gt;Xbee1 sur 1688 échantillons&amp;lt;/U&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 260230.3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 8427.3923&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 71020941&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Xbee2 sur 1722 échantillons&amp;lt;/U&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 259899.41&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 9831.5106&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 96658601&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:SignalAT328.png|thumb|right|Signal observé dans le cas de l'ATMega328p]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 2&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 est connecté à un Arduino ATMega328p par le biais d'un shield Libelium &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 dispose du firmware 10EF &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; On envoie exactement les mêmes données que précédemment, la chaîne de caractères HELLO*256 toutes les 0.5s &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hormis l'amplitude du signal qui paraît plus faible lors de la transmission par ATMega328p, le message transmis ne change PAS. Même si nous avons fait en sorte que la periode de transmission soit la même que pour l'expérience précédente, elle n'affecte en rien l'issue de l'expérience car c'est le temps de division de paquet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:ATMega328.png|thumb|650px|Observation du temps de division d'un paquet dans le cas de l'ATMega328p]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:ATMega2560.png|thumb|650px|Observation du temps de division d'un paquet dans le cas de l'ATMega2560]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour les nouveaux échantillons, on a les caractéristiques suivantes :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Xbee1 sur ATMega328p sur 706 échantillons&amp;lt;/U&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 265818.58&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 4748.5965&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 22549168&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Xbee1 sur ATMega2560 sur 711 échantillons&amp;lt;/U&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 262877.83&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 3675.037&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 13505897&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut observer une distinction significative entre une transmission effectuée directement par la machine et la transmission depuis les modules composés d'un ATMega328p ou d'un ATMega2560. En effet, on n'observe pas les mêmes pics caractéristiques dans cette expérience comparé à l'expérience précédente. Même si la moyenne est quasi la même, l'ecart type est plus faible, ainsi que la variance. En outre, de même que pour l'expérience précédente, l'écart-type entre ATMega328p et ATMega2560 est aussi différent. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 3&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 est dans les mêmes conditions que durant la première expérience &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; On change le firmware du XBee1 pour le 10ED &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:FW10ED.png|thumb|left|400px|Observation du temps de division d'un paquet lors du changement du firmware]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Xbee1 sur 821 échantillons&amp;lt;/U&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 259735.52&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 8501.3996&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 72273796&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Après avoir changé le firmware, on a pu voir que les résultats ne changeaient pas par rapport à l'expérience témoin. On est même très proche des temps du XBee bien que l'expérience ne s'est pas faîte dans les mêmes conditions (pas au même endroit, donc possibilité de perturbations).&lt;br /&gt;
On peut donc en conclure que le firmware n'a pas un impact sur le temps de calcul du FCS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Conclusion de l'expérience&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
L’hypothèse qui est que la variance des temps &amp;quot;morts&amp;quot; entre chaque fragments de paquet, soit le temps de calcul du FCS pour le signal émis peut être considéré comme “clé” de distinction d’un module Xbee n'est donc pas à négliger. &lt;br /&gt;
Le temps de calcul du FCS semble unique entre chaque paquet paraît une empreinte propre au matériel.&lt;br /&gt;
&lt;br /&gt;
On peut même considérer que cette étude peut distinguer un module Xbee d'un autre électromagnétiquement parlant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Code python utilisé pour l'étude du signal&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def etudeSubdivPaquet(name, inter_time_values):&lt;br /&gt;
&lt;br /&gt;
threshold = 0.30&lt;br /&gt;
ground = false&lt;br /&gt;
p=1&lt;br /&gt;
&lt;br /&gt;
## On converti chacun des nombres binaires en complexe 64 (deux flottants 32 bits)##&lt;br /&gt;
amppha=scipy.fromfile(open(name+&amp;quot;_PhaseMeg&amp;quot;), dtype=scipy.complex64) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
## On récupère la taille du tableau de complexes (taille du signal) ##&lt;br /&gt;
size=amppha.__len__()&lt;br /&gt;
&lt;br /&gt;
    debut=0&lt;br /&gt;
    inter_time=0&lt;br /&gt;
    min_limit=150000&lt;br /&gt;
    max_limit=350000&lt;br /&gt;
    accept_range=1./10. ## Permet de mettre un seuil d'intervalle d'acceptation&lt;br /&gt;
    signalFnd=False&lt;br /&gt;
&lt;br /&gt;
    for val in range(debut,size):&lt;br /&gt;
        if(val&amp;gt;=((size-debut)/100)*p):&lt;br /&gt;
            print(str(p)+&amp;quot; %&amp;quot;)&lt;br /&gt;
            p=p+1&lt;br /&gt;
&lt;br /&gt;
        if(amppha[val].real&amp;gt;threshold):&lt;br /&gt;
            if(ground==True):&lt;br /&gt;
                if(signalFnd==True):&lt;br /&gt;
                    if(len(inter_time_values)&amp;gt;0):&lt;br /&gt;
                        moy=moyenne(inter_time_values)&lt;br /&gt;
                        if(inter_time &amp;gt;= moy-accept_range*moy and inter_time &amp;lt;= moy+accept_range*moy):&lt;br /&gt;
                            print(&amp;quot;Yes &amp;quot;+str(inter_time))&lt;br /&gt;
                            inter_time_values.append(inter_time)&lt;br /&gt;
                        inter_time=0&lt;br /&gt;
                    elif(inter_time&amp;gt;=min_limit and inter_time&amp;lt;=max_limit):&lt;br /&gt;
                        inter_time_values.append(inter_time)&lt;br /&gt;
                else:&lt;br /&gt;
                    signalFnd=True&lt;br /&gt;
                ground=False&lt;br /&gt;
        else:&lt;br /&gt;
            ground=True&lt;br /&gt;
            if(signalFnd==True):&lt;br /&gt;
                inter_time=inter_time+1&lt;br /&gt;
&lt;br /&gt;
    if(len(inter_time_values)&amp;gt;0):&lt;br /&gt;
        print(&amp;quot;Moyenne &amp;quot;+ str(moyenne(inter_time_values)))&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Rencontre avec Etienne Helluy Lafont ===&lt;br /&gt;
&lt;br /&gt;
Bien que plusieurs pistes ont pu être explorées, notre manque d'expertise dans le domaine de la radio logicielle nous a fait défaut sur nos recherches. En effet, après avoir calculé le SNR d'un de nos signaux, nous nous sommes retrouvés avec des résultats assez incohérents. De nombreuses erreurs peuvent se glisser et nous avions besoin de conseils à ce sujet.&lt;br /&gt;
&lt;br /&gt;
Etienne Helluy-Lafont est un doctorant qui fait sa thèse sur les sondes pour la détection d’intrusions dans les architectures réseau hétérogènes et massivement distribuées. Il développe un outil permettant d'analyser le spectre environnant, de donner des informations sur les signaux émis sur certains canaux et même de démoduler ces signaux. Son programme en C est flexible puisqu'il est adapté pour beaucoup d'antennes (Une des librairies qu'il utilise est SoapySDR [https://github.com/pothosware/SoapySDR/] qui possède des &amp;quot;codec&amp;quot; dont un pour notre HackRF !). Nous nous sommes servi de son outil afin d'avoir de bien meilleurs résultats pour les expériences sur le SNR des Xbee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Expérience : Variation du Rapport Signal Bruit en fonction de la distance de reception ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:FFTSNR.png|thumb|left|redresse=2|Calcul du SNR par FFT]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Fenetre.png|thumb|left|redresse=2|Calcul du SNR par fenêtre glissante]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L'objectif de cette expérience était de visualiser comment le rapport signal bruit (ou SNR) varie en fonction de la distance. &lt;br /&gt;
En effet, nous avions mis en suspens l'expérience qui consistait en la capture du SNR dû aux valeurs instables que l'on avait. &lt;br /&gt;
&lt;br /&gt;
La première idée était de faire une FFT du signal et de calculer le rapport en prenant la moyenne de sa puissance sur une bande de 2.4MHz (1.2Mhz de part et d'autre de la fréquence de capture du HackRF).&lt;br /&gt;
&lt;br /&gt;
Néanmoins, les caractéristiques du XBee (du point de vue de l'étalement spectral) rend le calcul du SNR imprécis. A la suite de la capture de signaux et de l'étude de ces mêmes signaux, les valeurs nous paraissaient incohérentes. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:SNRcalc.png|thumb|left|470px|Pics de SNR]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons donc procédé à une seconde méthode de calcul qui consiste à utiliser une fenêtre glissante de taille 2^k échantillons. &lt;br /&gt;
Pour chaque échantillon du signal, on calculait le SNR tel que :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;SNR =\frac{P_{signal+bruit}}{P_{bruit}}=\frac{|A_{signal+bruit}|^2}{|A_{bruit}|^2}&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans notre cas, on a :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;SNR_x =20.log \frac{Moyenne(W_x[2^{k-1}:2^k])}{Moyenne(W_x[0:2^{k-1}-1])}&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
W_x étant la fenêtre à l'échantillon x du signal, le rapport signal bruit est obtenu lorsqu'on a un pic.&lt;br /&gt;
La fenêtre choisie doit être suffisamment grande pour avoir une précision optimale.&lt;br /&gt;
On impose ainsi un threshold pour éviter des erreurs pouvant influencer les résultats de manière considérable.&lt;br /&gt;
Ainsi, on obtient les valeurs SNR cherchées.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous voulons donc vérifier si la mesure du SNR est une expérience pertinente pour l'identification du matériel. Nous allons prendre plusieurs XBee et mesurer le SNR à différentes distances de l'antenne SDR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 1&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 et XBee2 sont alimentés sur 3.3V VCC par USB (connecté à l'ordinateur)&amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 et XBee2  sont des modèles série s1&amp;lt;/I&amp;gt; disposent du firmware : 10EF&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee3 et XBee4 sont des modèles XBeePro &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Par défaut tous nos xbee disposent du même firmware (10EF), sauf si précisé que non &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Nous cherchons à observer la différence entre le XBee1 et XBee2 dans la même situation. &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Durant les expériences, le montage XBee1 connecté en USB sera le XBee témoin. &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PointsMoyenneXBee1Dist.png|thumb|left|470px|Les différentes valeurs du SNR acquises en fonction de la distance pour le XBee1]]&lt;br /&gt;
&lt;br /&gt;
Dans notre cas, le modèle XBee1 connecté en série à notre machine nous a servi de composant témoin afin d'étudier les signaux des autres modèles. En effet, suite à la capture et l'étude des signaux, on peut voir que le nuage de points qui constitue notre graphe témoigne d'un phénomène électromagnétique ondulatoire quant au champ. Avec la distance, plus l'on éloigne le module, plus le rapport signal sur bruit diminue (le contraire nous aurait étonné). En outre, la variation ondulatoire peut être caractérisée par le champs éléctrique.&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé de refaire cette expérience avec les trois autres XBee directement connectés à notre machine.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ALLXBEE comparaison SNR distance.png|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
De part les potentielles erreurs et les différentes perturbations électromagnétiques ambiantes, la valeur du SNR peut être affectée. Il n'est pas possible directement par les caractéristiques du rapport signal bruit d'effectuer le distinguo entre le XBee1 et le XBee2 (contrairement à l'expérience basée sur la subdivision de paquets). Cependant, les XBee3 et XBee4 présentent une caractéristique commune. Le SNR est beaucoup plus élevé. &lt;br /&gt;
&lt;br /&gt;
En effet, le pic de courant d'un XBee est de 45mA à la transmission pour une alimentation de 3.3V en tension continu, tandis qu'un module XBee pro, le pic de courant atteint les 150mA. Cette différence électronique permet ainsi au XBee pro de communiquer sur une plus grande zone (750m contre 90m pour un XBee simple).&lt;br /&gt;
&lt;br /&gt;
Ainsi, on peut conclure de cette expérience que le SNR est un élément témoin de la consommation énergétique d'un composant électrique (du moins de l'antenne).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:XBEE1 hardware comparaison SNR distance.png|thumb|400px|right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 2&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 est d'abord connecté à un Arduino UNO 328P par le biais d'un shield XBee Libelium puis est connecté à un Arduino Mega 2560 par le biais du même shield &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 dispose du firmware : 10EF &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
On peut observer que même si l'unité de contrôle n'est pas l'ordinateur mais le micro-contrôleur (ici ATMega2560 et ATMega328P), le rapport signal bruit ne change pas réellement. Néanmoins, il était pour nous intéressant de noter qu'un léger gap se créé à 30 et 40 cm de la SDR entre la communication USB et la communication avec les micro-contrôleurs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:XBEE3 hardware comparaison SNR distance.png|thumb|400px|right]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 3&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; L'expérience est similaire que pour le module XBee1 mais avec le XBee3 (pro) &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee3 est d'abord connecté à un Arduino UNO 328P par le biais d'un shield XBee Libelium puis est connecté à un Arduino Mega 2560 par le biais du même shield &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee3 dispose du firmware : 10EF &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
En outre, les résultats obtenus lors de l'expérience avec le XBee3 nous indique que le phénomène ondulatoire observé durant les tests précédents est moins souligné dans la communication avec les micro-contrôleur (toujours à 30 et 40cm) et celà après plusieurs tests.&lt;br /&gt;
&lt;br /&gt;
Des tests plus précis auraient été plusieurs avantageux et nous auraient permis de trancher sur la décision de l'importance du SNR concernant la différenciation de différentes unités de contrôle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:XBEE1 firmware comparaison SNR distance.png|thumb|400px|right]]&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 4&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 ici est connecté en série et dispose dans un premier temps du firmware 10EF (le firmware le plus récent) &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Après capture et expérimentation, on décide de réeffectuer la même chose avec le même XBee (XBee1) avec le firmware 10ED &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
Les acquisitions étant faites dans les mêmes conditions, il semblerait que le changement de firmware ait un petit impact sur la puissance d’émission : Cette petite différence de décibel ne semble pas aléatoire puisqu’on peut clairement voir que la courbe orange reste toujours inférieure à la courbe bleue, or le niveau de bruit est resté inchangé. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Conclusion de l'expérience&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
===Expérience : Variation du Rapport Signal Bruit en fonction du canal de fréquence===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ALLXBEE comparaison SNR freq.png|thumb|400px|left]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:XBEE1 hardware comparaison SNR freq.png|thumb|400px|right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:XBEE3 hardware comparaison SNR freq.png|thumb|400px|right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Code python utilisé pour l'étude du signal&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def SNRStudy(name):&lt;br /&gt;
    tmp=scipy.fromfile(open(name+&amp;quot;_PhaseMeg&amp;quot;), dtype=scipy.complex64)&lt;br /&gt;
&lt;br /&gt;
    f = open(name+&amp;quot;_SNR_Values&amp;quot;,&amp;quot;a&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    p=1&lt;br /&gt;
    size = tmp.__len__()&lt;br /&gt;
    magnitude = (numpy.real(tmp)).tolist()&lt;br /&gt;
&lt;br /&gt;
    threshold=10&lt;br /&gt;
&lt;br /&gt;
    P=0&lt;br /&gt;
    SNR_graph=[]&lt;br /&gt;
    SNR=[]&lt;br /&gt;
&lt;br /&gt;
    win_sz=64&lt;br /&gt;
&lt;br /&gt;
    if(size&amp;gt;=win_sz):&lt;br /&gt;
        for val in range(0,size-win_sz):&lt;br /&gt;
&lt;br /&gt;
            if(val&amp;gt;=((size-win_sz)/100)*p): # Affiche l'état de l'étude&lt;br /&gt;
                print(str(p)+&amp;quot; %&amp;quot;)&lt;br /&gt;
                p=p+1&lt;br /&gt;
&lt;br /&gt;
            SNR_graph.append( 20*math.log((numpy.mean(magnitude[val + win_sz/2 : val + win_sz-1]))/(numpy.mean(magnitude[val+0 : val+win_sz/2-1])), 10) )&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
    size=len(SNR_graph)&lt;br /&gt;
&lt;br /&gt;
    for i in range(1, size-1):&lt;br /&gt;
        if (SNR_graph[i]&amp;gt;SNR_graph[i-1] and SNR_graph[i]&amp;gt;SNR_graph[i+1] and SNR_graph[i]&amp;gt;threshold):&lt;br /&gt;
            SNR.append(SNR_graph[i])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    tmp=numpy.asarray(SNR)&lt;br /&gt;
    tmp.tofile(f)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    try:&lt;br /&gt;
        SNRStudy(sys.argv[1])&lt;br /&gt;
    #except IndexError:&lt;br /&gt;
        #print(&amp;quot;Donnez le nom du fichier\n&amp;quot;)&lt;br /&gt;
    except IOError:&lt;br /&gt;
        print(&amp;quot;Le fichier n'existe pas\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'archive des scripts python : &lt;br /&gt;
&lt;br /&gt;
[archive.zip]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le rapport&lt;br /&gt;
&lt;br /&gt;
[Rapport.pdf]&lt;/div&gt;</summary>
		<author><name>Amoreau</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=75673</id>
		<title>IMA4 2018/2019 P70</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=75673"/>
				<updated>2019-05-09T11:22:15Z</updated>
		
		<summary type="html">&lt;p&gt;Amoreau : /* Expérience : Variation du Rapport Signal Bruit en fonction de la distance de reception */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;font-size: 30px; width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;Impact du matériel et du logiciel sur le champ électromagnétique&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Projet'''&amp;lt;/ins&amp;gt; : Impact du matériel et du logiciel sur le rayonnement électromagnétique&lt;br /&gt;
&lt;br /&gt;
''Nous proposons d'évaluer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et la consommation électrique.''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Etudiants'''&amp;lt;/ins&amp;gt; : Souheib KHINACHE et Antoine MOREAU&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Encadrants'''&amp;lt;/ins&amp;gt; : Alexandre BOE, Xavier REDON et Thomas VANTROYS&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'internet des objets est un marché en plein essor. La communication entre les différents objets connectés crée un nuage de signaux autour d'eux. Ces derniers sont vus par les utilisateurs comme des boîtes noires : le fonctionnement se fait sans en connaître les composants matériels et logiciels. &lt;br /&gt;
Néanmoins, ces objets, de par leurs propriétés électroniques, créent des fuites électromagnétiques impactant le champ environnant. &lt;br /&gt;
&lt;br /&gt;
Bien qu'ils peuvent porter à débat sur l'impact sur la santé, ces signaux peuvent représenter de réelles sources d'informations sur l'aspect matériel et applicatif de l'objet.&lt;br /&gt;
&lt;br /&gt;
Il serait donc intéressant d'avoir idée générale sur le fonctionnement du système en interprétant les ondes électromagnétiques émises par ce système.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Les principaux objectifs de ce projet seront donc de mesurer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et sur la consommation électrique.&lt;br /&gt;
Pour cela, l'outil potentiel avec lequel nous pourrions travailler serait une sonde de champ électromagnétique afin d'établir des mesures. &lt;br /&gt;
Cependant, nous pourrions concevoir notre propre système de capture et d'interprétation à partir d'une antenne, de filtres de fréquences et d'un microcontrôleur (on commencera par un ATMega328P). Il sera nécessaire de prendre en compte les perturbations issues de notre appareil de mesure et d'en tenir compte.&lt;br /&gt;
&lt;br /&gt;
On effectuera ainsi plusieurs expérimentations sur différents supports d'étude :&lt;br /&gt;
*l'aspect &amp;quot;Hardware&amp;quot; en étudiant différents modèles pour un même type de shield  &lt;br /&gt;
*l'aspect calculatoire du matériel en se basant sur l'impact des microcontrôleurs en fonction du modèle (ATMega328P et ATMega2560)&lt;br /&gt;
*l'aspect &amp;quot;Software&amp;quot;, en étudiant l'impact du logiciel et du firmware d'un même composant (différents firmwares pour un même shield Wi-Fi)&lt;br /&gt;
*l'aspect puissance des composants électroniques de gestion de puissance (ponts, hacheurs, onduleurs...).&lt;br /&gt;
&lt;br /&gt;
L'étude des différentes informations se fera par traitement des signaux électromagnétiques et des spectres. &lt;br /&gt;
Afin de mieux appréhender le problème, il nous est nécessaire de comprendre les phénomènes physiques issus de la notion d'électromagnétisme.&lt;br /&gt;
&lt;br /&gt;
Ces études mèneront à une étape plus complexe : l'interprétation des signaux. En effet, l'un des objectifs de ce projet est de comprendre du mieux possible le fonctionnement d'un système sans y avoir accès directement, et donc dans ce contexte &amp;quot;traduire&amp;quot; un ensemble de signaux électromagnétiques.&lt;br /&gt;
&lt;br /&gt;
On pourra en outre apporter un aspect visuel à l'étude en rajoutant une interface informatique.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
Bien qu'aux yeux de nombreuses personnes le bruit électromagnétique créé par les équipements électroniques du quotidien peut porter à controverse (débats concernant l'impact sur la santé par exemple), il peut être une source d'informations. &lt;br /&gt;
De nos jours, les ondes électromagnétiques restent un vaste champ d'étude, sujettes à de nombreuses thèses et recherches au sein des laboratoires.&lt;br /&gt;
&lt;br /&gt;
On peut prendre l'exemple de [https://www.eurekalert.org/pub_releases/2015-01/giot-rwt010715.php Milos Prvulovic], professeur à l'Institut Technologique de Géorgie, ayant simulé un contexte de cybercafé, dans lequel il place une antenne magnétique, un ordinateur portable cible et un ordinateur &amp;quot;espion&amp;quot;. Il réussit, grâce aux signaux EM émis par l'impulsion de l'appui des touches clavier à capter un message écrit par un ordinateur cible. &lt;br /&gt;
&lt;br /&gt;
Néanmoins, dans le quotidien, l'utilisation des sondes électromagnétiques se fait pour l'étude énergétique d'un système électronique (fuites électromagnétiques anormales, preuves d'une anomalie...) afin de respecter certaines normes législatives. Le code du travail par exemple réglemente et définit des valeurs seuils par le biais des articles R. 4453-3 et R. 4453-4.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
'''NBM-520 de NARDA STS'''&lt;br /&gt;
[[Fichier: NBM_TS.png|thumb|300px|NBM-TS, application des appareils NBM]]&lt;br /&gt;
NARDA STS est une entreprise qui fournit des outils de mesure. Elle met à disposition aux professionnels des sondes électromagnétiques.&lt;br /&gt;
La NBM-520 est un appareil de la franchise, mesurant le champ électrique et magnétique. Elle donne des valeurs précises du champ électromagnétique ambiant sur une large bande. Elle propose différentes sondes modulables permettant une souplesse au niveau de l'étude en fonction des besoins, avec des sondes pouvant étudier des signaux de fréquence de 100kHz à 6GHz ou même de 300kHz à 50GHz (en fonction de la sonde choisie).&lt;br /&gt;
&lt;br /&gt;
En outre, le dispositif peut se connecter en USB sur PC afin d'envoyer les données capturées et d'en faire une étude. Le dispositif propose un logiciel d'étude, NBM-TS, permettant d'observer du champ en fonction du temps, de la fréquence, de la position...&lt;br /&gt;
&lt;br /&gt;
L'équipement est utilisé par l'ANF (l'Agence Nationale des Fréquences, agence gérant l'ensemble des normes autour des radiofréquences), et est donc un gage de qualité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Avantages :''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Large bande de fréquence&lt;br /&gt;
* Matériel solide&lt;br /&gt;
* Application fonctionnelle permettant l'étude et gestion des données&lt;br /&gt;
* Possibilité d'étudier séparément champ électrique et magnétique&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Inconvénients:''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Impossible d'étudier les basses fréquences (appareils sous tension, bobinages...)&lt;br /&gt;
* Prix élevé : à partir de 3100€&lt;br /&gt;
* La cible de ce produit est surtout les professionels&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
'''Une pita.'''&lt;br /&gt;
&lt;br /&gt;
''Comment mon pain à pita vole ta clé RSA ?''&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Pita.jpg|200px|thumb|left|Une pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Des chercheurs israéliens ont découvert un moyen de capturer des clés de cryptage RSA, réputées comme inviolables, par le biais d'une pita... du moins avec un dispositif suffisamment petit pour être caché dans un pain à pita. &lt;br /&gt;
Le dispositif, renommé PITA pour Portable Instrument for Trace Acquisition a la particularité de capturer les ondes radio électromagnétiques émanantes d'un PC, qu'il soit connecté à un réseau ou pas.&lt;br /&gt;
Les différentes opérations du processeur sont identifiées en distinguant les différents modèles de l'activité radio sur le spectre EM.&lt;br /&gt;
&lt;br /&gt;
Bien que la capture des clés RSA a été faite dans des conditions particulières (modification du processeur de l'ordinateur cible), il est néanmoins possible, selon les chercheurs, d'identifier quelle type d'activité est exercée par l'ordinateur ainsi que son état.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PITA.jpg|300px|thumb|right|Un dessous de pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'un des points importants concernant le dispositif est son coût : moins de 300 euros.&lt;br /&gt;
L'appareil dispose :&lt;br /&gt;
* d'un PC portatif (PC-on-a-stick) ''Rikomagic MK802 IV'',&lt;br /&gt;
* d'un recepteur radio SDR ''FUNcube Dongle Pro+''&lt;br /&gt;
* d'une antenne radio&lt;br /&gt;
* d'une batterie&lt;br /&gt;
* d'une antenne WiFi&lt;br /&gt;
* d'une carte MicroSD&lt;br /&gt;
* d'un adapteur d'antenne&lt;br /&gt;
* et d'une '''pita'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le dispositif aurait une portée de 50cm. &lt;br /&gt;
Les chercheurs israéliens ont collaboré avec GNU Private Guard (logiciel de cryptage asymétrique) afin de protéger contre ces attaques les clés de cryptage.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
&lt;br /&gt;
''Scénario 1''&lt;br /&gt;
&lt;br /&gt;
Gérard a toujours le flair pour les bonnes affaires. Il a acheté une centaine de clés WiFi à un prix dérisoire sur AloXpresso afin de faire du profit à la revente. Le vendeur lui garantit que toutes les clés fonctionnent correctement. Gérard veut vérifier. Après vérification, 99 des clés sur 100 fonctionnent comme prévu. Gérard aimerait être sûr du disfonctionnement, mais Gérard n'est pas une pointure en informatique. &lt;br /&gt;
&lt;br /&gt;
Coup de génie ! Il se rappelle qu'il dispose d'un dispositif qui capte les ondes EM et les interprète directement. C'est le moment de tester ça. Il remarque une anomalie sur le spectre.&lt;br /&gt;
Il décide de contacter le revendeur pour lui signaler un disfonctionnement sur l'une des clé. &lt;br /&gt;
Pas de soucis. Le vendeur, étant bon prince, lui envoie une autre clé USB et lui fait une ristourne.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Scénario 2''&lt;br /&gt;
&lt;br /&gt;
La police fait une perquisition chez un individu soupçonné de graves délits. Cela fait plusieurs mois que la brigade criminelle prépare l'intervention, et une fois sur les lieux ils arrêtent le soupçonné malfaiteur.&lt;br /&gt;
Cependant avant de repartir, elle veut faire l'acquisition d'un maximum de preuves. Elle veut alors prendre l'essentiel des objets, dont certains objets éléctroniques connectés de l'individu dont elle pourra extraire les informations qui serviront à le faire tomber.&lt;br /&gt;
&lt;br /&gt;
Par chance, elle dispose d'un petit outil qui scannera les signatures alentours des objets connectés, comme des téléphones cachés, clés USB wifi dissimulées dans le décor etc..&lt;br /&gt;
Et si le suspect avait modifié malignement un objet connecté banal pour l'utiliser autrement à ses fins, la police le découvrirait car elle possède une base de données de toutes les signatures spectrales des objets connectés sur le marché et celle de l'objet modifié ne collerait pas avec celle de la base de données.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
&lt;br /&gt;
'''Comment étudier les signaux malgré les perturbations électromagnétiques ambiants et les faibles signaux des µC ?'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les signaux électromagnétiques des microcontrôleurs ou d'autres composants peuvent être faibles. Il y a une possibilité pour palier à ce problème, c'est de capter les signaux depuis une antenne émettrice que l'on rajoute à l'objet d'étude. &lt;br /&gt;
Nous utiliserons un SDR (Software Defined-Radio) afin de capter les ondes radio et les étudier directement sur PC. Le filtrage s'effectuera ainsi de manière numérique. Plusieurs tests seront effectués pour le même objet à étudier (quand on parle d'objet, on évoque un ensemble de plusieurs composants, comme par exemple une alimentation, un micro-contrôleur et une antenne). Ainsi, de manière statistique, nous pourrons en déduire un pattern récurrent pour chaque expérience en les effectuant dans différents environnements (pourquoi pas une chambre anachoïque). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons &lt;br /&gt;
* Capter le signal émis par un objet connecté le plus précisément possible&lt;br /&gt;
&lt;br /&gt;
* Concevoir nos propres objets connectés tous différents mais basés sur un même modèle&lt;br /&gt;
&lt;br /&gt;
* Interpréter les spectrogrammes, faire une étude statistique des signaux émis par nos différents objets et en tirer des conclusions&lt;br /&gt;
&lt;br /&gt;
* Répertorier dans une base de données les signatures de nos objets , voire de quelques objets disponibles sur le marché&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix logiciel :&lt;br /&gt;
&lt;br /&gt;
- La distribution Linux Pentoo ou Kali pour traiter les signaux avec GNU RADIO (Suite logicielle dédiée à l’implémentation de radios logicielles et de systèmes de traitement du signal).&lt;br /&gt;
&lt;br /&gt;
- FemtoOS pour l'OS des ATMEGA328P et ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix Matériel : &lt;br /&gt;
&lt;br /&gt;
- Plusieurs modules radios émetteurs &lt;br /&gt;
&lt;br /&gt;
- Plusieurs microcontrôleurs ATMEGA328P et un ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
- Des alimentations identiques pour chaque PCB&lt;br /&gt;
&lt;br /&gt;
- Un HackRF pour la réception des signaux&lt;br /&gt;
&lt;br /&gt;
- Une antenne 50 Ohm pour le HackRF [https://www.passion-radio.fr/accessoires-sdr/antenne-ant500-74.html]&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous devons préparer tout le matériel qui servira à faire nos tests. C'est à dire concevoir :&lt;br /&gt;
&lt;br /&gt;
- Un ensemble SDR/PC qui traitera le signal reçu avec GNU RADIO.&lt;br /&gt;
&lt;br /&gt;
- Une multitude de PCB qui seront utilisés comme objets connectés (Sur chacun d'entre eux on trouvera au minimum une antenne radio, un microcontrôleur et une alimentation)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de récupérer une &amp;quot;signature&amp;quot; d'un de nos objets , il faudra faire plus de 50 analyses spectrales pour conclure statistiquement sur une bonne signature qui caractérisera l'objet.&lt;br /&gt;
&lt;br /&gt;
Nous devons donc dans un second temps: &lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques mais qui ont un '''firmware''' différent.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques qui ont pour seule différence le '''microcontrôleur'''.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques dont seul le '''PCB''' diffère.&lt;br /&gt;
&lt;br /&gt;
Grâce à tous ces tests , nous pourrons conclure et voir l'impact qu'à le matériel ou le logiciel sur la signature d'un objet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enfin si les délais nous le permettent, nous pourrons réaliser un software qui cartographiera nos objets connectés dans la pièce grâce à la puissance de la signature reçue (Ce qui devrait être réalisable puisqu'à ce stade nous aurons une base de donnée des signatures).&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
|3&lt;br /&gt;
|8&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Recherches&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|6&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Prise en main de GnuRadio&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Configuration Xbee&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Expériences&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|5&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|4&lt;br /&gt;
|15&lt;br /&gt;
|9&lt;br /&gt;
|8&lt;br /&gt;
|7&lt;br /&gt;
|8&lt;br /&gt;
|8&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
[[Fichier:HackrfOne.jpeg|200px|thumb|right|Le HackRF One]]&lt;br /&gt;
Durant cette semaine, nous avons continué nos recherches notamment sur le moyen de transmission de nos objets connectés. Nous avons confirmé notre choix de notre SDR : Monsieur Boé nous a confirmé que des HackRF seraient disponibles dans les laboratoires et qu'il pourrait nous en prêter un. On disposera donc d'une antenne puissante pour traiter les signaux émis par nos objets communiquants. &lt;br /&gt;
&lt;br /&gt;
Il faudra coupler notre HackRF avec un logiciel appelé GNU RADIO qui est un logiciel très complet ( Pour information : la NASA a utilisé GNU RADIO afin de rétablir le contact avec une sonde spatiale abandonnée ). Afin de faire tourner ce logiciel libre, nous aurons besoin de la distribution Kali Linux, ex Backtrack.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Choix des émetteurs/récepteurs === &lt;br /&gt;
&lt;br /&gt;
Nous avons décidé que nos objets connectés communiqueront dans deux '''bandes de fréquences ISM''', l'une à '''900 MHz''' grâce à des modules Digi Xbee et l'autre à '''2,4 GHz''' par le moyen de modules émetteurs Bluetooth. On rappellera que les Digi Xbee et les émetteurs/récepteurs Bluetooth seront pilotés par des ATMEGA 2560.&lt;br /&gt;
&lt;br /&gt;
Les Xbee ne communiqueront pas entre eux et émettront en continu les mêmes données car ils le peuvent, alors que les émetteurs/récepteurs Bluetooth devront s'échanger des données si on veut pouvoir observer un quelconque signal autour de la fréquence de leurs porteuses. &lt;br /&gt;
&lt;br /&gt;
On voudra observer premièrement, si avec deux objets dans les '''mêmes''' conditions (donc même µc et même émetteur), on peut ou non '''distinguer une différence'''. Ceci est fondamental pour la suite des expériences, puisque si les deux émettent à la même fréquence, on pourra faire varier plusieurs paramètres afin de trouver '''des clés''' (des signes) qui pourraient aider à l'identification du matériel.&lt;br /&gt;
&lt;br /&gt;
Ces clés représentent différents facteurs potentiels d'identification du signal (le rapport signal-bruit en fonction de la distance par exemple...).&lt;br /&gt;
&lt;br /&gt;
''On planifie alors pour la semaine suivante de réussir à faire émettre, en utilisant simplement des breadboards pour commencer, nos Xbee et modules BT et observer quelque chose grâce à notre SDR.''&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration des modules XBee ===&lt;br /&gt;
&lt;br /&gt;
Nous avons configuré deux XBee afin qu'ils puissent communiquer entre eux : &lt;br /&gt;
&lt;br /&gt;
Les modules XBee ont été montés sur des platines d'interface USB/série de manière à ce qu'on puisse les paramétrer via le programme de contrôle ''minicom''. &lt;br /&gt;
&lt;br /&gt;
Dans le doute, on supposera que les XBee communiquent à 9600 Baud. On exécute la commande suivante : &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;minicom -b 9600 -D /dev/ttyUSB0&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
On active l'echo local dans minicom, afin de pouvoir observer ce qui a été envoyé par liaison série au XBee ('''CTRL+A''' puis '''E''').&lt;br /&gt;
&lt;br /&gt;
Pour commencer le paramètrage il faut taper ''' +++ ''' rapidement. Le XBee nous répond OK, cela veut dire que nous sommes dans le mode configuration et que nous pouvons utiliser les commandes '''AT'''. (Redirection vers la liste des commandes AT XBee [https://cdn.sparkfun.com/assets/resources/2/9/22AT_Commands.pdf]).&lt;br /&gt;
&lt;br /&gt;
Comme nos XBee ont été utilisés auparavant, il a fallu les restaurer à l'état usine avec la commande '''ATRE'''.&lt;br /&gt;
&lt;br /&gt;
Si on souhaite que des XBee puissent s'envoyer des données il faut qu'ils soient sur le même canal (commande '''ATCH''') et aient le même PAN ID (commande '''ATID'''). Notre PAN ID sera '''BEE6''' et le canal sera celui par défaut '''C'''.&lt;br /&gt;
&lt;br /&gt;
Ensuite il faut leur donner une adresse de destination ('''ATDH''' &amp;amp; '''ATDL''') qui sera l'adresse broadcast, pour ce faire on entre &lt;br /&gt;
 ATDH=0000&lt;br /&gt;
 ATDL=FFFF&lt;br /&gt;
&lt;br /&gt;
Enfin '''ATMY''' représente l'ID du XBee, notre premier XBee aura comme ID 5000 et le second 5001.&lt;br /&gt;
&lt;br /&gt;
N'oublions pas de sauvegarder les paramètres avec '''ATWR'''.&lt;br /&gt;
&lt;br /&gt;
On vérifie que tout a bien été pris en compte :&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;&lt;br /&gt;
+++OK&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATID&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
BEE6&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
C&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
0&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDL&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
FFFF&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATMY&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
5000&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCN&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Puis on fait de même avec le deuxième XBee (ID 5001).&lt;br /&gt;
&lt;br /&gt;
Voilà, lorsque on envoie des caractères par liaison série sur 5000, la LED '''Tx''' de 5000 s'allume et la Led '''Rx''' de 5001 s'allume elle aussi. Cela signifie que l'envoi de donnée par onde radio s'effectue correctement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que les XBee émettent et reçoivent, on peut commencer les mesures avec notre SDR. Mais avant cela il va falloir bien se familiariser avec le logiciel GNU RADIO qui est assez difficile à prendre en main.&lt;br /&gt;
&lt;br /&gt;
=== Première prise en main du logiciel GNURADIO ===&lt;br /&gt;
&lt;br /&gt;
Installation de GNU radio avec les fonctions + drivers pour HackRF : &lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install gqrx-sdr gnuradio gr-osmosdr hackrf &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le bloc Osmocom Source sert de &amp;quot;passerelle&amp;quot; entre le logiciel et la SDR, il permet de transmettre les informations récupérées par le HackRF afin qu'on puisse les traiter avec d'autres bloc de fonctions.&lt;br /&gt;
&lt;br /&gt;
Si on veut pouvoir récuperer les données il faut passer l'argument ''hackrf=0'' dans la box périphérique du bloc Osmocom.&lt;br /&gt;
&lt;br /&gt;
Ci-dessous on peut voir le spectre environnant entre 2.44GHz et 2.460GHz grâce au bloc WX GUI FFT Sink.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ScreenGnuRadio.png|Interface de GNURadio]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous a permis d'effectuer notre première expérience. L'utilisation des deux Xbees nous a permis d'observer l'impact des Xbee sur le champ électromagéntique environnant.&lt;br /&gt;
&lt;br /&gt;
Si on analyse le spectre environnant grâce au module FFT de GNU Radio, lorsque les Xbee communiquent entre eux, on peut apercevoir un pic caractéristique propre.&lt;br /&gt;
En effet, lors de l'emission d'un message sur le port série, on a un pic qui se dégage du spectre d'amplitude -20dBm. Ce pic est caractéristique au canal de communication choisi et configuré sur le Xbee.&lt;br /&gt;
Néanmoins, le signal est perturbé par le bruit environnant. &lt;br /&gt;
L'expérience étant effectuée au sein de l'école, les signaux Wi-Fi perturberont l'étude.&lt;br /&gt;
Il faut noter que la norme IEEE 802.11 impose au Wi-Fi l'utilisation d'une bande passante s'étalant de 2.4 GHz à 2.5 GHz.&lt;br /&gt;
&lt;br /&gt;
La bande passante des modules Zigbee se décomposent en 16 canaux, allant de 2400 MHz à 2480 MHz par pas de 5 MHz.&lt;br /&gt;
&lt;br /&gt;
Le canal ici utilisé est le canal 13 (3ème canal) de fréquence 2415 MHz.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[Fichier:Channel135001.png|thumb|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Fichier:channel135000.png|thumb|none|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBeeCh13.png|Spectre de l'environnement autour du XBee|thumb|none|400 px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBeeCh13SND.png|Lors de l'envoi de données au XBee voisin|thumb|none|400 px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut observer un pic de puissance lors de l'envoi d'une donnée en série à la fréquence 2.415 GHz.&lt;br /&gt;
Il nous est maintenant nécessaire d'analyser de plus près les signaux et leurs fréquence centrale dans la bande perçue au dessus de -20dB.&lt;br /&gt;
&lt;br /&gt;
On réeffectuera une expérience en zone isolée des signaux parasites.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous avons principalement fait des recherches dans le but de mieux comprendre les signaux émis par le Xbee.&lt;br /&gt;
&lt;br /&gt;
En somme, nous étions confrontés à de nombreuses interrogations. Le fonctionnement du Xbee étant assez simple et la sécurité du protocole Zigbee étant moindre, y a t-il possibilité de démoduler le signal émis afin de développer nos études ?&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
[[Fichier:Switchchannel pyscript.PNG|upright=0.8|thumb|right|Script Python]]&lt;br /&gt;
&lt;br /&gt;
Après réflexion et consultation de nos encadrants, nous nous sommes rendu compte que la démodulation prévue lors de la semaine 4 n'aiderait pas à répondre à la problématique de notre sujet !  &lt;br /&gt;
&lt;br /&gt;
Afin de mieux visualiser les signaux des Xbee , on décide d'automatiser le processus d'envoi sur le port série des données vers le Xbee. C'est à dire concevoir un programme Python qui automatisera l'envoi de données et le changement de channel à intervalle de temps régulier (Changement toutes les 10 secondes). &lt;br /&gt;
&lt;br /&gt;
L'utilisation de Minicom '''n'était pas du tout la meilleure solution''' pour faire émettre les Xbee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Après quelques essais, on remarque que lorsque le Xbee émet sur le channel 13, il émet à environ 2,445GHz au lieu d'émettre à 2,415GHz soit une différence de 30MHz : Ceci n'est pas important, car ce que l'on souhaite remarquer c'est un éventuel décalage de la fréquence centrale entre deux Xbee différents. Si les deux Xbee n'ont pas la même frequence centrale on pourra conclure que la '''fréquence centrale''' de la porteuse du Xbee n'est pas '''une des clés''' permettant d''''identifier''' cet émetteur/récepteur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaines 6 et 7==&lt;br /&gt;
&lt;br /&gt;
Afin de mieux cerner le comportement électromagnétique des modules XBee, il nous est nécessaire de comprendre leur fonctionnement et le protocole Zigbee.&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous avons cherché à souligner le parallélisme entre étude fréquentielle par le spectre et étude temporelle du signal.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PlancheXPtest.jpg|thumb|right|Planche prototype]]&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous avons paramétré la fréquence centrale de capture du HackRF. En effet, bien que le HackRF dispose d'une large bande passante, afin de se focaliser sur la porteuse, il est indispensable de configurer le HackRF en conséquence.&lt;br /&gt;
En second lieu, pour éviter une variation du RSSI (Received Signal Strength Indication) et de la puissance du signal, nous devions mettre en place une prototype de &amp;quot;planche expérimentale&amp;quot; sur laquelle devaient être fixés nos différents modules (l'antenne de reception et les Xbees).&lt;br /&gt;
&lt;br /&gt;
La position des antennes les unes par rapport aux autres est fondamentale. Afin d'optimiser la reception, les antennes doivent être parallèles.&lt;br /&gt;
&lt;br /&gt;
Chaque Xbee est identifié par un chiffre (1 ou 2). En effet, l'attribution de ces chiffres sera définitive pour ne pas perturber la cohérence des expériences. &lt;br /&gt;
Leur position est aussi fondamentale. Ainsi, en fonction que le Xbee soit emetteur ou récepteur, il sera disposé différement sur la planche.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Expérience : Le XBee 1 émetteur directement connecté en série au PC===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:GrapheGNURadio01.png|thumb|left|150px|Schéma simple d'étude fréquentielle et temporelle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette expérience est la première mettant en place un contexte (un seul Xbee émetteur connecté en série au PC, le deuxième Xbee étant inactif) et nous permettra d'étudier le plus de cas possibles.&lt;br /&gt;
&lt;br /&gt;
Nous avons tout d'abord commencé par un graphe GNURadio simple permettant l'observation du spectre et du signal et la variation de la fréquence d'étude.&lt;br /&gt;
&lt;br /&gt;
Le script python a été réécrit afin que le XBee puisse émettre une chaîne de caractère &amp;quot;HELLO&amp;quot; * 1024. En effet, même si la fréquence de balayage du module HackRF peut être grandement augmentée, il faut éviter d'aller au dessous de 0.01s, finissant par consommer de manière considérable les ressources octroyées par le CPU le cas échéant.&lt;br /&gt;
Le fait d'augmenter la taille de la chaine de caractère permet de mieux synchroniser l'étude en temps réel avec la capture des données.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc émis les données sur le canal 20 (14 en hexadécimal), soit la fréquence centrale est à 2.450GHz selon la norme Zigbee. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Etude fréquentielle&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L'étude fréquentielle est similaire à celle réalisée auparavant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div center&amp;gt;&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[Fichier:Spectrefreq2.png|thumb|center|750px|Spectre fréquentiel au canal 14]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[Fichier:Spectrogram.png|thumb|center|250px|Spectrogramme]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on peut observer sur l'analyseur de spectre GNURadio que la fréquence centrale est située 2.450GHz.&lt;br /&gt;
&lt;br /&gt;
D'autre part, l'ensemble des fréquences qui dessinent le spectre s'étalent sur une large bande de fréquence. En effet, cette technique d'étalement appelée DSSS (Direct-Sequence Spread Spectrum) utilisé par les modules XBee permet au signal d'être moins sensible aux interférences et aux brouillages. En outre, même si la puissance du spectre dans sa globalité reste la même, la densité spectrale elle diminue considérablement, rendant le signal plus &amp;quot;discret&amp;quot;.&lt;br /&gt;
La différence de puissance entre le lobe principal et les premiers lobes secondaires sont de 30 dB, ce qui est aussi commun au DSSS.&lt;br /&gt;
&lt;br /&gt;
Le spectrogramme témoigne aussi de l'étalement du signal sur un peu plus de 6 MHz (3MHz de par et d'autre de la fréquence centrale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt; Etude temporelle &amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Signal temporel.png|thumb|left|500px|Signal observable centré à 2.450GHz lors de l'émission]]&lt;br /&gt;
&lt;br /&gt;
Le signal ici est séparé en deux composantes car il s'agit d'un signal complexe. Nous avons supposé en premier temps qu'il s'agissait du signal principal décalé de 180°, ce qui n'était pas le cas.&lt;br /&gt;
Après quelques recherches, cette séparation des composantes permet de transmettre deux fois plus de données sur la même bande passante.&lt;br /&gt;
Le signal observable témoigne d'une modulation bien spécifique au XBee. En effet, on peut observer des sauts de phase à différents points, qui correspondent à une modulation par changement de phase (modulation QPSK ou Quadratic Phase-Shift Keying). Ce sont ces sauts de phases qui permettent la transmission des bits.&lt;br /&gt;
Les changements de phase s'il y a se font toutes les µs. En outre, on peut observer un décalage (offset) entre la composante Q et la composante I de µs/2 (propre à la modulation OQPSK).&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé d'enregistrer ces données brutes dans un fichier et nous l'avons étudié avec Audacity, logiciel open-source de son, et donc de signaux ! L'inconvénient avec l'interface graphique QT de GNURadio est son manque de précision lors d'un dézoom sur le signal en temps réel. Audacity permet de palier à celà !&lt;br /&gt;
En outre, on peut voir que les paquets Xbee sont reconnaissables. En effet, le signal témoigne de la taille du paquet XBee.&lt;br /&gt;
&lt;br /&gt;
Le paquet XBee est constitué d'un premier header (header physique) de 6 octets :&lt;br /&gt;
- la séquence de préambule (4 octets) constitué de 32 bits à 0&lt;br /&gt;
&lt;br /&gt;
- l'indice de début du paquet fixé à 0x7A (1 octet)&lt;br /&gt;
&lt;br /&gt;
- la longueur du paquet (1 octet);&lt;br /&gt;
&lt;br /&gt;
d'un header MAC (7 à 27 octets en fonction des informations de l'adresse), d'un bloc FCS de fin de paquet (2 octets) et l'ensemble des données (de 1 à 104 octets).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Signal2.png|thumb|right|400px|On observe graphiquement qu'un paquet est transmis en 3846µs]]&lt;br /&gt;
[[Fichier:PacketXBee.png|400px|thumb|right|Paquet XBee]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Comme dit plus haut, les signaux émis par le XBee connaissent un étalement sur le spectre par DSSS.&lt;br /&gt;
Cet étalement s'effectue en divisant chaque symbole (correspondant à une série de 4 bits) transmis en &amp;lt;B&amp;gt;&amp;lt;I&amp;gt;chips&amp;lt;/I&amp;gt;&amp;lt;/B&amp;gt;.&lt;br /&gt;
Chaque symbole, soit 4 bits, correspond à 32 chips, et donc 32 états binaires (1 octet correspond à 64 chips).&lt;br /&gt;
Dans le cas de la norme ZigBee, la transmission de chacun des chips est synchronisé sur chaque µs (1 chip toutes les µs).&lt;br /&gt;
&lt;br /&gt;
Les signaux reçus par l'antenne HackRF étaient deux sinusoïdes modulées en phase et qui s'étalaient sur une période d'environ 3840µs (3846µs graphiquement mais il y a possibilité d'erreur à l'echelle du µs).&lt;br /&gt;
Sachant qu'un octet correspond à 64µs, on a :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;N_{octets} =\frac{2*T_{signal}}{64*T_{chip}}=\frac{2*3.840*10^{-6}}{64*10^{-6}}=120 octets&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'analogie peut être effectuée entre paquet Ethernet et paquet ZigBee. En effet, la taille limite des données d'un paquet est de 104 octets. La chaîne de caractère n'étant qu'envoyée par paquet, le paquet observé n'est que de 120 octets, ce qui est cohérent avec les caractéristiques du XBee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Hello1024secs.png|thumb|none|Temps de transmission de la chaîne de caractères &amp;quot;HELLO&amp;quot; 1024 fois]] &amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:AudacitySignal2.png|thumb|none|51 Paquets XBee portent la chaîne de caractère &amp;quot;HELLO&amp;quot; 1024 fois]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 8==&lt;br /&gt;
&lt;br /&gt;
L'étude des signaux posait réellement problème de par le fait qu'une grande partie de la capture faite n'était que purement le bruit sans signal (utile plus tard pour l'étude du SNR).&lt;br /&gt;
Prenons l'exemple d'un paquet de 21 octets (un paquet contenant une seule chaîne de caractères HELLO). Le signal s'étalerait en théorie sur 21*64 chips soit 672 chips. Sachant que la modulation est une modulation QPSK, on s'étale sur un temps de 672µs.&lt;br /&gt;
En effet, le Xbee transmet toutes les 100ms.&lt;br /&gt;
Donc qu'une partie du signal nous est utile.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décider d'écrire un script qui nous permettrait d'étudier le signal dans de meilleures conditions, et donc de le filtrer.&lt;br /&gt;
&lt;br /&gt;
Chaque capture de signal effectuée est enregistrée dans un fichier par le biais du bloc fonction &amp;lt;B&amp;gt;&amp;lt;I&amp;gt;File Sink&amp;lt;/I&amp;gt;&amp;lt;/B&amp;gt; du compagnon GNURadio. Néanmoins, les fichiers obtenus sont des fichiers binaires assez lourds (environ 500Mo pour une capture de 3s), ce qui est un réel problème et qui implique le filtrage du signal.&lt;br /&gt;
&lt;br /&gt;
La bibliothèque numpy pour python nous permet en outre directement d'importer les échantillons des signaux, les traduisant du binaire à un format cible (complexe flottant 64 bits) dans un Array par le biais de la fonction:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; f = scipy.fromfile(open(&amp;quot;Nom du fichier&amp;quot;), dtype=scipy.complex64) &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La première solution pour réduire ce signal était d'imposer un threshold directement sur le signal, supérieur au bruit, mais qui conduirait à une perte d'une partie du signal à étudier.&lt;br /&gt;
La deuxième solution qui a été retenue était tout simplement de calculer l'amplitude et la phase du signal et appliquer ce même threshold à l'amplitude.&lt;br /&gt;
&lt;br /&gt;
== Semaine 9 et 10==&lt;br /&gt;
&lt;br /&gt;
A partir de la semaine 10 nous avons procéder aux expériences pour avoir suffisamment de données et en tirer des conclusions.&lt;br /&gt;
&lt;br /&gt;
Lorsqu'on fait une acquisition d'un signal xbee , on peut maintenant via un script traiter cette acquisition et récupérer seulement les parties qui nous intéressent : A savoir la partie réelle et la partie imaginaire, l'amplitude du signal et enfin la phase du signal.&lt;br /&gt;
&lt;br /&gt;
Exemple ci dessous après acquisition + traitement de notre xbee n°2 :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Traitement xbee2.png|thumb|right|redresse=2|Signal Xbee2 post-traitement ]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Constellation xbee2.png|thumb|right|redresse=2|Diagramme de constellation xbee2 après utilisation de LightSignal]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'utilisation du script LightSignal permet de retirer toutes les phases en dehors du signal. Ainsi, on peut caractériser le diagramme de constellation comme un diagramme propre à la modulation QPSK. &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
import scipy&lt;br /&gt;
import numpy&lt;br /&gt;
import sys&lt;br /&gt;
&lt;br /&gt;
def binToComplex64(name):&lt;br /&gt;
    threshold=0.10&lt;br /&gt;
    tmp=scipy.fromfile(open(name+&amp;quot;_PhaseMeg&amp;quot;), dtype=scipy.complex64)&lt;br /&gt;
    tmp2=scipy.fromfile(open(name), dtype=scipy.complex64)&lt;br /&gt;
    &lt;br /&gt;
    f2 = open(name+&amp;quot;_filtre&amp;quot;, &amp;quot;w+&amp;quot;) &lt;br /&gt;
    f = open(name+&amp;quot;_PhaseMeg_filtre&amp;quot;,&amp;quot;w+&amp;quot;)&lt;br /&gt;
    &lt;br /&gt;
    p=1&lt;br /&gt;
    size=tmp.__len__()&lt;br /&gt;
    size2=tmp2.__len__()&lt;br /&gt;
    &lt;br /&gt;
    if size &amp;gt; size2:&lt;br /&gt;
        size=size2&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    ground=False&lt;br /&gt;
    newListSignal=[]&lt;br /&gt;
    newListMagnPh=[]&lt;br /&gt;
    for val in range(0,size): &lt;br /&gt;
        if(val&amp;gt;=(size/100)*p):&lt;br /&gt;
            print(str(p)+&amp;quot; %&amp;quot;)&lt;br /&gt;
            p=p+1&lt;br /&gt;
        if(tmp[val].real&amp;gt;threshold):&lt;br /&gt;
            if(ground==True):&lt;br /&gt;
                for i in range(0,1000):&lt;br /&gt;
                    newListSignal.append(numpy.complex64(0))&lt;br /&gt;
                    newListMagnPh.append(numpy.complex64(0))&lt;br /&gt;
                ground=False&lt;br /&gt;
            newListSignal.append(tmp2[val])&lt;br /&gt;
            newListMagnPh.append(numpy.complex64(tmp[val].real+tmp[val].imag*0.3j))&lt;br /&gt;
        else:&lt;br /&gt;
            ground=True&lt;br /&gt;
    &lt;br /&gt;
    tmp=numpy.asarray(newListMagnPh)&lt;br /&gt;
    tmp.tofile(f)&lt;br /&gt;
    tmp2=numpy.asarray(newListSignal) &lt;br /&gt;
    tmp2.tofile(f2)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    try:&lt;br /&gt;
        binToComplex64(sys.argv[1])&lt;br /&gt;
    except IndexError:&lt;br /&gt;
        print(&amp;quot;Donnez le nom du fichier\n&amp;quot;)&lt;br /&gt;
    except IOError:&lt;br /&gt;
        print(&amp;quot;Le fichier n'existe pas\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__=='__main__':&lt;br /&gt;
    main()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le diagramme de constellation témoigne de nouveau du type de modulation utilisé par le module XBee.&lt;br /&gt;
En effet, on observe quatre points de part et d'autre des axes de quadrature et d'inphase.&lt;br /&gt;
&lt;br /&gt;
==Semaine 11==&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé cette semaine d'étudier, ce qui est selon pour nous, l'une des pistes fondamentales de notre projet, et plus particulièrement de l'étude de nos signaux : le rapport signal bruit.&lt;br /&gt;
&lt;br /&gt;
L'objectif de cette semaine et de celle à venir était, à partir du signal acquis par le hackrf, d'effectuer le calcul du SNR (signal-to-noise ratio) tel que :&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;SNR =\frac{P_{signal}}{P_{bruit}}&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le script python qui nous a permis de communiquer entre les deux shields Xbee se verra amélioré afin de faire plusieurs acquisition des signaux lors de la communication entre les Xbee, effectuer une moyenne statistique, et de même lorsqu'il n'y a pas de communication.&lt;br /&gt;
&lt;br /&gt;
Nous avons essayé d'approcher le SNR directement depuis l'interface de GnuRadio par le biais de l'utilitaire graphique et le langage en bloc, néanmoins nous procéderons à l'étude de ce rapport avec Scilab ou Matlab.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaines supplémentaires==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Expérience : Variation de l'amplitude===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats &amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Conclusion sur l'expérience &amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
L'expérience n'a pas été fructueuse. Même si elle nous a permis de voir quelques différences (probablement provoquées pas des erreurs de capture et d'analyse), le HackRF nous limite beaucoup sur ce point de vue là. En effet, la fréquence d'échantillonage étant limitée à 20MHz, le HackRF n'est pas suffisamment précis pour capturer un nombre d'échantillons nous permettant de confirmer une quelconque hypothèse. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Code python utilisé pour l'étude du signal&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
def etudeAmplitude(name, liste_temps):&lt;br /&gt;
&lt;br /&gt;
    threshold_0=0.05 # Threshold&lt;br /&gt;
    threshold_1=0.4&lt;br /&gt;
    max_transition_time=50 #O&lt;br /&gt;
&lt;br /&gt;
    amppha=scipy.fromfile(open(name+&amp;quot;_PhaseMeg&amp;quot;), dtype=scipy.complex64) &lt;br /&gt;
&lt;br /&gt;
    p=1&lt;br /&gt;
    size=amppha.__len__()&lt;br /&gt;
    &lt;br /&gt;
    debut=1&lt;br /&gt;
    tps_variation=0 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    transition=False # Vérifie si le signal est en transition ou stable&lt;br /&gt;
&lt;br /&gt;
    for val in range(debut,size):&lt;br /&gt;
        if(val&amp;gt;=((size-debut)/100)*p):&lt;br /&gt;
            print(str(p)+&amp;quot; %&amp;quot;)&lt;br /&gt;
            p=p+1&lt;br /&gt;
&lt;br /&gt;
        if(amppha[val].real&amp;gt;threshold_0 and amppha[val].real&amp;lt;threshold_1): # Phase de transition du signal&lt;br /&gt;
            if(transition==False):&lt;br /&gt;
                transition=True&lt;br /&gt;
            tps_variation=tps_variation+1&lt;br /&gt;
&lt;br /&gt;
        elif(transition==True and amppha[val].real&amp;gt;threshold_1):&lt;br /&gt;
            if(amppha[val].real&amp;gt;=amppha[val-1].real-amppha[val-1].real*0.05 and amppha[val].real&amp;lt;=amppha[val-1].real+amppha[val-1].real*0.05): # L'amplitude du signal est stable&lt;br /&gt;
                if(tps_variation &amp;lt; max_transition_time):&lt;br /&gt;
                    liste_temps.append(tps_variation)&lt;br /&gt;
&lt;br /&gt;
                transition=False&lt;br /&gt;
                tps_variation=0&lt;br /&gt;
            else:&lt;br /&gt;
                tps_variation=tps_variation+1&lt;br /&gt;
        else:&lt;br /&gt;
            transition=False&lt;br /&gt;
            tps_variation=0&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Expérience : Temps de calcul du FCS entre le XBee1 et et le XBee2===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 1&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 et XBee2 sont alimentés sur 5V VCC par USB (connecté à l'ordinateur)&amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 et XBee2 disposent du firmware : 10EF &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 est d'abord emetteur et le XBee2 est recepteur puis inversement. Aucun paquet ACK n'est renvoyé de la part du recepteur &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On transmet la chaine de caractère HELLO 256 fois toutes les 1 secs&lt;br /&gt;
Les données étant assez conséquentes, le Xbee transmet plusieurs fragments du paquet.&lt;br /&gt;
L'objectif de cette expérience est d'étudier le temps entre chaque fragment d'un paquet.&lt;br /&gt;
L’espace de temps entre chacun des paquets permet de calculer le FCS (frame check sequence) afin de minimiser les erreurs de transmission.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:ChecksumGraphe.png|thumb|left|redresse=2|Les différents temps à mesurer]]  &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Néanmoins, l’étude de ces “temps morts” se voit entravé par le fait que le module HackRF ne permette pas d’obtenir un signal clair sur plus de 5 secondes.&lt;br /&gt;
En outre, pour 5 secondes d’étude et pour une fréquence d’échantillonage de 20MHz (soit un temps Te=5.10e8), on compte 100.000.000 d’échantillons.&lt;br /&gt;
Le CPU lors de la capture était grandement sollicité, ce qui explique le fait que la capture soit compromise.&lt;br /&gt;
Pour régler ce problème, on a écrit un script shell de capture.&lt;br /&gt;
Ce script consiste à:&lt;br /&gt;
&amp;lt;br&amp;gt;- effectuer une capture d’une durée de 1 sec&lt;br /&gt;
&amp;lt;br&amp;gt;- d’enregistrer la capture&lt;br /&gt;
&amp;lt;br&amp;gt;- d’effectuer un traitement de ces paquets par un algorithme python en étudiant le temps entre chacun des fragments. Ce temps sera obtenu en nombre d’échantillons, défini avec un seuil d’acceptation absolu entre 150.000 et 300.000 échantillons (pour bien capturer ces temps intermédiaires et pas les temps provoqués par des signaux parasites ou du bruit), et pour affiner l’étude, on impose un seuil d’erreur de +-10% autour de la moyenne. La moyenne est calculée en continue&lt;br /&gt;
&amp;lt;br&amp;gt;- l’ensemble des valeurs obtenues sont enregistrées dans un fichier&lt;br /&gt;
&amp;lt;br&amp;gt;- on réeffectue la capture …&lt;br /&gt;
&lt;br /&gt;
On répète le processus un certains nombre de fois afin d’obtenir un nombre de valeurs nous permettant de nous conforter sur l'issue de l'expérience (environ 1000 valeurs)&lt;br /&gt;
&lt;br /&gt;
La capture et l'étude de chacun des modules dure une à deux heures.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats :&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans le cas du XBee1 (à gauche) et du XBee2 (à droite), voici les résultats obtenus :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Xbee1Graphe256.png|thumb|left|redresse=2|On peut observer des pics caractéristiques à l'envoi]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBee2Graphe256.png|thumb|left|redresse=2|Les mêmes pics caractéristiques confirment un comportement non-aléatoires du module]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
XBee1 : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 259675,81&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 8369.7417&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 70052576.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
XBee2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 258762.58&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 9165.4097&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 84004736.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les graphes présentent le nombre de répétitions des temps de calcul de fragements.&lt;br /&gt;
&lt;br /&gt;
On peut voir des pics spécifiques à certains points dans les deux expériences. Ces pics sont caractéristiques et au module XBee, et à la chaîne de caractère HELLO. Les deux expériences étant effectuées dans le même contexte, &lt;br /&gt;
&lt;br /&gt;
De même que pour le second Xbee, on retrouve des pics bien distincts à certains points.&lt;br /&gt;
&lt;br /&gt;
En outre, on peut voir que ces pics bien distincts se rapprochent de ceux du premier Xbee.&lt;br /&gt;
Néanmoins, même si la moyenne varie que très peu par rapport aux deux Xbee, la variance est assez différente.&lt;br /&gt;
&lt;br /&gt;
Pour confirmer ces observations, il est peut être nécessaire de répéter la même expérimentation sur un nombre d'échantillons plus grand.&lt;br /&gt;
&lt;br /&gt;
Ainsi, afin de confirmer la conjecture, on décide de faire d’autres captures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En superposant les deux graphes (Xbee1 en rouge et Xbee2 en bleu), on peut voir qu'il y a moins de dispersion dans le cas du XBee1, plus centré sur des valeurs précises, contrairement au Xbee2.&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBee1Xbee2Graphe.png|thumb|left|redresse=2]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour les deux nouveaux échantillons, on a les caractéristiques suivantes :&lt;br /&gt;
&amp;lt;U&amp;gt;Xbee1 sur 1688 échantillons&amp;lt;/U&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 260230.3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 8427.3923&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 71020941&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Xbee2 sur 1722 échantillons&amp;lt;/U&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 259899.41&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 9831.5106&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 96658601&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:SignalAT328.png|thumb|right|Signal observé dans le cas de l'ATMega328p]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 2&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 est connecté à un Arduino ATMega328p par le biais d'un shield Libelium &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 dispose du firmware 10EF &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; On envoie exactement les mêmes données que précédemment, la chaîne de caractères HELLO*256 toutes les 0.5s &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hormis l'amplitude du signal qui paraît plus faible lors de la transmission par ATMega328p, le message transmis ne change PAS. Même si nous avons fait en sorte que la periode de transmission soit la même que pour l'expérience précédente, elle n'affecte en rien l'issue de l'expérience car c'est le temps de division de paquet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:ATMega328.png|thumb|650px|Observation du temps de division d'un paquet dans le cas de l'ATMega328p]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:ATMega2560.png|thumb|650px|Observation du temps de division d'un paquet dans le cas de l'ATMega2560]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour les nouveaux échantillons, on a les caractéristiques suivantes :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Xbee1 sur ATMega328p sur 706 échantillons&amp;lt;/U&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 265818.58&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 4748.5965&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 22549168&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Xbee1 sur ATMega2560 sur 711 échantillons&amp;lt;/U&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 262877.83&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 3675.037&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 13505897&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut observer une distinction significative entre une transmission effectuée directement par la machine et la transmission depuis les modules composés d'un ATMega328p ou d'un ATMega2560. En effet, on n'observe pas les mêmes pics caractéristiques dans cette expérience comparé à l'expérience précédente. Même si la moyenne est quasi la même, l'ecart type est plus faible, ainsi que la variance. En outre, de même que pour l'expérience précédente, l'écart-type entre ATMega328p et ATMega2560 est aussi différent. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 3&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 est dans les mêmes conditions que durant la première expérience &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; On change le firmware du XBee1 pour le 10ED &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Conclusion de l'expérience&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
L’hypothèse qui est que la variance des temps &amp;quot;morts&amp;quot; entre chaque fragments de paquet, soit le temps de calcul du FCS pour le signal émis peut être considéré comme “clé” de distinction d’un module Xbee n'est donc pas à négliger. &lt;br /&gt;
Le temps de calcul du FCS semble unique entre chaque paquet paraît une empreinte propre au matériel.&lt;br /&gt;
&lt;br /&gt;
On peut même considérer que cette étude peut distinguer un module Xbee d'un autre électromagnétiquement parlant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Code python utilisé pour l'étude du signal&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def etudeSubdivPaquet(name, inter_time_values):&lt;br /&gt;
&lt;br /&gt;
threshold = 0.30&lt;br /&gt;
ground = false&lt;br /&gt;
p=1&lt;br /&gt;
&lt;br /&gt;
## On converti chacun des nombres binaires en complexe 64 (deux flottants 32 bits)##&lt;br /&gt;
amppha=scipy.fromfile(open(name+&amp;quot;_PhaseMeg&amp;quot;), dtype=scipy.complex64) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
## On récupère la taille du tableau de complexes (taille du signal) ##&lt;br /&gt;
size=amppha.__len__()&lt;br /&gt;
&lt;br /&gt;
    debut=0&lt;br /&gt;
    inter_time=0&lt;br /&gt;
    min_limit=150000&lt;br /&gt;
    max_limit=350000&lt;br /&gt;
    accept_range=1./10. ## Permet de mettre un seuil d'intervalle d'acceptation&lt;br /&gt;
    signalFnd=False&lt;br /&gt;
&lt;br /&gt;
    for val in range(debut,size):&lt;br /&gt;
        if(val&amp;gt;=((size-debut)/100)*p):&lt;br /&gt;
            print(str(p)+&amp;quot; %&amp;quot;)&lt;br /&gt;
            p=p+1&lt;br /&gt;
&lt;br /&gt;
        if(amppha[val].real&amp;gt;threshold):&lt;br /&gt;
            if(ground==True):&lt;br /&gt;
                if(signalFnd==True):&lt;br /&gt;
                    if(len(inter_time_values)&amp;gt;0):&lt;br /&gt;
                        moy=moyenne(inter_time_values)&lt;br /&gt;
                        if(inter_time &amp;gt;= moy-accept_range*moy and inter_time &amp;lt;= moy+accept_range*moy):&lt;br /&gt;
                            print(&amp;quot;Yes &amp;quot;+str(inter_time))&lt;br /&gt;
                            inter_time_values.append(inter_time)&lt;br /&gt;
                        inter_time=0&lt;br /&gt;
                    elif(inter_time&amp;gt;=min_limit and inter_time&amp;lt;=max_limit):&lt;br /&gt;
                        inter_time_values.append(inter_time)&lt;br /&gt;
                else:&lt;br /&gt;
                    signalFnd=True&lt;br /&gt;
                ground=False&lt;br /&gt;
        else:&lt;br /&gt;
            ground=True&lt;br /&gt;
            if(signalFnd==True):&lt;br /&gt;
                inter_time=inter_time+1&lt;br /&gt;
&lt;br /&gt;
    if(len(inter_time_values)&amp;gt;0):&lt;br /&gt;
        print(&amp;quot;Moyenne &amp;quot;+ str(moyenne(inter_time_values)))&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Rencontre avec Etienne Helluy Lafont ===&lt;br /&gt;
&lt;br /&gt;
Bien que plusieurs pistes ont pu être explorées, notre manque d'expertise dans le domaine de la radio logicielle nous a fait défaut sur nos recherches. En effet, après avoir calculé le SNR d'un de nos signaux, nous nous sommes retrouvés avec des résultats assez incohérents. De nombreuses erreurs peuvent se glisser et nous avions besoin de conseils à ce sujet.&lt;br /&gt;
&lt;br /&gt;
Etienne Helluy-Lafont est un doctorant qui fait sa thèse sur les sondes pour la détection d’intrusions dans les architectures réseau hétérogènes et massivement distribuées. Il développe un outil permettant d'analyser le spectre environnant, de donner des informations sur les signaux émis sur certains canaux et même de démoduler ces signaux. Son programme en C est flexible puisqu'il est adapté pour beaucoup d'antennes (Une des librairies qu'il utilise est SoapySDR [https://github.com/pothosware/SoapySDR/] qui possède des &amp;quot;codec&amp;quot; dont un pour notre HackRF !). Nous nous sommes servi de son outil afin d'avoir de bien meilleurs résultats pour les expériences sur le SNR des Xbee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Expérience : Variation du Rapport Signal Bruit en fonction de la distance de reception ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:FFTSNR.png|thumb|left|redresse=2|Calcul du SNR par FFT]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Fenetre.png|thumb|left|redresse=2|Calcul du SNR par fenêtre glissante]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L'objectif de cette expérience était de visualiser comment le rapport signal bruit (ou SNR) varie en fonction de la distance. &lt;br /&gt;
En effet, nous avions mis en suspens l'expérience qui consistait en la capture du SNR dû aux valeurs instables que l'on avait. &lt;br /&gt;
&lt;br /&gt;
La première idée était de faire une FFT du signal et de calculer le rapport en prenant la moyenne de sa puissance sur une bande de 2.4MHz (1.2Mhz de part et d'autre de la fréquence de capture du HackRF).&lt;br /&gt;
&lt;br /&gt;
Néanmoins, les caractéristiques du XBee (du point de vue de l'étalement spectral) rend le calcul du SNR imprécis. A la suite de la capture de signaux et de l'étude de ces mêmes signaux, les valeurs nous paraissaient incohérentes. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:SNRcalc.png|thumb|left|470px|Pics de SNR]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons donc procédé à une seconde méthode de calcul qui consiste à utiliser une fenêtre glissante de taille 2^k échantillons. &lt;br /&gt;
Pour chaque échantillon du signal, on calculait le SNR tel que :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;SNR =\frac{P_{signal+bruit}}{P_{bruit}}=\frac{|A_{signal+bruit}|^2}{|A_{bruit}|^2}&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans notre cas, on a :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;SNR_x =20.log \frac{Moyenne(W_x[2^{k-1}:2^k])}{Moyenne(W_x[0:2^{k-1}-1])}&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
W_x étant la fenêtre à l'échantillon x du signal, le rapport signal bruit est obtenu lorsqu'on a un pic.&lt;br /&gt;
La fenêtre choisie doit être suffisamment grande pour avoir une précision optimale.&lt;br /&gt;
On impose ainsi un threshold pour éviter des erreurs pouvant influencer les résultats de manière considérable.&lt;br /&gt;
Ainsi, on obtient les valeurs SNR cherchées.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous voulons donc vérifier si la mesure du SNR est une expérience pertinente pour l'identification du matériel. Nous allons prendre plusieurs XBee et mesurer le SNR à différentes distances de l'antenne SDR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 1&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 et XBee2 sont alimentés sur 3.3V VCC par USB (connecté à l'ordinateur)&amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 et XBee2  sont des modèles série s1&amp;lt;/I&amp;gt; disposent du firmware : 10EF&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee3 et XBee4 sont des modèles XBeePro &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Par défaut tous nos xbee disposent du même firmware (10EF), sauf si précisé que non &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Nous cherchons à observer la différence entre le XBee1 et XBee2 dans la même situation. &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Durant les expériences, le montage XBee1 connecté en USB sera le XBee témoin. &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PointsMoyenneXBee1Dist.png|thumb|left|470px|Les différentes valeurs du SNR acquises en fonction de la distance pour le XBee1]]&lt;br /&gt;
&lt;br /&gt;
Dans notre cas, le modèle XBee1 connecté en série à notre machine nous a servi de composant témoin afin d'étudier les signaux des autres modèles. En effet, suite à la capture et l'étude des signaux, on peut voir que le nuage de points qui constitue notre graphe témoigne d'un phénomène électromagnétique ondulatoire quant au champ. Avec la distance, plus l'on éloigne le module, plus le rapport signal sur bruit diminue (le contraire nous aurait étonné). En outre, la variation ondulatoire peut être caractérisée par le champs éléctrique.&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé de refaire cette expérience avec les trois autres XBee directement connectés à notre machine.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ALLXBEE comparaison SNR distance.png|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
De part les potentielles erreurs et les différentes perturbations électromagnétiques ambiantes, la valeur du SNR peut être affectée. Il n'est pas possible directement par les caractéristiques du rapport signal bruit d'effectuer le distinguo entre le XBee1 et le XBee2 (contrairement à l'expérience basée sur la subdivision de paquets). Cependant, les XBee3 et XBee4 présentent une caractéristique commune. Le SNR est beaucoup plus élevé. &lt;br /&gt;
&lt;br /&gt;
En effet, le pic de courant d'un XBee est de 45mA à la transmission pour une alimentation de 3.3V en tension continu, tandis qu'un module XBee pro, le pic de courant atteint les 150mA. Cette différence électronique permet ainsi au XBee pro de communiquer sur une plus grande zone (750m contre 90m pour un XBee simple).&lt;br /&gt;
&lt;br /&gt;
Ainsi, on peut conclure de cette expérience que le SNR est un élément témoin de la consommation énergétique d'un composant électrique (du moins de l'antenne).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:XBEE1 hardware comparaison SNR distance.png|thumb|400px|right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 2&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 est d'abord connecté à un Arduino UNO 328P par le biais d'un shield XBee Libelium puis est connecté à un Arduino Mega 2560 par le biais du même shield &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 dispose du firmware : 10EF &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
On peut observer que même si l'unité de contrôle n'est pas l'ordinateur mais le micro-contrôleur (ici ATMega2560 et ATMega328P), le rapport signal bruit ne change pas réellement. Néanmoins, il était pour nous intéressant de noter qu'un léger gap se créé à 30 et 40 cm de la SDR entre la communication USB et la communication avec les micro-contrôleurs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:XBEE3 hardware comparaison SNR distance.png|thumb|400px|right]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 3&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; L'expérience est similaire que pour le module XBee1 mais avec le XBee3 (pro) &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee3 est d'abord connecté à un Arduino UNO 328P par le biais d'un shield XBee Libelium puis est connecté à un Arduino Mega 2560 par le biais du même shield &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee3 dispose du firmware : 10EF &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
En outre, les résultats obtenus lors de l'expérience avec le XBee3 nous indique que le phénomène ondulatoire observé durant les tests précédents est moins souligné dans la communication avec les micro-contrôleur (toujours à 30 et 40cm) et celà après plusieurs tests.&lt;br /&gt;
&lt;br /&gt;
Des tests plus précis auraient été plusieurs avantageux et nous auraient permis de trancher sur la décision de l'importance du SNR concernant la différenciation de différentes unités de contrôle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:XBEE1 firmware comparaison SNR distance.png|thumb|400px|right]]&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 4&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 ici est connecté en série et dispose dans un premier temps du firmware 10EF (le firmware le plus récent) &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Après capture et expérimentation, on décide de réeffectuer la même chose avec le même XBee (XBee1) avec le firmware 10ED &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
Les acquisitions étant faites dans les mêmes conditions, il semblerait que le changement de firmware ait un petit impact sur la puissance d’émission : Cette petite différence de décibel ne semble pas aléatoire puisqu’on peut clairement voir que la courbe orange reste toujours inférieure à la courbe bleue, or le niveau de bruit est resté inchangé. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Conclusion de l'expérience&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
===Expérience : Variation du Rapport Signal Bruit en fonction du canal de fréquence===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ALLXBEE comparaison SNR freq.png|thumb|400px|left]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:XBEE1 hardware comparaison SNR freq.png|thumb|400px|right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:XBEE3 hardware comparaison SNR freq.png|thumb|400px|right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Code python utilisé pour l'étude du signal&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def SNRStudy(name):&lt;br /&gt;
    tmp=scipy.fromfile(open(name+&amp;quot;_PhaseMeg&amp;quot;), dtype=scipy.complex64)&lt;br /&gt;
&lt;br /&gt;
    f = open(name+&amp;quot;_SNR_Values&amp;quot;,&amp;quot;a&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    p=1&lt;br /&gt;
    size = tmp.__len__()&lt;br /&gt;
    magnitude = (numpy.real(tmp)).tolist()&lt;br /&gt;
&lt;br /&gt;
    threshold=10&lt;br /&gt;
&lt;br /&gt;
    P=0&lt;br /&gt;
    SNR_graph=[]&lt;br /&gt;
    SNR=[]&lt;br /&gt;
&lt;br /&gt;
    win_sz=64&lt;br /&gt;
&lt;br /&gt;
    if(size&amp;gt;=win_sz):&lt;br /&gt;
        for val in range(0,size-win_sz):&lt;br /&gt;
&lt;br /&gt;
            if(val&amp;gt;=((size-win_sz)/100)*p): # Affiche l'état de l'étude&lt;br /&gt;
                print(str(p)+&amp;quot; %&amp;quot;)&lt;br /&gt;
                p=p+1&lt;br /&gt;
&lt;br /&gt;
            SNR_graph.append( 20*math.log((numpy.mean(magnitude[val + win_sz/2 : val + win_sz-1]))/(numpy.mean(magnitude[val+0 : val+win_sz/2-1])), 10) )&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
    size=len(SNR_graph)&lt;br /&gt;
&lt;br /&gt;
    for i in range(1, size-1):&lt;br /&gt;
        if (SNR_graph[i]&amp;gt;SNR_graph[i-1] and SNR_graph[i]&amp;gt;SNR_graph[i+1] and SNR_graph[i]&amp;gt;threshold):&lt;br /&gt;
            SNR.append(SNR_graph[i])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    tmp=numpy.asarray(SNR)&lt;br /&gt;
    tmp.tofile(f)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    try:&lt;br /&gt;
        SNRStudy(sys.argv[1])&lt;br /&gt;
    #except IndexError:&lt;br /&gt;
        #print(&amp;quot;Donnez le nom du fichier\n&amp;quot;)&lt;br /&gt;
    except IOError:&lt;br /&gt;
        print(&amp;quot;Le fichier n'existe pas\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'archive des scripts python : &lt;br /&gt;
&lt;br /&gt;
[archive.zip]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le rapport&lt;br /&gt;
&lt;br /&gt;
[Rapport.pdf]&lt;/div&gt;</summary>
		<author><name>Amoreau</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=75672</id>
		<title>IMA4 2018/2019 P70</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=75672"/>
				<updated>2019-05-09T11:20:12Z</updated>
		
		<summary type="html">&lt;p&gt;Amoreau : /* Expérience : Variation du Rapport Signal Bruit en fonction de la distance de reception */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;font-size: 30px; width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;Impact du matériel et du logiciel sur le champ électromagnétique&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Projet'''&amp;lt;/ins&amp;gt; : Impact du matériel et du logiciel sur le rayonnement électromagnétique&lt;br /&gt;
&lt;br /&gt;
''Nous proposons d'évaluer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et la consommation électrique.''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Etudiants'''&amp;lt;/ins&amp;gt; : Souheib KHINACHE et Antoine MOREAU&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Encadrants'''&amp;lt;/ins&amp;gt; : Alexandre BOE, Xavier REDON et Thomas VANTROYS&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'internet des objets est un marché en plein essor. La communication entre les différents objets connectés crée un nuage de signaux autour d'eux. Ces derniers sont vus par les utilisateurs comme des boîtes noires : le fonctionnement se fait sans en connaître les composants matériels et logiciels. &lt;br /&gt;
Néanmoins, ces objets, de par leurs propriétés électroniques, créent des fuites électromagnétiques impactant le champ environnant. &lt;br /&gt;
&lt;br /&gt;
Bien qu'ils peuvent porter à débat sur l'impact sur la santé, ces signaux peuvent représenter de réelles sources d'informations sur l'aspect matériel et applicatif de l'objet.&lt;br /&gt;
&lt;br /&gt;
Il serait donc intéressant d'avoir idée générale sur le fonctionnement du système en interprétant les ondes électromagnétiques émises par ce système.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Les principaux objectifs de ce projet seront donc de mesurer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et sur la consommation électrique.&lt;br /&gt;
Pour cela, l'outil potentiel avec lequel nous pourrions travailler serait une sonde de champ électromagnétique afin d'établir des mesures. &lt;br /&gt;
Cependant, nous pourrions concevoir notre propre système de capture et d'interprétation à partir d'une antenne, de filtres de fréquences et d'un microcontrôleur (on commencera par un ATMega328P). Il sera nécessaire de prendre en compte les perturbations issues de notre appareil de mesure et d'en tenir compte.&lt;br /&gt;
&lt;br /&gt;
On effectuera ainsi plusieurs expérimentations sur différents supports d'étude :&lt;br /&gt;
*l'aspect &amp;quot;Hardware&amp;quot; en étudiant différents modèles pour un même type de shield  &lt;br /&gt;
*l'aspect calculatoire du matériel en se basant sur l'impact des microcontrôleurs en fonction du modèle (ATMega328P et ATMega2560)&lt;br /&gt;
*l'aspect &amp;quot;Software&amp;quot;, en étudiant l'impact du logiciel et du firmware d'un même composant (différents firmwares pour un même shield Wi-Fi)&lt;br /&gt;
*l'aspect puissance des composants électroniques de gestion de puissance (ponts, hacheurs, onduleurs...).&lt;br /&gt;
&lt;br /&gt;
L'étude des différentes informations se fera par traitement des signaux électromagnétiques et des spectres. &lt;br /&gt;
Afin de mieux appréhender le problème, il nous est nécessaire de comprendre les phénomènes physiques issus de la notion d'électromagnétisme.&lt;br /&gt;
&lt;br /&gt;
Ces études mèneront à une étape plus complexe : l'interprétation des signaux. En effet, l'un des objectifs de ce projet est de comprendre du mieux possible le fonctionnement d'un système sans y avoir accès directement, et donc dans ce contexte &amp;quot;traduire&amp;quot; un ensemble de signaux électromagnétiques.&lt;br /&gt;
&lt;br /&gt;
On pourra en outre apporter un aspect visuel à l'étude en rajoutant une interface informatique.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
Bien qu'aux yeux de nombreuses personnes le bruit électromagnétique créé par les équipements électroniques du quotidien peut porter à controverse (débats concernant l'impact sur la santé par exemple), il peut être une source d'informations. &lt;br /&gt;
De nos jours, les ondes électromagnétiques restent un vaste champ d'étude, sujettes à de nombreuses thèses et recherches au sein des laboratoires.&lt;br /&gt;
&lt;br /&gt;
On peut prendre l'exemple de [https://www.eurekalert.org/pub_releases/2015-01/giot-rwt010715.php Milos Prvulovic], professeur à l'Institut Technologique de Géorgie, ayant simulé un contexte de cybercafé, dans lequel il place une antenne magnétique, un ordinateur portable cible et un ordinateur &amp;quot;espion&amp;quot;. Il réussit, grâce aux signaux EM émis par l'impulsion de l'appui des touches clavier à capter un message écrit par un ordinateur cible. &lt;br /&gt;
&lt;br /&gt;
Néanmoins, dans le quotidien, l'utilisation des sondes électromagnétiques se fait pour l'étude énergétique d'un système électronique (fuites électromagnétiques anormales, preuves d'une anomalie...) afin de respecter certaines normes législatives. Le code du travail par exemple réglemente et définit des valeurs seuils par le biais des articles R. 4453-3 et R. 4453-4.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
'''NBM-520 de NARDA STS'''&lt;br /&gt;
[[Fichier: NBM_TS.png|thumb|300px|NBM-TS, application des appareils NBM]]&lt;br /&gt;
NARDA STS est une entreprise qui fournit des outils de mesure. Elle met à disposition aux professionnels des sondes électromagnétiques.&lt;br /&gt;
La NBM-520 est un appareil de la franchise, mesurant le champ électrique et magnétique. Elle donne des valeurs précises du champ électromagnétique ambiant sur une large bande. Elle propose différentes sondes modulables permettant une souplesse au niveau de l'étude en fonction des besoins, avec des sondes pouvant étudier des signaux de fréquence de 100kHz à 6GHz ou même de 300kHz à 50GHz (en fonction de la sonde choisie).&lt;br /&gt;
&lt;br /&gt;
En outre, le dispositif peut se connecter en USB sur PC afin d'envoyer les données capturées et d'en faire une étude. Le dispositif propose un logiciel d'étude, NBM-TS, permettant d'observer du champ en fonction du temps, de la fréquence, de la position...&lt;br /&gt;
&lt;br /&gt;
L'équipement est utilisé par l'ANF (l'Agence Nationale des Fréquences, agence gérant l'ensemble des normes autour des radiofréquences), et est donc un gage de qualité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Avantages :''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Large bande de fréquence&lt;br /&gt;
* Matériel solide&lt;br /&gt;
* Application fonctionnelle permettant l'étude et gestion des données&lt;br /&gt;
* Possibilité d'étudier séparément champ électrique et magnétique&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Inconvénients:''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Impossible d'étudier les basses fréquences (appareils sous tension, bobinages...)&lt;br /&gt;
* Prix élevé : à partir de 3100€&lt;br /&gt;
* La cible de ce produit est surtout les professionels&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
'''Une pita.'''&lt;br /&gt;
&lt;br /&gt;
''Comment mon pain à pita vole ta clé RSA ?''&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Pita.jpg|200px|thumb|left|Une pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Des chercheurs israéliens ont découvert un moyen de capturer des clés de cryptage RSA, réputées comme inviolables, par le biais d'une pita... du moins avec un dispositif suffisamment petit pour être caché dans un pain à pita. &lt;br /&gt;
Le dispositif, renommé PITA pour Portable Instrument for Trace Acquisition a la particularité de capturer les ondes radio électromagnétiques émanantes d'un PC, qu'il soit connecté à un réseau ou pas.&lt;br /&gt;
Les différentes opérations du processeur sont identifiées en distinguant les différents modèles de l'activité radio sur le spectre EM.&lt;br /&gt;
&lt;br /&gt;
Bien que la capture des clés RSA a été faite dans des conditions particulières (modification du processeur de l'ordinateur cible), il est néanmoins possible, selon les chercheurs, d'identifier quelle type d'activité est exercée par l'ordinateur ainsi que son état.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PITA.jpg|300px|thumb|right|Un dessous de pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'un des points importants concernant le dispositif est son coût : moins de 300 euros.&lt;br /&gt;
L'appareil dispose :&lt;br /&gt;
* d'un PC portatif (PC-on-a-stick) ''Rikomagic MK802 IV'',&lt;br /&gt;
* d'un recepteur radio SDR ''FUNcube Dongle Pro+''&lt;br /&gt;
* d'une antenne radio&lt;br /&gt;
* d'une batterie&lt;br /&gt;
* d'une antenne WiFi&lt;br /&gt;
* d'une carte MicroSD&lt;br /&gt;
* d'un adapteur d'antenne&lt;br /&gt;
* et d'une '''pita'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le dispositif aurait une portée de 50cm. &lt;br /&gt;
Les chercheurs israéliens ont collaboré avec GNU Private Guard (logiciel de cryptage asymétrique) afin de protéger contre ces attaques les clés de cryptage.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
&lt;br /&gt;
''Scénario 1''&lt;br /&gt;
&lt;br /&gt;
Gérard a toujours le flair pour les bonnes affaires. Il a acheté une centaine de clés WiFi à un prix dérisoire sur AloXpresso afin de faire du profit à la revente. Le vendeur lui garantit que toutes les clés fonctionnent correctement. Gérard veut vérifier. Après vérification, 99 des clés sur 100 fonctionnent comme prévu. Gérard aimerait être sûr du disfonctionnement, mais Gérard n'est pas une pointure en informatique. &lt;br /&gt;
&lt;br /&gt;
Coup de génie ! Il se rappelle qu'il dispose d'un dispositif qui capte les ondes EM et les interprète directement. C'est le moment de tester ça. Il remarque une anomalie sur le spectre.&lt;br /&gt;
Il décide de contacter le revendeur pour lui signaler un disfonctionnement sur l'une des clé. &lt;br /&gt;
Pas de soucis. Le vendeur, étant bon prince, lui envoie une autre clé USB et lui fait une ristourne.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Scénario 2''&lt;br /&gt;
&lt;br /&gt;
La police fait une perquisition chez un individu soupçonné de graves délits. Cela fait plusieurs mois que la brigade criminelle prépare l'intervention, et une fois sur les lieux ils arrêtent le soupçonné malfaiteur.&lt;br /&gt;
Cependant avant de repartir, elle veut faire l'acquisition d'un maximum de preuves. Elle veut alors prendre l'essentiel des objets, dont certains objets éléctroniques connectés de l'individu dont elle pourra extraire les informations qui serviront à le faire tomber.&lt;br /&gt;
&lt;br /&gt;
Par chance, elle dispose d'un petit outil qui scannera les signatures alentours des objets connectés, comme des téléphones cachés, clés USB wifi dissimulées dans le décor etc..&lt;br /&gt;
Et si le suspect avait modifié malignement un objet connecté banal pour l'utiliser autrement à ses fins, la police le découvrirait car elle possède une base de données de toutes les signatures spectrales des objets connectés sur le marché et celle de l'objet modifié ne collerait pas avec celle de la base de données.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
&lt;br /&gt;
'''Comment étudier les signaux malgré les perturbations électromagnétiques ambiants et les faibles signaux des µC ?'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les signaux électromagnétiques des microcontrôleurs ou d'autres composants peuvent être faibles. Il y a une possibilité pour palier à ce problème, c'est de capter les signaux depuis une antenne émettrice que l'on rajoute à l'objet d'étude. &lt;br /&gt;
Nous utiliserons un SDR (Software Defined-Radio) afin de capter les ondes radio et les étudier directement sur PC. Le filtrage s'effectuera ainsi de manière numérique. Plusieurs tests seront effectués pour le même objet à étudier (quand on parle d'objet, on évoque un ensemble de plusieurs composants, comme par exemple une alimentation, un micro-contrôleur et une antenne). Ainsi, de manière statistique, nous pourrons en déduire un pattern récurrent pour chaque expérience en les effectuant dans différents environnements (pourquoi pas une chambre anachoïque). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons &lt;br /&gt;
* Capter le signal émis par un objet connecté le plus précisément possible&lt;br /&gt;
&lt;br /&gt;
* Concevoir nos propres objets connectés tous différents mais basés sur un même modèle&lt;br /&gt;
&lt;br /&gt;
* Interpréter les spectrogrammes, faire une étude statistique des signaux émis par nos différents objets et en tirer des conclusions&lt;br /&gt;
&lt;br /&gt;
* Répertorier dans une base de données les signatures de nos objets , voire de quelques objets disponibles sur le marché&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix logiciel :&lt;br /&gt;
&lt;br /&gt;
- La distribution Linux Pentoo ou Kali pour traiter les signaux avec GNU RADIO (Suite logicielle dédiée à l’implémentation de radios logicielles et de systèmes de traitement du signal).&lt;br /&gt;
&lt;br /&gt;
- FemtoOS pour l'OS des ATMEGA328P et ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix Matériel : &lt;br /&gt;
&lt;br /&gt;
- Plusieurs modules radios émetteurs &lt;br /&gt;
&lt;br /&gt;
- Plusieurs microcontrôleurs ATMEGA328P et un ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
- Des alimentations identiques pour chaque PCB&lt;br /&gt;
&lt;br /&gt;
- Un HackRF pour la réception des signaux&lt;br /&gt;
&lt;br /&gt;
- Une antenne 50 Ohm pour le HackRF [https://www.passion-radio.fr/accessoires-sdr/antenne-ant500-74.html]&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous devons préparer tout le matériel qui servira à faire nos tests. C'est à dire concevoir :&lt;br /&gt;
&lt;br /&gt;
- Un ensemble SDR/PC qui traitera le signal reçu avec GNU RADIO.&lt;br /&gt;
&lt;br /&gt;
- Une multitude de PCB qui seront utilisés comme objets connectés (Sur chacun d'entre eux on trouvera au minimum une antenne radio, un microcontrôleur et une alimentation)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de récupérer une &amp;quot;signature&amp;quot; d'un de nos objets , il faudra faire plus de 50 analyses spectrales pour conclure statistiquement sur une bonne signature qui caractérisera l'objet.&lt;br /&gt;
&lt;br /&gt;
Nous devons donc dans un second temps: &lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques mais qui ont un '''firmware''' différent.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques qui ont pour seule différence le '''microcontrôleur'''.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques dont seul le '''PCB''' diffère.&lt;br /&gt;
&lt;br /&gt;
Grâce à tous ces tests , nous pourrons conclure et voir l'impact qu'à le matériel ou le logiciel sur la signature d'un objet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enfin si les délais nous le permettent, nous pourrons réaliser un software qui cartographiera nos objets connectés dans la pièce grâce à la puissance de la signature reçue (Ce qui devrait être réalisable puisqu'à ce stade nous aurons une base de donnée des signatures).&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
|3&lt;br /&gt;
|8&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Recherches&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|6&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Prise en main de GnuRadio&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Configuration Xbee&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Expériences&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|5&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|4&lt;br /&gt;
|15&lt;br /&gt;
|9&lt;br /&gt;
|8&lt;br /&gt;
|7&lt;br /&gt;
|8&lt;br /&gt;
|8&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
[[Fichier:HackrfOne.jpeg|200px|thumb|right|Le HackRF One]]&lt;br /&gt;
Durant cette semaine, nous avons continué nos recherches notamment sur le moyen de transmission de nos objets connectés. Nous avons confirmé notre choix de notre SDR : Monsieur Boé nous a confirmé que des HackRF seraient disponibles dans les laboratoires et qu'il pourrait nous en prêter un. On disposera donc d'une antenne puissante pour traiter les signaux émis par nos objets communiquants. &lt;br /&gt;
&lt;br /&gt;
Il faudra coupler notre HackRF avec un logiciel appelé GNU RADIO qui est un logiciel très complet ( Pour information : la NASA a utilisé GNU RADIO afin de rétablir le contact avec une sonde spatiale abandonnée ). Afin de faire tourner ce logiciel libre, nous aurons besoin de la distribution Kali Linux, ex Backtrack.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Choix des émetteurs/récepteurs === &lt;br /&gt;
&lt;br /&gt;
Nous avons décidé que nos objets connectés communiqueront dans deux '''bandes de fréquences ISM''', l'une à '''900 MHz''' grâce à des modules Digi Xbee et l'autre à '''2,4 GHz''' par le moyen de modules émetteurs Bluetooth. On rappellera que les Digi Xbee et les émetteurs/récepteurs Bluetooth seront pilotés par des ATMEGA 2560.&lt;br /&gt;
&lt;br /&gt;
Les Xbee ne communiqueront pas entre eux et émettront en continu les mêmes données car ils le peuvent, alors que les émetteurs/récepteurs Bluetooth devront s'échanger des données si on veut pouvoir observer un quelconque signal autour de la fréquence de leurs porteuses. &lt;br /&gt;
&lt;br /&gt;
On voudra observer premièrement, si avec deux objets dans les '''mêmes''' conditions (donc même µc et même émetteur), on peut ou non '''distinguer une différence'''. Ceci est fondamental pour la suite des expériences, puisque si les deux émettent à la même fréquence, on pourra faire varier plusieurs paramètres afin de trouver '''des clés''' (des signes) qui pourraient aider à l'identification du matériel.&lt;br /&gt;
&lt;br /&gt;
Ces clés représentent différents facteurs potentiels d'identification du signal (le rapport signal-bruit en fonction de la distance par exemple...).&lt;br /&gt;
&lt;br /&gt;
''On planifie alors pour la semaine suivante de réussir à faire émettre, en utilisant simplement des breadboards pour commencer, nos Xbee et modules BT et observer quelque chose grâce à notre SDR.''&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration des modules XBee ===&lt;br /&gt;
&lt;br /&gt;
Nous avons configuré deux XBee afin qu'ils puissent communiquer entre eux : &lt;br /&gt;
&lt;br /&gt;
Les modules XBee ont été montés sur des platines d'interface USB/série de manière à ce qu'on puisse les paramétrer via le programme de contrôle ''minicom''. &lt;br /&gt;
&lt;br /&gt;
Dans le doute, on supposera que les XBee communiquent à 9600 Baud. On exécute la commande suivante : &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;minicom -b 9600 -D /dev/ttyUSB0&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
On active l'echo local dans minicom, afin de pouvoir observer ce qui a été envoyé par liaison série au XBee ('''CTRL+A''' puis '''E''').&lt;br /&gt;
&lt;br /&gt;
Pour commencer le paramètrage il faut taper ''' +++ ''' rapidement. Le XBee nous répond OK, cela veut dire que nous sommes dans le mode configuration et que nous pouvons utiliser les commandes '''AT'''. (Redirection vers la liste des commandes AT XBee [https://cdn.sparkfun.com/assets/resources/2/9/22AT_Commands.pdf]).&lt;br /&gt;
&lt;br /&gt;
Comme nos XBee ont été utilisés auparavant, il a fallu les restaurer à l'état usine avec la commande '''ATRE'''.&lt;br /&gt;
&lt;br /&gt;
Si on souhaite que des XBee puissent s'envoyer des données il faut qu'ils soient sur le même canal (commande '''ATCH''') et aient le même PAN ID (commande '''ATID'''). Notre PAN ID sera '''BEE6''' et le canal sera celui par défaut '''C'''.&lt;br /&gt;
&lt;br /&gt;
Ensuite il faut leur donner une adresse de destination ('''ATDH''' &amp;amp; '''ATDL''') qui sera l'adresse broadcast, pour ce faire on entre &lt;br /&gt;
 ATDH=0000&lt;br /&gt;
 ATDL=FFFF&lt;br /&gt;
&lt;br /&gt;
Enfin '''ATMY''' représente l'ID du XBee, notre premier XBee aura comme ID 5000 et le second 5001.&lt;br /&gt;
&lt;br /&gt;
N'oublions pas de sauvegarder les paramètres avec '''ATWR'''.&lt;br /&gt;
&lt;br /&gt;
On vérifie que tout a bien été pris en compte :&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;&lt;br /&gt;
+++OK&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATID&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
BEE6&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
C&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
0&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDL&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
FFFF&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATMY&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
5000&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCN&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Puis on fait de même avec le deuxième XBee (ID 5001).&lt;br /&gt;
&lt;br /&gt;
Voilà, lorsque on envoie des caractères par liaison série sur 5000, la LED '''Tx''' de 5000 s'allume et la Led '''Rx''' de 5001 s'allume elle aussi. Cela signifie que l'envoi de donnée par onde radio s'effectue correctement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que les XBee émettent et reçoivent, on peut commencer les mesures avec notre SDR. Mais avant cela il va falloir bien se familiariser avec le logiciel GNU RADIO qui est assez difficile à prendre en main.&lt;br /&gt;
&lt;br /&gt;
=== Première prise en main du logiciel GNURADIO ===&lt;br /&gt;
&lt;br /&gt;
Installation de GNU radio avec les fonctions + drivers pour HackRF : &lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install gqrx-sdr gnuradio gr-osmosdr hackrf &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le bloc Osmocom Source sert de &amp;quot;passerelle&amp;quot; entre le logiciel et la SDR, il permet de transmettre les informations récupérées par le HackRF afin qu'on puisse les traiter avec d'autres bloc de fonctions.&lt;br /&gt;
&lt;br /&gt;
Si on veut pouvoir récuperer les données il faut passer l'argument ''hackrf=0'' dans la box périphérique du bloc Osmocom.&lt;br /&gt;
&lt;br /&gt;
Ci-dessous on peut voir le spectre environnant entre 2.44GHz et 2.460GHz grâce au bloc WX GUI FFT Sink.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ScreenGnuRadio.png|Interface de GNURadio]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous a permis d'effectuer notre première expérience. L'utilisation des deux Xbees nous a permis d'observer l'impact des Xbee sur le champ électromagéntique environnant.&lt;br /&gt;
&lt;br /&gt;
Si on analyse le spectre environnant grâce au module FFT de GNU Radio, lorsque les Xbee communiquent entre eux, on peut apercevoir un pic caractéristique propre.&lt;br /&gt;
En effet, lors de l'emission d'un message sur le port série, on a un pic qui se dégage du spectre d'amplitude -20dBm. Ce pic est caractéristique au canal de communication choisi et configuré sur le Xbee.&lt;br /&gt;
Néanmoins, le signal est perturbé par le bruit environnant. &lt;br /&gt;
L'expérience étant effectuée au sein de l'école, les signaux Wi-Fi perturberont l'étude.&lt;br /&gt;
Il faut noter que la norme IEEE 802.11 impose au Wi-Fi l'utilisation d'une bande passante s'étalant de 2.4 GHz à 2.5 GHz.&lt;br /&gt;
&lt;br /&gt;
La bande passante des modules Zigbee se décomposent en 16 canaux, allant de 2400 MHz à 2480 MHz par pas de 5 MHz.&lt;br /&gt;
&lt;br /&gt;
Le canal ici utilisé est le canal 13 (3ème canal) de fréquence 2415 MHz.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[Fichier:Channel135001.png|thumb|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Fichier:channel135000.png|thumb|none|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBeeCh13.png|Spectre de l'environnement autour du XBee|thumb|none|400 px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBeeCh13SND.png|Lors de l'envoi de données au XBee voisin|thumb|none|400 px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut observer un pic de puissance lors de l'envoi d'une donnée en série à la fréquence 2.415 GHz.&lt;br /&gt;
Il nous est maintenant nécessaire d'analyser de plus près les signaux et leurs fréquence centrale dans la bande perçue au dessus de -20dB.&lt;br /&gt;
&lt;br /&gt;
On réeffectuera une expérience en zone isolée des signaux parasites.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous avons principalement fait des recherches dans le but de mieux comprendre les signaux émis par le Xbee.&lt;br /&gt;
&lt;br /&gt;
En somme, nous étions confrontés à de nombreuses interrogations. Le fonctionnement du Xbee étant assez simple et la sécurité du protocole Zigbee étant moindre, y a t-il possibilité de démoduler le signal émis afin de développer nos études ?&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
[[Fichier:Switchchannel pyscript.PNG|upright=0.8|thumb|right|Script Python]]&lt;br /&gt;
&lt;br /&gt;
Après réflexion et consultation de nos encadrants, nous nous sommes rendu compte que la démodulation prévue lors de la semaine 4 n'aiderait pas à répondre à la problématique de notre sujet !  &lt;br /&gt;
&lt;br /&gt;
Afin de mieux visualiser les signaux des Xbee , on décide d'automatiser le processus d'envoi sur le port série des données vers le Xbee. C'est à dire concevoir un programme Python qui automatisera l'envoi de données et le changement de channel à intervalle de temps régulier (Changement toutes les 10 secondes). &lt;br /&gt;
&lt;br /&gt;
L'utilisation de Minicom '''n'était pas du tout la meilleure solution''' pour faire émettre les Xbee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Après quelques essais, on remarque que lorsque le Xbee émet sur le channel 13, il émet à environ 2,445GHz au lieu d'émettre à 2,415GHz soit une différence de 30MHz : Ceci n'est pas important, car ce que l'on souhaite remarquer c'est un éventuel décalage de la fréquence centrale entre deux Xbee différents. Si les deux Xbee n'ont pas la même frequence centrale on pourra conclure que la '''fréquence centrale''' de la porteuse du Xbee n'est pas '''une des clés''' permettant d''''identifier''' cet émetteur/récepteur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaines 6 et 7==&lt;br /&gt;
&lt;br /&gt;
Afin de mieux cerner le comportement électromagnétique des modules XBee, il nous est nécessaire de comprendre leur fonctionnement et le protocole Zigbee.&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous avons cherché à souligner le parallélisme entre étude fréquentielle par le spectre et étude temporelle du signal.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PlancheXPtest.jpg|thumb|right|Planche prototype]]&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous avons paramétré la fréquence centrale de capture du HackRF. En effet, bien que le HackRF dispose d'une large bande passante, afin de se focaliser sur la porteuse, il est indispensable de configurer le HackRF en conséquence.&lt;br /&gt;
En second lieu, pour éviter une variation du RSSI (Received Signal Strength Indication) et de la puissance du signal, nous devions mettre en place une prototype de &amp;quot;planche expérimentale&amp;quot; sur laquelle devaient être fixés nos différents modules (l'antenne de reception et les Xbees).&lt;br /&gt;
&lt;br /&gt;
La position des antennes les unes par rapport aux autres est fondamentale. Afin d'optimiser la reception, les antennes doivent être parallèles.&lt;br /&gt;
&lt;br /&gt;
Chaque Xbee est identifié par un chiffre (1 ou 2). En effet, l'attribution de ces chiffres sera définitive pour ne pas perturber la cohérence des expériences. &lt;br /&gt;
Leur position est aussi fondamentale. Ainsi, en fonction que le Xbee soit emetteur ou récepteur, il sera disposé différement sur la planche.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Expérience : Le XBee 1 émetteur directement connecté en série au PC===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:GrapheGNURadio01.png|thumb|left|150px|Schéma simple d'étude fréquentielle et temporelle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette expérience est la première mettant en place un contexte (un seul Xbee émetteur connecté en série au PC, le deuxième Xbee étant inactif) et nous permettra d'étudier le plus de cas possibles.&lt;br /&gt;
&lt;br /&gt;
Nous avons tout d'abord commencé par un graphe GNURadio simple permettant l'observation du spectre et du signal et la variation de la fréquence d'étude.&lt;br /&gt;
&lt;br /&gt;
Le script python a été réécrit afin que le XBee puisse émettre une chaîne de caractère &amp;quot;HELLO&amp;quot; * 1024. En effet, même si la fréquence de balayage du module HackRF peut être grandement augmentée, il faut éviter d'aller au dessous de 0.01s, finissant par consommer de manière considérable les ressources octroyées par le CPU le cas échéant.&lt;br /&gt;
Le fait d'augmenter la taille de la chaine de caractère permet de mieux synchroniser l'étude en temps réel avec la capture des données.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc émis les données sur le canal 20 (14 en hexadécimal), soit la fréquence centrale est à 2.450GHz selon la norme Zigbee. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Etude fréquentielle&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L'étude fréquentielle est similaire à celle réalisée auparavant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div center&amp;gt;&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[Fichier:Spectrefreq2.png|thumb|center|750px|Spectre fréquentiel au canal 14]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[Fichier:Spectrogram.png|thumb|center|250px|Spectrogramme]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on peut observer sur l'analyseur de spectre GNURadio que la fréquence centrale est située 2.450GHz.&lt;br /&gt;
&lt;br /&gt;
D'autre part, l'ensemble des fréquences qui dessinent le spectre s'étalent sur une large bande de fréquence. En effet, cette technique d'étalement appelée DSSS (Direct-Sequence Spread Spectrum) utilisé par les modules XBee permet au signal d'être moins sensible aux interférences et aux brouillages. En outre, même si la puissance du spectre dans sa globalité reste la même, la densité spectrale elle diminue considérablement, rendant le signal plus &amp;quot;discret&amp;quot;.&lt;br /&gt;
La différence de puissance entre le lobe principal et les premiers lobes secondaires sont de 30 dB, ce qui est aussi commun au DSSS.&lt;br /&gt;
&lt;br /&gt;
Le spectrogramme témoigne aussi de l'étalement du signal sur un peu plus de 6 MHz (3MHz de par et d'autre de la fréquence centrale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt; Etude temporelle &amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Signal temporel.png|thumb|left|500px|Signal observable centré à 2.450GHz lors de l'émission]]&lt;br /&gt;
&lt;br /&gt;
Le signal ici est séparé en deux composantes car il s'agit d'un signal complexe. Nous avons supposé en premier temps qu'il s'agissait du signal principal décalé de 180°, ce qui n'était pas le cas.&lt;br /&gt;
Après quelques recherches, cette séparation des composantes permet de transmettre deux fois plus de données sur la même bande passante.&lt;br /&gt;
Le signal observable témoigne d'une modulation bien spécifique au XBee. En effet, on peut observer des sauts de phase à différents points, qui correspondent à une modulation par changement de phase (modulation QPSK ou Quadratic Phase-Shift Keying). Ce sont ces sauts de phases qui permettent la transmission des bits.&lt;br /&gt;
Les changements de phase s'il y a se font toutes les µs. En outre, on peut observer un décalage (offset) entre la composante Q et la composante I de µs/2 (propre à la modulation OQPSK).&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé d'enregistrer ces données brutes dans un fichier et nous l'avons étudié avec Audacity, logiciel open-source de son, et donc de signaux ! L'inconvénient avec l'interface graphique QT de GNURadio est son manque de précision lors d'un dézoom sur le signal en temps réel. Audacity permet de palier à celà !&lt;br /&gt;
En outre, on peut voir que les paquets Xbee sont reconnaissables. En effet, le signal témoigne de la taille du paquet XBee.&lt;br /&gt;
&lt;br /&gt;
Le paquet XBee est constitué d'un premier header (header physique) de 6 octets :&lt;br /&gt;
- la séquence de préambule (4 octets) constitué de 32 bits à 0&lt;br /&gt;
&lt;br /&gt;
- l'indice de début du paquet fixé à 0x7A (1 octet)&lt;br /&gt;
&lt;br /&gt;
- la longueur du paquet (1 octet);&lt;br /&gt;
&lt;br /&gt;
d'un header MAC (7 à 27 octets en fonction des informations de l'adresse), d'un bloc FCS de fin de paquet (2 octets) et l'ensemble des données (de 1 à 104 octets).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Signal2.png|thumb|right|400px|On observe graphiquement qu'un paquet est transmis en 3846µs]]&lt;br /&gt;
[[Fichier:PacketXBee.png|400px|thumb|right|Paquet XBee]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Comme dit plus haut, les signaux émis par le XBee connaissent un étalement sur le spectre par DSSS.&lt;br /&gt;
Cet étalement s'effectue en divisant chaque symbole (correspondant à une série de 4 bits) transmis en &amp;lt;B&amp;gt;&amp;lt;I&amp;gt;chips&amp;lt;/I&amp;gt;&amp;lt;/B&amp;gt;.&lt;br /&gt;
Chaque symbole, soit 4 bits, correspond à 32 chips, et donc 32 états binaires (1 octet correspond à 64 chips).&lt;br /&gt;
Dans le cas de la norme ZigBee, la transmission de chacun des chips est synchronisé sur chaque µs (1 chip toutes les µs).&lt;br /&gt;
&lt;br /&gt;
Les signaux reçus par l'antenne HackRF étaient deux sinusoïdes modulées en phase et qui s'étalaient sur une période d'environ 3840µs (3846µs graphiquement mais il y a possibilité d'erreur à l'echelle du µs).&lt;br /&gt;
Sachant qu'un octet correspond à 64µs, on a :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;N_{octets} =\frac{2*T_{signal}}{64*T_{chip}}=\frac{2*3.840*10^{-6}}{64*10^{-6}}=120 octets&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'analogie peut être effectuée entre paquet Ethernet et paquet ZigBee. En effet, la taille limite des données d'un paquet est de 104 octets. La chaîne de caractère n'étant qu'envoyée par paquet, le paquet observé n'est que de 120 octets, ce qui est cohérent avec les caractéristiques du XBee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Hello1024secs.png|thumb|none|Temps de transmission de la chaîne de caractères &amp;quot;HELLO&amp;quot; 1024 fois]] &amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:AudacitySignal2.png|thumb|none|51 Paquets XBee portent la chaîne de caractère &amp;quot;HELLO&amp;quot; 1024 fois]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 8==&lt;br /&gt;
&lt;br /&gt;
L'étude des signaux posait réellement problème de par le fait qu'une grande partie de la capture faite n'était que purement le bruit sans signal (utile plus tard pour l'étude du SNR).&lt;br /&gt;
Prenons l'exemple d'un paquet de 21 octets (un paquet contenant une seule chaîne de caractères HELLO). Le signal s'étalerait en théorie sur 21*64 chips soit 672 chips. Sachant que la modulation est une modulation QPSK, on s'étale sur un temps de 672µs.&lt;br /&gt;
En effet, le Xbee transmet toutes les 100ms.&lt;br /&gt;
Donc qu'une partie du signal nous est utile.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décider d'écrire un script qui nous permettrait d'étudier le signal dans de meilleures conditions, et donc de le filtrer.&lt;br /&gt;
&lt;br /&gt;
Chaque capture de signal effectuée est enregistrée dans un fichier par le biais du bloc fonction &amp;lt;B&amp;gt;&amp;lt;I&amp;gt;File Sink&amp;lt;/I&amp;gt;&amp;lt;/B&amp;gt; du compagnon GNURadio. Néanmoins, les fichiers obtenus sont des fichiers binaires assez lourds (environ 500Mo pour une capture de 3s), ce qui est un réel problème et qui implique le filtrage du signal.&lt;br /&gt;
&lt;br /&gt;
La bibliothèque numpy pour python nous permet en outre directement d'importer les échantillons des signaux, les traduisant du binaire à un format cible (complexe flottant 64 bits) dans un Array par le biais de la fonction:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; f = scipy.fromfile(open(&amp;quot;Nom du fichier&amp;quot;), dtype=scipy.complex64) &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La première solution pour réduire ce signal était d'imposer un threshold directement sur le signal, supérieur au bruit, mais qui conduirait à une perte d'une partie du signal à étudier.&lt;br /&gt;
La deuxième solution qui a été retenue était tout simplement de calculer l'amplitude et la phase du signal et appliquer ce même threshold à l'amplitude.&lt;br /&gt;
&lt;br /&gt;
== Semaine 9 et 10==&lt;br /&gt;
&lt;br /&gt;
A partir de la semaine 10 nous avons procéder aux expériences pour avoir suffisamment de données et en tirer des conclusions.&lt;br /&gt;
&lt;br /&gt;
Lorsqu'on fait une acquisition d'un signal xbee , on peut maintenant via un script traiter cette acquisition et récupérer seulement les parties qui nous intéressent : A savoir la partie réelle et la partie imaginaire, l'amplitude du signal et enfin la phase du signal.&lt;br /&gt;
&lt;br /&gt;
Exemple ci dessous après acquisition + traitement de notre xbee n°2 :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Traitement xbee2.png|thumb|right|redresse=2|Signal Xbee2 post-traitement ]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Constellation xbee2.png|thumb|right|redresse=2|Diagramme de constellation xbee2 après utilisation de LightSignal]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'utilisation du script LightSignal permet de retirer toutes les phases en dehors du signal. Ainsi, on peut caractériser le diagramme de constellation comme un diagramme propre à la modulation QPSK. &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
import scipy&lt;br /&gt;
import numpy&lt;br /&gt;
import sys&lt;br /&gt;
&lt;br /&gt;
def binToComplex64(name):&lt;br /&gt;
    threshold=0.10&lt;br /&gt;
    tmp=scipy.fromfile(open(name+&amp;quot;_PhaseMeg&amp;quot;), dtype=scipy.complex64)&lt;br /&gt;
    tmp2=scipy.fromfile(open(name), dtype=scipy.complex64)&lt;br /&gt;
    &lt;br /&gt;
    f2 = open(name+&amp;quot;_filtre&amp;quot;, &amp;quot;w+&amp;quot;) &lt;br /&gt;
    f = open(name+&amp;quot;_PhaseMeg_filtre&amp;quot;,&amp;quot;w+&amp;quot;)&lt;br /&gt;
    &lt;br /&gt;
    p=1&lt;br /&gt;
    size=tmp.__len__()&lt;br /&gt;
    size2=tmp2.__len__()&lt;br /&gt;
    &lt;br /&gt;
    if size &amp;gt; size2:&lt;br /&gt;
        size=size2&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    ground=False&lt;br /&gt;
    newListSignal=[]&lt;br /&gt;
    newListMagnPh=[]&lt;br /&gt;
    for val in range(0,size): &lt;br /&gt;
        if(val&amp;gt;=(size/100)*p):&lt;br /&gt;
            print(str(p)+&amp;quot; %&amp;quot;)&lt;br /&gt;
            p=p+1&lt;br /&gt;
        if(tmp[val].real&amp;gt;threshold):&lt;br /&gt;
            if(ground==True):&lt;br /&gt;
                for i in range(0,1000):&lt;br /&gt;
                    newListSignal.append(numpy.complex64(0))&lt;br /&gt;
                    newListMagnPh.append(numpy.complex64(0))&lt;br /&gt;
                ground=False&lt;br /&gt;
            newListSignal.append(tmp2[val])&lt;br /&gt;
            newListMagnPh.append(numpy.complex64(tmp[val].real+tmp[val].imag*0.3j))&lt;br /&gt;
        else:&lt;br /&gt;
            ground=True&lt;br /&gt;
    &lt;br /&gt;
    tmp=numpy.asarray(newListMagnPh)&lt;br /&gt;
    tmp.tofile(f)&lt;br /&gt;
    tmp2=numpy.asarray(newListSignal) &lt;br /&gt;
    tmp2.tofile(f2)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    try:&lt;br /&gt;
        binToComplex64(sys.argv[1])&lt;br /&gt;
    except IndexError:&lt;br /&gt;
        print(&amp;quot;Donnez le nom du fichier\n&amp;quot;)&lt;br /&gt;
    except IOError:&lt;br /&gt;
        print(&amp;quot;Le fichier n'existe pas\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__=='__main__':&lt;br /&gt;
    main()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le diagramme de constellation témoigne de nouveau du type de modulation utilisé par le module XBee.&lt;br /&gt;
En effet, on observe quatre points de part et d'autre des axes de quadrature et d'inphase.&lt;br /&gt;
&lt;br /&gt;
==Semaine 11==&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé cette semaine d'étudier, ce qui est selon pour nous, l'une des pistes fondamentales de notre projet, et plus particulièrement de l'étude de nos signaux : le rapport signal bruit.&lt;br /&gt;
&lt;br /&gt;
L'objectif de cette semaine et de celle à venir était, à partir du signal acquis par le hackrf, d'effectuer le calcul du SNR (signal-to-noise ratio) tel que :&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;SNR =\frac{P_{signal}}{P_{bruit}}&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le script python qui nous a permis de communiquer entre les deux shields Xbee se verra amélioré afin de faire plusieurs acquisition des signaux lors de la communication entre les Xbee, effectuer une moyenne statistique, et de même lorsqu'il n'y a pas de communication.&lt;br /&gt;
&lt;br /&gt;
Nous avons essayé d'approcher le SNR directement depuis l'interface de GnuRadio par le biais de l'utilitaire graphique et le langage en bloc, néanmoins nous procéderons à l'étude de ce rapport avec Scilab ou Matlab.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaines supplémentaires==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Expérience : Variation de l'amplitude===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats &amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Conclusion sur l'expérience &amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
L'expérience n'a pas été fructueuse. Même si elle nous a permis de voir quelques différences (probablement provoquées pas des erreurs de capture et d'analyse), le HackRF nous limite beaucoup sur ce point de vue là. En effet, la fréquence d'échantillonage étant limitée à 20MHz, le HackRF n'est pas suffisamment précis pour capturer un nombre d'échantillons nous permettant de confirmer une quelconque hypothèse. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Code python utilisé pour l'étude du signal&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
def etudeAmplitude(name, liste_temps):&lt;br /&gt;
&lt;br /&gt;
    threshold_0=0.05 # Threshold&lt;br /&gt;
    threshold_1=0.4&lt;br /&gt;
    max_transition_time=50 #O&lt;br /&gt;
&lt;br /&gt;
    amppha=scipy.fromfile(open(name+&amp;quot;_PhaseMeg&amp;quot;), dtype=scipy.complex64) &lt;br /&gt;
&lt;br /&gt;
    p=1&lt;br /&gt;
    size=amppha.__len__()&lt;br /&gt;
    &lt;br /&gt;
    debut=1&lt;br /&gt;
    tps_variation=0 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    transition=False # Vérifie si le signal est en transition ou stable&lt;br /&gt;
&lt;br /&gt;
    for val in range(debut,size):&lt;br /&gt;
        if(val&amp;gt;=((size-debut)/100)*p):&lt;br /&gt;
            print(str(p)+&amp;quot; %&amp;quot;)&lt;br /&gt;
            p=p+1&lt;br /&gt;
&lt;br /&gt;
        if(amppha[val].real&amp;gt;threshold_0 and amppha[val].real&amp;lt;threshold_1): # Phase de transition du signal&lt;br /&gt;
            if(transition==False):&lt;br /&gt;
                transition=True&lt;br /&gt;
            tps_variation=tps_variation+1&lt;br /&gt;
&lt;br /&gt;
        elif(transition==True and amppha[val].real&amp;gt;threshold_1):&lt;br /&gt;
            if(amppha[val].real&amp;gt;=amppha[val-1].real-amppha[val-1].real*0.05 and amppha[val].real&amp;lt;=amppha[val-1].real+amppha[val-1].real*0.05): # L'amplitude du signal est stable&lt;br /&gt;
                if(tps_variation &amp;lt; max_transition_time):&lt;br /&gt;
                    liste_temps.append(tps_variation)&lt;br /&gt;
&lt;br /&gt;
                transition=False&lt;br /&gt;
                tps_variation=0&lt;br /&gt;
            else:&lt;br /&gt;
                tps_variation=tps_variation+1&lt;br /&gt;
        else:&lt;br /&gt;
            transition=False&lt;br /&gt;
            tps_variation=0&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Expérience : Temps de calcul du FCS entre le XBee1 et et le XBee2===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 1&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 et XBee2 sont alimentés sur 5V VCC par USB (connecté à l'ordinateur)&amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 et XBee2 disposent du firmware : 10EF &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 est d'abord emetteur et le XBee2 est recepteur puis inversement. Aucun paquet ACK n'est renvoyé de la part du recepteur &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On transmet la chaine de caractère HELLO 256 fois toutes les 1 secs&lt;br /&gt;
Les données étant assez conséquentes, le Xbee transmet plusieurs fragments du paquet.&lt;br /&gt;
L'objectif de cette expérience est d'étudier le temps entre chaque fragment d'un paquet.&lt;br /&gt;
L’espace de temps entre chacun des paquets permet de calculer le FCS (frame check sequence) afin de minimiser les erreurs de transmission.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:ChecksumGraphe.png|thumb|left|redresse=2|Les différents temps à mesurer]]  &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Néanmoins, l’étude de ces “temps morts” se voit entravé par le fait que le module HackRF ne permette pas d’obtenir un signal clair sur plus de 5 secondes.&lt;br /&gt;
En outre, pour 5 secondes d’étude et pour une fréquence d’échantillonage de 20MHz (soit un temps Te=5.10e8), on compte 100.000.000 d’échantillons.&lt;br /&gt;
Le CPU lors de la capture était grandement sollicité, ce qui explique le fait que la capture soit compromise.&lt;br /&gt;
Pour régler ce problème, on a écrit un script shell de capture.&lt;br /&gt;
Ce script consiste à:&lt;br /&gt;
&amp;lt;br&amp;gt;- effectuer une capture d’une durée de 1 sec&lt;br /&gt;
&amp;lt;br&amp;gt;- d’enregistrer la capture&lt;br /&gt;
&amp;lt;br&amp;gt;- d’effectuer un traitement de ces paquets par un algorithme python en étudiant le temps entre chacun des fragments. Ce temps sera obtenu en nombre d’échantillons, défini avec un seuil d’acceptation absolu entre 150.000 et 300.000 échantillons (pour bien capturer ces temps intermédiaires et pas les temps provoqués par des signaux parasites ou du bruit), et pour affiner l’étude, on impose un seuil d’erreur de +-10% autour de la moyenne. La moyenne est calculée en continue&lt;br /&gt;
&amp;lt;br&amp;gt;- l’ensemble des valeurs obtenues sont enregistrées dans un fichier&lt;br /&gt;
&amp;lt;br&amp;gt;- on réeffectue la capture …&lt;br /&gt;
&lt;br /&gt;
On répète le processus un certains nombre de fois afin d’obtenir un nombre de valeurs nous permettant de nous conforter sur l'issue de l'expérience (environ 1000 valeurs)&lt;br /&gt;
&lt;br /&gt;
La capture et l'étude de chacun des modules dure une à deux heures.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats :&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans le cas du XBee1 (à gauche) et du XBee2 (à droite), voici les résultats obtenus :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Xbee1Graphe256.png|thumb|left|redresse=2|On peut observer des pics caractéristiques à l'envoi]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBee2Graphe256.png|thumb|left|redresse=2|Les mêmes pics caractéristiques confirment un comportement non-aléatoires du module]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
XBee1 : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 259675,81&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 8369.7417&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 70052576.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
XBee2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 258762.58&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 9165.4097&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 84004736.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les graphes présentent le nombre de répétitions des temps de calcul de fragements.&lt;br /&gt;
&lt;br /&gt;
On peut voir des pics spécifiques à certains points dans les deux expériences. Ces pics sont caractéristiques et au module XBee, et à la chaîne de caractère HELLO. Les deux expériences étant effectuées dans le même contexte, &lt;br /&gt;
&lt;br /&gt;
De même que pour le second Xbee, on retrouve des pics bien distincts à certains points.&lt;br /&gt;
&lt;br /&gt;
En outre, on peut voir que ces pics bien distincts se rapprochent de ceux du premier Xbee.&lt;br /&gt;
Néanmoins, même si la moyenne varie que très peu par rapport aux deux Xbee, la variance est assez différente.&lt;br /&gt;
&lt;br /&gt;
Pour confirmer ces observations, il est peut être nécessaire de répéter la même expérimentation sur un nombre d'échantillons plus grand.&lt;br /&gt;
&lt;br /&gt;
Ainsi, afin de confirmer la conjecture, on décide de faire d’autres captures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En superposant les deux graphes (Xbee1 en rouge et Xbee2 en bleu), on peut voir qu'il y a moins de dispersion dans le cas du XBee1, plus centré sur des valeurs précises, contrairement au Xbee2.&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBee1Xbee2Graphe.png|thumb|left|redresse=2]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour les deux nouveaux échantillons, on a les caractéristiques suivantes :&lt;br /&gt;
&amp;lt;U&amp;gt;Xbee1 sur 1688 échantillons&amp;lt;/U&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 260230.3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 8427.3923&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 71020941&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Xbee2 sur 1722 échantillons&amp;lt;/U&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 259899.41&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 9831.5106&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 96658601&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:SignalAT328.png|thumb|right|Signal observé dans le cas de l'ATMega328p]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 2&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 est connecté à un Arduino ATMega328p par le biais d'un shield Libelium &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 dispose du firmware 10EF &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; On envoie exactement les mêmes données que précédemment, la chaîne de caractères HELLO*256 toutes les 0.5s &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hormis l'amplitude du signal qui paraît plus faible lors de la transmission par ATMega328p, le message transmis ne change PAS. Même si nous avons fait en sorte que la periode de transmission soit la même que pour l'expérience précédente, elle n'affecte en rien l'issue de l'expérience car c'est le temps de division de paquet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:ATMega328.png|thumb|650px|Observation du temps de division d'un paquet dans le cas de l'ATMega328p]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:ATMega2560.png|thumb|650px|Observation du temps de division d'un paquet dans le cas de l'ATMega2560]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour les nouveaux échantillons, on a les caractéristiques suivantes :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Xbee1 sur ATMega328p sur 706 échantillons&amp;lt;/U&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 265818.58&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 4748.5965&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 22549168&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Xbee1 sur ATMega2560 sur 711 échantillons&amp;lt;/U&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 262877.83&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 3675.037&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 13505897&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut observer une distinction significative entre une transmission effectuée directement par la machine et la transmission depuis les modules composés d'un ATMega328p ou d'un ATMega2560. En effet, on n'observe pas les mêmes pics caractéristiques dans cette expérience comparé à l'expérience précédente. Même si la moyenne est quasi la même, l'ecart type est plus faible, ainsi que la variance. En outre, de même que pour l'expérience précédente, l'écart-type entre ATMega328p et ATMega2560 est aussi différent. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 3&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 est dans les mêmes conditions que durant la première expérience &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; On change le firmware du XBee1 pour le 10ED &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Conclusion de l'expérience&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
L’hypothèse qui est que la variance des temps &amp;quot;morts&amp;quot; entre chaque fragments de paquet, soit le temps de calcul du FCS pour le signal émis peut être considéré comme “clé” de distinction d’un module Xbee n'est donc pas à négliger. &lt;br /&gt;
Le temps de calcul du FCS semble unique entre chaque paquet paraît une empreinte propre au matériel.&lt;br /&gt;
&lt;br /&gt;
On peut même considérer que cette étude peut distinguer un module Xbee d'un autre électromagnétiquement parlant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Code python utilisé pour l'étude du signal&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def etudeSubdivPaquet(name, inter_time_values):&lt;br /&gt;
&lt;br /&gt;
threshold = 0.30&lt;br /&gt;
ground = false&lt;br /&gt;
p=1&lt;br /&gt;
&lt;br /&gt;
## On converti chacun des nombres binaires en complexe 64 (deux flottants 32 bits)##&lt;br /&gt;
amppha=scipy.fromfile(open(name+&amp;quot;_PhaseMeg&amp;quot;), dtype=scipy.complex64) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
## On récupère la taille du tableau de complexes (taille du signal) ##&lt;br /&gt;
size=amppha.__len__()&lt;br /&gt;
&lt;br /&gt;
    debut=0&lt;br /&gt;
    inter_time=0&lt;br /&gt;
    min_limit=150000&lt;br /&gt;
    max_limit=350000&lt;br /&gt;
    accept_range=1./10. ## Permet de mettre un seuil d'intervalle d'acceptation&lt;br /&gt;
    signalFnd=False&lt;br /&gt;
&lt;br /&gt;
    for val in range(debut,size):&lt;br /&gt;
        if(val&amp;gt;=((size-debut)/100)*p):&lt;br /&gt;
            print(str(p)+&amp;quot; %&amp;quot;)&lt;br /&gt;
            p=p+1&lt;br /&gt;
&lt;br /&gt;
        if(amppha[val].real&amp;gt;threshold):&lt;br /&gt;
            if(ground==True):&lt;br /&gt;
                if(signalFnd==True):&lt;br /&gt;
                    if(len(inter_time_values)&amp;gt;0):&lt;br /&gt;
                        moy=moyenne(inter_time_values)&lt;br /&gt;
                        if(inter_time &amp;gt;= moy-accept_range*moy and inter_time &amp;lt;= moy+accept_range*moy):&lt;br /&gt;
                            print(&amp;quot;Yes &amp;quot;+str(inter_time))&lt;br /&gt;
                            inter_time_values.append(inter_time)&lt;br /&gt;
                        inter_time=0&lt;br /&gt;
                    elif(inter_time&amp;gt;=min_limit and inter_time&amp;lt;=max_limit):&lt;br /&gt;
                        inter_time_values.append(inter_time)&lt;br /&gt;
                else:&lt;br /&gt;
                    signalFnd=True&lt;br /&gt;
                ground=False&lt;br /&gt;
        else:&lt;br /&gt;
            ground=True&lt;br /&gt;
            if(signalFnd==True):&lt;br /&gt;
                inter_time=inter_time+1&lt;br /&gt;
&lt;br /&gt;
    if(len(inter_time_values)&amp;gt;0):&lt;br /&gt;
        print(&amp;quot;Moyenne &amp;quot;+ str(moyenne(inter_time_values)))&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Rencontre avec Etienne Helluy Lafont ===&lt;br /&gt;
&lt;br /&gt;
Bien que plusieurs pistes ont pu être explorées, notre manque d'expertise dans le domaine de la radio logicielle nous a fait défaut sur nos recherches. En effet, après avoir calculé le SNR d'un de nos signaux, nous nous sommes retrouvés avec des résultats assez incohérents. De nombreuses erreurs peuvent se glisser et nous avions besoin de conseils à ce sujet.&lt;br /&gt;
&lt;br /&gt;
Etienne Helluy-Lafont est un doctorant qui fait sa thèse sur les sondes pour la détection d’intrusions dans les architectures réseau hétérogènes et massivement distribuées. Il développe un outil permettant d'analyser le spectre environnant, de donner des informations sur les signaux émis sur certains canaux et même de démoduler ces signaux. Son programme en C est flexible puisqu'il est adapté pour beaucoup d'antennes (Une des librairies qu'il utilise est SoapySDR [https://github.com/pothosware/SoapySDR/] qui possède des &amp;quot;codec&amp;quot; dont un pour notre HackRF !). Nous nous sommes servi de son outil afin d'avoir de bien meilleurs résultats pour les expériences sur le SNR des Xbee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Expérience : Variation du Rapport Signal Bruit en fonction de la distance de reception ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:FFTSNR.png|thumb|left|redresse=2|Calcul du SNR par FFT]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Fenetre.png|thumb|left|redresse=2|Calcul du SNR par fenêtre glissante]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L'objectif de cette expérience était de visualiser comment le rapport signal bruit (ou SNR) varie en fonction de la distance. &lt;br /&gt;
En effet, nous avions mis en suspens l'expérience qui consistait en la capture du SNR dû aux valeurs instables que l'on avait. &lt;br /&gt;
&lt;br /&gt;
La première idée était de faire une FFT du signal et de calculer le rapport en prenant la moyenne de sa puissance sur une bande de 2.4MHz (1.2Mhz de part et d'autre de la fréquence de capture du HackRF).&lt;br /&gt;
&lt;br /&gt;
Néanmoins, les caractéristiques du XBee (du point de vue de l'étalement spectral) rend le calcul du SNR imprécis. A la suite de la capture de signaux et de l'étude de ces mêmes signaux, les valeurs nous paraissaient incohérentes. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:SNRcalc.png|thumb|left|470px|Pics de SNR]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons donc procédé à une seconde méthode de calcul qui consiste à utiliser une fenêtre glissante de taille 2^k échantillons. &lt;br /&gt;
Pour chaque échantillon du signal, on calculait le SNR tel que :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;SNR =\frac{P_{signal+bruit}}{P_{bruit}}=\frac{|A_{signal+bruit}|^2}{|A_{bruit}|^2}&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans notre cas, on a :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;SNR_x =20.log \frac{Moyenne(W_x[2^{k-1}:2^k])}{Moyenne(W_x[0:2^{k-1}-1])}&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
W_x étant la fenêtre à l'échantillon x du signal, le rapport signal bruit est obtenu lorsqu'on a un pic.&lt;br /&gt;
La fenêtre choisie doit être suffisamment grande pour avoir une précision optimale.&lt;br /&gt;
On impose ainsi un threshold pour éviter des erreurs pouvant influencer les résultats de manière considérable.&lt;br /&gt;
Ainsi, on obtient les valeurs SNR cherchées.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous voulons donc vérifier si la mesure du SNR est une expérience pertinente pour l'identification du matériel. Nous allons prendre plusieurs XBee et mesurer le SNR à différentes distances de l'antenne SDR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 1&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 et XBee2 sont alimentés sur 3.3V VCC par USB (connecté à l'ordinateur)&amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 et XBee2 disposent du firmware : 10EF &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee3 et XBee4 sont des modèles XBeePro &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Nous cherchons à observer la différence entre le XBee1 et XBee2 dans la même situation. &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Durant les expériences, le montage XBee1 connecté en USB sera le XBee témoin. &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PointsMoyenneXBee1Dist.png|thumb|left|470px|Les différentes valeurs du SNR acquises en fonction de la distance pour le XBee1]]&lt;br /&gt;
&lt;br /&gt;
Dans notre cas, le modèle XBee1 connecté en série à notre machine nous a servi de composant témoin afin d'étudier les signaux des autres modèles. En effet, suite à la capture et l'étude des signaux, on peut voir que le nuage de points qui constitue notre graphe témoigne d'un phénomène électromagnétique ondulatoire quant au champ. Avec la distance, plus l'on éloigne le module, plus le rapport signal sur bruit diminue (le contraire nous aurait étonné). En outre, la variation ondulatoire peut être caractérisée par le champs éléctrique.&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé de refaire cette expérience avec les trois autres XBee directement connectés à notre machine.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ALLXBEE comparaison SNR distance.png|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
De part les potentielles erreurs et les différentes perturbations électromagnétiques ambiantes, la valeur du SNR peut être affectée. Il n'est pas possible directement par les caractéristiques du rapport signal bruit d'effectuer le distinguo entre le XBee1 et le XBee2 (contrairement à l'expérience basée sur la subdivision de paquets). Cependant, les XBee3 et XBee4 présentent une caractéristique commune. Le SNR est beaucoup plus élevé. &lt;br /&gt;
&lt;br /&gt;
En effet, le pic de courant d'un XBee est de 45mA à la transmission pour une alimentation de 3.3V en tension continu, tandis qu'un module XBee pro, le pic de courant atteint les 150mA. Cette différence électronique permet ainsi au XBee pro de communiquer sur une plus grande zone (750m contre 90m pour un XBee simple).&lt;br /&gt;
&lt;br /&gt;
Ainsi, on peut conclure de cette expérience que le SNR est un élément témoin de la consommation énergétique d'un composant électrique (du moins de l'antenne).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:XBEE1 hardware comparaison SNR distance.png|thumb|400px|right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 2&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 est d'abord connecté à un Arduino UNO 328P par le biais d'un shield XBee Libelium puis est connecté à un Arduino Mega 2560 par le biais du même shield &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 dispose du firmware : 10EF &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
On peut observer que même si l'unité de contrôle n'est pas l'ordinateur mais le micro-contrôleur (ici ATMega2560 et ATMega328P), le rapport signal bruit ne change pas réellement. Néanmoins, il était pour nous intéressant de noter qu'un léger gap se créé à 30 et 40 cm de la SDR entre la communication USB et la communication avec les micro-contrôleurs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:XBEE3 hardware comparaison SNR distance.png|thumb|400px|right]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 3&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; L'expérience est similaire que pour le module XBee1 mais avec le XBee3 (pro) &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee3 est d'abord connecté à un Arduino UNO 328P par le biais d'un shield XBee Libelium puis est connecté à un Arduino Mega 2560 par le biais du même shield &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee3 dispose du firmware : 10EF &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
En outre, les résultats obtenus lors de l'expérience avec le XBee3 nous indique que le phénomène ondulatoire observé durant les tests précédents est moins souligné dans la communication avec les micro-contrôleur (toujours à 30 et 40cm) et celà après plusieurs tests.&lt;br /&gt;
&lt;br /&gt;
Des tests plus précis auraient été plusieurs avantageux et nous auraient permis de trancher sur la décision de l'importance du SNR concernant la différenciation de différentes unités de contrôle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:XBEE1 firmware comparaison SNR distance.png|thumb|400px|right]]&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 4&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 ici est connecté en série et dispose dans un premier temps du firmware 10EF (le firmware le plus récent) &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Après capture et expérimentation, on décide de réeffectuer la même chose avec le même XBee (XBee1) avec le firmware 10ED &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
Les acquisitions étant faites dans les mêmes conditions, il semblerait que le changement de firmware ait un petit impact sur la puissance d’émission : Cette petite différence de décibel ne semble pas aléatoire puisqu’on peut clairement voir que la courbe orange reste toujours inférieure à la courbe bleue, or le niveau de bruit est resté inchangé. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Conclusion de l'expérience&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
===Expérience : Variation du Rapport Signal Bruit en fonction du canal de fréquence===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ALLXBEE comparaison SNR freq.png|thumb|400px|left]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:XBEE1 hardware comparaison SNR freq.png|thumb|400px|right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:XBEE3 hardware comparaison SNR freq.png|thumb|400px|right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Code python utilisé pour l'étude du signal&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def SNRStudy(name):&lt;br /&gt;
    tmp=scipy.fromfile(open(name+&amp;quot;_PhaseMeg&amp;quot;), dtype=scipy.complex64)&lt;br /&gt;
&lt;br /&gt;
    f = open(name+&amp;quot;_SNR_Values&amp;quot;,&amp;quot;a&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    p=1&lt;br /&gt;
    size = tmp.__len__()&lt;br /&gt;
    magnitude = (numpy.real(tmp)).tolist()&lt;br /&gt;
&lt;br /&gt;
    threshold=10&lt;br /&gt;
&lt;br /&gt;
    P=0&lt;br /&gt;
    SNR_graph=[]&lt;br /&gt;
    SNR=[]&lt;br /&gt;
&lt;br /&gt;
    win_sz=64&lt;br /&gt;
&lt;br /&gt;
    if(size&amp;gt;=win_sz):&lt;br /&gt;
        for val in range(0,size-win_sz):&lt;br /&gt;
&lt;br /&gt;
            if(val&amp;gt;=((size-win_sz)/100)*p): # Affiche l'état de l'étude&lt;br /&gt;
                print(str(p)+&amp;quot; %&amp;quot;)&lt;br /&gt;
                p=p+1&lt;br /&gt;
&lt;br /&gt;
            SNR_graph.append( 20*math.log((numpy.mean(magnitude[val + win_sz/2 : val + win_sz-1]))/(numpy.mean(magnitude[val+0 : val+win_sz/2-1])), 10) )&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
    size=len(SNR_graph)&lt;br /&gt;
&lt;br /&gt;
    for i in range(1, size-1):&lt;br /&gt;
        if (SNR_graph[i]&amp;gt;SNR_graph[i-1] and SNR_graph[i]&amp;gt;SNR_graph[i+1] and SNR_graph[i]&amp;gt;threshold):&lt;br /&gt;
            SNR.append(SNR_graph[i])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    tmp=numpy.asarray(SNR)&lt;br /&gt;
    tmp.tofile(f)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    try:&lt;br /&gt;
        SNRStudy(sys.argv[1])&lt;br /&gt;
    #except IndexError:&lt;br /&gt;
        #print(&amp;quot;Donnez le nom du fichier\n&amp;quot;)&lt;br /&gt;
    except IOError:&lt;br /&gt;
        print(&amp;quot;Le fichier n'existe pas\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'archive des scripts python : &lt;br /&gt;
&lt;br /&gt;
[archive.zip]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le rapport&lt;br /&gt;
&lt;br /&gt;
[Rapport.pdf]&lt;/div&gt;</summary>
		<author><name>Amoreau</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=75573</id>
		<title>IMA4 2018/2019 P70</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=75573"/>
				<updated>2019-05-09T09:20:13Z</updated>
		
		<summary type="html">&lt;p&gt;Amoreau : /* Expérience : Variation du Rapport Signal Bruit en fonction de la distance de reception */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;font-size: 30px; width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;Impact du matériel et du logiciel sur le champ électromagnétique&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Projet'''&amp;lt;/ins&amp;gt; : Impact du matériel et du logiciel sur le rayonnement électromagnétique&lt;br /&gt;
&lt;br /&gt;
''Nous proposons d'évaluer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et la consommation électrique.''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Etudiants'''&amp;lt;/ins&amp;gt; : Souheib KHINACHE et Antoine MOREAU&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Encadrants'''&amp;lt;/ins&amp;gt; : Alexandre BOE, Xavier REDON et Thomas VANTROYS&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'internet des objets est un marché en plein essor. La communication entre les différents objets connectés crée un nuage de signaux autour d'eux. Ces derniers sont vus par les utilisateurs comme des boîtes noires : le fonctionnement se fait sans en connaître les composants matériels et logiciels. &lt;br /&gt;
Néanmoins, ces objets, de par leurs propriétés électroniques, créent des fuites électromagnétiques impactant le champ environnant. &lt;br /&gt;
&lt;br /&gt;
Bien qu'ils peuvent porter à débat sur l'impact sur la santé, ces signaux peuvent représenter de réelles sources d'informations sur l'aspect matériel et applicatif de l'objet.&lt;br /&gt;
&lt;br /&gt;
Il serait donc intéressant d'avoir idée générale sur le fonctionnement du système en interprétant les ondes électromagnétiques émises par ce système.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Les principaux objectifs de ce projet seront donc de mesurer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et sur la consommation électrique.&lt;br /&gt;
Pour cela, l'outil potentiel avec lequel nous pourrions travailler serait une sonde de champ électromagnétique afin d'établir des mesures. &lt;br /&gt;
Cependant, nous pourrions concevoir notre propre système de capture et d'interprétation à partir d'une antenne, de filtres de fréquences et d'un microcontrôleur (on commencera par un ATMega328P). Il sera nécessaire de prendre en compte les perturbations issues de notre appareil de mesure et d'en tenir compte.&lt;br /&gt;
&lt;br /&gt;
On effectuera ainsi plusieurs expérimentations sur différents supports d'étude :&lt;br /&gt;
*l'aspect &amp;quot;Hardware&amp;quot; en étudiant différents modèles pour un même type de shield  &lt;br /&gt;
*l'aspect calculatoire du matériel en se basant sur l'impact des microcontrôleurs en fonction du modèle (ATMega328P et ATMega2560)&lt;br /&gt;
*l'aspect &amp;quot;Software&amp;quot;, en étudiant l'impact du logiciel et du firmware d'un même composant (différents firmwares pour un même shield Wi-Fi)&lt;br /&gt;
*l'aspect puissance des composants électroniques de gestion de puissance (ponts, hacheurs, onduleurs...).&lt;br /&gt;
&lt;br /&gt;
L'étude des différentes informations se fera par traitement des signaux électromagnétiques et des spectres. &lt;br /&gt;
Afin de mieux appréhender le problème, il nous est nécessaire de comprendre les phénomènes physiques issus de la notion d'électromagnétisme.&lt;br /&gt;
&lt;br /&gt;
Ces études mèneront à une étape plus complexe : l'interprétation des signaux. En effet, l'un des objectifs de ce projet est de comprendre du mieux possible le fonctionnement d'un système sans y avoir accès directement, et donc dans ce contexte &amp;quot;traduire&amp;quot; un ensemble de signaux électromagnétiques.&lt;br /&gt;
&lt;br /&gt;
On pourra en outre apporter un aspect visuel à l'étude en rajoutant une interface informatique.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
Bien qu'aux yeux de nombreuses personnes le bruit électromagnétique créé par les équipements électroniques du quotidien peut porter à controverse (débats concernant l'impact sur la santé par exemple), il peut être une source d'informations. &lt;br /&gt;
De nos jours, les ondes électromagnétiques restent un vaste champ d'étude, sujettes à de nombreuses thèses et recherches au sein des laboratoires.&lt;br /&gt;
&lt;br /&gt;
On peut prendre l'exemple de [https://www.eurekalert.org/pub_releases/2015-01/giot-rwt010715.php Milos Prvulovic], professeur à l'Institut Technologique de Géorgie, ayant simulé un contexte de cybercafé, dans lequel il place une antenne magnétique, un ordinateur portable cible et un ordinateur &amp;quot;espion&amp;quot;. Il réussit, grâce aux signaux EM émis par l'impulsion de l'appui des touches clavier à capter un message écrit par un ordinateur cible. &lt;br /&gt;
&lt;br /&gt;
Néanmoins, dans le quotidien, l'utilisation des sondes électromagnétiques se fait pour l'étude énergétique d'un système électronique (fuites électromagnétiques anormales, preuves d'une anomalie...) afin de respecter certaines normes législatives. Le code du travail par exemple réglemente et définit des valeurs seuils par le biais des articles R. 4453-3 et R. 4453-4.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
'''NBM-520 de NARDA STS'''&lt;br /&gt;
[[Fichier: NBM_TS.png|thumb|300px|NBM-TS, application des appareils NBM]]&lt;br /&gt;
NARDA STS est une entreprise qui fournit des outils de mesure. Elle met à disposition aux professionnels des sondes électromagnétiques.&lt;br /&gt;
La NBM-520 est un appareil de la franchise, mesurant le champ électrique et magnétique. Elle donne des valeurs précises du champ électromagnétique ambiant sur une large bande. Elle propose différentes sondes modulables permettant une souplesse au niveau de l'étude en fonction des besoins, avec des sondes pouvant étudier des signaux de fréquence de 100kHz à 6GHz ou même de 300kHz à 50GHz (en fonction de la sonde choisie).&lt;br /&gt;
&lt;br /&gt;
En outre, le dispositif peut se connecter en USB sur PC afin d'envoyer les données capturées et d'en faire une étude. Le dispositif propose un logiciel d'étude, NBM-TS, permettant d'observer du champ en fonction du temps, de la fréquence, de la position...&lt;br /&gt;
&lt;br /&gt;
L'équipement est utilisé par l'ANF (l'Agence Nationale des Fréquences, agence gérant l'ensemble des normes autour des radiofréquences), et est donc un gage de qualité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Avantages :''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Large bande de fréquence&lt;br /&gt;
* Matériel solide&lt;br /&gt;
* Application fonctionnelle permettant l'étude et gestion des données&lt;br /&gt;
* Possibilité d'étudier séparément champ électrique et magnétique&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Inconvénients:''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Impossible d'étudier les basses fréquences (appareils sous tension, bobinages...)&lt;br /&gt;
* Prix élevé : à partir de 3100€&lt;br /&gt;
* La cible de ce produit est surtout les professionels&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
'''Une pita.'''&lt;br /&gt;
&lt;br /&gt;
''Comment mon pain à pita vole ta clé RSA ?''&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Pita.jpg|200px|thumb|left|Une pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Des chercheurs israéliens ont découvert un moyen de capturer des clés de cryptage RSA, réputées comme inviolables, par le biais d'une pita... du moins avec un dispositif suffisamment petit pour être caché dans un pain à pita. &lt;br /&gt;
Le dispositif, renommé PITA pour Portable Instrument for Trace Acquisition a la particularité de capturer les ondes radio électromagnétiques émanantes d'un PC, qu'il soit connecté à un réseau ou pas.&lt;br /&gt;
Les différentes opérations du processeur sont identifiées en distinguant les différents modèles de l'activité radio sur le spectre EM.&lt;br /&gt;
&lt;br /&gt;
Bien que la capture des clés RSA a été faite dans des conditions particulières (modification du processeur de l'ordinateur cible), il est néanmoins possible, selon les chercheurs, d'identifier quelle type d'activité est exercée par l'ordinateur ainsi que son état.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PITA.jpg|300px|thumb|right|Un dessous de pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'un des points importants concernant le dispositif est son coût : moins de 300 euros.&lt;br /&gt;
L'appareil dispose :&lt;br /&gt;
* d'un PC portatif (PC-on-a-stick) ''Rikomagic MK802 IV'',&lt;br /&gt;
* d'un recepteur radio SDR ''FUNcube Dongle Pro+''&lt;br /&gt;
* d'une antenne radio&lt;br /&gt;
* d'une batterie&lt;br /&gt;
* d'une antenne WiFi&lt;br /&gt;
* d'une carte MicroSD&lt;br /&gt;
* d'un adapteur d'antenne&lt;br /&gt;
* et d'une '''pita'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le dispositif aurait une portée de 50cm. &lt;br /&gt;
Les chercheurs israéliens ont collaboré avec GNU Private Guard (logiciel de cryptage asymétrique) afin de protéger contre ces attaques les clés de cryptage.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
&lt;br /&gt;
''Scénario 1''&lt;br /&gt;
&lt;br /&gt;
Gérard a toujours le flair pour les bonnes affaires. Il a acheté une centaine de clés WiFi à un prix dérisoire sur AloXpresso afin de faire du profit à la revente. Le vendeur lui garantit que toutes les clés fonctionnent correctement. Gérard veut vérifier. Après vérification, 99 des clés sur 100 fonctionnent comme prévu. Gérard aimerait être sûr du disfonctionnement, mais Gérard n'est pas une pointure en informatique. &lt;br /&gt;
&lt;br /&gt;
Coup de génie ! Il se rappelle qu'il dispose d'un dispositif qui capte les ondes EM et les interprète directement. C'est le moment de tester ça. Il remarque une anomalie sur le spectre.&lt;br /&gt;
Il décide de contacter le revendeur pour lui signaler un disfonctionnement sur l'une des clé. &lt;br /&gt;
Pas de soucis. Le vendeur, étant bon prince, lui envoie une autre clé USB et lui fait une ristourne.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Scénario 2''&lt;br /&gt;
&lt;br /&gt;
La police fait une perquisition chez un individu soupçonné de graves délits. Cela fait plusieurs mois que la brigade criminelle prépare l'intervention, et une fois sur les lieux ils arrêtent le soupçonné malfaiteur.&lt;br /&gt;
Cependant avant de repartir, elle veut faire l'acquisition d'un maximum de preuves. Elle veut alors prendre l'essentiel des objets, dont certains objets éléctroniques connectés de l'individu dont elle pourra extraire les informations qui serviront à le faire tomber.&lt;br /&gt;
&lt;br /&gt;
Par chance, elle dispose d'un petit outil qui scannera les signatures alentours des objets connectés, comme des téléphones cachés, clés USB wifi dissimulées dans le décor etc..&lt;br /&gt;
Et si le suspect avait modifié malignement un objet connecté banal pour l'utiliser autrement à ses fins, la police le découvrirait car elle possède une base de données de toutes les signatures spectrales des objets connectés sur le marché et celle de l'objet modifié ne collerait pas avec celle de la base de données.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
&lt;br /&gt;
'''Comment étudier les signaux malgré les perturbations électromagnétiques ambiants et les faibles signaux des µC ?'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les signaux électromagnétiques des microcontrôleurs ou d'autres composants peuvent être faibles. Il y a une possibilité pour palier à ce problème, c'est de capter les signaux depuis une antenne émettrice que l'on rajoute à l'objet d'étude. &lt;br /&gt;
Nous utiliserons un SDR (Software Defined-Radio) afin de capter les ondes radio et les étudier directement sur PC. Le filtrage s'effectuera ainsi de manière numérique. Plusieurs tests seront effectués pour le même objet à étudier (quand on parle d'objet, on évoque un ensemble de plusieurs composants, comme par exemple une alimentation, un micro-contrôleur et une antenne). Ainsi, de manière statistique, nous pourrons en déduire un pattern récurrent pour chaque expérience en les effectuant dans différents environnements (pourquoi pas une chambre anachoïque). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons &lt;br /&gt;
* Capter le signal émis par un objet connecté le plus précisément possible&lt;br /&gt;
&lt;br /&gt;
* Concevoir nos propres objets connectés tous différents mais basés sur un même modèle&lt;br /&gt;
&lt;br /&gt;
* Interpréter les spectrogrammes, faire une étude statistique des signaux émis par nos différents objets et en tirer des conclusions&lt;br /&gt;
&lt;br /&gt;
* Répertorier dans une base de données les signatures de nos objets , voire de quelques objets disponibles sur le marché&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix logiciel :&lt;br /&gt;
&lt;br /&gt;
- La distribution Linux Pentoo ou Kali pour traiter les signaux avec GNU RADIO (Suite logicielle dédiée à l’implémentation de radios logicielles et de systèmes de traitement du signal).&lt;br /&gt;
&lt;br /&gt;
- FemtoOS pour l'OS des ATMEGA328P et ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix Matériel : &lt;br /&gt;
&lt;br /&gt;
- Plusieurs modules radios émetteurs &lt;br /&gt;
&lt;br /&gt;
- Plusieurs microcontrôleurs ATMEGA328P et un ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
- Des alimentations identiques pour chaque PCB&lt;br /&gt;
&lt;br /&gt;
- Un HackRF pour la réception des signaux&lt;br /&gt;
&lt;br /&gt;
- Une antenne 50 Ohm pour le HackRF [https://www.passion-radio.fr/accessoires-sdr/antenne-ant500-74.html]&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous devons préparer tout le matériel qui servira à faire nos tests. C'est à dire concevoir :&lt;br /&gt;
&lt;br /&gt;
- Un ensemble SDR/PC qui traitera le signal reçu avec GNU RADIO.&lt;br /&gt;
&lt;br /&gt;
- Une multitude de PCB qui seront utilisés comme objets connectés (Sur chacun d'entre eux on trouvera au minimum une antenne radio, un microcontrôleur et une alimentation)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de récupérer une &amp;quot;signature&amp;quot; d'un de nos objets , il faudra faire plus de 50 analyses spectrales pour conclure statistiquement sur une bonne signature qui caractérisera l'objet.&lt;br /&gt;
&lt;br /&gt;
Nous devons donc dans un second temps: &lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques mais qui ont un '''firmware''' différent.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques qui ont pour seule différence le '''microcontrôleur'''.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques dont seul le '''PCB''' diffère.&lt;br /&gt;
&lt;br /&gt;
Grâce à tous ces tests , nous pourrons conclure et voir l'impact qu'à le matériel ou le logiciel sur la signature d'un objet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enfin si les délais nous le permettent, nous pourrons réaliser un software qui cartographiera nos objets connectés dans la pièce grâce à la puissance de la signature reçue (Ce qui devrait être réalisable puisqu'à ce stade nous aurons une base de donnée des signatures).&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
|3&lt;br /&gt;
|8&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Recherches&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|6&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Prise en main de GnuRadio&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Configuration Xbee&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Expériences&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|5&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|4&lt;br /&gt;
|15&lt;br /&gt;
|9&lt;br /&gt;
|8&lt;br /&gt;
|7&lt;br /&gt;
|8&lt;br /&gt;
|8&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
[[Fichier:HackrfOne.jpeg|200px|thumb|right|Le HackRF One]]&lt;br /&gt;
Durant cette semaine, nous avons continué nos recherches notamment sur le moyen de transmission de nos objets connectés. Nous avons confirmé notre choix de notre SDR : Monsieur Boé nous a confirmé que des HackRF seraient disponibles dans les laboratoires et qu'il pourrait nous en prêter un. On disposera donc d'une antenne puissante pour traiter les signaux émis par nos objets communiquants. &lt;br /&gt;
&lt;br /&gt;
Il faudra coupler notre HackRF avec un logiciel appelé GNU RADIO qui est un logiciel très complet ( Pour information : la NASA a utilisé GNU RADIO afin de rétablir le contact avec une sonde spatiale abandonnée ). Afin de faire tourner ce logiciel libre, nous aurons besoin de la distribution Kali Linux, ex Backtrack.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Choix des émetteurs/récepteurs === &lt;br /&gt;
&lt;br /&gt;
Nous avons décidé que nos objets connectés communiqueront dans deux '''bandes de fréquences ISM''', l'une à '''900 MHz''' grâce à des modules Digi Xbee et l'autre à '''2,4 GHz''' par le moyen de modules émetteurs Bluetooth. On rappellera que les Digi Xbee et les émetteurs/récepteurs Bluetooth seront pilotés par des ATMEGA 2560.&lt;br /&gt;
&lt;br /&gt;
Les Xbee ne communiqueront pas entre eux et émettront en continu les mêmes données car ils le peuvent, alors que les émetteurs/récepteurs Bluetooth devront s'échanger des données si on veut pouvoir observer un quelconque signal autour de la fréquence de leurs porteuses. &lt;br /&gt;
&lt;br /&gt;
On voudra observer premièrement, si avec deux objets dans les '''mêmes''' conditions (donc même µc et même émetteur), on peut ou non '''distinguer une différence'''. Ceci est fondamental pour la suite des expériences, puisque si les deux émettent à la même fréquence, on pourra faire varier plusieurs paramètres afin de trouver '''des clés''' (des signes) qui pourraient aider à l'identification du matériel.&lt;br /&gt;
&lt;br /&gt;
Ces clés représentent différents facteurs potentiels d'identification du signal (le rapport signal-bruit en fonction de la distance par exemple...).&lt;br /&gt;
&lt;br /&gt;
''On planifie alors pour la semaine suivante de réussir à faire émettre, en utilisant simplement des breadboards pour commencer, nos Xbee et modules BT et observer quelque chose grâce à notre SDR.''&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration des modules XBee ===&lt;br /&gt;
&lt;br /&gt;
Nous avons configuré deux XBee afin qu'ils puissent communiquer entre eux : &lt;br /&gt;
&lt;br /&gt;
Les modules XBee ont été montés sur des platines d'interface USB/série de manière à ce qu'on puisse les paramétrer via le programme de contrôle ''minicom''. &lt;br /&gt;
&lt;br /&gt;
Dans le doute, on supposera que les XBee communiquent à 9600 Baud. On exécute la commande suivante : &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;minicom -b 9600 -D /dev/ttyUSB0&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
On active l'echo local dans minicom, afin de pouvoir observer ce qui a été envoyé par liaison série au XBee ('''CTRL+A''' puis '''E''').&lt;br /&gt;
&lt;br /&gt;
Pour commencer le paramètrage il faut taper ''' +++ ''' rapidement. Le XBee nous répond OK, cela veut dire que nous sommes dans le mode configuration et que nous pouvons utiliser les commandes '''AT'''. (Redirection vers la liste des commandes AT XBee [https://cdn.sparkfun.com/assets/resources/2/9/22AT_Commands.pdf]).&lt;br /&gt;
&lt;br /&gt;
Comme nos XBee ont été utilisés auparavant, il a fallu les restaurer à l'état usine avec la commande '''ATRE'''.&lt;br /&gt;
&lt;br /&gt;
Si on souhaite que des XBee puissent s'envoyer des données il faut qu'ils soient sur le même canal (commande '''ATCH''') et aient le même PAN ID (commande '''ATID'''). Notre PAN ID sera '''BEE6''' et le canal sera celui par défaut '''C'''.&lt;br /&gt;
&lt;br /&gt;
Ensuite il faut leur donner une adresse de destination ('''ATDH''' &amp;amp; '''ATDL''') qui sera l'adresse broadcast, pour ce faire on entre &lt;br /&gt;
 ATDH=0000&lt;br /&gt;
 ATDL=FFFF&lt;br /&gt;
&lt;br /&gt;
Enfin '''ATMY''' représente l'ID du XBee, notre premier XBee aura comme ID 5000 et le second 5001.&lt;br /&gt;
&lt;br /&gt;
N'oublions pas de sauvegarder les paramètres avec '''ATWR'''.&lt;br /&gt;
&lt;br /&gt;
On vérifie que tout a bien été pris en compte :&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;&lt;br /&gt;
+++OK&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATID&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
BEE6&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
C&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
0&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDL&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
FFFF&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATMY&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
5000&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCN&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Puis on fait de même avec le deuxième XBee (ID 5001).&lt;br /&gt;
&lt;br /&gt;
Voilà, lorsque on envoie des caractères par liaison série sur 5000, la LED '''Tx''' de 5000 s'allume et la Led '''Rx''' de 5001 s'allume elle aussi. Cela signifie que l'envoi de donnée par onde radio s'effectue correctement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que les XBee émettent et reçoivent, on peut commencer les mesures avec notre SDR. Mais avant cela il va falloir bien se familiariser avec le logiciel GNU RADIO qui est assez difficile à prendre en main.&lt;br /&gt;
&lt;br /&gt;
=== Première prise en main du logiciel GNURADIO ===&lt;br /&gt;
&lt;br /&gt;
Installation de GNU radio avec les fonctions + drivers pour HackRF : &lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install gqrx-sdr gnuradio gr-osmosdr hackrf &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le bloc Osmocom Source sert de &amp;quot;passerelle&amp;quot; entre le logiciel et la SDR, il permet de transmettre les informations récupérées par le HackRF afin qu'on puisse les traiter avec d'autres bloc de fonctions.&lt;br /&gt;
&lt;br /&gt;
Si on veut pouvoir récuperer les données il faut passer l'argument ''hackrf=0'' dans la box périphérique du bloc Osmocom.&lt;br /&gt;
&lt;br /&gt;
Ci-dessous on peut voir le spectre environnant entre 2.44GHz et 2.460GHz grâce au bloc WX GUI FFT Sink.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ScreenGnuRadio.png|Interface de GNURadio]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous a permis d'effectuer notre première expérience. L'utilisation des deux Xbees nous a permis d'observer l'impact des Xbee sur le champ électromagéntique environnant.&lt;br /&gt;
&lt;br /&gt;
Si on analyse le spectre environnant grâce au module FFT de GNU Radio, lorsque les Xbee communiquent entre eux, on peut apercevoir un pic caractéristique propre.&lt;br /&gt;
En effet, lors de l'emission d'un message sur le port série, on a un pic qui se dégage du spectre d'amplitude -20dBm. Ce pic est caractéristique au canal de communication choisi et configuré sur le Xbee.&lt;br /&gt;
Néanmoins, le signal est perturbé par le bruit environnant. &lt;br /&gt;
L'expérience étant effectuée au sein de l'école, les signaux Wi-Fi perturberont l'étude.&lt;br /&gt;
Il faut noter que la norme IEEE 802.11 impose au Wi-Fi l'utilisation d'une bande passante s'étalant de 2.4 GHz à 2.5 GHz.&lt;br /&gt;
&lt;br /&gt;
La bande passante des modules Zigbee se décomposent en 16 canaux, allant de 2400 MHz à 2480 MHz par pas de 5 MHz.&lt;br /&gt;
&lt;br /&gt;
Le canal ici utilisé est le canal 13 (3ème canal) de fréquence 2415 MHz.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[Fichier:Channel135001.png|thumb|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Fichier:channel135000.png|thumb|none|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBeeCh13.png|Spectre de l'environnement autour du XBee|thumb|none|400 px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBeeCh13SND.png|Lors de l'envoi de données au XBee voisin|thumb|none|400 px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut observer un pic de puissance lors de l'envoi d'une donnée en série à la fréquence 2.415 GHz.&lt;br /&gt;
Il nous est maintenant nécessaire d'analyser de plus près les signaux et leurs fréquence centrale dans la bande perçue au dessus de -20dB.&lt;br /&gt;
&lt;br /&gt;
On réeffectuera une expérience en zone isolée des signaux parasites.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous avons principalement fait des recherches dans le but de mieux comprendre les signaux émis par le Xbee.&lt;br /&gt;
&lt;br /&gt;
En somme, nous étions confrontés à de nombreuses interrogations. Le fonctionnement du Xbee étant assez simple et la sécurité du protocole Zigbee étant moindre, y a t-il possibilité de démoduler le signal émis afin de développer nos études ?&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
[[Fichier:Switchchannel pyscript.PNG|upright=0.8|thumb|right|Script Python]]&lt;br /&gt;
&lt;br /&gt;
Après réflexion et consultation de nos encadrants, nous nous sommes rendu compte que la démodulation prévue lors de la semaine 4 n'aiderait pas à répondre à la problématique de notre sujet !  &lt;br /&gt;
&lt;br /&gt;
Afin de mieux visualiser les signaux des Xbee , on décide d'automatiser le processus d'envoi sur le port série des données vers le Xbee. C'est à dire concevoir un programme Python qui automatisera l'envoi de données et le changement de channel à intervalle de temps régulier (Changement toutes les 10 secondes). &lt;br /&gt;
&lt;br /&gt;
L'utilisation de Minicom '''n'était pas du tout la meilleure solution''' pour faire émettre les Xbee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Après quelques essais, on remarque que lorsque le Xbee émet sur le channel 13, il émet à environ 2,445GHz au lieu d'émettre à 2,415GHz soit une différence de 30MHz : Ceci n'est pas important, car ce que l'on souhaite remarquer c'est un éventuel décalage de la fréquence centrale entre deux Xbee différents. Si les deux Xbee n'ont pas la même frequence centrale on pourra conclure que la '''fréquence centrale''' de la porteuse du Xbee n'est pas '''une des clés''' permettant d''''identifier''' cet émetteur/récepteur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaines 6 et 7==&lt;br /&gt;
&lt;br /&gt;
Afin de mieux cerner le comportement électromagnétique des modules XBee, il nous est nécessaire de comprendre leur fonctionnement et le protocole Zigbee.&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous avons cherché à souligner le parallélisme entre étude fréquentielle par le spectre et étude temporelle du signal.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PlancheXPtest.jpg|thumb|right|Planche prototype]]&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous avons paramétré la fréquence centrale de capture du HackRF. En effet, bien que le HackRF dispose d'une large bande passante, afin de se focaliser sur la porteuse, il est indispensable de configurer le HackRF en conséquence.&lt;br /&gt;
En second lieu, pour éviter une variation du RSSI (Received Signal Strength Indication) et de la puissance du signal, nous devions mettre en place une prototype de &amp;quot;planche expérimentale&amp;quot; sur laquelle devaient être fixés nos différents modules (l'antenne de reception et les Xbees).&lt;br /&gt;
&lt;br /&gt;
La position des antennes les unes par rapport aux autres est fondamentale. Afin d'optimiser la reception, les antennes doivent être parallèles.&lt;br /&gt;
&lt;br /&gt;
Chaque Xbee est identifié par un chiffre (1 ou 2). En effet, l'attribution de ces chiffres sera définitive pour ne pas perturber la cohérence des expériences. &lt;br /&gt;
Leur position est aussi fondamentale. Ainsi, en fonction que le Xbee soit emetteur ou récepteur, il sera disposé différement sur la planche.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Expérience : Le XBee 1 émetteur directement connecté en série au PC===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:GrapheGNURadio01.png|thumb|left|150px|Schéma simple d'étude fréquentielle et temporelle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette expérience est la première mettant en place un contexte (un seul Xbee émetteur connecté en série au PC, le deuxième Xbee étant inactif) et nous permettra d'étudier le plus de cas possibles.&lt;br /&gt;
&lt;br /&gt;
Nous avons tout d'abord commencé par un graphe GNURadio simple permettant l'observation du spectre et du signal et la variation de la fréquence d'étude.&lt;br /&gt;
&lt;br /&gt;
Le script python a été réécrit afin que le XBee puisse émettre une chaîne de caractère &amp;quot;HELLO&amp;quot; * 1024. En effet, même si la fréquence de balayage du module HackRF peut être grandement augmentée, il faut éviter d'aller au dessous de 0.01s, finissant par consommer de manière considérable les ressources octroyées par le CPU le cas échéant.&lt;br /&gt;
Le fait d'augmenter la taille de la chaine de caractère permet de mieux synchroniser l'étude en temps réel avec la capture des données.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc émis les données sur le canal 20 (14 en hexadécimal), soit la fréquence centrale est à 2.450GHz selon la norme Zigbee. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Etude fréquentielle&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L'étude fréquentielle est similaire à celle réalisée auparavant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div center&amp;gt;&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[Fichier:Spectrefreq2.png|thumb|center|750px|Spectre fréquentiel au canal 14]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[Fichier:Spectrogram.png|thumb|center|250px|Spectrogramme]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on peut observer sur l'analyseur de spectre GNURadio que la fréquence centrale est située 2.450GHz.&lt;br /&gt;
&lt;br /&gt;
D'autre part, l'ensemble des fréquences qui dessinent le spectre s'étalent sur une large bande de fréquence. En effet, cette technique d'étalement appelée DSSS (Direct-Sequence Spread Spectrum) utilisé par les modules XBee permet au signal d'être moins sensible aux interférences et aux brouillages. En outre, même si la puissance du spectre dans sa globalité reste la même, la densité spectrale elle diminue considérablement, rendant le signal plus &amp;quot;discret&amp;quot;.&lt;br /&gt;
La différence de puissance entre le lobe principal et les premiers lobes secondaires sont de 30 dB, ce qui est aussi commun au DSSS.&lt;br /&gt;
&lt;br /&gt;
Le spectrogramme témoigne aussi de l'étalement du signal sur un peu plus de 6 MHz (3MHz de par et d'autre de la fréquence centrale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt; Etude temporelle &amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Signal temporel.png|thumb|left|500px|Signal observable centré à 2.450GHz lors de l'émission]]&lt;br /&gt;
&lt;br /&gt;
Le signal ici est séparé en deux composantes car il s'agit d'un signal complexe. Nous avons supposé en premier temps qu'il s'agissait du signal principal décalé de 180°, ce qui n'était pas le cas.&lt;br /&gt;
Après quelques recherches, cette séparation des composantes permet de transmettre deux fois plus de données sur la même bande passante.&lt;br /&gt;
Le signal observable témoigne d'une modulation bien spécifique au XBee. En effet, on peut observer des sauts de phase à différents points, qui correspondent à une modulation par changement de phase (modulation QPSK ou Quadratic Phase-Shift Keying). Ce sont ces sauts de phases qui permettent la transmission des bits.&lt;br /&gt;
Les changements de phase s'il y a se font toutes les µs. En outre, on peut observer un décalage (offset) entre la composante Q et la composante I de µs/2 (propre à la modulation OQPSK).&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé d'enregistrer ces données brutes dans un fichier et nous l'avons étudié avec Audacity, logiciel open-source de son, et donc de signaux ! L'inconvénient avec l'interface graphique QT de GNURadio est son manque de précision lors d'un dézoom sur le signal en temps réel. Audacity permet de palier à celà !&lt;br /&gt;
En outre, on peut voir que les paquets Xbee sont reconnaissables. En effet, le signal témoigne de la taille du paquet XBee.&lt;br /&gt;
&lt;br /&gt;
Le paquet XBee est constitué d'un premier header (header physique) de 6 octets :&lt;br /&gt;
- la séquence de préambule (4 octets) constitué de 32 bits à 0&lt;br /&gt;
&lt;br /&gt;
- l'indice de début du paquet fixé à 0x7A (1 octet)&lt;br /&gt;
&lt;br /&gt;
- la longueur du paquet (1 octet);&lt;br /&gt;
&lt;br /&gt;
d'un header MAC (7 à 27 octets en fonction des informations de l'adresse), d'un bloc FCS de fin de paquet (2 octets) et l'ensemble des données (de 1 à 104 octets).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Signal2.png|thumb|right|400px|On observe graphiquement qu'un paquet est transmis en 3846µs]]&lt;br /&gt;
[[Fichier:PacketXBee.png|400px|thumb|right|Paquet XBee]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Comme dit plus haut, les signaux émis par le XBee connaissent un étalement sur le spectre par DSSS.&lt;br /&gt;
Cet étalement s'effectue en divisant chaque symbole (correspondant à une série de 4 bits) transmis en &amp;lt;B&amp;gt;&amp;lt;I&amp;gt;chips&amp;lt;/I&amp;gt;&amp;lt;/B&amp;gt;.&lt;br /&gt;
Chaque symbole, soit 4 bits, correspond à 32 chips, et donc 32 états binaires (1 octet correspond à 64 chips).&lt;br /&gt;
Dans le cas de la norme ZigBee, la transmission de chacun des chips est synchronisé sur chaque µs (1 chip toutes les µs).&lt;br /&gt;
&lt;br /&gt;
Les signaux reçus par l'antenne HackRF étaient deux sinusoïdes modulées en phase et qui s'étalaient sur une période d'environ 3840µs (3846µs graphiquement mais il y a possibilité d'erreur à l'echelle du µs).&lt;br /&gt;
Sachant qu'un octet correspond à 64µs, on a :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;N_{octets} =\frac{2*T_{signal}}{64*T_{chip}}=\frac{2*3.840*10^{-6}}{64*10^{-6}}=120 octets&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'analogie peut être effectuée entre paquet Ethernet et paquet ZigBee. En effet, la taille limite des données d'un paquet est de 104 octets. La chaîne de caractère n'étant qu'envoyée par paquet, le paquet observé n'est que de 120 octets, ce qui est cohérent avec les caractéristiques du XBee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Hello1024secs.png|thumb|none|Temps de transmission de la chaîne de caractères &amp;quot;HELLO&amp;quot; 1024 fois]] &amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:AudacitySignal2.png|thumb|none|51 Paquets XBee portent la chaîne de caractère &amp;quot;HELLO&amp;quot; 1024 fois]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 8==&lt;br /&gt;
&lt;br /&gt;
L'étude des signaux posait réellement problème de par le fait qu'une grande partie de la capture faite n'était que purement le bruit sans signal (utile plus tard pour l'étude du SNR).&lt;br /&gt;
Prenons l'exemple d'un paquet de 21 octets (un paquet contenant une seule chaîne de caractères HELLO). Le signal s'étalerait en théorie sur 21*64 chips soit 672 chips. Sachant que la modulation est une modulation QPSK, on s'étale sur un temps de 672µs.&lt;br /&gt;
En effet, le Xbee transmet toutes les 100ms.&lt;br /&gt;
Donc qu'une partie du signal nous est utile.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décider d'écrire un script qui nous permettrait d'étudier le signal dans de meilleures conditions, et donc de le filtrer.&lt;br /&gt;
&lt;br /&gt;
Chaque capture de signal effectuée est enregistrée dans un fichier par le biais du bloc fonction &amp;lt;B&amp;gt;&amp;lt;I&amp;gt;File Sink&amp;lt;/I&amp;gt;&amp;lt;/B&amp;gt; du compagnon GNURadio. Néanmoins, les fichiers obtenus sont des fichiers binaires assez lourds (environ 500Mo pour une capture de 3s), ce qui est un réel problème et qui implique le filtrage du signal.&lt;br /&gt;
&lt;br /&gt;
La bibliothèque numpy pour python nous permet en outre directement d'importer les échantillons des signaux, les traduisant du binaire à un format cible (complexe flottant 64 bits) dans un Array par le biais de la fonction:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; f = scipy.fromfile(open(&amp;quot;Nom du fichier&amp;quot;), dtype=scipy.complex64) &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La première solution pour réduire ce signal était d'imposer un threshold directement sur le signal, supérieur au bruit, mais qui conduirait à une perte d'une partie du signal à étudier.&lt;br /&gt;
La deuxième solution qui a été retenue était tout simplement de calculer l'amplitude et la phase du signal et appliquer ce même threshold à l'amplitude.&lt;br /&gt;
&lt;br /&gt;
== Semaine 9 et 10==&lt;br /&gt;
&lt;br /&gt;
A partir de la semaine 10 nous avons procéder aux expériences pour avoir suffisamment de données et en tirer des conclusions.&lt;br /&gt;
&lt;br /&gt;
Lorsqu'on fait une acquisition d'un signal xbee , on peut maintenant via un script traiter cette acquisition et récupérer seulement les parties qui nous intéressent : A savoir la partie réelle et la partie imaginaire, l'amplitude du signal et enfin la phase du signal.&lt;br /&gt;
&lt;br /&gt;
Exemple ci dessous après acquisition + traitement de notre xbee n°2 :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Traitement xbee2.png|thumb|right|redresse=2|Signal Xbee2 post-traitement ]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Constellation xbee2.png|thumb|right|redresse=2|Diagramme de constellation xbee2 après utilisation de LightSignal]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'utilisation du script LightSignal permet de retirer toutes les phases en dehors du signal. Ainsi, on peut caractériser le diagramme de constellation comme un diagramme propre à la modulation QPSK. &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
import scipy&lt;br /&gt;
import numpy&lt;br /&gt;
import sys&lt;br /&gt;
&lt;br /&gt;
def binToComplex64(name):&lt;br /&gt;
    threshold=0.10&lt;br /&gt;
    tmp=scipy.fromfile(open(name+&amp;quot;_PhaseMeg&amp;quot;), dtype=scipy.complex64)&lt;br /&gt;
    tmp2=scipy.fromfile(open(name), dtype=scipy.complex64)&lt;br /&gt;
    &lt;br /&gt;
    f2 = open(name+&amp;quot;_filtre&amp;quot;, &amp;quot;w+&amp;quot;) &lt;br /&gt;
    f = open(name+&amp;quot;_PhaseMeg_filtre&amp;quot;,&amp;quot;w+&amp;quot;)&lt;br /&gt;
    &lt;br /&gt;
    p=1&lt;br /&gt;
    size=tmp.__len__()&lt;br /&gt;
    size2=tmp2.__len__()&lt;br /&gt;
    &lt;br /&gt;
    if size &amp;gt; size2:&lt;br /&gt;
        size=size2&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    ground=False&lt;br /&gt;
    newListSignal=[]&lt;br /&gt;
    newListMagnPh=[]&lt;br /&gt;
    for val in range(0,size): &lt;br /&gt;
        if(val&amp;gt;=(size/100)*p):&lt;br /&gt;
            print(str(p)+&amp;quot; %&amp;quot;)&lt;br /&gt;
            p=p+1&lt;br /&gt;
        if(tmp[val].real&amp;gt;threshold):&lt;br /&gt;
            if(ground==True):&lt;br /&gt;
                for i in range(0,1000):&lt;br /&gt;
                    newListSignal.append(numpy.complex64(0))&lt;br /&gt;
                    newListMagnPh.append(numpy.complex64(0))&lt;br /&gt;
                ground=False&lt;br /&gt;
            newListSignal.append(tmp2[val])&lt;br /&gt;
            newListMagnPh.append(numpy.complex64(tmp[val].real+tmp[val].imag*0.3j))&lt;br /&gt;
        else:&lt;br /&gt;
            ground=True&lt;br /&gt;
    &lt;br /&gt;
    tmp=numpy.asarray(newListMagnPh)&lt;br /&gt;
    tmp.tofile(f)&lt;br /&gt;
    tmp2=numpy.asarray(newListSignal) &lt;br /&gt;
    tmp2.tofile(f2)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    try:&lt;br /&gt;
        binToComplex64(sys.argv[1])&lt;br /&gt;
    except IndexError:&lt;br /&gt;
        print(&amp;quot;Donnez le nom du fichier\n&amp;quot;)&lt;br /&gt;
    except IOError:&lt;br /&gt;
        print(&amp;quot;Le fichier n'existe pas\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__=='__main__':&lt;br /&gt;
    main()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le diagramme de constellation témoigne de nouveau du type de modulation utilisé par le module XBee.&lt;br /&gt;
En effet, on observe quatre points de part et d'autre des axes de quadrature et d'inphase.&lt;br /&gt;
&lt;br /&gt;
==Semaine 11==&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé cette semaine d'étudier, ce qui est selon pour nous, l'une des pistes fondamentales de notre projet, et plus particulièrement de l'étude de nos signaux : le rapport signal bruit.&lt;br /&gt;
&lt;br /&gt;
L'objectif de cette semaine et de celle à venir était, à partir du signal acquis par le hackrf, d'effectuer le calcul du SNR (signal-to-noise ratio) tel que :&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;SNR =\frac{P_{signal}}{P_{bruit}}&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le script python qui nous a permis de communiquer entre les deux shields Xbee se verra amélioré afin de faire plusieurs acquisition des signaux lors de la communication entre les Xbee, effectuer une moyenne statistique, et de même lorsqu'il n'y a pas de communication.&lt;br /&gt;
&lt;br /&gt;
Nous avons essayé d'approcher le SNR directement depuis l'interface de GnuRadio par le biais de l'utilitaire graphique et le langage en bloc, néanmoins nous procéderons à l'étude de ce rapport avec Scilab ou Matlab.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaines supplémentaires==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Expérience : Variation de l'amplitude===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats &amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Conclusion sur l'expérience &amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
L'expérience n'a pas été fructueuse. Même si elle nous a permis de voir quelques différences (probablement provoquées pas des erreurs de capture et d'analyse), le HackRF nous limite beaucoup sur ce point de vue là. En effet, la fréquence d'échantillonage étant limitée à 20MHz, le HackRF n'est pas suffisamment précis pour capturer un nombre d'échantillons nous permettant de confirmer une quelconque hypothèse. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Code python utilisé pour l'étude du signal&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
def etudeAmplitude(name, liste_temps):&lt;br /&gt;
&lt;br /&gt;
    threshold_0=0.05 # Threshold&lt;br /&gt;
    threshold_1=0.4&lt;br /&gt;
    max_transition_time=50 #O&lt;br /&gt;
&lt;br /&gt;
    amppha=scipy.fromfile(open(name+&amp;quot;_PhaseMeg&amp;quot;), dtype=scipy.complex64) &lt;br /&gt;
&lt;br /&gt;
    p=1&lt;br /&gt;
    size=amppha.__len__()&lt;br /&gt;
    &lt;br /&gt;
    debut=1&lt;br /&gt;
    tps_variation=0 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    transition=False # Vérifie si le signal est en transition ou stable&lt;br /&gt;
&lt;br /&gt;
    for val in range(debut,size):&lt;br /&gt;
        if(val&amp;gt;=((size-debut)/100)*p):&lt;br /&gt;
            print(str(p)+&amp;quot; %&amp;quot;)&lt;br /&gt;
            p=p+1&lt;br /&gt;
&lt;br /&gt;
        if(amppha[val].real&amp;gt;threshold_0 and amppha[val].real&amp;lt;threshold_1): # Phase de transition du signal&lt;br /&gt;
            if(transition==False):&lt;br /&gt;
                transition=True&lt;br /&gt;
            tps_variation=tps_variation+1&lt;br /&gt;
&lt;br /&gt;
        elif(transition==True and amppha[val].real&amp;gt;threshold_1):&lt;br /&gt;
            if(amppha[val].real&amp;gt;=amppha[val-1].real-amppha[val-1].real*0.05 and amppha[val].real&amp;lt;=amppha[val-1].real+amppha[val-1].real*0.05): # L'amplitude du signal est stable&lt;br /&gt;
                if(tps_variation &amp;lt; max_transition_time):&lt;br /&gt;
                    liste_temps.append(tps_variation)&lt;br /&gt;
&lt;br /&gt;
                transition=False&lt;br /&gt;
                tps_variation=0&lt;br /&gt;
            else:&lt;br /&gt;
                tps_variation=tps_variation+1&lt;br /&gt;
        else:&lt;br /&gt;
            transition=False&lt;br /&gt;
            tps_variation=0&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Expérience : Temps de calcul du FCS entre le XBee1 et et le XBee2===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 et XBee2 sont alimentés sur 5V VCC par USB (connecté à l'ordinateur)&amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 et XBee2 disposent du firmware : 10EF &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 est d'abord emetteur et le XBee2 est recepteur puis inversement. Aucun paquet ACK n'est renvoyé de la part du recepteur &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On transmet la chaine de caractère HELLO 256 fois toutes les 1 secs&lt;br /&gt;
Les données étant assez conséquentes, le Xbee transmet plusieurs fragments du paquet.&lt;br /&gt;
L'objectif de cette expérience est d'étudier le temps entre chaque fragment d'un paquet.&lt;br /&gt;
L’espace de temps entre chacun des paquets permet de calculer le FCS (frame check sequence) afin de minimiser les erreurs de transmission.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:ChecksumGraphe.png|thumb|left|redresse=2|Les différents temps à mesurer]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Néanmoins, l’étude de ces “temps morts” se voit entravé par le fait que le module HackRF ne permette pas d’obtenir un signal clair sur plus de 5 secondes.&lt;br /&gt;
En outre, pour 5 secondes d’étude et pour une fréquence d’échantillonage de 20MHz (soit un temps Te=5.10e8), on compte 100.000.000 d’échantillons.&lt;br /&gt;
Le CPU lors de la capture était grandement sollicité, ce qui explique le fait que la capture soit compromise.&lt;br /&gt;
Pour régler ce problème, on a écrit un script shell de capture.&lt;br /&gt;
Ce script consiste à:&lt;br /&gt;
&amp;lt;br&amp;gt;- effectuer une capture d’une durée de 1 sec&lt;br /&gt;
&amp;lt;br&amp;gt;- d’enregistrer la capture&lt;br /&gt;
&amp;lt;br&amp;gt;- d’effectuer un traitement de ces paquets par un algorithme python en étudiant le temps entre chacun des fragments. Ce temps sera obtenu en nombre d’échantillons, défini avec un seuil d’acceptation absolu entre 150.000 et 300.000 échantillons (pour bien capturer ces temps intermédiaires et pas les temps provoqués par des signaux parasites ou du bruit), et pour affiner l’étude, on impose un seuil d’erreur de +-10% autour de la moyenne. La moyenne est calculée en continue&lt;br /&gt;
&amp;lt;br&amp;gt;- l’ensemble des valeurs obtenues sont enregistrées dans un fichier&lt;br /&gt;
&amp;lt;br&amp;gt;- on réeffectue la capture …&lt;br /&gt;
&lt;br /&gt;
On répète le processus un certains nombre de fois afin d’obtenir un nombre de valeurs nous permettant de nous conforter sur l'issue de l'expérience (environ 1000 valeurs)&lt;br /&gt;
&lt;br /&gt;
La capture et l'étude de chacun des modules dure une à deux heures.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats :&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans le cas du XBee1 (à gauche) et du XBee2 (à droite), voici les résultats obtenus :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Xbee1Graphe256.png|thumb|left|redresse=2|On peut observer des pics caractéristiques à l'envoi]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBee2Graphe256.png|thumb|left|redresse=2|Les mêmes pics caractéristiques confirment un comportement non-aléatoires du module]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
XBee1 : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 259675,81&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 8369.7417&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 70052576.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
XBee2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 258762.58&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 9165.4097&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 84004736.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les graphes présentent le nombre de répétitions des temps de calcul de fragements.&lt;br /&gt;
&lt;br /&gt;
On peut voir des pics spécifiques à certains points dans les deux expériences. Ces pics sont caractéristiques et au module XBee, et à la chaîne de caractère HELLO. Les deux expériences étant effectuées dans le même contexte, &lt;br /&gt;
&lt;br /&gt;
De même que pour le second Xbee, on retrouve des pics bien distincts à certains points.&lt;br /&gt;
&lt;br /&gt;
En outre, on peut voir que ces pics bien distincts se rapprochent de ceux du premier Xbee.&lt;br /&gt;
Néanmoins, même si la moyenne varie que très peu par rapport aux deux Xbee, la variance est assez différente.&lt;br /&gt;
&lt;br /&gt;
Pour confirmer ces observations, il est peut être nécessaire de répéter la même expérimentation sur un nombre d'échantillons plus grand.&lt;br /&gt;
&lt;br /&gt;
Ainsi, afin de confirmer la conjecture, on décide de faire d’autres captures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En superposant les deux graphes (Xbee1 en rouge et Xbee2 en bleu), on peut voir qu'il y a moins de dispersion dans le cas du XBee1, plus centré sur des valeurs précises, contrairement au Xbee2.&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBee1Xbee2Graphe.png|thumb|left|redresse=2]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour les deux nouveaux échantillons, on a les caractéristiques suivantes :&lt;br /&gt;
&amp;lt;U&amp;gt;Xbee1 sur 1688 échantillons&amp;lt;/U&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 260230.3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 8427.3923&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 71020941&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Xbee2 sur 1722 échantillons&amp;lt;/U&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 259899.41&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 9831.5106&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 96658601&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Conclusion de l'expérience&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
L’hypothèse qui est que la variance des temps &amp;quot;morts&amp;quot; entre chaque fragments de paquet, soit le temps de calcul du FCS pour le signal émis peut être considéré comme “clé” de distinction d’un module Xbee n'est donc pas à négliger. &lt;br /&gt;
&lt;br /&gt;
On peut même considérer que cette étude peut distinguer un module Xbee d'un autre électromagnétiquement parlant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Code python utilisé pour l'étude du signal&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def etudeSubdivPaquet(name, inter_time_values):&lt;br /&gt;
&lt;br /&gt;
threshold = 0.30&lt;br /&gt;
ground = false&lt;br /&gt;
p=1&lt;br /&gt;
&lt;br /&gt;
## On converti chacun des nombres binaires en complexe 64 (deux flottants 32 bits)##&lt;br /&gt;
amppha=scipy.fromfile(open(name+&amp;quot;_PhaseMeg&amp;quot;), dtype=scipy.complex64) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
## On récupère la taille du tableau de complexes (taille du signal) ##&lt;br /&gt;
size=amppha.__len__()&lt;br /&gt;
&lt;br /&gt;
    debut=0&lt;br /&gt;
    inter_time=0&lt;br /&gt;
    min_limit=150000&lt;br /&gt;
    max_limit=350000&lt;br /&gt;
    accept_range=1./10. ## Permet de mettre un seuil d'intervalle d'acceptation&lt;br /&gt;
    signalFnd=False&lt;br /&gt;
&lt;br /&gt;
    for val in range(debut,size):&lt;br /&gt;
        if(val&amp;gt;=((size-debut)/100)*p):&lt;br /&gt;
            print(str(p)+&amp;quot; %&amp;quot;)&lt;br /&gt;
            p=p+1&lt;br /&gt;
&lt;br /&gt;
        if(amppha[val].real&amp;gt;threshold):&lt;br /&gt;
            if(ground==True):&lt;br /&gt;
                if(signalFnd==True):&lt;br /&gt;
                    if(len(inter_time_values)&amp;gt;0):&lt;br /&gt;
                        moy=moyenne(inter_time_values)&lt;br /&gt;
                        if(inter_time &amp;gt;= moy-accept_range*moy and inter_time &amp;lt;= moy+accept_range*moy):&lt;br /&gt;
                            print(&amp;quot;Yes &amp;quot;+str(inter_time))&lt;br /&gt;
                            inter_time_values.append(inter_time)&lt;br /&gt;
                        inter_time=0&lt;br /&gt;
                    elif(inter_time&amp;gt;=min_limit and inter_time&amp;lt;=max_limit):&lt;br /&gt;
                        inter_time_values.append(inter_time)&lt;br /&gt;
                else:&lt;br /&gt;
                    signalFnd=True&lt;br /&gt;
                ground=False&lt;br /&gt;
        else:&lt;br /&gt;
            ground=True&lt;br /&gt;
            if(signalFnd==True):&lt;br /&gt;
                inter_time=inter_time+1&lt;br /&gt;
&lt;br /&gt;
    if(len(inter_time_values)&amp;gt;0):&lt;br /&gt;
        print(&amp;quot;Moyenne &amp;quot;+ str(moyenne(inter_time_values)))&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Rencontre avec Etienne Helluy Lafont ===&lt;br /&gt;
&lt;br /&gt;
Bien que plusieurs pistes ont pu être explorées, notre manque d'expertise dans le domaine de la radio logicielle nous a fait défaut sur nos recherches. En effet, après avoir calculé le SNR d'un de nos signaux, nous nous sommes retrouvés avec des résultats assez incohérents. De nombreuses erreurs peuvent se glisser et nous avions besoin de conseils à ce sujet.&lt;br /&gt;
&lt;br /&gt;
Etienne Helluy-Lafont est un doctorant qui fait sa thèse sur les sondes pour la détection d’intrusions dans les architectures réseau hétérogènes et massivement distribuées. Il développe un outil permettant d'analyser le spectre environnant, de donner des informations sur les signaux émis sur certains canaux et même de démoduler ces signaux. Son programme en C est flexible puisqu'il est adapté pour beaucoup d'antennes (Une des librairies qu'il utilise est SoapySDR [https://github.com/pothosware/SoapySDR/] qui possède des &amp;quot;codec&amp;quot; dont un pour notre HackRF !). Nous nous sommes servi de son outil afin d'avoir de bien meilleurs résultats pour les expériences sur le SNR des Xbee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Expérience : Variation du Rapport Signal Bruit en fonction de la distance de reception ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:FFTSNR.png|thumb|left|redresse=2|Calcul du SNR par FFT]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Fenetre.png|thumb|left|redresse=2|Calcul du SNR par fenêtre glissante]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L'objectif de cette expérience était de visualiser comment le rapport signal bruit (ou SNR) varie en fonction de la distance. &lt;br /&gt;
En effet, nous avions mis en suspens l'expérience qui consistait en la capture du SNR dû aux valeurs instables que l'on avait. &lt;br /&gt;
&lt;br /&gt;
La première idée était de faire une FFT du signal et de calculer le rapport en prenant la moyenne de sa puissance sur une bande de 2.4MHz (1.2Mhz de part et d'autre de la fréquence de capture du HackRF).&lt;br /&gt;
&lt;br /&gt;
Néanmoins, les caractéristiques du XBee (du point de vue de l'étalement spectral) rend le calcul du SNR imprécis. A la suite de la capture de signaux et de l'étude de ces mêmes signaux, les valeurs nous paraissaient incohérentes. &lt;br /&gt;
&lt;br /&gt;
[[Fichier:SNRcalc.png|thumb|left|470px|Pics de SNR]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons donc procédé à une seconde méthode de calcul qui consiste à utiliser une fenêtre glissante de taille 2^k échantillons. &lt;br /&gt;
Pour chaque échantillon du signal, on calculait le SNR tel que :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;SNR =\frac{P_{signal+bruit}}{P_{bruit}}=\frac{|A_{signal+bruit}|^2}{|A_{bruit}|^2}&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans notre cas, on a :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;SNR_x =20.log \frac{Moyenne(W_x[2^{k-1}:2^k])}{Moyenne(W_x[0:2^{k-1}-1])}&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
W_x étant la fenêtre à l'échantillon x du signal, le rapport signal bruit est obtenu lorsqu'on a un pic.&lt;br /&gt;
La fenêtre choisie doit être suffisamment grande pour avoir une précision optimale.&lt;br /&gt;
On impose ainsi un threshold pour éviter des erreurs pouvant influencer les résultats de manière considérable.&lt;br /&gt;
Ainsi, on obtient les valeurs SNR cherchées.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous voulons donc vérifier si la mesure du SNR est une expérience pertinente pour l'identification du matériel. Nous allons prendre plusieurs XBee et mesurer le SNR à différentes distances de l'antenne SDR.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 1&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 et XBee2 sont alimentés sur 5V VCC par USB (connecté à l'ordinateur)&amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 et XBee2 disposent du firmware : 10EF &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee3 et XBee4 sont des modèles XBeePro &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Nous cherchons à observer la différence entre le XBee1 et XBee2 dans la même situation. &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Durant les expériences, le montage XBee1 connecté en USB sera le XBee témoin. &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PointsMoyenneXBee1Dist.png|thumb|left|470px|Les différentes valeurs du SNR acquises en fonction de la distance pour le XBee1]]&lt;br /&gt;
&lt;br /&gt;
Dans notre cas, le modèle XBee1 connecté en série à notre machine nous a servi de composant témoin afin d'étudier les signaux des autres modèles. En effet, suite à la capture et l'étude des signaux, on peut voir que le nuage de points qui constitue notre graphe témoigne d'un phénomène électromagnétique ondulatoire quant au champ. Avec la distance, plus l'on éloigne le module, plus le rapport signal sur bruit diminue (le contraire nous aurait étonné). En outre, la variation ondulatoire peut être caractérisée par le champs éléctrique.&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé de refaire cette expérience avec les trois autres XBee directement connectés à notre machine.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ALLXBEE comparaison SNR distance.png|thumb|right]]&lt;br /&gt;
&lt;br /&gt;
De part les potentielles erreurs et les différentes perturbations électromagnétiques ambiantes, la valeur du SNR peut être affectée. Il n'est pas possible directement par les caractéristiques du rapport signal bruit d'effectuer le distinguo entre le XBee1 et le XBee2 (contrairement à l'expérience basée sur la subdivision de paquets). Cependant, les XBee3 et XBee4 présentent une caractéristique commune. Le SNR est beaucoup plus élevé. &lt;br /&gt;
&lt;br /&gt;
En effet, le pic de courant d'un XBee est de 45mA à la transmission pour une alimentation de 3.3V en tension continu, tandis qu'un module XBee pro, le pic de courant atteint les 150mA. Cette différence électronique permet ainsi au XBee pro de communiquer sur une plus grande zone (750m contre 90m pour un XBee simple).&lt;br /&gt;
&lt;br /&gt;
Ainsi, on peut conclure de cette expérience que le SNR est un élément témoin de la consommation énergétique d'un composant électrique (du moins de l'antenne).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:XBEE1 hardware comparaison SNR distance.png|thumb|400px|right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 2&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 est d'abord connecté à un Arduino UNO 328P par le biais d'un shield XBee Libelium puis est connecté à un Arduino Mega 2560 par le biais du même shield &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 dispose du firmware : 10EF &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
On peut observer que même si l'unité de contrôle n'est pas l'ordinateur mais le micro-contrôleur (ici ATMega2560 et ATMega328P), le rapport signal bruit ne change pas réellement. Néanmoins, il était pour nous intéressant de noter qu'un léger gap se créé à 30 et 40 cm de la SDR entre la communication USB et la communication avec les micro-contrôleurs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:XBEE3 hardware comparaison SNR distance.png|thumb|400px|right]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 3&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; L'expérience est similaire que pour le module XBee1 mais avec le XBee3 (pro) &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee3 est d'abord connecté à un Arduino UNO 328P par le biais d'un shield XBee Libelium puis est connecté à un Arduino Mega 2560 par le biais du même shield &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee3 dispose du firmware : 10EF &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
En outre, les résultats obtenus lors de l'expérience avec le XBee3 nous indique que le phénomène ondulatoire observé durant les tests précédents est moins souligné dans la communication avec les micro-contrôleur (toujours à 30 et 40cm) et celà après plusieurs tests.&lt;br /&gt;
&lt;br /&gt;
Des tests plus précis auraient été plusieurs avantageux et nous auraient permis de trancher sur la décision de l'importance du SNR concernant la différenciation de différentes unités de contrôle.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:XBEE1 firmware comparaison SNR distance.png|thumb|400px|right]]&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte 4&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 ici est connecté en série et dispose dans un premier temps du firmware 10EF (le firmware le plus récent) &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Après capture et expérimentation, on décide de réeffectuer la même chose avec le même XBee (XBee1) avec le firmware 10ED &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
Les acquisitions étant faites dans les mêmes conditions, il semblerait que le changement de firmware ait un petit impact sur la puissance d’émission : Cette petite différence de décibel ne semble pas aléatoire puisqu’on peut clairement voir que la courbe orange reste toujours inférieure à la courbe bleue, or le niveau de bruit est resté inchangé. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Conclusion de l'expérience&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
===Expérience : Variation du Rapport Signal Bruit en fonction du canal de fréquence===&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ALLXBEE comparaison SNR freq.png|thumb|400px|left]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:XBEE1 hardware comparaison SNR freq.png|thumb|400px|right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:XBEE3 hardware comparaison SNR freq.png|thumb|400px|right]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Code python utilisé pour l'étude du signal&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def SNRStudy(name):&lt;br /&gt;
    tmp=scipy.fromfile(open(name+&amp;quot;_PhaseMeg&amp;quot;), dtype=scipy.complex64)&lt;br /&gt;
&lt;br /&gt;
    f = open(name+&amp;quot;_SNR_Values&amp;quot;,&amp;quot;a&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
    p=1&lt;br /&gt;
    size = tmp.__len__()&lt;br /&gt;
    magnitude = (numpy.real(tmp)).tolist()&lt;br /&gt;
&lt;br /&gt;
    threshold=10&lt;br /&gt;
&lt;br /&gt;
    P=0&lt;br /&gt;
    SNR_graph=[]&lt;br /&gt;
    SNR=[]&lt;br /&gt;
&lt;br /&gt;
    win_sz=64&lt;br /&gt;
&lt;br /&gt;
    if(size&amp;gt;=win_sz):&lt;br /&gt;
        for val in range(0,size-win_sz):&lt;br /&gt;
&lt;br /&gt;
            if(val&amp;gt;=((size-win_sz)/100)*p): # Affiche l'état de l'étude&lt;br /&gt;
                print(str(p)+&amp;quot; %&amp;quot;)&lt;br /&gt;
                p=p+1&lt;br /&gt;
&lt;br /&gt;
            SNR_graph.append( 20*math.log((numpy.mean(magnitude[val + win_sz/2 : val + win_sz-1]))/(numpy.mean(magnitude[val+0 : val+win_sz/2-1])), 10) )&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
    size=len(SNR_graph)&lt;br /&gt;
&lt;br /&gt;
    for i in range(1, size-1):&lt;br /&gt;
        if (SNR_graph[i]&amp;gt;SNR_graph[i-1] and SNR_graph[i]&amp;gt;SNR_graph[i+1] and SNR_graph[i]&amp;gt;threshold):&lt;br /&gt;
            SNR.append(SNR_graph[i])&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    tmp=numpy.asarray(SNR)&lt;br /&gt;
    tmp.tofile(f)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    try:&lt;br /&gt;
        SNRStudy(sys.argv[1])&lt;br /&gt;
    #except IndexError:&lt;br /&gt;
        #print(&amp;quot;Donnez le nom du fichier\n&amp;quot;)&lt;br /&gt;
    except IOError:&lt;br /&gt;
        print(&amp;quot;Le fichier n'existe pas\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'archive des scripts python : &lt;br /&gt;
&lt;br /&gt;
[archive.zip]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le rapport&lt;br /&gt;
&lt;br /&gt;
[Rapport.pdf]&lt;/div&gt;</summary>
		<author><name>Amoreau</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=74329</id>
		<title>IMA4 2018/2019 P70</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=74329"/>
				<updated>2019-05-05T15:24:05Z</updated>
		
		<summary type="html">&lt;p&gt;Amoreau : /* Rencontre avec un doctorant */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;font-size: 30px; width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;Impact du matériel et du logiciel sur le champ électromagnétique&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Projet'''&amp;lt;/ins&amp;gt; : Impact du matériel et du logiciel sur le rayonnement électromagnétique&lt;br /&gt;
&lt;br /&gt;
''Nous proposons d'évaluer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et la consommation électrique.''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Etudiants'''&amp;lt;/ins&amp;gt; : Souheib KHINACHE et Antoine MOREAU&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Encadrants'''&amp;lt;/ins&amp;gt; : Alexandre BOE, Xavier REDON et Thomas VANTROYS&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'internet des objets est un marché en plein essor. La communication entre les différents objets connectés crée un nuage de signaux autour d'eux. Ces derniers sont vus par les utilisateurs comme des boîtes noires : le fonctionnement se fait sans en connaître les composants matériels et logiciels. &lt;br /&gt;
Néanmoins, ces objets, de par leurs propriétés électroniques, créent des fuites électromagnétiques impactant le champ environnant. &lt;br /&gt;
&lt;br /&gt;
Bien qu'ils peuvent porter à débat sur l'impact sur la santé, ces signaux peuvent représenter de réelles sources d'informations sur l'aspect matériel et applicatif de l'objet.&lt;br /&gt;
&lt;br /&gt;
Il serait donc intéressant d'avoir idée générale sur le fonctionnement du système en interprétant les ondes électromagnétiques émises par ce système.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Les principaux objectifs de ce projet seront donc de mesurer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et sur la consommation électrique.&lt;br /&gt;
Pour cela, l'outil potentiel avec lequel nous pourrions travailler serait une sonde de champ électromagnétique afin d'établir des mesures. &lt;br /&gt;
Cependant, nous pourrions concevoir notre propre système de capture et d'interprétation à partir d'une antenne, de filtres de fréquences et d'un microcontrôleur (on commencera par un ATMega328P). Il sera nécessaire de prendre en compte les perturbations issues de notre appareil de mesure et d'en tenir compte.&lt;br /&gt;
&lt;br /&gt;
On effectuera ainsi plusieurs expérimentations sur différents supports d'étude :&lt;br /&gt;
*l'aspect &amp;quot;Hardware&amp;quot; en étudiant différents modèles pour un même type de shield  &lt;br /&gt;
*l'aspect calculatoire du matériel en se basant sur l'impact des microcontrôleurs en fonction du modèle (ATMega328P et ATMega2560)&lt;br /&gt;
*l'aspect &amp;quot;Software&amp;quot;, en étudiant l'impact du logiciel et du firmware d'un même composant (différents firmwares pour un même shield Wi-Fi)&lt;br /&gt;
*l'aspect puissance des composants électroniques de gestion de puissance (ponts, hacheurs, onduleurs...).&lt;br /&gt;
&lt;br /&gt;
L'étude des différentes informations se fera par traitement des signaux électromagnétiques et des spectres. &lt;br /&gt;
Afin de mieux appréhender le problème, il nous est nécessaire de comprendre les phénomènes physiques issus de la notion d'électromagnétisme.&lt;br /&gt;
&lt;br /&gt;
Ces études mèneront à une étape plus complexe : l'interprétation des signaux. En effet, l'un des objectifs de ce projet est de comprendre du mieux possible le fonctionnement d'un système sans y avoir accès directement, et donc dans ce contexte &amp;quot;traduire&amp;quot; un ensemble de signaux électromagnétiques.&lt;br /&gt;
&lt;br /&gt;
On pourra en outre apporter un aspect visuel à l'étude en rajoutant une interface informatique.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
Bien qu'aux yeux de nombreuses personnes le bruit électromagnétique créé par les équipements électroniques du quotidien peut porter à controverse (débats concernant l'impact sur la santé par exemple), il peut être une source d'informations. &lt;br /&gt;
De nos jours, les ondes électromagnétiques restent un vaste champ d'étude, sujettes à de nombreuses thèses et recherches au sein des laboratoires.&lt;br /&gt;
&lt;br /&gt;
On peut prendre l'exemple de [https://www.eurekalert.org/pub_releases/2015-01/giot-rwt010715.php Milos Prvulovic], professeur à l'Institut Technologique de Géorgie, ayant simulé un contexte de cybercafé, dans lequel il place une antenne magnétique, un ordinateur portable cible et un ordinateur &amp;quot;espion&amp;quot;. Il réussit, grâce aux signaux EM émis par l'impulsion de l'appui des touches clavier à capter un message écrit par un ordinateur cible. &lt;br /&gt;
&lt;br /&gt;
Néanmoins, dans le quotidien, l'utilisation des sondes électromagnétiques se fait pour l'étude énergétique d'un système électronique (fuites électromagnétiques anormales, preuves d'une anomalie...) afin de respecter certaines normes législatives. Le code du travail par exemple réglemente et définit des valeurs seuils par le biais des articles R. 4453-3 et R. 4453-4.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
'''NBM-520 de NARDA STS'''&lt;br /&gt;
[[Fichier: NBM_TS.png|thumb|300px|NBM-TS, application des appareils NBM]]&lt;br /&gt;
NARDA STS est une entreprise qui fournit des outils de mesure. Elle met à disposition aux professionnels des sondes électromagnétiques.&lt;br /&gt;
La NBM-520 est un appareil de la franchise, mesurant le champ électrique et magnétique. Elle donne des valeurs précises du champ électromagnétique ambiant sur une large bande. Elle propose différentes sondes modulables permettant une souplesse au niveau de l'étude en fonction des besoins, avec des sondes pouvant étudier des signaux de fréquence de 100kHz à 6GHz ou même de 300kHz à 50GHz (en fonction de la sonde choisie).&lt;br /&gt;
&lt;br /&gt;
En outre, le dispositif peut se connecter en USB sur PC afin d'envoyer les données capturées et d'en faire une étude. Le dispositif propose un logiciel d'étude, NBM-TS, permettant d'observer du champ en fonction du temps, de la fréquence, de la position...&lt;br /&gt;
&lt;br /&gt;
L'équipement est utilisé par l'ANF (l'Agence Nationale des Fréquences, agence gérant l'ensemble des normes autour des radiofréquences), et est donc un gage de qualité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Avantages :''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Large bande de fréquence&lt;br /&gt;
* Matériel solide&lt;br /&gt;
* Application fonctionnelle permettant l'étude et gestion des données&lt;br /&gt;
* Possibilité d'étudier séparément champ électrique et magnétique&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Inconvénients:''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Impossible d'étudier les basses fréquences (appareils sous tension, bobinages...)&lt;br /&gt;
* Prix élevé : à partir de 3100€&lt;br /&gt;
* La cible de ce produit est surtout les professionels&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
'''Une pita.'''&lt;br /&gt;
&lt;br /&gt;
''Comment mon pain à pita vole ta clé RSA ?''&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Pita.jpg|200px|thumb|left|Une pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Des chercheurs israéliens ont découvert un moyen de capturer des clés de cryptage RSA, réputées comme inviolables, par le biais d'une pita... du moins avec un dispositif suffisamment petit pour être caché dans un pain à pita. &lt;br /&gt;
Le dispositif, renommé PITA pour Portable Instrument for Trace Acquisition a la particularité de capturer les ondes radio électromagnétiques émanantes d'un PC, qu'il soit connecté à un réseau ou pas.&lt;br /&gt;
Les différentes opérations du processeur sont identifiées en distinguant les différents modèles de l'activité radio sur le spectre EM.&lt;br /&gt;
&lt;br /&gt;
Bien que la capture des clés RSA a été faite dans des conditions particulières (modification du processeur de l'ordinateur cible), il est néanmoins possible, selon les chercheurs, d'identifier quelle type d'activité est exercée par l'ordinateur ainsi que son état.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PITA.jpg|300px|thumb|right|Un dessous de pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'un des points importants concernant le dispositif est son coût : moins de 300 euros.&lt;br /&gt;
L'appareil dispose :&lt;br /&gt;
* d'un PC portatif (PC-on-a-stick) ''Rikomagic MK802 IV'',&lt;br /&gt;
* d'un recepteur radio SDR ''FUNcube Dongle Pro+''&lt;br /&gt;
* d'une antenne radio&lt;br /&gt;
* d'une batterie&lt;br /&gt;
* d'une antenne WiFi&lt;br /&gt;
* d'une carte MicroSD&lt;br /&gt;
* d'un adapteur d'antenne&lt;br /&gt;
* et d'une '''pita'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le dispositif aurait une portée de 50cm. &lt;br /&gt;
Les chercheurs israéliens ont collaboré avec GNU Private Guard (logiciel de cryptage asymétrique) afin de protéger contre ces attaques les clés de cryptage.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
&lt;br /&gt;
''Scénario 1''&lt;br /&gt;
&lt;br /&gt;
Gérard a toujours le flair pour les bonnes affaires. Il a acheté une centaine de clés WiFi à un prix dérisoire sur AloXpresso afin de faire du profit à la revente. Le vendeur lui garantit que toutes les clés fonctionnent correctement. Gérard veut vérifier. Après vérification, 99 des clés sur 100 fonctionnent comme prévu. Gérard aimerait être sûr du disfonctionnement, mais Gérard n'est pas une pointure en informatique. &lt;br /&gt;
&lt;br /&gt;
Coup de génie ! Il se rappelle qu'il dispose d'un dispositif qui capte les ondes EM et les interprète directement. C'est le moment de tester ça. Il remarque une anomalie sur le spectre.&lt;br /&gt;
Il décide de contacter le revendeur pour lui signaler un disfonctionnement sur l'une des clé. &lt;br /&gt;
Pas de soucis. Le vendeur, étant bon prince, lui envoie une autre clé USB et lui fait une ristourne.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Scénario 2''&lt;br /&gt;
&lt;br /&gt;
La police fait une perquisition chez un individu soupçonné de graves délits. Cela fait plusieurs mois que la brigade criminelle prépare l'intervention, et une fois sur les lieux ils arrêtent le soupçonné malfaiteur.&lt;br /&gt;
Cependant avant de repartir, elle veut faire l'acquisition d'un maximum de preuves. Elle veut alors prendre l'essentiel des objets, dont certains objets éléctroniques connectés de l'individu dont elle pourra extraire les informations qui serviront à le faire tomber.&lt;br /&gt;
&lt;br /&gt;
Par chance, elle dispose d'un petit outil qui scannera les signatures alentours des objets connectés, comme des téléphones cachés, clés USB wifi dissimulées dans le décor etc..&lt;br /&gt;
Et si le suspect avait modifié malignement un objet connecté banal pour l'utiliser autrement à ses fins, la police le découvrirait car elle possède une base de données de toutes les signatures spectrales des objets connectés sur le marché et celle de l'objet modifié ne collerait pas avec celle de la base de données.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
&lt;br /&gt;
'''Comment étudier les signaux malgré les perturbations électromagnétiques ambiants et les faibles signaux des µC ?'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les signaux électromagnétiques des microcontrôleurs ou d'autres composants peuvent être faibles. Il y a une possibilité pour palier à ce problème, c'est de capter les signaux depuis une antenne émettrice que l'on rajoute à l'objet d'étude. &lt;br /&gt;
Nous utiliserons un SDR (Software Defined-Radio) afin de capter les ondes radio et les étudier directement sur PC. Le filtrage s'effectuera ainsi de manière numérique. Plusieurs tests seront effectués pour le même objet à étudier (quand on parle d'objet, on évoque un ensemble de plusieurs composants, comme par exemple une alimentation, un micro-contrôleur et une antenne). Ainsi, de manière statistique, nous pourrons en déduire un pattern récurrent pour chaque expérience en les effectuant dans différents environnements (pourquoi pas une chambre anachoïque). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons &lt;br /&gt;
* Capter le signal émis par un objet connecté le plus précisément possible&lt;br /&gt;
&lt;br /&gt;
* Concevoir nos propres objets connectés tous différents mais basés sur un même modèle&lt;br /&gt;
&lt;br /&gt;
* Interpréter les spectrogrammes, faire une étude statistique des signaux émis par nos différents objets et en tirer des conclusions&lt;br /&gt;
&lt;br /&gt;
* Répertorier dans une base de données les signatures de nos objets , voire de quelques objets disponibles sur le marché&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix logiciel :&lt;br /&gt;
&lt;br /&gt;
- La distribution Linux Pentoo ou Kali pour traiter les signaux avec GNU RADIO (Suite logicielle dédiée à l’implémentation de radios logicielles et de systèmes de traitement du signal).&lt;br /&gt;
&lt;br /&gt;
- FemtoOS pour l'OS des ATMEGA328P et ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix Matériel : &lt;br /&gt;
&lt;br /&gt;
- Plusieurs modules radios émetteurs &lt;br /&gt;
&lt;br /&gt;
- Plusieurs microcontrôleurs ATMEGA328P et un ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
- Des alimentations identiques pour chaque PCB&lt;br /&gt;
&lt;br /&gt;
- Un HackRF pour la réception des signaux&lt;br /&gt;
&lt;br /&gt;
- Une antenne 50 Ohm pour le HackRF [https://www.passion-radio.fr/accessoires-sdr/antenne-ant500-74.html]&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous devons préparer tout le matériel qui servira à faire nos tests. C'est à dire concevoir :&lt;br /&gt;
&lt;br /&gt;
- Un ensemble SDR/PC qui traitera le signal reçu avec GNU RADIO.&lt;br /&gt;
&lt;br /&gt;
- Une multitude de PCB qui seront utilisés comme objets connectés (Sur chacun d'entre eux on trouvera au minimum une antenne radio, un microcontrôleur et une alimentation)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de récupérer une &amp;quot;signature&amp;quot; d'un de nos objets , il faudra faire plus de 50 analyses spectrales pour conclure statistiquement sur une bonne signature qui caractérisera l'objet.&lt;br /&gt;
&lt;br /&gt;
Nous devons donc dans un second temps: &lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques mais qui ont un '''firmware''' différent.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques qui ont pour seule différence le '''microcontrôleur'''.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques dont seul le '''PCB''' diffère.&lt;br /&gt;
&lt;br /&gt;
Grâce à tous ces tests , nous pourrons conclure et voir l'impact qu'à le matériel ou le logiciel sur la signature d'un objet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enfin si les délais nous le permettent, nous pourrons réaliser un software qui cartographiera nos objets connectés dans la pièce grâce à la puissance de la signature reçue (Ce qui devrait être réalisable puisqu'à ce stade nous aurons une base de donnée des signatures).&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
|3&lt;br /&gt;
|8&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Recherches&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|6&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Prise en main de GnuRadio&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Configuration Xbee&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Expériences&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|5&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|4&lt;br /&gt;
|15&lt;br /&gt;
|9&lt;br /&gt;
|8&lt;br /&gt;
|7&lt;br /&gt;
|8&lt;br /&gt;
|8&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
[[Fichier:HackrfOne.jpeg|200px|thumb|right|Le HackRF One]]&lt;br /&gt;
Durant cette semaine, nous avons continué nos recherches notamment sur le moyen de transmission de nos objets connectés. Nous avons confirmé notre choix de notre SDR : Monsieur Boé nous a confirmé que des HackRF seraient disponibles dans les laboratoires et qu'il pourrait nous en prêter un. On disposera donc d'une antenne puissante pour traiter les signaux émis par nos objets communiquants. &lt;br /&gt;
&lt;br /&gt;
Il faudra coupler notre HackRF avec un logiciel appelé GNU RADIO qui est un logiciel très complet ( Pour information : la NASA a utilisé GNU RADIO afin de rétablir le contact avec une sonde spatiale abandonnée ). Afin de faire tourner ce logiciel libre, nous aurons besoin de la distribution Kali Linux, ex Backtrack.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Choix des émetteurs/récepteurs === &lt;br /&gt;
&lt;br /&gt;
Nous avons décidé que nos objets connectés communiqueront dans deux '''bandes de fréquences ISM''', l'une à '''900 MHz''' grâce à des modules Digi Xbee et l'autre à '''2,4 GHz''' par le moyen de modules émetteurs Bluetooth. On rappellera que les Digi Xbee et les émetteurs/récepteurs Bluetooth seront pilotés par des ATMEGA 2560.&lt;br /&gt;
&lt;br /&gt;
Les Xbee ne communiqueront pas entre eux et émettront en continu les mêmes données car ils le peuvent, alors que les émetteurs/récepteurs Bluetooth devront s'échanger des données si on veut pouvoir observer un quelconque signal autour de la fréquence de leurs porteuses. &lt;br /&gt;
&lt;br /&gt;
On voudra observer premièrement, si avec deux objets dans les '''mêmes''' conditions (donc même µc et même émetteur), on peut ou non '''distinguer une différence'''. Ceci est fondamental pour la suite des expériences, puisque si les deux émettent à la même fréquence, on pourra faire varier plusieurs paramètres afin de trouver '''des clés''' (des signes) qui pourraient aider à l'identification du matériel.&lt;br /&gt;
&lt;br /&gt;
Ces clés représentent différents facteurs potentiels d'identification du signal (le rapport signal-bruit en fonction de la distance par exemple...).&lt;br /&gt;
&lt;br /&gt;
''On planifie alors pour la semaine suivante de réussir à faire émettre, en utilisant simplement des breadboards pour commencer, nos Xbee et modules BT et observer quelque chose grâce à notre SDR.''&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration des modules XBee ===&lt;br /&gt;
&lt;br /&gt;
Nous avons configuré deux XBee afin qu'ils puissent communiquer entre eux : &lt;br /&gt;
&lt;br /&gt;
Les modules XBee ont été montés sur des platines d'interface USB/série de manière à ce qu'on puisse les paramétrer via le programme de contrôle ''minicom''. &lt;br /&gt;
&lt;br /&gt;
Dans le doute, on supposera que les XBee communiquent à 9600 Baud. On exécute la commande suivante : &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;minicom -b 9600 -D /dev/ttyUSB0&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
On active l'echo local dans minicom, afin de pouvoir observer ce qui a été envoyé par liaison série au XBee ('''CTRL+A''' puis '''E''').&lt;br /&gt;
&lt;br /&gt;
Pour commencer le paramètrage il faut taper ''' +++ ''' rapidement. Le XBee nous répond OK, cela veut dire que nous sommes dans le mode configuration et que nous pouvons utiliser les commandes '''AT'''. (Redirection vers la liste des commandes AT XBee [https://cdn.sparkfun.com/assets/resources/2/9/22AT_Commands.pdf]).&lt;br /&gt;
&lt;br /&gt;
Comme nos XBee ont été utilisés auparavant, il a fallu les restaurer à l'état usine avec la commande '''ATRE'''.&lt;br /&gt;
&lt;br /&gt;
Si on souhaite que des XBee puissent s'envoyer des données il faut qu'ils soient sur le même canal (commande '''ATCH''') et aient le même PAN ID (commande '''ATID'''). Notre PAN ID sera '''BEE6''' et le canal sera celui par défaut '''C'''.&lt;br /&gt;
&lt;br /&gt;
Ensuite il faut leur donner une adresse de destination ('''ATDH''' &amp;amp; '''ATDL''') qui sera l'adresse broadcast, pour ce faire on entre &lt;br /&gt;
 ATDH=0000&lt;br /&gt;
 ATDL=FFFF&lt;br /&gt;
&lt;br /&gt;
Enfin '''ATMY''' représente l'ID du XBee, notre premier XBee aura comme ID 5000 et le second 5001.&lt;br /&gt;
&lt;br /&gt;
N'oublions pas de sauvegarder les paramètres avec '''ATWR'''.&lt;br /&gt;
&lt;br /&gt;
On vérifie que tout a bien été pris en compte :&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;&lt;br /&gt;
+++OK&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATID&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
BEE6&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
C&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
0&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDL&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
FFFF&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATMY&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
5000&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCN&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Puis on fait de même avec le deuxième XBee (ID 5001).&lt;br /&gt;
&lt;br /&gt;
Voilà, lorsque on envoie des caractères par liaison série sur 5000, la LED '''Tx''' de 5000 s'allume et la Led '''Rx''' de 5001 s'allume elle aussi. Cela signifie que l'envoi de donnée par onde radio s'effectue correctement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que les XBee émettent et reçoivent, on peut commencer les mesures avec notre SDR. Mais avant cela il va falloir bien se familiariser avec le logiciel GNU RADIO qui est assez difficile à prendre en main.&lt;br /&gt;
&lt;br /&gt;
=== Première prise en main du logiciel GNURADIO ===&lt;br /&gt;
&lt;br /&gt;
Installation de GNU radio avec les fonctions + drivers pour HackRF : &lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install gqrx-sdr gnuradio gr-osmosdr hackrf &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le bloc Osmocom Source sert de &amp;quot;passerelle&amp;quot; entre le logiciel et la SDR, il permet de transmettre les informations récupérées par le HackRF afin qu'on puisse les traiter avec d'autres bloc de fonctions.&lt;br /&gt;
&lt;br /&gt;
Si on veut pouvoir récuperer les données il faut passer l'argument ''hackrf=0'' dans la box périphérique du bloc Osmocom.&lt;br /&gt;
&lt;br /&gt;
Ci-dessous on peut voir le spectre environnant entre 2.44GHz et 2.460GHz grâce au bloc WX GUI FFT Sink.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ScreenGnuRadio.png|Interface de GNURadio]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous a permis d'effectuer notre première expérience. L'utilisation des deux Xbees nous a permis d'observer l'impact des Xbee sur le champ électromagéntique environnant.&lt;br /&gt;
&lt;br /&gt;
Si on analyse le spectre environnant grâce au module FFT de GNU Radio, lorsque les Xbee communiquent entre eux, on peut apercevoir un pic caractéristique propre.&lt;br /&gt;
En effet, lors de l'emission d'un message sur le port série, on a un pic qui se dégage du spectre d'amplitude -20dBm. Ce pic est caractéristique au canal de communication choisi et configuré sur le Xbee.&lt;br /&gt;
Néanmoins, le signal est perturbé par le bruit environnant. &lt;br /&gt;
L'expérience étant effectuée au sein de l'école, les signaux Wi-Fi perturberont l'étude.&lt;br /&gt;
Il faut noter que la norme IEEE 802.11 impose au Wi-Fi l'utilisation d'une bande passante s'étalant de 2.4 GHz à 2.5 GHz.&lt;br /&gt;
&lt;br /&gt;
La bande passante des modules Zigbee se décomposent en 16 canaux, allant de 2400 MHz à 2480 MHz par pas de 5 MHz.&lt;br /&gt;
&lt;br /&gt;
Le canal ici utilisé est le canal 13 (3ème canal) de fréquence 2415 MHz.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[Fichier:Channel135001.png|thumb|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Fichier:channel135000.png|thumb|none|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBeeCh13.png|Spectre de l'environnement autour du XBee|thumb|none|400 px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBeeCh13SND.png|Lors de l'envoi de données au XBee voisin|thumb|none|400 px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut observer un pic de puissance lors de l'envoi d'une donnée en série à la fréquence 2.415 GHz.&lt;br /&gt;
Il nous est maintenant nécessaire d'analyser de plus près les signaux et leurs fréquence centrale dans la bande perçue au dessus de -20dB.&lt;br /&gt;
&lt;br /&gt;
On réeffectuera une expérience en zone isolée des signaux parasites.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous avons principalement fait des recherches dans le but de mieux comprendre les signaux émis par le Xbee.&lt;br /&gt;
&lt;br /&gt;
En somme, nous étions confrontés à de nombreuses interrogations. Le fonctionnement du Xbee étant assez simple et la sécurité du protocole Zigbee étant moindre, y a t-il possibilité de démoduler le signal émis afin de développer nos études ?&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
[[Fichier:Switchchannel pyscript.PNG|upright=0.8|thumb|right|Script Python]]&lt;br /&gt;
&lt;br /&gt;
Après réflexion et consultation de nos encadrants, nous nous sommes rendu compte que la démodulation prévue lors de la semaine 4 n'aiderait pas à répondre à la problématique de notre sujet !  &lt;br /&gt;
&lt;br /&gt;
Afin de mieux visualiser les signaux des Xbee , on décide d'automatiser le processus d'envoi sur le port série des données vers le Xbee. C'est à dire concevoir un programme Python qui automatisera l'envoi de données et le changement de channel à intervalle de temps régulier (Changement toutes les 10 secondes). &lt;br /&gt;
&lt;br /&gt;
L'utilisation de Minicom '''n'était pas du tout la meilleure solution''' pour faire émettre les Xbee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Après quelques essais, on remarque que lorsque le Xbee émet sur le channel 13, il émet à environ 2,445GHz au lieu d'émettre à 2,415GHz soit une différence de 30MHz : Ceci n'est pas important, car ce que l'on souhaite remarquer c'est un éventuel décalage de la fréquence centrale entre deux Xbee différents. Si les deux Xbee n'ont pas la même frequence centrale on pourra conclure que la '''fréquence centrale''' de la porteuse du Xbee n'est pas '''une des clés''' permettant d''''identifier''' cet émetteur/récepteur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaines 6 et 7==&lt;br /&gt;
&lt;br /&gt;
Afin de mieux cerner le comportement électromagnétique des modules XBee, il nous est nécessaire de comprendre leur fonctionnement et le protocole Zigbee.&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous avons cherché à souligner le parallélisme entre étude fréquentielle par le spectre et étude temporelle du signal.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PlancheXPtest.jpg|thumb|right|Planche prototype]]&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous avons paramétré la fréquence centrale de capture du HackRF. En effet, bien que le HackRF dispose d'une large bande passante, afin de se focaliser sur la porteuse, il est indispensable de configurer le HackRF en conséquence.&lt;br /&gt;
En second lieu, pour éviter une variation du RSSI (Received Signal Strength Indication) et de la puissance du signal, nous devions mettre en place une prototype de &amp;quot;planche expérimentale&amp;quot; sur laquelle devaient être fixés nos différents modules (l'antenne de reception et les Xbees).&lt;br /&gt;
&lt;br /&gt;
La position des antennes les unes par rapport aux autres est fondamentale. Afin d'optimiser la reception, les antennes doivent être parallèles.&lt;br /&gt;
&lt;br /&gt;
Chaque Xbee est identifié par un chiffre (1 ou 2). En effet, l'attribution de ces chiffres sera définitive pour ne pas perturber la cohérence des expériences. &lt;br /&gt;
Leur position est aussi fondamentale. Ainsi, en fonction que le Xbee soit emetteur ou récepteur, il sera disposé différement sur la planche.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Expérience : Le XBee 1 émetteur directement connecté en série au PC===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:GrapheGNURadio01.png|thumb|left|150px|Schéma simple d'étude fréquentielle et temporelle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette expérience est la première mettant en place un contexte (un seul Xbee émetteur connecté en série au PC, le deuxième Xbee étant inactif) et nous permettra d'étudier le plus de cas possibles.&lt;br /&gt;
&lt;br /&gt;
Nous avons tout d'abord commencé par un graphe GNURadio simple permettant l'observation du spectre et du signal et la variation de la fréquence d'étude.&lt;br /&gt;
&lt;br /&gt;
Le script python a été réécrit afin que le XBee puisse émettre une chaîne de caractère &amp;quot;HELLO&amp;quot; * 1024. En effet, même si la fréquence de balayage du module HackRF peut être grandement augmentée, il faut éviter d'aller au dessous de 0.01s, finissant par consommer de manière considérable les ressources octroyées par le CPU le cas échéant.&lt;br /&gt;
Le fait d'augmenter la taille de la chaine de caractère permet de mieux synchroniser l'étude en temps réel avec la capture des données.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc émis les données sur le canal 14, soit la fréquence centrale est à 2.420GHz selon la norme Zigbee. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Etude fréquentielle&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L'étude fréquentielle est similaire à celle réalisée auparavant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div center&amp;gt;&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[Fichier:Spectrefreq2.png|thumb|center|750px|Spectre fréquentiel au canal 14]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[Fichier:Spectrogram.png|thumb|center|250px|Spectrogramme]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on peut observer sur l'analyseur de spectre GNURadio que la fréquence centrale est située 2.450GHz. Nous n'avons pas trouvé la raison mais il s'agit sûrement d'un décalage au niveau applicatif.&lt;br /&gt;
&lt;br /&gt;
D'autre part, l'ensemble des fréquences qui dessinent le spectre s'étalent sur une large bande de fréquence. En effet, cette technique d'étalement appelée DSSS (Direct-Sequence Spread Spectrum) utilisé par les modules XBee permet au signal d'être moins sensible aux interférences et aux brouillages. En outre, même si la puissance du spectre dans sa globalité reste la même, la densité spectrale elle diminue considérablement, rendant le signal plus &amp;quot;discret&amp;quot;.&lt;br /&gt;
La différence de puissance entre le lobe principal et les premiers lobes secondaires sont de 30 dB, ce qui est aussi commun au DSSS.&lt;br /&gt;
&lt;br /&gt;
Le spectrogramme témoigne aussi de l'étalement du signal sur un peu plus de 6 MHz (3MHz de par et d'autre de la fréquence centrale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt; Etude temporelle &amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Signal temporel.png|thumb|left|500px|Signal observable centré à 2.450GHz lors de l'émission]]&lt;br /&gt;
&lt;br /&gt;
Le signal ici est séparé en deux composantes car il s'agit d'un signal complexe. Nous avons supposé en premier temps qu'il s'agissait du signal principal décalé de 180°, ce qui n'était pas le cas.&lt;br /&gt;
Après quelques recherches, cette séparation des composantes permet de transmettre deux fois plus de données sur la même bande passante.&lt;br /&gt;
Le signal observable témoigne d'une modulation bien spécifique au XBee. En effet, on peut observer des sauts de phase à différents points, qui correspondent à une modulation par changement de phase (modulation QPSK ou Quadratic Phase-Shift Keying). Ce sont ces sauts de phases qui permettent la transmission des bits.&lt;br /&gt;
Les changements de phase s'il y a se font toutes les µs. En outre, on peut observer un décalage (offset) entre la composante Q et la composante I de µs/2 (propre à la modulation OQPSK).&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé d'enregistrer ces données brutes dans un fichier et nous l'avons étudié avec Audacity, logiciel open-source de son, et donc de signaux ! L'inconvénient avec l'interface graphique QT de GNURadio est son manque de précision lors d'un dézoom sur le signal en temps réel. Audacity permet de palier à celà !&lt;br /&gt;
En outre, on peut voir que les paquets Xbee sont reconnaissables. En effet, le signal témoigne de la taille du paquet XBee.&lt;br /&gt;
&lt;br /&gt;
Le paquet XBee est constitué d'un premier header (header physique) de 6 octets :&lt;br /&gt;
- la séquence de préambule (4 octets) constitué de 32 bits à 0&lt;br /&gt;
&lt;br /&gt;
- l'indice de début du paquet fixé à 0x7A (1 octet)&lt;br /&gt;
&lt;br /&gt;
- la longueur du paquet (1 octet);&lt;br /&gt;
&lt;br /&gt;
d'un header MAC (7 à 27 octets en fonction des informations de l'adresse), d'un bloc FCS de fin de paquet (2 octets) et l'ensemble des données (de 1 à 104 octets).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Signal2.png|thumb|right|400px|On observe graphiquement qu'un paquet est transmis en 3846µs]]&lt;br /&gt;
[[Fichier:PacketXBee.png|400px|thumb|right|Paquet XBee]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Comme dit plus haut, les signaux émis par le XBee connaissent un étalement sur le spectre par DSSS.&lt;br /&gt;
Cet étalement s'effectue en divisant chaque symbole (correspondant à une série de 4 bits) transmis en &amp;lt;B&amp;gt;&amp;lt;I&amp;gt;chips&amp;lt;/I&amp;gt;&amp;lt;/B&amp;gt;.&lt;br /&gt;
Chaque symbole, soit 4 bits, correspond à 32 chips, et donc 32 états binaires (1 octet correspond à 64 chips).&lt;br /&gt;
Dans le cas de la norme ZigBee, la transmission de chacun des chips est synchronisé sur chaque µs (1 chip toutes les µs).&lt;br /&gt;
&lt;br /&gt;
Les signaux reçus par l'antenne HackRF étaient deux sinusoïdes modulées en phase et qui s'étalaient sur une période d'environ 3840µs (3846µs graphiquement mais il y a possibilité d'erreur à l'echelle du µs).&lt;br /&gt;
Sachant qu'un octet correspond à 64µs, on a :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;N_{octets} =\frac{2*T_{signal}}{64*T_{chip}}=\frac{2*3.840*10^{-6}}{64*10^{-6}}=120 octets&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'analogie peut être effectuée entre paquet Ethernet et paquet ZigBee. En effet, la taille limite des données d'un paquet est de 104 octets. La chaîne de caractère n'étant qu'envoyée par paquet, le paquet observé n'est que de 120 octets, ce qui est cohérent avec les caractéristiques du XBee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Hello1024secs.png|thumb|none|Temps de transmission de la chaîne de caractères &amp;quot;HELLO&amp;quot; 1024 fois]] &amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:AudacitySignal2.png|thumb|none|51 Paquets XBee portent la chaîne de caractère &amp;quot;HELLO&amp;quot; 1024 fois]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 8==&lt;br /&gt;
&lt;br /&gt;
L'étude des signaux posait réellement problème de par le fait qu'une grande partie de la capture faite n'était que purement le bruit sans signal (utile plus tard pour l'étude du SNR).&lt;br /&gt;
Prenons l'exemple d'un paquet de 21 octets (un paquet contenant une seule chaîne de caractères HELLO). Le signal s'étalerait en théorie sur 21*64 chips soit 672 chips. Sachant que la modulation est une modulation QPSK, on s'étale sur un temps de 672µs.&lt;br /&gt;
En effet, le Xbee transmet toutes les 100ms.&lt;br /&gt;
Donc qu'une partie du signal nous est utile.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décider d'écrire un script qui nous permettrait d'étudier le signal dans de meilleures conditions, et donc de le filtrer.&lt;br /&gt;
&lt;br /&gt;
Chaque capture de signal effectuée est enregistrée dans un fichier par le biais du bloc fonction &amp;lt;B&amp;gt;&amp;lt;I&amp;gt;File Sink&amp;lt;/I&amp;gt;&amp;lt;/B&amp;gt; du compagnon GNURadio. Néanmoins, les fichiers obtenus sont des fichiers binaires assez lourds (environ 500Mo pour une capture de 3s), ce qui est un réel problème et qui implique le filtrage du signal.&lt;br /&gt;
&lt;br /&gt;
La bibliothèque numpy pour python nous permet en outre directement d'importer les échantillons des signaux, les traduisant du binaire à un format cible (complexe flottant 64 bits) dans un Array par le biais de la fonction:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; f = scipy.fromfile(open(&amp;quot;Nom du fichier&amp;quot;), dtype=scipy.complex64) &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La première solution pour réduire ce signal était d'imposer un threshold directement sur le signal, supérieur au bruit, mais qui conduirait à une perte d'une partie du signal à étudier.&lt;br /&gt;
La deuxième solution qui a été retenue était tout simplement de calculer l'amplitude et la phase du signal et appliquer ce même threshold à l'amplitude.&lt;br /&gt;
&lt;br /&gt;
== Semaine 9 et 10==&lt;br /&gt;
&lt;br /&gt;
A partir de la semaine 10 nous avons procéder aux expériences pour avoir suffisamment de données et en tirer des conclusions.&lt;br /&gt;
&lt;br /&gt;
Lorsqu'on fait une acquisition d'un signal xbee , on peut maintenant via un script traiter cette acquisition et récupérer seulement les parties qui nous intéressent : A savoir la partie réelle et la partie imaginaire, l'amplitude du signal et enfin la phase du signal.&lt;br /&gt;
&lt;br /&gt;
Exemple ci dessous après acquisition + traitement de notre xbee n°2 :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Traitement xbee2.png|thumb|right|redresse=2|Signal Xbee2 post-traitement ]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Constellation xbee2.png|thumb|right|redresse=2|Diagramme de constellation xbee2 après utilisation de LightSignal]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'utilisation du script LightSignal permet de retirer toutes les phases en dehors du signal. Ainsi, on peut caractériser le diagramme de constellation comme un diagramme propre à la modulation QPSK. &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
import scipy&lt;br /&gt;
import numpy&lt;br /&gt;
import sys&lt;br /&gt;
&lt;br /&gt;
def binToComplex64(name):&lt;br /&gt;
    threshold=0.10&lt;br /&gt;
    tmp=scipy.fromfile(open(name+&amp;quot;_PhaseMeg&amp;quot;), dtype=scipy.complex64)&lt;br /&gt;
    tmp2=scipy.fromfile(open(name), dtype=scipy.complex64)&lt;br /&gt;
    &lt;br /&gt;
    f2 = open(name+&amp;quot;_filtre&amp;quot;, &amp;quot;w+&amp;quot;) &lt;br /&gt;
    f = open(name+&amp;quot;_PhaseMeg_filtre&amp;quot;,&amp;quot;w+&amp;quot;)&lt;br /&gt;
    &lt;br /&gt;
    p=1&lt;br /&gt;
    size=tmp.__len__()&lt;br /&gt;
    size2=tmp2.__len__()&lt;br /&gt;
    &lt;br /&gt;
    if size &amp;gt; size2:&lt;br /&gt;
        size=size2&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    ground=False&lt;br /&gt;
    newListSignal=[]&lt;br /&gt;
    newListMagnPh=[]&lt;br /&gt;
    for val in range(0,size): &lt;br /&gt;
        if(val&amp;gt;=(size/100)*p):&lt;br /&gt;
            print(str(p)+&amp;quot; %&amp;quot;)&lt;br /&gt;
            p=p+1&lt;br /&gt;
        if(tmp[val].real&amp;gt;threshold):&lt;br /&gt;
            if(ground==True):&lt;br /&gt;
                for i in range(0,1000):&lt;br /&gt;
                    newListSignal.append(numpy.complex64(0))&lt;br /&gt;
                    newListMagnPh.append(numpy.complex64(0))&lt;br /&gt;
                ground=False&lt;br /&gt;
            newListSignal.append(tmp2[val])&lt;br /&gt;
            newListMagnPh.append(numpy.complex64(tmp[val].real+tmp[val].imag*0.3j))&lt;br /&gt;
        else:&lt;br /&gt;
            ground=True&lt;br /&gt;
    &lt;br /&gt;
    tmp=numpy.asarray(newListMagnPh)&lt;br /&gt;
    tmp.tofile(f)&lt;br /&gt;
    tmp2=numpy.asarray(newListSignal) &lt;br /&gt;
    tmp2.tofile(f2)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    try:&lt;br /&gt;
        binToComplex64(sys.argv[1])&lt;br /&gt;
    except IndexError:&lt;br /&gt;
        print(&amp;quot;Donnez le nom du fichier\n&amp;quot;)&lt;br /&gt;
    except IOError:&lt;br /&gt;
        print(&amp;quot;Le fichier n'existe pas\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__=='__main__':&lt;br /&gt;
    main()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le diagramme de constellation témoigne de nouveau du type de modulation utilisé par le module XBee.&lt;br /&gt;
En effet, on observe quatre points de part et d'autre des axes de quadrature et d'inphase.&lt;br /&gt;
&lt;br /&gt;
==Semaine 11==&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé cette semaine d'étudier, ce qui est selon pour nous, l'une des pistes fondamentales de notre projet, et plus particulièrement de l'étude de nos signaux : le rapport signal bruit.&lt;br /&gt;
&lt;br /&gt;
L'objectif de cette semaine et de celle à venir était, à partir du signal acquis par le hackrf, d'effectuer le calcul du SNR (signal-to-noise ratio) tel que :&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;SNR =\frac{P_{signal}}{P_{bruit}}&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le script python qui nous a permis de communiquer entre les deux shields Xbee se verra amélioré afin de faire plusieurs acquisition des signaux lors de la communication entre les Xbee, effectuer une moyenne statistique, et de même lorsqu'il n'y a pas de communication.&lt;br /&gt;
&lt;br /&gt;
Nous avons essayé d'approcher le SNR directement depuis l'interface de GnuRadio par le biais de l'utilitaire graphique et le langage en bloc, néanmoins nous procéderons à l'étude de ce rapport avec Scilab ou Matlab.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaines supplémentaires==&lt;br /&gt;
&lt;br /&gt;
===Expérience : Temps de calcul du FCS entre le XBee1 et et le XBee2===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 et XBee2 sont alimentés sur 5V VCC par USB (connecté à l'ordinateur)&amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 et XBee2 disposent du firmware : 10EF &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 est d'abord emetteur et le XBee2 est recepteur puis inversement. Aucun paquet ACK n'est renvoyé de la part du recepteur &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On transmet la chaine de caractère HELLO 256 fois toutes les 1 secs&lt;br /&gt;
Les données étant assez conséquentes, le Xbee transmet plusieurs fragments du paquet.&lt;br /&gt;
L'objectif de cette expérience est d'étudier le temps entre chaque fragment d'un paquet.&lt;br /&gt;
L’espace de temps entre chacun des paquets permet de calculer le FCS (frame check sequence) afin de minimiser les erreurs de transmission.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:ChecksumGraphe.png|thumb|left|redresse=2|Les différents temps à mesurer]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Néanmoins, l’étude de ces “temps morts” se voit entravé par le fait que le module HackRF ne permette pas d’obtenir un signal clair sur plus de 5 secondes.&lt;br /&gt;
En outre, pour 5 secondes d’étude et pour une fréquence d’échantillonage de 20MHz (soit un temps Te=5.10e8), on compte 100.000.000 d’échantillons.&lt;br /&gt;
Le CPU lors de la capture était grandement sollicité, ce qui explique le fait que la capture soit compromise.&lt;br /&gt;
Pour régler ce problème, on a écrit un script shell de capture.&lt;br /&gt;
Ce script consiste à:&lt;br /&gt;
&amp;lt;br&amp;gt;- effectuer une capture d’une durée de 1 sec&lt;br /&gt;
&amp;lt;br&amp;gt;- d’enregistrer la capture&lt;br /&gt;
&amp;lt;br&amp;gt;- d’effectuer un traitement de ces paquets par un algorithme python en étudiant le temps entre chacun des fragments. Ce temps sera obtenu en nombre d’échantillons, défini avec un seuil d’acceptation absolu entre 150.000 et 300.000 échantillons (pour bien capturer ces temps intermédiaires et pas les temps provoqués par des signaux parasites ou du bruit), et pour affiner l’étude, on impose un seuil d’erreur de +-10% autour de la moyenne. La moyenne est calculée en continue&lt;br /&gt;
&amp;lt;br&amp;gt;- l’ensemble des valeurs obtenues sont enregistrées dans un fichier&lt;br /&gt;
&amp;lt;br&amp;gt;- on réeffectue la capture …&lt;br /&gt;
&lt;br /&gt;
On répète le processus un certains nombre de fois afin d’obtenir un nombre de valeurs nous permettant de nous conforter sur l'issue de l'expérience (environ 1000 valeurs)&lt;br /&gt;
&lt;br /&gt;
La capture et l'étude de chacun des modules dure une à deux heures.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats :&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans le cas du XBee1 (à gauche) et du XBee2 (à droite), voici les résultats obtenus :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Xbee1Graphe256.png|thumb|left|redresse=2|On peut observer des pics caractéristiques à l'envoi]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBee2Graphe256.png|thumb|left|redresse=2|Les mêmes pics caractéristiques confirment un comportement non-aléatoires du module]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
XBee1 : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 259675,81&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 8369.7417&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 70052576.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
XBee2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 258762.58&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 9165.4097&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 84004736.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les graphes présentent le nombre de répétitions des temps de calcul de fragements.&lt;br /&gt;
&lt;br /&gt;
On peut voir des pics spécifiques à certains points dans les deux expériences. Ces pics sont caractéristiques et au module XBee, et à la chaîne de caractère HELLO. Les deux expériences étant effectuées dans le même contexte, &lt;br /&gt;
&lt;br /&gt;
De même que pour le second Xbee, on retrouve des pics bien distincts à certains points.&lt;br /&gt;
&lt;br /&gt;
En outre, on peut voir que ces pics bien distincts se rapprochent de ceux du premier Xbee.&lt;br /&gt;
Néanmoins, même si la moyenne varie que très peu par rapport aux deux Xbee, la variance est assez différente.&lt;br /&gt;
&lt;br /&gt;
Pour confirmer ces observations, il est peut être nécessaire de répéter la même expérimentation sur un nombre d'échantillons plus grand.&lt;br /&gt;
&lt;br /&gt;
Ainsi, afin de confirmer la conjecture, on décide de faire d’autres captures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En superposant les deux graphes (Xbee1 en rouge et Xbee2 en bleu), on peut voir qu'il y a moins de dispersion dans le cas du XBee1, plus centré sur des valeurs précises, contrairement au Xbee2.&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBee1Xbee2Graphe.png|thumb|left|redresse=2]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour les deux nouveaux échantillons, on a les caractéristiques suivantes :&lt;br /&gt;
&amp;lt;U&amp;gt;Xbee1 sur 1688 échantillons&amp;lt;/U&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 260230.3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 8427.3923&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 71020941&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Xbee2 sur 1722 échantillons&amp;lt;/U&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 259899.41&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 9831.5106&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 96658601&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Conclusion de l'expérience&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
L’hypothèse qui est que la variance des temps &amp;quot;morts&amp;quot; entre chaque fragments de paquet, soit le temps de calcul du FCS pour le signal émis peut être considéré comme “clé” de distinction d’un module Xbee n'est donc pas à négliger. &lt;br /&gt;
&lt;br /&gt;
On peut même considérer que cette étude peut distinguer un module Xbee d'un autre électromagnétiquement parlant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Algorithme python utilisé pour l'étude du signal&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def etudeSubdivPaquet(name, inter_time_values):&lt;br /&gt;
&lt;br /&gt;
threshold = 0.30&lt;br /&gt;
ground = false&lt;br /&gt;
p=1&lt;br /&gt;
&lt;br /&gt;
## On converti chacun des nombres binaires en complexe 64 (deux flottants 32 bits)##&lt;br /&gt;
amppha=scipy.fromfile(open(name+&amp;quot;_PhaseMeg&amp;quot;), dtype=scipy.complex64) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
## On récupère la taille du tableau de complexes (taille du signal) ##&lt;br /&gt;
size=amppha.__len__()&lt;br /&gt;
&lt;br /&gt;
    debut=0&lt;br /&gt;
    inter_time=0&lt;br /&gt;
    min_limit=150000&lt;br /&gt;
    max_limit=350000&lt;br /&gt;
    accept_range=1./10. ## Permet de mettre un seuil d'intervalle d'acceptation&lt;br /&gt;
    signalFnd=False&lt;br /&gt;
&lt;br /&gt;
    for val in range(debut,size):&lt;br /&gt;
        if(val&amp;gt;=((size-debut)/100)*p):&lt;br /&gt;
            print(str(p)+&amp;quot; %&amp;quot;)&lt;br /&gt;
            p=p+1&lt;br /&gt;
&lt;br /&gt;
        if(amppha[val].real&amp;gt;threshold):&lt;br /&gt;
            if(ground==True):&lt;br /&gt;
                if(signalFnd==True):&lt;br /&gt;
                    if(len(inter_time_values)&amp;gt;0):&lt;br /&gt;
                        moy=moyenne(inter_time_values)&lt;br /&gt;
                        if(inter_time &amp;gt;= moy-accept_range*moy and inter_time &amp;lt;= moy+accept_range*moy):&lt;br /&gt;
                            print(&amp;quot;Yes &amp;quot;+str(inter_time))&lt;br /&gt;
                            inter_time_values.append(inter_time)&lt;br /&gt;
                        inter_time=0&lt;br /&gt;
                    elif(inter_time&amp;gt;=min_limit and inter_time&amp;lt;=max_limit):&lt;br /&gt;
                        inter_time_values.append(inter_time)&lt;br /&gt;
                else:&lt;br /&gt;
                    signalFnd=True&lt;br /&gt;
                ground=False&lt;br /&gt;
        else:&lt;br /&gt;
            ground=True&lt;br /&gt;
            if(signalFnd==True):&lt;br /&gt;
                inter_time=inter_time+1&lt;br /&gt;
&lt;br /&gt;
    if(len(inter_time_values)&amp;gt;0):&lt;br /&gt;
        print(&amp;quot;Moyenne &amp;quot;+ str(moyenne(inter_time_values)))&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Expérience : SNR ===&lt;br /&gt;
&lt;br /&gt;
Maintenant nous voulons vérifier si la mesure du SNR est une expérience pertinente pour l'identification des xbee. Nous allons prendre plusieurs xbee , et nous les déplacerons dans la salle à des endroits précis. A chaque déplacement nous mesurerons le SNR grâce à notre algorithme. &lt;br /&gt;
&lt;br /&gt;
Ce script écrit en python permet de :&lt;br /&gt;
&lt;br /&gt;
=== Rencontre avec un doctorant ===&lt;br /&gt;
&lt;br /&gt;
Bien que plusieurs pistes ont pu être explorées, notre manque d'expertise dans le domaine de la radio logicielle nous a fait défaut sur nos recherches. En effet, après avoir calculé le SNR d'un de nos signaux, nous nous sommes retrouvés avec des résultats assez incohérents. De nombreuses erreurs peuvent se glisser et nous avions besoin de conseils à ce sujet.&lt;br /&gt;
&lt;br /&gt;
Etienne Helluy-Lafont est un doctorant qui fait sa thèse sur les sondes pour la détection d’intrusions dans les architectures réseau hétérogènes et massivement distribuées. Il développe un outil permettant d'analyser le spectre environnant, de donner des informations sur les signaux émis sur certains canaux et même de démoduler ces signaux. Son programme en c est flexible puisqu'il est adapté pour beaucoup d'antennes (Une des librairies qu'il utilise est SoapySDR [https://github.com/pothosware/SoapySDR/] qui possède des &amp;quot;codec&amp;quot; dont un pour notre HackRF !). Nous nous sommes servi de son outil afin d'avoir de bien meilleurs résultats pour les expériences sur le SNR des Xbee.&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'archive des scripts python : &lt;br /&gt;
&lt;br /&gt;
[archive.zip]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le rapport&lt;br /&gt;
&lt;br /&gt;
[Rapport.pdf]&lt;/div&gt;</summary>
		<author><name>Amoreau</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=74260</id>
		<title>IMA4 2018/2019 P70</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=74260"/>
				<updated>2019-05-04T11:05:45Z</updated>
		
		<summary type="html">&lt;p&gt;Amoreau : /* Expérience : Temps de calcul du FCS entre le XBee1 et et le XBee2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;font-size: 30px; width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;Impact du matériel et du logiciel sur le champ électromagnétique&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Projet'''&amp;lt;/ins&amp;gt; : Impact du matériel et du logiciel sur le rayonnement électromagnétique&lt;br /&gt;
&lt;br /&gt;
''Nous proposons d'évaluer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et la consommation électrique.''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Etudiants'''&amp;lt;/ins&amp;gt; : Souheib KHINACHE et Antoine MOREAU&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Encadrants'''&amp;lt;/ins&amp;gt; : Alexandre BOE, Xavier REDON et Thomas VANTROYS&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'internet des objets est un marché en plein essor. La communication entre les différents objets connectés crée un nuage de signaux autour d'eux. Ces derniers sont vus par les utilisateurs comme des boîtes noires : le fonctionnement se fait sans en connaître les composants matériels et logiciels. &lt;br /&gt;
Néanmoins, ces objets, de par leurs propriétés électroniques, créent des fuites électromagnétiques impactant le champ environnant. &lt;br /&gt;
&lt;br /&gt;
Bien qu'ils peuvent porter à débat sur l'impact sur la santé, ces signaux peuvent représenter de réelles sources d'informations sur l'aspect matériel et applicatif de l'objet.&lt;br /&gt;
&lt;br /&gt;
Il serait donc intéressant d'avoir idée générale sur le fonctionnement du système en interprétant les ondes électromagnétiques émises par ce système.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Les principaux objectifs de ce projet seront donc de mesurer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et sur la consommation électrique.&lt;br /&gt;
Pour cela, l'outil potentiel avec lequel nous pourrions travailler serait une sonde de champ électromagnétique afin d'établir des mesures. &lt;br /&gt;
Cependant, nous pourrions concevoir notre propre système de capture et d'interprétation à partir d'une antenne, de filtres de fréquences et d'un microcontrôleur (on commencera par un ATMega328P). Il sera nécessaire de prendre en compte les perturbations issues de notre appareil de mesure et d'en tenir compte.&lt;br /&gt;
&lt;br /&gt;
On effectuera ainsi plusieurs expérimentations sur différents supports d'étude :&lt;br /&gt;
*l'aspect &amp;quot;Hardware&amp;quot; en étudiant différents modèles pour un même type de shield  &lt;br /&gt;
*l'aspect calculatoire du matériel en se basant sur l'impact des microcontrôleurs en fonction du modèle (ATMega328P et ATMega2560)&lt;br /&gt;
*l'aspect &amp;quot;Software&amp;quot;, en étudiant l'impact du logiciel et du firmware d'un même composant (différents firmwares pour un même shield Wi-Fi)&lt;br /&gt;
*l'aspect puissance des composants électroniques de gestion de puissance (ponts, hacheurs, onduleurs...).&lt;br /&gt;
&lt;br /&gt;
L'étude des différentes informations se fera par traitement des signaux électromagnétiques et des spectres. &lt;br /&gt;
Afin de mieux appréhender le problème, il nous est nécessaire de comprendre les phénomènes physiques issus de la notion d'électromagnétisme.&lt;br /&gt;
&lt;br /&gt;
Ces études mèneront à une étape plus complexe : l'interprétation des signaux. En effet, l'un des objectifs de ce projet est de comprendre du mieux possible le fonctionnement d'un système sans y avoir accès directement, et donc dans ce contexte &amp;quot;traduire&amp;quot; un ensemble de signaux électromagnétiques.&lt;br /&gt;
&lt;br /&gt;
On pourra en outre apporter un aspect visuel à l'étude en rajoutant une interface informatique.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
Bien qu'aux yeux de nombreuses personnes le bruit électromagnétique créé par les équipements électroniques du quotidien peut porter à controverse (débats concernant l'impact sur la santé par exemple), il peut être une source d'informations. &lt;br /&gt;
De nos jours, les ondes électromagnétiques restent un vaste champ d'étude, sujettes à de nombreuses thèses et recherches au sein des laboratoires.&lt;br /&gt;
&lt;br /&gt;
On peut prendre l'exemple de [https://www.eurekalert.org/pub_releases/2015-01/giot-rwt010715.php Milos Prvulovic], professeur à l'Institut Technologique de Géorgie, ayant simulé un contexte de cybercafé, dans lequel il place une antenne magnétique, un ordinateur portable cible et un ordinateur &amp;quot;espion&amp;quot;. Il réussit, grâce aux signaux EM émis par l'impulsion de l'appui des touches clavier à capter un message écrit par un ordinateur cible. &lt;br /&gt;
&lt;br /&gt;
Néanmoins, dans le quotidien, l'utilisation des sondes électromagnétiques se fait pour l'étude énergétique d'un système électronique (fuites électromagnétiques anormales, preuves d'une anomalie...) afin de respecter certaines normes législatives. Le code du travail par exemple réglemente et définit des valeurs seuils par le biais des articles R. 4453-3 et R. 4453-4.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
'''NBM-520 de NARDA STS'''&lt;br /&gt;
[[Fichier: NBM_TS.png|thumb|300px|NBM-TS, application des appareils NBM]]&lt;br /&gt;
NARDA STS est une entreprise qui fournit des outils de mesure. Elle met à disposition aux professionnels des sondes électromagnétiques.&lt;br /&gt;
La NBM-520 est un appareil de la franchise, mesurant le champ électrique et magnétique. Elle donne des valeurs précises du champ électromagnétique ambiant sur une large bande. Elle propose différentes sondes modulables permettant une souplesse au niveau de l'étude en fonction des besoins, avec des sondes pouvant étudier des signaux de fréquence de 100kHz à 6GHz ou même de 300kHz à 50GHz (en fonction de la sonde choisie).&lt;br /&gt;
&lt;br /&gt;
En outre, le dispositif peut se connecter en USB sur PC afin d'envoyer les données capturées et d'en faire une étude. Le dispositif propose un logiciel d'étude, NBM-TS, permettant d'observer du champ en fonction du temps, de la fréquence, de la position...&lt;br /&gt;
&lt;br /&gt;
L'équipement est utilisé par l'ANF (l'Agence Nationale des Fréquences, agence gérant l'ensemble des normes autour des radiofréquences), et est donc un gage de qualité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Avantages :''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Large bande de fréquence&lt;br /&gt;
* Matériel solide&lt;br /&gt;
* Application fonctionnelle permettant l'étude et gestion des données&lt;br /&gt;
* Possibilité d'étudier séparément champ électrique et magnétique&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Inconvénients:''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Impossible d'étudier les basses fréquences (appareils sous tension, bobinages...)&lt;br /&gt;
* Prix élevé : à partir de 3100€&lt;br /&gt;
* La cible de ce produit est surtout les professionels&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
'''Une pita.'''&lt;br /&gt;
&lt;br /&gt;
''Comment mon pain à pita vole ta clé RSA ?''&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Pita.jpg|200px|thumb|left|Une pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Des chercheurs israéliens ont découvert un moyen de capturer des clés de cryptage RSA, réputées comme inviolables, par le biais d'une pita... du moins avec un dispositif suffisamment petit pour être caché dans un pain à pita. &lt;br /&gt;
Le dispositif, renommé PITA pour Portable Instrument for Trace Acquisition a la particularité de capturer les ondes radio électromagnétiques émanantes d'un PC, qu'il soit connecté à un réseau ou pas.&lt;br /&gt;
Les différentes opérations du processeur sont identifiées en distinguant les différents modèles de l'activité radio sur le spectre EM.&lt;br /&gt;
&lt;br /&gt;
Bien que la capture des clés RSA a été faite dans des conditions particulières (modification du processeur de l'ordinateur cible), il est néanmoins possible, selon les chercheurs, d'identifier quelle type d'activité est exercée par l'ordinateur ainsi que son état.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PITA.jpg|300px|thumb|right|Un dessous de pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'un des points importants concernant le dispositif est son coût : moins de 300 euros.&lt;br /&gt;
L'appareil dispose :&lt;br /&gt;
* d'un PC portatif (PC-on-a-stick) ''Rikomagic MK802 IV'',&lt;br /&gt;
* d'un recepteur radio SDR ''FUNcube Dongle Pro+''&lt;br /&gt;
* d'une antenne radio&lt;br /&gt;
* d'une batterie&lt;br /&gt;
* d'une antenne WiFi&lt;br /&gt;
* d'une carte MicroSD&lt;br /&gt;
* d'un adapteur d'antenne&lt;br /&gt;
* et d'une '''pita'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le dispositif aurait une portée de 50cm. &lt;br /&gt;
Les chercheurs israéliens ont collaboré avec GNU Private Guard (logiciel de cryptage asymétrique) afin de protéger contre ces attaques les clés de cryptage.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
&lt;br /&gt;
''Scénario 1''&lt;br /&gt;
&lt;br /&gt;
Gérard a toujours le flair pour les bonnes affaires. Il a acheté une centaine de clés WiFi à un prix dérisoire sur AloXpresso afin de faire du profit à la revente. Le vendeur lui garantit que toutes les clés fonctionnent correctement. Gérard veut vérifier. Après vérification, 99 des clés sur 100 fonctionnent comme prévu. Gérard aimerait être sûr du disfonctionnement, mais Gérard n'est pas une pointure en informatique. &lt;br /&gt;
&lt;br /&gt;
Coup de génie ! Il se rappelle qu'il dispose d'un dispositif qui capte les ondes EM et les interprète directement. C'est le moment de tester ça. Il remarque une anomalie sur le spectre.&lt;br /&gt;
Il décide de contacter le revendeur pour lui signaler un disfonctionnement sur l'une des clé. &lt;br /&gt;
Pas de soucis. Le vendeur, étant bon prince, lui envoie une autre clé USB et lui fait une ristourne.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Scénario 2''&lt;br /&gt;
&lt;br /&gt;
La police fait une perquisition chez un individu soupçonné de graves délits. Cela fait plusieurs mois que la brigade criminelle prépare l'intervention, et une fois sur les lieux ils arrêtent le soupçonné malfaiteur.&lt;br /&gt;
Cependant avant de repartir, elle veut faire l'acquisition d'un maximum de preuves. Elle veut alors prendre l'essentiel des objets, dont certains objets éléctroniques connectés de l'individu dont elle pourra extraire les informations qui serviront à le faire tomber.&lt;br /&gt;
&lt;br /&gt;
Par chance, elle dispose d'un petit outil qui scannera les signatures alentours des objets connectés, comme des téléphones cachés, clés USB wifi dissimulées dans le décor etc..&lt;br /&gt;
Et si le suspect avait modifié malignement un objet connecté banal pour l'utiliser autrement à ses fins, la police le découvrirait car elle possède une base de données de toutes les signatures spectrales des objets connectés sur le marché et celle de l'objet modifié ne collerait pas avec celle de la base de données.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
&lt;br /&gt;
'''Comment étudier les signaux malgré les perturbations électromagnétiques ambiants et les faibles signaux des µC ?'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les signaux électromagnétiques des microcontrôleurs ou d'autres composants peuvent être faibles. Il y a une possibilité pour palier à ce problème, c'est de capter les signaux depuis une antenne émettrice que l'on rajoute à l'objet d'étude. &lt;br /&gt;
Nous utiliserons un SDR (Software Defined-Radio) afin de capter les ondes radio et les étudier directement sur PC. Le filtrage s'effectuera ainsi de manière numérique. Plusieurs tests seront effectués pour le même objet à étudier (quand on parle d'objet, on évoque un ensemble de plusieurs composants, comme par exemple une alimentation, un micro-contrôleur et une antenne). Ainsi, de manière statistique, nous pourrons en déduire un pattern récurrent pour chaque expérience en les effectuant dans différents environnements (pourquoi pas une chambre anachoïque). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons &lt;br /&gt;
* Capter le signal émis par un objet connecté le plus précisément possible&lt;br /&gt;
&lt;br /&gt;
* Concevoir nos propres objets connectés tous différents mais basés sur un même modèle&lt;br /&gt;
&lt;br /&gt;
* Interpréter les spectrogrammes, faire une étude statistique des signaux émis par nos différents objets et en tirer des conclusions&lt;br /&gt;
&lt;br /&gt;
* Répertorier dans une base de données les signatures de nos objets , voire de quelques objets disponibles sur le marché&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix logiciel :&lt;br /&gt;
&lt;br /&gt;
- La distribution Linux Pentoo ou Kali pour traiter les signaux avec GNU RADIO (Suite logicielle dédiée à l’implémentation de radios logicielles et de systèmes de traitement du signal).&lt;br /&gt;
&lt;br /&gt;
- FemtoOS pour l'OS des ATMEGA328P et ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix Matériel : &lt;br /&gt;
&lt;br /&gt;
- Plusieurs modules radios émetteurs &lt;br /&gt;
&lt;br /&gt;
- Plusieurs microcontrôleurs ATMEGA328P et un ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
- Des alimentations identiques pour chaque PCB&lt;br /&gt;
&lt;br /&gt;
- Un HackRF pour la réception des signaux&lt;br /&gt;
&lt;br /&gt;
- Une antenne 50 Ohm pour le HackRF [https://www.passion-radio.fr/accessoires-sdr/antenne-ant500-74.html]&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous devons préparer tout le matériel qui servira à faire nos tests. C'est à dire concevoir :&lt;br /&gt;
&lt;br /&gt;
- Un ensemble SDR/PC qui traitera le signal reçu avec GNU RADIO.&lt;br /&gt;
&lt;br /&gt;
- Une multitude de PCB qui seront utilisés comme objets connectés (Sur chacun d'entre eux on trouvera au minimum une antenne radio, un microcontrôleur et une alimentation)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de récupérer une &amp;quot;signature&amp;quot; d'un de nos objets , il faudra faire plus de 50 analyses spectrales pour conclure statistiquement sur une bonne signature qui caractérisera l'objet.&lt;br /&gt;
&lt;br /&gt;
Nous devons donc dans un second temps: &lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques mais qui ont un '''firmware''' différent.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques qui ont pour seule différence le '''microcontrôleur'''.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques dont seul le '''PCB''' diffère.&lt;br /&gt;
&lt;br /&gt;
Grâce à tous ces tests , nous pourrons conclure et voir l'impact qu'à le matériel ou le logiciel sur la signature d'un objet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enfin si les délais nous le permettent, nous pourrons réaliser un software qui cartographiera nos objets connectés dans la pièce grâce à la puissance de la signature reçue (Ce qui devrait être réalisable puisqu'à ce stade nous aurons une base de donnée des signatures).&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
|3&lt;br /&gt;
|8&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Recherches&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|6&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Prise en main de GnuRadio&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Configuration Xbee&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Expériences&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|5&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|4&lt;br /&gt;
|15&lt;br /&gt;
|9&lt;br /&gt;
|8&lt;br /&gt;
|7&lt;br /&gt;
|8&lt;br /&gt;
|8&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
[[Fichier:HackrfOne.jpeg|200px|thumb|right|Le HackRF One]]&lt;br /&gt;
Durant cette semaine, nous avons continué nos recherches notamment sur le moyen de transmission de nos objets connectés. Nous avons confirmé notre choix de notre SDR : Monsieur Boé nous a confirmé que des HackRF seraient disponibles dans les laboratoires et qu'il pourrait nous en prêter un. On disposera donc d'une antenne puissante pour traiter les signaux émis par nos objets communiquants. &lt;br /&gt;
&lt;br /&gt;
Il faudra coupler notre HackRF avec un logiciel appelé GNU RADIO qui est un logiciel très complet ( Pour information : la NASA a utilisé GNU RADIO afin de rétablir le contact avec une sonde spatiale abandonnée ). Afin de faire tourner ce logiciel libre, nous aurons besoin de la distribution Kali Linux, ex Backtrack.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Choix des émetteurs/récepteurs === &lt;br /&gt;
&lt;br /&gt;
Nous avons décidé que nos objets connectés communiqueront dans deux '''bandes de fréquences ISM''', l'une à '''900 MHz''' grâce à des modules Digi Xbee et l'autre à '''2,4 GHz''' par le moyen de modules émetteurs Bluetooth. On rappellera que les Digi Xbee et les émetteurs/récepteurs Bluetooth seront pilotés par des ATMEGA 2560.&lt;br /&gt;
&lt;br /&gt;
Les Xbee ne communiqueront pas entre eux et émettront en continu les mêmes données car ils le peuvent, alors que les émetteurs/récepteurs Bluetooth devront s'échanger des données si on veut pouvoir observer un quelconque signal autour de la fréquence de leurs porteuses. &lt;br /&gt;
&lt;br /&gt;
On voudra observer premièrement, si avec deux objets dans les '''mêmes''' conditions (donc même µc et même émetteur), on peut ou non '''distinguer une différence'''. Ceci est fondamental pour la suite des expériences, puisque si les deux émettent à la même fréquence, on pourra faire varier plusieurs paramètres afin de trouver '''des clés''' (des signes) qui pourraient aider à l'identification du matériel.&lt;br /&gt;
&lt;br /&gt;
Ces clés représentent différents facteurs potentiels d'identification du signal (le rapport signal-bruit en fonction de la distance par exemple...).&lt;br /&gt;
&lt;br /&gt;
''On planifie alors pour la semaine suivante de réussir à faire émettre, en utilisant simplement des breadboards pour commencer, nos Xbee et modules BT et observer quelque chose grâce à notre SDR.''&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration des modules XBee ===&lt;br /&gt;
&lt;br /&gt;
Nous avons configuré deux XBee afin qu'ils puissent communiquer entre eux : &lt;br /&gt;
&lt;br /&gt;
Les modules XBee ont été montés sur des platines d'interface USB/série de manière à ce qu'on puisse les paramétrer via le programme de contrôle ''minicom''. &lt;br /&gt;
&lt;br /&gt;
Dans le doute, on supposera que les XBee communiquent à 9600 Baud. On exécute la commande suivante : &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;minicom -b 9600 -D /dev/ttyUSB0&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
On active l'echo local dans minicom, afin de pouvoir observer ce qui a été envoyé par liaison série au XBee ('''CTRL+A''' puis '''E''').&lt;br /&gt;
&lt;br /&gt;
Pour commencer le paramètrage il faut taper ''' +++ ''' rapidement. Le XBee nous répond OK, cela veut dire que nous sommes dans le mode configuration et que nous pouvons utiliser les commandes '''AT'''. (Redirection vers la liste des commandes AT XBee [https://cdn.sparkfun.com/assets/resources/2/9/22AT_Commands.pdf]).&lt;br /&gt;
&lt;br /&gt;
Comme nos XBee ont été utilisés auparavant, il a fallu les restaurer à l'état usine avec la commande '''ATRE'''.&lt;br /&gt;
&lt;br /&gt;
Si on souhaite que des XBee puissent s'envoyer des données il faut qu'ils soient sur le même canal (commande '''ATCH''') et aient le même PAN ID (commande '''ATID'''). Notre PAN ID sera '''BEE6''' et le canal sera celui par défaut '''C'''.&lt;br /&gt;
&lt;br /&gt;
Ensuite il faut leur donner une adresse de destination ('''ATDH''' &amp;amp; '''ATDL''') qui sera l'adresse broadcast, pour ce faire on entre &lt;br /&gt;
 ATDH=0000&lt;br /&gt;
 ATDL=FFFF&lt;br /&gt;
&lt;br /&gt;
Enfin '''ATMY''' représente l'ID du XBee, notre premier XBee aura comme ID 5000 et le second 5001.&lt;br /&gt;
&lt;br /&gt;
N'oublions pas de sauvegarder les paramètres avec '''ATWR'''.&lt;br /&gt;
&lt;br /&gt;
On vérifie que tout a bien été pris en compte :&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;&lt;br /&gt;
+++OK&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATID&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
BEE6&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
C&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
0&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDL&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
FFFF&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATMY&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
5000&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCN&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Puis on fait de même avec le deuxième XBee (ID 5001).&lt;br /&gt;
&lt;br /&gt;
Voilà, lorsque on envoie des caractères par liaison série sur 5000, la LED '''Tx''' de 5000 s'allume et la Led '''Rx''' de 5001 s'allume elle aussi. Cela signifie que l'envoi de donnée par onde radio s'effectue correctement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que les XBee émettent et reçoivent, on peut commencer les mesures avec notre SDR. Mais avant cela il va falloir bien se familiariser avec le logiciel GNU RADIO qui est assez difficile à prendre en main.&lt;br /&gt;
&lt;br /&gt;
=== Première prise en main du logiciel GNURADIO ===&lt;br /&gt;
&lt;br /&gt;
Installation de GNU radio avec les fonctions + drivers pour HackRF : &lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install gqrx-sdr gnuradio gr-osmosdr hackrf &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le bloc Osmocom Source sert de &amp;quot;passerelle&amp;quot; entre le logiciel et la SDR, il permet de transmettre les informations récupérées par le HackRF afin qu'on puisse les traiter avec d'autres bloc de fonctions.&lt;br /&gt;
&lt;br /&gt;
Si on veut pouvoir récuperer les données il faut passer l'argument ''hackrf=0'' dans la box périphérique du bloc Osmocom.&lt;br /&gt;
&lt;br /&gt;
Ci-dessous on peut voir le spectre environnant entre 2.44GHz et 2.460GHz grâce au bloc WX GUI FFT Sink.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ScreenGnuRadio.png|Interface de GNURadio]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous a permis d'effectuer notre première expérience. L'utilisation des deux Xbees nous a permis d'observer l'impact des Xbee sur le champ électromagéntique environnant.&lt;br /&gt;
&lt;br /&gt;
Si on analyse le spectre environnant grâce au module FFT de GNU Radio, lorsque les Xbee communiquent entre eux, on peut apercevoir un pic caractéristique propre.&lt;br /&gt;
En effet, lors de l'emission d'un message sur le port série, on a un pic qui se dégage du spectre d'amplitude -20dBm. Ce pic est caractéristique au canal de communication choisi et configuré sur le Xbee.&lt;br /&gt;
Néanmoins, le signal est perturbé par le bruit environnant. &lt;br /&gt;
L'expérience étant effectuée au sein de l'école, les signaux Wi-Fi perturberont l'étude.&lt;br /&gt;
Il faut noter que la norme IEEE 802.11 impose au Wi-Fi l'utilisation d'une bande passante s'étalant de 2.4 GHz à 2.5 GHz.&lt;br /&gt;
&lt;br /&gt;
La bande passante des modules Zigbee se décomposent en 16 canaux, allant de 2400 MHz à 2480 MHz par pas de 5 MHz.&lt;br /&gt;
&lt;br /&gt;
Le canal ici utilisé est le canal 13 (3ème canal) de fréquence 2415 MHz.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[Fichier:Channel135001.png|thumb|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Fichier:channel135000.png|thumb|none|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBeeCh13.png|Spectre de l'environnement autour du XBee|thumb|none|400 px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBeeCh13SND.png|Lors de l'envoi de données au XBee voisin|thumb|none|400 px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut observer un pic de puissance lors de l'envoi d'une donnée en série à la fréquence 2.415 GHz.&lt;br /&gt;
Il nous est maintenant nécessaire d'analyser de plus près les signaux et leurs fréquence centrale dans la bande perçue au dessus de -20dB.&lt;br /&gt;
&lt;br /&gt;
On réeffectuera une expérience en zone isolée des signaux parasites.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous avons principalement fait des recherches dans le but de mieux comprendre les signaux émis par le Xbee.&lt;br /&gt;
&lt;br /&gt;
En somme, nous étions confrontés à de nombreuses interrogations. Le fonctionnement du Xbee étant assez simple et la sécurité du protocole Zigbee étant moindre, y a t-il possibilité de démoduler le signal émis afin de développer nos études ?&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
[[Fichier:Switchchannel pyscript.PNG|upright=0.8|thumb|right|Script Python]]&lt;br /&gt;
&lt;br /&gt;
Après réflexion et consultation de nos encadrants, nous nous sommes rendu compte que la démodulation prévue lors de la semaine 4 n'aiderait pas à répondre à la problématique de notre sujet !  &lt;br /&gt;
&lt;br /&gt;
Afin de mieux visualiser les signaux des Xbee , on décide d'automatiser le processus d'envoi sur le port série des données vers le Xbee. C'est à dire concevoir un programme Python qui automatisera l'envoi de données et le changement de channel à intervalle de temps régulier (Changement toutes les 10 secondes). &lt;br /&gt;
&lt;br /&gt;
L'utilisation de Minicom '''n'était pas du tout la meilleure solution''' pour faire émettre les Xbee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Après quelques essais, on remarque que lorsque le Xbee émet sur le channel 13, il émet à environ 2,445GHz au lieu d'émettre à 2,415GHz soit une différence de 30MHz : Ceci n'est pas important, car ce que l'on souhaite remarquer c'est un éventuel décalage de la fréquence centrale entre deux Xbee différents. Si les deux Xbee n'ont pas la même frequence centrale on pourra conclure que la '''fréquence centrale''' de la porteuse du Xbee n'est pas '''une des clés''' permettant d''''identifier''' cet émetteur/récepteur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaines 6 et 7==&lt;br /&gt;
&lt;br /&gt;
Afin de mieux cerner le comportement électromagnétique des modules XBee, il nous est nécessaire de comprendre leur fonctionnement et le protocole Zigbee.&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous avons cherché à souligner le parallélisme entre étude fréquentielle par le spectre et étude temporelle du signal.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PlancheXPtest.jpg|thumb|right|Planche prototype]]&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous avons paramétré la fréquence centrale de capture du HackRF. En effet, bien que le HackRF dispose d'une large bande passante, afin de se focaliser sur la porteuse, il est indispensable de configurer le HackRF en conséquence.&lt;br /&gt;
En second lieu, pour éviter une variation du RSSI (Received Signal Strength Indication) et de la puissance du signal, nous devions mettre en place une prototype de &amp;quot;planche expérimentale&amp;quot; sur laquelle devaient être fixés nos différents modules (l'antenne de reception et les Xbees).&lt;br /&gt;
&lt;br /&gt;
La position des antennes les unes par rapport aux autres est fondamentale. Afin d'optimiser la reception, les antennes doivent être parallèles.&lt;br /&gt;
&lt;br /&gt;
Chaque Xbee est identifié par un chiffre (1 ou 2). En effet, l'attribution de ces chiffres sera définitive pour ne pas perturber la cohérence des expériences. &lt;br /&gt;
Leur position est aussi fondamentale. Ainsi, en fonction que le Xbee soit emetteur ou récepteur, il sera disposé différement sur la planche.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Expérience : Le XBee 1 émetteur directement connecté en série au PC===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:GrapheGNURadio01.png|thumb|left|150px|Schéma simple d'étude fréquentielle et temporelle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette expérience est la première mettant en place un contexte (un seul Xbee émetteur connecté en série au PC, le deuxième Xbee étant inactif) et nous permettra d'étudier le plus de cas possibles.&lt;br /&gt;
&lt;br /&gt;
Nous avons tout d'abord commencé par un graphe GNURadio simple permettant l'observation du spectre et du signal et la variation de la fréquence d'étude.&lt;br /&gt;
&lt;br /&gt;
Le script python a été réécrit afin que le XBee puisse émettre une chaîne de caractère &amp;quot;HELLO&amp;quot; * 1024. En effet, même si la fréquence de balayage du module HackRF peut être grandement augmentée, il faut éviter d'aller au dessous de 0.01s, finissant par consommer de manière considérable les ressources octroyées par le CPU le cas échéant.&lt;br /&gt;
Le fait d'augmenter la taille de la chaine de caractère permet de mieux synchroniser l'étude en temps réel avec la capture des données.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc émis les données sur le canal 14, soit la fréquence centrale est à 2.420GHz selon la norme Zigbee. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Etude fréquentielle&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L'étude fréquentielle est similaire à celle réalisée auparavant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div center&amp;gt;&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[Fichier:Spectrefreq2.png|thumb|center|750px|Spectre fréquentiel au canal 14]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[Fichier:Spectrogram.png|thumb|center|250px|Spectrogramme]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on peut observer sur l'analyseur de spectre GNURadio que la fréquence centrale est située 2.450GHz. Nous n'avons pas trouvé la raison mais il s'agit sûrement d'un décalage au niveau applicatif.&lt;br /&gt;
&lt;br /&gt;
D'autre part, l'ensemble des fréquences qui dessinent le spectre s'étalent sur une large bande de fréquence. En effet, cette technique d'étalement appelée DSSS (Direct-Sequence Spread Spectrum) utilisé par les modules XBee permet au signal d'être moins sensible aux interférences et aux brouillages. En outre, même si la puissance du spectre dans sa globalité reste la même, la densité spectrale elle diminue considérablement, rendant le signal plus &amp;quot;discret&amp;quot;.&lt;br /&gt;
La différence de puissance entre le lobe principal et les premiers lobes secondaires sont de 30 dB, ce qui est aussi commun au DSSS.&lt;br /&gt;
&lt;br /&gt;
Le spectrogramme témoigne aussi de l'étalement du signal sur un peu plus de 6 MHz (3MHz de par et d'autre de la fréquence centrale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt; Etude temporelle &amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Signal temporel.png|thumb|left|500px|Signal observable centré à 2.450GHz lors de l'émission]]&lt;br /&gt;
&lt;br /&gt;
Le signal ici est séparé en deux composantes car il s'agit d'un signal complexe. Nous avons supposé en premier temps qu'il s'agissait du signal principal décalé de 180°, ce qui n'était pas le cas.&lt;br /&gt;
Après quelques recherches, cette séparation des composantes permet de transmettre deux fois plus de données sur la même bande passante.&lt;br /&gt;
Le signal observable témoigne d'une modulation bien spécifique au XBee. En effet, on peut observer des sauts de phase à différents points, qui correspondent à une modulation par changement de phase (modulation QPSK ou Quadratic Phase-Shift Keying). Ce sont ces sauts de phases qui permettent la transmission des bits.&lt;br /&gt;
Les changements de phase s'il y a se font toutes les µs. En outre, on peut observer un décalage (offset) entre la composante Q et la composante I de µs/2 (propre à la modulation OQPSK).&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé d'enregistrer ces données brutes dans un fichier et nous l'avons étudié avec Audacity, logiciel open-source de son, et donc de signaux ! L'inconvénient avec l'interface graphique QT de GNURadio est son manque de précision lors d'un dézoom sur le signal en temps réel. Audacity permet de palier à celà !&lt;br /&gt;
En outre, on peut voir que les paquets Xbee sont reconnaissables. En effet, le signal témoigne de la taille du paquet XBee.&lt;br /&gt;
&lt;br /&gt;
Le paquet XBee est constitué d'un premier header (header physique) de 6 octets :&lt;br /&gt;
- la séquence de préambule (4 octets) constitué de 32 bits à 0&lt;br /&gt;
&lt;br /&gt;
- l'indice de début du paquet fixé à 0x7A (1 octet)&lt;br /&gt;
&lt;br /&gt;
- la longueur du paquet (1 octet);&lt;br /&gt;
&lt;br /&gt;
d'un header MAC (7 à 27 octets en fonction des informations de l'adresse), d'un bloc FCS de fin de paquet (2 octets) et l'ensemble des données (de 1 à 104 octets).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Signal2.png|thumb|right|400px|On observe graphiquement qu'un paquet est transmis en 3846µs]]&lt;br /&gt;
[[Fichier:PacketXBee.png|400px|thumb|right|Paquet XBee]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Comme dit plus haut, les signaux émis par le XBee connaissent un étalement sur le spectre par DSSS.&lt;br /&gt;
Cet étalement s'effectue en divisant chaque symbole (correspondant à une série de 4 bits) transmis en &amp;lt;B&amp;gt;&amp;lt;I&amp;gt;chips&amp;lt;/I&amp;gt;&amp;lt;/B&amp;gt;.&lt;br /&gt;
Chaque symbole, soit 4 bits, correspond à 32 chips, et donc 32 états binaires (1 octet correspond à 64 chips).&lt;br /&gt;
Dans le cas de la norme ZigBee, la transmission de chacun des chips est synchronisé sur chaque µs (1 chip toutes les µs).&lt;br /&gt;
&lt;br /&gt;
Les signaux reçus par l'antenne HackRF étaient deux sinusoïdes modulées en phase et qui s'étalaient sur une période d'environ 3840µs (3846µs graphiquement mais il y a possibilité d'erreur à l'echelle du µs).&lt;br /&gt;
Sachant qu'un octet correspond à 64µs, on a :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;N_{octets} =\frac{2*T_{signal}}{64*T_{chip}}=\frac{2*3.840*10^{-6}}{64*10^{-6}}=120 octets&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'analogie peut être effectuée entre paquet Ethernet et paquet ZigBee. En effet, la taille limite des données d'un paquet est de 104 octets. La chaîne de caractère n'étant qu'envoyée par paquet, le paquet observé n'est que de 120 octets, ce qui est cohérent avec les caractéristiques du XBee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Hello1024secs.png|thumb|none|Temps de transmission de la chaîne de caractères &amp;quot;HELLO&amp;quot; 1024 fois]] &amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:AudacitySignal2.png|thumb|none|51 Paquets XBee portent la chaîne de caractère &amp;quot;HELLO&amp;quot; 1024 fois]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 8==&lt;br /&gt;
&lt;br /&gt;
L'étude des signaux posait réellement problème de par le fait qu'une grande partie de la capture faite n'était que purement le bruit sans signal (utile plus tard pour l'étude du SNR).&lt;br /&gt;
Prenons l'exemple d'un paquet de 21 octets (un paquet contenant une seule chaîne de caractères HELLO). Le signal s'étalerait en théorie sur 21*64 chips soit 672 chips. Sachant que la modulation est une modulation QPSK, on s'étale sur un temps de 672µs.&lt;br /&gt;
En effet, le Xbee transmet toutes les 100ms.&lt;br /&gt;
Donc qu'une partie du signal nous est utile.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décider d'écrire un script qui nous permettrait d'étudier le signal dans de meilleures conditions, et donc de le filtrer.&lt;br /&gt;
&lt;br /&gt;
Chaque capture de signal effectuée est enregistrée dans un fichier par le biais du bloc fonction &amp;lt;B&amp;gt;&amp;lt;I&amp;gt;File Sink&amp;lt;/I&amp;gt;&amp;lt;/B&amp;gt; du compagnon GNURadio. Néanmoins, les fichiers obtenus sont des fichiers binaires assez lourds (environ 500Mo pour une capture de 3s), ce qui est un réel problème et qui implique le filtrage du signal.&lt;br /&gt;
&lt;br /&gt;
La bibliothèque numpy pour python nous permet en outre directement d'importer les échantillons des signaux, les traduisant du binaire à un format cible (complexe flottant 64 bits) dans un Array par le biais de la fonction:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; f = scipy.fromfile(open(&amp;quot;Nom du fichier&amp;quot;), dtype=scipy.complex64) &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La première solution pour réduire ce signal était d'imposer un threshold directement sur le signal, supérieur au bruit, mais qui conduirait à une perte d'une partie du signal à étudier.&lt;br /&gt;
La deuxième solution qui a été retenue était tout simplement de calculer l'amplitude et la phase du signal et appliquer ce même threshold à l'amplitude.&lt;br /&gt;
&lt;br /&gt;
== Semaine 9 et 10==&lt;br /&gt;
&lt;br /&gt;
A partir de la semaine 10 nous avons procéder aux expériences pour avoir suffisamment de données et en tirer des conclusions.&lt;br /&gt;
&lt;br /&gt;
Lorsqu'on fait une acquisition d'un signal xbee , on peut maintenant via un script traiter cette acquisition et récupérer seulement les parties qui nous intéressent : A savoir la partie réelle et la partie imaginaire, l'amplitude du signal et enfin la phase du signal.&lt;br /&gt;
&lt;br /&gt;
Exemple ci dessous après acquisition + traitement de notre xbee n°2 :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Traitement xbee2.png|thumb|right|redresse=2|Signal Xbee2 post-traitement ]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Constellation xbee2.png|thumb|right|redresse=2|Diagramme de constellation xbee2 après utilisation de LightSignal]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'utilisation du script LightSignal permet de retirer toutes les phases en dehors du signal. Ainsi, on peut caractériser le diagramme de constellation comme un diagramme propre à la modulation QPSK. &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
import scipy&lt;br /&gt;
import numpy&lt;br /&gt;
import sys&lt;br /&gt;
&lt;br /&gt;
def binToComplex64(name):&lt;br /&gt;
    threshold=0.10&lt;br /&gt;
    tmp=scipy.fromfile(open(name+&amp;quot;_PhaseMeg&amp;quot;), dtype=scipy.complex64)&lt;br /&gt;
    tmp2=scipy.fromfile(open(name), dtype=scipy.complex64)&lt;br /&gt;
    &lt;br /&gt;
    f2 = open(name+&amp;quot;_filtre&amp;quot;, &amp;quot;w+&amp;quot;) &lt;br /&gt;
    f = open(name+&amp;quot;_PhaseMeg_filtre&amp;quot;,&amp;quot;w+&amp;quot;)&lt;br /&gt;
    &lt;br /&gt;
    p=1&lt;br /&gt;
    size=tmp.__len__()&lt;br /&gt;
    size2=tmp2.__len__()&lt;br /&gt;
    &lt;br /&gt;
    if size &amp;gt; size2:&lt;br /&gt;
        size=size2&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    ground=False&lt;br /&gt;
    newListSignal=[]&lt;br /&gt;
    newListMagnPh=[]&lt;br /&gt;
    for val in range(0,size): &lt;br /&gt;
        if(val&amp;gt;=(size/100)*p):&lt;br /&gt;
            print(str(p)+&amp;quot; %&amp;quot;)&lt;br /&gt;
            p=p+1&lt;br /&gt;
        if(tmp[val].real&amp;gt;threshold):&lt;br /&gt;
            if(ground==True):&lt;br /&gt;
                for i in range(0,1000):&lt;br /&gt;
                    newListSignal.append(numpy.complex64(0))&lt;br /&gt;
                    newListMagnPh.append(numpy.complex64(0))&lt;br /&gt;
                ground=False&lt;br /&gt;
            newListSignal.append(tmp2[val])&lt;br /&gt;
            newListMagnPh.append(numpy.complex64(tmp[val].real+tmp[val].imag*0.3j))&lt;br /&gt;
        else:&lt;br /&gt;
            ground=True&lt;br /&gt;
    &lt;br /&gt;
    tmp=numpy.asarray(newListMagnPh)&lt;br /&gt;
    tmp.tofile(f)&lt;br /&gt;
    tmp2=numpy.asarray(newListSignal) &lt;br /&gt;
    tmp2.tofile(f2)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    try:&lt;br /&gt;
        binToComplex64(sys.argv[1])&lt;br /&gt;
    except IndexError:&lt;br /&gt;
        print(&amp;quot;Donnez le nom du fichier\n&amp;quot;)&lt;br /&gt;
    except IOError:&lt;br /&gt;
        print(&amp;quot;Le fichier n'existe pas\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__=='__main__':&lt;br /&gt;
    main()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le diagramme de constellation témoigne de nouveau du type de modulation utilisé par le module XBee.&lt;br /&gt;
En effet, on observe quatre points de part et d'autre des axes de quadrature et d'inphase.&lt;br /&gt;
&lt;br /&gt;
==Semaine 11==&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé cette semaine d'étudier, ce qui est selon pour nous, l'une des pistes fondamentales de notre projet, et plus particulièrement de l'étude de nos signaux : le rapport signal bruit.&lt;br /&gt;
&lt;br /&gt;
L'objectif de cette semaine et de celle à venir était, à partir du signal acquis par le hackrf, d'effectuer le calcul du SNR (signal-to-noise ratio) tel que :&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;SNR =\frac{P_{signal}}{P_{bruit}}&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le script python qui nous a permis de communiquer entre les deux shields Xbee se verra amélioré afin de faire plusieurs acquisition des signaux lors de la communication entre les Xbee, effectuer une moyenne statistique, et de même lorsqu'il n'y a pas de communication.&lt;br /&gt;
&lt;br /&gt;
Nous avons essayé d'approcher le SNR directement depuis l'interface de GnuRadio par le biais de l'utilitaire graphique et le langage en bloc, néanmoins nous procéderons à l'étude de ce rapport avec Scilab ou Matlab.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaines supplémentaires==&lt;br /&gt;
&lt;br /&gt;
===Expérience : Temps de calcul du FCS entre le XBee1 et et le XBee2===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 et XBee2 sont alimentés sur 5V VCC par USB (connecté à l'ordinateur)&amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 et XBee2 disposent du firmware : 10EF &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 est d'abord emetteur et le XBee2 est recepteur puis inversement. Aucun paquet ACK n'est renvoyé de la part du recepteur &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On transmet la chaine de caractère HELLO 256 fois toutes les 1 secs&lt;br /&gt;
Les données étant assez conséquentes, le Xbee transmet plusieurs fragments du paquet.&lt;br /&gt;
L'objectif de cette expérience est d'étudier le temps entre chaque fragment d'un paquet.&lt;br /&gt;
L’espace de temps entre chacun des paquets permet de calculer le FCS (frame check sequence) afin de minimiser les erreurs de transmission.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:ChecksumGraphe.png|thumb|left|redresse=2|Les différents temps à mesurer]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Néanmoins, l’étude de ces “temps morts” se voit entravé par le fait que le module HackRF ne permette pas d’obtenir un signal clair sur plus de 5 secondes.&lt;br /&gt;
En outre, pour 5 secondes d’étude et pour une fréquence d’échantillonage de 20MHz (soit un temps Te=5.10e8), on compte 100.000.000 d’échantillons.&lt;br /&gt;
Le CPU lors de la capture était grandement sollicité, ce qui explique le fait que la capture soit compromise.&lt;br /&gt;
Pour régler ce problème, on a écrit un script shell de capture.&lt;br /&gt;
Ce script consiste à:&lt;br /&gt;
&amp;lt;br&amp;gt;- effectuer une capture d’une durée de 1 sec&lt;br /&gt;
&amp;lt;br&amp;gt;- d’enregistrer la capture&lt;br /&gt;
&amp;lt;br&amp;gt;- d’effectuer un traitement de ces paquets par un algorithme python en étudiant le temps entre chacun des fragments. Ce temps sera obtenu en nombre d’échantillons, défini avec un seuil d’acceptation absolu entre 150.000 et 300.000 échantillons (pour bien capturer ces temps intermédiaires et pas les temps provoqués par des signaux parasites ou du bruit), et pour affiner l’étude, on impose un seuil d’erreur de +-10% autour de la moyenne. La moyenne est calculée en continue&lt;br /&gt;
&amp;lt;br&amp;gt;- l’ensemble des valeurs obtenues sont enregistrées dans un fichier&lt;br /&gt;
&amp;lt;br&amp;gt;- on réeffectue la capture …&lt;br /&gt;
&lt;br /&gt;
On répète le processus un certains nombre de fois afin d’obtenir un nombre de valeurs nous permettant de nous conforter sur l'issue de l'expérience (environ 1000 valeurs)&lt;br /&gt;
&lt;br /&gt;
La capture et l'étude de chacun des modules dure une à deux heures.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats :&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans le cas du XBee1 (à gauche) et du XBee2 (à droite), voici les résultats obtenus :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Xbee1Graphe256.png|thumb|left|redresse=2|On peut observer des pics caractéristiques à l'envoi]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBee2Graphe256.png|thumb|left|redresse=2|Les mêmes pics caractéristiques confirment un comportement non-aléatoires du module]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
XBee1 : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 259675,81&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 8369.7417&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 70052576.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
XBee2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 258762.58&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 9165.4097&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 84004736.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les graphes présentent le nombre de répétitions des temps de calcul de fragements.&lt;br /&gt;
&lt;br /&gt;
On peut voir des pics spécifiques à certains points dans les deux expériences. Ces pics sont caractéristiques et au module XBee, et à la chaîne de caractère HELLO. Les deux expériences étant effectuées dans le même contexte, &lt;br /&gt;
&lt;br /&gt;
De même que pour le second Xbee, on retrouve des pics bien distincts à certains points.&lt;br /&gt;
&lt;br /&gt;
En outre, on peut voir que ces pics bien distincts se rapprochent de ceux du premier Xbee.&lt;br /&gt;
Néanmoins, même si la moyenne varie que très peu par rapport aux deux Xbee, la variance est assez différente.&lt;br /&gt;
&lt;br /&gt;
Pour confirmer ces observations, il est peut être nécessaire de répéter la même expérimentation sur un nombre d'échantillons plus grand.&lt;br /&gt;
&lt;br /&gt;
Ainsi, afin de confirmer la conjecture, on décide de faire d’autres captures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En superposant les deux graphes (Xbee1 en rouge et Xbee2 en bleu), on peut voir qu'il y a moins de dispersion dans le cas du XBee1, plus centré sur des valeurs précises, contrairement au Xbee2.&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBee1Xbee2Graphe.png|thumb|left|redresse=2]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour les deux nouveaux échantillons, on a les caractéristiques suivantes :&lt;br /&gt;
&amp;lt;U&amp;gt;Xbee1 sur 1688 échantillons&amp;lt;/U&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 260230.3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 8427.3923&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 71020941&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Xbee2 sur 1722 échantillons&amp;lt;/U&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 259899.41&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 9831.5106&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 96658601&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Conclusion de l'expérience&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
L’hypothèse qui est que la variance des temps &amp;quot;morts&amp;quot; entre chaque fragments de paquet, soit le temps de calcul du FCS pour le signal émis peut être considéré comme “clé” de distinction d’un module Xbee n'est donc pas à négliger. &lt;br /&gt;
&lt;br /&gt;
On peut même considérer que cette étude peut distinguer un module Xbee d'un autre électromagnétiquement parlant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Algorithme python utilisé pour l'étude du signal&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
def etudeSubdivPaquet(name, inter_time_values):&lt;br /&gt;
&lt;br /&gt;
threshold = 0.30&lt;br /&gt;
ground = false&lt;br /&gt;
p=1&lt;br /&gt;
&lt;br /&gt;
## On converti chacun des nombres binaires en complexe 64 (deux flottants 32 bits)##&lt;br /&gt;
amppha=scipy.fromfile(open(name+&amp;quot;_PhaseMeg&amp;quot;), dtype=scipy.complex64) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
## On récupère la taille du tableau de complexes (taille du signal) ##&lt;br /&gt;
size=amppha.__len__()&lt;br /&gt;
&lt;br /&gt;
    debut=0&lt;br /&gt;
    inter_time=0&lt;br /&gt;
    min_limit=150000&lt;br /&gt;
    max_limit=350000&lt;br /&gt;
    accept_range=1./10. ## Permet de mettre un seuil d'intervalle d'acceptation&lt;br /&gt;
    signalFnd=False&lt;br /&gt;
&lt;br /&gt;
    for val in range(debut,size):&lt;br /&gt;
        if(val&amp;gt;=((size-debut)/100)*p):&lt;br /&gt;
            print(str(p)+&amp;quot; %&amp;quot;)&lt;br /&gt;
            p=p+1&lt;br /&gt;
&lt;br /&gt;
        if(amppha[val].real&amp;gt;threshold):&lt;br /&gt;
            if(ground==True):&lt;br /&gt;
                if(signalFnd==True):&lt;br /&gt;
                    if(len(inter_time_values)&amp;gt;0):&lt;br /&gt;
                        moy=moyenne(inter_time_values)&lt;br /&gt;
                        if(inter_time &amp;gt;= moy-accept_range*moy and inter_time &amp;lt;= moy+accept_range*moy):&lt;br /&gt;
                            print(&amp;quot;Yes &amp;quot;+str(inter_time))&lt;br /&gt;
                            inter_time_values.append(inter_time)&lt;br /&gt;
                        inter_time=0&lt;br /&gt;
                    elif(inter_time&amp;gt;=min_limit and inter_time&amp;lt;=max_limit):&lt;br /&gt;
                        inter_time_values.append(inter_time)&lt;br /&gt;
                else:&lt;br /&gt;
                    signalFnd=True&lt;br /&gt;
                ground=False&lt;br /&gt;
        else:&lt;br /&gt;
            ground=True&lt;br /&gt;
            if(signalFnd==True):&lt;br /&gt;
                inter_time=inter_time+1&lt;br /&gt;
&lt;br /&gt;
    if(len(inter_time_values)&amp;gt;0):&lt;br /&gt;
        print(&amp;quot;Moyenne &amp;quot;+ str(moyenne(inter_time_values)))&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Expérience : SNR ===&lt;br /&gt;
&lt;br /&gt;
Maintenant nous voulons vérifier si la mesure du SNR est une expérience pertinente pour l'identification des xbee. Nous allons prendre plusieurs xbee , et nous les déplacerons dans la salle à des endroits précis. A chaque déplacement nous mesurerons le SNR grâce à notre algorithme. &lt;br /&gt;
&lt;br /&gt;
Ce script écrit en python permet de :&lt;br /&gt;
&lt;br /&gt;
=== Rencontre avec un doctorant ===&lt;br /&gt;
&lt;br /&gt;
Bien que plusieurs pistes ont pu être explorées, notre manque d'expertise dans le domaine de la radio logicielle nous a fait défaut sur nos recherches. En effet, après avoir calculé la SDR d'un de nos signaux, nous nous sommes confrontés à des résultats assez incohérents. De nombreuses erreurs peuvent se glisser&lt;br /&gt;
Ces semaines&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'archive des scripts python : &lt;br /&gt;
&lt;br /&gt;
[archive.zip]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le rapport&lt;br /&gt;
&lt;br /&gt;
[Rapport.pdf]&lt;/div&gt;</summary>
		<author><name>Amoreau</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=74259</id>
		<title>IMA4 2018/2019 P70</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=74259"/>
				<updated>2019-05-04T11:03:14Z</updated>
		
		<summary type="html">&lt;p&gt;Amoreau : /* Expérience : Temps de calcul du FCS entre le XBee1 et et le XBee2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;font-size: 30px; width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;Impact du matériel et du logiciel sur le champ électromagnétique&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Projet'''&amp;lt;/ins&amp;gt; : Impact du matériel et du logiciel sur le rayonnement électromagnétique&lt;br /&gt;
&lt;br /&gt;
''Nous proposons d'évaluer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et la consommation électrique.''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Etudiants'''&amp;lt;/ins&amp;gt; : Souheib KHINACHE et Antoine MOREAU&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Encadrants'''&amp;lt;/ins&amp;gt; : Alexandre BOE, Xavier REDON et Thomas VANTROYS&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'internet des objets est un marché en plein essor. La communication entre les différents objets connectés crée un nuage de signaux autour d'eux. Ces derniers sont vus par les utilisateurs comme des boîtes noires : le fonctionnement se fait sans en connaître les composants matériels et logiciels. &lt;br /&gt;
Néanmoins, ces objets, de par leurs propriétés électroniques, créent des fuites électromagnétiques impactant le champ environnant. &lt;br /&gt;
&lt;br /&gt;
Bien qu'ils peuvent porter à débat sur l'impact sur la santé, ces signaux peuvent représenter de réelles sources d'informations sur l'aspect matériel et applicatif de l'objet.&lt;br /&gt;
&lt;br /&gt;
Il serait donc intéressant d'avoir idée générale sur le fonctionnement du système en interprétant les ondes électromagnétiques émises par ce système.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Les principaux objectifs de ce projet seront donc de mesurer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et sur la consommation électrique.&lt;br /&gt;
Pour cela, l'outil potentiel avec lequel nous pourrions travailler serait une sonde de champ électromagnétique afin d'établir des mesures. &lt;br /&gt;
Cependant, nous pourrions concevoir notre propre système de capture et d'interprétation à partir d'une antenne, de filtres de fréquences et d'un microcontrôleur (on commencera par un ATMega328P). Il sera nécessaire de prendre en compte les perturbations issues de notre appareil de mesure et d'en tenir compte.&lt;br /&gt;
&lt;br /&gt;
On effectuera ainsi plusieurs expérimentations sur différents supports d'étude :&lt;br /&gt;
*l'aspect &amp;quot;Hardware&amp;quot; en étudiant différents modèles pour un même type de shield  &lt;br /&gt;
*l'aspect calculatoire du matériel en se basant sur l'impact des microcontrôleurs en fonction du modèle (ATMega328P et ATMega2560)&lt;br /&gt;
*l'aspect &amp;quot;Software&amp;quot;, en étudiant l'impact du logiciel et du firmware d'un même composant (différents firmwares pour un même shield Wi-Fi)&lt;br /&gt;
*l'aspect puissance des composants électroniques de gestion de puissance (ponts, hacheurs, onduleurs...).&lt;br /&gt;
&lt;br /&gt;
L'étude des différentes informations se fera par traitement des signaux électromagnétiques et des spectres. &lt;br /&gt;
Afin de mieux appréhender le problème, il nous est nécessaire de comprendre les phénomènes physiques issus de la notion d'électromagnétisme.&lt;br /&gt;
&lt;br /&gt;
Ces études mèneront à une étape plus complexe : l'interprétation des signaux. En effet, l'un des objectifs de ce projet est de comprendre du mieux possible le fonctionnement d'un système sans y avoir accès directement, et donc dans ce contexte &amp;quot;traduire&amp;quot; un ensemble de signaux électromagnétiques.&lt;br /&gt;
&lt;br /&gt;
On pourra en outre apporter un aspect visuel à l'étude en rajoutant une interface informatique.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
Bien qu'aux yeux de nombreuses personnes le bruit électromagnétique créé par les équipements électroniques du quotidien peut porter à controverse (débats concernant l'impact sur la santé par exemple), il peut être une source d'informations. &lt;br /&gt;
De nos jours, les ondes électromagnétiques restent un vaste champ d'étude, sujettes à de nombreuses thèses et recherches au sein des laboratoires.&lt;br /&gt;
&lt;br /&gt;
On peut prendre l'exemple de [https://www.eurekalert.org/pub_releases/2015-01/giot-rwt010715.php Milos Prvulovic], professeur à l'Institut Technologique de Géorgie, ayant simulé un contexte de cybercafé, dans lequel il place une antenne magnétique, un ordinateur portable cible et un ordinateur &amp;quot;espion&amp;quot;. Il réussit, grâce aux signaux EM émis par l'impulsion de l'appui des touches clavier à capter un message écrit par un ordinateur cible. &lt;br /&gt;
&lt;br /&gt;
Néanmoins, dans le quotidien, l'utilisation des sondes électromagnétiques se fait pour l'étude énergétique d'un système électronique (fuites électromagnétiques anormales, preuves d'une anomalie...) afin de respecter certaines normes législatives. Le code du travail par exemple réglemente et définit des valeurs seuils par le biais des articles R. 4453-3 et R. 4453-4.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
'''NBM-520 de NARDA STS'''&lt;br /&gt;
[[Fichier: NBM_TS.png|thumb|300px|NBM-TS, application des appareils NBM]]&lt;br /&gt;
NARDA STS est une entreprise qui fournit des outils de mesure. Elle met à disposition aux professionnels des sondes électromagnétiques.&lt;br /&gt;
La NBM-520 est un appareil de la franchise, mesurant le champ électrique et magnétique. Elle donne des valeurs précises du champ électromagnétique ambiant sur une large bande. Elle propose différentes sondes modulables permettant une souplesse au niveau de l'étude en fonction des besoins, avec des sondes pouvant étudier des signaux de fréquence de 100kHz à 6GHz ou même de 300kHz à 50GHz (en fonction de la sonde choisie).&lt;br /&gt;
&lt;br /&gt;
En outre, le dispositif peut se connecter en USB sur PC afin d'envoyer les données capturées et d'en faire une étude. Le dispositif propose un logiciel d'étude, NBM-TS, permettant d'observer du champ en fonction du temps, de la fréquence, de la position...&lt;br /&gt;
&lt;br /&gt;
L'équipement est utilisé par l'ANF (l'Agence Nationale des Fréquences, agence gérant l'ensemble des normes autour des radiofréquences), et est donc un gage de qualité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Avantages :''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Large bande de fréquence&lt;br /&gt;
* Matériel solide&lt;br /&gt;
* Application fonctionnelle permettant l'étude et gestion des données&lt;br /&gt;
* Possibilité d'étudier séparément champ électrique et magnétique&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Inconvénients:''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Impossible d'étudier les basses fréquences (appareils sous tension, bobinages...)&lt;br /&gt;
* Prix élevé : à partir de 3100€&lt;br /&gt;
* La cible de ce produit est surtout les professionels&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
'''Une pita.'''&lt;br /&gt;
&lt;br /&gt;
''Comment mon pain à pita vole ta clé RSA ?''&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Pita.jpg|200px|thumb|left|Une pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Des chercheurs israéliens ont découvert un moyen de capturer des clés de cryptage RSA, réputées comme inviolables, par le biais d'une pita... du moins avec un dispositif suffisamment petit pour être caché dans un pain à pita. &lt;br /&gt;
Le dispositif, renommé PITA pour Portable Instrument for Trace Acquisition a la particularité de capturer les ondes radio électromagnétiques émanantes d'un PC, qu'il soit connecté à un réseau ou pas.&lt;br /&gt;
Les différentes opérations du processeur sont identifiées en distinguant les différents modèles de l'activité radio sur le spectre EM.&lt;br /&gt;
&lt;br /&gt;
Bien que la capture des clés RSA a été faite dans des conditions particulières (modification du processeur de l'ordinateur cible), il est néanmoins possible, selon les chercheurs, d'identifier quelle type d'activité est exercée par l'ordinateur ainsi que son état.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PITA.jpg|300px|thumb|right|Un dessous de pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'un des points importants concernant le dispositif est son coût : moins de 300 euros.&lt;br /&gt;
L'appareil dispose :&lt;br /&gt;
* d'un PC portatif (PC-on-a-stick) ''Rikomagic MK802 IV'',&lt;br /&gt;
* d'un recepteur radio SDR ''FUNcube Dongle Pro+''&lt;br /&gt;
* d'une antenne radio&lt;br /&gt;
* d'une batterie&lt;br /&gt;
* d'une antenne WiFi&lt;br /&gt;
* d'une carte MicroSD&lt;br /&gt;
* d'un adapteur d'antenne&lt;br /&gt;
* et d'une '''pita'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le dispositif aurait une portée de 50cm. &lt;br /&gt;
Les chercheurs israéliens ont collaboré avec GNU Private Guard (logiciel de cryptage asymétrique) afin de protéger contre ces attaques les clés de cryptage.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
&lt;br /&gt;
''Scénario 1''&lt;br /&gt;
&lt;br /&gt;
Gérard a toujours le flair pour les bonnes affaires. Il a acheté une centaine de clés WiFi à un prix dérisoire sur AloXpresso afin de faire du profit à la revente. Le vendeur lui garantit que toutes les clés fonctionnent correctement. Gérard veut vérifier. Après vérification, 99 des clés sur 100 fonctionnent comme prévu. Gérard aimerait être sûr du disfonctionnement, mais Gérard n'est pas une pointure en informatique. &lt;br /&gt;
&lt;br /&gt;
Coup de génie ! Il se rappelle qu'il dispose d'un dispositif qui capte les ondes EM et les interprète directement. C'est le moment de tester ça. Il remarque une anomalie sur le spectre.&lt;br /&gt;
Il décide de contacter le revendeur pour lui signaler un disfonctionnement sur l'une des clé. &lt;br /&gt;
Pas de soucis. Le vendeur, étant bon prince, lui envoie une autre clé USB et lui fait une ristourne.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Scénario 2''&lt;br /&gt;
&lt;br /&gt;
La police fait une perquisition chez un individu soupçonné de graves délits. Cela fait plusieurs mois que la brigade criminelle prépare l'intervention, et une fois sur les lieux ils arrêtent le soupçonné malfaiteur.&lt;br /&gt;
Cependant avant de repartir, elle veut faire l'acquisition d'un maximum de preuves. Elle veut alors prendre l'essentiel des objets, dont certains objets éléctroniques connectés de l'individu dont elle pourra extraire les informations qui serviront à le faire tomber.&lt;br /&gt;
&lt;br /&gt;
Par chance, elle dispose d'un petit outil qui scannera les signatures alentours des objets connectés, comme des téléphones cachés, clés USB wifi dissimulées dans le décor etc..&lt;br /&gt;
Et si le suspect avait modifié malignement un objet connecté banal pour l'utiliser autrement à ses fins, la police le découvrirait car elle possède une base de données de toutes les signatures spectrales des objets connectés sur le marché et celle de l'objet modifié ne collerait pas avec celle de la base de données.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
&lt;br /&gt;
'''Comment étudier les signaux malgré les perturbations électromagnétiques ambiants et les faibles signaux des µC ?'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les signaux électromagnétiques des microcontrôleurs ou d'autres composants peuvent être faibles. Il y a une possibilité pour palier à ce problème, c'est de capter les signaux depuis une antenne émettrice que l'on rajoute à l'objet d'étude. &lt;br /&gt;
Nous utiliserons un SDR (Software Defined-Radio) afin de capter les ondes radio et les étudier directement sur PC. Le filtrage s'effectuera ainsi de manière numérique. Plusieurs tests seront effectués pour le même objet à étudier (quand on parle d'objet, on évoque un ensemble de plusieurs composants, comme par exemple une alimentation, un micro-contrôleur et une antenne). Ainsi, de manière statistique, nous pourrons en déduire un pattern récurrent pour chaque expérience en les effectuant dans différents environnements (pourquoi pas une chambre anachoïque). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons &lt;br /&gt;
* Capter le signal émis par un objet connecté le plus précisément possible&lt;br /&gt;
&lt;br /&gt;
* Concevoir nos propres objets connectés tous différents mais basés sur un même modèle&lt;br /&gt;
&lt;br /&gt;
* Interpréter les spectrogrammes, faire une étude statistique des signaux émis par nos différents objets et en tirer des conclusions&lt;br /&gt;
&lt;br /&gt;
* Répertorier dans une base de données les signatures de nos objets , voire de quelques objets disponibles sur le marché&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix logiciel :&lt;br /&gt;
&lt;br /&gt;
- La distribution Linux Pentoo ou Kali pour traiter les signaux avec GNU RADIO (Suite logicielle dédiée à l’implémentation de radios logicielles et de systèmes de traitement du signal).&lt;br /&gt;
&lt;br /&gt;
- FemtoOS pour l'OS des ATMEGA328P et ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix Matériel : &lt;br /&gt;
&lt;br /&gt;
- Plusieurs modules radios émetteurs &lt;br /&gt;
&lt;br /&gt;
- Plusieurs microcontrôleurs ATMEGA328P et un ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
- Des alimentations identiques pour chaque PCB&lt;br /&gt;
&lt;br /&gt;
- Un HackRF pour la réception des signaux&lt;br /&gt;
&lt;br /&gt;
- Une antenne 50 Ohm pour le HackRF [https://www.passion-radio.fr/accessoires-sdr/antenne-ant500-74.html]&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous devons préparer tout le matériel qui servira à faire nos tests. C'est à dire concevoir :&lt;br /&gt;
&lt;br /&gt;
- Un ensemble SDR/PC qui traitera le signal reçu avec GNU RADIO.&lt;br /&gt;
&lt;br /&gt;
- Une multitude de PCB qui seront utilisés comme objets connectés (Sur chacun d'entre eux on trouvera au minimum une antenne radio, un microcontrôleur et une alimentation)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de récupérer une &amp;quot;signature&amp;quot; d'un de nos objets , il faudra faire plus de 50 analyses spectrales pour conclure statistiquement sur une bonne signature qui caractérisera l'objet.&lt;br /&gt;
&lt;br /&gt;
Nous devons donc dans un second temps: &lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques mais qui ont un '''firmware''' différent.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques qui ont pour seule différence le '''microcontrôleur'''.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques dont seul le '''PCB''' diffère.&lt;br /&gt;
&lt;br /&gt;
Grâce à tous ces tests , nous pourrons conclure et voir l'impact qu'à le matériel ou le logiciel sur la signature d'un objet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enfin si les délais nous le permettent, nous pourrons réaliser un software qui cartographiera nos objets connectés dans la pièce grâce à la puissance de la signature reçue (Ce qui devrait être réalisable puisqu'à ce stade nous aurons une base de donnée des signatures).&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
|3&lt;br /&gt;
|8&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Recherches&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|6&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Prise en main de GnuRadio&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Configuration Xbee&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Expériences&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|5&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|4&lt;br /&gt;
|15&lt;br /&gt;
|9&lt;br /&gt;
|8&lt;br /&gt;
|7&lt;br /&gt;
|8&lt;br /&gt;
|8&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
[[Fichier:HackrfOne.jpeg|200px|thumb|right|Le HackRF One]]&lt;br /&gt;
Durant cette semaine, nous avons continué nos recherches notamment sur le moyen de transmission de nos objets connectés. Nous avons confirmé notre choix de notre SDR : Monsieur Boé nous a confirmé que des HackRF seraient disponibles dans les laboratoires et qu'il pourrait nous en prêter un. On disposera donc d'une antenne puissante pour traiter les signaux émis par nos objets communiquants. &lt;br /&gt;
&lt;br /&gt;
Il faudra coupler notre HackRF avec un logiciel appelé GNU RADIO qui est un logiciel très complet ( Pour information : la NASA a utilisé GNU RADIO afin de rétablir le contact avec une sonde spatiale abandonnée ). Afin de faire tourner ce logiciel libre, nous aurons besoin de la distribution Kali Linux, ex Backtrack.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Choix des émetteurs/récepteurs === &lt;br /&gt;
&lt;br /&gt;
Nous avons décidé que nos objets connectés communiqueront dans deux '''bandes de fréquences ISM''', l'une à '''900 MHz''' grâce à des modules Digi Xbee et l'autre à '''2,4 GHz''' par le moyen de modules émetteurs Bluetooth. On rappellera que les Digi Xbee et les émetteurs/récepteurs Bluetooth seront pilotés par des ATMEGA 2560.&lt;br /&gt;
&lt;br /&gt;
Les Xbee ne communiqueront pas entre eux et émettront en continu les mêmes données car ils le peuvent, alors que les émetteurs/récepteurs Bluetooth devront s'échanger des données si on veut pouvoir observer un quelconque signal autour de la fréquence de leurs porteuses. &lt;br /&gt;
&lt;br /&gt;
On voudra observer premièrement, si avec deux objets dans les '''mêmes''' conditions (donc même µc et même émetteur), on peut ou non '''distinguer une différence'''. Ceci est fondamental pour la suite des expériences, puisque si les deux émettent à la même fréquence, on pourra faire varier plusieurs paramètres afin de trouver '''des clés''' (des signes) qui pourraient aider à l'identification du matériel.&lt;br /&gt;
&lt;br /&gt;
Ces clés représentent différents facteurs potentiels d'identification du signal (le rapport signal-bruit en fonction de la distance par exemple...).&lt;br /&gt;
&lt;br /&gt;
''On planifie alors pour la semaine suivante de réussir à faire émettre, en utilisant simplement des breadboards pour commencer, nos Xbee et modules BT et observer quelque chose grâce à notre SDR.''&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration des modules XBee ===&lt;br /&gt;
&lt;br /&gt;
Nous avons configuré deux XBee afin qu'ils puissent communiquer entre eux : &lt;br /&gt;
&lt;br /&gt;
Les modules XBee ont été montés sur des platines d'interface USB/série de manière à ce qu'on puisse les paramétrer via le programme de contrôle ''minicom''. &lt;br /&gt;
&lt;br /&gt;
Dans le doute, on supposera que les XBee communiquent à 9600 Baud. On exécute la commande suivante : &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;minicom -b 9600 -D /dev/ttyUSB0&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
On active l'echo local dans minicom, afin de pouvoir observer ce qui a été envoyé par liaison série au XBee ('''CTRL+A''' puis '''E''').&lt;br /&gt;
&lt;br /&gt;
Pour commencer le paramètrage il faut taper ''' +++ ''' rapidement. Le XBee nous répond OK, cela veut dire que nous sommes dans le mode configuration et que nous pouvons utiliser les commandes '''AT'''. (Redirection vers la liste des commandes AT XBee [https://cdn.sparkfun.com/assets/resources/2/9/22AT_Commands.pdf]).&lt;br /&gt;
&lt;br /&gt;
Comme nos XBee ont été utilisés auparavant, il a fallu les restaurer à l'état usine avec la commande '''ATRE'''.&lt;br /&gt;
&lt;br /&gt;
Si on souhaite que des XBee puissent s'envoyer des données il faut qu'ils soient sur le même canal (commande '''ATCH''') et aient le même PAN ID (commande '''ATID'''). Notre PAN ID sera '''BEE6''' et le canal sera celui par défaut '''C'''.&lt;br /&gt;
&lt;br /&gt;
Ensuite il faut leur donner une adresse de destination ('''ATDH''' &amp;amp; '''ATDL''') qui sera l'adresse broadcast, pour ce faire on entre &lt;br /&gt;
 ATDH=0000&lt;br /&gt;
 ATDL=FFFF&lt;br /&gt;
&lt;br /&gt;
Enfin '''ATMY''' représente l'ID du XBee, notre premier XBee aura comme ID 5000 et le second 5001.&lt;br /&gt;
&lt;br /&gt;
N'oublions pas de sauvegarder les paramètres avec '''ATWR'''.&lt;br /&gt;
&lt;br /&gt;
On vérifie que tout a bien été pris en compte :&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;&lt;br /&gt;
+++OK&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATID&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
BEE6&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
C&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
0&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDL&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
FFFF&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATMY&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
5000&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCN&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Puis on fait de même avec le deuxième XBee (ID 5001).&lt;br /&gt;
&lt;br /&gt;
Voilà, lorsque on envoie des caractères par liaison série sur 5000, la LED '''Tx''' de 5000 s'allume et la Led '''Rx''' de 5001 s'allume elle aussi. Cela signifie que l'envoi de donnée par onde radio s'effectue correctement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que les XBee émettent et reçoivent, on peut commencer les mesures avec notre SDR. Mais avant cela il va falloir bien se familiariser avec le logiciel GNU RADIO qui est assez difficile à prendre en main.&lt;br /&gt;
&lt;br /&gt;
=== Première prise en main du logiciel GNURADIO ===&lt;br /&gt;
&lt;br /&gt;
Installation de GNU radio avec les fonctions + drivers pour HackRF : &lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install gqrx-sdr gnuradio gr-osmosdr hackrf &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le bloc Osmocom Source sert de &amp;quot;passerelle&amp;quot; entre le logiciel et la SDR, il permet de transmettre les informations récupérées par le HackRF afin qu'on puisse les traiter avec d'autres bloc de fonctions.&lt;br /&gt;
&lt;br /&gt;
Si on veut pouvoir récuperer les données il faut passer l'argument ''hackrf=0'' dans la box périphérique du bloc Osmocom.&lt;br /&gt;
&lt;br /&gt;
Ci-dessous on peut voir le spectre environnant entre 2.44GHz et 2.460GHz grâce au bloc WX GUI FFT Sink.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ScreenGnuRadio.png|Interface de GNURadio]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous a permis d'effectuer notre première expérience. L'utilisation des deux Xbees nous a permis d'observer l'impact des Xbee sur le champ électromagéntique environnant.&lt;br /&gt;
&lt;br /&gt;
Si on analyse le spectre environnant grâce au module FFT de GNU Radio, lorsque les Xbee communiquent entre eux, on peut apercevoir un pic caractéristique propre.&lt;br /&gt;
En effet, lors de l'emission d'un message sur le port série, on a un pic qui se dégage du spectre d'amplitude -20dBm. Ce pic est caractéristique au canal de communication choisi et configuré sur le Xbee.&lt;br /&gt;
Néanmoins, le signal est perturbé par le bruit environnant. &lt;br /&gt;
L'expérience étant effectuée au sein de l'école, les signaux Wi-Fi perturberont l'étude.&lt;br /&gt;
Il faut noter que la norme IEEE 802.11 impose au Wi-Fi l'utilisation d'une bande passante s'étalant de 2.4 GHz à 2.5 GHz.&lt;br /&gt;
&lt;br /&gt;
La bande passante des modules Zigbee se décomposent en 16 canaux, allant de 2400 MHz à 2480 MHz par pas de 5 MHz.&lt;br /&gt;
&lt;br /&gt;
Le canal ici utilisé est le canal 13 (3ème canal) de fréquence 2415 MHz.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[Fichier:Channel135001.png|thumb|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Fichier:channel135000.png|thumb|none|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBeeCh13.png|Spectre de l'environnement autour du XBee|thumb|none|400 px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBeeCh13SND.png|Lors de l'envoi de données au XBee voisin|thumb|none|400 px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut observer un pic de puissance lors de l'envoi d'une donnée en série à la fréquence 2.415 GHz.&lt;br /&gt;
Il nous est maintenant nécessaire d'analyser de plus près les signaux et leurs fréquence centrale dans la bande perçue au dessus de -20dB.&lt;br /&gt;
&lt;br /&gt;
On réeffectuera une expérience en zone isolée des signaux parasites.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous avons principalement fait des recherches dans le but de mieux comprendre les signaux émis par le Xbee.&lt;br /&gt;
&lt;br /&gt;
En somme, nous étions confrontés à de nombreuses interrogations. Le fonctionnement du Xbee étant assez simple et la sécurité du protocole Zigbee étant moindre, y a t-il possibilité de démoduler le signal émis afin de développer nos études ?&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
[[Fichier:Switchchannel pyscript.PNG|upright=0.8|thumb|right|Script Python]]&lt;br /&gt;
&lt;br /&gt;
Après réflexion et consultation de nos encadrants, nous nous sommes rendu compte que la démodulation prévue lors de la semaine 4 n'aiderait pas à répondre à la problématique de notre sujet !  &lt;br /&gt;
&lt;br /&gt;
Afin de mieux visualiser les signaux des Xbee , on décide d'automatiser le processus d'envoi sur le port série des données vers le Xbee. C'est à dire concevoir un programme Python qui automatisera l'envoi de données et le changement de channel à intervalle de temps régulier (Changement toutes les 10 secondes). &lt;br /&gt;
&lt;br /&gt;
L'utilisation de Minicom '''n'était pas du tout la meilleure solution''' pour faire émettre les Xbee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Après quelques essais, on remarque que lorsque le Xbee émet sur le channel 13, il émet à environ 2,445GHz au lieu d'émettre à 2,415GHz soit une différence de 30MHz : Ceci n'est pas important, car ce que l'on souhaite remarquer c'est un éventuel décalage de la fréquence centrale entre deux Xbee différents. Si les deux Xbee n'ont pas la même frequence centrale on pourra conclure que la '''fréquence centrale''' de la porteuse du Xbee n'est pas '''une des clés''' permettant d''''identifier''' cet émetteur/récepteur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaines 6 et 7==&lt;br /&gt;
&lt;br /&gt;
Afin de mieux cerner le comportement électromagnétique des modules XBee, il nous est nécessaire de comprendre leur fonctionnement et le protocole Zigbee.&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous avons cherché à souligner le parallélisme entre étude fréquentielle par le spectre et étude temporelle du signal.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PlancheXPtest.jpg|thumb|right|Planche prototype]]&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous avons paramétré la fréquence centrale de capture du HackRF. En effet, bien que le HackRF dispose d'une large bande passante, afin de se focaliser sur la porteuse, il est indispensable de configurer le HackRF en conséquence.&lt;br /&gt;
En second lieu, pour éviter une variation du RSSI (Received Signal Strength Indication) et de la puissance du signal, nous devions mettre en place une prototype de &amp;quot;planche expérimentale&amp;quot; sur laquelle devaient être fixés nos différents modules (l'antenne de reception et les Xbees).&lt;br /&gt;
&lt;br /&gt;
La position des antennes les unes par rapport aux autres est fondamentale. Afin d'optimiser la reception, les antennes doivent être parallèles.&lt;br /&gt;
&lt;br /&gt;
Chaque Xbee est identifié par un chiffre (1 ou 2). En effet, l'attribution de ces chiffres sera définitive pour ne pas perturber la cohérence des expériences. &lt;br /&gt;
Leur position est aussi fondamentale. Ainsi, en fonction que le Xbee soit emetteur ou récepteur, il sera disposé différement sur la planche.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Expérience : Le XBee 1 émetteur directement connecté en série au PC===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:GrapheGNURadio01.png|thumb|left|150px|Schéma simple d'étude fréquentielle et temporelle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette expérience est la première mettant en place un contexte (un seul Xbee émetteur connecté en série au PC, le deuxième Xbee étant inactif) et nous permettra d'étudier le plus de cas possibles.&lt;br /&gt;
&lt;br /&gt;
Nous avons tout d'abord commencé par un graphe GNURadio simple permettant l'observation du spectre et du signal et la variation de la fréquence d'étude.&lt;br /&gt;
&lt;br /&gt;
Le script python a été réécrit afin que le XBee puisse émettre une chaîne de caractère &amp;quot;HELLO&amp;quot; * 1024. En effet, même si la fréquence de balayage du module HackRF peut être grandement augmentée, il faut éviter d'aller au dessous de 0.01s, finissant par consommer de manière considérable les ressources octroyées par le CPU le cas échéant.&lt;br /&gt;
Le fait d'augmenter la taille de la chaine de caractère permet de mieux synchroniser l'étude en temps réel avec la capture des données.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc émis les données sur le canal 14, soit la fréquence centrale est à 2.420GHz selon la norme Zigbee. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Etude fréquentielle&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L'étude fréquentielle est similaire à celle réalisée auparavant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div center&amp;gt;&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[Fichier:Spectrefreq2.png|thumb|center|750px|Spectre fréquentiel au canal 14]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[Fichier:Spectrogram.png|thumb|center|250px|Spectrogramme]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on peut observer sur l'analyseur de spectre GNURadio que la fréquence centrale est située 2.450GHz. Nous n'avons pas trouvé la raison mais il s'agit sûrement d'un décalage au niveau applicatif.&lt;br /&gt;
&lt;br /&gt;
D'autre part, l'ensemble des fréquences qui dessinent le spectre s'étalent sur une large bande de fréquence. En effet, cette technique d'étalement appelée DSSS (Direct-Sequence Spread Spectrum) utilisé par les modules XBee permet au signal d'être moins sensible aux interférences et aux brouillages. En outre, même si la puissance du spectre dans sa globalité reste la même, la densité spectrale elle diminue considérablement, rendant le signal plus &amp;quot;discret&amp;quot;.&lt;br /&gt;
La différence de puissance entre le lobe principal et les premiers lobes secondaires sont de 30 dB, ce qui est aussi commun au DSSS.&lt;br /&gt;
&lt;br /&gt;
Le spectrogramme témoigne aussi de l'étalement du signal sur un peu plus de 6 MHz (3MHz de par et d'autre de la fréquence centrale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt; Etude temporelle &amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Signal temporel.png|thumb|left|500px|Signal observable centré à 2.450GHz lors de l'émission]]&lt;br /&gt;
&lt;br /&gt;
Le signal ici est séparé en deux composantes car il s'agit d'un signal complexe. Nous avons supposé en premier temps qu'il s'agissait du signal principal décalé de 180°, ce qui n'était pas le cas.&lt;br /&gt;
Après quelques recherches, cette séparation des composantes permet de transmettre deux fois plus de données sur la même bande passante.&lt;br /&gt;
Le signal observable témoigne d'une modulation bien spécifique au XBee. En effet, on peut observer des sauts de phase à différents points, qui correspondent à une modulation par changement de phase (modulation QPSK ou Quadratic Phase-Shift Keying). Ce sont ces sauts de phases qui permettent la transmission des bits.&lt;br /&gt;
Les changements de phase s'il y a se font toutes les µs. En outre, on peut observer un décalage (offset) entre la composante Q et la composante I de µs/2 (propre à la modulation OQPSK).&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé d'enregistrer ces données brutes dans un fichier et nous l'avons étudié avec Audacity, logiciel open-source de son, et donc de signaux ! L'inconvénient avec l'interface graphique QT de GNURadio est son manque de précision lors d'un dézoom sur le signal en temps réel. Audacity permet de palier à celà !&lt;br /&gt;
En outre, on peut voir que les paquets Xbee sont reconnaissables. En effet, le signal témoigne de la taille du paquet XBee.&lt;br /&gt;
&lt;br /&gt;
Le paquet XBee est constitué d'un premier header (header physique) de 6 octets :&lt;br /&gt;
- la séquence de préambule (4 octets) constitué de 32 bits à 0&lt;br /&gt;
&lt;br /&gt;
- l'indice de début du paquet fixé à 0x7A (1 octet)&lt;br /&gt;
&lt;br /&gt;
- la longueur du paquet (1 octet);&lt;br /&gt;
&lt;br /&gt;
d'un header MAC (7 à 27 octets en fonction des informations de l'adresse), d'un bloc FCS de fin de paquet (2 octets) et l'ensemble des données (de 1 à 104 octets).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Signal2.png|thumb|right|400px|On observe graphiquement qu'un paquet est transmis en 3846µs]]&lt;br /&gt;
[[Fichier:PacketXBee.png|400px|thumb|right|Paquet XBee]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Comme dit plus haut, les signaux émis par le XBee connaissent un étalement sur le spectre par DSSS.&lt;br /&gt;
Cet étalement s'effectue en divisant chaque symbole (correspondant à une série de 4 bits) transmis en &amp;lt;B&amp;gt;&amp;lt;I&amp;gt;chips&amp;lt;/I&amp;gt;&amp;lt;/B&amp;gt;.&lt;br /&gt;
Chaque symbole, soit 4 bits, correspond à 32 chips, et donc 32 états binaires (1 octet correspond à 64 chips).&lt;br /&gt;
Dans le cas de la norme ZigBee, la transmission de chacun des chips est synchronisé sur chaque µs (1 chip toutes les µs).&lt;br /&gt;
&lt;br /&gt;
Les signaux reçus par l'antenne HackRF étaient deux sinusoïdes modulées en phase et qui s'étalaient sur une période d'environ 3840µs (3846µs graphiquement mais il y a possibilité d'erreur à l'echelle du µs).&lt;br /&gt;
Sachant qu'un octet correspond à 64µs, on a :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;N_{octets} =\frac{2*T_{signal}}{64*T_{chip}}=\frac{2*3.840*10^{-6}}{64*10^{-6}}=120 octets&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'analogie peut être effectuée entre paquet Ethernet et paquet ZigBee. En effet, la taille limite des données d'un paquet est de 104 octets. La chaîne de caractère n'étant qu'envoyée par paquet, le paquet observé n'est que de 120 octets, ce qui est cohérent avec les caractéristiques du XBee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Hello1024secs.png|thumb|none|Temps de transmission de la chaîne de caractères &amp;quot;HELLO&amp;quot; 1024 fois]] &amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:AudacitySignal2.png|thumb|none|51 Paquets XBee portent la chaîne de caractère &amp;quot;HELLO&amp;quot; 1024 fois]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 8==&lt;br /&gt;
&lt;br /&gt;
L'étude des signaux posait réellement problème de par le fait qu'une grande partie de la capture faite n'était que purement le bruit sans signal (utile plus tard pour l'étude du SNR).&lt;br /&gt;
Prenons l'exemple d'un paquet de 21 octets (un paquet contenant une seule chaîne de caractères HELLO). Le signal s'étalerait en théorie sur 21*64 chips soit 672 chips. Sachant que la modulation est une modulation QPSK, on s'étale sur un temps de 672µs.&lt;br /&gt;
En effet, le Xbee transmet toutes les 100ms.&lt;br /&gt;
Donc qu'une partie du signal nous est utile.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décider d'écrire un script qui nous permettrait d'étudier le signal dans de meilleures conditions, et donc de le filtrer.&lt;br /&gt;
&lt;br /&gt;
Chaque capture de signal effectuée est enregistrée dans un fichier par le biais du bloc fonction &amp;lt;B&amp;gt;&amp;lt;I&amp;gt;File Sink&amp;lt;/I&amp;gt;&amp;lt;/B&amp;gt; du compagnon GNURadio. Néanmoins, les fichiers obtenus sont des fichiers binaires assez lourds (environ 500Mo pour une capture de 3s), ce qui est un réel problème et qui implique le filtrage du signal.&lt;br /&gt;
&lt;br /&gt;
La bibliothèque numpy pour python nous permet en outre directement d'importer les échantillons des signaux, les traduisant du binaire à un format cible (complexe flottant 64 bits) dans un Array par le biais de la fonction:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; f = scipy.fromfile(open(&amp;quot;Nom du fichier&amp;quot;), dtype=scipy.complex64) &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La première solution pour réduire ce signal était d'imposer un threshold directement sur le signal, supérieur au bruit, mais qui conduirait à une perte d'une partie du signal à étudier.&lt;br /&gt;
La deuxième solution qui a été retenue était tout simplement de calculer l'amplitude et la phase du signal et appliquer ce même threshold à l'amplitude.&lt;br /&gt;
&lt;br /&gt;
== Semaine 9 et 10==&lt;br /&gt;
&lt;br /&gt;
A partir de la semaine 10 nous avons procéder aux expériences pour avoir suffisamment de données et en tirer des conclusions.&lt;br /&gt;
&lt;br /&gt;
Lorsqu'on fait une acquisition d'un signal xbee , on peut maintenant via un script traiter cette acquisition et récupérer seulement les parties qui nous intéressent : A savoir la partie réelle et la partie imaginaire, l'amplitude du signal et enfin la phase du signal.&lt;br /&gt;
&lt;br /&gt;
Exemple ci dessous après acquisition + traitement de notre xbee n°2 :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Traitement xbee2.png|thumb|right|redresse=2|Signal Xbee2 post-traitement ]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Constellation xbee2.png|thumb|right|redresse=2|Diagramme de constellation xbee2 après utilisation de LightSignal]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'utilisation du script LightSignal permet de retirer toutes les phases en dehors du signal. Ainsi, on peut caractériser le diagramme de constellation comme un diagramme propre à la modulation QPSK. &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
import scipy&lt;br /&gt;
import numpy&lt;br /&gt;
import sys&lt;br /&gt;
&lt;br /&gt;
def binToComplex64(name):&lt;br /&gt;
    threshold=0.10&lt;br /&gt;
    tmp=scipy.fromfile(open(name+&amp;quot;_PhaseMeg&amp;quot;), dtype=scipy.complex64)&lt;br /&gt;
    tmp2=scipy.fromfile(open(name), dtype=scipy.complex64)&lt;br /&gt;
    &lt;br /&gt;
    f2 = open(name+&amp;quot;_filtre&amp;quot;, &amp;quot;w+&amp;quot;) &lt;br /&gt;
    f = open(name+&amp;quot;_PhaseMeg_filtre&amp;quot;,&amp;quot;w+&amp;quot;)&lt;br /&gt;
    &lt;br /&gt;
    p=1&lt;br /&gt;
    size=tmp.__len__()&lt;br /&gt;
    size2=tmp2.__len__()&lt;br /&gt;
    &lt;br /&gt;
    if size &amp;gt; size2:&lt;br /&gt;
        size=size2&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    ground=False&lt;br /&gt;
    newListSignal=[]&lt;br /&gt;
    newListMagnPh=[]&lt;br /&gt;
    for val in range(0,size): &lt;br /&gt;
        if(val&amp;gt;=(size/100)*p):&lt;br /&gt;
            print(str(p)+&amp;quot; %&amp;quot;)&lt;br /&gt;
            p=p+1&lt;br /&gt;
        if(tmp[val].real&amp;gt;threshold):&lt;br /&gt;
            if(ground==True):&lt;br /&gt;
                for i in range(0,1000):&lt;br /&gt;
                    newListSignal.append(numpy.complex64(0))&lt;br /&gt;
                    newListMagnPh.append(numpy.complex64(0))&lt;br /&gt;
                ground=False&lt;br /&gt;
            newListSignal.append(tmp2[val])&lt;br /&gt;
            newListMagnPh.append(numpy.complex64(tmp[val].real+tmp[val].imag*0.3j))&lt;br /&gt;
        else:&lt;br /&gt;
            ground=True&lt;br /&gt;
    &lt;br /&gt;
    tmp=numpy.asarray(newListMagnPh)&lt;br /&gt;
    tmp.tofile(f)&lt;br /&gt;
    tmp2=numpy.asarray(newListSignal) &lt;br /&gt;
    tmp2.tofile(f2)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    try:&lt;br /&gt;
        binToComplex64(sys.argv[1])&lt;br /&gt;
    except IndexError:&lt;br /&gt;
        print(&amp;quot;Donnez le nom du fichier\n&amp;quot;)&lt;br /&gt;
    except IOError:&lt;br /&gt;
        print(&amp;quot;Le fichier n'existe pas\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__=='__main__':&lt;br /&gt;
    main()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le diagramme de constellation témoigne de nouveau du type de modulation utilisé par le module XBee.&lt;br /&gt;
En effet, on observe quatre points de part et d'autre des axes de quadrature et d'inphase.&lt;br /&gt;
&lt;br /&gt;
==Semaine 11==&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé cette semaine d'étudier, ce qui est selon pour nous, l'une des pistes fondamentales de notre projet, et plus particulièrement de l'étude de nos signaux : le rapport signal bruit.&lt;br /&gt;
&lt;br /&gt;
L'objectif de cette semaine et de celle à venir était, à partir du signal acquis par le hackrf, d'effectuer le calcul du SNR (signal-to-noise ratio) tel que :&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;SNR =\frac{P_{signal}}{P_{bruit}}&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le script python qui nous a permis de communiquer entre les deux shields Xbee se verra amélioré afin de faire plusieurs acquisition des signaux lors de la communication entre les Xbee, effectuer une moyenne statistique, et de même lorsqu'il n'y a pas de communication.&lt;br /&gt;
&lt;br /&gt;
Nous avons essayé d'approcher le SNR directement depuis l'interface de GnuRadio par le biais de l'utilitaire graphique et le langage en bloc, néanmoins nous procéderons à l'étude de ce rapport avec Scilab ou Matlab.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaines supplémentaires==&lt;br /&gt;
&lt;br /&gt;
===Expérience : Temps de calcul du FCS entre le XBee1 et et le XBee2===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 et XBee2 sont alimentés sur 5V VCC par USB (connecté à l'ordinateur)&amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 et XBee2 disposent du firmware : 10EF &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 est d'abord emetteur et le XBee2 est recepteur puis inversement. Aucun paquet ACK n'est renvoyé de la part du recepteur &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On transmet la chaine de caractère HELLO 256 fois toutes les 1 secs&lt;br /&gt;
Les données étant assez conséquentes, le Xbee transmet plusieurs fragments du paquet.&lt;br /&gt;
L'objectif de cette expérience est d'étudier le temps entre chaque fragment d'un paquet.&lt;br /&gt;
L’espace de temps entre chacun des paquets permet de calculer le FCS (frame check sequence) afin de minimiser les erreurs de transmission.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:ChecksumGraphe.png|thumb|left|redresse=2|Les différents temps à mesurer]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Néanmoins, l’étude de ces “temps morts” se voit entravé par le fait que le module HackRF ne permette pas d’obtenir un signal clair sur plus de 5 secondes.&lt;br /&gt;
En outre, pour 5 secondes d’étude et pour une fréquence d’échantillonage de 20MHz (soit un temps Te=5.10e8), on compte 100.000.000 d’échantillons.&lt;br /&gt;
Le CPU lors de la capture était grandement sollicité, ce qui explique le fait que la capture soit compromise.&lt;br /&gt;
Pour régler ce problème, on a écrit un script shell de capture.&lt;br /&gt;
Ce script consiste à:&lt;br /&gt;
&amp;lt;br&amp;gt;- effectuer une capture d’une durée de 1 sec&lt;br /&gt;
&amp;lt;br&amp;gt;- d’enregistrer la capture&lt;br /&gt;
&amp;lt;br&amp;gt;- d’effectuer un traitement de ces paquets par un algorithme python en étudiant le temps entre chacun des fragments. Ce temps sera obtenu en nombre d’échantillons, défini avec un seuil d’acceptation absolu entre 150.000 et 300.000 échantillons (pour bien capturer ces temps intermédiaires et pas les temps provoqués par des signaux parasites ou du bruit), et pour affiner l’étude, on impose un seuil d’erreur de +-10% autour de la moyenne. La moyenne est calculée en continue&lt;br /&gt;
&amp;lt;br&amp;gt;- l’ensemble des valeurs obtenues sont enregistrées dans un fichier&lt;br /&gt;
&amp;lt;br&amp;gt;- on réeffectue la capture …&lt;br /&gt;
&lt;br /&gt;
On répète le processus un certains nombre de fois afin d’obtenir un nombre de valeurs nous permettant de nous conforter sur l'issue de l'expérience (environ 1000 valeurs)&lt;br /&gt;
&lt;br /&gt;
La capture et l'étude de chacun des modules dure une à deux heures.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats :&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans le cas du XBee1 (à gauche) et du XBee2 (à droite), voici les résultats obtenus :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Xbee1Graphe256.png|thumb|left|redresse=2|On peut observer des pics caractéristiques à l'envoi]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBee2Graphe256.png|thumb|left|redresse=2|Les mêmes pics caractéristiques confirment un comportement non-aléatoires du module]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
XBee1 : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 259675,81&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 8369.7417&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 70052576.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
XBee2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 258762.58&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 9165.4097&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 84004736.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les graphes présentent le nombre de répétitions des temps de calcul de fragements.&lt;br /&gt;
&lt;br /&gt;
On peut voir des pics spécifiques à certains points dans les deux expériences. Ces pics sont caractéristiques et au module XBee, et à la chaîne de caractère HELLO. Les deux expériences étant effectuées dans le même contexte, &lt;br /&gt;
&lt;br /&gt;
De même que pour le second Xbee, on retrouve des pics bien distincts à certains points.&lt;br /&gt;
&lt;br /&gt;
En outre, on peut voir que ces pics bien distincts se rapprochent de ceux du premier Xbee.&lt;br /&gt;
Néanmoins, même si la moyenne varie que très peu par rapport aux deux Xbee, la variance est assez différente.&lt;br /&gt;
&lt;br /&gt;
Pour confirmer ces observations, il est peut être nécessaire de répéter la même expérimentation sur un nombre d'échantillons plus grand.&lt;br /&gt;
&lt;br /&gt;
Ainsi, afin de confirmer la conjecture, on décide de faire d’autres captures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En superposant les deux graphes (Xbee1 en rouge et Xbee2 en bleu), on peut voir qu'il y a moins de dispersion dans le cas du XBee1, plus centré sur des valeurs précises, contrairement au Xbee2.&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBee1Xbee2Graphe.png|thumb|left|redresse=2]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour les deux nouveaux échantillons, on a les caractéristiques suivantes :&lt;br /&gt;
&amp;lt;U&amp;gt;Xbee1 sur 1688 échantillons&amp;lt;/U&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 260230.3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 8427.3923&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 71020941&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Xbee2 sur 1722 échantillons&amp;lt;/U&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 259899.41&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 9831.5106&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 96658601&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Conclusion de l'expérience&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
L’hypothèse qui est que la variance des temps &amp;quot;morts&amp;quot; entre chaque fragments de paquet, soit le temps de calcul du FCS pour le signal émis peut être considéré comme “clé” de distinction d’un module Xbee n'est donc pas à négliger. &lt;br /&gt;
&lt;br /&gt;
On peut même considérer que cette étude peut distinguer un module Xbee d'un autre électromagnétiquement parlant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Algorithme python utilisé pour l'étude du signal&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
[Pseudo code ici]&lt;br /&gt;
def etudeSubdivPaquet(name, inter_time_values):&lt;br /&gt;
&lt;br /&gt;
threshold = 0.30&lt;br /&gt;
ground = false&lt;br /&gt;
p=1&lt;br /&gt;
&lt;br /&gt;
## On converti chacun des nombres binaires en complexe 64 (deux flottants 32 bits)##&lt;br /&gt;
amppha=scipy.fromfile(open(name+&amp;quot;_PhaseMeg&amp;quot;), dtype=scipy.complex64) &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
## On récupère la taille du tableau de complexes (taille du signal) ##&lt;br /&gt;
size=amppha.__len__()&lt;br /&gt;
&lt;br /&gt;
    debut=0&lt;br /&gt;
    inter_time=0&lt;br /&gt;
    min_limit=150000&lt;br /&gt;
    max_limit=350000&lt;br /&gt;
    accept_range=1./10. ## Permet de mettre un seuil d'intervalle d'acceptation&lt;br /&gt;
    signalFnd=False&lt;br /&gt;
&lt;br /&gt;
    for val in range(debut,size):&lt;br /&gt;
        if(val&amp;gt;=((size-debut)/100)*p):&lt;br /&gt;
            print(str(p)+&amp;quot; %&amp;quot;)&lt;br /&gt;
            p=p+1&lt;br /&gt;
&lt;br /&gt;
        if(amppha[val].real&amp;gt;threshold):&lt;br /&gt;
            if(ground==True):&lt;br /&gt;
                if(signalFnd==True):&lt;br /&gt;
                    if(len(inter_time_values)&amp;gt;0):&lt;br /&gt;
                        moy=moyenne(inter_time_values)&lt;br /&gt;
                        if(inter_time &amp;gt;= moy-accept_range*moy and inter_time &amp;lt;= moy+accept_range*moy):&lt;br /&gt;
                            print(&amp;quot;Yes &amp;quot;+str(inter_time))&lt;br /&gt;
                            inter_time_values.append(inter_time)&lt;br /&gt;
                        inter_time=0&lt;br /&gt;
                    elif(inter_time&amp;gt;=min_limit and inter_time&amp;lt;=max_limit):&lt;br /&gt;
                        inter_time_values.append(inter_time)&lt;br /&gt;
                else:&lt;br /&gt;
                    signalFnd=True&lt;br /&gt;
                ground=False&lt;br /&gt;
        else:&lt;br /&gt;
            ground=True&lt;br /&gt;
            if(signalFnd==True):&lt;br /&gt;
                inter_time=inter_time+1&lt;br /&gt;
&lt;br /&gt;
    if(len(inter_time_values)&amp;gt;0):&lt;br /&gt;
        print(&amp;quot;Moyenne &amp;quot;+ str(moyenne(inter_time_values)))&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Expérience : SNR ===&lt;br /&gt;
&lt;br /&gt;
Maintenant nous voulons vérifier si la mesure du SNR est une expérience pertinente pour l'identification des xbee. Nous allons prendre plusieurs xbee , et nous les déplacerons dans la salle à des endroits précis. A chaque déplacement nous mesurerons le SNR grâce à notre algorithme. &lt;br /&gt;
&lt;br /&gt;
Ce script écrit en python permet de :&lt;br /&gt;
&lt;br /&gt;
=== Rencontre avec un doctorant ===&lt;br /&gt;
&lt;br /&gt;
Bien que plusieurs pistes ont pu être explorées, notre manque d'expertise dans le domaine de la radio logicielle nous a fait défaut sur nos recherches. En effet, après avoir calculé la SDR d'un de nos signaux, nous nous sommes confrontés à des résultats assez incohérents. De nombreuses erreurs peuvent se glisser&lt;br /&gt;
Ces semaines&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'archive des scripts python : &lt;br /&gt;
&lt;br /&gt;
[archive.zip]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le rapport&lt;br /&gt;
&lt;br /&gt;
[Rapport.pdf]&lt;/div&gt;</summary>
		<author><name>Amoreau</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=74258</id>
		<title>IMA4 2018/2019 P70</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=74258"/>
				<updated>2019-05-04T09:48:49Z</updated>
		
		<summary type="html">&lt;p&gt;Amoreau : /* Expérience : SNR */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;font-size: 30px; width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;Impact du matériel et du logiciel sur le champ électromagnétique&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Projet'''&amp;lt;/ins&amp;gt; : Impact du matériel et du logiciel sur le rayonnement électromagnétique&lt;br /&gt;
&lt;br /&gt;
''Nous proposons d'évaluer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et la consommation électrique.''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Etudiants'''&amp;lt;/ins&amp;gt; : Souheib KHINACHE et Antoine MOREAU&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Encadrants'''&amp;lt;/ins&amp;gt; : Alexandre BOE, Xavier REDON et Thomas VANTROYS&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'internet des objets est un marché en plein essor. La communication entre les différents objets connectés crée un nuage de signaux autour d'eux. Ces derniers sont vus par les utilisateurs comme des boîtes noires : le fonctionnement se fait sans en connaître les composants matériels et logiciels. &lt;br /&gt;
Néanmoins, ces objets, de par leurs propriétés électroniques, créent des fuites électromagnétiques impactant le champ environnant. &lt;br /&gt;
&lt;br /&gt;
Bien qu'ils peuvent porter à débat sur l'impact sur la santé, ces signaux peuvent représenter de réelles sources d'informations sur l'aspect matériel et applicatif de l'objet.&lt;br /&gt;
&lt;br /&gt;
Il serait donc intéressant d'avoir idée générale sur le fonctionnement du système en interprétant les ondes électromagnétiques émises par ce système.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Les principaux objectifs de ce projet seront donc de mesurer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et sur la consommation électrique.&lt;br /&gt;
Pour cela, l'outil potentiel avec lequel nous pourrions travailler serait une sonde de champ électromagnétique afin d'établir des mesures. &lt;br /&gt;
Cependant, nous pourrions concevoir notre propre système de capture et d'interprétation à partir d'une antenne, de filtres de fréquences et d'un microcontrôleur (on commencera par un ATMega328P). Il sera nécessaire de prendre en compte les perturbations issues de notre appareil de mesure et d'en tenir compte.&lt;br /&gt;
&lt;br /&gt;
On effectuera ainsi plusieurs expérimentations sur différents supports d'étude :&lt;br /&gt;
*l'aspect &amp;quot;Hardware&amp;quot; en étudiant différents modèles pour un même type de shield  &lt;br /&gt;
*l'aspect calculatoire du matériel en se basant sur l'impact des microcontrôleurs en fonction du modèle (ATMega328P et ATMega2560)&lt;br /&gt;
*l'aspect &amp;quot;Software&amp;quot;, en étudiant l'impact du logiciel et du firmware d'un même composant (différents firmwares pour un même shield Wi-Fi)&lt;br /&gt;
*l'aspect puissance des composants électroniques de gestion de puissance (ponts, hacheurs, onduleurs...).&lt;br /&gt;
&lt;br /&gt;
L'étude des différentes informations se fera par traitement des signaux électromagnétiques et des spectres. &lt;br /&gt;
Afin de mieux appréhender le problème, il nous est nécessaire de comprendre les phénomènes physiques issus de la notion d'électromagnétisme.&lt;br /&gt;
&lt;br /&gt;
Ces études mèneront à une étape plus complexe : l'interprétation des signaux. En effet, l'un des objectifs de ce projet est de comprendre du mieux possible le fonctionnement d'un système sans y avoir accès directement, et donc dans ce contexte &amp;quot;traduire&amp;quot; un ensemble de signaux électromagnétiques.&lt;br /&gt;
&lt;br /&gt;
On pourra en outre apporter un aspect visuel à l'étude en rajoutant une interface informatique.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
Bien qu'aux yeux de nombreuses personnes le bruit électromagnétique créé par les équipements électroniques du quotidien peut porter à controverse (débats concernant l'impact sur la santé par exemple), il peut être une source d'informations. &lt;br /&gt;
De nos jours, les ondes électromagnétiques restent un vaste champ d'étude, sujettes à de nombreuses thèses et recherches au sein des laboratoires.&lt;br /&gt;
&lt;br /&gt;
On peut prendre l'exemple de [https://www.eurekalert.org/pub_releases/2015-01/giot-rwt010715.php Milos Prvulovic], professeur à l'Institut Technologique de Géorgie, ayant simulé un contexte de cybercafé, dans lequel il place une antenne magnétique, un ordinateur portable cible et un ordinateur &amp;quot;espion&amp;quot;. Il réussit, grâce aux signaux EM émis par l'impulsion de l'appui des touches clavier à capter un message écrit par un ordinateur cible. &lt;br /&gt;
&lt;br /&gt;
Néanmoins, dans le quotidien, l'utilisation des sondes électromagnétiques se fait pour l'étude énergétique d'un système électronique (fuites électromagnétiques anormales, preuves d'une anomalie...) afin de respecter certaines normes législatives. Le code du travail par exemple réglemente et définit des valeurs seuils par le biais des articles R. 4453-3 et R. 4453-4.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
'''NBM-520 de NARDA STS'''&lt;br /&gt;
[[Fichier: NBM_TS.png|thumb|300px|NBM-TS, application des appareils NBM]]&lt;br /&gt;
NARDA STS est une entreprise qui fournit des outils de mesure. Elle met à disposition aux professionnels des sondes électromagnétiques.&lt;br /&gt;
La NBM-520 est un appareil de la franchise, mesurant le champ électrique et magnétique. Elle donne des valeurs précises du champ électromagnétique ambiant sur une large bande. Elle propose différentes sondes modulables permettant une souplesse au niveau de l'étude en fonction des besoins, avec des sondes pouvant étudier des signaux de fréquence de 100kHz à 6GHz ou même de 300kHz à 50GHz (en fonction de la sonde choisie).&lt;br /&gt;
&lt;br /&gt;
En outre, le dispositif peut se connecter en USB sur PC afin d'envoyer les données capturées et d'en faire une étude. Le dispositif propose un logiciel d'étude, NBM-TS, permettant d'observer du champ en fonction du temps, de la fréquence, de la position...&lt;br /&gt;
&lt;br /&gt;
L'équipement est utilisé par l'ANF (l'Agence Nationale des Fréquences, agence gérant l'ensemble des normes autour des radiofréquences), et est donc un gage de qualité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Avantages :''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Large bande de fréquence&lt;br /&gt;
* Matériel solide&lt;br /&gt;
* Application fonctionnelle permettant l'étude et gestion des données&lt;br /&gt;
* Possibilité d'étudier séparément champ électrique et magnétique&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Inconvénients:''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Impossible d'étudier les basses fréquences (appareils sous tension, bobinages...)&lt;br /&gt;
* Prix élevé : à partir de 3100€&lt;br /&gt;
* La cible de ce produit est surtout les professionels&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
'''Une pita.'''&lt;br /&gt;
&lt;br /&gt;
''Comment mon pain à pita vole ta clé RSA ?''&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Pita.jpg|200px|thumb|left|Une pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Des chercheurs israéliens ont découvert un moyen de capturer des clés de cryptage RSA, réputées comme inviolables, par le biais d'une pita... du moins avec un dispositif suffisamment petit pour être caché dans un pain à pita. &lt;br /&gt;
Le dispositif, renommé PITA pour Portable Instrument for Trace Acquisition a la particularité de capturer les ondes radio électromagnétiques émanantes d'un PC, qu'il soit connecté à un réseau ou pas.&lt;br /&gt;
Les différentes opérations du processeur sont identifiées en distinguant les différents modèles de l'activité radio sur le spectre EM.&lt;br /&gt;
&lt;br /&gt;
Bien que la capture des clés RSA a été faite dans des conditions particulières (modification du processeur de l'ordinateur cible), il est néanmoins possible, selon les chercheurs, d'identifier quelle type d'activité est exercée par l'ordinateur ainsi que son état.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PITA.jpg|300px|thumb|right|Un dessous de pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'un des points importants concernant le dispositif est son coût : moins de 300 euros.&lt;br /&gt;
L'appareil dispose :&lt;br /&gt;
* d'un PC portatif (PC-on-a-stick) ''Rikomagic MK802 IV'',&lt;br /&gt;
* d'un recepteur radio SDR ''FUNcube Dongle Pro+''&lt;br /&gt;
* d'une antenne radio&lt;br /&gt;
* d'une batterie&lt;br /&gt;
* d'une antenne WiFi&lt;br /&gt;
* d'une carte MicroSD&lt;br /&gt;
* d'un adapteur d'antenne&lt;br /&gt;
* et d'une '''pita'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le dispositif aurait une portée de 50cm. &lt;br /&gt;
Les chercheurs israéliens ont collaboré avec GNU Private Guard (logiciel de cryptage asymétrique) afin de protéger contre ces attaques les clés de cryptage.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
&lt;br /&gt;
''Scénario 1''&lt;br /&gt;
&lt;br /&gt;
Gérard a toujours le flair pour les bonnes affaires. Il a acheté une centaine de clés WiFi à un prix dérisoire sur AloXpresso afin de faire du profit à la revente. Le vendeur lui garantit que toutes les clés fonctionnent correctement. Gérard veut vérifier. Après vérification, 99 des clés sur 100 fonctionnent comme prévu. Gérard aimerait être sûr du disfonctionnement, mais Gérard n'est pas une pointure en informatique. &lt;br /&gt;
&lt;br /&gt;
Coup de génie ! Il se rappelle qu'il dispose d'un dispositif qui capte les ondes EM et les interprète directement. C'est le moment de tester ça. Il remarque une anomalie sur le spectre.&lt;br /&gt;
Il décide de contacter le revendeur pour lui signaler un disfonctionnement sur l'une des clé. &lt;br /&gt;
Pas de soucis. Le vendeur, étant bon prince, lui envoie une autre clé USB et lui fait une ristourne.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Scénario 2''&lt;br /&gt;
&lt;br /&gt;
La police fait une perquisition chez un individu soupçonné de graves délits. Cela fait plusieurs mois que la brigade criminelle prépare l'intervention, et une fois sur les lieux ils arrêtent le soupçonné malfaiteur.&lt;br /&gt;
Cependant avant de repartir, elle veut faire l'acquisition d'un maximum de preuves. Elle veut alors prendre l'essentiel des objets, dont certains objets éléctroniques connectés de l'individu dont elle pourra extraire les informations qui serviront à le faire tomber.&lt;br /&gt;
&lt;br /&gt;
Par chance, elle dispose d'un petit outil qui scannera les signatures alentours des objets connectés, comme des téléphones cachés, clés USB wifi dissimulées dans le décor etc..&lt;br /&gt;
Et si le suspect avait modifié malignement un objet connecté banal pour l'utiliser autrement à ses fins, la police le découvrirait car elle possède une base de données de toutes les signatures spectrales des objets connectés sur le marché et celle de l'objet modifié ne collerait pas avec celle de la base de données.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
&lt;br /&gt;
'''Comment étudier les signaux malgré les perturbations électromagnétiques ambiants et les faibles signaux des µC ?'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les signaux électromagnétiques des microcontrôleurs ou d'autres composants peuvent être faibles. Il y a une possibilité pour palier à ce problème, c'est de capter les signaux depuis une antenne émettrice que l'on rajoute à l'objet d'étude. &lt;br /&gt;
Nous utiliserons un SDR (Software Defined-Radio) afin de capter les ondes radio et les étudier directement sur PC. Le filtrage s'effectuera ainsi de manière numérique. Plusieurs tests seront effectués pour le même objet à étudier (quand on parle d'objet, on évoque un ensemble de plusieurs composants, comme par exemple une alimentation, un micro-contrôleur et une antenne). Ainsi, de manière statistique, nous pourrons en déduire un pattern récurrent pour chaque expérience en les effectuant dans différents environnements (pourquoi pas une chambre anachoïque). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons &lt;br /&gt;
* Capter le signal émis par un objet connecté le plus précisément possible&lt;br /&gt;
&lt;br /&gt;
* Concevoir nos propres objets connectés tous différents mais basés sur un même modèle&lt;br /&gt;
&lt;br /&gt;
* Interpréter les spectrogrammes, faire une étude statistique des signaux émis par nos différents objets et en tirer des conclusions&lt;br /&gt;
&lt;br /&gt;
* Répertorier dans une base de données les signatures de nos objets , voire de quelques objets disponibles sur le marché&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix logiciel :&lt;br /&gt;
&lt;br /&gt;
- La distribution Linux Pentoo ou Kali pour traiter les signaux avec GNU RADIO (Suite logicielle dédiée à l’implémentation de radios logicielles et de systèmes de traitement du signal).&lt;br /&gt;
&lt;br /&gt;
- FemtoOS pour l'OS des ATMEGA328P et ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix Matériel : &lt;br /&gt;
&lt;br /&gt;
- Plusieurs modules radios émetteurs &lt;br /&gt;
&lt;br /&gt;
- Plusieurs microcontrôleurs ATMEGA328P et un ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
- Des alimentations identiques pour chaque PCB&lt;br /&gt;
&lt;br /&gt;
- Un HackRF pour la réception des signaux&lt;br /&gt;
&lt;br /&gt;
- Une antenne 50 Ohm pour le HackRF [https://www.passion-radio.fr/accessoires-sdr/antenne-ant500-74.html]&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous devons préparer tout le matériel qui servira à faire nos tests. C'est à dire concevoir :&lt;br /&gt;
&lt;br /&gt;
- Un ensemble SDR/PC qui traitera le signal reçu avec GNU RADIO.&lt;br /&gt;
&lt;br /&gt;
- Une multitude de PCB qui seront utilisés comme objets connectés (Sur chacun d'entre eux on trouvera au minimum une antenne radio, un microcontrôleur et une alimentation)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de récupérer une &amp;quot;signature&amp;quot; d'un de nos objets , il faudra faire plus de 50 analyses spectrales pour conclure statistiquement sur une bonne signature qui caractérisera l'objet.&lt;br /&gt;
&lt;br /&gt;
Nous devons donc dans un second temps: &lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques mais qui ont un '''firmware''' différent.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques qui ont pour seule différence le '''microcontrôleur'''.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques dont seul le '''PCB''' diffère.&lt;br /&gt;
&lt;br /&gt;
Grâce à tous ces tests , nous pourrons conclure et voir l'impact qu'à le matériel ou le logiciel sur la signature d'un objet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enfin si les délais nous le permettent, nous pourrons réaliser un software qui cartographiera nos objets connectés dans la pièce grâce à la puissance de la signature reçue (Ce qui devrait être réalisable puisqu'à ce stade nous aurons une base de donnée des signatures).&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
|3&lt;br /&gt;
|8&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Recherches&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|6&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Prise en main de GnuRadio&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Configuration Xbee&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Expériences&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|5&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|4&lt;br /&gt;
|15&lt;br /&gt;
|9&lt;br /&gt;
|8&lt;br /&gt;
|7&lt;br /&gt;
|8&lt;br /&gt;
|8&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
[[Fichier:HackrfOne.jpeg|200px|thumb|right|Le HackRF One]]&lt;br /&gt;
Durant cette semaine, nous avons continué nos recherches notamment sur le moyen de transmission de nos objets connectés. Nous avons confirmé notre choix de notre SDR : Monsieur Boé nous a confirmé que des HackRF seraient disponibles dans les laboratoires et qu'il pourrait nous en prêter un. On disposera donc d'une antenne puissante pour traiter les signaux émis par nos objets communiquants. &lt;br /&gt;
&lt;br /&gt;
Il faudra coupler notre HackRF avec un logiciel appelé GNU RADIO qui est un logiciel très complet ( Pour information : la NASA a utilisé GNU RADIO afin de rétablir le contact avec une sonde spatiale abandonnée ). Afin de faire tourner ce logiciel libre, nous aurons besoin de la distribution Kali Linux, ex Backtrack.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Choix des émetteurs/récepteurs === &lt;br /&gt;
&lt;br /&gt;
Nous avons décidé que nos objets connectés communiqueront dans deux '''bandes de fréquences ISM''', l'une à '''900 MHz''' grâce à des modules Digi Xbee et l'autre à '''2,4 GHz''' par le moyen de modules émetteurs Bluetooth. On rappellera que les Digi Xbee et les émetteurs/récepteurs Bluetooth seront pilotés par des ATMEGA 2560.&lt;br /&gt;
&lt;br /&gt;
Les Xbee ne communiqueront pas entre eux et émettront en continu les mêmes données car ils le peuvent, alors que les émetteurs/récepteurs Bluetooth devront s'échanger des données si on veut pouvoir observer un quelconque signal autour de la fréquence de leurs porteuses. &lt;br /&gt;
&lt;br /&gt;
On voudra observer premièrement, si avec deux objets dans les '''mêmes''' conditions (donc même µc et même émetteur), on peut ou non '''distinguer une différence'''. Ceci est fondamental pour la suite des expériences, puisque si les deux émettent à la même fréquence, on pourra faire varier plusieurs paramètres afin de trouver '''des clés''' (des signes) qui pourraient aider à l'identification du matériel.&lt;br /&gt;
&lt;br /&gt;
Ces clés représentent différents facteurs potentiels d'identification du signal (le rapport signal-bruit en fonction de la distance par exemple...).&lt;br /&gt;
&lt;br /&gt;
''On planifie alors pour la semaine suivante de réussir à faire émettre, en utilisant simplement des breadboards pour commencer, nos Xbee et modules BT et observer quelque chose grâce à notre SDR.''&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration des modules XBee ===&lt;br /&gt;
&lt;br /&gt;
Nous avons configuré deux XBee afin qu'ils puissent communiquer entre eux : &lt;br /&gt;
&lt;br /&gt;
Les modules XBee ont été montés sur des platines d'interface USB/série de manière à ce qu'on puisse les paramétrer via le programme de contrôle ''minicom''. &lt;br /&gt;
&lt;br /&gt;
Dans le doute, on supposera que les XBee communiquent à 9600 Baud. On exécute la commande suivante : &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;minicom -b 9600 -D /dev/ttyUSB0&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
On active l'echo local dans minicom, afin de pouvoir observer ce qui a été envoyé par liaison série au XBee ('''CTRL+A''' puis '''E''').&lt;br /&gt;
&lt;br /&gt;
Pour commencer le paramètrage il faut taper ''' +++ ''' rapidement. Le XBee nous répond OK, cela veut dire que nous sommes dans le mode configuration et que nous pouvons utiliser les commandes '''AT'''. (Redirection vers la liste des commandes AT XBee [https://cdn.sparkfun.com/assets/resources/2/9/22AT_Commands.pdf]).&lt;br /&gt;
&lt;br /&gt;
Comme nos XBee ont été utilisés auparavant, il a fallu les restaurer à l'état usine avec la commande '''ATRE'''.&lt;br /&gt;
&lt;br /&gt;
Si on souhaite que des XBee puissent s'envoyer des données il faut qu'ils soient sur le même canal (commande '''ATCH''') et aient le même PAN ID (commande '''ATID'''). Notre PAN ID sera '''BEE6''' et le canal sera celui par défaut '''C'''.&lt;br /&gt;
&lt;br /&gt;
Ensuite il faut leur donner une adresse de destination ('''ATDH''' &amp;amp; '''ATDL''') qui sera l'adresse broadcast, pour ce faire on entre &lt;br /&gt;
 ATDH=0000&lt;br /&gt;
 ATDL=FFFF&lt;br /&gt;
&lt;br /&gt;
Enfin '''ATMY''' représente l'ID du XBee, notre premier XBee aura comme ID 5000 et le second 5001.&lt;br /&gt;
&lt;br /&gt;
N'oublions pas de sauvegarder les paramètres avec '''ATWR'''.&lt;br /&gt;
&lt;br /&gt;
On vérifie que tout a bien été pris en compte :&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;&lt;br /&gt;
+++OK&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATID&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
BEE6&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
C&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
0&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDL&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
FFFF&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATMY&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
5000&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCN&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Puis on fait de même avec le deuxième XBee (ID 5001).&lt;br /&gt;
&lt;br /&gt;
Voilà, lorsque on envoie des caractères par liaison série sur 5000, la LED '''Tx''' de 5000 s'allume et la Led '''Rx''' de 5001 s'allume elle aussi. Cela signifie que l'envoi de donnée par onde radio s'effectue correctement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que les XBee émettent et reçoivent, on peut commencer les mesures avec notre SDR. Mais avant cela il va falloir bien se familiariser avec le logiciel GNU RADIO qui est assez difficile à prendre en main.&lt;br /&gt;
&lt;br /&gt;
=== Première prise en main du logiciel GNURADIO ===&lt;br /&gt;
&lt;br /&gt;
Installation de GNU radio avec les fonctions + drivers pour HackRF : &lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install gqrx-sdr gnuradio gr-osmosdr hackrf &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le bloc Osmocom Source sert de &amp;quot;passerelle&amp;quot; entre le logiciel et la SDR, il permet de transmettre les informations récupérées par le HackRF afin qu'on puisse les traiter avec d'autres bloc de fonctions.&lt;br /&gt;
&lt;br /&gt;
Si on veut pouvoir récuperer les données il faut passer l'argument ''hackrf=0'' dans la box périphérique du bloc Osmocom.&lt;br /&gt;
&lt;br /&gt;
Ci-dessous on peut voir le spectre environnant entre 2.44GHz et 2.460GHz grâce au bloc WX GUI FFT Sink.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ScreenGnuRadio.png|Interface de GNURadio]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous a permis d'effectuer notre première expérience. L'utilisation des deux Xbees nous a permis d'observer l'impact des Xbee sur le champ électromagéntique environnant.&lt;br /&gt;
&lt;br /&gt;
Si on analyse le spectre environnant grâce au module FFT de GNU Radio, lorsque les Xbee communiquent entre eux, on peut apercevoir un pic caractéristique propre.&lt;br /&gt;
En effet, lors de l'emission d'un message sur le port série, on a un pic qui se dégage du spectre d'amplitude -20dBm. Ce pic est caractéristique au canal de communication choisi et configuré sur le Xbee.&lt;br /&gt;
Néanmoins, le signal est perturbé par le bruit environnant. &lt;br /&gt;
L'expérience étant effectuée au sein de l'école, les signaux Wi-Fi perturberont l'étude.&lt;br /&gt;
Il faut noter que la norme IEEE 802.11 impose au Wi-Fi l'utilisation d'une bande passante s'étalant de 2.4 GHz à 2.5 GHz.&lt;br /&gt;
&lt;br /&gt;
La bande passante des modules Zigbee se décomposent en 16 canaux, allant de 2400 MHz à 2480 MHz par pas de 5 MHz.&lt;br /&gt;
&lt;br /&gt;
Le canal ici utilisé est le canal 13 (3ème canal) de fréquence 2415 MHz.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[Fichier:Channel135001.png|thumb|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Fichier:channel135000.png|thumb|none|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBeeCh13.png|Spectre de l'environnement autour du XBee|thumb|none|400 px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBeeCh13SND.png|Lors de l'envoi de données au XBee voisin|thumb|none|400 px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut observer un pic de puissance lors de l'envoi d'une donnée en série à la fréquence 2.415 GHz.&lt;br /&gt;
Il nous est maintenant nécessaire d'analyser de plus près les signaux et leurs fréquence centrale dans la bande perçue au dessus de -20dB.&lt;br /&gt;
&lt;br /&gt;
On réeffectuera une expérience en zone isolée des signaux parasites.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous avons principalement fait des recherches dans le but de mieux comprendre les signaux émis par le Xbee.&lt;br /&gt;
&lt;br /&gt;
En somme, nous étions confrontés à de nombreuses interrogations. Le fonctionnement du Xbee étant assez simple et la sécurité du protocole Zigbee étant moindre, y a t-il possibilité de démoduler le signal émis afin de développer nos études ?&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
[[Fichier:Switchchannel pyscript.PNG|upright=0.8|thumb|right|Script Python]]&lt;br /&gt;
&lt;br /&gt;
Après réflexion et consultation de nos encadrants, nous nous sommes rendu compte que la démodulation prévue lors de la semaine 4 n'aiderait pas à répondre à la problématique de notre sujet !  &lt;br /&gt;
&lt;br /&gt;
Afin de mieux visualiser les signaux des Xbee , on décide d'automatiser le processus d'envoi sur le port série des données vers le Xbee. C'est à dire concevoir un programme Python qui automatisera l'envoi de données et le changement de channel à intervalle de temps régulier (Changement toutes les 10 secondes). &lt;br /&gt;
&lt;br /&gt;
L'utilisation de Minicom '''n'était pas du tout la meilleure solution''' pour faire émettre les Xbee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Après quelques essais, on remarque que lorsque le Xbee émet sur le channel 13, il émet à environ 2,445GHz au lieu d'émettre à 2,415GHz soit une différence de 30MHz : Ceci n'est pas important, car ce que l'on souhaite remarquer c'est un éventuel décalage de la fréquence centrale entre deux Xbee différents. Si les deux Xbee n'ont pas la même frequence centrale on pourra conclure que la '''fréquence centrale''' de la porteuse du Xbee n'est pas '''une des clés''' permettant d''''identifier''' cet émetteur/récepteur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaines 6 et 7==&lt;br /&gt;
&lt;br /&gt;
Afin de mieux cerner le comportement électromagnétique des modules XBee, il nous est nécessaire de comprendre leur fonctionnement et le protocole Zigbee.&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous avons cherché à souligner le parallélisme entre étude fréquentielle par le spectre et étude temporelle du signal.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PlancheXPtest.jpg|thumb|right|Planche prototype]]&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous avons paramétré la fréquence centrale de capture du HackRF. En effet, bien que le HackRF dispose d'une large bande passante, afin de se focaliser sur la porteuse, il est indispensable de configurer le HackRF en conséquence.&lt;br /&gt;
En second lieu, pour éviter une variation du RSSI (Received Signal Strength Indication) et de la puissance du signal, nous devions mettre en place une prototype de &amp;quot;planche expérimentale&amp;quot; sur laquelle devaient être fixés nos différents modules (l'antenne de reception et les Xbees).&lt;br /&gt;
&lt;br /&gt;
La position des antennes les unes par rapport aux autres est fondamentale. Afin d'optimiser la reception, les antennes doivent être parallèles.&lt;br /&gt;
&lt;br /&gt;
Chaque Xbee est identifié par un chiffre (1 ou 2). En effet, l'attribution de ces chiffres sera définitive pour ne pas perturber la cohérence des expériences. &lt;br /&gt;
Leur position est aussi fondamentale. Ainsi, en fonction que le Xbee soit emetteur ou récepteur, il sera disposé différement sur la planche.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Expérience : Le XBee 1 émetteur directement connecté en série au PC===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:GrapheGNURadio01.png|thumb|left|150px|Schéma simple d'étude fréquentielle et temporelle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette expérience est la première mettant en place un contexte (un seul Xbee émetteur connecté en série au PC, le deuxième Xbee étant inactif) et nous permettra d'étudier le plus de cas possibles.&lt;br /&gt;
&lt;br /&gt;
Nous avons tout d'abord commencé par un graphe GNURadio simple permettant l'observation du spectre et du signal et la variation de la fréquence d'étude.&lt;br /&gt;
&lt;br /&gt;
Le script python a été réécrit afin que le XBee puisse émettre une chaîne de caractère &amp;quot;HELLO&amp;quot; * 1024. En effet, même si la fréquence de balayage du module HackRF peut être grandement augmentée, il faut éviter d'aller au dessous de 0.01s, finissant par consommer de manière considérable les ressources octroyées par le CPU le cas échéant.&lt;br /&gt;
Le fait d'augmenter la taille de la chaine de caractère permet de mieux synchroniser l'étude en temps réel avec la capture des données.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc émis les données sur le canal 14, soit la fréquence centrale est à 2.420GHz selon la norme Zigbee. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Etude fréquentielle&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L'étude fréquentielle est similaire à celle réalisée auparavant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div center&amp;gt;&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[Fichier:Spectrefreq2.png|thumb|center|750px|Spectre fréquentiel au canal 14]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[Fichier:Spectrogram.png|thumb|center|250px|Spectrogramme]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on peut observer sur l'analyseur de spectre GNURadio que la fréquence centrale est située 2.450GHz. Nous n'avons pas trouvé la raison mais il s'agit sûrement d'un décalage au niveau applicatif.&lt;br /&gt;
&lt;br /&gt;
D'autre part, l'ensemble des fréquences qui dessinent le spectre s'étalent sur une large bande de fréquence. En effet, cette technique d'étalement appelée DSSS (Direct-Sequence Spread Spectrum) utilisé par les modules XBee permet au signal d'être moins sensible aux interférences et aux brouillages. En outre, même si la puissance du spectre dans sa globalité reste la même, la densité spectrale elle diminue considérablement, rendant le signal plus &amp;quot;discret&amp;quot;.&lt;br /&gt;
La différence de puissance entre le lobe principal et les premiers lobes secondaires sont de 30 dB, ce qui est aussi commun au DSSS.&lt;br /&gt;
&lt;br /&gt;
Le spectrogramme témoigne aussi de l'étalement du signal sur un peu plus de 6 MHz (3MHz de par et d'autre de la fréquence centrale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt; Etude temporelle &amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Signal temporel.png|thumb|left|500px|Signal observable centré à 2.450GHz lors de l'émission]]&lt;br /&gt;
&lt;br /&gt;
Le signal ici est séparé en deux composantes car il s'agit d'un signal complexe. Nous avons supposé en premier temps qu'il s'agissait du signal principal décalé de 180°, ce qui n'était pas le cas.&lt;br /&gt;
Après quelques recherches, cette séparation des composantes permet de transmettre deux fois plus de données sur la même bande passante.&lt;br /&gt;
Le signal observable témoigne d'une modulation bien spécifique au XBee. En effet, on peut observer des sauts de phase à différents points, qui correspondent à une modulation par changement de phase (modulation QPSK ou Quadratic Phase-Shift Keying). Ce sont ces sauts de phases qui permettent la transmission des bits.&lt;br /&gt;
Les changements de phase s'il y a se font toutes les µs. En outre, on peut observer un décalage (offset) entre la composante Q et la composante I de µs/2 (propre à la modulation OQPSK).&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé d'enregistrer ces données brutes dans un fichier et nous l'avons étudié avec Audacity, logiciel open-source de son, et donc de signaux ! L'inconvénient avec l'interface graphique QT de GNURadio est son manque de précision lors d'un dézoom sur le signal en temps réel. Audacity permet de palier à celà !&lt;br /&gt;
En outre, on peut voir que les paquets Xbee sont reconnaissables. En effet, le signal témoigne de la taille du paquet XBee.&lt;br /&gt;
&lt;br /&gt;
Le paquet XBee est constitué d'un premier header (header physique) de 6 octets :&lt;br /&gt;
- la séquence de préambule (4 octets) constitué de 32 bits à 0&lt;br /&gt;
&lt;br /&gt;
- l'indice de début du paquet fixé à 0x7A (1 octet)&lt;br /&gt;
&lt;br /&gt;
- la longueur du paquet (1 octet);&lt;br /&gt;
&lt;br /&gt;
d'un header MAC (7 à 27 octets en fonction des informations de l'adresse), d'un bloc FCS de fin de paquet (2 octets) et l'ensemble des données (de 1 à 104 octets).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Signal2.png|thumb|right|400px|On observe graphiquement qu'un paquet est transmis en 3846µs]]&lt;br /&gt;
[[Fichier:PacketXBee.png|400px|thumb|right|Paquet XBee]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Comme dit plus haut, les signaux émis par le XBee connaissent un étalement sur le spectre par DSSS.&lt;br /&gt;
Cet étalement s'effectue en divisant chaque symbole (correspondant à une série de 4 bits) transmis en &amp;lt;B&amp;gt;&amp;lt;I&amp;gt;chips&amp;lt;/I&amp;gt;&amp;lt;/B&amp;gt;.&lt;br /&gt;
Chaque symbole, soit 4 bits, correspond à 32 chips, et donc 32 états binaires (1 octet correspond à 64 chips).&lt;br /&gt;
Dans le cas de la norme ZigBee, la transmission de chacun des chips est synchronisé sur chaque µs (1 chip toutes les µs).&lt;br /&gt;
&lt;br /&gt;
Les signaux reçus par l'antenne HackRF étaient deux sinusoïdes modulées en phase et qui s'étalaient sur une période d'environ 3840µs (3846µs graphiquement mais il y a possibilité d'erreur à l'echelle du µs).&lt;br /&gt;
Sachant qu'un octet correspond à 64µs, on a :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;N_{octets} =\frac{2*T_{signal}}{64*T_{chip}}=\frac{2*3.840*10^{-6}}{64*10^{-6}}=120 octets&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'analogie peut être effectuée entre paquet Ethernet et paquet ZigBee. En effet, la taille limite des données d'un paquet est de 104 octets. La chaîne de caractère n'étant qu'envoyée par paquet, le paquet observé n'est que de 120 octets, ce qui est cohérent avec les caractéristiques du XBee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Hello1024secs.png|thumb|none|Temps de transmission de la chaîne de caractères &amp;quot;HELLO&amp;quot; 1024 fois]] &amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:AudacitySignal2.png|thumb|none|51 Paquets XBee portent la chaîne de caractère &amp;quot;HELLO&amp;quot; 1024 fois]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 8==&lt;br /&gt;
&lt;br /&gt;
L'étude des signaux posait réellement problème de par le fait qu'une grande partie de la capture faite n'était que purement le bruit sans signal (utile plus tard pour l'étude du SNR).&lt;br /&gt;
Prenons l'exemple d'un paquet de 21 octets (un paquet contenant une seule chaîne de caractères HELLO). Le signal s'étalerait en théorie sur 21*64 chips soit 672 chips. Sachant que la modulation est une modulation QPSK, on s'étale sur un temps de 672µs.&lt;br /&gt;
En effet, le Xbee transmet toutes les 100ms.&lt;br /&gt;
Donc qu'une partie du signal nous est utile.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décider d'écrire un script qui nous permettrait d'étudier le signal dans de meilleures conditions, et donc de le filtrer.&lt;br /&gt;
&lt;br /&gt;
Chaque capture de signal effectuée est enregistrée dans un fichier par le biais du bloc fonction &amp;lt;B&amp;gt;&amp;lt;I&amp;gt;File Sink&amp;lt;/I&amp;gt;&amp;lt;/B&amp;gt; du compagnon GNURadio. Néanmoins, les fichiers obtenus sont des fichiers binaires assez lourds (environ 500Mo pour une capture de 3s), ce qui est un réel problème et qui implique le filtrage du signal.&lt;br /&gt;
&lt;br /&gt;
La bibliothèque numpy pour python nous permet en outre directement d'importer les échantillons des signaux, les traduisant du binaire à un format cible (complexe flottant 64 bits) dans un Array par le biais de la fonction:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; f = scipy.fromfile(open(&amp;quot;Nom du fichier&amp;quot;), dtype=scipy.complex64) &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La première solution pour réduire ce signal était d'imposer un threshold directement sur le signal, supérieur au bruit, mais qui conduirait à une perte d'une partie du signal à étudier.&lt;br /&gt;
La deuxième solution qui a été retenue était tout simplement de calculer l'amplitude et la phase du signal et appliquer ce même threshold à l'amplitude.&lt;br /&gt;
&lt;br /&gt;
== Semaine 9 et 10==&lt;br /&gt;
&lt;br /&gt;
A partir de la semaine 10 nous avons procéder aux expériences pour avoir suffisamment de données et en tirer des conclusions.&lt;br /&gt;
&lt;br /&gt;
Lorsqu'on fait une acquisition d'un signal xbee , on peut maintenant via un script traiter cette acquisition et récupérer seulement les parties qui nous intéressent : A savoir la partie réelle et la partie imaginaire, l'amplitude du signal et enfin la phase du signal.&lt;br /&gt;
&lt;br /&gt;
Exemple ci dessous après acquisition + traitement de notre xbee n°2 :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Traitement xbee2.png|thumb|right|redresse=2|Signal Xbee2 post-traitement ]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Constellation xbee2.png|thumb|right|redresse=2|Diagramme de constellation xbee2 après utilisation de LightSignal]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'utilisation du script LightSignal permet de retirer toutes les phases en dehors du signal. Ainsi, on peut caractériser le diagramme de constellation comme un diagramme propre à la modulation QPSK. &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
import scipy&lt;br /&gt;
import numpy&lt;br /&gt;
import sys&lt;br /&gt;
&lt;br /&gt;
def binToComplex64(name):&lt;br /&gt;
    threshold=0.10&lt;br /&gt;
    tmp=scipy.fromfile(open(name+&amp;quot;_PhaseMeg&amp;quot;), dtype=scipy.complex64)&lt;br /&gt;
    tmp2=scipy.fromfile(open(name), dtype=scipy.complex64)&lt;br /&gt;
    &lt;br /&gt;
    f2 = open(name+&amp;quot;_filtre&amp;quot;, &amp;quot;w+&amp;quot;) &lt;br /&gt;
    f = open(name+&amp;quot;_PhaseMeg_filtre&amp;quot;,&amp;quot;w+&amp;quot;)&lt;br /&gt;
    &lt;br /&gt;
    p=1&lt;br /&gt;
    size=tmp.__len__()&lt;br /&gt;
    size2=tmp2.__len__()&lt;br /&gt;
    &lt;br /&gt;
    if size &amp;gt; size2:&lt;br /&gt;
        size=size2&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    ground=False&lt;br /&gt;
    newListSignal=[]&lt;br /&gt;
    newListMagnPh=[]&lt;br /&gt;
    for val in range(0,size): &lt;br /&gt;
        if(val&amp;gt;=(size/100)*p):&lt;br /&gt;
            print(str(p)+&amp;quot; %&amp;quot;)&lt;br /&gt;
            p=p+1&lt;br /&gt;
        if(tmp[val].real&amp;gt;threshold):&lt;br /&gt;
            if(ground==True):&lt;br /&gt;
                for i in range(0,1000):&lt;br /&gt;
                    newListSignal.append(numpy.complex64(0))&lt;br /&gt;
                    newListMagnPh.append(numpy.complex64(0))&lt;br /&gt;
                ground=False&lt;br /&gt;
            newListSignal.append(tmp2[val])&lt;br /&gt;
            newListMagnPh.append(numpy.complex64(tmp[val].real+tmp[val].imag*0.3j))&lt;br /&gt;
        else:&lt;br /&gt;
            ground=True&lt;br /&gt;
    &lt;br /&gt;
    tmp=numpy.asarray(newListMagnPh)&lt;br /&gt;
    tmp.tofile(f)&lt;br /&gt;
    tmp2=numpy.asarray(newListSignal) &lt;br /&gt;
    tmp2.tofile(f2)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    try:&lt;br /&gt;
        binToComplex64(sys.argv[1])&lt;br /&gt;
    except IndexError:&lt;br /&gt;
        print(&amp;quot;Donnez le nom du fichier\n&amp;quot;)&lt;br /&gt;
    except IOError:&lt;br /&gt;
        print(&amp;quot;Le fichier n'existe pas\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__=='__main__':&lt;br /&gt;
    main()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le diagramme de constellation témoigne de nouveau du type de modulation utilisé par le module XBee.&lt;br /&gt;
En effet, on observe quatre points de part et d'autre des axes de quadrature et d'inphase.&lt;br /&gt;
&lt;br /&gt;
==Semaine 11==&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé cette semaine d'étudier, ce qui est selon pour nous, l'une des pistes fondamentales de notre projet, et plus particulièrement de l'étude de nos signaux : le rapport signal bruit.&lt;br /&gt;
&lt;br /&gt;
L'objectif de cette semaine et de celle à venir était, à partir du signal acquis par le hackrf, d'effectuer le calcul du SNR (signal-to-noise ratio) tel que :&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;SNR =\frac{P_{signal}}{P_{bruit}}&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le script python qui nous a permis de communiquer entre les deux shields Xbee se verra amélioré afin de faire plusieurs acquisition des signaux lors de la communication entre les Xbee, effectuer une moyenne statistique, et de même lorsqu'il n'y a pas de communication.&lt;br /&gt;
&lt;br /&gt;
Nous avons essayé d'approcher le SNR directement depuis l'interface de GnuRadio par le biais de l'utilitaire graphique et le langage en bloc, néanmoins nous procéderons à l'étude de ce rapport avec Scilab ou Matlab.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaines supplémentaires==&lt;br /&gt;
&lt;br /&gt;
===Expérience : Temps de calcul du FCS entre le XBee1 et et le XBee2===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 et XBee2 sont alimentés sur 5V VCC par USB (connecté à l'ordinateur)&amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 et XBee2 disposent du firmware : 10EF &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 est d'abord emetteur et le XBee2 est recepteur puis inversement. Aucun paquet ACK n'est renvoyé de la part du recepteur &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On transmet la chaine de caractère HELLO 256 fois toutes les 1 secs&lt;br /&gt;
Les données étant assez conséquentes, le Xbee transmet plusieurs fragments du paquet.&lt;br /&gt;
L'objectif de cette expérience est d'étudier le temps entre chaque fragment d'un paquet.&lt;br /&gt;
L’espace de temps entre chacun des paquets permet de calculer le FCS (frame check sequence) afin de minimiser les erreurs de transmission.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:ChecksumGraphe.png|thumb|left|redresse=2|Les différents temps à mesurer]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Néanmoins, l’étude de ces “temps morts” se voit entravé par le fait que le module HackRF ne permette pas d’obtenir un signal clair sur plus de 5 secondes.&lt;br /&gt;
En outre, pour 5 secondes d’étude et pour une fréquence d’échantillonage de 20MHz (soit un temps Te=5.10e8), on compte 100.000.000 d’échantillons.&lt;br /&gt;
Le CPU lors de la capture était grandement sollicité, ce qui explique le fait que la capture soit compromise.&lt;br /&gt;
Pour régler ce problème, on a écrit un script shell de capture.&lt;br /&gt;
Ce script consiste à:&lt;br /&gt;
&amp;lt;br&amp;gt;- effectuer une capture d’une durée de 1 sec&lt;br /&gt;
&amp;lt;br&amp;gt;- d’enregistrer la capture&lt;br /&gt;
&amp;lt;br&amp;gt;- d’effectuer un traitement de ces paquets par un algorithme python en étudiant le temps entre chacun des fragments. Ce temps sera obtenu en nombre d’échantillons, défini avec un seuil d’acceptation absolu entre 150.000 et 300.000 échantillons (pour bien capturer ces temps intermédiaires et pas les temps provoqués par des signaux parasites ou du bruit), et pour affiner l’étude, on impose un seuil d’erreur de +-10% autour de la moyenne. La moyenne est calculée en continue&lt;br /&gt;
&amp;lt;br&amp;gt;- l’ensemble des valeurs obtenues sont enregistrées dans un fichier&lt;br /&gt;
&amp;lt;br&amp;gt;- on réeffectue la capture …&lt;br /&gt;
&lt;br /&gt;
On répète le processus un certains nombre de fois afin d’obtenir un nombre de valeurs nous permettant de nous conforter sur l'issue de l'expérience (environ 1000 valeurs)&lt;br /&gt;
&lt;br /&gt;
La capture et l'étude de chacun des modules dure une à deux heures.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats :&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans le cas du XBee1 (à gauche) et du XBee2 (à droite), voici les résultats obtenus :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Xbee1Graphe256.png|thumb|left|redresse=2|On peut observer des pics caractéristiques à l'envoi]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBee2Graphe256.png|thumb|left|redresse=2|Les mêmes pics caractéristiques confirment un comportement non-aléatoires du module]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
XBee1 : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 259675,81&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 8369.7417&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 70052576.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
XBee2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 258762.58&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 9165.4097&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 84004736.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les graphes présentent le nombre de répétitions des temps de calcul de fragements.&lt;br /&gt;
&lt;br /&gt;
On peut voir des pics spécifiques à certains points dans les deux expériences. Ces pics sont caractéristiques et au module XBee, et à la chaîne de caractère HELLO. Les deux expériences étant effectuées dans le même contexte, &lt;br /&gt;
&lt;br /&gt;
De même que pour le second Xbee, on retrouve des pics bien distincts à certains points.&lt;br /&gt;
&lt;br /&gt;
En outre, on peut voir que ces pics bien distincts se rapprochent de ceux du premier Xbee.&lt;br /&gt;
Néanmoins, même si la moyenne varie que très peu par rapport aux deux Xbee, la variance est assez différente.&lt;br /&gt;
&lt;br /&gt;
Pour confirmer ces observations, il est peut être nécessaire de répéter la même expérimentation sur un nombre d'échantillons plus grand.&lt;br /&gt;
&lt;br /&gt;
Ainsi, afin de confirmer la conjecture, on décide de faire d’autres captures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En superposant les deux graphes (Xbee1 en rouge et Xbee2 en bleu), on peut voir qu'il y a moins de dispersion dans le cas du XBee1, plus centré sur des valeurs précises, contrairement au Xbee2.&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBee1Xbee2Graphe.png|thumb|left|redresse=2]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour les deux nouveaux échantillons, on a les caractéristiques suivantes :&lt;br /&gt;
&amp;lt;U&amp;gt;Xbee1 sur 1688 échantillons&amp;lt;/U&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 260230.3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 8427.3923&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 71020941&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Xbee2 sur 1722 échantillons&amp;lt;/U&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 259899.41&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 9831.5106&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 96658601&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Conclusion de l'expérience&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
L’hypothèse qui est que la variance des temps &amp;quot;morts&amp;quot; entre chaque fragments de paquet, soit le temps de calcul du FCS pour le signal émis peut être considéré comme “clé” de distinction d’un module Xbee n'est donc pas à négliger. &lt;br /&gt;
&lt;br /&gt;
On peut même considérer que cette étude peut distinguer un module Xbee d'un autre électromagnétiquement parlant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Algorithme python utilisé pour l'étude du signal&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
[Pseudo code ici]&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Expérience : SNR ===&lt;br /&gt;
&lt;br /&gt;
Maintenant nous voulons vérifier si la mesure du SNR est une expérience pertinente pour l'identification des xbee. Nous allons prendre plusieurs xbee , et nous les déplacerons dans la salle à des endroits précis. A chaque déplacement nous mesurerons le SNR grâce à notre algorithme. &lt;br /&gt;
&lt;br /&gt;
Ce script écrit en python permet de :&lt;br /&gt;
&lt;br /&gt;
=== Rencontre avec un doctorant ===&lt;br /&gt;
&lt;br /&gt;
Bien que plusieurs pistes ont pu être explorées, notre manque d'expertise dans le domaine de la radio logicielle nous a fait défaut sur nos recherches. En effet, après avoir calculé la SDR d'un de nos signaux, nous nous sommes confrontés à des résultats assez incohérents. De nombreuses erreurs peuvent se glisser&lt;br /&gt;
Ces semaines&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'archive des scripts python : &lt;br /&gt;
&lt;br /&gt;
[archive.zip]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le rapport&lt;br /&gt;
&lt;br /&gt;
[Rapport.pdf]&lt;/div&gt;</summary>
		<author><name>Amoreau</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=74256</id>
		<title>IMA4 2018/2019 P70</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=74256"/>
				<updated>2019-05-04T09:12:18Z</updated>
		
		<summary type="html">&lt;p&gt;Amoreau : /* Semaines supplémentaires */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;font-size: 30px; width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;Impact du matériel et du logiciel sur le champ électromagnétique&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Projet'''&amp;lt;/ins&amp;gt; : Impact du matériel et du logiciel sur le rayonnement électromagnétique&lt;br /&gt;
&lt;br /&gt;
''Nous proposons d'évaluer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et la consommation électrique.''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Etudiants'''&amp;lt;/ins&amp;gt; : Souheib KHINACHE et Antoine MOREAU&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Encadrants'''&amp;lt;/ins&amp;gt; : Alexandre BOE, Xavier REDON et Thomas VANTROYS&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'internet des objets est un marché en plein essor. La communication entre les différents objets connectés crée un nuage de signaux autour d'eux. Ces derniers sont vus par les utilisateurs comme des boîtes noires : le fonctionnement se fait sans en connaître les composants matériels et logiciels. &lt;br /&gt;
Néanmoins, ces objets, de par leurs propriétés électroniques, créent des fuites électromagnétiques impactant le champ environnant. &lt;br /&gt;
&lt;br /&gt;
Bien qu'ils peuvent porter à débat sur l'impact sur la santé, ces signaux peuvent représenter de réelles sources d'informations sur l'aspect matériel et applicatif de l'objet.&lt;br /&gt;
&lt;br /&gt;
Il serait donc intéressant d'avoir idée générale sur le fonctionnement du système en interprétant les ondes électromagnétiques émises par ce système.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Les principaux objectifs de ce projet seront donc de mesurer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et sur la consommation électrique.&lt;br /&gt;
Pour cela, l'outil potentiel avec lequel nous pourrions travailler serait une sonde de champ électromagnétique afin d'établir des mesures. &lt;br /&gt;
Cependant, nous pourrions concevoir notre propre système de capture et d'interprétation à partir d'une antenne, de filtres de fréquences et d'un microcontrôleur (on commencera par un ATMega328P). Il sera nécessaire de prendre en compte les perturbations issues de notre appareil de mesure et d'en tenir compte.&lt;br /&gt;
&lt;br /&gt;
On effectuera ainsi plusieurs expérimentations sur différents supports d'étude :&lt;br /&gt;
*l'aspect &amp;quot;Hardware&amp;quot; en étudiant différents modèles pour un même type de shield  &lt;br /&gt;
*l'aspect calculatoire du matériel en se basant sur l'impact des microcontrôleurs en fonction du modèle (ATMega328P et ATMega2560)&lt;br /&gt;
*l'aspect &amp;quot;Software&amp;quot;, en étudiant l'impact du logiciel et du firmware d'un même composant (différents firmwares pour un même shield Wi-Fi)&lt;br /&gt;
*l'aspect puissance des composants électroniques de gestion de puissance (ponts, hacheurs, onduleurs...).&lt;br /&gt;
&lt;br /&gt;
L'étude des différentes informations se fera par traitement des signaux électromagnétiques et des spectres. &lt;br /&gt;
Afin de mieux appréhender le problème, il nous est nécessaire de comprendre les phénomènes physiques issus de la notion d'électromagnétisme.&lt;br /&gt;
&lt;br /&gt;
Ces études mèneront à une étape plus complexe : l'interprétation des signaux. En effet, l'un des objectifs de ce projet est de comprendre du mieux possible le fonctionnement d'un système sans y avoir accès directement, et donc dans ce contexte &amp;quot;traduire&amp;quot; un ensemble de signaux électromagnétiques.&lt;br /&gt;
&lt;br /&gt;
On pourra en outre apporter un aspect visuel à l'étude en rajoutant une interface informatique.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
Bien qu'aux yeux de nombreuses personnes le bruit électromagnétique créé par les équipements électroniques du quotidien peut porter à controverse (débats concernant l'impact sur la santé par exemple), il peut être une source d'informations. &lt;br /&gt;
De nos jours, les ondes électromagnétiques restent un vaste champ d'étude, sujettes à de nombreuses thèses et recherches au sein des laboratoires.&lt;br /&gt;
&lt;br /&gt;
On peut prendre l'exemple de [https://www.eurekalert.org/pub_releases/2015-01/giot-rwt010715.php Milos Prvulovic], professeur à l'Institut Technologique de Géorgie, ayant simulé un contexte de cybercafé, dans lequel il place une antenne magnétique, un ordinateur portable cible et un ordinateur &amp;quot;espion&amp;quot;. Il réussit, grâce aux signaux EM émis par l'impulsion de l'appui des touches clavier à capter un message écrit par un ordinateur cible. &lt;br /&gt;
&lt;br /&gt;
Néanmoins, dans le quotidien, l'utilisation des sondes électromagnétiques se fait pour l'étude énergétique d'un système électronique (fuites électromagnétiques anormales, preuves d'une anomalie...) afin de respecter certaines normes législatives. Le code du travail par exemple réglemente et définit des valeurs seuils par le biais des articles R. 4453-3 et R. 4453-4.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
'''NBM-520 de NARDA STS'''&lt;br /&gt;
[[Fichier: NBM_TS.png|thumb|300px|NBM-TS, application des appareils NBM]]&lt;br /&gt;
NARDA STS est une entreprise qui fournit des outils de mesure. Elle met à disposition aux professionnels des sondes électromagnétiques.&lt;br /&gt;
La NBM-520 est un appareil de la franchise, mesurant le champ électrique et magnétique. Elle donne des valeurs précises du champ électromagnétique ambiant sur une large bande. Elle propose différentes sondes modulables permettant une souplesse au niveau de l'étude en fonction des besoins, avec des sondes pouvant étudier des signaux de fréquence de 100kHz à 6GHz ou même de 300kHz à 50GHz (en fonction de la sonde choisie).&lt;br /&gt;
&lt;br /&gt;
En outre, le dispositif peut se connecter en USB sur PC afin d'envoyer les données capturées et d'en faire une étude. Le dispositif propose un logiciel d'étude, NBM-TS, permettant d'observer du champ en fonction du temps, de la fréquence, de la position...&lt;br /&gt;
&lt;br /&gt;
L'équipement est utilisé par l'ANF (l'Agence Nationale des Fréquences, agence gérant l'ensemble des normes autour des radiofréquences), et est donc un gage de qualité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Avantages :''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Large bande de fréquence&lt;br /&gt;
* Matériel solide&lt;br /&gt;
* Application fonctionnelle permettant l'étude et gestion des données&lt;br /&gt;
* Possibilité d'étudier séparément champ électrique et magnétique&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Inconvénients:''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Impossible d'étudier les basses fréquences (appareils sous tension, bobinages...)&lt;br /&gt;
* Prix élevé : à partir de 3100€&lt;br /&gt;
* La cible de ce produit est surtout les professionels&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
'''Une pita.'''&lt;br /&gt;
&lt;br /&gt;
''Comment mon pain à pita vole ta clé RSA ?''&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Pita.jpg|200px|thumb|left|Une pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Des chercheurs israéliens ont découvert un moyen de capturer des clés de cryptage RSA, réputées comme inviolables, par le biais d'une pita... du moins avec un dispositif suffisamment petit pour être caché dans un pain à pita. &lt;br /&gt;
Le dispositif, renommé PITA pour Portable Instrument for Trace Acquisition a la particularité de capturer les ondes radio électromagnétiques émanantes d'un PC, qu'il soit connecté à un réseau ou pas.&lt;br /&gt;
Les différentes opérations du processeur sont identifiées en distinguant les différents modèles de l'activité radio sur le spectre EM.&lt;br /&gt;
&lt;br /&gt;
Bien que la capture des clés RSA a été faite dans des conditions particulières (modification du processeur de l'ordinateur cible), il est néanmoins possible, selon les chercheurs, d'identifier quelle type d'activité est exercée par l'ordinateur ainsi que son état.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PITA.jpg|300px|thumb|right|Un dessous de pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'un des points importants concernant le dispositif est son coût : moins de 300 euros.&lt;br /&gt;
L'appareil dispose :&lt;br /&gt;
* d'un PC portatif (PC-on-a-stick) ''Rikomagic MK802 IV'',&lt;br /&gt;
* d'un recepteur radio SDR ''FUNcube Dongle Pro+''&lt;br /&gt;
* d'une antenne radio&lt;br /&gt;
* d'une batterie&lt;br /&gt;
* d'une antenne WiFi&lt;br /&gt;
* d'une carte MicroSD&lt;br /&gt;
* d'un adapteur d'antenne&lt;br /&gt;
* et d'une '''pita'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le dispositif aurait une portée de 50cm. &lt;br /&gt;
Les chercheurs israéliens ont collaboré avec GNU Private Guard (logiciel de cryptage asymétrique) afin de protéger contre ces attaques les clés de cryptage.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
&lt;br /&gt;
''Scénario 1''&lt;br /&gt;
&lt;br /&gt;
Gérard a toujours le flair pour les bonnes affaires. Il a acheté une centaine de clés WiFi à un prix dérisoire sur AloXpresso afin de faire du profit à la revente. Le vendeur lui garantit que toutes les clés fonctionnent correctement. Gérard veut vérifier. Après vérification, 99 des clés sur 100 fonctionnent comme prévu. Gérard aimerait être sûr du disfonctionnement, mais Gérard n'est pas une pointure en informatique. &lt;br /&gt;
&lt;br /&gt;
Coup de génie ! Il se rappelle qu'il dispose d'un dispositif qui capte les ondes EM et les interprète directement. C'est le moment de tester ça. Il remarque une anomalie sur le spectre.&lt;br /&gt;
Il décide de contacter le revendeur pour lui signaler un disfonctionnement sur l'une des clé. &lt;br /&gt;
Pas de soucis. Le vendeur, étant bon prince, lui envoie une autre clé USB et lui fait une ristourne.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Scénario 2''&lt;br /&gt;
&lt;br /&gt;
La police fait une perquisition chez un individu soupçonné de graves délits. Cela fait plusieurs mois que la brigade criminelle prépare l'intervention, et une fois sur les lieux ils arrêtent le soupçonné malfaiteur.&lt;br /&gt;
Cependant avant de repartir, elle veut faire l'acquisition d'un maximum de preuves. Elle veut alors prendre l'essentiel des objets, dont certains objets éléctroniques connectés de l'individu dont elle pourra extraire les informations qui serviront à le faire tomber.&lt;br /&gt;
&lt;br /&gt;
Par chance, elle dispose d'un petit outil qui scannera les signatures alentours des objets connectés, comme des téléphones cachés, clés USB wifi dissimulées dans le décor etc..&lt;br /&gt;
Et si le suspect avait modifié malignement un objet connecté banal pour l'utiliser autrement à ses fins, la police le découvrirait car elle possède une base de données de toutes les signatures spectrales des objets connectés sur le marché et celle de l'objet modifié ne collerait pas avec celle de la base de données.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
&lt;br /&gt;
'''Comment étudier les signaux malgré les perturbations électromagnétiques ambiants et les faibles signaux des µC ?'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les signaux électromagnétiques des microcontrôleurs ou d'autres composants peuvent être faibles. Il y a une possibilité pour palier à ce problème, c'est de capter les signaux depuis une antenne émettrice que l'on rajoute à l'objet d'étude. &lt;br /&gt;
Nous utiliserons un SDR (Software Defined-Radio) afin de capter les ondes radio et les étudier directement sur PC. Le filtrage s'effectuera ainsi de manière numérique. Plusieurs tests seront effectués pour le même objet à étudier (quand on parle d'objet, on évoque un ensemble de plusieurs composants, comme par exemple une alimentation, un micro-contrôleur et une antenne). Ainsi, de manière statistique, nous pourrons en déduire un pattern récurrent pour chaque expérience en les effectuant dans différents environnements (pourquoi pas une chambre anachoïque). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons &lt;br /&gt;
* Capter le signal émis par un objet connecté le plus précisément possible&lt;br /&gt;
&lt;br /&gt;
* Concevoir nos propres objets connectés tous différents mais basés sur un même modèle&lt;br /&gt;
&lt;br /&gt;
* Interpréter les spectrogrammes, faire une étude statistique des signaux émis par nos différents objets et en tirer des conclusions&lt;br /&gt;
&lt;br /&gt;
* Répertorier dans une base de données les signatures de nos objets , voire de quelques objets disponibles sur le marché&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix logiciel :&lt;br /&gt;
&lt;br /&gt;
- La distribution Linux Pentoo ou Kali pour traiter les signaux avec GNU RADIO (Suite logicielle dédiée à l’implémentation de radios logicielles et de systèmes de traitement du signal).&lt;br /&gt;
&lt;br /&gt;
- FemtoOS pour l'OS des ATMEGA328P et ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix Matériel : &lt;br /&gt;
&lt;br /&gt;
- Plusieurs modules radios émetteurs &lt;br /&gt;
&lt;br /&gt;
- Plusieurs microcontrôleurs ATMEGA328P et un ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
- Des alimentations identiques pour chaque PCB&lt;br /&gt;
&lt;br /&gt;
- Un HackRF pour la réception des signaux&lt;br /&gt;
&lt;br /&gt;
- Une antenne 50 Ohm pour le HackRF [https://www.passion-radio.fr/accessoires-sdr/antenne-ant500-74.html]&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous devons préparer tout le matériel qui servira à faire nos tests. C'est à dire concevoir :&lt;br /&gt;
&lt;br /&gt;
- Un ensemble SDR/PC qui traitera le signal reçu avec GNU RADIO.&lt;br /&gt;
&lt;br /&gt;
- Une multitude de PCB qui seront utilisés comme objets connectés (Sur chacun d'entre eux on trouvera au minimum une antenne radio, un microcontrôleur et une alimentation)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de récupérer une &amp;quot;signature&amp;quot; d'un de nos objets , il faudra faire plus de 50 analyses spectrales pour conclure statistiquement sur une bonne signature qui caractérisera l'objet.&lt;br /&gt;
&lt;br /&gt;
Nous devons donc dans un second temps: &lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques mais qui ont un '''firmware''' différent.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques qui ont pour seule différence le '''microcontrôleur'''.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques dont seul le '''PCB''' diffère.&lt;br /&gt;
&lt;br /&gt;
Grâce à tous ces tests , nous pourrons conclure et voir l'impact qu'à le matériel ou le logiciel sur la signature d'un objet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enfin si les délais nous le permettent, nous pourrons réaliser un software qui cartographiera nos objets connectés dans la pièce grâce à la puissance de la signature reçue (Ce qui devrait être réalisable puisqu'à ce stade nous aurons une base de donnée des signatures).&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
|3&lt;br /&gt;
|8&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Recherches&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|6&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Prise en main de GnuRadio&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Configuration Xbee&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Expériences&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|5&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|4&lt;br /&gt;
|15&lt;br /&gt;
|9&lt;br /&gt;
|8&lt;br /&gt;
|7&lt;br /&gt;
|8&lt;br /&gt;
|8&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
[[Fichier:HackrfOne.jpeg|200px|thumb|right|Le HackRF One]]&lt;br /&gt;
Durant cette semaine, nous avons continué nos recherches notamment sur le moyen de transmission de nos objets connectés. Nous avons confirmé notre choix de notre SDR : Monsieur Boé nous a confirmé que des HackRF seraient disponibles dans les laboratoires et qu'il pourrait nous en prêter un. On disposera donc d'une antenne puissante pour traiter les signaux émis par nos objets communiquants. &lt;br /&gt;
&lt;br /&gt;
Il faudra coupler notre HackRF avec un logiciel appelé GNU RADIO qui est un logiciel très complet ( Pour information : la NASA a utilisé GNU RADIO afin de rétablir le contact avec une sonde spatiale abandonnée ). Afin de faire tourner ce logiciel libre, nous aurons besoin de la distribution Kali Linux, ex Backtrack.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Choix des émetteurs/récepteurs === &lt;br /&gt;
&lt;br /&gt;
Nous avons décidé que nos objets connectés communiqueront dans deux '''bandes de fréquences ISM''', l'une à '''900 MHz''' grâce à des modules Digi Xbee et l'autre à '''2,4 GHz''' par le moyen de modules émetteurs Bluetooth. On rappellera que les Digi Xbee et les émetteurs/récepteurs Bluetooth seront pilotés par des ATMEGA 2560.&lt;br /&gt;
&lt;br /&gt;
Les Xbee ne communiqueront pas entre eux et émettront en continu les mêmes données car ils le peuvent, alors que les émetteurs/récepteurs Bluetooth devront s'échanger des données si on veut pouvoir observer un quelconque signal autour de la fréquence de leurs porteuses. &lt;br /&gt;
&lt;br /&gt;
On voudra observer premièrement, si avec deux objets dans les '''mêmes''' conditions (donc même µc et même émetteur), on peut ou non '''distinguer une différence'''. Ceci est fondamental pour la suite des expériences, puisque si les deux émettent à la même fréquence, on pourra faire varier plusieurs paramètres afin de trouver '''des clés''' (des signes) qui pourraient aider à l'identification du matériel.&lt;br /&gt;
&lt;br /&gt;
Ces clés représentent différents facteurs potentiels d'identification du signal (le rapport signal-bruit en fonction de la distance par exemple...).&lt;br /&gt;
&lt;br /&gt;
''On planifie alors pour la semaine suivante de réussir à faire émettre, en utilisant simplement des breadboards pour commencer, nos Xbee et modules BT et observer quelque chose grâce à notre SDR.''&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration des modules XBee ===&lt;br /&gt;
&lt;br /&gt;
Nous avons configuré deux XBee afin qu'ils puissent communiquer entre eux : &lt;br /&gt;
&lt;br /&gt;
Les modules XBee ont été montés sur des platines d'interface USB/série de manière à ce qu'on puisse les paramétrer via le programme de contrôle ''minicom''. &lt;br /&gt;
&lt;br /&gt;
Dans le doute, on supposera que les XBee communiquent à 9600 Baud. On exécute la commande suivante : &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;minicom -b 9600 -D /dev/ttyUSB0&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
On active l'echo local dans minicom, afin de pouvoir observer ce qui a été envoyé par liaison série au XBee ('''CTRL+A''' puis '''E''').&lt;br /&gt;
&lt;br /&gt;
Pour commencer le paramètrage il faut taper ''' +++ ''' rapidement. Le XBee nous répond OK, cela veut dire que nous sommes dans le mode configuration et que nous pouvons utiliser les commandes '''AT'''. (Redirection vers la liste des commandes AT XBee [https://cdn.sparkfun.com/assets/resources/2/9/22AT_Commands.pdf]).&lt;br /&gt;
&lt;br /&gt;
Comme nos XBee ont été utilisés auparavant, il a fallu les restaurer à l'état usine avec la commande '''ATRE'''.&lt;br /&gt;
&lt;br /&gt;
Si on souhaite que des XBee puissent s'envoyer des données il faut qu'ils soient sur le même canal (commande '''ATCH''') et aient le même PAN ID (commande '''ATID'''). Notre PAN ID sera '''BEE6''' et le canal sera celui par défaut '''C'''.&lt;br /&gt;
&lt;br /&gt;
Ensuite il faut leur donner une adresse de destination ('''ATDH''' &amp;amp; '''ATDL''') qui sera l'adresse broadcast, pour ce faire on entre &lt;br /&gt;
 ATDH=0000&lt;br /&gt;
 ATDL=FFFF&lt;br /&gt;
&lt;br /&gt;
Enfin '''ATMY''' représente l'ID du XBee, notre premier XBee aura comme ID 5000 et le second 5001.&lt;br /&gt;
&lt;br /&gt;
N'oublions pas de sauvegarder les paramètres avec '''ATWR'''.&lt;br /&gt;
&lt;br /&gt;
On vérifie que tout a bien été pris en compte :&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;&lt;br /&gt;
+++OK&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATID&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
BEE6&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
C&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
0&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDL&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
FFFF&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATMY&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
5000&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCN&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Puis on fait de même avec le deuxième XBee (ID 5001).&lt;br /&gt;
&lt;br /&gt;
Voilà, lorsque on envoie des caractères par liaison série sur 5000, la LED '''Tx''' de 5000 s'allume et la Led '''Rx''' de 5001 s'allume elle aussi. Cela signifie que l'envoi de donnée par onde radio s'effectue correctement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que les XBee émettent et reçoivent, on peut commencer les mesures avec notre SDR. Mais avant cela il va falloir bien se familiariser avec le logiciel GNU RADIO qui est assez difficile à prendre en main.&lt;br /&gt;
&lt;br /&gt;
=== Première prise en main du logiciel GNURADIO ===&lt;br /&gt;
&lt;br /&gt;
Installation de GNU radio avec les fonctions + drivers pour HackRF : &lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install gqrx-sdr gnuradio gr-osmosdr hackrf &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le bloc Osmocom Source sert de &amp;quot;passerelle&amp;quot; entre le logiciel et la SDR, il permet de transmettre les informations récupérées par le HackRF afin qu'on puisse les traiter avec d'autres bloc de fonctions.&lt;br /&gt;
&lt;br /&gt;
Si on veut pouvoir récuperer les données il faut passer l'argument ''hackrf=0'' dans la box périphérique du bloc Osmocom.&lt;br /&gt;
&lt;br /&gt;
Ci-dessous on peut voir le spectre environnant entre 2.44GHz et 2.460GHz grâce au bloc WX GUI FFT Sink.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ScreenGnuRadio.png|Interface de GNURadio]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous a permis d'effectuer notre première expérience. L'utilisation des deux Xbees nous a permis d'observer l'impact des Xbee sur le champ électromagéntique environnant.&lt;br /&gt;
&lt;br /&gt;
Si on analyse le spectre environnant grâce au module FFT de GNU Radio, lorsque les Xbee communiquent entre eux, on peut apercevoir un pic caractéristique propre.&lt;br /&gt;
En effet, lors de l'emission d'un message sur le port série, on a un pic qui se dégage du spectre d'amplitude -20dBm. Ce pic est caractéristique au canal de communication choisi et configuré sur le Xbee.&lt;br /&gt;
Néanmoins, le signal est perturbé par le bruit environnant. &lt;br /&gt;
L'expérience étant effectuée au sein de l'école, les signaux Wi-Fi perturberont l'étude.&lt;br /&gt;
Il faut noter que la norme IEEE 802.11 impose au Wi-Fi l'utilisation d'une bande passante s'étalant de 2.4 GHz à 2.5 GHz.&lt;br /&gt;
&lt;br /&gt;
La bande passante des modules Zigbee se décomposent en 16 canaux, allant de 2400 MHz à 2480 MHz par pas de 5 MHz.&lt;br /&gt;
&lt;br /&gt;
Le canal ici utilisé est le canal 13 (3ème canal) de fréquence 2415 MHz.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[Fichier:Channel135001.png|thumb|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Fichier:channel135000.png|thumb|none|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBeeCh13.png|Spectre de l'environnement autour du XBee|thumb|none|400 px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBeeCh13SND.png|Lors de l'envoi de données au XBee voisin|thumb|none|400 px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut observer un pic de puissance lors de l'envoi d'une donnée en série à la fréquence 2.415 GHz.&lt;br /&gt;
Il nous est maintenant nécessaire d'analyser de plus près les signaux et leurs fréquence centrale dans la bande perçue au dessus de -20dB.&lt;br /&gt;
&lt;br /&gt;
On réeffectuera une expérience en zone isolée des signaux parasites.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous avons principalement fait des recherches dans le but de mieux comprendre les signaux émis par le Xbee.&lt;br /&gt;
&lt;br /&gt;
En somme, nous étions confrontés à de nombreuses interrogations. Le fonctionnement du Xbee étant assez simple et la sécurité du protocole Zigbee étant moindre, y a t-il possibilité de démoduler le signal émis afin de développer nos études ?&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
[[Fichier:Switchchannel pyscript.PNG|upright=0.8|thumb|right|Script Python]]&lt;br /&gt;
&lt;br /&gt;
Après réflexion et consultation de nos encadrants, nous nous sommes rendu compte que la démodulation prévue lors de la semaine 4 n'aiderait pas à répondre à la problématique de notre sujet !  &lt;br /&gt;
&lt;br /&gt;
Afin de mieux visualiser les signaux des Xbee , on décide d'automatiser le processus d'envoi sur le port série des données vers le Xbee. C'est à dire concevoir un programme Python qui automatisera l'envoi de données et le changement de channel à intervalle de temps régulier (Changement toutes les 10 secondes). &lt;br /&gt;
&lt;br /&gt;
L'utilisation de Minicom '''n'était pas du tout la meilleure solution''' pour faire émettre les Xbee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Après quelques essais, on remarque que lorsque le Xbee émet sur le channel 13, il émet à environ 2,445GHz au lieu d'émettre à 2,415GHz soit une différence de 30MHz : Ceci n'est pas important, car ce que l'on souhaite remarquer c'est un éventuel décalage de la fréquence centrale entre deux Xbee différents. Si les deux Xbee n'ont pas la même frequence centrale on pourra conclure que la '''fréquence centrale''' de la porteuse du Xbee n'est pas '''une des clés''' permettant d''''identifier''' cet émetteur/récepteur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaines 6 et 7==&lt;br /&gt;
&lt;br /&gt;
Afin de mieux cerner le comportement électromagnétique des modules XBee, il nous est nécessaire de comprendre leur fonctionnement et le protocole Zigbee.&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous avons cherché à souligner le parallélisme entre étude fréquentielle par le spectre et étude temporelle du signal.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PlancheXPtest.jpg|thumb|right|Planche prototype]]&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous avons paramétré la fréquence centrale de capture du HackRF. En effet, bien que le HackRF dispose d'une large bande passante, afin de se focaliser sur la porteuse, il est indispensable de configurer le HackRF en conséquence.&lt;br /&gt;
En second lieu, pour éviter une variation du RSSI (Received Signal Strength Indication) et de la puissance du signal, nous devions mettre en place une prototype de &amp;quot;planche expérimentale&amp;quot; sur laquelle devaient être fixés nos différents modules (l'antenne de reception et les Xbees).&lt;br /&gt;
&lt;br /&gt;
La position des antennes les unes par rapport aux autres est fondamentale. Afin d'optimiser la reception, les antennes doivent être parallèles.&lt;br /&gt;
&lt;br /&gt;
Chaque Xbee est identifié par un chiffre (1 ou 2). En effet, l'attribution de ces chiffres sera définitive pour ne pas perturber la cohérence des expériences. &lt;br /&gt;
Leur position est aussi fondamentale. Ainsi, en fonction que le Xbee soit emetteur ou récepteur, il sera disposé différement sur la planche.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Expérience : Le XBee 1 émetteur directement connecté en série au PC===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:GrapheGNURadio01.png|thumb|left|150px|Schéma simple d'étude fréquentielle et temporelle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette expérience est la première mettant en place un contexte (un seul Xbee émetteur connecté en série au PC, le deuxième Xbee étant inactif) et nous permettra d'étudier le plus de cas possibles.&lt;br /&gt;
&lt;br /&gt;
Nous avons tout d'abord commencé par un graphe GNURadio simple permettant l'observation du spectre et du signal et la variation de la fréquence d'étude.&lt;br /&gt;
&lt;br /&gt;
Le script python a été réécrit afin que le XBee puisse émettre une chaîne de caractère &amp;quot;HELLO&amp;quot; * 1024. En effet, même si la fréquence de balayage du module HackRF peut être grandement augmentée, il faut éviter d'aller au dessous de 0.01s, finissant par consommer de manière considérable les ressources octroyées par le CPU le cas échéant.&lt;br /&gt;
Le fait d'augmenter la taille de la chaine de caractère permet de mieux synchroniser l'étude en temps réel avec la capture des données.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc émis les données sur le canal 14, soit la fréquence centrale est à 2.420GHz selon la norme Zigbee. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Etude fréquentielle&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L'étude fréquentielle est similaire à celle réalisée auparavant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div center&amp;gt;&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[Fichier:Spectrefreq2.png|thumb|center|750px|Spectre fréquentiel au canal 14]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[Fichier:Spectrogram.png|thumb|center|250px|Spectrogramme]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on peut observer sur l'analyseur de spectre GNURadio que la fréquence centrale est située 2.450GHz. Nous n'avons pas trouvé la raison mais il s'agit sûrement d'un décalage au niveau applicatif.&lt;br /&gt;
&lt;br /&gt;
D'autre part, l'ensemble des fréquences qui dessinent le spectre s'étalent sur une large bande de fréquence. En effet, cette technique d'étalement appelée DSSS (Direct-Sequence Spread Spectrum) utilisé par les modules XBee permet au signal d'être moins sensible aux interférences et aux brouillages. En outre, même si la puissance du spectre dans sa globalité reste la même, la densité spectrale elle diminue considérablement, rendant le signal plus &amp;quot;discret&amp;quot;.&lt;br /&gt;
La différence de puissance entre le lobe principal et les premiers lobes secondaires sont de 30 dB, ce qui est aussi commun au DSSS.&lt;br /&gt;
&lt;br /&gt;
Le spectrogramme témoigne aussi de l'étalement du signal sur un peu plus de 6 MHz (3MHz de par et d'autre de la fréquence centrale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt; Etude temporelle &amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Signal temporel.png|thumb|left|500px|Signal observable centré à 2.450GHz lors de l'émission]]&lt;br /&gt;
&lt;br /&gt;
Le signal ici est séparé en deux composantes car il s'agit d'un signal complexe. Nous avons supposé en premier temps qu'il s'agissait du signal principal décalé de 180°, ce qui n'était pas le cas.&lt;br /&gt;
Après quelques recherches, cette séparation des composantes permet de transmettre deux fois plus de données sur la même bande passante.&lt;br /&gt;
Le signal observable témoigne d'une modulation bien spécifique au XBee. En effet, on peut observer des sauts de phase à différents points, qui correspondent à une modulation par changement de phase (modulation QPSK ou Quadratic Phase-Shift Keying). Ce sont ces sauts de phases qui permettent la transmission des bits.&lt;br /&gt;
Les changements de phase s'il y a se font toutes les µs. En outre, on peut observer un décalage (offset) entre la composante Q et la composante I de µs/2 (propre à la modulation OQPSK).&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé d'enregistrer ces données brutes dans un fichier et nous l'avons étudié avec Audacity, logiciel open-source de son, et donc de signaux ! L'inconvénient avec l'interface graphique QT de GNURadio est son manque de précision lors d'un dézoom sur le signal en temps réel. Audacity permet de palier à celà !&lt;br /&gt;
En outre, on peut voir que les paquets Xbee sont reconnaissables. En effet, le signal témoigne de la taille du paquet XBee.&lt;br /&gt;
&lt;br /&gt;
Le paquet XBee est constitué d'un premier header (header physique) de 6 octets :&lt;br /&gt;
- la séquence de préambule (4 octets) constitué de 32 bits à 0&lt;br /&gt;
&lt;br /&gt;
- l'indice de début du paquet fixé à 0x7A (1 octet)&lt;br /&gt;
&lt;br /&gt;
- la longueur du paquet (1 octet);&lt;br /&gt;
&lt;br /&gt;
d'un header MAC (7 à 27 octets en fonction des informations de l'adresse), d'un bloc FCS de fin de paquet (2 octets) et l'ensemble des données (de 1 à 104 octets).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Signal2.png|thumb|right|400px|On observe graphiquement qu'un paquet est transmis en 3846µs]]&lt;br /&gt;
[[Fichier:PacketXBee.png|400px|thumb|right|Paquet XBee]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Comme dit plus haut, les signaux émis par le XBee connaissent un étalement sur le spectre par DSSS.&lt;br /&gt;
Cet étalement s'effectue en divisant chaque symbole (correspondant à une série de 4 bits) transmis en &amp;lt;B&amp;gt;&amp;lt;I&amp;gt;chips&amp;lt;/I&amp;gt;&amp;lt;/B&amp;gt;.&lt;br /&gt;
Chaque symbole, soit 4 bits, correspond à 32 chips, et donc 32 états binaires (1 octet correspond à 64 chips).&lt;br /&gt;
Dans le cas de la norme ZigBee, la transmission de chacun des chips est synchronisé sur chaque µs (1 chip toutes les µs).&lt;br /&gt;
&lt;br /&gt;
Les signaux reçus par l'antenne HackRF étaient deux sinusoïdes modulées en phase et qui s'étalaient sur une période d'environ 3840µs (3846µs graphiquement mais il y a possibilité d'erreur à l'echelle du µs).&lt;br /&gt;
Sachant qu'un octet correspond à 64µs, on a :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;N_{octets} =\frac{2*T_{signal}}{64*T_{chip}}=\frac{2*3.840*10^{-6}}{64*10^{-6}}=120 octets&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'analogie peut être effectuée entre paquet Ethernet et paquet ZigBee. En effet, la taille limite des données d'un paquet est de 104 octets. La chaîne de caractère n'étant qu'envoyée par paquet, le paquet observé n'est que de 120 octets, ce qui est cohérent avec les caractéristiques du XBee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Hello1024secs.png|thumb|none|Temps de transmission de la chaîne de caractères &amp;quot;HELLO&amp;quot; 1024 fois]] &amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:AudacitySignal2.png|thumb|none|51 Paquets XBee portent la chaîne de caractère &amp;quot;HELLO&amp;quot; 1024 fois]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 8==&lt;br /&gt;
&lt;br /&gt;
L'étude des signaux posait réellement problème de par le fait qu'une grande partie de la capture faite n'était que purement le bruit sans signal (utile plus tard pour l'étude du SNR).&lt;br /&gt;
Prenons l'exemple d'un paquet de 21 octets (un paquet contenant une seule chaîne de caractères HELLO). Le signal s'étalerait en théorie sur 21*64 chips soit 672 chips. Sachant que la modulation est une modulation QPSK, on s'étale sur un temps de 672µs.&lt;br /&gt;
En effet, le Xbee transmet toutes les 100ms.&lt;br /&gt;
Donc qu'une partie du signal nous est utile.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décider d'écrire un script qui nous permettrait d'étudier le signal dans de meilleures conditions, et donc de le filtrer.&lt;br /&gt;
&lt;br /&gt;
Chaque capture de signal effectuée est enregistrée dans un fichier par le biais du bloc fonction &amp;lt;B&amp;gt;&amp;lt;I&amp;gt;File Sink&amp;lt;/I&amp;gt;&amp;lt;/B&amp;gt; du compagnon GNURadio. Néanmoins, les fichiers obtenus sont des fichiers binaires assez lourds (environ 500Mo pour une capture de 3s), ce qui est un réel problème et qui implique le filtrage du signal.&lt;br /&gt;
&lt;br /&gt;
La bibliothèque numpy pour python nous permet en outre directement d'importer les échantillons des signaux, les traduisant du binaire à un format cible (complexe flottant 64 bits) dans un Array par le biais de la fonction:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; f = scipy.fromfile(open(&amp;quot;Nom du fichier&amp;quot;), dtype=scipy.complex64) &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La première solution pour réduire ce signal était d'imposer un threshold directement sur le signal, supérieur au bruit, mais qui conduirait à une perte d'une partie du signal à étudier.&lt;br /&gt;
La deuxième solution qui a été retenue était tout simplement de calculer l'amplitude et la phase du signal et appliquer ce même threshold à l'amplitude.&lt;br /&gt;
&lt;br /&gt;
== Semaine 9 et 10==&lt;br /&gt;
&lt;br /&gt;
A partir de la semaine 10 nous avons procéder aux expériences pour avoir suffisamment de données et en tirer des conclusions.&lt;br /&gt;
&lt;br /&gt;
Lorsqu'on fait une acquisition d'un signal xbee , on peut maintenant via un script traiter cette acquisition et récupérer seulement les parties qui nous intéressent : A savoir la partie réelle et la partie imaginaire, l'amplitude du signal et enfin la phase du signal.&lt;br /&gt;
&lt;br /&gt;
Exemple ci dessous après acquisition + traitement de notre xbee n°2 :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Traitement xbee2.png|thumb|right|redresse=2|Signal Xbee2 post-traitement ]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Constellation xbee2.png|thumb|right|redresse=2|Diagramme de constellation xbee2 après utilisation de LightSignal]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'utilisation du script LightSignal permet de retirer toutes les phases en dehors du signal. Ainsi, on peut caractériser le diagramme de constellation comme un diagramme propre à la modulation QPSK. &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
import scipy&lt;br /&gt;
import numpy&lt;br /&gt;
import sys&lt;br /&gt;
&lt;br /&gt;
def binToComplex64(name):&lt;br /&gt;
    threshold=0.10&lt;br /&gt;
    tmp=scipy.fromfile(open(name+&amp;quot;_PhaseMeg&amp;quot;), dtype=scipy.complex64)&lt;br /&gt;
    tmp2=scipy.fromfile(open(name), dtype=scipy.complex64)&lt;br /&gt;
    &lt;br /&gt;
    f2 = open(name+&amp;quot;_filtre&amp;quot;, &amp;quot;w+&amp;quot;) &lt;br /&gt;
    f = open(name+&amp;quot;_PhaseMeg_filtre&amp;quot;,&amp;quot;w+&amp;quot;)&lt;br /&gt;
    &lt;br /&gt;
    p=1&lt;br /&gt;
    size=tmp.__len__()&lt;br /&gt;
    size2=tmp2.__len__()&lt;br /&gt;
    &lt;br /&gt;
    if size &amp;gt; size2:&lt;br /&gt;
        size=size2&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    ground=False&lt;br /&gt;
    newListSignal=[]&lt;br /&gt;
    newListMagnPh=[]&lt;br /&gt;
    for val in range(0,size): &lt;br /&gt;
        if(val&amp;gt;=(size/100)*p):&lt;br /&gt;
            print(str(p)+&amp;quot; %&amp;quot;)&lt;br /&gt;
            p=p+1&lt;br /&gt;
        if(tmp[val].real&amp;gt;threshold):&lt;br /&gt;
            if(ground==True):&lt;br /&gt;
                for i in range(0,1000):&lt;br /&gt;
                    newListSignal.append(numpy.complex64(0))&lt;br /&gt;
                    newListMagnPh.append(numpy.complex64(0))&lt;br /&gt;
                ground=False&lt;br /&gt;
            newListSignal.append(tmp2[val])&lt;br /&gt;
            newListMagnPh.append(numpy.complex64(tmp[val].real+tmp[val].imag*0.3j))&lt;br /&gt;
        else:&lt;br /&gt;
            ground=True&lt;br /&gt;
    &lt;br /&gt;
    tmp=numpy.asarray(newListMagnPh)&lt;br /&gt;
    tmp.tofile(f)&lt;br /&gt;
    tmp2=numpy.asarray(newListSignal) &lt;br /&gt;
    tmp2.tofile(f2)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    try:&lt;br /&gt;
        binToComplex64(sys.argv[1])&lt;br /&gt;
    except IndexError:&lt;br /&gt;
        print(&amp;quot;Donnez le nom du fichier\n&amp;quot;)&lt;br /&gt;
    except IOError:&lt;br /&gt;
        print(&amp;quot;Le fichier n'existe pas\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__=='__main__':&lt;br /&gt;
    main()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le diagramme de constellation témoigne de nouveau du type de modulation utilisé par le module XBee.&lt;br /&gt;
En effet, on observe quatre points de part et d'autre des axes de quadrature et d'inphase.&lt;br /&gt;
&lt;br /&gt;
==Semaine 11==&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé cette semaine d'étudier, ce qui est selon pour nous, l'une des pistes fondamentales de notre projet, et plus particulièrement de l'étude de nos signaux : le rapport signal bruit.&lt;br /&gt;
&lt;br /&gt;
L'objectif de cette semaine et de celle à venir était, à partir du signal acquis par le hackrf, d'effectuer le calcul du SNR (signal-to-noise ratio) tel que :&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;SNR =\frac{P_{signal}}{P_{bruit}}&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le script python qui nous a permis de communiquer entre les deux shields Xbee se verra amélioré afin de faire plusieurs acquisition des signaux lors de la communication entre les Xbee, effectuer une moyenne statistique, et de même lorsqu'il n'y a pas de communication.&lt;br /&gt;
&lt;br /&gt;
Nous avons essayé d'approcher le SNR directement depuis l'interface de GnuRadio par le biais de l'utilitaire graphique et le langage en bloc, néanmoins nous procéderons à l'étude de ce rapport avec Scilab ou Matlab.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaines supplémentaires==&lt;br /&gt;
&lt;br /&gt;
===Expérience : Temps de calcul du FCS entre le XBee1 et et le XBee2===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 et XBee2 sont alimentés sur 5V VCC par USB (connecté à l'ordinateur)&amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 et XBee2 disposent du firmware : 10EF &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 est d'abord emetteur et le XBee2 est recepteur puis inversement. Aucun paquet ACK n'est renvoyé de la part du recepteur &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On transmet la chaine de caractère HELLO 256 fois toutes les 1 secs&lt;br /&gt;
Les données étant assez conséquentes, le Xbee transmet plusieurs fragments du paquet.&lt;br /&gt;
L'objectif de cette expérience est d'étudier le temps entre chaque fragment d'un paquet.&lt;br /&gt;
L’espace de temps entre chacun des paquets permet de calculer le FCS (frame check sequence) afin de minimiser les erreurs de transmission.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:ChecksumGraphe.png|thumb|left|redresse=2|Les différents temps à mesurer]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Néanmoins, l’étude de ces “temps morts” se voit entravé par le fait que le module HackRF ne permette pas d’obtenir un signal clair sur plus de 5 secondes.&lt;br /&gt;
En outre, pour 5 secondes d’étude et pour une fréquence d’échantillonage de 20MHz (soit un temps Te=5.10e8), on compte 100.000.000 d’échantillons.&lt;br /&gt;
Le CPU lors de la capture était grandement sollicité, ce qui explique le fait que la capture soit compromise.&lt;br /&gt;
Pour régler ce problème, on a écrit un script shell de capture.&lt;br /&gt;
Ce script consiste à:&lt;br /&gt;
&amp;lt;br&amp;gt;- effectuer une capture d’une durée de 1 sec&lt;br /&gt;
&amp;lt;br&amp;gt;- d’enregistrer la capture&lt;br /&gt;
&amp;lt;br&amp;gt;- d’effectuer un traitement de ces paquets par un algorithme python en étudiant le temps entre chacun des fragments. Ce temps sera obtenu en nombre d’échantillons, défini avec un seuil d’acceptation absolu entre 150.000 et 300.000 échantillons (pour bien capturer ces temps intermédiaires et pas les temps provoqués par des signaux parasites ou du bruit), et pour affiner l’étude, on impose un seuil d’erreur de +-10% autour de la moyenne. La moyenne est calculée en continue&lt;br /&gt;
&amp;lt;br&amp;gt;- l’ensemble des valeurs obtenues sont enregistrées dans un fichier&lt;br /&gt;
&amp;lt;br&amp;gt;- on réeffectue la capture …&lt;br /&gt;
&lt;br /&gt;
On répète le processus un certains nombre de fois afin d’obtenir un nombre de valeurs nous permettant de nous conforter sur l'issue de l'expérience (environ 1000 valeurs)&lt;br /&gt;
&lt;br /&gt;
La capture et l'étude de chacun des modules dure une à deux heures.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats :&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans le cas du XBee1 (à gauche) et du XBee2 (à droite), voici les résultats obtenus :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Xbee1Graphe256.png|thumb|left|redresse=2|On peut observer des pics caractéristiques à l'envoi]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBee2Graphe256.png|thumb|left|redresse=2|Les mêmes pics caractéristiques confirment un comportement non-aléatoires du module]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
XBee1 : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 259675,81&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 8369.7417&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 70052576.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
XBee2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 258762.58&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 9165.4097&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 84004736.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les graphes présentent le nombre de répétitions des temps de calcul de fragements.&lt;br /&gt;
&lt;br /&gt;
On peut voir des pics spécifiques à certains points dans les deux expériences. Ces pics sont caractéristiques et au module XBee, et à la chaîne de caractère HELLO. Les deux expériences étant effectuées dans le même contexte, &lt;br /&gt;
&lt;br /&gt;
De même que pour le second Xbee, on retrouve des pics bien distincts à certains points.&lt;br /&gt;
&lt;br /&gt;
En outre, on peut voir que ces pics bien distincts se rapprochent de ceux du premier Xbee.&lt;br /&gt;
Néanmoins, même si la moyenne varie que très peu par rapport aux deux Xbee, la variance est assez différente.&lt;br /&gt;
&lt;br /&gt;
Pour confirmer ces observations, il est peut être nécessaire de répéter la même expérimentation sur un nombre d'échantillons plus grand.&lt;br /&gt;
&lt;br /&gt;
Ainsi, afin de confirmer la conjecture, on décide de faire d’autres captures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En superposant les deux graphes (Xbee1 en rouge et Xbee2 en bleu), on peut voir qu'il y a moins de dispersion dans le cas du XBee1, plus centré sur des valeurs précises, contrairement au Xbee2.&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBee1Xbee2Graphe.png|thumb|left|redresse=2]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour les deux nouveaux échantillons, on a les caractéristiques suivantes :&lt;br /&gt;
&amp;lt;U&amp;gt;Xbee1 sur 1688 échantillons&amp;lt;/U&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 260230.3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 8427.3923&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 71020941&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Xbee2 sur 1722 échantillons&amp;lt;/U&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 259899.41&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 9831.5106&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 96658601&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Conclusion de l'expérience&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
L’hypothèse qui est que la variance des temps &amp;quot;morts&amp;quot; entre chaque fragments de paquet, soit le temps de calcul du FCS pour le signal émis peut être considéré comme “clé” de distinction d’un module Xbee n'est donc pas à négliger. &lt;br /&gt;
&lt;br /&gt;
On peut même considérer que cette étude peut distinguer un module Xbee d'un autre électromagnétiquement parlant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Algorithme python utilisé pour l'étude du signal&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
[Pseudo code ici]&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Expérience : SNR ===&lt;br /&gt;
&lt;br /&gt;
Maintenant nous voulons vérifier si la mesure du SNR est une expérience pertinente pour l'identification des xbee. Nous allons prendre plusieurs xbee , et nous les déplacerons dans la salle aux mêmes endroits. A chaque déplacement nous veillerons à mesurer le SNR grâce à notre algorithme. &lt;br /&gt;
Ce script écrit en python permet de : &lt;br /&gt;
- Capturer les paquets émis&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Rencontre avec un doctorant ===&lt;br /&gt;
&lt;br /&gt;
Bien que plusieurs pistes ont pu être explorées, notre manque d'expertise dans le domaine de la radio logicielle nous a fait défaut sur nos recherches. En effet, après avoir calculé la SDR d'un de nos signaux, nous nous sommes confrontés à des résultats assez incohérents. De nombreuses erreurs peuvent se glisser&lt;br /&gt;
Ces semaines&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'archive des scripts python : &lt;br /&gt;
&lt;br /&gt;
[archive.zip]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le rapport&lt;br /&gt;
&lt;br /&gt;
[Rapport.pdf]&lt;/div&gt;</summary>
		<author><name>Amoreau</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=74254</id>
		<title>IMA4 2018/2019 P70</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=74254"/>
				<updated>2019-05-04T09:04:30Z</updated>
		
		<summary type="html">&lt;p&gt;Amoreau : /* Semaines supplémentaires */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;font-size: 30px; width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;Impact du matériel et du logiciel sur le champ électromagnétique&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Projet'''&amp;lt;/ins&amp;gt; : Impact du matériel et du logiciel sur le rayonnement électromagnétique&lt;br /&gt;
&lt;br /&gt;
''Nous proposons d'évaluer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et la consommation électrique.''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Etudiants'''&amp;lt;/ins&amp;gt; : Souheib KHINACHE et Antoine MOREAU&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Encadrants'''&amp;lt;/ins&amp;gt; : Alexandre BOE, Xavier REDON et Thomas VANTROYS&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'internet des objets est un marché en plein essor. La communication entre les différents objets connectés crée un nuage de signaux autour d'eux. Ces derniers sont vus par les utilisateurs comme des boîtes noires : le fonctionnement se fait sans en connaître les composants matériels et logiciels. &lt;br /&gt;
Néanmoins, ces objets, de par leurs propriétés électroniques, créent des fuites électromagnétiques impactant le champ environnant. &lt;br /&gt;
&lt;br /&gt;
Bien qu'ils peuvent porter à débat sur l'impact sur la santé, ces signaux peuvent représenter de réelles sources d'informations sur l'aspect matériel et applicatif de l'objet.&lt;br /&gt;
&lt;br /&gt;
Il serait donc intéressant d'avoir idée générale sur le fonctionnement du système en interprétant les ondes électromagnétiques émises par ce système.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Les principaux objectifs de ce projet seront donc de mesurer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et sur la consommation électrique.&lt;br /&gt;
Pour cela, l'outil potentiel avec lequel nous pourrions travailler serait une sonde de champ électromagnétique afin d'établir des mesures. &lt;br /&gt;
Cependant, nous pourrions concevoir notre propre système de capture et d'interprétation à partir d'une antenne, de filtres de fréquences et d'un microcontrôleur (on commencera par un ATMega328P). Il sera nécessaire de prendre en compte les perturbations issues de notre appareil de mesure et d'en tenir compte.&lt;br /&gt;
&lt;br /&gt;
On effectuera ainsi plusieurs expérimentations sur différents supports d'étude :&lt;br /&gt;
*l'aspect &amp;quot;Hardware&amp;quot; en étudiant différents modèles pour un même type de shield  &lt;br /&gt;
*l'aspect calculatoire du matériel en se basant sur l'impact des microcontrôleurs en fonction du modèle (ATMega328P et ATMega2560)&lt;br /&gt;
*l'aspect &amp;quot;Software&amp;quot;, en étudiant l'impact du logiciel et du firmware d'un même composant (différents firmwares pour un même shield Wi-Fi)&lt;br /&gt;
*l'aspect puissance des composants électroniques de gestion de puissance (ponts, hacheurs, onduleurs...).&lt;br /&gt;
&lt;br /&gt;
L'étude des différentes informations se fera par traitement des signaux électromagnétiques et des spectres. &lt;br /&gt;
Afin de mieux appréhender le problème, il nous est nécessaire de comprendre les phénomènes physiques issus de la notion d'électromagnétisme.&lt;br /&gt;
&lt;br /&gt;
Ces études mèneront à une étape plus complexe : l'interprétation des signaux. En effet, l'un des objectifs de ce projet est de comprendre du mieux possible le fonctionnement d'un système sans y avoir accès directement, et donc dans ce contexte &amp;quot;traduire&amp;quot; un ensemble de signaux électromagnétiques.&lt;br /&gt;
&lt;br /&gt;
On pourra en outre apporter un aspect visuel à l'étude en rajoutant une interface informatique.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
Bien qu'aux yeux de nombreuses personnes le bruit électromagnétique créé par les équipements électroniques du quotidien peut porter à controverse (débats concernant l'impact sur la santé par exemple), il peut être une source d'informations. &lt;br /&gt;
De nos jours, les ondes électromagnétiques restent un vaste champ d'étude, sujettes à de nombreuses thèses et recherches au sein des laboratoires.&lt;br /&gt;
&lt;br /&gt;
On peut prendre l'exemple de [https://www.eurekalert.org/pub_releases/2015-01/giot-rwt010715.php Milos Prvulovic], professeur à l'Institut Technologique de Géorgie, ayant simulé un contexte de cybercafé, dans lequel il place une antenne magnétique, un ordinateur portable cible et un ordinateur &amp;quot;espion&amp;quot;. Il réussit, grâce aux signaux EM émis par l'impulsion de l'appui des touches clavier à capter un message écrit par un ordinateur cible. &lt;br /&gt;
&lt;br /&gt;
Néanmoins, dans le quotidien, l'utilisation des sondes électromagnétiques se fait pour l'étude énergétique d'un système électronique (fuites électromagnétiques anormales, preuves d'une anomalie...) afin de respecter certaines normes législatives. Le code du travail par exemple réglemente et définit des valeurs seuils par le biais des articles R. 4453-3 et R. 4453-4.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
'''NBM-520 de NARDA STS'''&lt;br /&gt;
[[Fichier: NBM_TS.png|thumb|300px|NBM-TS, application des appareils NBM]]&lt;br /&gt;
NARDA STS est une entreprise qui fournit des outils de mesure. Elle met à disposition aux professionnels des sondes électromagnétiques.&lt;br /&gt;
La NBM-520 est un appareil de la franchise, mesurant le champ électrique et magnétique. Elle donne des valeurs précises du champ électromagnétique ambiant sur une large bande. Elle propose différentes sondes modulables permettant une souplesse au niveau de l'étude en fonction des besoins, avec des sondes pouvant étudier des signaux de fréquence de 100kHz à 6GHz ou même de 300kHz à 50GHz (en fonction de la sonde choisie).&lt;br /&gt;
&lt;br /&gt;
En outre, le dispositif peut se connecter en USB sur PC afin d'envoyer les données capturées et d'en faire une étude. Le dispositif propose un logiciel d'étude, NBM-TS, permettant d'observer du champ en fonction du temps, de la fréquence, de la position...&lt;br /&gt;
&lt;br /&gt;
L'équipement est utilisé par l'ANF (l'Agence Nationale des Fréquences, agence gérant l'ensemble des normes autour des radiofréquences), et est donc un gage de qualité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Avantages :''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Large bande de fréquence&lt;br /&gt;
* Matériel solide&lt;br /&gt;
* Application fonctionnelle permettant l'étude et gestion des données&lt;br /&gt;
* Possibilité d'étudier séparément champ électrique et magnétique&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Inconvénients:''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Impossible d'étudier les basses fréquences (appareils sous tension, bobinages...)&lt;br /&gt;
* Prix élevé : à partir de 3100€&lt;br /&gt;
* La cible de ce produit est surtout les professionels&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
'''Une pita.'''&lt;br /&gt;
&lt;br /&gt;
''Comment mon pain à pita vole ta clé RSA ?''&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Pita.jpg|200px|thumb|left|Une pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Des chercheurs israéliens ont découvert un moyen de capturer des clés de cryptage RSA, réputées comme inviolables, par le biais d'une pita... du moins avec un dispositif suffisamment petit pour être caché dans un pain à pita. &lt;br /&gt;
Le dispositif, renommé PITA pour Portable Instrument for Trace Acquisition a la particularité de capturer les ondes radio électromagnétiques émanantes d'un PC, qu'il soit connecté à un réseau ou pas.&lt;br /&gt;
Les différentes opérations du processeur sont identifiées en distinguant les différents modèles de l'activité radio sur le spectre EM.&lt;br /&gt;
&lt;br /&gt;
Bien que la capture des clés RSA a été faite dans des conditions particulières (modification du processeur de l'ordinateur cible), il est néanmoins possible, selon les chercheurs, d'identifier quelle type d'activité est exercée par l'ordinateur ainsi que son état.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PITA.jpg|300px|thumb|right|Un dessous de pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'un des points importants concernant le dispositif est son coût : moins de 300 euros.&lt;br /&gt;
L'appareil dispose :&lt;br /&gt;
* d'un PC portatif (PC-on-a-stick) ''Rikomagic MK802 IV'',&lt;br /&gt;
* d'un recepteur radio SDR ''FUNcube Dongle Pro+''&lt;br /&gt;
* d'une antenne radio&lt;br /&gt;
* d'une batterie&lt;br /&gt;
* d'une antenne WiFi&lt;br /&gt;
* d'une carte MicroSD&lt;br /&gt;
* d'un adapteur d'antenne&lt;br /&gt;
* et d'une '''pita'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le dispositif aurait une portée de 50cm. &lt;br /&gt;
Les chercheurs israéliens ont collaboré avec GNU Private Guard (logiciel de cryptage asymétrique) afin de protéger contre ces attaques les clés de cryptage.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
&lt;br /&gt;
''Scénario 1''&lt;br /&gt;
&lt;br /&gt;
Gérard a toujours le flair pour les bonnes affaires. Il a acheté une centaine de clés WiFi à un prix dérisoire sur AloXpresso afin de faire du profit à la revente. Le vendeur lui garantit que toutes les clés fonctionnent correctement. Gérard veut vérifier. Après vérification, 99 des clés sur 100 fonctionnent comme prévu. Gérard aimerait être sûr du disfonctionnement, mais Gérard n'est pas une pointure en informatique. &lt;br /&gt;
&lt;br /&gt;
Coup de génie ! Il se rappelle qu'il dispose d'un dispositif qui capte les ondes EM et les interprète directement. C'est le moment de tester ça. Il remarque une anomalie sur le spectre.&lt;br /&gt;
Il décide de contacter le revendeur pour lui signaler un disfonctionnement sur l'une des clé. &lt;br /&gt;
Pas de soucis. Le vendeur, étant bon prince, lui envoie une autre clé USB et lui fait une ristourne.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Scénario 2''&lt;br /&gt;
&lt;br /&gt;
La police fait une perquisition chez un individu soupçonné de graves délits. Cela fait plusieurs mois que la brigade criminelle prépare l'intervention, et une fois sur les lieux ils arrêtent le soupçonné malfaiteur.&lt;br /&gt;
Cependant avant de repartir, elle veut faire l'acquisition d'un maximum de preuves. Elle veut alors prendre l'essentiel des objets, dont certains objets éléctroniques connectés de l'individu dont elle pourra extraire les informations qui serviront à le faire tomber.&lt;br /&gt;
&lt;br /&gt;
Par chance, elle dispose d'un petit outil qui scannera les signatures alentours des objets connectés, comme des téléphones cachés, clés USB wifi dissimulées dans le décor etc..&lt;br /&gt;
Et si le suspect avait modifié malignement un objet connecté banal pour l'utiliser autrement à ses fins, la police le découvrirait car elle possède une base de données de toutes les signatures spectrales des objets connectés sur le marché et celle de l'objet modifié ne collerait pas avec celle de la base de données.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
&lt;br /&gt;
'''Comment étudier les signaux malgré les perturbations électromagnétiques ambiants et les faibles signaux des µC ?'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les signaux électromagnétiques des microcontrôleurs ou d'autres composants peuvent être faibles. Il y a une possibilité pour palier à ce problème, c'est de capter les signaux depuis une antenne émettrice que l'on rajoute à l'objet d'étude. &lt;br /&gt;
Nous utiliserons un SDR (Software Defined-Radio) afin de capter les ondes radio et les étudier directement sur PC. Le filtrage s'effectuera ainsi de manière numérique. Plusieurs tests seront effectués pour le même objet à étudier (quand on parle d'objet, on évoque un ensemble de plusieurs composants, comme par exemple une alimentation, un micro-contrôleur et une antenne). Ainsi, de manière statistique, nous pourrons en déduire un pattern récurrent pour chaque expérience en les effectuant dans différents environnements (pourquoi pas une chambre anachoïque). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons &lt;br /&gt;
* Capter le signal émis par un objet connecté le plus précisément possible&lt;br /&gt;
&lt;br /&gt;
* Concevoir nos propres objets connectés tous différents mais basés sur un même modèle&lt;br /&gt;
&lt;br /&gt;
* Interpréter les spectrogrammes, faire une étude statistique des signaux émis par nos différents objets et en tirer des conclusions&lt;br /&gt;
&lt;br /&gt;
* Répertorier dans une base de données les signatures de nos objets , voire de quelques objets disponibles sur le marché&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix logiciel :&lt;br /&gt;
&lt;br /&gt;
- La distribution Linux Pentoo ou Kali pour traiter les signaux avec GNU RADIO (Suite logicielle dédiée à l’implémentation de radios logicielles et de systèmes de traitement du signal).&lt;br /&gt;
&lt;br /&gt;
- FemtoOS pour l'OS des ATMEGA328P et ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix Matériel : &lt;br /&gt;
&lt;br /&gt;
- Plusieurs modules radios émetteurs &lt;br /&gt;
&lt;br /&gt;
- Plusieurs microcontrôleurs ATMEGA328P et un ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
- Des alimentations identiques pour chaque PCB&lt;br /&gt;
&lt;br /&gt;
- Un HackRF pour la réception des signaux&lt;br /&gt;
&lt;br /&gt;
- Une antenne 50 Ohm pour le HackRF [https://www.passion-radio.fr/accessoires-sdr/antenne-ant500-74.html]&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous devons préparer tout le matériel qui servira à faire nos tests. C'est à dire concevoir :&lt;br /&gt;
&lt;br /&gt;
- Un ensemble SDR/PC qui traitera le signal reçu avec GNU RADIO.&lt;br /&gt;
&lt;br /&gt;
- Une multitude de PCB qui seront utilisés comme objets connectés (Sur chacun d'entre eux on trouvera au minimum une antenne radio, un microcontrôleur et une alimentation)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de récupérer une &amp;quot;signature&amp;quot; d'un de nos objets , il faudra faire plus de 50 analyses spectrales pour conclure statistiquement sur une bonne signature qui caractérisera l'objet.&lt;br /&gt;
&lt;br /&gt;
Nous devons donc dans un second temps: &lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques mais qui ont un '''firmware''' différent.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques qui ont pour seule différence le '''microcontrôleur'''.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques dont seul le '''PCB''' diffère.&lt;br /&gt;
&lt;br /&gt;
Grâce à tous ces tests , nous pourrons conclure et voir l'impact qu'à le matériel ou le logiciel sur la signature d'un objet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enfin si les délais nous le permettent, nous pourrons réaliser un software qui cartographiera nos objets connectés dans la pièce grâce à la puissance de la signature reçue (Ce qui devrait être réalisable puisqu'à ce stade nous aurons une base de donnée des signatures).&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
|3&lt;br /&gt;
|8&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Recherches&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|6&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Prise en main de GnuRadio&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Configuration Xbee&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Expériences&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|5&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|4&lt;br /&gt;
|15&lt;br /&gt;
|9&lt;br /&gt;
|8&lt;br /&gt;
|7&lt;br /&gt;
|8&lt;br /&gt;
|8&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
[[Fichier:HackrfOne.jpeg|200px|thumb|right|Le HackRF One]]&lt;br /&gt;
Durant cette semaine, nous avons continué nos recherches notamment sur le moyen de transmission de nos objets connectés. Nous avons confirmé notre choix de notre SDR : Monsieur Boé nous a confirmé que des HackRF seraient disponibles dans les laboratoires et qu'il pourrait nous en prêter un. On disposera donc d'une antenne puissante pour traiter les signaux émis par nos objets communiquants. &lt;br /&gt;
&lt;br /&gt;
Il faudra coupler notre HackRF avec un logiciel appelé GNU RADIO qui est un logiciel très complet ( Pour information : la NASA a utilisé GNU RADIO afin de rétablir le contact avec une sonde spatiale abandonnée ). Afin de faire tourner ce logiciel libre, nous aurons besoin de la distribution Kali Linux, ex Backtrack.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Choix des émetteurs/récepteurs === &lt;br /&gt;
&lt;br /&gt;
Nous avons décidé que nos objets connectés communiqueront dans deux '''bandes de fréquences ISM''', l'une à '''900 MHz''' grâce à des modules Digi Xbee et l'autre à '''2,4 GHz''' par le moyen de modules émetteurs Bluetooth. On rappellera que les Digi Xbee et les émetteurs/récepteurs Bluetooth seront pilotés par des ATMEGA 2560.&lt;br /&gt;
&lt;br /&gt;
Les Xbee ne communiqueront pas entre eux et émettront en continu les mêmes données car ils le peuvent, alors que les émetteurs/récepteurs Bluetooth devront s'échanger des données si on veut pouvoir observer un quelconque signal autour de la fréquence de leurs porteuses. &lt;br /&gt;
&lt;br /&gt;
On voudra observer premièrement, si avec deux objets dans les '''mêmes''' conditions (donc même µc et même émetteur), on peut ou non '''distinguer une différence'''. Ceci est fondamental pour la suite des expériences, puisque si les deux émettent à la même fréquence, on pourra faire varier plusieurs paramètres afin de trouver '''des clés''' (des signes) qui pourraient aider à l'identification du matériel.&lt;br /&gt;
&lt;br /&gt;
Ces clés représentent différents facteurs potentiels d'identification du signal (le rapport signal-bruit en fonction de la distance par exemple...).&lt;br /&gt;
&lt;br /&gt;
''On planifie alors pour la semaine suivante de réussir à faire émettre, en utilisant simplement des breadboards pour commencer, nos Xbee et modules BT et observer quelque chose grâce à notre SDR.''&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration des modules XBee ===&lt;br /&gt;
&lt;br /&gt;
Nous avons configuré deux XBee afin qu'ils puissent communiquer entre eux : &lt;br /&gt;
&lt;br /&gt;
Les modules XBee ont été montés sur des platines d'interface USB/série de manière à ce qu'on puisse les paramétrer via le programme de contrôle ''minicom''. &lt;br /&gt;
&lt;br /&gt;
Dans le doute, on supposera que les XBee communiquent à 9600 Baud. On exécute la commande suivante : &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;minicom -b 9600 -D /dev/ttyUSB0&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
On active l'echo local dans minicom, afin de pouvoir observer ce qui a été envoyé par liaison série au XBee ('''CTRL+A''' puis '''E''').&lt;br /&gt;
&lt;br /&gt;
Pour commencer le paramètrage il faut taper ''' +++ ''' rapidement. Le XBee nous répond OK, cela veut dire que nous sommes dans le mode configuration et que nous pouvons utiliser les commandes '''AT'''. (Redirection vers la liste des commandes AT XBee [https://cdn.sparkfun.com/assets/resources/2/9/22AT_Commands.pdf]).&lt;br /&gt;
&lt;br /&gt;
Comme nos XBee ont été utilisés auparavant, il a fallu les restaurer à l'état usine avec la commande '''ATRE'''.&lt;br /&gt;
&lt;br /&gt;
Si on souhaite que des XBee puissent s'envoyer des données il faut qu'ils soient sur le même canal (commande '''ATCH''') et aient le même PAN ID (commande '''ATID'''). Notre PAN ID sera '''BEE6''' et le canal sera celui par défaut '''C'''.&lt;br /&gt;
&lt;br /&gt;
Ensuite il faut leur donner une adresse de destination ('''ATDH''' &amp;amp; '''ATDL''') qui sera l'adresse broadcast, pour ce faire on entre &lt;br /&gt;
 ATDH=0000&lt;br /&gt;
 ATDL=FFFF&lt;br /&gt;
&lt;br /&gt;
Enfin '''ATMY''' représente l'ID du XBee, notre premier XBee aura comme ID 5000 et le second 5001.&lt;br /&gt;
&lt;br /&gt;
N'oublions pas de sauvegarder les paramètres avec '''ATWR'''.&lt;br /&gt;
&lt;br /&gt;
On vérifie que tout a bien été pris en compte :&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;&lt;br /&gt;
+++OK&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATID&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
BEE6&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
C&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
0&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDL&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
FFFF&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATMY&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
5000&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCN&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Puis on fait de même avec le deuxième XBee (ID 5001).&lt;br /&gt;
&lt;br /&gt;
Voilà, lorsque on envoie des caractères par liaison série sur 5000, la LED '''Tx''' de 5000 s'allume et la Led '''Rx''' de 5001 s'allume elle aussi. Cela signifie que l'envoi de donnée par onde radio s'effectue correctement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que les XBee émettent et reçoivent, on peut commencer les mesures avec notre SDR. Mais avant cela il va falloir bien se familiariser avec le logiciel GNU RADIO qui est assez difficile à prendre en main.&lt;br /&gt;
&lt;br /&gt;
=== Première prise en main du logiciel GNURADIO ===&lt;br /&gt;
&lt;br /&gt;
Installation de GNU radio avec les fonctions + drivers pour HackRF : &lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install gqrx-sdr gnuradio gr-osmosdr hackrf &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le bloc Osmocom Source sert de &amp;quot;passerelle&amp;quot; entre le logiciel et la SDR, il permet de transmettre les informations récupérées par le HackRF afin qu'on puisse les traiter avec d'autres bloc de fonctions.&lt;br /&gt;
&lt;br /&gt;
Si on veut pouvoir récuperer les données il faut passer l'argument ''hackrf=0'' dans la box périphérique du bloc Osmocom.&lt;br /&gt;
&lt;br /&gt;
Ci-dessous on peut voir le spectre environnant entre 2.44GHz et 2.460GHz grâce au bloc WX GUI FFT Sink.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ScreenGnuRadio.png|Interface de GNURadio]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous a permis d'effectuer notre première expérience. L'utilisation des deux Xbees nous a permis d'observer l'impact des Xbee sur le champ électromagéntique environnant.&lt;br /&gt;
&lt;br /&gt;
Si on analyse le spectre environnant grâce au module FFT de GNU Radio, lorsque les Xbee communiquent entre eux, on peut apercevoir un pic caractéristique propre.&lt;br /&gt;
En effet, lors de l'emission d'un message sur le port série, on a un pic qui se dégage du spectre d'amplitude -20dBm. Ce pic est caractéristique au canal de communication choisi et configuré sur le Xbee.&lt;br /&gt;
Néanmoins, le signal est perturbé par le bruit environnant. &lt;br /&gt;
L'expérience étant effectuée au sein de l'école, les signaux Wi-Fi perturberont l'étude.&lt;br /&gt;
Il faut noter que la norme IEEE 802.11 impose au Wi-Fi l'utilisation d'une bande passante s'étalant de 2.4 GHz à 2.5 GHz.&lt;br /&gt;
&lt;br /&gt;
La bande passante des modules Zigbee se décomposent en 16 canaux, allant de 2400 MHz à 2480 MHz par pas de 5 MHz.&lt;br /&gt;
&lt;br /&gt;
Le canal ici utilisé est le canal 13 (3ème canal) de fréquence 2415 MHz.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[Fichier:Channel135001.png|thumb|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Fichier:channel135000.png|thumb|none|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBeeCh13.png|Spectre de l'environnement autour du XBee|thumb|none|400 px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBeeCh13SND.png|Lors de l'envoi de données au XBee voisin|thumb|none|400 px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut observer un pic de puissance lors de l'envoi d'une donnée en série à la fréquence 2.415 GHz.&lt;br /&gt;
Il nous est maintenant nécessaire d'analyser de plus près les signaux et leurs fréquence centrale dans la bande perçue au dessus de -20dB.&lt;br /&gt;
&lt;br /&gt;
On réeffectuera une expérience en zone isolée des signaux parasites.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous avons principalement fait des recherches dans le but de mieux comprendre les signaux émis par le Xbee.&lt;br /&gt;
&lt;br /&gt;
En somme, nous étions confrontés à de nombreuses interrogations. Le fonctionnement du Xbee étant assez simple et la sécurité du protocole Zigbee étant moindre, y a t-il possibilité de démoduler le signal émis afin de développer nos études ?&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
[[Fichier:Switchchannel pyscript.PNG|upright=0.8|thumb|right|Script Python]]&lt;br /&gt;
&lt;br /&gt;
Après réflexion et consultation de nos encadrants, nous nous sommes rendu compte que la démodulation prévue lors de la semaine 4 n'aiderait pas à répondre à la problématique de notre sujet !  &lt;br /&gt;
&lt;br /&gt;
Afin de mieux visualiser les signaux des Xbee , on décide d'automatiser le processus d'envoi sur le port série des données vers le Xbee. C'est à dire concevoir un programme Python qui automatisera l'envoi de données et le changement de channel à intervalle de temps régulier (Changement toutes les 10 secondes). &lt;br /&gt;
&lt;br /&gt;
L'utilisation de Minicom '''n'était pas du tout la meilleure solution''' pour faire émettre les Xbee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Après quelques essais, on remarque que lorsque le Xbee émet sur le channel 13, il émet à environ 2,445GHz au lieu d'émettre à 2,415GHz soit une différence de 30MHz : Ceci n'est pas important, car ce que l'on souhaite remarquer c'est un éventuel décalage de la fréquence centrale entre deux Xbee différents. Si les deux Xbee n'ont pas la même frequence centrale on pourra conclure que la '''fréquence centrale''' de la porteuse du Xbee n'est pas '''une des clés''' permettant d''''identifier''' cet émetteur/récepteur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaines 6 et 7==&lt;br /&gt;
&lt;br /&gt;
Afin de mieux cerner le comportement électromagnétique des modules XBee, il nous est nécessaire de comprendre leur fonctionnement et le protocole Zigbee.&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous avons cherché à souligner le parallélisme entre étude fréquentielle par le spectre et étude temporelle du signal.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PlancheXPtest.jpg|thumb|right|Planche prototype]]&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous avons paramétré la fréquence centrale de capture du HackRF. En effet, bien que le HackRF dispose d'une large bande passante, afin de se focaliser sur la porteuse, il est indispensable de configurer le HackRF en conséquence.&lt;br /&gt;
En second lieu, pour éviter une variation du RSSI (Received Signal Strength Indication) et de la puissance du signal, nous devions mettre en place une prototype de &amp;quot;planche expérimentale&amp;quot; sur laquelle devaient être fixés nos différents modules (l'antenne de reception et les Xbees).&lt;br /&gt;
&lt;br /&gt;
La position des antennes les unes par rapport aux autres est fondamentale. Afin d'optimiser la reception, les antennes doivent être parallèles.&lt;br /&gt;
&lt;br /&gt;
Chaque Xbee est identifié par un chiffre (1 ou 2). En effet, l'attribution de ces chiffres sera définitive pour ne pas perturber la cohérence des expériences. &lt;br /&gt;
Leur position est aussi fondamentale. Ainsi, en fonction que le Xbee soit emetteur ou récepteur, il sera disposé différement sur la planche.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Expérience : Le XBee 1 émetteur directement connecté en série au PC===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:GrapheGNURadio01.png|thumb|left|150px|Schéma simple d'étude fréquentielle et temporelle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette expérience est la première mettant en place un contexte (un seul Xbee émetteur connecté en série au PC, le deuxième Xbee étant inactif) et nous permettra d'étudier le plus de cas possibles.&lt;br /&gt;
&lt;br /&gt;
Nous avons tout d'abord commencé par un graphe GNURadio simple permettant l'observation du spectre et du signal et la variation de la fréquence d'étude.&lt;br /&gt;
&lt;br /&gt;
Le script python a été réécrit afin que le XBee puisse émettre une chaîne de caractère &amp;quot;HELLO&amp;quot; * 1024. En effet, même si la fréquence de balayage du module HackRF peut être grandement augmentée, il faut éviter d'aller au dessous de 0.01s, finissant par consommer de manière considérable les ressources octroyées par le CPU le cas échéant.&lt;br /&gt;
Le fait d'augmenter la taille de la chaine de caractère permet de mieux synchroniser l'étude en temps réel avec la capture des données.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc émis les données sur le canal 14, soit la fréquence centrale est à 2.420GHz selon la norme Zigbee. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Etude fréquentielle&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L'étude fréquentielle est similaire à celle réalisée auparavant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div center&amp;gt;&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[Fichier:Spectrefreq2.png|thumb|center|750px|Spectre fréquentiel au canal 14]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[Fichier:Spectrogram.png|thumb|center|250px|Spectrogramme]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on peut observer sur l'analyseur de spectre GNURadio que la fréquence centrale est située 2.450GHz. Nous n'avons pas trouvé la raison mais il s'agit sûrement d'un décalage au niveau applicatif.&lt;br /&gt;
&lt;br /&gt;
D'autre part, l'ensemble des fréquences qui dessinent le spectre s'étalent sur une large bande de fréquence. En effet, cette technique d'étalement appelée DSSS (Direct-Sequence Spread Spectrum) utilisé par les modules XBee permet au signal d'être moins sensible aux interférences et aux brouillages. En outre, même si la puissance du spectre dans sa globalité reste la même, la densité spectrale elle diminue considérablement, rendant le signal plus &amp;quot;discret&amp;quot;.&lt;br /&gt;
La différence de puissance entre le lobe principal et les premiers lobes secondaires sont de 30 dB, ce qui est aussi commun au DSSS.&lt;br /&gt;
&lt;br /&gt;
Le spectrogramme témoigne aussi de l'étalement du signal sur un peu plus de 6 MHz (3MHz de par et d'autre de la fréquence centrale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt; Etude temporelle &amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Signal temporel.png|thumb|left|500px|Signal observable centré à 2.450GHz lors de l'émission]]&lt;br /&gt;
&lt;br /&gt;
Le signal ici est séparé en deux composantes car il s'agit d'un signal complexe. Nous avons supposé en premier temps qu'il s'agissait du signal principal décalé de 180°, ce qui n'était pas le cas.&lt;br /&gt;
Après quelques recherches, cette séparation des composantes permet de transmettre deux fois plus de données sur la même bande passante.&lt;br /&gt;
Le signal observable témoigne d'une modulation bien spécifique au XBee. En effet, on peut observer des sauts de phase à différents points, qui correspondent à une modulation par changement de phase (modulation QPSK ou Quadratic Phase-Shift Keying). Ce sont ces sauts de phases qui permettent la transmission des bits.&lt;br /&gt;
Les changements de phase s'il y a se font toutes les µs. En outre, on peut observer un décalage (offset) entre la composante Q et la composante I de µs/2 (propre à la modulation OQPSK).&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé d'enregistrer ces données brutes dans un fichier et nous l'avons étudié avec Audacity, logiciel open-source de son, et donc de signaux ! L'inconvénient avec l'interface graphique QT de GNURadio est son manque de précision lors d'un dézoom sur le signal en temps réel. Audacity permet de palier à celà !&lt;br /&gt;
En outre, on peut voir que les paquets Xbee sont reconnaissables. En effet, le signal témoigne de la taille du paquet XBee.&lt;br /&gt;
&lt;br /&gt;
Le paquet XBee est constitué d'un premier header (header physique) de 6 octets :&lt;br /&gt;
- la séquence de préambule (4 octets) constitué de 32 bits à 0&lt;br /&gt;
&lt;br /&gt;
- l'indice de début du paquet fixé à 0x7A (1 octet)&lt;br /&gt;
&lt;br /&gt;
- la longueur du paquet (1 octet);&lt;br /&gt;
&lt;br /&gt;
d'un header MAC (7 à 27 octets en fonction des informations de l'adresse), d'un bloc FCS de fin de paquet (2 octets) et l'ensemble des données (de 1 à 104 octets).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Signal2.png|thumb|right|400px|On observe graphiquement qu'un paquet est transmis en 3846µs]]&lt;br /&gt;
[[Fichier:PacketXBee.png|400px|thumb|right|Paquet XBee]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Comme dit plus haut, les signaux émis par le XBee connaissent un étalement sur le spectre par DSSS.&lt;br /&gt;
Cet étalement s'effectue en divisant chaque symbole (correspondant à une série de 4 bits) transmis en &amp;lt;B&amp;gt;&amp;lt;I&amp;gt;chips&amp;lt;/I&amp;gt;&amp;lt;/B&amp;gt;.&lt;br /&gt;
Chaque symbole, soit 4 bits, correspond à 32 chips, et donc 32 états binaires (1 octet correspond à 64 chips).&lt;br /&gt;
Dans le cas de la norme ZigBee, la transmission de chacun des chips est synchronisé sur chaque µs (1 chip toutes les µs).&lt;br /&gt;
&lt;br /&gt;
Les signaux reçus par l'antenne HackRF étaient deux sinusoïdes modulées en phase et qui s'étalaient sur une période d'environ 3840µs (3846µs graphiquement mais il y a possibilité d'erreur à l'echelle du µs).&lt;br /&gt;
Sachant qu'un octet correspond à 64µs, on a :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;N_{octets} =\frac{2*T_{signal}}{64*T_{chip}}=\frac{2*3.840*10^{-6}}{64*10^{-6}}=120 octets&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'analogie peut être effectuée entre paquet Ethernet et paquet ZigBee. En effet, la taille limite des données d'un paquet est de 104 octets. La chaîne de caractère n'étant qu'envoyée par paquet, le paquet observé n'est que de 120 octets, ce qui est cohérent avec les caractéristiques du XBee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Hello1024secs.png|thumb|none|Temps de transmission de la chaîne de caractères &amp;quot;HELLO&amp;quot; 1024 fois]] &amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:AudacitySignal2.png|thumb|none|51 Paquets XBee portent la chaîne de caractère &amp;quot;HELLO&amp;quot; 1024 fois]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 8==&lt;br /&gt;
&lt;br /&gt;
L'étude des signaux posait réellement problème de par le fait qu'une grande partie de la capture faite n'était que purement le bruit sans signal (utile plus tard pour l'étude du SNR).&lt;br /&gt;
Prenons l'exemple d'un paquet de 21 octets (un paquet contenant une seule chaîne de caractères HELLO). Le signal s'étalerait en théorie sur 21*64 chips soit 672 chips. Sachant que la modulation est une modulation QPSK, on s'étale sur un temps de 672µs.&lt;br /&gt;
En effet, le Xbee transmet toutes les 100ms.&lt;br /&gt;
Donc qu'une partie du signal nous est utile.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décider d'écrire un script qui nous permettrait d'étudier le signal dans de meilleures conditions, et donc de le filtrer.&lt;br /&gt;
&lt;br /&gt;
Chaque capture de signal effectuée est enregistrée dans un fichier par le biais du bloc fonction &amp;lt;B&amp;gt;&amp;lt;I&amp;gt;File Sink&amp;lt;/I&amp;gt;&amp;lt;/B&amp;gt; du compagnon GNURadio. Néanmoins, les fichiers obtenus sont des fichiers binaires assez lourds (environ 500Mo pour une capture de 3s), ce qui est un réel problème et qui implique le filtrage du signal.&lt;br /&gt;
&lt;br /&gt;
La bibliothèque numpy pour python nous permet en outre directement d'importer les échantillons des signaux, les traduisant du binaire à un format cible (complexe flottant 64 bits) dans un Array par le biais de la fonction:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; f = scipy.fromfile(open(&amp;quot;Nom du fichier&amp;quot;), dtype=scipy.complex64) &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La première solution pour réduire ce signal était d'imposer un threshold directement sur le signal, supérieur au bruit, mais qui conduirait à une perte d'une partie du signal à étudier.&lt;br /&gt;
La deuxième solution qui a été retenue était tout simplement de calculer l'amplitude et la phase du signal et appliquer ce même threshold à l'amplitude.&lt;br /&gt;
&lt;br /&gt;
== Semaine 9 et 10==&lt;br /&gt;
&lt;br /&gt;
A partir de la semaine 10 nous avons procéder aux expériences pour avoir suffisamment de données et en tirer des conclusions.&lt;br /&gt;
&lt;br /&gt;
Lorsqu'on fait une acquisition d'un signal xbee , on peut maintenant via un script traiter cette acquisition et récupérer seulement les parties qui nous intéressent : A savoir la partie réelle et la partie imaginaire, l'amplitude du signal et enfin la phase du signal.&lt;br /&gt;
&lt;br /&gt;
Exemple ci dessous après acquisition + traitement de notre xbee n°2 :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Traitement xbee2.png|thumb|right|redresse=2|Signal Xbee2 post-traitement ]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Constellation xbee2.png|thumb|right|redresse=2|Diagramme de constellation xbee2 après utilisation de LightSignal]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'utilisation du script LightSignal permet de retirer toutes les phases en dehors du signal. Ainsi, on peut caractériser le diagramme de constellation comme un diagramme propre à la modulation QPSK. &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
import scipy&lt;br /&gt;
import numpy&lt;br /&gt;
import sys&lt;br /&gt;
&lt;br /&gt;
def binToComplex64(name):&lt;br /&gt;
    threshold=0.10&lt;br /&gt;
    tmp=scipy.fromfile(open(name+&amp;quot;_PhaseMeg&amp;quot;), dtype=scipy.complex64)&lt;br /&gt;
    tmp2=scipy.fromfile(open(name), dtype=scipy.complex64)&lt;br /&gt;
    &lt;br /&gt;
    f2 = open(name+&amp;quot;_filtre&amp;quot;, &amp;quot;w+&amp;quot;) &lt;br /&gt;
    f = open(name+&amp;quot;_PhaseMeg_filtre&amp;quot;,&amp;quot;w+&amp;quot;)&lt;br /&gt;
    &lt;br /&gt;
    p=1&lt;br /&gt;
    size=tmp.__len__()&lt;br /&gt;
    size2=tmp2.__len__()&lt;br /&gt;
    &lt;br /&gt;
    if size &amp;gt; size2:&lt;br /&gt;
        size=size2&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    ground=False&lt;br /&gt;
    newListSignal=[]&lt;br /&gt;
    newListMagnPh=[]&lt;br /&gt;
    for val in range(0,size): &lt;br /&gt;
        if(val&amp;gt;=(size/100)*p):&lt;br /&gt;
            print(str(p)+&amp;quot; %&amp;quot;)&lt;br /&gt;
            p=p+1&lt;br /&gt;
        if(tmp[val].real&amp;gt;threshold):&lt;br /&gt;
            if(ground==True):&lt;br /&gt;
                for i in range(0,1000):&lt;br /&gt;
                    newListSignal.append(numpy.complex64(0))&lt;br /&gt;
                    newListMagnPh.append(numpy.complex64(0))&lt;br /&gt;
                ground=False&lt;br /&gt;
            newListSignal.append(tmp2[val])&lt;br /&gt;
            newListMagnPh.append(numpy.complex64(tmp[val].real+tmp[val].imag*0.3j))&lt;br /&gt;
        else:&lt;br /&gt;
            ground=True&lt;br /&gt;
    &lt;br /&gt;
    tmp=numpy.asarray(newListMagnPh)&lt;br /&gt;
    tmp.tofile(f)&lt;br /&gt;
    tmp2=numpy.asarray(newListSignal) &lt;br /&gt;
    tmp2.tofile(f2)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    try:&lt;br /&gt;
        binToComplex64(sys.argv[1])&lt;br /&gt;
    except IndexError:&lt;br /&gt;
        print(&amp;quot;Donnez le nom du fichier\n&amp;quot;)&lt;br /&gt;
    except IOError:&lt;br /&gt;
        print(&amp;quot;Le fichier n'existe pas\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__=='__main__':&lt;br /&gt;
    main()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le diagramme de constellation témoigne de nouveau du type de modulation utilisé par le module XBee.&lt;br /&gt;
En effet, on observe quatre points de part et d'autre des axes de quadrature et d'inphase.&lt;br /&gt;
&lt;br /&gt;
==Semaine 11==&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé cette semaine d'étudier, ce qui est selon pour nous, l'une des pistes fondamentales de notre projet, et plus particulièrement de l'étude de nos signaux : le rapport signal bruit.&lt;br /&gt;
&lt;br /&gt;
L'objectif de cette semaine et de celle à venir était, à partir du signal acquis par le hackrf, d'effectuer le calcul du SNR (signal-to-noise ratio) tel que :&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;SNR =\frac{P_{signal}}{P_{bruit}}&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le script python qui nous a permis de communiquer entre les deux shields Xbee se verra amélioré afin de faire plusieurs acquisition des signaux lors de la communication entre les Xbee, effectuer une moyenne statistique, et de même lorsqu'il n'y a pas de communication.&lt;br /&gt;
&lt;br /&gt;
Nous avons essayé d'approcher le SNR directement depuis l'interface de GnuRadio par le biais de l'utilitaire graphique et le langage en bloc, néanmoins nous procéderons à l'étude de ce rapport avec Scilab ou Matlab.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaines supplémentaires==&lt;br /&gt;
&lt;br /&gt;
===Expérience : Temps de calcul du FCS entre le XBee1 et et le XBee2===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 et XBee2 sont alimentés sur 5V VCC par USB (connecté à l'ordinateur)&amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 et XBee2 disposent du firmware : 10EF &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 est d'abord emetteur et le XBee2 est recepteur puis inversement. Aucun paquet ACK n'est renvoyé de la part du recepteur &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On transmet la chaine de caractère HELLO 256 fois toutes les 1 secs&lt;br /&gt;
Les données étant assez conséquentes, le Xbee transmet plusieurs fragments du paquet.&lt;br /&gt;
L'objectif de cette expérience est d'étudier le temps entre chaque fragment d'un paquet.&lt;br /&gt;
L’espace de temps entre chacun des paquets permet de calculer le FCS (frame check sequence) afin de minimiser les erreurs de transmission.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:ChecksumGraphe.png|thumb|left|redresse=2|Les différents temps à mesurer]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Néanmoins, l’étude de ces “temps morts” se voit entravé par le fait que le module HackRF ne permette pas d’obtenir un signal clair sur plus de 5 secondes.&lt;br /&gt;
En outre, pour 5 secondes d’étude et pour une fréquence d’échantillonage de 20MHz (soit un temps Te=5.10e8), on compte 100.000.000 d’échantillons.&lt;br /&gt;
Le CPU lors de la capture était grandement sollicité, ce qui explique le fait que la capture soit compromise.&lt;br /&gt;
Pour régler ce problème, on a écrit un script shell de capture.&lt;br /&gt;
Ce script consiste à:&lt;br /&gt;
&amp;lt;br&amp;gt;- effectuer une capture d’une durée de 1 sec&lt;br /&gt;
&amp;lt;br&amp;gt;- d’enregistrer la capture&lt;br /&gt;
&amp;lt;br&amp;gt;- d’effectuer un traitement de ces paquets par un algorithme python en étudiant le temps entre chacun des fragments. Ce temps sera obtenu en nombre d’échantillons, défini avec un seuil d’acceptation absolu entre 150.000 et 300.000 échantillons (pour bien capturer ces temps intermédiaires et pas les temps provoqués par des signaux parasites ou du bruit), et pour affiner l’étude, on impose un seuil d’erreur de +-10% autour de la moyenne. La moyenne est calculée en continue&lt;br /&gt;
&amp;lt;br&amp;gt;- l’ensemble des valeurs obtenues sont enregistrées dans un fichier&lt;br /&gt;
&amp;lt;br&amp;gt;- on réeffectue la capture …&lt;br /&gt;
&lt;br /&gt;
On répète le processus un certains nombre de fois afin d’obtenir un nombre de valeurs nous permettant de nous conforter sur l'issue de l'expérience (environ 1000 valeurs)&lt;br /&gt;
&lt;br /&gt;
La capture et l'étude de chacun des modules dure une à deux heures.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats :&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans le cas du XBee1 (à gauche) et du XBee2 (à droite), voici les résultats obtenus :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Xbee1Graphe256.png|thumb|left|redresse=2|On peut observer des pics caractéristiques à l'envoi]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBee2Graphe256.png|thumb|left|redresse=2|Les mêmes pics caractéristiques confirment un comportement non-aléatoires du module]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
XBee1 : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 259675,81&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 8369.7417&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 70052576.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
XBee2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 258762.58&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 9165.4097&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 84004736.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les graphes présentent le nombre de répétitions des temps de calcul de fragements.&lt;br /&gt;
&lt;br /&gt;
On peut voir des pics spécifiques à certains points dans les deux expériences. Ces pics sont caractéristiques et au module XBee, et à la chaîne de caractère HELLO. Les deux expériences étant effectuées dans le même contexte, &lt;br /&gt;
&lt;br /&gt;
De même que pour le second Xbee, on retrouve des pics bien distincts à certains points.&lt;br /&gt;
&lt;br /&gt;
En outre, on peut voir que ces pics bien distincts se rapprochent de ceux du premier Xbee.&lt;br /&gt;
Néanmoins, même si la moyenne varie que très peu par rapport aux deux Xbee, la variance est assez différente.&lt;br /&gt;
&lt;br /&gt;
Pour confirmer ces observations, il est peut être nécessaire de répéter la même expérimentation sur un nombre d'échantillons plus grand.&lt;br /&gt;
&lt;br /&gt;
Ainsi, afin de confirmer la conjecture, on décide de faire d’autres captures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En superposant les deux graphes (Xbee1 en rouge et Xbee2 en bleu), on peut voir qu'il y a moins de dispersion dans le cas du XBee1, plus centré sur des valeurs précises, contrairement au Xbee2.&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBee1Xbee2Graphe.png|thumb|left|redresse=2]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour les deux nouveaux échantillons, on a les caractéristiques suivantes :&lt;br /&gt;
&amp;lt;U&amp;gt;Xbee1 sur 1688 échantillons&amp;lt;/U&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 260230.3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 8427.3923&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 71020941&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Xbee2 sur 1722 échantillons&amp;lt;/U&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 259899.41&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 9831.5106&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 96658601&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Conclusion de l'expérience&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
L’hypothèse qui est que la variance des temps &amp;quot;morts&amp;quot; entre chaque fragments de paquet, soit le temps de calcul du FCS pour le signal émis peut être considéré comme “clé” de distinction d’un module Xbee n'est donc pas à négliger. &lt;br /&gt;
&lt;br /&gt;
On peut même considérer que cette étude peut distinguer un module Xbee d'un autre électromagnétiquement parlant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Algorithme python utilisé pour l'étude du signal&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
[Pseudo code ici]&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Expérience : SNR ===&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'archive des scripts python : &lt;br /&gt;
&lt;br /&gt;
[archive.zip]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le rapport&lt;br /&gt;
&lt;br /&gt;
[Rapport.pdf]&lt;/div&gt;</summary>
		<author><name>Amoreau</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=74253</id>
		<title>IMA4 2018/2019 P70</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=74253"/>
				<updated>2019-05-04T09:03:29Z</updated>
		
		<summary type="html">&lt;p&gt;Amoreau : /* Documents Rendus */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;font-size: 30px; width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;Impact du matériel et du logiciel sur le champ électromagnétique&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Projet'''&amp;lt;/ins&amp;gt; : Impact du matériel et du logiciel sur le rayonnement électromagnétique&lt;br /&gt;
&lt;br /&gt;
''Nous proposons d'évaluer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et la consommation électrique.''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Etudiants'''&amp;lt;/ins&amp;gt; : Souheib KHINACHE et Antoine MOREAU&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Encadrants'''&amp;lt;/ins&amp;gt; : Alexandre BOE, Xavier REDON et Thomas VANTROYS&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'internet des objets est un marché en plein essor. La communication entre les différents objets connectés crée un nuage de signaux autour d'eux. Ces derniers sont vus par les utilisateurs comme des boîtes noires : le fonctionnement se fait sans en connaître les composants matériels et logiciels. &lt;br /&gt;
Néanmoins, ces objets, de par leurs propriétés électroniques, créent des fuites électromagnétiques impactant le champ environnant. &lt;br /&gt;
&lt;br /&gt;
Bien qu'ils peuvent porter à débat sur l'impact sur la santé, ces signaux peuvent représenter de réelles sources d'informations sur l'aspect matériel et applicatif de l'objet.&lt;br /&gt;
&lt;br /&gt;
Il serait donc intéressant d'avoir idée générale sur le fonctionnement du système en interprétant les ondes électromagnétiques émises par ce système.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Les principaux objectifs de ce projet seront donc de mesurer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et sur la consommation électrique.&lt;br /&gt;
Pour cela, l'outil potentiel avec lequel nous pourrions travailler serait une sonde de champ électromagnétique afin d'établir des mesures. &lt;br /&gt;
Cependant, nous pourrions concevoir notre propre système de capture et d'interprétation à partir d'une antenne, de filtres de fréquences et d'un microcontrôleur (on commencera par un ATMega328P). Il sera nécessaire de prendre en compte les perturbations issues de notre appareil de mesure et d'en tenir compte.&lt;br /&gt;
&lt;br /&gt;
On effectuera ainsi plusieurs expérimentations sur différents supports d'étude :&lt;br /&gt;
*l'aspect &amp;quot;Hardware&amp;quot; en étudiant différents modèles pour un même type de shield  &lt;br /&gt;
*l'aspect calculatoire du matériel en se basant sur l'impact des microcontrôleurs en fonction du modèle (ATMega328P et ATMega2560)&lt;br /&gt;
*l'aspect &amp;quot;Software&amp;quot;, en étudiant l'impact du logiciel et du firmware d'un même composant (différents firmwares pour un même shield Wi-Fi)&lt;br /&gt;
*l'aspect puissance des composants électroniques de gestion de puissance (ponts, hacheurs, onduleurs...).&lt;br /&gt;
&lt;br /&gt;
L'étude des différentes informations se fera par traitement des signaux électromagnétiques et des spectres. &lt;br /&gt;
Afin de mieux appréhender le problème, il nous est nécessaire de comprendre les phénomènes physiques issus de la notion d'électromagnétisme.&lt;br /&gt;
&lt;br /&gt;
Ces études mèneront à une étape plus complexe : l'interprétation des signaux. En effet, l'un des objectifs de ce projet est de comprendre du mieux possible le fonctionnement d'un système sans y avoir accès directement, et donc dans ce contexte &amp;quot;traduire&amp;quot; un ensemble de signaux électromagnétiques.&lt;br /&gt;
&lt;br /&gt;
On pourra en outre apporter un aspect visuel à l'étude en rajoutant une interface informatique.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
Bien qu'aux yeux de nombreuses personnes le bruit électromagnétique créé par les équipements électroniques du quotidien peut porter à controverse (débats concernant l'impact sur la santé par exemple), il peut être une source d'informations. &lt;br /&gt;
De nos jours, les ondes électromagnétiques restent un vaste champ d'étude, sujettes à de nombreuses thèses et recherches au sein des laboratoires.&lt;br /&gt;
&lt;br /&gt;
On peut prendre l'exemple de [https://www.eurekalert.org/pub_releases/2015-01/giot-rwt010715.php Milos Prvulovic], professeur à l'Institut Technologique de Géorgie, ayant simulé un contexte de cybercafé, dans lequel il place une antenne magnétique, un ordinateur portable cible et un ordinateur &amp;quot;espion&amp;quot;. Il réussit, grâce aux signaux EM émis par l'impulsion de l'appui des touches clavier à capter un message écrit par un ordinateur cible. &lt;br /&gt;
&lt;br /&gt;
Néanmoins, dans le quotidien, l'utilisation des sondes électromagnétiques se fait pour l'étude énergétique d'un système électronique (fuites électromagnétiques anormales, preuves d'une anomalie...) afin de respecter certaines normes législatives. Le code du travail par exemple réglemente et définit des valeurs seuils par le biais des articles R. 4453-3 et R. 4453-4.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
'''NBM-520 de NARDA STS'''&lt;br /&gt;
[[Fichier: NBM_TS.png|thumb|300px|NBM-TS, application des appareils NBM]]&lt;br /&gt;
NARDA STS est une entreprise qui fournit des outils de mesure. Elle met à disposition aux professionnels des sondes électromagnétiques.&lt;br /&gt;
La NBM-520 est un appareil de la franchise, mesurant le champ électrique et magnétique. Elle donne des valeurs précises du champ électromagnétique ambiant sur une large bande. Elle propose différentes sondes modulables permettant une souplesse au niveau de l'étude en fonction des besoins, avec des sondes pouvant étudier des signaux de fréquence de 100kHz à 6GHz ou même de 300kHz à 50GHz (en fonction de la sonde choisie).&lt;br /&gt;
&lt;br /&gt;
En outre, le dispositif peut se connecter en USB sur PC afin d'envoyer les données capturées et d'en faire une étude. Le dispositif propose un logiciel d'étude, NBM-TS, permettant d'observer du champ en fonction du temps, de la fréquence, de la position...&lt;br /&gt;
&lt;br /&gt;
L'équipement est utilisé par l'ANF (l'Agence Nationale des Fréquences, agence gérant l'ensemble des normes autour des radiofréquences), et est donc un gage de qualité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Avantages :''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Large bande de fréquence&lt;br /&gt;
* Matériel solide&lt;br /&gt;
* Application fonctionnelle permettant l'étude et gestion des données&lt;br /&gt;
* Possibilité d'étudier séparément champ électrique et magnétique&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Inconvénients:''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Impossible d'étudier les basses fréquences (appareils sous tension, bobinages...)&lt;br /&gt;
* Prix élevé : à partir de 3100€&lt;br /&gt;
* La cible de ce produit est surtout les professionels&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
'''Une pita.'''&lt;br /&gt;
&lt;br /&gt;
''Comment mon pain à pita vole ta clé RSA ?''&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Pita.jpg|200px|thumb|left|Une pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Des chercheurs israéliens ont découvert un moyen de capturer des clés de cryptage RSA, réputées comme inviolables, par le biais d'une pita... du moins avec un dispositif suffisamment petit pour être caché dans un pain à pita. &lt;br /&gt;
Le dispositif, renommé PITA pour Portable Instrument for Trace Acquisition a la particularité de capturer les ondes radio électromagnétiques émanantes d'un PC, qu'il soit connecté à un réseau ou pas.&lt;br /&gt;
Les différentes opérations du processeur sont identifiées en distinguant les différents modèles de l'activité radio sur le spectre EM.&lt;br /&gt;
&lt;br /&gt;
Bien que la capture des clés RSA a été faite dans des conditions particulières (modification du processeur de l'ordinateur cible), il est néanmoins possible, selon les chercheurs, d'identifier quelle type d'activité est exercée par l'ordinateur ainsi que son état.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PITA.jpg|300px|thumb|right|Un dessous de pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'un des points importants concernant le dispositif est son coût : moins de 300 euros.&lt;br /&gt;
L'appareil dispose :&lt;br /&gt;
* d'un PC portatif (PC-on-a-stick) ''Rikomagic MK802 IV'',&lt;br /&gt;
* d'un recepteur radio SDR ''FUNcube Dongle Pro+''&lt;br /&gt;
* d'une antenne radio&lt;br /&gt;
* d'une batterie&lt;br /&gt;
* d'une antenne WiFi&lt;br /&gt;
* d'une carte MicroSD&lt;br /&gt;
* d'un adapteur d'antenne&lt;br /&gt;
* et d'une '''pita'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le dispositif aurait une portée de 50cm. &lt;br /&gt;
Les chercheurs israéliens ont collaboré avec GNU Private Guard (logiciel de cryptage asymétrique) afin de protéger contre ces attaques les clés de cryptage.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
&lt;br /&gt;
''Scénario 1''&lt;br /&gt;
&lt;br /&gt;
Gérard a toujours le flair pour les bonnes affaires. Il a acheté une centaine de clés WiFi à un prix dérisoire sur AloXpresso afin de faire du profit à la revente. Le vendeur lui garantit que toutes les clés fonctionnent correctement. Gérard veut vérifier. Après vérification, 99 des clés sur 100 fonctionnent comme prévu. Gérard aimerait être sûr du disfonctionnement, mais Gérard n'est pas une pointure en informatique. &lt;br /&gt;
&lt;br /&gt;
Coup de génie ! Il se rappelle qu'il dispose d'un dispositif qui capte les ondes EM et les interprète directement. C'est le moment de tester ça. Il remarque une anomalie sur le spectre.&lt;br /&gt;
Il décide de contacter le revendeur pour lui signaler un disfonctionnement sur l'une des clé. &lt;br /&gt;
Pas de soucis. Le vendeur, étant bon prince, lui envoie une autre clé USB et lui fait une ristourne.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Scénario 2''&lt;br /&gt;
&lt;br /&gt;
La police fait une perquisition chez un individu soupçonné de graves délits. Cela fait plusieurs mois que la brigade criminelle prépare l'intervention, et une fois sur les lieux ils arrêtent le soupçonné malfaiteur.&lt;br /&gt;
Cependant avant de repartir, elle veut faire l'acquisition d'un maximum de preuves. Elle veut alors prendre l'essentiel des objets, dont certains objets éléctroniques connectés de l'individu dont elle pourra extraire les informations qui serviront à le faire tomber.&lt;br /&gt;
&lt;br /&gt;
Par chance, elle dispose d'un petit outil qui scannera les signatures alentours des objets connectés, comme des téléphones cachés, clés USB wifi dissimulées dans le décor etc..&lt;br /&gt;
Et si le suspect avait modifié malignement un objet connecté banal pour l'utiliser autrement à ses fins, la police le découvrirait car elle possède une base de données de toutes les signatures spectrales des objets connectés sur le marché et celle de l'objet modifié ne collerait pas avec celle de la base de données.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
&lt;br /&gt;
'''Comment étudier les signaux malgré les perturbations électromagnétiques ambiants et les faibles signaux des µC ?'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les signaux électromagnétiques des microcontrôleurs ou d'autres composants peuvent être faibles. Il y a une possibilité pour palier à ce problème, c'est de capter les signaux depuis une antenne émettrice que l'on rajoute à l'objet d'étude. &lt;br /&gt;
Nous utiliserons un SDR (Software Defined-Radio) afin de capter les ondes radio et les étudier directement sur PC. Le filtrage s'effectuera ainsi de manière numérique. Plusieurs tests seront effectués pour le même objet à étudier (quand on parle d'objet, on évoque un ensemble de plusieurs composants, comme par exemple une alimentation, un micro-contrôleur et une antenne). Ainsi, de manière statistique, nous pourrons en déduire un pattern récurrent pour chaque expérience en les effectuant dans différents environnements (pourquoi pas une chambre anachoïque). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons &lt;br /&gt;
* Capter le signal émis par un objet connecté le plus précisément possible&lt;br /&gt;
&lt;br /&gt;
* Concevoir nos propres objets connectés tous différents mais basés sur un même modèle&lt;br /&gt;
&lt;br /&gt;
* Interpréter les spectrogrammes, faire une étude statistique des signaux émis par nos différents objets et en tirer des conclusions&lt;br /&gt;
&lt;br /&gt;
* Répertorier dans une base de données les signatures de nos objets , voire de quelques objets disponibles sur le marché&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix logiciel :&lt;br /&gt;
&lt;br /&gt;
- La distribution Linux Pentoo ou Kali pour traiter les signaux avec GNU RADIO (Suite logicielle dédiée à l’implémentation de radios logicielles et de systèmes de traitement du signal).&lt;br /&gt;
&lt;br /&gt;
- FemtoOS pour l'OS des ATMEGA328P et ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix Matériel : &lt;br /&gt;
&lt;br /&gt;
- Plusieurs modules radios émetteurs &lt;br /&gt;
&lt;br /&gt;
- Plusieurs microcontrôleurs ATMEGA328P et un ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
- Des alimentations identiques pour chaque PCB&lt;br /&gt;
&lt;br /&gt;
- Un HackRF pour la réception des signaux&lt;br /&gt;
&lt;br /&gt;
- Une antenne 50 Ohm pour le HackRF [https://www.passion-radio.fr/accessoires-sdr/antenne-ant500-74.html]&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous devons préparer tout le matériel qui servira à faire nos tests. C'est à dire concevoir :&lt;br /&gt;
&lt;br /&gt;
- Un ensemble SDR/PC qui traitera le signal reçu avec GNU RADIO.&lt;br /&gt;
&lt;br /&gt;
- Une multitude de PCB qui seront utilisés comme objets connectés (Sur chacun d'entre eux on trouvera au minimum une antenne radio, un microcontrôleur et une alimentation)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de récupérer une &amp;quot;signature&amp;quot; d'un de nos objets , il faudra faire plus de 50 analyses spectrales pour conclure statistiquement sur une bonne signature qui caractérisera l'objet.&lt;br /&gt;
&lt;br /&gt;
Nous devons donc dans un second temps: &lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques mais qui ont un '''firmware''' différent.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques qui ont pour seule différence le '''microcontrôleur'''.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques dont seul le '''PCB''' diffère.&lt;br /&gt;
&lt;br /&gt;
Grâce à tous ces tests , nous pourrons conclure et voir l'impact qu'à le matériel ou le logiciel sur la signature d'un objet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enfin si les délais nous le permettent, nous pourrons réaliser un software qui cartographiera nos objets connectés dans la pièce grâce à la puissance de la signature reçue (Ce qui devrait être réalisable puisqu'à ce stade nous aurons une base de donnée des signatures).&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
|3&lt;br /&gt;
|8&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Recherches&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|6&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Prise en main de GnuRadio&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Configuration Xbee&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Expériences&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|5&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|4&lt;br /&gt;
|15&lt;br /&gt;
|9&lt;br /&gt;
|8&lt;br /&gt;
|7&lt;br /&gt;
|8&lt;br /&gt;
|8&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
[[Fichier:HackrfOne.jpeg|200px|thumb|right|Le HackRF One]]&lt;br /&gt;
Durant cette semaine, nous avons continué nos recherches notamment sur le moyen de transmission de nos objets connectés. Nous avons confirmé notre choix de notre SDR : Monsieur Boé nous a confirmé que des HackRF seraient disponibles dans les laboratoires et qu'il pourrait nous en prêter un. On disposera donc d'une antenne puissante pour traiter les signaux émis par nos objets communiquants. &lt;br /&gt;
&lt;br /&gt;
Il faudra coupler notre HackRF avec un logiciel appelé GNU RADIO qui est un logiciel très complet ( Pour information : la NASA a utilisé GNU RADIO afin de rétablir le contact avec une sonde spatiale abandonnée ). Afin de faire tourner ce logiciel libre, nous aurons besoin de la distribution Kali Linux, ex Backtrack.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Choix des émetteurs/récepteurs === &lt;br /&gt;
&lt;br /&gt;
Nous avons décidé que nos objets connectés communiqueront dans deux '''bandes de fréquences ISM''', l'une à '''900 MHz''' grâce à des modules Digi Xbee et l'autre à '''2,4 GHz''' par le moyen de modules émetteurs Bluetooth. On rappellera que les Digi Xbee et les émetteurs/récepteurs Bluetooth seront pilotés par des ATMEGA 2560.&lt;br /&gt;
&lt;br /&gt;
Les Xbee ne communiqueront pas entre eux et émettront en continu les mêmes données car ils le peuvent, alors que les émetteurs/récepteurs Bluetooth devront s'échanger des données si on veut pouvoir observer un quelconque signal autour de la fréquence de leurs porteuses. &lt;br /&gt;
&lt;br /&gt;
On voudra observer premièrement, si avec deux objets dans les '''mêmes''' conditions (donc même µc et même émetteur), on peut ou non '''distinguer une différence'''. Ceci est fondamental pour la suite des expériences, puisque si les deux émettent à la même fréquence, on pourra faire varier plusieurs paramètres afin de trouver '''des clés''' (des signes) qui pourraient aider à l'identification du matériel.&lt;br /&gt;
&lt;br /&gt;
Ces clés représentent différents facteurs potentiels d'identification du signal (le rapport signal-bruit en fonction de la distance par exemple...).&lt;br /&gt;
&lt;br /&gt;
''On planifie alors pour la semaine suivante de réussir à faire émettre, en utilisant simplement des breadboards pour commencer, nos Xbee et modules BT et observer quelque chose grâce à notre SDR.''&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration des modules XBee ===&lt;br /&gt;
&lt;br /&gt;
Nous avons configuré deux XBee afin qu'ils puissent communiquer entre eux : &lt;br /&gt;
&lt;br /&gt;
Les modules XBee ont été montés sur des platines d'interface USB/série de manière à ce qu'on puisse les paramétrer via le programme de contrôle ''minicom''. &lt;br /&gt;
&lt;br /&gt;
Dans le doute, on supposera que les XBee communiquent à 9600 Baud. On exécute la commande suivante : &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;minicom -b 9600 -D /dev/ttyUSB0&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
On active l'echo local dans minicom, afin de pouvoir observer ce qui a été envoyé par liaison série au XBee ('''CTRL+A''' puis '''E''').&lt;br /&gt;
&lt;br /&gt;
Pour commencer le paramètrage il faut taper ''' +++ ''' rapidement. Le XBee nous répond OK, cela veut dire que nous sommes dans le mode configuration et que nous pouvons utiliser les commandes '''AT'''. (Redirection vers la liste des commandes AT XBee [https://cdn.sparkfun.com/assets/resources/2/9/22AT_Commands.pdf]).&lt;br /&gt;
&lt;br /&gt;
Comme nos XBee ont été utilisés auparavant, il a fallu les restaurer à l'état usine avec la commande '''ATRE'''.&lt;br /&gt;
&lt;br /&gt;
Si on souhaite que des XBee puissent s'envoyer des données il faut qu'ils soient sur le même canal (commande '''ATCH''') et aient le même PAN ID (commande '''ATID'''). Notre PAN ID sera '''BEE6''' et le canal sera celui par défaut '''C'''.&lt;br /&gt;
&lt;br /&gt;
Ensuite il faut leur donner une adresse de destination ('''ATDH''' &amp;amp; '''ATDL''') qui sera l'adresse broadcast, pour ce faire on entre &lt;br /&gt;
 ATDH=0000&lt;br /&gt;
 ATDL=FFFF&lt;br /&gt;
&lt;br /&gt;
Enfin '''ATMY''' représente l'ID du XBee, notre premier XBee aura comme ID 5000 et le second 5001.&lt;br /&gt;
&lt;br /&gt;
N'oublions pas de sauvegarder les paramètres avec '''ATWR'''.&lt;br /&gt;
&lt;br /&gt;
On vérifie que tout a bien été pris en compte :&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;&lt;br /&gt;
+++OK&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATID&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
BEE6&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
C&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
0&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDL&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
FFFF&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATMY&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
5000&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCN&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Puis on fait de même avec le deuxième XBee (ID 5001).&lt;br /&gt;
&lt;br /&gt;
Voilà, lorsque on envoie des caractères par liaison série sur 5000, la LED '''Tx''' de 5000 s'allume et la Led '''Rx''' de 5001 s'allume elle aussi. Cela signifie que l'envoi de donnée par onde radio s'effectue correctement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que les XBee émettent et reçoivent, on peut commencer les mesures avec notre SDR. Mais avant cela il va falloir bien se familiariser avec le logiciel GNU RADIO qui est assez difficile à prendre en main.&lt;br /&gt;
&lt;br /&gt;
=== Première prise en main du logiciel GNURADIO ===&lt;br /&gt;
&lt;br /&gt;
Installation de GNU radio avec les fonctions + drivers pour HackRF : &lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install gqrx-sdr gnuradio gr-osmosdr hackrf &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le bloc Osmocom Source sert de &amp;quot;passerelle&amp;quot; entre le logiciel et la SDR, il permet de transmettre les informations récupérées par le HackRF afin qu'on puisse les traiter avec d'autres bloc de fonctions.&lt;br /&gt;
&lt;br /&gt;
Si on veut pouvoir récuperer les données il faut passer l'argument ''hackrf=0'' dans la box périphérique du bloc Osmocom.&lt;br /&gt;
&lt;br /&gt;
Ci-dessous on peut voir le spectre environnant entre 2.44GHz et 2.460GHz grâce au bloc WX GUI FFT Sink.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ScreenGnuRadio.png|Interface de GNURadio]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous a permis d'effectuer notre première expérience. L'utilisation des deux Xbees nous a permis d'observer l'impact des Xbee sur le champ électromagéntique environnant.&lt;br /&gt;
&lt;br /&gt;
Si on analyse le spectre environnant grâce au module FFT de GNU Radio, lorsque les Xbee communiquent entre eux, on peut apercevoir un pic caractéristique propre.&lt;br /&gt;
En effet, lors de l'emission d'un message sur le port série, on a un pic qui se dégage du spectre d'amplitude -20dBm. Ce pic est caractéristique au canal de communication choisi et configuré sur le Xbee.&lt;br /&gt;
Néanmoins, le signal est perturbé par le bruit environnant. &lt;br /&gt;
L'expérience étant effectuée au sein de l'école, les signaux Wi-Fi perturberont l'étude.&lt;br /&gt;
Il faut noter que la norme IEEE 802.11 impose au Wi-Fi l'utilisation d'une bande passante s'étalant de 2.4 GHz à 2.5 GHz.&lt;br /&gt;
&lt;br /&gt;
La bande passante des modules Zigbee se décomposent en 16 canaux, allant de 2400 MHz à 2480 MHz par pas de 5 MHz.&lt;br /&gt;
&lt;br /&gt;
Le canal ici utilisé est le canal 13 (3ème canal) de fréquence 2415 MHz.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[Fichier:Channel135001.png|thumb|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Fichier:channel135000.png|thumb|none|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBeeCh13.png|Spectre de l'environnement autour du XBee|thumb|none|400 px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBeeCh13SND.png|Lors de l'envoi de données au XBee voisin|thumb|none|400 px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut observer un pic de puissance lors de l'envoi d'une donnée en série à la fréquence 2.415 GHz.&lt;br /&gt;
Il nous est maintenant nécessaire d'analyser de plus près les signaux et leurs fréquence centrale dans la bande perçue au dessus de -20dB.&lt;br /&gt;
&lt;br /&gt;
On réeffectuera une expérience en zone isolée des signaux parasites.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous avons principalement fait des recherches dans le but de mieux comprendre les signaux émis par le Xbee.&lt;br /&gt;
&lt;br /&gt;
En somme, nous étions confrontés à de nombreuses interrogations. Le fonctionnement du Xbee étant assez simple et la sécurité du protocole Zigbee étant moindre, y a t-il possibilité de démoduler le signal émis afin de développer nos études ?&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
[[Fichier:Switchchannel pyscript.PNG|upright=0.8|thumb|right|Script Python]]&lt;br /&gt;
&lt;br /&gt;
Après réflexion et consultation de nos encadrants, nous nous sommes rendu compte que la démodulation prévue lors de la semaine 4 n'aiderait pas à répondre à la problématique de notre sujet !  &lt;br /&gt;
&lt;br /&gt;
Afin de mieux visualiser les signaux des Xbee , on décide d'automatiser le processus d'envoi sur le port série des données vers le Xbee. C'est à dire concevoir un programme Python qui automatisera l'envoi de données et le changement de channel à intervalle de temps régulier (Changement toutes les 10 secondes). &lt;br /&gt;
&lt;br /&gt;
L'utilisation de Minicom '''n'était pas du tout la meilleure solution''' pour faire émettre les Xbee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Après quelques essais, on remarque que lorsque le Xbee émet sur le channel 13, il émet à environ 2,445GHz au lieu d'émettre à 2,415GHz soit une différence de 30MHz : Ceci n'est pas important, car ce que l'on souhaite remarquer c'est un éventuel décalage de la fréquence centrale entre deux Xbee différents. Si les deux Xbee n'ont pas la même frequence centrale on pourra conclure que la '''fréquence centrale''' de la porteuse du Xbee n'est pas '''une des clés''' permettant d''''identifier''' cet émetteur/récepteur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaines 6 et 7==&lt;br /&gt;
&lt;br /&gt;
Afin de mieux cerner le comportement électromagnétique des modules XBee, il nous est nécessaire de comprendre leur fonctionnement et le protocole Zigbee.&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous avons cherché à souligner le parallélisme entre étude fréquentielle par le spectre et étude temporelle du signal.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PlancheXPtest.jpg|thumb|right|Planche prototype]]&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous avons paramétré la fréquence centrale de capture du HackRF. En effet, bien que le HackRF dispose d'une large bande passante, afin de se focaliser sur la porteuse, il est indispensable de configurer le HackRF en conséquence.&lt;br /&gt;
En second lieu, pour éviter une variation du RSSI (Received Signal Strength Indication) et de la puissance du signal, nous devions mettre en place une prototype de &amp;quot;planche expérimentale&amp;quot; sur laquelle devaient être fixés nos différents modules (l'antenne de reception et les Xbees).&lt;br /&gt;
&lt;br /&gt;
La position des antennes les unes par rapport aux autres est fondamentale. Afin d'optimiser la reception, les antennes doivent être parallèles.&lt;br /&gt;
&lt;br /&gt;
Chaque Xbee est identifié par un chiffre (1 ou 2). En effet, l'attribution de ces chiffres sera définitive pour ne pas perturber la cohérence des expériences. &lt;br /&gt;
Leur position est aussi fondamentale. Ainsi, en fonction que le Xbee soit emetteur ou récepteur, il sera disposé différement sur la planche.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Expérience : Le XBee 1 émetteur directement connecté en série au PC===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:GrapheGNURadio01.png|thumb|left|150px|Schéma simple d'étude fréquentielle et temporelle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette expérience est la première mettant en place un contexte (un seul Xbee émetteur connecté en série au PC, le deuxième Xbee étant inactif) et nous permettra d'étudier le plus de cas possibles.&lt;br /&gt;
&lt;br /&gt;
Nous avons tout d'abord commencé par un graphe GNURadio simple permettant l'observation du spectre et du signal et la variation de la fréquence d'étude.&lt;br /&gt;
&lt;br /&gt;
Le script python a été réécrit afin que le XBee puisse émettre une chaîne de caractère &amp;quot;HELLO&amp;quot; * 1024. En effet, même si la fréquence de balayage du module HackRF peut être grandement augmentée, il faut éviter d'aller au dessous de 0.01s, finissant par consommer de manière considérable les ressources octroyées par le CPU le cas échéant.&lt;br /&gt;
Le fait d'augmenter la taille de la chaine de caractère permet de mieux synchroniser l'étude en temps réel avec la capture des données.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc émis les données sur le canal 14, soit la fréquence centrale est à 2.420GHz selon la norme Zigbee. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Etude fréquentielle&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L'étude fréquentielle est similaire à celle réalisée auparavant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div center&amp;gt;&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[Fichier:Spectrefreq2.png|thumb|center|750px|Spectre fréquentiel au canal 14]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[Fichier:Spectrogram.png|thumb|center|250px|Spectrogramme]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on peut observer sur l'analyseur de spectre GNURadio que la fréquence centrale est située 2.450GHz. Nous n'avons pas trouvé la raison mais il s'agit sûrement d'un décalage au niveau applicatif.&lt;br /&gt;
&lt;br /&gt;
D'autre part, l'ensemble des fréquences qui dessinent le spectre s'étalent sur une large bande de fréquence. En effet, cette technique d'étalement appelée DSSS (Direct-Sequence Spread Spectrum) utilisé par les modules XBee permet au signal d'être moins sensible aux interférences et aux brouillages. En outre, même si la puissance du spectre dans sa globalité reste la même, la densité spectrale elle diminue considérablement, rendant le signal plus &amp;quot;discret&amp;quot;.&lt;br /&gt;
La différence de puissance entre le lobe principal et les premiers lobes secondaires sont de 30 dB, ce qui est aussi commun au DSSS.&lt;br /&gt;
&lt;br /&gt;
Le spectrogramme témoigne aussi de l'étalement du signal sur un peu plus de 6 MHz (3MHz de par et d'autre de la fréquence centrale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt; Etude temporelle &amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Signal temporel.png|thumb|left|500px|Signal observable centré à 2.450GHz lors de l'émission]]&lt;br /&gt;
&lt;br /&gt;
Le signal ici est séparé en deux composantes car il s'agit d'un signal complexe. Nous avons supposé en premier temps qu'il s'agissait du signal principal décalé de 180°, ce qui n'était pas le cas.&lt;br /&gt;
Après quelques recherches, cette séparation des composantes permet de transmettre deux fois plus de données sur la même bande passante.&lt;br /&gt;
Le signal observable témoigne d'une modulation bien spécifique au XBee. En effet, on peut observer des sauts de phase à différents points, qui correspondent à une modulation par changement de phase (modulation QPSK ou Quadratic Phase-Shift Keying). Ce sont ces sauts de phases qui permettent la transmission des bits.&lt;br /&gt;
Les changements de phase s'il y a se font toutes les µs. En outre, on peut observer un décalage (offset) entre la composante Q et la composante I de µs/2 (propre à la modulation OQPSK).&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé d'enregistrer ces données brutes dans un fichier et nous l'avons étudié avec Audacity, logiciel open-source de son, et donc de signaux ! L'inconvénient avec l'interface graphique QT de GNURadio est son manque de précision lors d'un dézoom sur le signal en temps réel. Audacity permet de palier à celà !&lt;br /&gt;
En outre, on peut voir que les paquets Xbee sont reconnaissables. En effet, le signal témoigne de la taille du paquet XBee.&lt;br /&gt;
&lt;br /&gt;
Le paquet XBee est constitué d'un premier header (header physique) de 6 octets :&lt;br /&gt;
- la séquence de préambule (4 octets) constitué de 32 bits à 0&lt;br /&gt;
&lt;br /&gt;
- l'indice de début du paquet fixé à 0x7A (1 octet)&lt;br /&gt;
&lt;br /&gt;
- la longueur du paquet (1 octet);&lt;br /&gt;
&lt;br /&gt;
d'un header MAC (7 à 27 octets en fonction des informations de l'adresse), d'un bloc FCS de fin de paquet (2 octets) et l'ensemble des données (de 1 à 104 octets).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Signal2.png|thumb|right|400px|On observe graphiquement qu'un paquet est transmis en 3846µs]]&lt;br /&gt;
[[Fichier:PacketXBee.png|400px|thumb|right|Paquet XBee]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Comme dit plus haut, les signaux émis par le XBee connaissent un étalement sur le spectre par DSSS.&lt;br /&gt;
Cet étalement s'effectue en divisant chaque symbole (correspondant à une série de 4 bits) transmis en &amp;lt;B&amp;gt;&amp;lt;I&amp;gt;chips&amp;lt;/I&amp;gt;&amp;lt;/B&amp;gt;.&lt;br /&gt;
Chaque symbole, soit 4 bits, correspond à 32 chips, et donc 32 états binaires (1 octet correspond à 64 chips).&lt;br /&gt;
Dans le cas de la norme ZigBee, la transmission de chacun des chips est synchronisé sur chaque µs (1 chip toutes les µs).&lt;br /&gt;
&lt;br /&gt;
Les signaux reçus par l'antenne HackRF étaient deux sinusoïdes modulées en phase et qui s'étalaient sur une période d'environ 3840µs (3846µs graphiquement mais il y a possibilité d'erreur à l'echelle du µs).&lt;br /&gt;
Sachant qu'un octet correspond à 64µs, on a :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;N_{octets} =\frac{2*T_{signal}}{64*T_{chip}}=\frac{2*3.840*10^{-6}}{64*10^{-6}}=120 octets&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'analogie peut être effectuée entre paquet Ethernet et paquet ZigBee. En effet, la taille limite des données d'un paquet est de 104 octets. La chaîne de caractère n'étant qu'envoyée par paquet, le paquet observé n'est que de 120 octets, ce qui est cohérent avec les caractéristiques du XBee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Hello1024secs.png|thumb|none|Temps de transmission de la chaîne de caractères &amp;quot;HELLO&amp;quot; 1024 fois]] &amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:AudacitySignal2.png|thumb|none|51 Paquets XBee portent la chaîne de caractère &amp;quot;HELLO&amp;quot; 1024 fois]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 8==&lt;br /&gt;
&lt;br /&gt;
L'étude des signaux posait réellement problème de par le fait qu'une grande partie de la capture faite n'était que purement le bruit sans signal (utile plus tard pour l'étude du SNR).&lt;br /&gt;
Prenons l'exemple d'un paquet de 21 octets (un paquet contenant une seule chaîne de caractères HELLO). Le signal s'étalerait en théorie sur 21*64 chips soit 672 chips. Sachant que la modulation est une modulation QPSK, on s'étale sur un temps de 672µs.&lt;br /&gt;
En effet, le Xbee transmet toutes les 100ms.&lt;br /&gt;
Donc qu'une partie du signal nous est utile.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décider d'écrire un script qui nous permettrait d'étudier le signal dans de meilleures conditions, et donc de le filtrer.&lt;br /&gt;
&lt;br /&gt;
Chaque capture de signal effectuée est enregistrée dans un fichier par le biais du bloc fonction &amp;lt;B&amp;gt;&amp;lt;I&amp;gt;File Sink&amp;lt;/I&amp;gt;&amp;lt;/B&amp;gt; du compagnon GNURadio. Néanmoins, les fichiers obtenus sont des fichiers binaires assez lourds (environ 500Mo pour une capture de 3s), ce qui est un réel problème et qui implique le filtrage du signal.&lt;br /&gt;
&lt;br /&gt;
La bibliothèque numpy pour python nous permet en outre directement d'importer les échantillons des signaux, les traduisant du binaire à un format cible (complexe flottant 64 bits) dans un Array par le biais de la fonction:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; f = scipy.fromfile(open(&amp;quot;Nom du fichier&amp;quot;), dtype=scipy.complex64) &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La première solution pour réduire ce signal était d'imposer un threshold directement sur le signal, supérieur au bruit, mais qui conduirait à une perte d'une partie du signal à étudier.&lt;br /&gt;
La deuxième solution qui a été retenue était tout simplement de calculer l'amplitude et la phase du signal et appliquer ce même threshold à l'amplitude.&lt;br /&gt;
&lt;br /&gt;
== Semaine 9 et 10==&lt;br /&gt;
&lt;br /&gt;
A partir de la semaine 10 nous avons procéder aux expériences pour avoir suffisamment de données et en tirer des conclusions.&lt;br /&gt;
&lt;br /&gt;
Lorsqu'on fait une acquisition d'un signal xbee , on peut maintenant via un script traiter cette acquisition et récupérer seulement les parties qui nous intéressent : A savoir la partie réelle et la partie imaginaire, l'amplitude du signal et enfin la phase du signal.&lt;br /&gt;
&lt;br /&gt;
Exemple ci dessous après acquisition + traitement de notre xbee n°2 :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Traitement xbee2.png|thumb|right|redresse=2|Signal Xbee2 post-traitement ]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Constellation xbee2.png|thumb|right|redresse=2|Diagramme de constellation xbee2 après utilisation de LightSignal]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'utilisation du script LightSignal permet de retirer toutes les phases en dehors du signal. Ainsi, on peut caractériser le diagramme de constellation comme un diagramme propre à la modulation QPSK. &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
import scipy&lt;br /&gt;
import numpy&lt;br /&gt;
import sys&lt;br /&gt;
&lt;br /&gt;
def binToComplex64(name):&lt;br /&gt;
    threshold=0.10&lt;br /&gt;
    tmp=scipy.fromfile(open(name+&amp;quot;_PhaseMeg&amp;quot;), dtype=scipy.complex64)&lt;br /&gt;
    tmp2=scipy.fromfile(open(name), dtype=scipy.complex64)&lt;br /&gt;
    &lt;br /&gt;
    f2 = open(name+&amp;quot;_filtre&amp;quot;, &amp;quot;w+&amp;quot;) &lt;br /&gt;
    f = open(name+&amp;quot;_PhaseMeg_filtre&amp;quot;,&amp;quot;w+&amp;quot;)&lt;br /&gt;
    &lt;br /&gt;
    p=1&lt;br /&gt;
    size=tmp.__len__()&lt;br /&gt;
    size2=tmp2.__len__()&lt;br /&gt;
    &lt;br /&gt;
    if size &amp;gt; size2:&lt;br /&gt;
        size=size2&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    ground=False&lt;br /&gt;
    newListSignal=[]&lt;br /&gt;
    newListMagnPh=[]&lt;br /&gt;
    for val in range(0,size): &lt;br /&gt;
        if(val&amp;gt;=(size/100)*p):&lt;br /&gt;
            print(str(p)+&amp;quot; %&amp;quot;)&lt;br /&gt;
            p=p+1&lt;br /&gt;
        if(tmp[val].real&amp;gt;threshold):&lt;br /&gt;
            if(ground==True):&lt;br /&gt;
                for i in range(0,1000):&lt;br /&gt;
                    newListSignal.append(numpy.complex64(0))&lt;br /&gt;
                    newListMagnPh.append(numpy.complex64(0))&lt;br /&gt;
                ground=False&lt;br /&gt;
            newListSignal.append(tmp2[val])&lt;br /&gt;
            newListMagnPh.append(numpy.complex64(tmp[val].real+tmp[val].imag*0.3j))&lt;br /&gt;
        else:&lt;br /&gt;
            ground=True&lt;br /&gt;
    &lt;br /&gt;
    tmp=numpy.asarray(newListMagnPh)&lt;br /&gt;
    tmp.tofile(f)&lt;br /&gt;
    tmp2=numpy.asarray(newListSignal) &lt;br /&gt;
    tmp2.tofile(f2)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    try:&lt;br /&gt;
        binToComplex64(sys.argv[1])&lt;br /&gt;
    except IndexError:&lt;br /&gt;
        print(&amp;quot;Donnez le nom du fichier\n&amp;quot;)&lt;br /&gt;
    except IOError:&lt;br /&gt;
        print(&amp;quot;Le fichier n'existe pas\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__=='__main__':&lt;br /&gt;
    main()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le diagramme de constellation témoigne de nouveau du type de modulation utilisé par le module XBee.&lt;br /&gt;
En effet, on observe quatre points de part et d'autre des axes de quadrature et d'inphase.&lt;br /&gt;
&lt;br /&gt;
==Semaine 11==&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé cette semaine d'étudier, ce qui est selon pour nous, l'une des pistes fondamentales de notre projet, et plus particulièrement de l'étude de nos signaux : le rapport signal bruit.&lt;br /&gt;
&lt;br /&gt;
L'objectif de cette semaine et de celle à venir était, à partir du signal acquis par le hackrf, d'effectuer le calcul du SNR (signal-to-noise ratio) tel que :&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;SNR =\frac{P_{signal}}{P_{bruit}}&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le script python qui nous a permis de communiquer entre les deux shields Xbee se verra amélioré afin de faire plusieurs acquisition des signaux lors de la communication entre les Xbee, effectuer une moyenne statistique, et de même lorsqu'il n'y a pas de communication.&lt;br /&gt;
&lt;br /&gt;
Nous avons essayé d'approcher le SNR directement depuis l'interface de GnuRadio par le biais de l'utilitaire graphique et le langage en bloc, néanmoins nous procéderons à l'étude de ce rapport avec Scilab ou Matlab.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaines supplémentaires==&lt;br /&gt;
&lt;br /&gt;
===Expérience : Temps de calcul du FCS entre le XBee1 et et le XBee2===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 et XBee2 sont alimentés sur 5V VCC par USB (connecté à l'ordinateur)&amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 et XBee2 disposent du firmware : 10EF &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 est d'abord emetteur et le XBee2 est recepteur puis inversement. Aucun paquet ACK n'est renvoyé de la part du recepteur &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On transmet la chaine de caractère HELLO 256 fois toutes les 1 secs&lt;br /&gt;
Les données étant assez conséquentes, le Xbee transmet plusieurs fragments du paquet.&lt;br /&gt;
L'objectif de cette expérience est d'étudier le temps entre chaque fragment d'un paquet.&lt;br /&gt;
L’espace de temps entre chacun des paquets permet de calculer le FCS (frame check sequence) afin de minimiser les erreurs de transmission.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:ChecksumGraphe.png|thumb|left|redresse=2|Les différents temps à mesurer]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Néanmoins, l’étude de ces “temps morts” se voit entravé par le fait que le module HackRF ne permette pas d’obtenir un signal clair sur plus de 5 secondes.&lt;br /&gt;
En outre, pour 5 secondes d’étude et pour une fréquence d’échantillonage de 20MHz (soit un temps Te=5.10e8), on compte 100.000.000 d’échantillons.&lt;br /&gt;
Le CPU lors de la capture était grandement sollicité, ce qui explique le fait que la capture soit compromise.&lt;br /&gt;
Pour régler ce problème, on a écrit un script shell de capture.&lt;br /&gt;
Ce script consiste à:&lt;br /&gt;
&amp;lt;br&amp;gt;- effectuer une capture d’une durée de 1 sec&lt;br /&gt;
&amp;lt;br&amp;gt;- d’enregistrer la capture&lt;br /&gt;
&amp;lt;br&amp;gt;- d’effectuer un traitement de ces paquets par un algorithme python en étudiant le temps entre chacun des fragments. Ce temps sera obtenu en nombre d’échantillons, défini avec un seuil d’acceptation absolu entre 150.000 et 300.000 échantillons (pour bien capturer ces temps intermédiaires et pas les temps provoqués par des signaux parasites ou du bruit), et pour affiner l’étude, on impose un seuil d’erreur de +-10% autour de la moyenne. La moyenne est calculée en continue&lt;br /&gt;
&amp;lt;br&amp;gt;- l’ensemble des valeurs obtenues sont enregistrées dans un fichier&lt;br /&gt;
&amp;lt;br&amp;gt;- on réeffectue la capture …&lt;br /&gt;
&lt;br /&gt;
On répète le processus un certains nombre de fois afin d’obtenir un nombre de valeurs nous permettant de nous conforter sur l'issue de l'expérience (environ 1000 valeurs)&lt;br /&gt;
&lt;br /&gt;
La capture et l'étude de chacun des modules dure une à deux heures.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats :&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans le cas du XBee1 (à gauche) et du XBee2 (à droite), voici les résultats obtenus :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Xbee1Graphe256.png|thumb|left|redresse=2|On peut observer des pics caractéristiques à l'envoi]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBee2Graphe256.png|thumb|left|redresse=2|Les mêmes pics caractéristiques confirment un comportement non-aléatoires du module]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
XBee1 : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 259675,81&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 8369.7417&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 70052576.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
XBee2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 258762.58&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 9165.4097&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 84004736.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les graphes présentent le nombre de répétitions des temps de calcul de fragements.&lt;br /&gt;
&lt;br /&gt;
On peut voir des pics spécifiques à certains points dans les deux expériences. Ces pics sont caractéristiques et au module XBee, et à la chaîne de caractère HELLO. Les deux expériences étant effectuées dans le même contexte, &lt;br /&gt;
&lt;br /&gt;
De même que pour le second Xbee, on retrouve des pics bien distincts à certains points.&lt;br /&gt;
&lt;br /&gt;
En outre, on peut voir que ces pics bien distincts se rapprochent de ceux du premier Xbee.&lt;br /&gt;
Néanmoins, même si la moyenne varie que très peu par rapport aux deux Xbee, la variance est assez différente.&lt;br /&gt;
&lt;br /&gt;
Pour confirmer ces observations, il est peut être nécessaire de répéter la même expérimentation sur un nombre d'échantillons plus grand.&lt;br /&gt;
&lt;br /&gt;
Ainsi, afin de confirmer la conjecture, on décide de faire d’autres captures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En superposant les deux graphes (Xbee1 en rouge et Xbee2 en bleu), on peut voir qu'il y a moins de dispersion dans le cas du XBee1, plus centré sur des valeurs précises, contrairement au Xbee2.&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBee1Xbee2Graphe.png|thumb|left|redresse=2]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour les deux nouveaux échantillons, on a les caractéristiques suivantes :&lt;br /&gt;
&amp;lt;U&amp;gt;Xbee1 sur 1688 échantillons&amp;lt;/U&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 260230.3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 8427.3923&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 71020941&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Xbee2 sur 1722 échantillons&amp;lt;/U&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 259899.41&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 9831.5106&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 96658601&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Conclusion de l'expérience&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
L’hypothèse qui est que la variance des temps &amp;quot;morts&amp;quot; entre chaque fragments de paquet, soit le temps de calcul du FCS pour le signal émis peut être considéré comme “clé” de distinction d’un module Xbee n'est donc pas à négliger. &lt;br /&gt;
&lt;br /&gt;
On peut même considérer que cette étude peut distinguer un module Xbee d'un autre électromagnétiquement parlant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Algorithme python utilisé pour l'étude du signal&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
[Pseudo code ici]&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'archive des scripts python : &lt;br /&gt;
&lt;br /&gt;
[archive.zip]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le rapport&lt;br /&gt;
&lt;br /&gt;
[Rapport.pdf]&lt;/div&gt;</summary>
		<author><name>Amoreau</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=74252</id>
		<title>IMA4 2018/2019 P70</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=74252"/>
				<updated>2019-05-04T08:45:19Z</updated>
		
		<summary type="html">&lt;p&gt;Amoreau : /* Semaines supplémentaires */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;font-size: 30px; width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;Impact du matériel et du logiciel sur le champ électromagnétique&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Projet'''&amp;lt;/ins&amp;gt; : Impact du matériel et du logiciel sur le rayonnement électromagnétique&lt;br /&gt;
&lt;br /&gt;
''Nous proposons d'évaluer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et la consommation électrique.''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Etudiants'''&amp;lt;/ins&amp;gt; : Souheib KHINACHE et Antoine MOREAU&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Encadrants'''&amp;lt;/ins&amp;gt; : Alexandre BOE, Xavier REDON et Thomas VANTROYS&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'internet des objets est un marché en plein essor. La communication entre les différents objets connectés crée un nuage de signaux autour d'eux. Ces derniers sont vus par les utilisateurs comme des boîtes noires : le fonctionnement se fait sans en connaître les composants matériels et logiciels. &lt;br /&gt;
Néanmoins, ces objets, de par leurs propriétés électroniques, créent des fuites électromagnétiques impactant le champ environnant. &lt;br /&gt;
&lt;br /&gt;
Bien qu'ils peuvent porter à débat sur l'impact sur la santé, ces signaux peuvent représenter de réelles sources d'informations sur l'aspect matériel et applicatif de l'objet.&lt;br /&gt;
&lt;br /&gt;
Il serait donc intéressant d'avoir idée générale sur le fonctionnement du système en interprétant les ondes électromagnétiques émises par ce système.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Les principaux objectifs de ce projet seront donc de mesurer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et sur la consommation électrique.&lt;br /&gt;
Pour cela, l'outil potentiel avec lequel nous pourrions travailler serait une sonde de champ électromagnétique afin d'établir des mesures. &lt;br /&gt;
Cependant, nous pourrions concevoir notre propre système de capture et d'interprétation à partir d'une antenne, de filtres de fréquences et d'un microcontrôleur (on commencera par un ATMega328P). Il sera nécessaire de prendre en compte les perturbations issues de notre appareil de mesure et d'en tenir compte.&lt;br /&gt;
&lt;br /&gt;
On effectuera ainsi plusieurs expérimentations sur différents supports d'étude :&lt;br /&gt;
*l'aspect &amp;quot;Hardware&amp;quot; en étudiant différents modèles pour un même type de shield  &lt;br /&gt;
*l'aspect calculatoire du matériel en se basant sur l'impact des microcontrôleurs en fonction du modèle (ATMega328P et ATMega2560)&lt;br /&gt;
*l'aspect &amp;quot;Software&amp;quot;, en étudiant l'impact du logiciel et du firmware d'un même composant (différents firmwares pour un même shield Wi-Fi)&lt;br /&gt;
*l'aspect puissance des composants électroniques de gestion de puissance (ponts, hacheurs, onduleurs...).&lt;br /&gt;
&lt;br /&gt;
L'étude des différentes informations se fera par traitement des signaux électromagnétiques et des spectres. &lt;br /&gt;
Afin de mieux appréhender le problème, il nous est nécessaire de comprendre les phénomènes physiques issus de la notion d'électromagnétisme.&lt;br /&gt;
&lt;br /&gt;
Ces études mèneront à une étape plus complexe : l'interprétation des signaux. En effet, l'un des objectifs de ce projet est de comprendre du mieux possible le fonctionnement d'un système sans y avoir accès directement, et donc dans ce contexte &amp;quot;traduire&amp;quot; un ensemble de signaux électromagnétiques.&lt;br /&gt;
&lt;br /&gt;
On pourra en outre apporter un aspect visuel à l'étude en rajoutant une interface informatique.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
Bien qu'aux yeux de nombreuses personnes le bruit électromagnétique créé par les équipements électroniques du quotidien peut porter à controverse (débats concernant l'impact sur la santé par exemple), il peut être une source d'informations. &lt;br /&gt;
De nos jours, les ondes électromagnétiques restent un vaste champ d'étude, sujettes à de nombreuses thèses et recherches au sein des laboratoires.&lt;br /&gt;
&lt;br /&gt;
On peut prendre l'exemple de [https://www.eurekalert.org/pub_releases/2015-01/giot-rwt010715.php Milos Prvulovic], professeur à l'Institut Technologique de Géorgie, ayant simulé un contexte de cybercafé, dans lequel il place une antenne magnétique, un ordinateur portable cible et un ordinateur &amp;quot;espion&amp;quot;. Il réussit, grâce aux signaux EM émis par l'impulsion de l'appui des touches clavier à capter un message écrit par un ordinateur cible. &lt;br /&gt;
&lt;br /&gt;
Néanmoins, dans le quotidien, l'utilisation des sondes électromagnétiques se fait pour l'étude énergétique d'un système électronique (fuites électromagnétiques anormales, preuves d'une anomalie...) afin de respecter certaines normes législatives. Le code du travail par exemple réglemente et définit des valeurs seuils par le biais des articles R. 4453-3 et R. 4453-4.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
'''NBM-520 de NARDA STS'''&lt;br /&gt;
[[Fichier: NBM_TS.png|thumb|300px|NBM-TS, application des appareils NBM]]&lt;br /&gt;
NARDA STS est une entreprise qui fournit des outils de mesure. Elle met à disposition aux professionnels des sondes électromagnétiques.&lt;br /&gt;
La NBM-520 est un appareil de la franchise, mesurant le champ électrique et magnétique. Elle donne des valeurs précises du champ électromagnétique ambiant sur une large bande. Elle propose différentes sondes modulables permettant une souplesse au niveau de l'étude en fonction des besoins, avec des sondes pouvant étudier des signaux de fréquence de 100kHz à 6GHz ou même de 300kHz à 50GHz (en fonction de la sonde choisie).&lt;br /&gt;
&lt;br /&gt;
En outre, le dispositif peut se connecter en USB sur PC afin d'envoyer les données capturées et d'en faire une étude. Le dispositif propose un logiciel d'étude, NBM-TS, permettant d'observer du champ en fonction du temps, de la fréquence, de la position...&lt;br /&gt;
&lt;br /&gt;
L'équipement est utilisé par l'ANF (l'Agence Nationale des Fréquences, agence gérant l'ensemble des normes autour des radiofréquences), et est donc un gage de qualité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Avantages :''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Large bande de fréquence&lt;br /&gt;
* Matériel solide&lt;br /&gt;
* Application fonctionnelle permettant l'étude et gestion des données&lt;br /&gt;
* Possibilité d'étudier séparément champ électrique et magnétique&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Inconvénients:''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Impossible d'étudier les basses fréquences (appareils sous tension, bobinages...)&lt;br /&gt;
* Prix élevé : à partir de 3100€&lt;br /&gt;
* La cible de ce produit est surtout les professionels&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
'''Une pita.'''&lt;br /&gt;
&lt;br /&gt;
''Comment mon pain à pita vole ta clé RSA ?''&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Pita.jpg|200px|thumb|left|Une pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Des chercheurs israéliens ont découvert un moyen de capturer des clés de cryptage RSA, réputées comme inviolables, par le biais d'une pita... du moins avec un dispositif suffisamment petit pour être caché dans un pain à pita. &lt;br /&gt;
Le dispositif, renommé PITA pour Portable Instrument for Trace Acquisition a la particularité de capturer les ondes radio électromagnétiques émanantes d'un PC, qu'il soit connecté à un réseau ou pas.&lt;br /&gt;
Les différentes opérations du processeur sont identifiées en distinguant les différents modèles de l'activité radio sur le spectre EM.&lt;br /&gt;
&lt;br /&gt;
Bien que la capture des clés RSA a été faite dans des conditions particulières (modification du processeur de l'ordinateur cible), il est néanmoins possible, selon les chercheurs, d'identifier quelle type d'activité est exercée par l'ordinateur ainsi que son état.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PITA.jpg|300px|thumb|right|Un dessous de pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'un des points importants concernant le dispositif est son coût : moins de 300 euros.&lt;br /&gt;
L'appareil dispose :&lt;br /&gt;
* d'un PC portatif (PC-on-a-stick) ''Rikomagic MK802 IV'',&lt;br /&gt;
* d'un recepteur radio SDR ''FUNcube Dongle Pro+''&lt;br /&gt;
* d'une antenne radio&lt;br /&gt;
* d'une batterie&lt;br /&gt;
* d'une antenne WiFi&lt;br /&gt;
* d'une carte MicroSD&lt;br /&gt;
* d'un adapteur d'antenne&lt;br /&gt;
* et d'une '''pita'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le dispositif aurait une portée de 50cm. &lt;br /&gt;
Les chercheurs israéliens ont collaboré avec GNU Private Guard (logiciel de cryptage asymétrique) afin de protéger contre ces attaques les clés de cryptage.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
&lt;br /&gt;
''Scénario 1''&lt;br /&gt;
&lt;br /&gt;
Gérard a toujours le flair pour les bonnes affaires. Il a acheté une centaine de clés WiFi à un prix dérisoire sur AloXpresso afin de faire du profit à la revente. Le vendeur lui garantit que toutes les clés fonctionnent correctement. Gérard veut vérifier. Après vérification, 99 des clés sur 100 fonctionnent comme prévu. Gérard aimerait être sûr du disfonctionnement, mais Gérard n'est pas une pointure en informatique. &lt;br /&gt;
&lt;br /&gt;
Coup de génie ! Il se rappelle qu'il dispose d'un dispositif qui capte les ondes EM et les interprète directement. C'est le moment de tester ça. Il remarque une anomalie sur le spectre.&lt;br /&gt;
Il décide de contacter le revendeur pour lui signaler un disfonctionnement sur l'une des clé. &lt;br /&gt;
Pas de soucis. Le vendeur, étant bon prince, lui envoie une autre clé USB et lui fait une ristourne.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Scénario 2''&lt;br /&gt;
&lt;br /&gt;
La police fait une perquisition chez un individu soupçonné de graves délits. Cela fait plusieurs mois que la brigade criminelle prépare l'intervention, et une fois sur les lieux ils arrêtent le soupçonné malfaiteur.&lt;br /&gt;
Cependant avant de repartir, elle veut faire l'acquisition d'un maximum de preuves. Elle veut alors prendre l'essentiel des objets, dont certains objets éléctroniques connectés de l'individu dont elle pourra extraire les informations qui serviront à le faire tomber.&lt;br /&gt;
&lt;br /&gt;
Par chance, elle dispose d'un petit outil qui scannera les signatures alentours des objets connectés, comme des téléphones cachés, clés USB wifi dissimulées dans le décor etc..&lt;br /&gt;
Et si le suspect avait modifié malignement un objet connecté banal pour l'utiliser autrement à ses fins, la police le découvrirait car elle possède une base de données de toutes les signatures spectrales des objets connectés sur le marché et celle de l'objet modifié ne collerait pas avec celle de la base de données.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
&lt;br /&gt;
'''Comment étudier les signaux malgré les perturbations électromagnétiques ambiants et les faibles signaux des µC ?'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les signaux électromagnétiques des microcontrôleurs ou d'autres composants peuvent être faibles. Il y a une possibilité pour palier à ce problème, c'est de capter les signaux depuis une antenne émettrice que l'on rajoute à l'objet d'étude. &lt;br /&gt;
Nous utiliserons un SDR (Software Defined-Radio) afin de capter les ondes radio et les étudier directement sur PC. Le filtrage s'effectuera ainsi de manière numérique. Plusieurs tests seront effectués pour le même objet à étudier (quand on parle d'objet, on évoque un ensemble de plusieurs composants, comme par exemple une alimentation, un micro-contrôleur et une antenne). Ainsi, de manière statistique, nous pourrons en déduire un pattern récurrent pour chaque expérience en les effectuant dans différents environnements (pourquoi pas une chambre anachoïque). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons &lt;br /&gt;
* Capter le signal émis par un objet connecté le plus précisément possible&lt;br /&gt;
&lt;br /&gt;
* Concevoir nos propres objets connectés tous différents mais basés sur un même modèle&lt;br /&gt;
&lt;br /&gt;
* Interpréter les spectrogrammes, faire une étude statistique des signaux émis par nos différents objets et en tirer des conclusions&lt;br /&gt;
&lt;br /&gt;
* Répertorier dans une base de données les signatures de nos objets , voire de quelques objets disponibles sur le marché&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix logiciel :&lt;br /&gt;
&lt;br /&gt;
- La distribution Linux Pentoo ou Kali pour traiter les signaux avec GNU RADIO (Suite logicielle dédiée à l’implémentation de radios logicielles et de systèmes de traitement du signal).&lt;br /&gt;
&lt;br /&gt;
- FemtoOS pour l'OS des ATMEGA328P et ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix Matériel : &lt;br /&gt;
&lt;br /&gt;
- Plusieurs modules radios émetteurs &lt;br /&gt;
&lt;br /&gt;
- Plusieurs microcontrôleurs ATMEGA328P et un ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
- Des alimentations identiques pour chaque PCB&lt;br /&gt;
&lt;br /&gt;
- Un HackRF pour la réception des signaux&lt;br /&gt;
&lt;br /&gt;
- Une antenne 50 Ohm pour le HackRF [https://www.passion-radio.fr/accessoires-sdr/antenne-ant500-74.html]&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous devons préparer tout le matériel qui servira à faire nos tests. C'est à dire concevoir :&lt;br /&gt;
&lt;br /&gt;
- Un ensemble SDR/PC qui traitera le signal reçu avec GNU RADIO.&lt;br /&gt;
&lt;br /&gt;
- Une multitude de PCB qui seront utilisés comme objets connectés (Sur chacun d'entre eux on trouvera au minimum une antenne radio, un microcontrôleur et une alimentation)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de récupérer une &amp;quot;signature&amp;quot; d'un de nos objets , il faudra faire plus de 50 analyses spectrales pour conclure statistiquement sur une bonne signature qui caractérisera l'objet.&lt;br /&gt;
&lt;br /&gt;
Nous devons donc dans un second temps: &lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques mais qui ont un '''firmware''' différent.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques qui ont pour seule différence le '''microcontrôleur'''.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques dont seul le '''PCB''' diffère.&lt;br /&gt;
&lt;br /&gt;
Grâce à tous ces tests , nous pourrons conclure et voir l'impact qu'à le matériel ou le logiciel sur la signature d'un objet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enfin si les délais nous le permettent, nous pourrons réaliser un software qui cartographiera nos objets connectés dans la pièce grâce à la puissance de la signature reçue (Ce qui devrait être réalisable puisqu'à ce stade nous aurons une base de donnée des signatures).&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
|3&lt;br /&gt;
|8&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Recherches&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|6&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Prise en main de GnuRadio&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Configuration Xbee&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Expériences&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|5&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|4&lt;br /&gt;
|15&lt;br /&gt;
|9&lt;br /&gt;
|8&lt;br /&gt;
|7&lt;br /&gt;
|8&lt;br /&gt;
|8&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
[[Fichier:HackrfOne.jpeg|200px|thumb|right|Le HackRF One]]&lt;br /&gt;
Durant cette semaine, nous avons continué nos recherches notamment sur le moyen de transmission de nos objets connectés. Nous avons confirmé notre choix de notre SDR : Monsieur Boé nous a confirmé que des HackRF seraient disponibles dans les laboratoires et qu'il pourrait nous en prêter un. On disposera donc d'une antenne puissante pour traiter les signaux émis par nos objets communiquants. &lt;br /&gt;
&lt;br /&gt;
Il faudra coupler notre HackRF avec un logiciel appelé GNU RADIO qui est un logiciel très complet ( Pour information : la NASA a utilisé GNU RADIO afin de rétablir le contact avec une sonde spatiale abandonnée ). Afin de faire tourner ce logiciel libre, nous aurons besoin de la distribution Kali Linux, ex Backtrack.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Choix des émetteurs/récepteurs === &lt;br /&gt;
&lt;br /&gt;
Nous avons décidé que nos objets connectés communiqueront dans deux '''bandes de fréquences ISM''', l'une à '''900 MHz''' grâce à des modules Digi Xbee et l'autre à '''2,4 GHz''' par le moyen de modules émetteurs Bluetooth. On rappellera que les Digi Xbee et les émetteurs/récepteurs Bluetooth seront pilotés par des ATMEGA 2560.&lt;br /&gt;
&lt;br /&gt;
Les Xbee ne communiqueront pas entre eux et émettront en continu les mêmes données car ils le peuvent, alors que les émetteurs/récepteurs Bluetooth devront s'échanger des données si on veut pouvoir observer un quelconque signal autour de la fréquence de leurs porteuses. &lt;br /&gt;
&lt;br /&gt;
On voudra observer premièrement, si avec deux objets dans les '''mêmes''' conditions (donc même µc et même émetteur), on peut ou non '''distinguer une différence'''. Ceci est fondamental pour la suite des expériences, puisque si les deux émettent à la même fréquence, on pourra faire varier plusieurs paramètres afin de trouver '''des clés''' (des signes) qui pourraient aider à l'identification du matériel.&lt;br /&gt;
&lt;br /&gt;
Ces clés représentent différents facteurs potentiels d'identification du signal (le rapport signal-bruit en fonction de la distance par exemple...).&lt;br /&gt;
&lt;br /&gt;
''On planifie alors pour la semaine suivante de réussir à faire émettre, en utilisant simplement des breadboards pour commencer, nos Xbee et modules BT et observer quelque chose grâce à notre SDR.''&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration des modules XBee ===&lt;br /&gt;
&lt;br /&gt;
Nous avons configuré deux XBee afin qu'ils puissent communiquer entre eux : &lt;br /&gt;
&lt;br /&gt;
Les modules XBee ont été montés sur des platines d'interface USB/série de manière à ce qu'on puisse les paramétrer via le programme de contrôle ''minicom''. &lt;br /&gt;
&lt;br /&gt;
Dans le doute, on supposera que les XBee communiquent à 9600 Baud. On exécute la commande suivante : &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;minicom -b 9600 -D /dev/ttyUSB0&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
On active l'echo local dans minicom, afin de pouvoir observer ce qui a été envoyé par liaison série au XBee ('''CTRL+A''' puis '''E''').&lt;br /&gt;
&lt;br /&gt;
Pour commencer le paramètrage il faut taper ''' +++ ''' rapidement. Le XBee nous répond OK, cela veut dire que nous sommes dans le mode configuration et que nous pouvons utiliser les commandes '''AT'''. (Redirection vers la liste des commandes AT XBee [https://cdn.sparkfun.com/assets/resources/2/9/22AT_Commands.pdf]).&lt;br /&gt;
&lt;br /&gt;
Comme nos XBee ont été utilisés auparavant, il a fallu les restaurer à l'état usine avec la commande '''ATRE'''.&lt;br /&gt;
&lt;br /&gt;
Si on souhaite que des XBee puissent s'envoyer des données il faut qu'ils soient sur le même canal (commande '''ATCH''') et aient le même PAN ID (commande '''ATID'''). Notre PAN ID sera '''BEE6''' et le canal sera celui par défaut '''C'''.&lt;br /&gt;
&lt;br /&gt;
Ensuite il faut leur donner une adresse de destination ('''ATDH''' &amp;amp; '''ATDL''') qui sera l'adresse broadcast, pour ce faire on entre &lt;br /&gt;
 ATDH=0000&lt;br /&gt;
 ATDL=FFFF&lt;br /&gt;
&lt;br /&gt;
Enfin '''ATMY''' représente l'ID du XBee, notre premier XBee aura comme ID 5000 et le second 5001.&lt;br /&gt;
&lt;br /&gt;
N'oublions pas de sauvegarder les paramètres avec '''ATWR'''.&lt;br /&gt;
&lt;br /&gt;
On vérifie que tout a bien été pris en compte :&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;&lt;br /&gt;
+++OK&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATID&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
BEE6&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
C&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
0&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDL&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
FFFF&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATMY&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
5000&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCN&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Puis on fait de même avec le deuxième XBee (ID 5001).&lt;br /&gt;
&lt;br /&gt;
Voilà, lorsque on envoie des caractères par liaison série sur 5000, la LED '''Tx''' de 5000 s'allume et la Led '''Rx''' de 5001 s'allume elle aussi. Cela signifie que l'envoi de donnée par onde radio s'effectue correctement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que les XBee émettent et reçoivent, on peut commencer les mesures avec notre SDR. Mais avant cela il va falloir bien se familiariser avec le logiciel GNU RADIO qui est assez difficile à prendre en main.&lt;br /&gt;
&lt;br /&gt;
=== Première prise en main du logiciel GNURADIO ===&lt;br /&gt;
&lt;br /&gt;
Installation de GNU radio avec les fonctions + drivers pour HackRF : &lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install gqrx-sdr gnuradio gr-osmosdr hackrf &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le bloc Osmocom Source sert de &amp;quot;passerelle&amp;quot; entre le logiciel et la SDR, il permet de transmettre les informations récupérées par le HackRF afin qu'on puisse les traiter avec d'autres bloc de fonctions.&lt;br /&gt;
&lt;br /&gt;
Si on veut pouvoir récuperer les données il faut passer l'argument ''hackrf=0'' dans la box périphérique du bloc Osmocom.&lt;br /&gt;
&lt;br /&gt;
Ci-dessous on peut voir le spectre environnant entre 2.44GHz et 2.460GHz grâce au bloc WX GUI FFT Sink.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ScreenGnuRadio.png|Interface de GNURadio]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous a permis d'effectuer notre première expérience. L'utilisation des deux Xbees nous a permis d'observer l'impact des Xbee sur le champ électromagéntique environnant.&lt;br /&gt;
&lt;br /&gt;
Si on analyse le spectre environnant grâce au module FFT de GNU Radio, lorsque les Xbee communiquent entre eux, on peut apercevoir un pic caractéristique propre.&lt;br /&gt;
En effet, lors de l'emission d'un message sur le port série, on a un pic qui se dégage du spectre d'amplitude -20dBm. Ce pic est caractéristique au canal de communication choisi et configuré sur le Xbee.&lt;br /&gt;
Néanmoins, le signal est perturbé par le bruit environnant. &lt;br /&gt;
L'expérience étant effectuée au sein de l'école, les signaux Wi-Fi perturberont l'étude.&lt;br /&gt;
Il faut noter que la norme IEEE 802.11 impose au Wi-Fi l'utilisation d'une bande passante s'étalant de 2.4 GHz à 2.5 GHz.&lt;br /&gt;
&lt;br /&gt;
La bande passante des modules Zigbee se décomposent en 16 canaux, allant de 2400 MHz à 2480 MHz par pas de 5 MHz.&lt;br /&gt;
&lt;br /&gt;
Le canal ici utilisé est le canal 13 (3ème canal) de fréquence 2415 MHz.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[Fichier:Channel135001.png|thumb|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Fichier:channel135000.png|thumb|none|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBeeCh13.png|Spectre de l'environnement autour du XBee|thumb|none|400 px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBeeCh13SND.png|Lors de l'envoi de données au XBee voisin|thumb|none|400 px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut observer un pic de puissance lors de l'envoi d'une donnée en série à la fréquence 2.415 GHz.&lt;br /&gt;
Il nous est maintenant nécessaire d'analyser de plus près les signaux et leurs fréquence centrale dans la bande perçue au dessus de -20dB.&lt;br /&gt;
&lt;br /&gt;
On réeffectuera une expérience en zone isolée des signaux parasites.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous avons principalement fait des recherches dans le but de mieux comprendre les signaux émis par le Xbee.&lt;br /&gt;
&lt;br /&gt;
En somme, nous étions confrontés à de nombreuses interrogations. Le fonctionnement du Xbee étant assez simple et la sécurité du protocole Zigbee étant moindre, y a t-il possibilité de démoduler le signal émis afin de développer nos études ?&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
[[Fichier:Switchchannel pyscript.PNG|upright=0.8|thumb|right|Script Python]]&lt;br /&gt;
&lt;br /&gt;
Après réflexion et consultation de nos encadrants, nous nous sommes rendu compte que la démodulation prévue lors de la semaine 4 n'aiderait pas à répondre à la problématique de notre sujet !  &lt;br /&gt;
&lt;br /&gt;
Afin de mieux visualiser les signaux des Xbee , on décide d'automatiser le processus d'envoi sur le port série des données vers le Xbee. C'est à dire concevoir un programme Python qui automatisera l'envoi de données et le changement de channel à intervalle de temps régulier (Changement toutes les 10 secondes). &lt;br /&gt;
&lt;br /&gt;
L'utilisation de Minicom '''n'était pas du tout la meilleure solution''' pour faire émettre les Xbee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Après quelques essais, on remarque que lorsque le Xbee émet sur le channel 13, il émet à environ 2,445GHz au lieu d'émettre à 2,415GHz soit une différence de 30MHz : Ceci n'est pas important, car ce que l'on souhaite remarquer c'est un éventuel décalage de la fréquence centrale entre deux Xbee différents. Si les deux Xbee n'ont pas la même frequence centrale on pourra conclure que la '''fréquence centrale''' de la porteuse du Xbee n'est pas '''une des clés''' permettant d''''identifier''' cet émetteur/récepteur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaines 6 et 7==&lt;br /&gt;
&lt;br /&gt;
Afin de mieux cerner le comportement électromagnétique des modules XBee, il nous est nécessaire de comprendre leur fonctionnement et le protocole Zigbee.&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous avons cherché à souligner le parallélisme entre étude fréquentielle par le spectre et étude temporelle du signal.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PlancheXPtest.jpg|thumb|right|Planche prototype]]&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous avons paramétré la fréquence centrale de capture du HackRF. En effet, bien que le HackRF dispose d'une large bande passante, afin de se focaliser sur la porteuse, il est indispensable de configurer le HackRF en conséquence.&lt;br /&gt;
En second lieu, pour éviter une variation du RSSI (Received Signal Strength Indication) et de la puissance du signal, nous devions mettre en place une prototype de &amp;quot;planche expérimentale&amp;quot; sur laquelle devaient être fixés nos différents modules (l'antenne de reception et les Xbees).&lt;br /&gt;
&lt;br /&gt;
La position des antennes les unes par rapport aux autres est fondamentale. Afin d'optimiser la reception, les antennes doivent être parallèles.&lt;br /&gt;
&lt;br /&gt;
Chaque Xbee est identifié par un chiffre (1 ou 2). En effet, l'attribution de ces chiffres sera définitive pour ne pas perturber la cohérence des expériences. &lt;br /&gt;
Leur position est aussi fondamentale. Ainsi, en fonction que le Xbee soit emetteur ou récepteur, il sera disposé différement sur la planche.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Expérience : Le XBee 1 émetteur directement connecté en série au PC===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:GrapheGNURadio01.png|thumb|left|150px|Schéma simple d'étude fréquentielle et temporelle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette expérience est la première mettant en place un contexte (un seul Xbee émetteur connecté en série au PC, le deuxième Xbee étant inactif) et nous permettra d'étudier le plus de cas possibles.&lt;br /&gt;
&lt;br /&gt;
Nous avons tout d'abord commencé par un graphe GNURadio simple permettant l'observation du spectre et du signal et la variation de la fréquence d'étude.&lt;br /&gt;
&lt;br /&gt;
Le script python a été réécrit afin que le XBee puisse émettre une chaîne de caractère &amp;quot;HELLO&amp;quot; * 1024. En effet, même si la fréquence de balayage du module HackRF peut être grandement augmentée, il faut éviter d'aller au dessous de 0.01s, finissant par consommer de manière considérable les ressources octroyées par le CPU le cas échéant.&lt;br /&gt;
Le fait d'augmenter la taille de la chaine de caractère permet de mieux synchroniser l'étude en temps réel avec la capture des données.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc émis les données sur le canal 14, soit la fréquence centrale est à 2.420GHz selon la norme Zigbee. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Etude fréquentielle&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L'étude fréquentielle est similaire à celle réalisée auparavant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div center&amp;gt;&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[Fichier:Spectrefreq2.png|thumb|center|750px|Spectre fréquentiel au canal 14]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[Fichier:Spectrogram.png|thumb|center|250px|Spectrogramme]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on peut observer sur l'analyseur de spectre GNURadio que la fréquence centrale est située 2.450GHz. Nous n'avons pas trouvé la raison mais il s'agit sûrement d'un décalage au niveau applicatif.&lt;br /&gt;
&lt;br /&gt;
D'autre part, l'ensemble des fréquences qui dessinent le spectre s'étalent sur une large bande de fréquence. En effet, cette technique d'étalement appelée DSSS (Direct-Sequence Spread Spectrum) utilisé par les modules XBee permet au signal d'être moins sensible aux interférences et aux brouillages. En outre, même si la puissance du spectre dans sa globalité reste la même, la densité spectrale elle diminue considérablement, rendant le signal plus &amp;quot;discret&amp;quot;.&lt;br /&gt;
La différence de puissance entre le lobe principal et les premiers lobes secondaires sont de 30 dB, ce qui est aussi commun au DSSS.&lt;br /&gt;
&lt;br /&gt;
Le spectrogramme témoigne aussi de l'étalement du signal sur un peu plus de 6 MHz (3MHz de par et d'autre de la fréquence centrale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt; Etude temporelle &amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Signal temporel.png|thumb|left|500px|Signal observable centré à 2.450GHz lors de l'émission]]&lt;br /&gt;
&lt;br /&gt;
Le signal ici est séparé en deux composantes car il s'agit d'un signal complexe. Nous avons supposé en premier temps qu'il s'agissait du signal principal décalé de 180°, ce qui n'était pas le cas.&lt;br /&gt;
Après quelques recherches, cette séparation des composantes permet de transmettre deux fois plus de données sur la même bande passante.&lt;br /&gt;
Le signal observable témoigne d'une modulation bien spécifique au XBee. En effet, on peut observer des sauts de phase à différents points, qui correspondent à une modulation par changement de phase (modulation QPSK ou Quadratic Phase-Shift Keying). Ce sont ces sauts de phases qui permettent la transmission des bits.&lt;br /&gt;
Les changements de phase s'il y a se font toutes les µs. En outre, on peut observer un décalage (offset) entre la composante Q et la composante I de µs/2 (propre à la modulation OQPSK).&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé d'enregistrer ces données brutes dans un fichier et nous l'avons étudié avec Audacity, logiciel open-source de son, et donc de signaux ! L'inconvénient avec l'interface graphique QT de GNURadio est son manque de précision lors d'un dézoom sur le signal en temps réel. Audacity permet de palier à celà !&lt;br /&gt;
En outre, on peut voir que les paquets Xbee sont reconnaissables. En effet, le signal témoigne de la taille du paquet XBee.&lt;br /&gt;
&lt;br /&gt;
Le paquet XBee est constitué d'un premier header (header physique) de 6 octets :&lt;br /&gt;
- la séquence de préambule (4 octets) constitué de 32 bits à 0&lt;br /&gt;
&lt;br /&gt;
- l'indice de début du paquet fixé à 0x7A (1 octet)&lt;br /&gt;
&lt;br /&gt;
- la longueur du paquet (1 octet);&lt;br /&gt;
&lt;br /&gt;
d'un header MAC (7 à 27 octets en fonction des informations de l'adresse), d'un bloc FCS de fin de paquet (2 octets) et l'ensemble des données (de 1 à 104 octets).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Signal2.png|thumb|right|400px|On observe graphiquement qu'un paquet est transmis en 3846µs]]&lt;br /&gt;
[[Fichier:PacketXBee.png|400px|thumb|right|Paquet XBee]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Comme dit plus haut, les signaux émis par le XBee connaissent un étalement sur le spectre par DSSS.&lt;br /&gt;
Cet étalement s'effectue en divisant chaque symbole (correspondant à une série de 4 bits) transmis en &amp;lt;B&amp;gt;&amp;lt;I&amp;gt;chips&amp;lt;/I&amp;gt;&amp;lt;/B&amp;gt;.&lt;br /&gt;
Chaque symbole, soit 4 bits, correspond à 32 chips, et donc 32 états binaires (1 octet correspond à 64 chips).&lt;br /&gt;
Dans le cas de la norme ZigBee, la transmission de chacun des chips est synchronisé sur chaque µs (1 chip toutes les µs).&lt;br /&gt;
&lt;br /&gt;
Les signaux reçus par l'antenne HackRF étaient deux sinusoïdes modulées en phase et qui s'étalaient sur une période d'environ 3840µs (3846µs graphiquement mais il y a possibilité d'erreur à l'echelle du µs).&lt;br /&gt;
Sachant qu'un octet correspond à 64µs, on a :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;N_{octets} =\frac{2*T_{signal}}{64*T_{chip}}=\frac{2*3.840*10^{-6}}{64*10^{-6}}=120 octets&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'analogie peut être effectuée entre paquet Ethernet et paquet ZigBee. En effet, la taille limite des données d'un paquet est de 104 octets. La chaîne de caractère n'étant qu'envoyée par paquet, le paquet observé n'est que de 120 octets, ce qui est cohérent avec les caractéristiques du XBee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Hello1024secs.png|thumb|none|Temps de transmission de la chaîne de caractères &amp;quot;HELLO&amp;quot; 1024 fois]] &amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:AudacitySignal2.png|thumb|none|51 Paquets XBee portent la chaîne de caractère &amp;quot;HELLO&amp;quot; 1024 fois]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 8==&lt;br /&gt;
&lt;br /&gt;
L'étude des signaux posait réellement problème de par le fait qu'une grande partie de la capture faite n'était que purement le bruit sans signal (utile plus tard pour l'étude du SNR).&lt;br /&gt;
Prenons l'exemple d'un paquet de 21 octets (un paquet contenant une seule chaîne de caractères HELLO). Le signal s'étalerait en théorie sur 21*64 chips soit 672 chips. Sachant que la modulation est une modulation QPSK, on s'étale sur un temps de 672µs.&lt;br /&gt;
En effet, le Xbee transmet toutes les 100ms.&lt;br /&gt;
Donc qu'une partie du signal nous est utile.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décider d'écrire un script qui nous permettrait d'étudier le signal dans de meilleures conditions, et donc de le filtrer.&lt;br /&gt;
&lt;br /&gt;
Chaque capture de signal effectuée est enregistrée dans un fichier par le biais du bloc fonction &amp;lt;B&amp;gt;&amp;lt;I&amp;gt;File Sink&amp;lt;/I&amp;gt;&amp;lt;/B&amp;gt; du compagnon GNURadio. Néanmoins, les fichiers obtenus sont des fichiers binaires assez lourds (environ 500Mo pour une capture de 3s), ce qui est un réel problème et qui implique le filtrage du signal.&lt;br /&gt;
&lt;br /&gt;
La bibliothèque numpy pour python nous permet en outre directement d'importer les échantillons des signaux, les traduisant du binaire à un format cible (complexe flottant 64 bits) dans un Array par le biais de la fonction:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; f = scipy.fromfile(open(&amp;quot;Nom du fichier&amp;quot;), dtype=scipy.complex64) &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La première solution pour réduire ce signal était d'imposer un threshold directement sur le signal, supérieur au bruit, mais qui conduirait à une perte d'une partie du signal à étudier.&lt;br /&gt;
La deuxième solution qui a été retenue était tout simplement de calculer l'amplitude et la phase du signal et appliquer ce même threshold à l'amplitude.&lt;br /&gt;
&lt;br /&gt;
== Semaine 9 et 10==&lt;br /&gt;
&lt;br /&gt;
A partir de la semaine 10 nous avons procéder aux expériences pour avoir suffisamment de données et en tirer des conclusions.&lt;br /&gt;
&lt;br /&gt;
Lorsqu'on fait une acquisition d'un signal xbee , on peut maintenant via un script traiter cette acquisition et récupérer seulement les parties qui nous intéressent : A savoir la partie réelle et la partie imaginaire, l'amplitude du signal et enfin la phase du signal.&lt;br /&gt;
&lt;br /&gt;
Exemple ci dessous après acquisition + traitement de notre xbee n°2 :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Traitement xbee2.png|thumb|right|redresse=2|Signal Xbee2 post-traitement ]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Constellation xbee2.png|thumb|right|redresse=2|Diagramme de constellation xbee2 après utilisation de LightSignal]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'utilisation du script LightSignal permet de retirer toutes les phases en dehors du signal. Ainsi, on peut caractériser le diagramme de constellation comme un diagramme propre à la modulation QPSK. &lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
import scipy&lt;br /&gt;
import numpy&lt;br /&gt;
import sys&lt;br /&gt;
&lt;br /&gt;
def binToComplex64(name):&lt;br /&gt;
    threshold=0.10&lt;br /&gt;
    tmp=scipy.fromfile(open(name+&amp;quot;_PhaseMeg&amp;quot;), dtype=scipy.complex64)&lt;br /&gt;
    tmp2=scipy.fromfile(open(name), dtype=scipy.complex64)&lt;br /&gt;
    &lt;br /&gt;
    f2 = open(name+&amp;quot;_filtre&amp;quot;, &amp;quot;w+&amp;quot;) &lt;br /&gt;
    f = open(name+&amp;quot;_PhaseMeg_filtre&amp;quot;,&amp;quot;w+&amp;quot;)&lt;br /&gt;
    &lt;br /&gt;
    p=1&lt;br /&gt;
    size=tmp.__len__()&lt;br /&gt;
    size2=tmp2.__len__()&lt;br /&gt;
    &lt;br /&gt;
    if size &amp;gt; size2:&lt;br /&gt;
        size=size2&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    ground=False&lt;br /&gt;
    newListSignal=[]&lt;br /&gt;
    newListMagnPh=[]&lt;br /&gt;
    for val in range(0,size): &lt;br /&gt;
        if(val&amp;gt;=(size/100)*p):&lt;br /&gt;
            print(str(p)+&amp;quot; %&amp;quot;)&lt;br /&gt;
            p=p+1&lt;br /&gt;
        if(tmp[val].real&amp;gt;threshold):&lt;br /&gt;
            if(ground==True):&lt;br /&gt;
                for i in range(0,1000):&lt;br /&gt;
                    newListSignal.append(numpy.complex64(0))&lt;br /&gt;
                    newListMagnPh.append(numpy.complex64(0))&lt;br /&gt;
                ground=False&lt;br /&gt;
            newListSignal.append(tmp2[val])&lt;br /&gt;
            newListMagnPh.append(numpy.complex64(tmp[val].real+tmp[val].imag*0.3j))&lt;br /&gt;
        else:&lt;br /&gt;
            ground=True&lt;br /&gt;
    &lt;br /&gt;
    tmp=numpy.asarray(newListMagnPh)&lt;br /&gt;
    tmp.tofile(f)&lt;br /&gt;
    tmp2=numpy.asarray(newListSignal) &lt;br /&gt;
    tmp2.tofile(f2)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
def main():&lt;br /&gt;
    try:&lt;br /&gt;
        binToComplex64(sys.argv[1])&lt;br /&gt;
    except IndexError:&lt;br /&gt;
        print(&amp;quot;Donnez le nom du fichier\n&amp;quot;)&lt;br /&gt;
    except IOError:&lt;br /&gt;
        print(&amp;quot;Le fichier n'existe pas\n&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
if __name__=='__main__':&lt;br /&gt;
    main()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le diagramme de constellation témoigne de nouveau du type de modulation utilisé par le module XBee.&lt;br /&gt;
En effet, on observe quatre points de part et d'autre des axes de quadrature et d'inphase.&lt;br /&gt;
&lt;br /&gt;
==Semaine 11==&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé cette semaine d'étudier, ce qui est selon pour nous, l'une des pistes fondamentales de notre projet, et plus particulièrement de l'étude de nos signaux : le rapport signal bruit.&lt;br /&gt;
&lt;br /&gt;
L'objectif de cette semaine et de celle à venir était, à partir du signal acquis par le hackrf, d'effectuer le calcul du SNR (signal-to-noise ratio) tel que :&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;SNR =\frac{P_{signal}}{P_{bruit}}&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le script python qui nous a permis de communiquer entre les deux shields Xbee se verra amélioré afin de faire plusieurs acquisition des signaux lors de la communication entre les Xbee, effectuer une moyenne statistique, et de même lorsqu'il n'y a pas de communication.&lt;br /&gt;
&lt;br /&gt;
Nous avons essayé d'approcher le SNR directement depuis l'interface de GnuRadio par le biais de l'utilitaire graphique et le langage en bloc, néanmoins nous procéderons à l'étude de ce rapport avec Scilab ou Matlab.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaines supplémentaires==&lt;br /&gt;
&lt;br /&gt;
===Expérience : Temps de calcul du FCS entre le XBee1 et et le XBee2===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Contexte&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 et XBee2 sont alimentés sur 5V VCC par USB (connecté à l'ordinateur)&amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 et XBee2 disposent du firmware : 10EF &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;I&amp;gt; Le XBee1 est d'abord emetteur et le XBee2 est recepteur puis inversement. Aucun paquet ACK n'est renvoyé de la part du recepteur &amp;lt;/I&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On transmet la chaine de caractère HELLO 256 fois toutes les 1 secs&lt;br /&gt;
Les données étant assez conséquentes, le Xbee transmet plusieurs fragments du paquet.&lt;br /&gt;
L'objectif de cette expérience est d'étudier le temps entre chaque fragment d'un paquet.&lt;br /&gt;
L’espace de temps entre chacun des paquets permet de calculer le FCS (frame check sequence) afin de minimiser les erreurs de transmission.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:ChecksumGraphe.png|thumb|left|redresse=2|Les différents temps à mesurer]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Néanmoins, l’étude de ces “temps morts” se voit entravé par le fait que le module HackRF ne permette pas d’obtenir un signal clair sur plus de 5 secondes.&lt;br /&gt;
En outre, pour 5 secondes d’étude et pour une fréquence d’échantillonage de 20MHz (soit un temps Te=5.10e8), on compte 100.000.000 d’échantillons.&lt;br /&gt;
Le CPU lors de la capture était grandement sollicité, ce qui explique le fait que la capture soit compromise.&lt;br /&gt;
Pour régler ce problème, on a écrit un script shell de capture.&lt;br /&gt;
Ce script consiste à:&lt;br /&gt;
&amp;lt;br&amp;gt;- effectuer une capture d’une durée de 1 sec&lt;br /&gt;
&amp;lt;br&amp;gt;- d’enregistrer la capture&lt;br /&gt;
&amp;lt;br&amp;gt;- d’effectuer un traitement de ces paquets par un algorithme python en étudiant le temps entre chacun des fragments. Ce temps sera obtenu en nombre d’échantillons, défini avec un seuil d’acceptation absolu entre 150.000 et 300.000 échantillons (pour bien capturer ces temps intermédiaires et pas les temps provoqués par des signaux parasites ou du bruit), et pour affiner l’étude, on impose un seuil d’erreur de +-10% autour de la moyenne. La moyenne est calculée en continue&lt;br /&gt;
&amp;lt;br&amp;gt;- l’ensemble des valeurs obtenues sont enregistrées dans un fichier&lt;br /&gt;
&amp;lt;br&amp;gt;- on réeffectue la capture …&lt;br /&gt;
&lt;br /&gt;
On répète le processus un certains nombre de fois afin d’obtenir un nombre de valeurs nous permettant de nous conforter sur l'issue de l'expérience (environ 1000 valeurs)&lt;br /&gt;
&lt;br /&gt;
La capture et l'étude de chacun des modules dure une à deux heures.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Résultats :&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans le cas du XBee1 (à gauche) et du XBee2 (à droite), voici les résultats obtenus :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Xbee1Graphe256.png|thumb|left|redresse=2|On peut observer des pics caractéristiques à l'envoi]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBee2Graphe256.png|thumb|left|redresse=2|Les mêmes pics caractéristiques confirment un comportement non-aléatoires du module]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
XBee1 : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 259675,81&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 8369.7417&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 70052576.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
XBee2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 258762.58&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 9165.4097&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 84004736.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les graphes présentent le nombre de répétitions des temps de calcul de fragements.&lt;br /&gt;
&lt;br /&gt;
On peut voir des pics spécifiques à certains points dans les deux expériences. Ces pics sont caractéristiques et au module XBee, et à la chaîne de caractère HELLO. Les deux expériences étant effectuées dans le même contexte, &lt;br /&gt;
&lt;br /&gt;
De même que pour le second Xbee, on retrouve des pics bien distincts à certains points.&lt;br /&gt;
&lt;br /&gt;
En outre, on peut voir que ces pics bien distincts se rapprochent de ceux du premier Xbee.&lt;br /&gt;
Néanmoins, même si la moyenne varie que très peu par rapport aux deux Xbee, la variance est assez différente.&lt;br /&gt;
&lt;br /&gt;
Pour confirmer ces observations, il est peut être nécessaire de répéter la même expérimentation sur un nombre d'échantillons plus grand.&lt;br /&gt;
&lt;br /&gt;
Ainsi, afin de confirmer la conjecture, on décide de faire d’autres captures.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
En superposant les deux graphes (Xbee1 en rouge et Xbee2 en bleu), on peut voir qu'il y a moins de dispersion dans le cas du XBee1, plus centré sur des valeurs précises, contrairement au Xbee2.&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBee1Xbee2Graphe.png|thumb|left|redresse=2]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pour les deux nouveaux échantillons, on a les caractéristiques suivantes :&lt;br /&gt;
&amp;lt;U&amp;gt;Xbee1 sur 1688 échantillons&amp;lt;/U&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 260230.3&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 8427.3923&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 71020941&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Xbee2 sur 1722 échantillons&amp;lt;/U&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Moyenne&amp;lt;/U&amp;gt; : 259899.41&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Ecart-type&amp;lt;/U&amp;gt; : 9831.5106&lt;br /&gt;
&lt;br /&gt;
&amp;lt;U&amp;gt;Variance&amp;lt;/U&amp;gt; : 96658601&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Conclusion de l'expérience&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt; :&lt;br /&gt;
L’hypothèse qui est que la variance des temps &amp;quot;morts&amp;quot; entre chaque fragments de paquet, soit le temps de calcul du FCS pour le signal émis peut être considéré comme “clé” de distinction d’un module Xbee n'est donc pas à négliger. &lt;br /&gt;
&lt;br /&gt;
On peut même considérer que cette étude peut distinguer un module Xbee d'un autre électromagnétiquement parlant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Algorithme python utilisé pour l'étude du signal&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
[Pseudo code ici]&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;/div&gt;</summary>
		<author><name>Amoreau</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=73742</id>
		<title>IMA4 2018/2019 P70</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=73742"/>
				<updated>2019-04-25T20:26:32Z</updated>
		
		<summary type="html">&lt;p&gt;Amoreau : /* Semaine 10 et + */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;font-size: 30px; width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;Impact du matériel et du logiciel sur le champ électromagnétique&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Projet'''&amp;lt;/ins&amp;gt; : Impact du matériel et du logiciel sur le rayonnement électromagnétique&lt;br /&gt;
&lt;br /&gt;
''Nous proposons d'évaluer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et la consommation électrique.''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Etudiants'''&amp;lt;/ins&amp;gt; : Souheib KHINACHE et Antoine MOREAU&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Encadrants'''&amp;lt;/ins&amp;gt; : Alexandre BOE, Xavier REDON et Thomas VANTROYS&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'internet des objets est un marché en plein essor. La communication entre les différents objets connectés crée un nuage de signaux autour d'eux. Ces derniers sont vus par les utilisateurs comme des boîtes noires : le fonctionnement se fait sans en connaître les composants matériels et logiciels. &lt;br /&gt;
Néanmoins, ces objets, de par leurs propriétés électroniques, créent des fuites électromagnétiques impactant le champ environnant. &lt;br /&gt;
&lt;br /&gt;
Bien qu'ils peuvent porter à débat sur l'impact sur la santé, ces signaux peuvent représenter de réelles sources d'informations sur l'aspect matériel et applicatif de l'objet.&lt;br /&gt;
&lt;br /&gt;
Il serait donc intéressant d'avoir idée générale sur le fonctionnement du système en interprétant les ondes électromagnétiques émises par ce système.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Les principaux objectifs de ce projet seront donc de mesurer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et sur la consommation électrique.&lt;br /&gt;
Pour cela, l'outil potentiel avec lequel nous pourrions travailler serait une sonde de champ électromagnétique afin d'établir des mesures. &lt;br /&gt;
Cependant, nous pourrions concevoir notre propre système de capture et d'interprétation à partir d'une antenne, de filtres de fréquences et d'un microcontrôleur (on commencera par un ATMega328P). Il sera nécessaire de prendre en compte les perturbations issues de notre appareil de mesure et d'en tenir compte.&lt;br /&gt;
&lt;br /&gt;
On effectuera ainsi plusieurs expérimentations sur différents supports d'étude :&lt;br /&gt;
*l'aspect &amp;quot;Hardware&amp;quot; en étudiant différents modèles pour un même type de shield  &lt;br /&gt;
*l'aspect calculatoire du matériel en se basant sur l'impact des microcontrôleurs en fonction du modèle (ATMega328P et ATMega2560)&lt;br /&gt;
*l'aspect &amp;quot;Software&amp;quot;, en étudiant l'impact du logiciel et du firmware d'un même composant (différents firmwares pour un même shield Wi-Fi)&lt;br /&gt;
*l'aspect puissance des composants électroniques de gestion de puissance (ponts, hacheurs, onduleurs...).&lt;br /&gt;
&lt;br /&gt;
L'étude des différentes informations se fera par traitement des signaux électromagnétiques et des spectres. &lt;br /&gt;
Afin de mieux appréhender le problème, il nous est nécessaire de comprendre les phénomènes physiques issus de la notion d'électromagnétisme.&lt;br /&gt;
&lt;br /&gt;
Ces études mèneront à une étape plus complexe : l'interprétation des signaux. En effet, l'un des objectifs de ce projet est de comprendre du mieux possible le fonctionnement d'un système sans y avoir accès directement, et donc dans ce contexte &amp;quot;traduire&amp;quot; un ensemble de signaux électromagnétiques.&lt;br /&gt;
&lt;br /&gt;
On pourra en outre apporter un aspect visuel à l'étude en rajoutant une interface informatique.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
Bien qu'aux yeux de nombreuses personnes le bruit électromagnétique créé par les équipements électroniques du quotidien peut porter à controverse (débats concernant l'impact sur la santé par exemple), il peut être une source d'informations. &lt;br /&gt;
De nos jours, les ondes électromagnétiques restent un vaste champ d'étude, sujettes à de nombreuses thèses et recherches au sein des laboratoires.&lt;br /&gt;
&lt;br /&gt;
On peut prendre l'exemple de [https://www.eurekalert.org/pub_releases/2015-01/giot-rwt010715.php Milos Prvulovic], professeur à l'Institut Technologique de Géorgie, ayant simulé un contexte de cybercafé, dans lequel il place une antenne magnétique, un ordinateur portable cible et un ordinateur &amp;quot;espion&amp;quot;. Il réussit, grâce aux signaux EM émis par l'impulsion de l'appui des touches clavier à capter un message écrit par un ordinateur cible. &lt;br /&gt;
&lt;br /&gt;
Néanmoins, dans le quotidien, l'utilisation des sondes électromagnétiques se fait pour l'étude énergétique d'un système électronique (fuites électromagnétiques anormales, preuves d'une anomalie...) afin de respecter certaines normes législatives. Le code du travail par exemple réglemente et définit des valeurs seuils par le biais des articles R. 4453-3 et R. 4453-4.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
'''NBM-520 de NARDA STS'''&lt;br /&gt;
[[Fichier: NBM_TS.png|thumb|300px|NBM-TS, application des appareils NBM]]&lt;br /&gt;
NARDA STS est une entreprise qui fournit des outils de mesure. Elle met à disposition aux professionnels des sondes électromagnétiques.&lt;br /&gt;
La NBM-520 est un appareil de la franchise, mesurant le champ électrique et magnétique. Elle donne des valeurs précises du champ électromagnétique ambiant sur une large bande. Elle propose différentes sondes modulables permettant une souplesse au niveau de l'étude en fonction des besoins, avec des sondes pouvant étudier des signaux de fréquence de 100kHz à 6GHz ou même de 300kHz à 50GHz (en fonction de la sonde choisie).&lt;br /&gt;
&lt;br /&gt;
En outre, le dispositif peut se connecter en USB sur PC afin d'envoyer les données capturées et d'en faire une étude. Le dispositif propose un logiciel d'étude, NBM-TS, permettant d'observer du champ en fonction du temps, de la fréquence, de la position...&lt;br /&gt;
&lt;br /&gt;
L'équipement est utilisé par l'ANF (l'Agence Nationale des Fréquences, agence gérant l'ensemble des normes autour des radiofréquences), et est donc un gage de qualité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Avantages :''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Large bande de fréquence&lt;br /&gt;
* Matériel solide&lt;br /&gt;
* Application fonctionnelle permettant l'étude et gestion des données&lt;br /&gt;
* Possibilité d'étudier séparément champ électrique et magnétique&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Inconvénients:''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Impossible d'étudier les basses fréquences (appareils sous tension, bobinages...)&lt;br /&gt;
* Prix élevé : à partir de 3100€&lt;br /&gt;
* La cible de ce produit est surtout les professionels&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
'''Une pita.'''&lt;br /&gt;
&lt;br /&gt;
''Comment mon pain à pita vole ta clé RSA ?''&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Pita.jpg|200px|thumb|left|Une pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Des chercheurs israéliens ont découvert un moyen de capturer des clés de cryptage RSA, réputées comme inviolables, par le biais d'une pita... du moins avec un dispositif suffisamment petit pour être caché dans un pain à pita. &lt;br /&gt;
Le dispositif, renommé PITA pour Portable Instrument for Trace Acquisition a la particularité de capturer les ondes radio électromagnétiques émanantes d'un PC, qu'il soit connecté à un réseau ou pas.&lt;br /&gt;
Les différentes opérations du processeur sont identifiées en distinguant les différents modèles de l'activité radio sur le spectre EM.&lt;br /&gt;
&lt;br /&gt;
Bien que la capture des clés RSA a été faite dans des conditions particulières (modification du processeur de l'ordinateur cible), il est néanmoins possible, selon les chercheurs, d'identifier quelle type d'activité est exercée par l'ordinateur ainsi que son état.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PITA.jpg|300px|thumb|right|Un dessous de pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'un des points importants concernant le dispositif est son coût : moins de 300 euros.&lt;br /&gt;
L'appareil dispose :&lt;br /&gt;
* d'un PC portatif (PC-on-a-stick) ''Rikomagic MK802 IV'',&lt;br /&gt;
* d'un recepteur radio SDR ''FUNcube Dongle Pro+''&lt;br /&gt;
* d'une antenne radio&lt;br /&gt;
* d'une batterie&lt;br /&gt;
* d'une antenne WiFi&lt;br /&gt;
* d'une carte MicroSD&lt;br /&gt;
* d'un adapteur d'antenne&lt;br /&gt;
* et d'une '''pita'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le dispositif aurait une portée de 50cm. &lt;br /&gt;
Les chercheurs israéliens ont collaboré avec GNU Private Guard (logiciel de cryptage asymétrique) afin de protéger contre ces attaques les clés de cryptage.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
&lt;br /&gt;
''Scénario 1''&lt;br /&gt;
&lt;br /&gt;
Gérard a toujours le flair pour les bonnes affaires. Il a acheté une centaine de clés WiFi à un prix dérisoire sur AloXpresso afin de faire du profit à la revente. Le vendeur lui garantit que toutes les clés fonctionnent correctement. Gérard veut vérifier. Après vérification, 99 des clés sur 100 fonctionnent comme prévu. Gérard aimerait être sûr du disfonctionnement, mais Gérard n'est pas une pointure en informatique. &lt;br /&gt;
&lt;br /&gt;
Coup de génie ! Il se rappelle qu'il dispose d'un dispositif qui capte les ondes EM et les interprète directement. C'est le moment de tester ça. Il remarque une anomalie sur le spectre.&lt;br /&gt;
Il décide de contacter le revendeur pour lui signaler un disfonctionnement sur l'une des clé. &lt;br /&gt;
Pas de soucis. Le vendeur, étant bon prince, lui envoie une autre clé USB et lui fait une ristourne.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Scénario 2''&lt;br /&gt;
&lt;br /&gt;
La police fait une perquisition chez un individu soupçonné de graves délits. Cela fait plusieurs mois que la brigade criminelle prépare l'intervention, et une fois sur les lieux ils arrêtent le soupçonné malfaiteur.&lt;br /&gt;
Cependant avant de repartir, elle veut faire l'acquisition d'un maximum de preuves. Elle veut alors prendre l'essentiel des objets, dont certains objets éléctroniques connectés de l'individu dont elle pourra extraire les informations qui serviront à le faire tomber.&lt;br /&gt;
&lt;br /&gt;
Par chance, elle dispose d'un petit outil qui scannera les signatures alentours des objets connectés, comme des téléphones cachés, clés USB wifi dissimulées dans le décor etc..&lt;br /&gt;
Et si le suspect avait modifié malignement un objet connecté banal pour l'utiliser autrement à ses fins, la police le découvrirait car elle possède une base de données de toutes les signatures spectrales des objets connectés sur le marché et celle de l'objet modifié ne collerait pas avec celle de la base de données.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
&lt;br /&gt;
'''Comment étudier les signaux malgré les perturbations électromagnétiques ambiants et les faibles signaux des µC ?'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les signaux électromagnétiques des microcontrôleurs ou d'autres composants peuvent être faibles. Il y a une possibilité pour palier à ce problème, c'est de capter les signaux depuis une antenne émettrice que l'on rajoute à l'objet d'étude. &lt;br /&gt;
Nous utiliserons un SDR (Software Defined-Radio) afin de capter les ondes radio et les étudier directement sur PC. Le filtrage s'effectuera ainsi de manière numérique. Plusieurs tests seront effectués pour le même objet à étudier (quand on parle d'objet, on évoque un ensemble de plusieurs composants, comme par exemple une alimentation, un micro-contrôleur et une antenne). Ainsi, de manière statistique, nous pourrons en déduire un pattern récurrent pour chaque expérience en les effectuant dans différents environnements (pourquoi pas une chambre anachoïque). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons &lt;br /&gt;
* Capter le signal émis par un objet connecté le plus précisément possible&lt;br /&gt;
&lt;br /&gt;
* Concevoir nos propres objets connectés tous différents mais basés sur un même modèle&lt;br /&gt;
&lt;br /&gt;
* Interpréter les spectrogrammes, faire une étude statistique des signaux émis par nos différents objets et en tirer des conclusions&lt;br /&gt;
&lt;br /&gt;
* Répertorier dans une base de données les signatures de nos objets , voire de quelques objets disponibles sur le marché&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix logiciel :&lt;br /&gt;
&lt;br /&gt;
- La distribution Linux Pentoo ou Kali pour traiter les signaux avec GNU RADIO (Suite logicielle dédiée à l’implémentation de radios logicielles et de systèmes de traitement du signal).&lt;br /&gt;
&lt;br /&gt;
- FemtoOS pour l'OS des ATMEGA328P et ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix Matériel : &lt;br /&gt;
&lt;br /&gt;
- Plusieurs modules radios émetteurs &lt;br /&gt;
&lt;br /&gt;
- Plusieurs microcontrôleurs ATMEGA328P et un ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
- Des alimentations identiques pour chaque PCB&lt;br /&gt;
&lt;br /&gt;
- Un HackRF pour la réception des signaux&lt;br /&gt;
&lt;br /&gt;
- Une antenne 50 Ohm pour le HackRF [https://www.passion-radio.fr/accessoires-sdr/antenne-ant500-74.html]&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous devons préparer tout le matériel qui servira à faire nos tests. C'est à dire concevoir :&lt;br /&gt;
&lt;br /&gt;
- Un ensemble SDR/PC qui traitera le signal reçu avec GNU RADIO.&lt;br /&gt;
&lt;br /&gt;
- Une multitude de PCB qui seront nos objets connectés (Sur chacun d'entre eux on trouvera au minimum une antenne radio, un microcontrôleur et une alimentation)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de récupérer une &amp;quot;signature&amp;quot; d'un de nos objets , il faudra faire plus de 50 analyses spectrales pour conclure statistiquement sur une bonne signature qui caractérisera l'objet.&lt;br /&gt;
&lt;br /&gt;
Nous devons donc dans un second temps: &lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques mais qui ont un '''firmware''' différent.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques qui ont pour seule différence le '''microcontrôleur'''.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques dont seul le '''PCB''' diffère.&lt;br /&gt;
&lt;br /&gt;
Grâce à tous ces tests , nous pourrons conclure et voir l'impact qu'à le matériel ou le logiciel sur la signature d'un objet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enfin si les délais nous le permettent, nous pourrons réaliser un software qui cartographiera nos objets connectés dans la pièce grâce à la puissance de la signature reçue (Ce qui devrait être réalisable puisqu'à ce stade nous aurons une base de donnée des signatures).&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
|3&lt;br /&gt;
|8&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Recherches&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|6&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Prise en main de GnuRadio&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Configuration Xbee&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Expériences&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|5&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|4&lt;br /&gt;
|15&lt;br /&gt;
|9&lt;br /&gt;
|8&lt;br /&gt;
|7&lt;br /&gt;
|8&lt;br /&gt;
|8&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
[[Fichier:HackrfOne.jpeg|200px|thumb|right|Le HackRF One]]&lt;br /&gt;
Durant cette semaine, nous avons continué nos recherches notamment sur le moyen de transmission de nos objets connectés. Nous avons confirmé notre choix de notre SDR : Monsieur Boé nous a confirmé que des HackRF seraient disponibles dans les laboratoires et qu'il pourrait nous en prêter un. On disposera donc d'une antenne puissante pour traiter les signaux émis par nos objets communiquants. &lt;br /&gt;
&lt;br /&gt;
Il faudra coupler notre HackRF avec un logiciel appelé GNU RADIO qui est un logiciel très complet ( Pour information : la NASA a utilisé GNU RADIO afin de rétablir le contact avec une sonde spatiale abandonnée ). Afin de faire tourner ce logiciel libre, nous aurons besoin de la distribution Kali Linux, ex Backtrack.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Choix des émetteurs/récepteurs === &lt;br /&gt;
&lt;br /&gt;
Nous avons décidé que nos objets connectés communiqueront dans deux '''bandes de fréquences ISM''', l'une à '''900 MHz''' grâce à des modules Digi Xbee et l'autre à '''2,4 GHz''' par le moyen de modules émetteurs Bluetooth. On rappellera que les Digi Xbee et les émetteurs/récepteurs Bluetooth seront pilotés par des ATMEGA 2560.&lt;br /&gt;
&lt;br /&gt;
Les Xbee ne communiqueront pas entre eux et émettront en continu les mêmes données car ils le peuvent, alors que les émetteurs/récepteurs Bluetooth devront s'échanger des données si on veut pouvoir observer un quelconque signal autour de la fréquence de leurs porteuses. &lt;br /&gt;
&lt;br /&gt;
On voudra observer premièrement, si avec deux objets dans les '''mêmes''' conditions (donc même µc et même émetteur), on peut ou non '''distinguer une différence'''. Ceci est fondamental pour la suite des expériences, puisque si les deux émettent à la même fréquence, on pourra faire varier plusieurs paramètres afin de trouver '''des clés''' (des signes) qui pourraient aider à l'identification du matériel.&lt;br /&gt;
&lt;br /&gt;
Ces clés représentent différents facteurs potentiels d'identification du signal (le rapport signal-bruit en fonction de la distance par exemple...).&lt;br /&gt;
&lt;br /&gt;
''On planifie alors pour la semaine suivante de réussir à faire émettre, en utilisant simplement des breadboards pour commencer, nos Xbee et modules BT et observer quelque chose grâce à notre SDR.''&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration des modules XBee ===&lt;br /&gt;
&lt;br /&gt;
Nous avons configuré deux XBee afin qu'ils puissent communiquer entre eux : &lt;br /&gt;
&lt;br /&gt;
Les modules XBee ont été montés sur des platines d'interface USB/série de manière à ce qu'on puisse les paramétrer via le programme de contrôle ''minicom''. &lt;br /&gt;
&lt;br /&gt;
Dans le doute, on supposera que les XBee communiquent à 9600 Baud. On exécute la commande suivante : &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;minicom -b 9600 -D /dev/ttyUSB0&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
On active l'echo local dans minicom, afin de pouvoir observer ce qui a été envoyé par liaison série au XBee ('''CTRL+A''' puis '''E''').&lt;br /&gt;
&lt;br /&gt;
Pour commencer le paramètrage il faut taper ''' +++ ''' rapidement. Le XBee nous répond OK, cela veut dire que nous sommes dans le mode configuration et que nous pouvons utiliser les commandes '''AT'''. (Redirection vers la liste des commandes AT XBee [https://cdn.sparkfun.com/assets/resources/2/9/22AT_Commands.pdf]).&lt;br /&gt;
&lt;br /&gt;
Comme nos XBee ont été utilisés auparavant, il a fallu les restaurer à l'état usine avec la commande '''ATRE'''.&lt;br /&gt;
&lt;br /&gt;
Si on souhaite que des XBee puissent s'envoyer des données il faut qu'ils soient sur le même canal (commande '''ATCH''') et aient le même PAN ID (commande '''ATID'''). Notre PAN ID sera '''BEE6''' et le canal sera celui par défaut '''C'''.&lt;br /&gt;
&lt;br /&gt;
Ensuite il faut leur donner une adresse de destination ('''ATDH''' &amp;amp; '''ATDL''') qui sera l'adresse broadcast, pour ce faire on entre &lt;br /&gt;
 ATDH=0000&lt;br /&gt;
 ATDL=FFFF&lt;br /&gt;
&lt;br /&gt;
Enfin '''ATMY''' représente l'ID du XBee, notre premier XBee aura comme ID 5000 et le second 5001.&lt;br /&gt;
&lt;br /&gt;
N'oublions pas de sauvegarder les paramètres avec '''ATWR'''.&lt;br /&gt;
&lt;br /&gt;
On vérifie que tout a bien été pris en compte :&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;&lt;br /&gt;
+++OK&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATID&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
BEE6&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
C&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
0&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDL&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
FFFF&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATMY&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
5000&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCN&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Puis on fait de même avec le deuxième XBee (ID 5001).&lt;br /&gt;
&lt;br /&gt;
Voilà, lorsque on envoie des caractères par liaison série sur 5000, la LED '''Tx''' de 5000 s'allume et la Led '''Rx''' de 5001 s'allume elle aussi. Cela signifie que l'envoi de donnée par onde radio s'effectue correctement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que les XBee émettent et reçoivent, on peut commencer les mesures avec notre SDR. Mais avant cela il va falloir bien se familiariser avec le logiciel GNU RADIO qui est assez difficile à prendre en main.&lt;br /&gt;
&lt;br /&gt;
=== Première prise en main du logiciel GNURADIO ===&lt;br /&gt;
&lt;br /&gt;
Installation de GNU radio avec les fonctions + drivers pour HackRF : &lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install gqrx-sdr gnuradio gr-osmosdr hackrf &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le bloc Osmocom Source sert de &amp;quot;passerelle&amp;quot; entre le logiciel et la SDR, il permet de transmettre les informations récupérées par le HackRF afin qu'on puisse les traiter avec d'autres bloc de fonctions.&lt;br /&gt;
&lt;br /&gt;
Si on veut pouvoir récuperer les données il faut passer l'argument ''hackrf=0'' dans la box périphérique du bloc Osmocom.&lt;br /&gt;
&lt;br /&gt;
Ci-dessous on peut voir le spectre environnant entre 2.44GHz et 2.460GHz grâce au bloc WX GUI FFT Sink.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ScreenGnuRadio.png|Interface de GNURadio]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous a permis d'effectuer notre première expérience. L'utilisation des deux Xbees nous a permis d'observer l'impact des Xbee sur le champ électromagéntique environnant.&lt;br /&gt;
&lt;br /&gt;
Si on analyse le spectre environnant grâce au module FFT de GNU Radio, lorsque les Xbee communiquent entre eux, on peut apercevoir un pic caractéristique propre.&lt;br /&gt;
En effet, lors de l'emission d'un message sur le port série, on a un pic qui se dégage du spectre d'amplitude -20dBm. Ce pic est caractéristique au canal de communication choisi et configuré sur le Xbee.&lt;br /&gt;
Néanmoins, le signal est perturbé par le bruit environnant. &lt;br /&gt;
L'expérience étant effectuée au sein de l'école, les signaux Wi-Fi perturberont l'étude.&lt;br /&gt;
Il faut noter que la norme IEEE 802.11 impose au Wi-Fi l'utilisation d'une bande passante s'étalant de 2.4 GHz à 2.5 GHz.&lt;br /&gt;
&lt;br /&gt;
La bande passante des modules Zigbee se décomposent en 16 canaux, allant de 2400 MHz à 2480 MHz par pas de 5 MHz.&lt;br /&gt;
&lt;br /&gt;
Le canal ici utilisé est le canal 13 (3ème canal) de fréquence 2415 MHz.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[Fichier:Channel135001.png|thumb|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Fichier:channel135000.png|thumb|none|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBeeCh13.png|Spectre de l'environnement autour du XBee|thumb|none|400 px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBeeCh13SND.png|Lors de l'envoi de données au XBee voisin|thumb|none|400 px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut observer un pic de puissance lors de l'envoi d'une donnée en série à la fréquence 2.415 GHz.&lt;br /&gt;
Il nous est maintenant nécessaire d'analyser de plus près les signaux et leurs fréquence centrale dans la bande perçue au dessus de -20dB.&lt;br /&gt;
&lt;br /&gt;
On réeffectuera une expérience en zone isolée des signaux parasites.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous avons principalement fait des recherches dans le but de mieux comprendre les signaux émis par le Xbee.&lt;br /&gt;
&lt;br /&gt;
En somme, nous étions confrontés à de nombreuses interrogations. Le fonctionnement du Xbee étant assez simple et la sécurité du protocole Zigbee étant moindre, y a t-il possibilité de démoduler le signal émis afin de développer nos études ?&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
[[Fichier:Switchchannel pyscript.PNG|upright=0.8|thumb|right|Script Python]]&lt;br /&gt;
&lt;br /&gt;
Après réflexion et consultation de nos encadrants, nous nous sommes rendu compte que la démodulation prévue lors de la semaine 4 n'aiderait pas à répondre à la problématique de notre sujet !  &lt;br /&gt;
&lt;br /&gt;
Afin de mieux visualiser les signaux des Xbee , on décide d'automatiser le processus d'envoi sur le port série des données vers le Xbee. C'est à dire concevoir un programme Python qui automatisera l'envoi de données et le changement de channel à intervalle de temps régulier (Changement toutes les 10 secondes). &lt;br /&gt;
&lt;br /&gt;
L'utilisation de Minicom '''n'était pas du tout la meilleure solution''' pour faire émettre les Xbee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Après quelques essais, on remarque que lorsque le Xbee émet sur le channel 13, il émet à environ 2,445GHz au lieu d'émettre à 2,415GHz soit une différence de 30MHz : Ceci n'est pas important, car ce que l'on souhaite remarquer c'est un éventuel décalage de la fréquence centrale entre deux Xbee différents. Si les deux Xbee n'ont pas la même frequence centrale on pourra conclure que la '''fréquence centrale''' de la porteuse du Xbee n'est pas '''une des clés''' permettant d''''identifier''' cet émetteur/récepteur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaines 6 et 7==&lt;br /&gt;
&lt;br /&gt;
Afin de mieux cerner le comportement électromagnétique des modules XBee, il nous est nécessaire de comprendre leur fonctionnement et le protocole Zigbee.&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous avons cherché à souligner le parallélisme entre étude fréquentielle par le spectre et étude temporelle du signal.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PlancheXPtest.jpg|thumb|right|Planche prototype]]&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous avons paramétré la fréquence centrale de capture du HackRF. En effet, bien que le HackRF dispose d'une large bande passante, afin de se focaliser sur la porteuse, il est indispensable de configurer le HackRF en conséquence.&lt;br /&gt;
En second lieu, pour éviter une variation du RSSI (Received Signal Strength Indication) et de la puissance du signal, nous devions mettre en place une prototype de &amp;quot;planche expérimentale&amp;quot; sur laquelle devaient être fixés nos différents modules (l'antenne de reception et les Xbees).&lt;br /&gt;
&lt;br /&gt;
La position des antennes les unes par rapport aux autres est fondamentale. Afin d'optimiser la reception, les antennes doivent être parallèles.&lt;br /&gt;
&lt;br /&gt;
Chaque Xbee est identifié par un chiffre (1 ou 2). En effet, l'attribution de ces chiffres sera définitive pour ne pas perturber la cohérence des expériences. &lt;br /&gt;
Leur position est aussi fondamentale. Ainsi, en fonction que le Xbee soit emetteur ou récepteur, il sera disposé différement sur la planche.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Le XBee 1 émetteur directement connecté en série au PC===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:GrapheGNURadio01.png|thumb|left|150px|Schéma simple d'étude fréquentielle et temporelle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette expérience est la première mettant en place un contexte (un seul Xbee émetteur connecté en série au PC, le deuxième Xbee étant inactif) et nous permettra d'étudier le plus de cas possibles.&lt;br /&gt;
&lt;br /&gt;
Nous avons tout d'abord commencé par un graphe GNURadio simple permettant l'observation du spectre et du signal et la variation de la fréquence d'étude.&lt;br /&gt;
&lt;br /&gt;
Le script python a été réécrit afin que le XBee puisse émettre une chaîne de caractère &amp;quot;HELLO&amp;quot; * 1024. En effet, même si la fréquence de balayage du module HackRF peut être grandement augmentée, il faut éviter d'aller au dessous de 0.01s, finissant par consommer de manière considérable les ressources octroyées par le CPU le cas échéant.&lt;br /&gt;
Le fait d'augmenter la taille de la chaine de caractère permet de mieux synchroniser l'étude en temps réel avec la capture des données.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc émis les données sur le canal 14, soit la fréquence centrale est à 2.420GHz selon la norme Zigbee. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Etude fréquentielle&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L'étude fréquentielle est similaire à celle réalisée auparavant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div center&amp;gt;&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[Fichier:Spectrefreq2.png|thumb|center|750px|Spectre fréquentiel au canal 14]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[Fichier:Spectrogram.png|thumb|center|250px|Spectrogramme]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on peut observer sur l'analyseur de spectre GNURadio que la fréquence centrale est située 2.450GHz. Nous n'avons pas trouvé la raison mais il s'agit sûrement d'un décalage au niveau applicatif.&lt;br /&gt;
&lt;br /&gt;
D'autre part, l'ensemble des fréquences qui dessinent le spectre s'étalent sur une large bande de fréquence. En effet, cette technique d'étalement appelée DSSS (Direct-Sequence Spread Spectrum) utilisé par les modules XBee permet au signal d'être moins sensible aux interférences et aux brouillages. En outre, même si la puissance du spectre dans sa globalité reste la même, la densité spectrale elle diminue considérablement, rendant le signal plus &amp;quot;discret&amp;quot;.&lt;br /&gt;
La différence de puissance entre le lobe principal et les premiers lobes secondaires sont de 30 dB, ce qui est aussi commun au DSSS.&lt;br /&gt;
&lt;br /&gt;
Le spectrogramme témoigne aussi de l'étalement du signal sur un peu plus de 6 MHz (3MHz de par et d'autre de la fréquence centrale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt; Etude temporelle &amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Signal temporel.png|thumb|left|500px|Signal observable centré à 2.450GHz lors de l'émission]]&lt;br /&gt;
&lt;br /&gt;
Le signal ici est séparé en deux composantes car il s'agit d'un signal complexe. Nous avons supposé en premier temps qu'il s'agissait du signal principal décalé de 180°, ce qui n'était pas le cas.&lt;br /&gt;
Après quelques recherches, cette séparation des composantes permet de transmettre deux fois plus de données sur la même bande passante.&lt;br /&gt;
Le signal observable témoigne d'une modulation bien spécifique au XBee. En effet, on peut observer des sauts de phase à différents points, qui correspondent à une modulation par changement de phase (modulation QPSK ou Quadratic Phase-Shift Keying). Ce sont ces sauts de phases qui permettent la transmission des bits.&lt;br /&gt;
Les changements de phase s'il y a se font toutes les µs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé d'enregistrer ces données brutes dans un fichier et nous l'avons étudier avec Audacity, logiciel open-source de son, et donc de signaux ! L'inconvénient avec l'interface graphique QT de GNURadio est son manque de précision lors d'un dézoom sur le signal en temps réel. Audacity permet de palier à celà !&lt;br /&gt;
En outre, on peut voir que les paquets Xbee sont reconnaissables. En effet, le signal témoigne de la taille du paquet XBee.&lt;br /&gt;
&lt;br /&gt;
Le paquet XBee est constitué d'un premier header (header physique) de 6 octets :&lt;br /&gt;
- la séquence de préambule (4 octets) constitué de 32 bits à 0&lt;br /&gt;
&lt;br /&gt;
- l'indice de début du paquet fixé à 0x7A (1 octet)&lt;br /&gt;
&lt;br /&gt;
- la longueur du paquet (1 octet);&lt;br /&gt;
&lt;br /&gt;
d'un header MAC (7 à 27 octets en fonction des informations de l'adresse), d'un bloc FCS de fin de paquet (2 octets) et l'ensemble des données (de 1 à 104 octets).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Signal2.png|thumb|right|400px|On observe graphiquement qu'un paquet est transmis en 3846µs]]&lt;br /&gt;
[[Fichier:PacketXBee.png|400px|thumb|right|Paquet XBee]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Comme dit plus haut, les signaux émis par le XBee connaissent un étalement sur le spectre par DSSS.&lt;br /&gt;
Cet étalement s'effectue en divisant chaque symbole (correspondant à une série de 4 bits) transmis en &amp;lt;B&amp;gt;&amp;lt;I&amp;gt;chips&amp;lt;/I&amp;gt;&amp;lt;/B&amp;gt;.&lt;br /&gt;
Chaque symbole, soit 4 bits, correspond à 32 chips, et donc 32 états binaires (1 octet correspond à 64 chips).&lt;br /&gt;
Dans le cas de la norme ZigBee, la transmission de chacun des chips est synchronisé sur chaque µs (1 chip toutes les µs).&lt;br /&gt;
&lt;br /&gt;
Les signaux reçus par l'antenne HackRF étaient deux sinusoïdes modulées en phase et qui s'étalaient sur une période d'environ 3840µs (3846µs graphiquement mais il y a possibilité d'erreur à l'echelle du µs).&lt;br /&gt;
Sachant qu'un octet correspond à 64µs, on a :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;N_{octets} =\frac{2*T_{signal}}{64*T_{chip}}=\frac{2*3.840*10^{-6}}{64*10^{-6}}=120 octets&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'analogie peut être effectuée entre paquet Ethernet et paquet ZigBee. En effet, la taille limite des données d'un paquet est de 104 octets. La chaîne de caractère n'étant qu'envoyée par paquet, le paquet observé n'est que de 120 octets, ce qui est cohérent avec les caractéristiques du XBee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Hello1024secs.png|thumb|none|Temps de transmission de la chaîne de caractères &amp;quot;HELLO&amp;quot; 1024 fois]] &amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:AudacitySignal2.png|thumb|none|51 Paquets XBee portent la chaîne de caractère &amp;quot;HELLO&amp;quot; 1024 fois]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 8==&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé cette semaine d'étudier, ce qui est selon pour nous, l'une des pistes fondamentales de notre projet, et plus particulièrement de l'étude de nos signaux : le rapport signal bruit.&lt;br /&gt;
&lt;br /&gt;
L'objectif de cette semaine et de celle à venir était, à partir du signal acquis par le hackrf, d'effectuer le calcul du SNR (signal-to-noise ratio) tel que :&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;SNR =\frac{P_{signal}}{P_{bruit}}&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le script python qui nous a permis de communiquer entre les deux shields Xbee se verra amélioré afin de faire plusieurs acquisition des signaux lors de la communication entre les Xbee, effectuer une moyenne statistique, et de même lorsqu'il n'y a pas de communication.&lt;br /&gt;
&lt;br /&gt;
Néanmoins, nous avons essayé d'approcher le SNR directement depuis l'interface de GnuRadio par le biais de l'utilitaire graphique et le langage en bloc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 9==&lt;br /&gt;
&lt;br /&gt;
L'étude des signaux posait réellement problème de par le fait qu'une grande partie de la capture faite n'était que purement le bruit sans signal (utile plus tard pour l'étude du SNR).&lt;br /&gt;
Prenons l'exemple d'un paquet de 21 octets (un paquet contenant une seule chaîne de caractères HELLO). Le signal s'étalerait en théorie sur 21*64 chips soit 672 chips. Sachant que la modulation est une modulation QPSK, on s'étale sur un temps de 672µs.&lt;br /&gt;
En effet, le Xbee transmet toutes les 100ms.&lt;br /&gt;
Donc qu'une partie du signal nous est utile.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décider d'écrire un script qui nous permettrait d'étudier le signal dans de meilleures conditions, et donc de le filtrer.&lt;br /&gt;
&lt;br /&gt;
Chaque capture de signal effectuée est enregistrée dans un fichier par le biais du bloc fonction &amp;lt;B&amp;gt;&amp;lt;I&amp;gt;File Sink&amp;lt;/I&amp;gt;&amp;lt;/B&amp;gt; du compagnon GNURadio. Néanmoins, les fichiers obtenus sont des fichiers binaires assez lourds (environ 500Mo pour une capture de 3s), ce qui est un réel problème et qui implique le filtrage du signal.&lt;br /&gt;
&lt;br /&gt;
La bibliothèque numpy pour python nous permet en outre directement d'importer les échantillons des signaux, les traduisant du binaire à un format cible (complexe flottant 64 bits) dans un Array par le biais de la fonction:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; f = scipy.fromfile(open(&amp;quot;Nom du fichier&amp;quot;), dtype=scipy.complex64) &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La première solution pour réduire ce signal était d'imposer un threshold directement sur le signal, supérieur au bruit, mais qui conduirait à une perte d'une partie du signal à étudier.&lt;br /&gt;
La deuxième solution qui a été retenue était tout simplement de calculer l'amplitude et la phase du signal et appliquer ce même threshold à l'amplitude.&lt;br /&gt;
&lt;br /&gt;
== Semaine 10 et + ==&lt;br /&gt;
[[Fichier:Traitement xbee2.png|thumb|right|redresse=2|Signal Xbee2 post-traitement ]]&lt;br /&gt;
[[Fichier:Constellation xbee2.png|thumb|right|redresse=2|Diagramme de constellation xbee2 après utilisation de LightSignal]]&lt;br /&gt;
A partir de la semaine 10 nous n'avons fait qu’enchaîner les expériences pour avoir suffisamment de données et en tirer des conclusions.&lt;br /&gt;
&lt;br /&gt;
Lorsqu'on fait une acquisition d'un signal xbee , on peut maintenant via un script traiter cette acquisition et récupérer seulement les parties qui nous intéressent : A savoir la partie réelle et la partie imaginaire , l'amplitude du signal et enfin la phase du signal.&lt;br /&gt;
&lt;br /&gt;
Exemple ci dessous après acquisition + traitement de notre xbee n°2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'utilisation du script LightSignal permet de retirer toutes les phases en dehors du signal. Ainsi on peut bien observer le diagramme de constellation.&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;/div&gt;</summary>
		<author><name>Amoreau</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=73741</id>
		<title>IMA4 2018/2019 P70</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=73741"/>
				<updated>2019-04-25T20:26:19Z</updated>
		
		<summary type="html">&lt;p&gt;Amoreau : /* Semaine 10 et + */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;font-size: 30px; width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;Impact du matériel et du logiciel sur le champ électromagnétique&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Projet'''&amp;lt;/ins&amp;gt; : Impact du matériel et du logiciel sur le rayonnement électromagnétique&lt;br /&gt;
&lt;br /&gt;
''Nous proposons d'évaluer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et la consommation électrique.''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Etudiants'''&amp;lt;/ins&amp;gt; : Souheib KHINACHE et Antoine MOREAU&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Encadrants'''&amp;lt;/ins&amp;gt; : Alexandre BOE, Xavier REDON et Thomas VANTROYS&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'internet des objets est un marché en plein essor. La communication entre les différents objets connectés crée un nuage de signaux autour d'eux. Ces derniers sont vus par les utilisateurs comme des boîtes noires : le fonctionnement se fait sans en connaître les composants matériels et logiciels. &lt;br /&gt;
Néanmoins, ces objets, de par leurs propriétés électroniques, créent des fuites électromagnétiques impactant le champ environnant. &lt;br /&gt;
&lt;br /&gt;
Bien qu'ils peuvent porter à débat sur l'impact sur la santé, ces signaux peuvent représenter de réelles sources d'informations sur l'aspect matériel et applicatif de l'objet.&lt;br /&gt;
&lt;br /&gt;
Il serait donc intéressant d'avoir idée générale sur le fonctionnement du système en interprétant les ondes électromagnétiques émises par ce système.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Les principaux objectifs de ce projet seront donc de mesurer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et sur la consommation électrique.&lt;br /&gt;
Pour cela, l'outil potentiel avec lequel nous pourrions travailler serait une sonde de champ électromagnétique afin d'établir des mesures. &lt;br /&gt;
Cependant, nous pourrions concevoir notre propre système de capture et d'interprétation à partir d'une antenne, de filtres de fréquences et d'un microcontrôleur (on commencera par un ATMega328P). Il sera nécessaire de prendre en compte les perturbations issues de notre appareil de mesure et d'en tenir compte.&lt;br /&gt;
&lt;br /&gt;
On effectuera ainsi plusieurs expérimentations sur différents supports d'étude :&lt;br /&gt;
*l'aspect &amp;quot;Hardware&amp;quot; en étudiant différents modèles pour un même type de shield  &lt;br /&gt;
*l'aspect calculatoire du matériel en se basant sur l'impact des microcontrôleurs en fonction du modèle (ATMega328P et ATMega2560)&lt;br /&gt;
*l'aspect &amp;quot;Software&amp;quot;, en étudiant l'impact du logiciel et du firmware d'un même composant (différents firmwares pour un même shield Wi-Fi)&lt;br /&gt;
*l'aspect puissance des composants électroniques de gestion de puissance (ponts, hacheurs, onduleurs...).&lt;br /&gt;
&lt;br /&gt;
L'étude des différentes informations se fera par traitement des signaux électromagnétiques et des spectres. &lt;br /&gt;
Afin de mieux appréhender le problème, il nous est nécessaire de comprendre les phénomènes physiques issus de la notion d'électromagnétisme.&lt;br /&gt;
&lt;br /&gt;
Ces études mèneront à une étape plus complexe : l'interprétation des signaux. En effet, l'un des objectifs de ce projet est de comprendre du mieux possible le fonctionnement d'un système sans y avoir accès directement, et donc dans ce contexte &amp;quot;traduire&amp;quot; un ensemble de signaux électromagnétiques.&lt;br /&gt;
&lt;br /&gt;
On pourra en outre apporter un aspect visuel à l'étude en rajoutant une interface informatique.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
Bien qu'aux yeux de nombreuses personnes le bruit électromagnétique créé par les équipements électroniques du quotidien peut porter à controverse (débats concernant l'impact sur la santé par exemple), il peut être une source d'informations. &lt;br /&gt;
De nos jours, les ondes électromagnétiques restent un vaste champ d'étude, sujettes à de nombreuses thèses et recherches au sein des laboratoires.&lt;br /&gt;
&lt;br /&gt;
On peut prendre l'exemple de [https://www.eurekalert.org/pub_releases/2015-01/giot-rwt010715.php Milos Prvulovic], professeur à l'Institut Technologique de Géorgie, ayant simulé un contexte de cybercafé, dans lequel il place une antenne magnétique, un ordinateur portable cible et un ordinateur &amp;quot;espion&amp;quot;. Il réussit, grâce aux signaux EM émis par l'impulsion de l'appui des touches clavier à capter un message écrit par un ordinateur cible. &lt;br /&gt;
&lt;br /&gt;
Néanmoins, dans le quotidien, l'utilisation des sondes électromagnétiques se fait pour l'étude énergétique d'un système électronique (fuites électromagnétiques anormales, preuves d'une anomalie...) afin de respecter certaines normes législatives. Le code du travail par exemple réglemente et définit des valeurs seuils par le biais des articles R. 4453-3 et R. 4453-4.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
'''NBM-520 de NARDA STS'''&lt;br /&gt;
[[Fichier: NBM_TS.png|thumb|300px|NBM-TS, application des appareils NBM]]&lt;br /&gt;
NARDA STS est une entreprise qui fournit des outils de mesure. Elle met à disposition aux professionnels des sondes électromagnétiques.&lt;br /&gt;
La NBM-520 est un appareil de la franchise, mesurant le champ électrique et magnétique. Elle donne des valeurs précises du champ électromagnétique ambiant sur une large bande. Elle propose différentes sondes modulables permettant une souplesse au niveau de l'étude en fonction des besoins, avec des sondes pouvant étudier des signaux de fréquence de 100kHz à 6GHz ou même de 300kHz à 50GHz (en fonction de la sonde choisie).&lt;br /&gt;
&lt;br /&gt;
En outre, le dispositif peut se connecter en USB sur PC afin d'envoyer les données capturées et d'en faire une étude. Le dispositif propose un logiciel d'étude, NBM-TS, permettant d'observer du champ en fonction du temps, de la fréquence, de la position...&lt;br /&gt;
&lt;br /&gt;
L'équipement est utilisé par l'ANF (l'Agence Nationale des Fréquences, agence gérant l'ensemble des normes autour des radiofréquences), et est donc un gage de qualité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Avantages :''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Large bande de fréquence&lt;br /&gt;
* Matériel solide&lt;br /&gt;
* Application fonctionnelle permettant l'étude et gestion des données&lt;br /&gt;
* Possibilité d'étudier séparément champ électrique et magnétique&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Inconvénients:''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Impossible d'étudier les basses fréquences (appareils sous tension, bobinages...)&lt;br /&gt;
* Prix élevé : à partir de 3100€&lt;br /&gt;
* La cible de ce produit est surtout les professionels&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
'''Une pita.'''&lt;br /&gt;
&lt;br /&gt;
''Comment mon pain à pita vole ta clé RSA ?''&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Pita.jpg|200px|thumb|left|Une pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Des chercheurs israéliens ont découvert un moyen de capturer des clés de cryptage RSA, réputées comme inviolables, par le biais d'une pita... du moins avec un dispositif suffisamment petit pour être caché dans un pain à pita. &lt;br /&gt;
Le dispositif, renommé PITA pour Portable Instrument for Trace Acquisition a la particularité de capturer les ondes radio électromagnétiques émanantes d'un PC, qu'il soit connecté à un réseau ou pas.&lt;br /&gt;
Les différentes opérations du processeur sont identifiées en distinguant les différents modèles de l'activité radio sur le spectre EM.&lt;br /&gt;
&lt;br /&gt;
Bien que la capture des clés RSA a été faite dans des conditions particulières (modification du processeur de l'ordinateur cible), il est néanmoins possible, selon les chercheurs, d'identifier quelle type d'activité est exercée par l'ordinateur ainsi que son état.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PITA.jpg|300px|thumb|right|Un dessous de pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'un des points importants concernant le dispositif est son coût : moins de 300 euros.&lt;br /&gt;
L'appareil dispose :&lt;br /&gt;
* d'un PC portatif (PC-on-a-stick) ''Rikomagic MK802 IV'',&lt;br /&gt;
* d'un recepteur radio SDR ''FUNcube Dongle Pro+''&lt;br /&gt;
* d'une antenne radio&lt;br /&gt;
* d'une batterie&lt;br /&gt;
* d'une antenne WiFi&lt;br /&gt;
* d'une carte MicroSD&lt;br /&gt;
* d'un adapteur d'antenne&lt;br /&gt;
* et d'une '''pita'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le dispositif aurait une portée de 50cm. &lt;br /&gt;
Les chercheurs israéliens ont collaboré avec GNU Private Guard (logiciel de cryptage asymétrique) afin de protéger contre ces attaques les clés de cryptage.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
&lt;br /&gt;
''Scénario 1''&lt;br /&gt;
&lt;br /&gt;
Gérard a toujours le flair pour les bonnes affaires. Il a acheté une centaine de clés WiFi à un prix dérisoire sur AloXpresso afin de faire du profit à la revente. Le vendeur lui garantit que toutes les clés fonctionnent correctement. Gérard veut vérifier. Après vérification, 99 des clés sur 100 fonctionnent comme prévu. Gérard aimerait être sûr du disfonctionnement, mais Gérard n'est pas une pointure en informatique. &lt;br /&gt;
&lt;br /&gt;
Coup de génie ! Il se rappelle qu'il dispose d'un dispositif qui capte les ondes EM et les interprète directement. C'est le moment de tester ça. Il remarque une anomalie sur le spectre.&lt;br /&gt;
Il décide de contacter le revendeur pour lui signaler un disfonctionnement sur l'une des clé. &lt;br /&gt;
Pas de soucis. Le vendeur, étant bon prince, lui envoie une autre clé USB et lui fait une ristourne.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Scénario 2''&lt;br /&gt;
&lt;br /&gt;
La police fait une perquisition chez un individu soupçonné de graves délits. Cela fait plusieurs mois que la brigade criminelle prépare l'intervention, et une fois sur les lieux ils arrêtent le soupçonné malfaiteur.&lt;br /&gt;
Cependant avant de repartir, elle veut faire l'acquisition d'un maximum de preuves. Elle veut alors prendre l'essentiel des objets, dont certains objets éléctroniques connectés de l'individu dont elle pourra extraire les informations qui serviront à le faire tomber.&lt;br /&gt;
&lt;br /&gt;
Par chance, elle dispose d'un petit outil qui scannera les signatures alentours des objets connectés, comme des téléphones cachés, clés USB wifi dissimulées dans le décor etc..&lt;br /&gt;
Et si le suspect avait modifié malignement un objet connecté banal pour l'utiliser autrement à ses fins, la police le découvrirait car elle possède une base de données de toutes les signatures spectrales des objets connectés sur le marché et celle de l'objet modifié ne collerait pas avec celle de la base de données.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
&lt;br /&gt;
'''Comment étudier les signaux malgré les perturbations électromagnétiques ambiants et les faibles signaux des µC ?'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les signaux électromagnétiques des microcontrôleurs ou d'autres composants peuvent être faibles. Il y a une possibilité pour palier à ce problème, c'est de capter les signaux depuis une antenne émettrice que l'on rajoute à l'objet d'étude. &lt;br /&gt;
Nous utiliserons un SDR (Software Defined-Radio) afin de capter les ondes radio et les étudier directement sur PC. Le filtrage s'effectuera ainsi de manière numérique. Plusieurs tests seront effectués pour le même objet à étudier (quand on parle d'objet, on évoque un ensemble de plusieurs composants, comme par exemple une alimentation, un micro-contrôleur et une antenne). Ainsi, de manière statistique, nous pourrons en déduire un pattern récurrent pour chaque expérience en les effectuant dans différents environnements (pourquoi pas une chambre anachoïque). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons &lt;br /&gt;
* Capter le signal émis par un objet connecté le plus précisément possible&lt;br /&gt;
&lt;br /&gt;
* Concevoir nos propres objets connectés tous différents mais basés sur un même modèle&lt;br /&gt;
&lt;br /&gt;
* Interpréter les spectrogrammes, faire une étude statistique des signaux émis par nos différents objets et en tirer des conclusions&lt;br /&gt;
&lt;br /&gt;
* Répertorier dans une base de données les signatures de nos objets , voire de quelques objets disponibles sur le marché&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix logiciel :&lt;br /&gt;
&lt;br /&gt;
- La distribution Linux Pentoo ou Kali pour traiter les signaux avec GNU RADIO (Suite logicielle dédiée à l’implémentation de radios logicielles et de systèmes de traitement du signal).&lt;br /&gt;
&lt;br /&gt;
- FemtoOS pour l'OS des ATMEGA328P et ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix Matériel : &lt;br /&gt;
&lt;br /&gt;
- Plusieurs modules radios émetteurs &lt;br /&gt;
&lt;br /&gt;
- Plusieurs microcontrôleurs ATMEGA328P et un ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
- Des alimentations identiques pour chaque PCB&lt;br /&gt;
&lt;br /&gt;
- Un HackRF pour la réception des signaux&lt;br /&gt;
&lt;br /&gt;
- Une antenne 50 Ohm pour le HackRF [https://www.passion-radio.fr/accessoires-sdr/antenne-ant500-74.html]&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous devons préparer tout le matériel qui servira à faire nos tests. C'est à dire concevoir :&lt;br /&gt;
&lt;br /&gt;
- Un ensemble SDR/PC qui traitera le signal reçu avec GNU RADIO.&lt;br /&gt;
&lt;br /&gt;
- Une multitude de PCB qui seront nos objets connectés (Sur chacun d'entre eux on trouvera au minimum une antenne radio, un microcontrôleur et une alimentation)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de récupérer une &amp;quot;signature&amp;quot; d'un de nos objets , il faudra faire plus de 50 analyses spectrales pour conclure statistiquement sur une bonne signature qui caractérisera l'objet.&lt;br /&gt;
&lt;br /&gt;
Nous devons donc dans un second temps: &lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques mais qui ont un '''firmware''' différent.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques qui ont pour seule différence le '''microcontrôleur'''.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques dont seul le '''PCB''' diffère.&lt;br /&gt;
&lt;br /&gt;
Grâce à tous ces tests , nous pourrons conclure et voir l'impact qu'à le matériel ou le logiciel sur la signature d'un objet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enfin si les délais nous le permettent, nous pourrons réaliser un software qui cartographiera nos objets connectés dans la pièce grâce à la puissance de la signature reçue (Ce qui devrait être réalisable puisqu'à ce stade nous aurons une base de donnée des signatures).&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
|3&lt;br /&gt;
|8&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Recherches&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|6&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Prise en main de GnuRadio&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Configuration Xbee&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Expériences&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|5&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|4&lt;br /&gt;
|15&lt;br /&gt;
|9&lt;br /&gt;
|8&lt;br /&gt;
|7&lt;br /&gt;
|8&lt;br /&gt;
|8&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
[[Fichier:HackrfOne.jpeg|200px|thumb|right|Le HackRF One]]&lt;br /&gt;
Durant cette semaine, nous avons continué nos recherches notamment sur le moyen de transmission de nos objets connectés. Nous avons confirmé notre choix de notre SDR : Monsieur Boé nous a confirmé que des HackRF seraient disponibles dans les laboratoires et qu'il pourrait nous en prêter un. On disposera donc d'une antenne puissante pour traiter les signaux émis par nos objets communiquants. &lt;br /&gt;
&lt;br /&gt;
Il faudra coupler notre HackRF avec un logiciel appelé GNU RADIO qui est un logiciel très complet ( Pour information : la NASA a utilisé GNU RADIO afin de rétablir le contact avec une sonde spatiale abandonnée ). Afin de faire tourner ce logiciel libre, nous aurons besoin de la distribution Kali Linux, ex Backtrack.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Choix des émetteurs/récepteurs === &lt;br /&gt;
&lt;br /&gt;
Nous avons décidé que nos objets connectés communiqueront dans deux '''bandes de fréquences ISM''', l'une à '''900 MHz''' grâce à des modules Digi Xbee et l'autre à '''2,4 GHz''' par le moyen de modules émetteurs Bluetooth. On rappellera que les Digi Xbee et les émetteurs/récepteurs Bluetooth seront pilotés par des ATMEGA 2560.&lt;br /&gt;
&lt;br /&gt;
Les Xbee ne communiqueront pas entre eux et émettront en continu les mêmes données car ils le peuvent, alors que les émetteurs/récepteurs Bluetooth devront s'échanger des données si on veut pouvoir observer un quelconque signal autour de la fréquence de leurs porteuses. &lt;br /&gt;
&lt;br /&gt;
On voudra observer premièrement, si avec deux objets dans les '''mêmes''' conditions (donc même µc et même émetteur), on peut ou non '''distinguer une différence'''. Ceci est fondamental pour la suite des expériences, puisque si les deux émettent à la même fréquence, on pourra faire varier plusieurs paramètres afin de trouver '''des clés''' (des signes) qui pourraient aider à l'identification du matériel.&lt;br /&gt;
&lt;br /&gt;
Ces clés représentent différents facteurs potentiels d'identification du signal (le rapport signal-bruit en fonction de la distance par exemple...).&lt;br /&gt;
&lt;br /&gt;
''On planifie alors pour la semaine suivante de réussir à faire émettre, en utilisant simplement des breadboards pour commencer, nos Xbee et modules BT et observer quelque chose grâce à notre SDR.''&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration des modules XBee ===&lt;br /&gt;
&lt;br /&gt;
Nous avons configuré deux XBee afin qu'ils puissent communiquer entre eux : &lt;br /&gt;
&lt;br /&gt;
Les modules XBee ont été montés sur des platines d'interface USB/série de manière à ce qu'on puisse les paramétrer via le programme de contrôle ''minicom''. &lt;br /&gt;
&lt;br /&gt;
Dans le doute, on supposera que les XBee communiquent à 9600 Baud. On exécute la commande suivante : &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;minicom -b 9600 -D /dev/ttyUSB0&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
On active l'echo local dans minicom, afin de pouvoir observer ce qui a été envoyé par liaison série au XBee ('''CTRL+A''' puis '''E''').&lt;br /&gt;
&lt;br /&gt;
Pour commencer le paramètrage il faut taper ''' +++ ''' rapidement. Le XBee nous répond OK, cela veut dire que nous sommes dans le mode configuration et que nous pouvons utiliser les commandes '''AT'''. (Redirection vers la liste des commandes AT XBee [https://cdn.sparkfun.com/assets/resources/2/9/22AT_Commands.pdf]).&lt;br /&gt;
&lt;br /&gt;
Comme nos XBee ont été utilisés auparavant, il a fallu les restaurer à l'état usine avec la commande '''ATRE'''.&lt;br /&gt;
&lt;br /&gt;
Si on souhaite que des XBee puissent s'envoyer des données il faut qu'ils soient sur le même canal (commande '''ATCH''') et aient le même PAN ID (commande '''ATID'''). Notre PAN ID sera '''BEE6''' et le canal sera celui par défaut '''C'''.&lt;br /&gt;
&lt;br /&gt;
Ensuite il faut leur donner une adresse de destination ('''ATDH''' &amp;amp; '''ATDL''') qui sera l'adresse broadcast, pour ce faire on entre &lt;br /&gt;
 ATDH=0000&lt;br /&gt;
 ATDL=FFFF&lt;br /&gt;
&lt;br /&gt;
Enfin '''ATMY''' représente l'ID du XBee, notre premier XBee aura comme ID 5000 et le second 5001.&lt;br /&gt;
&lt;br /&gt;
N'oublions pas de sauvegarder les paramètres avec '''ATWR'''.&lt;br /&gt;
&lt;br /&gt;
On vérifie que tout a bien été pris en compte :&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;&lt;br /&gt;
+++OK&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATID&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
BEE6&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
C&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
0&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDL&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
FFFF&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATMY&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
5000&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCN&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Puis on fait de même avec le deuxième XBee (ID 5001).&lt;br /&gt;
&lt;br /&gt;
Voilà, lorsque on envoie des caractères par liaison série sur 5000, la LED '''Tx''' de 5000 s'allume et la Led '''Rx''' de 5001 s'allume elle aussi. Cela signifie que l'envoi de donnée par onde radio s'effectue correctement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que les XBee émettent et reçoivent, on peut commencer les mesures avec notre SDR. Mais avant cela il va falloir bien se familiariser avec le logiciel GNU RADIO qui est assez difficile à prendre en main.&lt;br /&gt;
&lt;br /&gt;
=== Première prise en main du logiciel GNURADIO ===&lt;br /&gt;
&lt;br /&gt;
Installation de GNU radio avec les fonctions + drivers pour HackRF : &lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install gqrx-sdr gnuradio gr-osmosdr hackrf &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le bloc Osmocom Source sert de &amp;quot;passerelle&amp;quot; entre le logiciel et la SDR, il permet de transmettre les informations récupérées par le HackRF afin qu'on puisse les traiter avec d'autres bloc de fonctions.&lt;br /&gt;
&lt;br /&gt;
Si on veut pouvoir récuperer les données il faut passer l'argument ''hackrf=0'' dans la box périphérique du bloc Osmocom.&lt;br /&gt;
&lt;br /&gt;
Ci-dessous on peut voir le spectre environnant entre 2.44GHz et 2.460GHz grâce au bloc WX GUI FFT Sink.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ScreenGnuRadio.png|Interface de GNURadio]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous a permis d'effectuer notre première expérience. L'utilisation des deux Xbees nous a permis d'observer l'impact des Xbee sur le champ électromagéntique environnant.&lt;br /&gt;
&lt;br /&gt;
Si on analyse le spectre environnant grâce au module FFT de GNU Radio, lorsque les Xbee communiquent entre eux, on peut apercevoir un pic caractéristique propre.&lt;br /&gt;
En effet, lors de l'emission d'un message sur le port série, on a un pic qui se dégage du spectre d'amplitude -20dBm. Ce pic est caractéristique au canal de communication choisi et configuré sur le Xbee.&lt;br /&gt;
Néanmoins, le signal est perturbé par le bruit environnant. &lt;br /&gt;
L'expérience étant effectuée au sein de l'école, les signaux Wi-Fi perturberont l'étude.&lt;br /&gt;
Il faut noter que la norme IEEE 802.11 impose au Wi-Fi l'utilisation d'une bande passante s'étalant de 2.4 GHz à 2.5 GHz.&lt;br /&gt;
&lt;br /&gt;
La bande passante des modules Zigbee se décomposent en 16 canaux, allant de 2400 MHz à 2480 MHz par pas de 5 MHz.&lt;br /&gt;
&lt;br /&gt;
Le canal ici utilisé est le canal 13 (3ème canal) de fréquence 2415 MHz.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[Fichier:Channel135001.png|thumb|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Fichier:channel135000.png|thumb|none|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBeeCh13.png|Spectre de l'environnement autour du XBee|thumb|none|400 px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBeeCh13SND.png|Lors de l'envoi de données au XBee voisin|thumb|none|400 px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut observer un pic de puissance lors de l'envoi d'une donnée en série à la fréquence 2.415 GHz.&lt;br /&gt;
Il nous est maintenant nécessaire d'analyser de plus près les signaux et leurs fréquence centrale dans la bande perçue au dessus de -20dB.&lt;br /&gt;
&lt;br /&gt;
On réeffectuera une expérience en zone isolée des signaux parasites.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous avons principalement fait des recherches dans le but de mieux comprendre les signaux émis par le Xbee.&lt;br /&gt;
&lt;br /&gt;
En somme, nous étions confrontés à de nombreuses interrogations. Le fonctionnement du Xbee étant assez simple et la sécurité du protocole Zigbee étant moindre, y a t-il possibilité de démoduler le signal émis afin de développer nos études ?&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
[[Fichier:Switchchannel pyscript.PNG|upright=0.8|thumb|right|Script Python]]&lt;br /&gt;
&lt;br /&gt;
Après réflexion et consultation de nos encadrants, nous nous sommes rendu compte que la démodulation prévue lors de la semaine 4 n'aiderait pas à répondre à la problématique de notre sujet !  &lt;br /&gt;
&lt;br /&gt;
Afin de mieux visualiser les signaux des Xbee , on décide d'automatiser le processus d'envoi sur le port série des données vers le Xbee. C'est à dire concevoir un programme Python qui automatisera l'envoi de données et le changement de channel à intervalle de temps régulier (Changement toutes les 10 secondes). &lt;br /&gt;
&lt;br /&gt;
L'utilisation de Minicom '''n'était pas du tout la meilleure solution''' pour faire émettre les Xbee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Après quelques essais, on remarque que lorsque le Xbee émet sur le channel 13, il émet à environ 2,445GHz au lieu d'émettre à 2,415GHz soit une différence de 30MHz : Ceci n'est pas important, car ce que l'on souhaite remarquer c'est un éventuel décalage de la fréquence centrale entre deux Xbee différents. Si les deux Xbee n'ont pas la même frequence centrale on pourra conclure que la '''fréquence centrale''' de la porteuse du Xbee n'est pas '''une des clés''' permettant d''''identifier''' cet émetteur/récepteur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaines 6 et 7==&lt;br /&gt;
&lt;br /&gt;
Afin de mieux cerner le comportement électromagnétique des modules XBee, il nous est nécessaire de comprendre leur fonctionnement et le protocole Zigbee.&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous avons cherché à souligner le parallélisme entre étude fréquentielle par le spectre et étude temporelle du signal.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PlancheXPtest.jpg|thumb|right|Planche prototype]]&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous avons paramétré la fréquence centrale de capture du HackRF. En effet, bien que le HackRF dispose d'une large bande passante, afin de se focaliser sur la porteuse, il est indispensable de configurer le HackRF en conséquence.&lt;br /&gt;
En second lieu, pour éviter une variation du RSSI (Received Signal Strength Indication) et de la puissance du signal, nous devions mettre en place une prototype de &amp;quot;planche expérimentale&amp;quot; sur laquelle devaient être fixés nos différents modules (l'antenne de reception et les Xbees).&lt;br /&gt;
&lt;br /&gt;
La position des antennes les unes par rapport aux autres est fondamentale. Afin d'optimiser la reception, les antennes doivent être parallèles.&lt;br /&gt;
&lt;br /&gt;
Chaque Xbee est identifié par un chiffre (1 ou 2). En effet, l'attribution de ces chiffres sera définitive pour ne pas perturber la cohérence des expériences. &lt;br /&gt;
Leur position est aussi fondamentale. Ainsi, en fonction que le Xbee soit emetteur ou récepteur, il sera disposé différement sur la planche.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Le XBee 1 émetteur directement connecté en série au PC===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:GrapheGNURadio01.png|thumb|left|150px|Schéma simple d'étude fréquentielle et temporelle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette expérience est la première mettant en place un contexte (un seul Xbee émetteur connecté en série au PC, le deuxième Xbee étant inactif) et nous permettra d'étudier le plus de cas possibles.&lt;br /&gt;
&lt;br /&gt;
Nous avons tout d'abord commencé par un graphe GNURadio simple permettant l'observation du spectre et du signal et la variation de la fréquence d'étude.&lt;br /&gt;
&lt;br /&gt;
Le script python a été réécrit afin que le XBee puisse émettre une chaîne de caractère &amp;quot;HELLO&amp;quot; * 1024. En effet, même si la fréquence de balayage du module HackRF peut être grandement augmentée, il faut éviter d'aller au dessous de 0.01s, finissant par consommer de manière considérable les ressources octroyées par le CPU le cas échéant.&lt;br /&gt;
Le fait d'augmenter la taille de la chaine de caractère permet de mieux synchroniser l'étude en temps réel avec la capture des données.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc émis les données sur le canal 14, soit la fréquence centrale est à 2.420GHz selon la norme Zigbee. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Etude fréquentielle&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L'étude fréquentielle est similaire à celle réalisée auparavant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div center&amp;gt;&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[Fichier:Spectrefreq2.png|thumb|center|750px|Spectre fréquentiel au canal 14]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[Fichier:Spectrogram.png|thumb|center|250px|Spectrogramme]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on peut observer sur l'analyseur de spectre GNURadio que la fréquence centrale est située 2.450GHz. Nous n'avons pas trouvé la raison mais il s'agit sûrement d'un décalage au niveau applicatif.&lt;br /&gt;
&lt;br /&gt;
D'autre part, l'ensemble des fréquences qui dessinent le spectre s'étalent sur une large bande de fréquence. En effet, cette technique d'étalement appelée DSSS (Direct-Sequence Spread Spectrum) utilisé par les modules XBee permet au signal d'être moins sensible aux interférences et aux brouillages. En outre, même si la puissance du spectre dans sa globalité reste la même, la densité spectrale elle diminue considérablement, rendant le signal plus &amp;quot;discret&amp;quot;.&lt;br /&gt;
La différence de puissance entre le lobe principal et les premiers lobes secondaires sont de 30 dB, ce qui est aussi commun au DSSS.&lt;br /&gt;
&lt;br /&gt;
Le spectrogramme témoigne aussi de l'étalement du signal sur un peu plus de 6 MHz (3MHz de par et d'autre de la fréquence centrale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt; Etude temporelle &amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Signal temporel.png|thumb|left|500px|Signal observable centré à 2.450GHz lors de l'émission]]&lt;br /&gt;
&lt;br /&gt;
Le signal ici est séparé en deux composantes car il s'agit d'un signal complexe. Nous avons supposé en premier temps qu'il s'agissait du signal principal décalé de 180°, ce qui n'était pas le cas.&lt;br /&gt;
Après quelques recherches, cette séparation des composantes permet de transmettre deux fois plus de données sur la même bande passante.&lt;br /&gt;
Le signal observable témoigne d'une modulation bien spécifique au XBee. En effet, on peut observer des sauts de phase à différents points, qui correspondent à une modulation par changement de phase (modulation QPSK ou Quadratic Phase-Shift Keying). Ce sont ces sauts de phases qui permettent la transmission des bits.&lt;br /&gt;
Les changements de phase s'il y a se font toutes les µs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé d'enregistrer ces données brutes dans un fichier et nous l'avons étudier avec Audacity, logiciel open-source de son, et donc de signaux ! L'inconvénient avec l'interface graphique QT de GNURadio est son manque de précision lors d'un dézoom sur le signal en temps réel. Audacity permet de palier à celà !&lt;br /&gt;
En outre, on peut voir que les paquets Xbee sont reconnaissables. En effet, le signal témoigne de la taille du paquet XBee.&lt;br /&gt;
&lt;br /&gt;
Le paquet XBee est constitué d'un premier header (header physique) de 6 octets :&lt;br /&gt;
- la séquence de préambule (4 octets) constitué de 32 bits à 0&lt;br /&gt;
&lt;br /&gt;
- l'indice de début du paquet fixé à 0x7A (1 octet)&lt;br /&gt;
&lt;br /&gt;
- la longueur du paquet (1 octet);&lt;br /&gt;
&lt;br /&gt;
d'un header MAC (7 à 27 octets en fonction des informations de l'adresse), d'un bloc FCS de fin de paquet (2 octets) et l'ensemble des données (de 1 à 104 octets).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Signal2.png|thumb|right|400px|On observe graphiquement qu'un paquet est transmis en 3846µs]]&lt;br /&gt;
[[Fichier:PacketXBee.png|400px|thumb|right|Paquet XBee]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Comme dit plus haut, les signaux émis par le XBee connaissent un étalement sur le spectre par DSSS.&lt;br /&gt;
Cet étalement s'effectue en divisant chaque symbole (correspondant à une série de 4 bits) transmis en &amp;lt;B&amp;gt;&amp;lt;I&amp;gt;chips&amp;lt;/I&amp;gt;&amp;lt;/B&amp;gt;.&lt;br /&gt;
Chaque symbole, soit 4 bits, correspond à 32 chips, et donc 32 états binaires (1 octet correspond à 64 chips).&lt;br /&gt;
Dans le cas de la norme ZigBee, la transmission de chacun des chips est synchronisé sur chaque µs (1 chip toutes les µs).&lt;br /&gt;
&lt;br /&gt;
Les signaux reçus par l'antenne HackRF étaient deux sinusoïdes modulées en phase et qui s'étalaient sur une période d'environ 3840µs (3846µs graphiquement mais il y a possibilité d'erreur à l'echelle du µs).&lt;br /&gt;
Sachant qu'un octet correspond à 64µs, on a :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;N_{octets} =\frac{2*T_{signal}}{64*T_{chip}}=\frac{2*3.840*10^{-6}}{64*10^{-6}}=120 octets&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'analogie peut être effectuée entre paquet Ethernet et paquet ZigBee. En effet, la taille limite des données d'un paquet est de 104 octets. La chaîne de caractère n'étant qu'envoyée par paquet, le paquet observé n'est que de 120 octets, ce qui est cohérent avec les caractéristiques du XBee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Hello1024secs.png|thumb|none|Temps de transmission de la chaîne de caractères &amp;quot;HELLO&amp;quot; 1024 fois]] &amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:AudacitySignal2.png|thumb|none|51 Paquets XBee portent la chaîne de caractère &amp;quot;HELLO&amp;quot; 1024 fois]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 8==&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé cette semaine d'étudier, ce qui est selon pour nous, l'une des pistes fondamentales de notre projet, et plus particulièrement de l'étude de nos signaux : le rapport signal bruit.&lt;br /&gt;
&lt;br /&gt;
L'objectif de cette semaine et de celle à venir était, à partir du signal acquis par le hackrf, d'effectuer le calcul du SNR (signal-to-noise ratio) tel que :&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;SNR =\frac{P_{signal}}{P_{bruit}}&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le script python qui nous a permis de communiquer entre les deux shields Xbee se verra amélioré afin de faire plusieurs acquisition des signaux lors de la communication entre les Xbee, effectuer une moyenne statistique, et de même lorsqu'il n'y a pas de communication.&lt;br /&gt;
&lt;br /&gt;
Néanmoins, nous avons essayé d'approcher le SNR directement depuis l'interface de GnuRadio par le biais de l'utilitaire graphique et le langage en bloc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 9==&lt;br /&gt;
&lt;br /&gt;
L'étude des signaux posait réellement problème de par le fait qu'une grande partie de la capture faite n'était que purement le bruit sans signal (utile plus tard pour l'étude du SNR).&lt;br /&gt;
Prenons l'exemple d'un paquet de 21 octets (un paquet contenant une seule chaîne de caractères HELLO). Le signal s'étalerait en théorie sur 21*64 chips soit 672 chips. Sachant que la modulation est une modulation QPSK, on s'étale sur un temps de 672µs.&lt;br /&gt;
En effet, le Xbee transmet toutes les 100ms.&lt;br /&gt;
Donc qu'une partie du signal nous est utile.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décider d'écrire un script qui nous permettrait d'étudier le signal dans de meilleures conditions, et donc de le filtrer.&lt;br /&gt;
&lt;br /&gt;
Chaque capture de signal effectuée est enregistrée dans un fichier par le biais du bloc fonction &amp;lt;B&amp;gt;&amp;lt;I&amp;gt;File Sink&amp;lt;/I&amp;gt;&amp;lt;/B&amp;gt; du compagnon GNURadio. Néanmoins, les fichiers obtenus sont des fichiers binaires assez lourds (environ 500Mo pour une capture de 3s), ce qui est un réel problème et qui implique le filtrage du signal.&lt;br /&gt;
&lt;br /&gt;
La bibliothèque numpy pour python nous permet en outre directement d'importer les échantillons des signaux, les traduisant du binaire à un format cible (complexe flottant 64 bits) dans un Array par le biais de la fonction:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; f = scipy.fromfile(open(&amp;quot;Nom du fichier&amp;quot;), dtype=scipy.complex64) &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La première solution pour réduire ce signal était d'imposer un threshold directement sur le signal, supérieur au bruit, mais qui conduirait à une perte d'une partie du signal à étudier.&lt;br /&gt;
La deuxième solution qui a été retenue était tout simplement de calculer l'amplitude et la phase du signal et appliquer ce même threshold à l'amplitude.&lt;br /&gt;
&lt;br /&gt;
== Semaine 10 et + ==&lt;br /&gt;
[[Fichier:Traitement xbee2.png|thumb|right|redresse=2|Signal Xbee2 post-traitement ]&lt;br /&gt;
[[Fichier:Constellation xbee2.png|thumb|right|redresse=2|Diagramme de constellation xbee2 après utilisation de LightSignal]&lt;br /&gt;
A partir de la semaine 10 nous n'avons fait qu’enchaîner les expériences pour avoir suffisamment de données et en tirer des conclusions.&lt;br /&gt;
&lt;br /&gt;
Lorsqu'on fait une acquisition d'un signal xbee , on peut maintenant via un script traiter cette acquisition et récupérer seulement les parties qui nous intéressent : A savoir la partie réelle et la partie imaginaire , l'amplitude du signal et enfin la phase du signal.&lt;br /&gt;
&lt;br /&gt;
Exemple ci dessous après acquisition + traitement de notre xbee n°2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'utilisation du script LightSignal permet de retirer toutes les phases en dehors du signal. Ainsi on peut bien observer le diagramme de constellation.&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;/div&gt;</summary>
		<author><name>Amoreau</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=73740</id>
		<title>IMA4 2018/2019 P70</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=73740"/>
				<updated>2019-04-25T20:25:51Z</updated>
		
		<summary type="html">&lt;p&gt;Amoreau : /* Semaine 10 et + */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;font-size: 30px; width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;Impact du matériel et du logiciel sur le champ électromagnétique&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Projet'''&amp;lt;/ins&amp;gt; : Impact du matériel et du logiciel sur le rayonnement électromagnétique&lt;br /&gt;
&lt;br /&gt;
''Nous proposons d'évaluer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et la consommation électrique.''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Etudiants'''&amp;lt;/ins&amp;gt; : Souheib KHINACHE et Antoine MOREAU&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Encadrants'''&amp;lt;/ins&amp;gt; : Alexandre BOE, Xavier REDON et Thomas VANTROYS&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'internet des objets est un marché en plein essor. La communication entre les différents objets connectés crée un nuage de signaux autour d'eux. Ces derniers sont vus par les utilisateurs comme des boîtes noires : le fonctionnement se fait sans en connaître les composants matériels et logiciels. &lt;br /&gt;
Néanmoins, ces objets, de par leurs propriétés électroniques, créent des fuites électromagnétiques impactant le champ environnant. &lt;br /&gt;
&lt;br /&gt;
Bien qu'ils peuvent porter à débat sur l'impact sur la santé, ces signaux peuvent représenter de réelles sources d'informations sur l'aspect matériel et applicatif de l'objet.&lt;br /&gt;
&lt;br /&gt;
Il serait donc intéressant d'avoir idée générale sur le fonctionnement du système en interprétant les ondes électromagnétiques émises par ce système.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Les principaux objectifs de ce projet seront donc de mesurer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et sur la consommation électrique.&lt;br /&gt;
Pour cela, l'outil potentiel avec lequel nous pourrions travailler serait une sonde de champ électromagnétique afin d'établir des mesures. &lt;br /&gt;
Cependant, nous pourrions concevoir notre propre système de capture et d'interprétation à partir d'une antenne, de filtres de fréquences et d'un microcontrôleur (on commencera par un ATMega328P). Il sera nécessaire de prendre en compte les perturbations issues de notre appareil de mesure et d'en tenir compte.&lt;br /&gt;
&lt;br /&gt;
On effectuera ainsi plusieurs expérimentations sur différents supports d'étude :&lt;br /&gt;
*l'aspect &amp;quot;Hardware&amp;quot; en étudiant différents modèles pour un même type de shield  &lt;br /&gt;
*l'aspect calculatoire du matériel en se basant sur l'impact des microcontrôleurs en fonction du modèle (ATMega328P et ATMega2560)&lt;br /&gt;
*l'aspect &amp;quot;Software&amp;quot;, en étudiant l'impact du logiciel et du firmware d'un même composant (différents firmwares pour un même shield Wi-Fi)&lt;br /&gt;
*l'aspect puissance des composants électroniques de gestion de puissance (ponts, hacheurs, onduleurs...).&lt;br /&gt;
&lt;br /&gt;
L'étude des différentes informations se fera par traitement des signaux électromagnétiques et des spectres. &lt;br /&gt;
Afin de mieux appréhender le problème, il nous est nécessaire de comprendre les phénomènes physiques issus de la notion d'électromagnétisme.&lt;br /&gt;
&lt;br /&gt;
Ces études mèneront à une étape plus complexe : l'interprétation des signaux. En effet, l'un des objectifs de ce projet est de comprendre du mieux possible le fonctionnement d'un système sans y avoir accès directement, et donc dans ce contexte &amp;quot;traduire&amp;quot; un ensemble de signaux électromagnétiques.&lt;br /&gt;
&lt;br /&gt;
On pourra en outre apporter un aspect visuel à l'étude en rajoutant une interface informatique.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
Bien qu'aux yeux de nombreuses personnes le bruit électromagnétique créé par les équipements électroniques du quotidien peut porter à controverse (débats concernant l'impact sur la santé par exemple), il peut être une source d'informations. &lt;br /&gt;
De nos jours, les ondes électromagnétiques restent un vaste champ d'étude, sujettes à de nombreuses thèses et recherches au sein des laboratoires.&lt;br /&gt;
&lt;br /&gt;
On peut prendre l'exemple de [https://www.eurekalert.org/pub_releases/2015-01/giot-rwt010715.php Milos Prvulovic], professeur à l'Institut Technologique de Géorgie, ayant simulé un contexte de cybercafé, dans lequel il place une antenne magnétique, un ordinateur portable cible et un ordinateur &amp;quot;espion&amp;quot;. Il réussit, grâce aux signaux EM émis par l'impulsion de l'appui des touches clavier à capter un message écrit par un ordinateur cible. &lt;br /&gt;
&lt;br /&gt;
Néanmoins, dans le quotidien, l'utilisation des sondes électromagnétiques se fait pour l'étude énergétique d'un système électronique (fuites électromagnétiques anormales, preuves d'une anomalie...) afin de respecter certaines normes législatives. Le code du travail par exemple réglemente et définit des valeurs seuils par le biais des articles R. 4453-3 et R. 4453-4.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
'''NBM-520 de NARDA STS'''&lt;br /&gt;
[[Fichier: NBM_TS.png|thumb|300px|NBM-TS, application des appareils NBM]]&lt;br /&gt;
NARDA STS est une entreprise qui fournit des outils de mesure. Elle met à disposition aux professionnels des sondes électromagnétiques.&lt;br /&gt;
La NBM-520 est un appareil de la franchise, mesurant le champ électrique et magnétique. Elle donne des valeurs précises du champ électromagnétique ambiant sur une large bande. Elle propose différentes sondes modulables permettant une souplesse au niveau de l'étude en fonction des besoins, avec des sondes pouvant étudier des signaux de fréquence de 100kHz à 6GHz ou même de 300kHz à 50GHz (en fonction de la sonde choisie).&lt;br /&gt;
&lt;br /&gt;
En outre, le dispositif peut se connecter en USB sur PC afin d'envoyer les données capturées et d'en faire une étude. Le dispositif propose un logiciel d'étude, NBM-TS, permettant d'observer du champ en fonction du temps, de la fréquence, de la position...&lt;br /&gt;
&lt;br /&gt;
L'équipement est utilisé par l'ANF (l'Agence Nationale des Fréquences, agence gérant l'ensemble des normes autour des radiofréquences), et est donc un gage de qualité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Avantages :''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Large bande de fréquence&lt;br /&gt;
* Matériel solide&lt;br /&gt;
* Application fonctionnelle permettant l'étude et gestion des données&lt;br /&gt;
* Possibilité d'étudier séparément champ électrique et magnétique&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Inconvénients:''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Impossible d'étudier les basses fréquences (appareils sous tension, bobinages...)&lt;br /&gt;
* Prix élevé : à partir de 3100€&lt;br /&gt;
* La cible de ce produit est surtout les professionels&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
'''Une pita.'''&lt;br /&gt;
&lt;br /&gt;
''Comment mon pain à pita vole ta clé RSA ?''&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Pita.jpg|200px|thumb|left|Une pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Des chercheurs israéliens ont découvert un moyen de capturer des clés de cryptage RSA, réputées comme inviolables, par le biais d'une pita... du moins avec un dispositif suffisamment petit pour être caché dans un pain à pita. &lt;br /&gt;
Le dispositif, renommé PITA pour Portable Instrument for Trace Acquisition a la particularité de capturer les ondes radio électromagnétiques émanantes d'un PC, qu'il soit connecté à un réseau ou pas.&lt;br /&gt;
Les différentes opérations du processeur sont identifiées en distinguant les différents modèles de l'activité radio sur le spectre EM.&lt;br /&gt;
&lt;br /&gt;
Bien que la capture des clés RSA a été faite dans des conditions particulières (modification du processeur de l'ordinateur cible), il est néanmoins possible, selon les chercheurs, d'identifier quelle type d'activité est exercée par l'ordinateur ainsi que son état.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PITA.jpg|300px|thumb|right|Un dessous de pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'un des points importants concernant le dispositif est son coût : moins de 300 euros.&lt;br /&gt;
L'appareil dispose :&lt;br /&gt;
* d'un PC portatif (PC-on-a-stick) ''Rikomagic MK802 IV'',&lt;br /&gt;
* d'un recepteur radio SDR ''FUNcube Dongle Pro+''&lt;br /&gt;
* d'une antenne radio&lt;br /&gt;
* d'une batterie&lt;br /&gt;
* d'une antenne WiFi&lt;br /&gt;
* d'une carte MicroSD&lt;br /&gt;
* d'un adapteur d'antenne&lt;br /&gt;
* et d'une '''pita'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le dispositif aurait une portée de 50cm. &lt;br /&gt;
Les chercheurs israéliens ont collaboré avec GNU Private Guard (logiciel de cryptage asymétrique) afin de protéger contre ces attaques les clés de cryptage.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
&lt;br /&gt;
''Scénario 1''&lt;br /&gt;
&lt;br /&gt;
Gérard a toujours le flair pour les bonnes affaires. Il a acheté une centaine de clés WiFi à un prix dérisoire sur AloXpresso afin de faire du profit à la revente. Le vendeur lui garantit que toutes les clés fonctionnent correctement. Gérard veut vérifier. Après vérification, 99 des clés sur 100 fonctionnent comme prévu. Gérard aimerait être sûr du disfonctionnement, mais Gérard n'est pas une pointure en informatique. &lt;br /&gt;
&lt;br /&gt;
Coup de génie ! Il se rappelle qu'il dispose d'un dispositif qui capte les ondes EM et les interprète directement. C'est le moment de tester ça. Il remarque une anomalie sur le spectre.&lt;br /&gt;
Il décide de contacter le revendeur pour lui signaler un disfonctionnement sur l'une des clé. &lt;br /&gt;
Pas de soucis. Le vendeur, étant bon prince, lui envoie une autre clé USB et lui fait une ristourne.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Scénario 2''&lt;br /&gt;
&lt;br /&gt;
La police fait une perquisition chez un individu soupçonné de graves délits. Cela fait plusieurs mois que la brigade criminelle prépare l'intervention, et une fois sur les lieux ils arrêtent le soupçonné malfaiteur.&lt;br /&gt;
Cependant avant de repartir, elle veut faire l'acquisition d'un maximum de preuves. Elle veut alors prendre l'essentiel des objets, dont certains objets éléctroniques connectés de l'individu dont elle pourra extraire les informations qui serviront à le faire tomber.&lt;br /&gt;
&lt;br /&gt;
Par chance, elle dispose d'un petit outil qui scannera les signatures alentours des objets connectés, comme des téléphones cachés, clés USB wifi dissimulées dans le décor etc..&lt;br /&gt;
Et si le suspect avait modifié malignement un objet connecté banal pour l'utiliser autrement à ses fins, la police le découvrirait car elle possède une base de données de toutes les signatures spectrales des objets connectés sur le marché et celle de l'objet modifié ne collerait pas avec celle de la base de données.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
&lt;br /&gt;
'''Comment étudier les signaux malgré les perturbations électromagnétiques ambiants et les faibles signaux des µC ?'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les signaux électromagnétiques des microcontrôleurs ou d'autres composants peuvent être faibles. Il y a une possibilité pour palier à ce problème, c'est de capter les signaux depuis une antenne émettrice que l'on rajoute à l'objet d'étude. &lt;br /&gt;
Nous utiliserons un SDR (Software Defined-Radio) afin de capter les ondes radio et les étudier directement sur PC. Le filtrage s'effectuera ainsi de manière numérique. Plusieurs tests seront effectués pour le même objet à étudier (quand on parle d'objet, on évoque un ensemble de plusieurs composants, comme par exemple une alimentation, un micro-contrôleur et une antenne). Ainsi, de manière statistique, nous pourrons en déduire un pattern récurrent pour chaque expérience en les effectuant dans différents environnements (pourquoi pas une chambre anachoïque). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons &lt;br /&gt;
* Capter le signal émis par un objet connecté le plus précisément possible&lt;br /&gt;
&lt;br /&gt;
* Concevoir nos propres objets connectés tous différents mais basés sur un même modèle&lt;br /&gt;
&lt;br /&gt;
* Interpréter les spectrogrammes, faire une étude statistique des signaux émis par nos différents objets et en tirer des conclusions&lt;br /&gt;
&lt;br /&gt;
* Répertorier dans une base de données les signatures de nos objets , voire de quelques objets disponibles sur le marché&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix logiciel :&lt;br /&gt;
&lt;br /&gt;
- La distribution Linux Pentoo ou Kali pour traiter les signaux avec GNU RADIO (Suite logicielle dédiée à l’implémentation de radios logicielles et de systèmes de traitement du signal).&lt;br /&gt;
&lt;br /&gt;
- FemtoOS pour l'OS des ATMEGA328P et ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix Matériel : &lt;br /&gt;
&lt;br /&gt;
- Plusieurs modules radios émetteurs &lt;br /&gt;
&lt;br /&gt;
- Plusieurs microcontrôleurs ATMEGA328P et un ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
- Des alimentations identiques pour chaque PCB&lt;br /&gt;
&lt;br /&gt;
- Un HackRF pour la réception des signaux&lt;br /&gt;
&lt;br /&gt;
- Une antenne 50 Ohm pour le HackRF [https://www.passion-radio.fr/accessoires-sdr/antenne-ant500-74.html]&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous devons préparer tout le matériel qui servira à faire nos tests. C'est à dire concevoir :&lt;br /&gt;
&lt;br /&gt;
- Un ensemble SDR/PC qui traitera le signal reçu avec GNU RADIO.&lt;br /&gt;
&lt;br /&gt;
- Une multitude de PCB qui seront nos objets connectés (Sur chacun d'entre eux on trouvera au minimum une antenne radio, un microcontrôleur et une alimentation)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de récupérer une &amp;quot;signature&amp;quot; d'un de nos objets , il faudra faire plus de 50 analyses spectrales pour conclure statistiquement sur une bonne signature qui caractérisera l'objet.&lt;br /&gt;
&lt;br /&gt;
Nous devons donc dans un second temps: &lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques mais qui ont un '''firmware''' différent.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques qui ont pour seule différence le '''microcontrôleur'''.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques dont seul le '''PCB''' diffère.&lt;br /&gt;
&lt;br /&gt;
Grâce à tous ces tests , nous pourrons conclure et voir l'impact qu'à le matériel ou le logiciel sur la signature d'un objet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enfin si les délais nous le permettent, nous pourrons réaliser un software qui cartographiera nos objets connectés dans la pièce grâce à la puissance de la signature reçue (Ce qui devrait être réalisable puisqu'à ce stade nous aurons une base de donnée des signatures).&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
|3&lt;br /&gt;
|8&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Recherches&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|6&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Prise en main de GnuRadio&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Configuration Xbee&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Expériences&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|5&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|4&lt;br /&gt;
|15&lt;br /&gt;
|9&lt;br /&gt;
|8&lt;br /&gt;
|7&lt;br /&gt;
|8&lt;br /&gt;
|8&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
[[Fichier:HackrfOne.jpeg|200px|thumb|right|Le HackRF One]]&lt;br /&gt;
Durant cette semaine, nous avons continué nos recherches notamment sur le moyen de transmission de nos objets connectés. Nous avons confirmé notre choix de notre SDR : Monsieur Boé nous a confirmé que des HackRF seraient disponibles dans les laboratoires et qu'il pourrait nous en prêter un. On disposera donc d'une antenne puissante pour traiter les signaux émis par nos objets communiquants. &lt;br /&gt;
&lt;br /&gt;
Il faudra coupler notre HackRF avec un logiciel appelé GNU RADIO qui est un logiciel très complet ( Pour information : la NASA a utilisé GNU RADIO afin de rétablir le contact avec une sonde spatiale abandonnée ). Afin de faire tourner ce logiciel libre, nous aurons besoin de la distribution Kali Linux, ex Backtrack.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Choix des émetteurs/récepteurs === &lt;br /&gt;
&lt;br /&gt;
Nous avons décidé que nos objets connectés communiqueront dans deux '''bandes de fréquences ISM''', l'une à '''900 MHz''' grâce à des modules Digi Xbee et l'autre à '''2,4 GHz''' par le moyen de modules émetteurs Bluetooth. On rappellera que les Digi Xbee et les émetteurs/récepteurs Bluetooth seront pilotés par des ATMEGA 2560.&lt;br /&gt;
&lt;br /&gt;
Les Xbee ne communiqueront pas entre eux et émettront en continu les mêmes données car ils le peuvent, alors que les émetteurs/récepteurs Bluetooth devront s'échanger des données si on veut pouvoir observer un quelconque signal autour de la fréquence de leurs porteuses. &lt;br /&gt;
&lt;br /&gt;
On voudra observer premièrement, si avec deux objets dans les '''mêmes''' conditions (donc même µc et même émetteur), on peut ou non '''distinguer une différence'''. Ceci est fondamental pour la suite des expériences, puisque si les deux émettent à la même fréquence, on pourra faire varier plusieurs paramètres afin de trouver '''des clés''' (des signes) qui pourraient aider à l'identification du matériel.&lt;br /&gt;
&lt;br /&gt;
Ces clés représentent différents facteurs potentiels d'identification du signal (le rapport signal-bruit en fonction de la distance par exemple...).&lt;br /&gt;
&lt;br /&gt;
''On planifie alors pour la semaine suivante de réussir à faire émettre, en utilisant simplement des breadboards pour commencer, nos Xbee et modules BT et observer quelque chose grâce à notre SDR.''&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration des modules XBee ===&lt;br /&gt;
&lt;br /&gt;
Nous avons configuré deux XBee afin qu'ils puissent communiquer entre eux : &lt;br /&gt;
&lt;br /&gt;
Les modules XBee ont été montés sur des platines d'interface USB/série de manière à ce qu'on puisse les paramétrer via le programme de contrôle ''minicom''. &lt;br /&gt;
&lt;br /&gt;
Dans le doute, on supposera que les XBee communiquent à 9600 Baud. On exécute la commande suivante : &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;minicom -b 9600 -D /dev/ttyUSB0&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
On active l'echo local dans minicom, afin de pouvoir observer ce qui a été envoyé par liaison série au XBee ('''CTRL+A''' puis '''E''').&lt;br /&gt;
&lt;br /&gt;
Pour commencer le paramètrage il faut taper ''' +++ ''' rapidement. Le XBee nous répond OK, cela veut dire que nous sommes dans le mode configuration et que nous pouvons utiliser les commandes '''AT'''. (Redirection vers la liste des commandes AT XBee [https://cdn.sparkfun.com/assets/resources/2/9/22AT_Commands.pdf]).&lt;br /&gt;
&lt;br /&gt;
Comme nos XBee ont été utilisés auparavant, il a fallu les restaurer à l'état usine avec la commande '''ATRE'''.&lt;br /&gt;
&lt;br /&gt;
Si on souhaite que des XBee puissent s'envoyer des données il faut qu'ils soient sur le même canal (commande '''ATCH''') et aient le même PAN ID (commande '''ATID'''). Notre PAN ID sera '''BEE6''' et le canal sera celui par défaut '''C'''.&lt;br /&gt;
&lt;br /&gt;
Ensuite il faut leur donner une adresse de destination ('''ATDH''' &amp;amp; '''ATDL''') qui sera l'adresse broadcast, pour ce faire on entre &lt;br /&gt;
 ATDH=0000&lt;br /&gt;
 ATDL=FFFF&lt;br /&gt;
&lt;br /&gt;
Enfin '''ATMY''' représente l'ID du XBee, notre premier XBee aura comme ID 5000 et le second 5001.&lt;br /&gt;
&lt;br /&gt;
N'oublions pas de sauvegarder les paramètres avec '''ATWR'''.&lt;br /&gt;
&lt;br /&gt;
On vérifie que tout a bien été pris en compte :&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;&lt;br /&gt;
+++OK&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATID&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
BEE6&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
C&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
0&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDL&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
FFFF&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATMY&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
5000&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCN&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Puis on fait de même avec le deuxième XBee (ID 5001).&lt;br /&gt;
&lt;br /&gt;
Voilà, lorsque on envoie des caractères par liaison série sur 5000, la LED '''Tx''' de 5000 s'allume et la Led '''Rx''' de 5001 s'allume elle aussi. Cela signifie que l'envoi de donnée par onde radio s'effectue correctement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que les XBee émettent et reçoivent, on peut commencer les mesures avec notre SDR. Mais avant cela il va falloir bien se familiariser avec le logiciel GNU RADIO qui est assez difficile à prendre en main.&lt;br /&gt;
&lt;br /&gt;
=== Première prise en main du logiciel GNURADIO ===&lt;br /&gt;
&lt;br /&gt;
Installation de GNU radio avec les fonctions + drivers pour HackRF : &lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install gqrx-sdr gnuradio gr-osmosdr hackrf &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le bloc Osmocom Source sert de &amp;quot;passerelle&amp;quot; entre le logiciel et la SDR, il permet de transmettre les informations récupérées par le HackRF afin qu'on puisse les traiter avec d'autres bloc de fonctions.&lt;br /&gt;
&lt;br /&gt;
Si on veut pouvoir récuperer les données il faut passer l'argument ''hackrf=0'' dans la box périphérique du bloc Osmocom.&lt;br /&gt;
&lt;br /&gt;
Ci-dessous on peut voir le spectre environnant entre 2.44GHz et 2.460GHz grâce au bloc WX GUI FFT Sink.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ScreenGnuRadio.png|Interface de GNURadio]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous a permis d'effectuer notre première expérience. L'utilisation des deux Xbees nous a permis d'observer l'impact des Xbee sur le champ électromagéntique environnant.&lt;br /&gt;
&lt;br /&gt;
Si on analyse le spectre environnant grâce au module FFT de GNU Radio, lorsque les Xbee communiquent entre eux, on peut apercevoir un pic caractéristique propre.&lt;br /&gt;
En effet, lors de l'emission d'un message sur le port série, on a un pic qui se dégage du spectre d'amplitude -20dBm. Ce pic est caractéristique au canal de communication choisi et configuré sur le Xbee.&lt;br /&gt;
Néanmoins, le signal est perturbé par le bruit environnant. &lt;br /&gt;
L'expérience étant effectuée au sein de l'école, les signaux Wi-Fi perturberont l'étude.&lt;br /&gt;
Il faut noter que la norme IEEE 802.11 impose au Wi-Fi l'utilisation d'une bande passante s'étalant de 2.4 GHz à 2.5 GHz.&lt;br /&gt;
&lt;br /&gt;
La bande passante des modules Zigbee se décomposent en 16 canaux, allant de 2400 MHz à 2480 MHz par pas de 5 MHz.&lt;br /&gt;
&lt;br /&gt;
Le canal ici utilisé est le canal 13 (3ème canal) de fréquence 2415 MHz.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[Fichier:Channel135001.png|thumb|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Fichier:channel135000.png|thumb|none|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBeeCh13.png|Spectre de l'environnement autour du XBee|thumb|none|400 px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBeeCh13SND.png|Lors de l'envoi de données au XBee voisin|thumb|none|400 px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut observer un pic de puissance lors de l'envoi d'une donnée en série à la fréquence 2.415 GHz.&lt;br /&gt;
Il nous est maintenant nécessaire d'analyser de plus près les signaux et leurs fréquence centrale dans la bande perçue au dessus de -20dB.&lt;br /&gt;
&lt;br /&gt;
On réeffectuera une expérience en zone isolée des signaux parasites.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous avons principalement fait des recherches dans le but de mieux comprendre les signaux émis par le Xbee.&lt;br /&gt;
&lt;br /&gt;
En somme, nous étions confrontés à de nombreuses interrogations. Le fonctionnement du Xbee étant assez simple et la sécurité du protocole Zigbee étant moindre, y a t-il possibilité de démoduler le signal émis afin de développer nos études ?&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
[[Fichier:Switchchannel pyscript.PNG|upright=0.8|thumb|right|Script Python]]&lt;br /&gt;
&lt;br /&gt;
Après réflexion et consultation de nos encadrants, nous nous sommes rendu compte que la démodulation prévue lors de la semaine 4 n'aiderait pas à répondre à la problématique de notre sujet !  &lt;br /&gt;
&lt;br /&gt;
Afin de mieux visualiser les signaux des Xbee , on décide d'automatiser le processus d'envoi sur le port série des données vers le Xbee. C'est à dire concevoir un programme Python qui automatisera l'envoi de données et le changement de channel à intervalle de temps régulier (Changement toutes les 10 secondes). &lt;br /&gt;
&lt;br /&gt;
L'utilisation de Minicom '''n'était pas du tout la meilleure solution''' pour faire émettre les Xbee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Après quelques essais, on remarque que lorsque le Xbee émet sur le channel 13, il émet à environ 2,445GHz au lieu d'émettre à 2,415GHz soit une différence de 30MHz : Ceci n'est pas important, car ce que l'on souhaite remarquer c'est un éventuel décalage de la fréquence centrale entre deux Xbee différents. Si les deux Xbee n'ont pas la même frequence centrale on pourra conclure que la '''fréquence centrale''' de la porteuse du Xbee n'est pas '''une des clés''' permettant d''''identifier''' cet émetteur/récepteur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaines 6 et 7==&lt;br /&gt;
&lt;br /&gt;
Afin de mieux cerner le comportement électromagnétique des modules XBee, il nous est nécessaire de comprendre leur fonctionnement et le protocole Zigbee.&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous avons cherché à souligner le parallélisme entre étude fréquentielle par le spectre et étude temporelle du signal.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PlancheXPtest.jpg|thumb|right|Planche prototype]]&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous avons paramétré la fréquence centrale de capture du HackRF. En effet, bien que le HackRF dispose d'une large bande passante, afin de se focaliser sur la porteuse, il est indispensable de configurer le HackRF en conséquence.&lt;br /&gt;
En second lieu, pour éviter une variation du RSSI (Received Signal Strength Indication) et de la puissance du signal, nous devions mettre en place une prototype de &amp;quot;planche expérimentale&amp;quot; sur laquelle devaient être fixés nos différents modules (l'antenne de reception et les Xbees).&lt;br /&gt;
&lt;br /&gt;
La position des antennes les unes par rapport aux autres est fondamentale. Afin d'optimiser la reception, les antennes doivent être parallèles.&lt;br /&gt;
&lt;br /&gt;
Chaque Xbee est identifié par un chiffre (1 ou 2). En effet, l'attribution de ces chiffres sera définitive pour ne pas perturber la cohérence des expériences. &lt;br /&gt;
Leur position est aussi fondamentale. Ainsi, en fonction que le Xbee soit emetteur ou récepteur, il sera disposé différement sur la planche.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Le XBee 1 émetteur directement connecté en série au PC===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:GrapheGNURadio01.png|thumb|left|150px|Schéma simple d'étude fréquentielle et temporelle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette expérience est la première mettant en place un contexte (un seul Xbee émetteur connecté en série au PC, le deuxième Xbee étant inactif) et nous permettra d'étudier le plus de cas possibles.&lt;br /&gt;
&lt;br /&gt;
Nous avons tout d'abord commencé par un graphe GNURadio simple permettant l'observation du spectre et du signal et la variation de la fréquence d'étude.&lt;br /&gt;
&lt;br /&gt;
Le script python a été réécrit afin que le XBee puisse émettre une chaîne de caractère &amp;quot;HELLO&amp;quot; * 1024. En effet, même si la fréquence de balayage du module HackRF peut être grandement augmentée, il faut éviter d'aller au dessous de 0.01s, finissant par consommer de manière considérable les ressources octroyées par le CPU le cas échéant.&lt;br /&gt;
Le fait d'augmenter la taille de la chaine de caractère permet de mieux synchroniser l'étude en temps réel avec la capture des données.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc émis les données sur le canal 14, soit la fréquence centrale est à 2.420GHz selon la norme Zigbee. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Etude fréquentielle&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L'étude fréquentielle est similaire à celle réalisée auparavant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div center&amp;gt;&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[Fichier:Spectrefreq2.png|thumb|center|750px|Spectre fréquentiel au canal 14]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[Fichier:Spectrogram.png|thumb|center|250px|Spectrogramme]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on peut observer sur l'analyseur de spectre GNURadio que la fréquence centrale est située 2.450GHz. Nous n'avons pas trouvé la raison mais il s'agit sûrement d'un décalage au niveau applicatif.&lt;br /&gt;
&lt;br /&gt;
D'autre part, l'ensemble des fréquences qui dessinent le spectre s'étalent sur une large bande de fréquence. En effet, cette technique d'étalement appelée DSSS (Direct-Sequence Spread Spectrum) utilisé par les modules XBee permet au signal d'être moins sensible aux interférences et aux brouillages. En outre, même si la puissance du spectre dans sa globalité reste la même, la densité spectrale elle diminue considérablement, rendant le signal plus &amp;quot;discret&amp;quot;.&lt;br /&gt;
La différence de puissance entre le lobe principal et les premiers lobes secondaires sont de 30 dB, ce qui est aussi commun au DSSS.&lt;br /&gt;
&lt;br /&gt;
Le spectrogramme témoigne aussi de l'étalement du signal sur un peu plus de 6 MHz (3MHz de par et d'autre de la fréquence centrale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt; Etude temporelle &amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Signal temporel.png|thumb|left|500px|Signal observable centré à 2.450GHz lors de l'émission]]&lt;br /&gt;
&lt;br /&gt;
Le signal ici est séparé en deux composantes car il s'agit d'un signal complexe. Nous avons supposé en premier temps qu'il s'agissait du signal principal décalé de 180°, ce qui n'était pas le cas.&lt;br /&gt;
Après quelques recherches, cette séparation des composantes permet de transmettre deux fois plus de données sur la même bande passante.&lt;br /&gt;
Le signal observable témoigne d'une modulation bien spécifique au XBee. En effet, on peut observer des sauts de phase à différents points, qui correspondent à une modulation par changement de phase (modulation QPSK ou Quadratic Phase-Shift Keying). Ce sont ces sauts de phases qui permettent la transmission des bits.&lt;br /&gt;
Les changements de phase s'il y a se font toutes les µs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé d'enregistrer ces données brutes dans un fichier et nous l'avons étudier avec Audacity, logiciel open-source de son, et donc de signaux ! L'inconvénient avec l'interface graphique QT de GNURadio est son manque de précision lors d'un dézoom sur le signal en temps réel. Audacity permet de palier à celà !&lt;br /&gt;
En outre, on peut voir que les paquets Xbee sont reconnaissables. En effet, le signal témoigne de la taille du paquet XBee.&lt;br /&gt;
&lt;br /&gt;
Le paquet XBee est constitué d'un premier header (header physique) de 6 octets :&lt;br /&gt;
- la séquence de préambule (4 octets) constitué de 32 bits à 0&lt;br /&gt;
&lt;br /&gt;
- l'indice de début du paquet fixé à 0x7A (1 octet)&lt;br /&gt;
&lt;br /&gt;
- la longueur du paquet (1 octet);&lt;br /&gt;
&lt;br /&gt;
d'un header MAC (7 à 27 octets en fonction des informations de l'adresse), d'un bloc FCS de fin de paquet (2 octets) et l'ensemble des données (de 1 à 104 octets).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Signal2.png|thumb|right|400px|On observe graphiquement qu'un paquet est transmis en 3846µs]]&lt;br /&gt;
[[Fichier:PacketXBee.png|400px|thumb|right|Paquet XBee]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Comme dit plus haut, les signaux émis par le XBee connaissent un étalement sur le spectre par DSSS.&lt;br /&gt;
Cet étalement s'effectue en divisant chaque symbole (correspondant à une série de 4 bits) transmis en &amp;lt;B&amp;gt;&amp;lt;I&amp;gt;chips&amp;lt;/I&amp;gt;&amp;lt;/B&amp;gt;.&lt;br /&gt;
Chaque symbole, soit 4 bits, correspond à 32 chips, et donc 32 états binaires (1 octet correspond à 64 chips).&lt;br /&gt;
Dans le cas de la norme ZigBee, la transmission de chacun des chips est synchronisé sur chaque µs (1 chip toutes les µs).&lt;br /&gt;
&lt;br /&gt;
Les signaux reçus par l'antenne HackRF étaient deux sinusoïdes modulées en phase et qui s'étalaient sur une période d'environ 3840µs (3846µs graphiquement mais il y a possibilité d'erreur à l'echelle du µs).&lt;br /&gt;
Sachant qu'un octet correspond à 64µs, on a :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;N_{octets} =\frac{2*T_{signal}}{64*T_{chip}}=\frac{2*3.840*10^{-6}}{64*10^{-6}}=120 octets&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'analogie peut être effectuée entre paquet Ethernet et paquet ZigBee. En effet, la taille limite des données d'un paquet est de 104 octets. La chaîne de caractère n'étant qu'envoyée par paquet, le paquet observé n'est que de 120 octets, ce qui est cohérent avec les caractéristiques du XBee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Hello1024secs.png|thumb|none|Temps de transmission de la chaîne de caractères &amp;quot;HELLO&amp;quot; 1024 fois]] &amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:AudacitySignal2.png|thumb|none|51 Paquets XBee portent la chaîne de caractère &amp;quot;HELLO&amp;quot; 1024 fois]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 8==&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé cette semaine d'étudier, ce qui est selon pour nous, l'une des pistes fondamentales de notre projet, et plus particulièrement de l'étude de nos signaux : le rapport signal bruit.&lt;br /&gt;
&lt;br /&gt;
L'objectif de cette semaine et de celle à venir était, à partir du signal acquis par le hackrf, d'effectuer le calcul du SNR (signal-to-noise ratio) tel que :&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;SNR =\frac{P_{signal}}{P_{bruit}}&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le script python qui nous a permis de communiquer entre les deux shields Xbee se verra amélioré afin de faire plusieurs acquisition des signaux lors de la communication entre les Xbee, effectuer une moyenne statistique, et de même lorsqu'il n'y a pas de communication.&lt;br /&gt;
&lt;br /&gt;
Néanmoins, nous avons essayé d'approcher le SNR directement depuis l'interface de GnuRadio par le biais de l'utilitaire graphique et le langage en bloc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 9==&lt;br /&gt;
&lt;br /&gt;
L'étude des signaux posait réellement problème de par le fait qu'une grande partie de la capture faite n'était que purement le bruit sans signal (utile plus tard pour l'étude du SNR).&lt;br /&gt;
Prenons l'exemple d'un paquet de 21 octets (un paquet contenant une seule chaîne de caractères HELLO). Le signal s'étalerait en théorie sur 21*64 chips soit 672 chips. Sachant que la modulation est une modulation QPSK, on s'étale sur un temps de 672µs.&lt;br /&gt;
En effet, le Xbee transmet toutes les 100ms.&lt;br /&gt;
Donc qu'une partie du signal nous est utile.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décider d'écrire un script qui nous permettrait d'étudier le signal dans de meilleures conditions, et donc de le filtrer.&lt;br /&gt;
&lt;br /&gt;
Chaque capture de signal effectuée est enregistrée dans un fichier par le biais du bloc fonction &amp;lt;B&amp;gt;&amp;lt;I&amp;gt;File Sink&amp;lt;/I&amp;gt;&amp;lt;/B&amp;gt; du compagnon GNURadio. Néanmoins, les fichiers obtenus sont des fichiers binaires assez lourds (environ 500Mo pour une capture de 3s), ce qui est un réel problème et qui implique le filtrage du signal.&lt;br /&gt;
&lt;br /&gt;
La bibliothèque numpy pour python nous permet en outre directement d'importer les échantillons des signaux, les traduisant du binaire à un format cible (complexe flottant 64 bits) dans un Array par le biais de la fonction:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; f = scipy.fromfile(open(&amp;quot;Nom du fichier&amp;quot;), dtype=scipy.complex64) &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La première solution pour réduire ce signal était d'imposer un threshold directement sur le signal, supérieur au bruit, mais qui conduirait à une perte d'une partie du signal à étudier.&lt;br /&gt;
La deuxième solution qui a été retenue était tout simplement de calculer l'amplitude et la phase du signal et appliquer ce même threshold à l'amplitude.&lt;br /&gt;
&lt;br /&gt;
== Semaine 10 et + ==&lt;br /&gt;
[[Fichier:Traitement xbee2.png|thumb|right|redresse=2]|Signal Xbee2 post-traitement ]&lt;br /&gt;
[[Fichier:Constellation xbee2.png|thumb|right|redresse=2] | Diagramme de constellation xbee2 après utilisation de LightSignal]&lt;br /&gt;
A partir de la semaine 10 nous n'avons fait qu’enchaîner les expériences pour avoir suffisamment de données et en tirer des conclusions.&lt;br /&gt;
&lt;br /&gt;
Lorsqu'on fait une acquisition d'un signal xbee , on peut maintenant via un script traiter cette acquisition et récupérer seulement les parties qui nous intéressent : A savoir la partie réelle et la partie imaginaire , l'amplitude du signal et enfin la phase du signal.&lt;br /&gt;
&lt;br /&gt;
Exemple ci dessous après acquisition + traitement de notre xbee n°2 :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'utilisation du script LightSignal permet de retirer toutes les phases en dehors du signal. Ainsi on peut bien observer le diagramme de constellation.&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;/div&gt;</summary>
		<author><name>Amoreau</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=73739</id>
		<title>IMA4 2018/2019 P70</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=73739"/>
				<updated>2019-04-25T20:22:57Z</updated>
		
		<summary type="html">&lt;p&gt;Amoreau : /* Semaine 10 et + */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;font-size: 30px; width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;Impact du matériel et du logiciel sur le champ électromagnétique&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Projet'''&amp;lt;/ins&amp;gt; : Impact du matériel et du logiciel sur le rayonnement électromagnétique&lt;br /&gt;
&lt;br /&gt;
''Nous proposons d'évaluer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et la consommation électrique.''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Etudiants'''&amp;lt;/ins&amp;gt; : Souheib KHINACHE et Antoine MOREAU&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Encadrants'''&amp;lt;/ins&amp;gt; : Alexandre BOE, Xavier REDON et Thomas VANTROYS&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'internet des objets est un marché en plein essor. La communication entre les différents objets connectés crée un nuage de signaux autour d'eux. Ces derniers sont vus par les utilisateurs comme des boîtes noires : le fonctionnement se fait sans en connaître les composants matériels et logiciels. &lt;br /&gt;
Néanmoins, ces objets, de par leurs propriétés électroniques, créent des fuites électromagnétiques impactant le champ environnant. &lt;br /&gt;
&lt;br /&gt;
Bien qu'ils peuvent porter à débat sur l'impact sur la santé, ces signaux peuvent représenter de réelles sources d'informations sur l'aspect matériel et applicatif de l'objet.&lt;br /&gt;
&lt;br /&gt;
Il serait donc intéressant d'avoir idée générale sur le fonctionnement du système en interprétant les ondes électromagnétiques émises par ce système.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Les principaux objectifs de ce projet seront donc de mesurer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et sur la consommation électrique.&lt;br /&gt;
Pour cela, l'outil potentiel avec lequel nous pourrions travailler serait une sonde de champ électromagnétique afin d'établir des mesures. &lt;br /&gt;
Cependant, nous pourrions concevoir notre propre système de capture et d'interprétation à partir d'une antenne, de filtres de fréquences et d'un microcontrôleur (on commencera par un ATMega328P). Il sera nécessaire de prendre en compte les perturbations issues de notre appareil de mesure et d'en tenir compte.&lt;br /&gt;
&lt;br /&gt;
On effectuera ainsi plusieurs expérimentations sur différents supports d'étude :&lt;br /&gt;
*l'aspect &amp;quot;Hardware&amp;quot; en étudiant différents modèles pour un même type de shield  &lt;br /&gt;
*l'aspect calculatoire du matériel en se basant sur l'impact des microcontrôleurs en fonction du modèle (ATMega328P et ATMega2560)&lt;br /&gt;
*l'aspect &amp;quot;Software&amp;quot;, en étudiant l'impact du logiciel et du firmware d'un même composant (différents firmwares pour un même shield Wi-Fi)&lt;br /&gt;
*l'aspect puissance des composants électroniques de gestion de puissance (ponts, hacheurs, onduleurs...).&lt;br /&gt;
&lt;br /&gt;
L'étude des différentes informations se fera par traitement des signaux électromagnétiques et des spectres. &lt;br /&gt;
Afin de mieux appréhender le problème, il nous est nécessaire de comprendre les phénomènes physiques issus de la notion d'électromagnétisme.&lt;br /&gt;
&lt;br /&gt;
Ces études mèneront à une étape plus complexe : l'interprétation des signaux. En effet, l'un des objectifs de ce projet est de comprendre du mieux possible le fonctionnement d'un système sans y avoir accès directement, et donc dans ce contexte &amp;quot;traduire&amp;quot; un ensemble de signaux électromagnétiques.&lt;br /&gt;
&lt;br /&gt;
On pourra en outre apporter un aspect visuel à l'étude en rajoutant une interface informatique.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
Bien qu'aux yeux de nombreuses personnes le bruit électromagnétique créé par les équipements électroniques du quotidien peut porter à controverse (débats concernant l'impact sur la santé par exemple), il peut être une source d'informations. &lt;br /&gt;
De nos jours, les ondes électromagnétiques restent un vaste champ d'étude, sujettes à de nombreuses thèses et recherches au sein des laboratoires.&lt;br /&gt;
&lt;br /&gt;
On peut prendre l'exemple de [https://www.eurekalert.org/pub_releases/2015-01/giot-rwt010715.php Milos Prvulovic], professeur à l'Institut Technologique de Géorgie, ayant simulé un contexte de cybercafé, dans lequel il place une antenne magnétique, un ordinateur portable cible et un ordinateur &amp;quot;espion&amp;quot;. Il réussit, grâce aux signaux EM émis par l'impulsion de l'appui des touches clavier à capter un message écrit par un ordinateur cible. &lt;br /&gt;
&lt;br /&gt;
Néanmoins, dans le quotidien, l'utilisation des sondes électromagnétiques se fait pour l'étude énergétique d'un système électronique (fuites électromagnétiques anormales, preuves d'une anomalie...) afin de respecter certaines normes législatives. Le code du travail par exemple réglemente et définit des valeurs seuils par le biais des articles R. 4453-3 et R. 4453-4.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
'''NBM-520 de NARDA STS'''&lt;br /&gt;
[[Fichier: NBM_TS.png|thumb|300px|NBM-TS, application des appareils NBM]]&lt;br /&gt;
NARDA STS est une entreprise qui fournit des outils de mesure. Elle met à disposition aux professionnels des sondes électromagnétiques.&lt;br /&gt;
La NBM-520 est un appareil de la franchise, mesurant le champ électrique et magnétique. Elle donne des valeurs précises du champ électromagnétique ambiant sur une large bande. Elle propose différentes sondes modulables permettant une souplesse au niveau de l'étude en fonction des besoins, avec des sondes pouvant étudier des signaux de fréquence de 100kHz à 6GHz ou même de 300kHz à 50GHz (en fonction de la sonde choisie).&lt;br /&gt;
&lt;br /&gt;
En outre, le dispositif peut se connecter en USB sur PC afin d'envoyer les données capturées et d'en faire une étude. Le dispositif propose un logiciel d'étude, NBM-TS, permettant d'observer du champ en fonction du temps, de la fréquence, de la position...&lt;br /&gt;
&lt;br /&gt;
L'équipement est utilisé par l'ANF (l'Agence Nationale des Fréquences, agence gérant l'ensemble des normes autour des radiofréquences), et est donc un gage de qualité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Avantages :''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Large bande de fréquence&lt;br /&gt;
* Matériel solide&lt;br /&gt;
* Application fonctionnelle permettant l'étude et gestion des données&lt;br /&gt;
* Possibilité d'étudier séparément champ électrique et magnétique&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Inconvénients:''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Impossible d'étudier les basses fréquences (appareils sous tension, bobinages...)&lt;br /&gt;
* Prix élevé : à partir de 3100€&lt;br /&gt;
* La cible de ce produit est surtout les professionels&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
'''Une pita.'''&lt;br /&gt;
&lt;br /&gt;
''Comment mon pain à pita vole ta clé RSA ?''&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Pita.jpg|200px|thumb|left|Une pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Des chercheurs israéliens ont découvert un moyen de capturer des clés de cryptage RSA, réputées comme inviolables, par le biais d'une pita... du moins avec un dispositif suffisamment petit pour être caché dans un pain à pita. &lt;br /&gt;
Le dispositif, renommé PITA pour Portable Instrument for Trace Acquisition a la particularité de capturer les ondes radio électromagnétiques émanantes d'un PC, qu'il soit connecté à un réseau ou pas.&lt;br /&gt;
Les différentes opérations du processeur sont identifiées en distinguant les différents modèles de l'activité radio sur le spectre EM.&lt;br /&gt;
&lt;br /&gt;
Bien que la capture des clés RSA a été faite dans des conditions particulières (modification du processeur de l'ordinateur cible), il est néanmoins possible, selon les chercheurs, d'identifier quelle type d'activité est exercée par l'ordinateur ainsi que son état.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PITA.jpg|300px|thumb|right|Un dessous de pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'un des points importants concernant le dispositif est son coût : moins de 300 euros.&lt;br /&gt;
L'appareil dispose :&lt;br /&gt;
* d'un PC portatif (PC-on-a-stick) ''Rikomagic MK802 IV'',&lt;br /&gt;
* d'un recepteur radio SDR ''FUNcube Dongle Pro+''&lt;br /&gt;
* d'une antenne radio&lt;br /&gt;
* d'une batterie&lt;br /&gt;
* d'une antenne WiFi&lt;br /&gt;
* d'une carte MicroSD&lt;br /&gt;
* d'un adapteur d'antenne&lt;br /&gt;
* et d'une '''pita'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le dispositif aurait une portée de 50cm. &lt;br /&gt;
Les chercheurs israéliens ont collaboré avec GNU Private Guard (logiciel de cryptage asymétrique) afin de protéger contre ces attaques les clés de cryptage.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
&lt;br /&gt;
''Scénario 1''&lt;br /&gt;
&lt;br /&gt;
Gérard a toujours le flair pour les bonnes affaires. Il a acheté une centaine de clés WiFi à un prix dérisoire sur AloXpresso afin de faire du profit à la revente. Le vendeur lui garantit que toutes les clés fonctionnent correctement. Gérard veut vérifier. Après vérification, 99 des clés sur 100 fonctionnent comme prévu. Gérard aimerait être sûr du disfonctionnement, mais Gérard n'est pas une pointure en informatique. &lt;br /&gt;
&lt;br /&gt;
Coup de génie ! Il se rappelle qu'il dispose d'un dispositif qui capte les ondes EM et les interprète directement. C'est le moment de tester ça. Il remarque une anomalie sur le spectre.&lt;br /&gt;
Il décide de contacter le revendeur pour lui signaler un disfonctionnement sur l'une des clé. &lt;br /&gt;
Pas de soucis. Le vendeur, étant bon prince, lui envoie une autre clé USB et lui fait une ristourne.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Scénario 2''&lt;br /&gt;
&lt;br /&gt;
La police fait une perquisition chez un individu soupçonné de graves délits. Cela fait plusieurs mois que la brigade criminelle prépare l'intervention, et une fois sur les lieux ils arrêtent le soupçonné malfaiteur.&lt;br /&gt;
Cependant avant de repartir, elle veut faire l'acquisition d'un maximum de preuves. Elle veut alors prendre l'essentiel des objets, dont certains objets éléctroniques connectés de l'individu dont elle pourra extraire les informations qui serviront à le faire tomber.&lt;br /&gt;
&lt;br /&gt;
Par chance, elle dispose d'un petit outil qui scannera les signatures alentours des objets connectés, comme des téléphones cachés, clés USB wifi dissimulées dans le décor etc..&lt;br /&gt;
Et si le suspect avait modifié malignement un objet connecté banal pour l'utiliser autrement à ses fins, la police le découvrirait car elle possède une base de données de toutes les signatures spectrales des objets connectés sur le marché et celle de l'objet modifié ne collerait pas avec celle de la base de données.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
&lt;br /&gt;
'''Comment étudier les signaux malgré les perturbations électromagnétiques ambiants et les faibles signaux des µC ?'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les signaux électromagnétiques des microcontrôleurs ou d'autres composants peuvent être faibles. Il y a une possibilité pour palier à ce problème, c'est de capter les signaux depuis une antenne émettrice que l'on rajoute à l'objet d'étude. &lt;br /&gt;
Nous utiliserons un SDR (Software Defined-Radio) afin de capter les ondes radio et les étudier directement sur PC. Le filtrage s'effectuera ainsi de manière numérique. Plusieurs tests seront effectués pour le même objet à étudier (quand on parle d'objet, on évoque un ensemble de plusieurs composants, comme par exemple une alimentation, un micro-contrôleur et une antenne). Ainsi, de manière statistique, nous pourrons en déduire un pattern récurrent pour chaque expérience en les effectuant dans différents environnements (pourquoi pas une chambre anachoïque). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons &lt;br /&gt;
* Capter le signal émis par un objet connecté le plus précisément possible&lt;br /&gt;
&lt;br /&gt;
* Concevoir nos propres objets connectés tous différents mais basés sur un même modèle&lt;br /&gt;
&lt;br /&gt;
* Interpréter les spectrogrammes, faire une étude statistique des signaux émis par nos différents objets et en tirer des conclusions&lt;br /&gt;
&lt;br /&gt;
* Répertorier dans une base de données les signatures de nos objets , voire de quelques objets disponibles sur le marché&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix logiciel :&lt;br /&gt;
&lt;br /&gt;
- La distribution Linux Pentoo ou Kali pour traiter les signaux avec GNU RADIO (Suite logicielle dédiée à l’implémentation de radios logicielles et de systèmes de traitement du signal).&lt;br /&gt;
&lt;br /&gt;
- FemtoOS pour l'OS des ATMEGA328P et ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix Matériel : &lt;br /&gt;
&lt;br /&gt;
- Plusieurs modules radios émetteurs &lt;br /&gt;
&lt;br /&gt;
- Plusieurs microcontrôleurs ATMEGA328P et un ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
- Des alimentations identiques pour chaque PCB&lt;br /&gt;
&lt;br /&gt;
- Un HackRF pour la réception des signaux&lt;br /&gt;
&lt;br /&gt;
- Une antenne 50 Ohm pour le HackRF [https://www.passion-radio.fr/accessoires-sdr/antenne-ant500-74.html]&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous devons préparer tout le matériel qui servira à faire nos tests. C'est à dire concevoir :&lt;br /&gt;
&lt;br /&gt;
- Un ensemble SDR/PC qui traitera le signal reçu avec GNU RADIO.&lt;br /&gt;
&lt;br /&gt;
- Une multitude de PCB qui seront nos objets connectés (Sur chacun d'entre eux on trouvera au minimum une antenne radio, un microcontrôleur et une alimentation)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de récupérer une &amp;quot;signature&amp;quot; d'un de nos objets , il faudra faire plus de 50 analyses spectrales pour conclure statistiquement sur une bonne signature qui caractérisera l'objet.&lt;br /&gt;
&lt;br /&gt;
Nous devons donc dans un second temps: &lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques mais qui ont un '''firmware''' différent.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques qui ont pour seule différence le '''microcontrôleur'''.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques dont seul le '''PCB''' diffère.&lt;br /&gt;
&lt;br /&gt;
Grâce à tous ces tests , nous pourrons conclure et voir l'impact qu'à le matériel ou le logiciel sur la signature d'un objet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enfin si les délais nous le permettent, nous pourrons réaliser un software qui cartographiera nos objets connectés dans la pièce grâce à la puissance de la signature reçue (Ce qui devrait être réalisable puisqu'à ce stade nous aurons une base de donnée des signatures).&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
|3&lt;br /&gt;
|8&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Recherches&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|6&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Prise en main de GnuRadio&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Configuration Xbee&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Expériences&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|5&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|4&lt;br /&gt;
|15&lt;br /&gt;
|9&lt;br /&gt;
|8&lt;br /&gt;
|7&lt;br /&gt;
|8&lt;br /&gt;
|8&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
[[Fichier:HackrfOne.jpeg|200px|thumb|right|Le HackRF One]]&lt;br /&gt;
Durant cette semaine, nous avons continué nos recherches notamment sur le moyen de transmission de nos objets connectés. Nous avons confirmé notre choix de notre SDR : Monsieur Boé nous a confirmé que des HackRF seraient disponibles dans les laboratoires et qu'il pourrait nous en prêter un. On disposera donc d'une antenne puissante pour traiter les signaux émis par nos objets communiquants. &lt;br /&gt;
&lt;br /&gt;
Il faudra coupler notre HackRF avec un logiciel appelé GNU RADIO qui est un logiciel très complet ( Pour information : la NASA a utilisé GNU RADIO afin de rétablir le contact avec une sonde spatiale abandonnée ). Afin de faire tourner ce logiciel libre, nous aurons besoin de la distribution Kali Linux, ex Backtrack.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Choix des émetteurs/récepteurs === &lt;br /&gt;
&lt;br /&gt;
Nous avons décidé que nos objets connectés communiqueront dans deux '''bandes de fréquences ISM''', l'une à '''900 MHz''' grâce à des modules Digi Xbee et l'autre à '''2,4 GHz''' par le moyen de modules émetteurs Bluetooth. On rappellera que les Digi Xbee et les émetteurs/récepteurs Bluetooth seront pilotés par des ATMEGA 2560.&lt;br /&gt;
&lt;br /&gt;
Les Xbee ne communiqueront pas entre eux et émettront en continu les mêmes données car ils le peuvent, alors que les émetteurs/récepteurs Bluetooth devront s'échanger des données si on veut pouvoir observer un quelconque signal autour de la fréquence de leurs porteuses. &lt;br /&gt;
&lt;br /&gt;
On voudra observer premièrement, si avec deux objets dans les '''mêmes''' conditions (donc même µc et même émetteur), on peut ou non '''distinguer une différence'''. Ceci est fondamental pour la suite des expériences, puisque si les deux émettent à la même fréquence, on pourra faire varier plusieurs paramètres afin de trouver '''des clés''' (des signes) qui pourraient aider à l'identification du matériel.&lt;br /&gt;
&lt;br /&gt;
Ces clés représentent différents facteurs potentiels d'identification du signal (le rapport signal-bruit en fonction de la distance par exemple...).&lt;br /&gt;
&lt;br /&gt;
''On planifie alors pour la semaine suivante de réussir à faire émettre, en utilisant simplement des breadboards pour commencer, nos Xbee et modules BT et observer quelque chose grâce à notre SDR.''&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration des modules XBee ===&lt;br /&gt;
&lt;br /&gt;
Nous avons configuré deux XBee afin qu'ils puissent communiquer entre eux : &lt;br /&gt;
&lt;br /&gt;
Les modules XBee ont été montés sur des platines d'interface USB/série de manière à ce qu'on puisse les paramétrer via le programme de contrôle ''minicom''. &lt;br /&gt;
&lt;br /&gt;
Dans le doute, on supposera que les XBee communiquent à 9600 Baud. On exécute la commande suivante : &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;minicom -b 9600 -D /dev/ttyUSB0&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
On active l'echo local dans minicom, afin de pouvoir observer ce qui a été envoyé par liaison série au XBee ('''CTRL+A''' puis '''E''').&lt;br /&gt;
&lt;br /&gt;
Pour commencer le paramètrage il faut taper ''' +++ ''' rapidement. Le XBee nous répond OK, cela veut dire que nous sommes dans le mode configuration et que nous pouvons utiliser les commandes '''AT'''. (Redirection vers la liste des commandes AT XBee [https://cdn.sparkfun.com/assets/resources/2/9/22AT_Commands.pdf]).&lt;br /&gt;
&lt;br /&gt;
Comme nos XBee ont été utilisés auparavant, il a fallu les restaurer à l'état usine avec la commande '''ATRE'''.&lt;br /&gt;
&lt;br /&gt;
Si on souhaite que des XBee puissent s'envoyer des données il faut qu'ils soient sur le même canal (commande '''ATCH''') et aient le même PAN ID (commande '''ATID'''). Notre PAN ID sera '''BEE6''' et le canal sera celui par défaut '''C'''.&lt;br /&gt;
&lt;br /&gt;
Ensuite il faut leur donner une adresse de destination ('''ATDH''' &amp;amp; '''ATDL''') qui sera l'adresse broadcast, pour ce faire on entre &lt;br /&gt;
 ATDH=0000&lt;br /&gt;
 ATDL=FFFF&lt;br /&gt;
&lt;br /&gt;
Enfin '''ATMY''' représente l'ID du XBee, notre premier XBee aura comme ID 5000 et le second 5001.&lt;br /&gt;
&lt;br /&gt;
N'oublions pas de sauvegarder les paramètres avec '''ATWR'''.&lt;br /&gt;
&lt;br /&gt;
On vérifie que tout a bien été pris en compte :&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;&lt;br /&gt;
+++OK&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATID&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
BEE6&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
C&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
0&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDL&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
FFFF&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATMY&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
5000&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCN&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Puis on fait de même avec le deuxième XBee (ID 5001).&lt;br /&gt;
&lt;br /&gt;
Voilà, lorsque on envoie des caractères par liaison série sur 5000, la LED '''Tx''' de 5000 s'allume et la Led '''Rx''' de 5001 s'allume elle aussi. Cela signifie que l'envoi de donnée par onde radio s'effectue correctement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que les XBee émettent et reçoivent, on peut commencer les mesures avec notre SDR. Mais avant cela il va falloir bien se familiariser avec le logiciel GNU RADIO qui est assez difficile à prendre en main.&lt;br /&gt;
&lt;br /&gt;
=== Première prise en main du logiciel GNURADIO ===&lt;br /&gt;
&lt;br /&gt;
Installation de GNU radio avec les fonctions + drivers pour HackRF : &lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install gqrx-sdr gnuradio gr-osmosdr hackrf &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le bloc Osmocom Source sert de &amp;quot;passerelle&amp;quot; entre le logiciel et la SDR, il permet de transmettre les informations récupérées par le HackRF afin qu'on puisse les traiter avec d'autres bloc de fonctions.&lt;br /&gt;
&lt;br /&gt;
Si on veut pouvoir récuperer les données il faut passer l'argument ''hackrf=0'' dans la box périphérique du bloc Osmocom.&lt;br /&gt;
&lt;br /&gt;
Ci-dessous on peut voir le spectre environnant entre 2.44GHz et 2.460GHz grâce au bloc WX GUI FFT Sink.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ScreenGnuRadio.png|Interface de GNURadio]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous a permis d'effectuer notre première expérience. L'utilisation des deux Xbees nous a permis d'observer l'impact des Xbee sur le champ électromagéntique environnant.&lt;br /&gt;
&lt;br /&gt;
Si on analyse le spectre environnant grâce au module FFT de GNU Radio, lorsque les Xbee communiquent entre eux, on peut apercevoir un pic caractéristique propre.&lt;br /&gt;
En effet, lors de l'emission d'un message sur le port série, on a un pic qui se dégage du spectre d'amplitude -20dBm. Ce pic est caractéristique au canal de communication choisi et configuré sur le Xbee.&lt;br /&gt;
Néanmoins, le signal est perturbé par le bruit environnant. &lt;br /&gt;
L'expérience étant effectuée au sein de l'école, les signaux Wi-Fi perturberont l'étude.&lt;br /&gt;
Il faut noter que la norme IEEE 802.11 impose au Wi-Fi l'utilisation d'une bande passante s'étalant de 2.4 GHz à 2.5 GHz.&lt;br /&gt;
&lt;br /&gt;
La bande passante des modules Zigbee se décomposent en 16 canaux, allant de 2400 MHz à 2480 MHz par pas de 5 MHz.&lt;br /&gt;
&lt;br /&gt;
Le canal ici utilisé est le canal 13 (3ème canal) de fréquence 2415 MHz.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[Fichier:Channel135001.png|thumb|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Fichier:channel135000.png|thumb|none|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBeeCh13.png|Spectre de l'environnement autour du XBee|thumb|none|400 px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBeeCh13SND.png|Lors de l'envoi de données au XBee voisin|thumb|none|400 px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut observer un pic de puissance lors de l'envoi d'une donnée en série à la fréquence 2.415 GHz.&lt;br /&gt;
Il nous est maintenant nécessaire d'analyser de plus près les signaux et leurs fréquence centrale dans la bande perçue au dessus de -20dB.&lt;br /&gt;
&lt;br /&gt;
On réeffectuera une expérience en zone isolée des signaux parasites.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous avons principalement fait des recherches dans le but de mieux comprendre les signaux émis par le Xbee.&lt;br /&gt;
&lt;br /&gt;
En somme, nous étions confrontés à de nombreuses interrogations. Le fonctionnement du Xbee étant assez simple et la sécurité du protocole Zigbee étant moindre, y a t-il possibilité de démoduler le signal émis afin de développer nos études ?&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
[[Fichier:Switchchannel pyscript.PNG|upright=0.8|thumb|right|Script Python]]&lt;br /&gt;
&lt;br /&gt;
Après réflexion et consultation de nos encadrants, nous nous sommes rendu compte que la démodulation prévue lors de la semaine 4 n'aiderait pas à répondre à la problématique de notre sujet !  &lt;br /&gt;
&lt;br /&gt;
Afin de mieux visualiser les signaux des Xbee , on décide d'automatiser le processus d'envoi sur le port série des données vers le Xbee. C'est à dire concevoir un programme Python qui automatisera l'envoi de données et le changement de channel à intervalle de temps régulier (Changement toutes les 10 secondes). &lt;br /&gt;
&lt;br /&gt;
L'utilisation de Minicom '''n'était pas du tout la meilleure solution''' pour faire émettre les Xbee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Après quelques essais, on remarque que lorsque le Xbee émet sur le channel 13, il émet à environ 2,445GHz au lieu d'émettre à 2,415GHz soit une différence de 30MHz : Ceci n'est pas important, car ce que l'on souhaite remarquer c'est un éventuel décalage de la fréquence centrale entre deux Xbee différents. Si les deux Xbee n'ont pas la même frequence centrale on pourra conclure que la '''fréquence centrale''' de la porteuse du Xbee n'est pas '''une des clés''' permettant d''''identifier''' cet émetteur/récepteur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaines 6 et 7==&lt;br /&gt;
&lt;br /&gt;
Afin de mieux cerner le comportement électromagnétique des modules XBee, il nous est nécessaire de comprendre leur fonctionnement et le protocole Zigbee.&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous avons cherché à souligner le parallélisme entre étude fréquentielle par le spectre et étude temporelle du signal.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PlancheXPtest.jpg|thumb|right|Planche prototype]]&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous avons paramétré la fréquence centrale de capture du HackRF. En effet, bien que le HackRF dispose d'une large bande passante, afin de se focaliser sur la porteuse, il est indispensable de configurer le HackRF en conséquence.&lt;br /&gt;
En second lieu, pour éviter une variation du RSSI (Received Signal Strength Indication) et de la puissance du signal, nous devions mettre en place une prototype de &amp;quot;planche expérimentale&amp;quot; sur laquelle devaient être fixés nos différents modules (l'antenne de reception et les Xbees).&lt;br /&gt;
&lt;br /&gt;
La position des antennes les unes par rapport aux autres est fondamentale. Afin d'optimiser la reception, les antennes doivent être parallèles.&lt;br /&gt;
&lt;br /&gt;
Chaque Xbee est identifié par un chiffre (1 ou 2). En effet, l'attribution de ces chiffres sera définitive pour ne pas perturber la cohérence des expériences. &lt;br /&gt;
Leur position est aussi fondamentale. Ainsi, en fonction que le Xbee soit emetteur ou récepteur, il sera disposé différement sur la planche.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Le XBee 1 émetteur directement connecté en série au PC===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:GrapheGNURadio01.png|thumb|left|150px|Schéma simple d'étude fréquentielle et temporelle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette expérience est la première mettant en place un contexte (un seul Xbee émetteur connecté en série au PC, le deuxième Xbee étant inactif) et nous permettra d'étudier le plus de cas possibles.&lt;br /&gt;
&lt;br /&gt;
Nous avons tout d'abord commencé par un graphe GNURadio simple permettant l'observation du spectre et du signal et la variation de la fréquence d'étude.&lt;br /&gt;
&lt;br /&gt;
Le script python a été réécrit afin que le XBee puisse émettre une chaîne de caractère &amp;quot;HELLO&amp;quot; * 1024. En effet, même si la fréquence de balayage du module HackRF peut être grandement augmentée, il faut éviter d'aller au dessous de 0.01s, finissant par consommer de manière considérable les ressources octroyées par le CPU le cas échéant.&lt;br /&gt;
Le fait d'augmenter la taille de la chaine de caractère permet de mieux synchroniser l'étude en temps réel avec la capture des données.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc émis les données sur le canal 14, soit la fréquence centrale est à 2.420GHz selon la norme Zigbee. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Etude fréquentielle&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L'étude fréquentielle est similaire à celle réalisée auparavant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div center&amp;gt;&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[Fichier:Spectrefreq2.png|thumb|center|750px|Spectre fréquentiel au canal 14]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[Fichier:Spectrogram.png|thumb|center|250px|Spectrogramme]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on peut observer sur l'analyseur de spectre GNURadio que la fréquence centrale est située 2.450GHz. Nous n'avons pas trouvé la raison mais il s'agit sûrement d'un décalage au niveau applicatif.&lt;br /&gt;
&lt;br /&gt;
D'autre part, l'ensemble des fréquences qui dessinent le spectre s'étalent sur une large bande de fréquence. En effet, cette technique d'étalement appelée DSSS (Direct-Sequence Spread Spectrum) utilisé par les modules XBee permet au signal d'être moins sensible aux interférences et aux brouillages. En outre, même si la puissance du spectre dans sa globalité reste la même, la densité spectrale elle diminue considérablement, rendant le signal plus &amp;quot;discret&amp;quot;.&lt;br /&gt;
La différence de puissance entre le lobe principal et les premiers lobes secondaires sont de 30 dB, ce qui est aussi commun au DSSS.&lt;br /&gt;
&lt;br /&gt;
Le spectrogramme témoigne aussi de l'étalement du signal sur un peu plus de 6 MHz (3MHz de par et d'autre de la fréquence centrale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt; Etude temporelle &amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Signal temporel.png|thumb|left|500px|Signal observable centré à 2.450GHz lors de l'émission]]&lt;br /&gt;
&lt;br /&gt;
Le signal ici est séparé en deux composantes car il s'agit d'un signal complexe. Nous avons supposé en premier temps qu'il s'agissait du signal principal décalé de 180°, ce qui n'était pas le cas.&lt;br /&gt;
Après quelques recherches, cette séparation des composantes permet de transmettre deux fois plus de données sur la même bande passante.&lt;br /&gt;
Le signal observable témoigne d'une modulation bien spécifique au XBee. En effet, on peut observer des sauts de phase à différents points, qui correspondent à une modulation par changement de phase (modulation QPSK ou Quadratic Phase-Shift Keying). Ce sont ces sauts de phases qui permettent la transmission des bits.&lt;br /&gt;
Les changements de phase s'il y a se font toutes les µs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé d'enregistrer ces données brutes dans un fichier et nous l'avons étudier avec Audacity, logiciel open-source de son, et donc de signaux ! L'inconvénient avec l'interface graphique QT de GNURadio est son manque de précision lors d'un dézoom sur le signal en temps réel. Audacity permet de palier à celà !&lt;br /&gt;
En outre, on peut voir que les paquets Xbee sont reconnaissables. En effet, le signal témoigne de la taille du paquet XBee.&lt;br /&gt;
&lt;br /&gt;
Le paquet XBee est constitué d'un premier header (header physique) de 6 octets :&lt;br /&gt;
- la séquence de préambule (4 octets) constitué de 32 bits à 0&lt;br /&gt;
&lt;br /&gt;
- l'indice de début du paquet fixé à 0x7A (1 octet)&lt;br /&gt;
&lt;br /&gt;
- la longueur du paquet (1 octet);&lt;br /&gt;
&lt;br /&gt;
d'un header MAC (7 à 27 octets en fonction des informations de l'adresse), d'un bloc FCS de fin de paquet (2 octets) et l'ensemble des données (de 1 à 104 octets).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Signal2.png|thumb|right|400px|On observe graphiquement qu'un paquet est transmis en 3846µs]]&lt;br /&gt;
[[Fichier:PacketXBee.png|400px|thumb|right|Paquet XBee]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Comme dit plus haut, les signaux émis par le XBee connaissent un étalement sur le spectre par DSSS.&lt;br /&gt;
Cet étalement s'effectue en divisant chaque symbole (correspondant à une série de 4 bits) transmis en &amp;lt;B&amp;gt;&amp;lt;I&amp;gt;chips&amp;lt;/I&amp;gt;&amp;lt;/B&amp;gt;.&lt;br /&gt;
Chaque symbole, soit 4 bits, correspond à 32 chips, et donc 32 états binaires (1 octet correspond à 64 chips).&lt;br /&gt;
Dans le cas de la norme ZigBee, la transmission de chacun des chips est synchronisé sur chaque µs (1 chip toutes les µs).&lt;br /&gt;
&lt;br /&gt;
Les signaux reçus par l'antenne HackRF étaient deux sinusoïdes modulées en phase et qui s'étalaient sur une période d'environ 3840µs (3846µs graphiquement mais il y a possibilité d'erreur à l'echelle du µs).&lt;br /&gt;
Sachant qu'un octet correspond à 64µs, on a :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;N_{octets} =\frac{2*T_{signal}}{64*T_{chip}}=\frac{2*3.840*10^{-6}}{64*10^{-6}}=120 octets&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'analogie peut être effectuée entre paquet Ethernet et paquet ZigBee. En effet, la taille limite des données d'un paquet est de 104 octets. La chaîne de caractère n'étant qu'envoyée par paquet, le paquet observé n'est que de 120 octets, ce qui est cohérent avec les caractéristiques du XBee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Hello1024secs.png|thumb|none|Temps de transmission de la chaîne de caractères &amp;quot;HELLO&amp;quot; 1024 fois]] &amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:AudacitySignal2.png|thumb|none|51 Paquets XBee portent la chaîne de caractère &amp;quot;HELLO&amp;quot; 1024 fois]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 8==&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé cette semaine d'étudier, ce qui est selon pour nous, l'une des pistes fondamentales de notre projet, et plus particulièrement de l'étude de nos signaux : le rapport signal bruit.&lt;br /&gt;
&lt;br /&gt;
L'objectif de cette semaine et de celle à venir était, à partir du signal acquis par le hackrf, d'effectuer le calcul du SNR (signal-to-noise ratio) tel que :&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;SNR =\frac{P_{signal}}{P_{bruit}}&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le script python qui nous a permis de communiquer entre les deux shields Xbee se verra amélioré afin de faire plusieurs acquisition des signaux lors de la communication entre les Xbee, effectuer une moyenne statistique, et de même lorsqu'il n'y a pas de communication.&lt;br /&gt;
&lt;br /&gt;
Néanmoins, nous avons essayé d'approcher le SNR directement depuis l'interface de GnuRadio par le biais de l'utilitaire graphique et le langage en bloc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 9==&lt;br /&gt;
&lt;br /&gt;
L'étude des signaux posait réellement problème de par le fait qu'une grande partie de la capture faite n'était que purement le bruit sans signal (utile plus tard pour l'étude du SNR).&lt;br /&gt;
Prenons l'exemple d'un paquet de 21 octets (un paquet contenant une seule chaîne de caractères HELLO). Le signal s'étalerait en théorie sur 21*64 chips soit 672 chips. Sachant que la modulation est une modulation QPSK, on s'étale sur un temps de 672µs.&lt;br /&gt;
En effet, le Xbee transmet toutes les 100ms.&lt;br /&gt;
Donc qu'une partie du signal nous est utile.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décider d'écrire un script qui nous permettrait d'étudier le signal dans de meilleures conditions, et donc de le filtrer.&lt;br /&gt;
&lt;br /&gt;
Chaque capture de signal effectuée est enregistrée dans un fichier par le biais du bloc fonction &amp;lt;B&amp;gt;&amp;lt;I&amp;gt;File Sink&amp;lt;/I&amp;gt;&amp;lt;/B&amp;gt; du compagnon GNURadio. Néanmoins, les fichiers obtenus sont des fichiers binaires assez lourds (environ 500Mo pour une capture de 3s), ce qui est un réel problème et qui implique le filtrage du signal.&lt;br /&gt;
&lt;br /&gt;
La bibliothèque numpy pour python nous permet en outre directement d'importer les échantillons des signaux, les traduisant du binaire à un format cible (complexe flottant 64 bits) dans un Array par le biais de la fonction:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; f = scipy.fromfile(open(&amp;quot;Nom du fichier&amp;quot;), dtype=scipy.complex64) &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La première solution pour réduire ce signal était d'imposer un threshold directement sur le signal, supérieur au bruit, mais qui conduirait à une perte d'une partie du signal à étudier.&lt;br /&gt;
La deuxième solution qui a été retenue était tout simplement de calculer l'amplitude et la phase du signal et appliquer ce même threshold à l'amplitude.&lt;br /&gt;
&lt;br /&gt;
== Semaine 10 et + ==&lt;br /&gt;
&lt;br /&gt;
A partir de la semaine 10 nous n'avons fait qu’enchaîner les expériences pour avoir suffisamment de données et en tirer des conclusions.&lt;br /&gt;
&lt;br /&gt;
Lorsqu'on fait une acquisition d'un signal xbee , on peut maintenant via un script traiter cette acquisition et récupérer seulement les parties qui nous intéressent : A savoir la partie réelle et la partie imaginaire , l'amplitude du signal et enfin la phase du signal.&lt;br /&gt;
&lt;br /&gt;
Exemple ci dessous après acquisition + traitement de notre xbee n°2 :&lt;br /&gt;
[[Fichier:Traitement xbee2.png|thumb|left|redresse=2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'utilisation du script LightSignal permet de retirer toutes les phases en dehors du signal. Ainsi on peut bien observer le diagramme de constellation.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Constellation xbee2.png|thumb|left|redresse=2]]&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;/div&gt;</summary>
		<author><name>Amoreau</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Constellation_xbee2.png&amp;diff=73738</id>
		<title>Fichier:Constellation xbee2.png</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Constellation_xbee2.png&amp;diff=73738"/>
				<updated>2019-04-25T20:22:47Z</updated>
		
		<summary type="html">&lt;p&gt;Amoreau : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Amoreau</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=73737</id>
		<title>IMA4 2018/2019 P70</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=73737"/>
				<updated>2019-04-25T20:20:24Z</updated>
		
		<summary type="html">&lt;p&gt;Amoreau : /* Semaine 10 et + */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;font-size: 30px; width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;Impact du matériel et du logiciel sur le champ électromagnétique&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Projet'''&amp;lt;/ins&amp;gt; : Impact du matériel et du logiciel sur le rayonnement électromagnétique&lt;br /&gt;
&lt;br /&gt;
''Nous proposons d'évaluer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et la consommation électrique.''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Etudiants'''&amp;lt;/ins&amp;gt; : Souheib KHINACHE et Antoine MOREAU&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Encadrants'''&amp;lt;/ins&amp;gt; : Alexandre BOE, Xavier REDON et Thomas VANTROYS&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'internet des objets est un marché en plein essor. La communication entre les différents objets connectés crée un nuage de signaux autour d'eux. Ces derniers sont vus par les utilisateurs comme des boîtes noires : le fonctionnement se fait sans en connaître les composants matériels et logiciels. &lt;br /&gt;
Néanmoins, ces objets, de par leurs propriétés électroniques, créent des fuites électromagnétiques impactant le champ environnant. &lt;br /&gt;
&lt;br /&gt;
Bien qu'ils peuvent porter à débat sur l'impact sur la santé, ces signaux peuvent représenter de réelles sources d'informations sur l'aspect matériel et applicatif de l'objet.&lt;br /&gt;
&lt;br /&gt;
Il serait donc intéressant d'avoir idée générale sur le fonctionnement du système en interprétant les ondes électromagnétiques émises par ce système.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Les principaux objectifs de ce projet seront donc de mesurer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et sur la consommation électrique.&lt;br /&gt;
Pour cela, l'outil potentiel avec lequel nous pourrions travailler serait une sonde de champ électromagnétique afin d'établir des mesures. &lt;br /&gt;
Cependant, nous pourrions concevoir notre propre système de capture et d'interprétation à partir d'une antenne, de filtres de fréquences et d'un microcontrôleur (on commencera par un ATMega328P). Il sera nécessaire de prendre en compte les perturbations issues de notre appareil de mesure et d'en tenir compte.&lt;br /&gt;
&lt;br /&gt;
On effectuera ainsi plusieurs expérimentations sur différents supports d'étude :&lt;br /&gt;
*l'aspect &amp;quot;Hardware&amp;quot; en étudiant différents modèles pour un même type de shield  &lt;br /&gt;
*l'aspect calculatoire du matériel en se basant sur l'impact des microcontrôleurs en fonction du modèle (ATMega328P et ATMega2560)&lt;br /&gt;
*l'aspect &amp;quot;Software&amp;quot;, en étudiant l'impact du logiciel et du firmware d'un même composant (différents firmwares pour un même shield Wi-Fi)&lt;br /&gt;
*l'aspect puissance des composants électroniques de gestion de puissance (ponts, hacheurs, onduleurs...).&lt;br /&gt;
&lt;br /&gt;
L'étude des différentes informations se fera par traitement des signaux électromagnétiques et des spectres. &lt;br /&gt;
Afin de mieux appréhender le problème, il nous est nécessaire de comprendre les phénomènes physiques issus de la notion d'électromagnétisme.&lt;br /&gt;
&lt;br /&gt;
Ces études mèneront à une étape plus complexe : l'interprétation des signaux. En effet, l'un des objectifs de ce projet est de comprendre du mieux possible le fonctionnement d'un système sans y avoir accès directement, et donc dans ce contexte &amp;quot;traduire&amp;quot; un ensemble de signaux électromagnétiques.&lt;br /&gt;
&lt;br /&gt;
On pourra en outre apporter un aspect visuel à l'étude en rajoutant une interface informatique.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
Bien qu'aux yeux de nombreuses personnes le bruit électromagnétique créé par les équipements électroniques du quotidien peut porter à controverse (débats concernant l'impact sur la santé par exemple), il peut être une source d'informations. &lt;br /&gt;
De nos jours, les ondes électromagnétiques restent un vaste champ d'étude, sujettes à de nombreuses thèses et recherches au sein des laboratoires.&lt;br /&gt;
&lt;br /&gt;
On peut prendre l'exemple de [https://www.eurekalert.org/pub_releases/2015-01/giot-rwt010715.php Milos Prvulovic], professeur à l'Institut Technologique de Géorgie, ayant simulé un contexte de cybercafé, dans lequel il place une antenne magnétique, un ordinateur portable cible et un ordinateur &amp;quot;espion&amp;quot;. Il réussit, grâce aux signaux EM émis par l'impulsion de l'appui des touches clavier à capter un message écrit par un ordinateur cible. &lt;br /&gt;
&lt;br /&gt;
Néanmoins, dans le quotidien, l'utilisation des sondes électromagnétiques se fait pour l'étude énergétique d'un système électronique (fuites électromagnétiques anormales, preuves d'une anomalie...) afin de respecter certaines normes législatives. Le code du travail par exemple réglemente et définit des valeurs seuils par le biais des articles R. 4453-3 et R. 4453-4.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
'''NBM-520 de NARDA STS'''&lt;br /&gt;
[[Fichier: NBM_TS.png|thumb|300px|NBM-TS, application des appareils NBM]]&lt;br /&gt;
NARDA STS est une entreprise qui fournit des outils de mesure. Elle met à disposition aux professionnels des sondes électromagnétiques.&lt;br /&gt;
La NBM-520 est un appareil de la franchise, mesurant le champ électrique et magnétique. Elle donne des valeurs précises du champ électromagnétique ambiant sur une large bande. Elle propose différentes sondes modulables permettant une souplesse au niveau de l'étude en fonction des besoins, avec des sondes pouvant étudier des signaux de fréquence de 100kHz à 6GHz ou même de 300kHz à 50GHz (en fonction de la sonde choisie).&lt;br /&gt;
&lt;br /&gt;
En outre, le dispositif peut se connecter en USB sur PC afin d'envoyer les données capturées et d'en faire une étude. Le dispositif propose un logiciel d'étude, NBM-TS, permettant d'observer du champ en fonction du temps, de la fréquence, de la position...&lt;br /&gt;
&lt;br /&gt;
L'équipement est utilisé par l'ANF (l'Agence Nationale des Fréquences, agence gérant l'ensemble des normes autour des radiofréquences), et est donc un gage de qualité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Avantages :''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Large bande de fréquence&lt;br /&gt;
* Matériel solide&lt;br /&gt;
* Application fonctionnelle permettant l'étude et gestion des données&lt;br /&gt;
* Possibilité d'étudier séparément champ électrique et magnétique&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Inconvénients:''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Impossible d'étudier les basses fréquences (appareils sous tension, bobinages...)&lt;br /&gt;
* Prix élevé : à partir de 3100€&lt;br /&gt;
* La cible de ce produit est surtout les professionels&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
'''Une pita.'''&lt;br /&gt;
&lt;br /&gt;
''Comment mon pain à pita vole ta clé RSA ?''&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Pita.jpg|200px|thumb|left|Une pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Des chercheurs israéliens ont découvert un moyen de capturer des clés de cryptage RSA, réputées comme inviolables, par le biais d'une pita... du moins avec un dispositif suffisamment petit pour être caché dans un pain à pita. &lt;br /&gt;
Le dispositif, renommé PITA pour Portable Instrument for Trace Acquisition a la particularité de capturer les ondes radio électromagnétiques émanantes d'un PC, qu'il soit connecté à un réseau ou pas.&lt;br /&gt;
Les différentes opérations du processeur sont identifiées en distinguant les différents modèles de l'activité radio sur le spectre EM.&lt;br /&gt;
&lt;br /&gt;
Bien que la capture des clés RSA a été faite dans des conditions particulières (modification du processeur de l'ordinateur cible), il est néanmoins possible, selon les chercheurs, d'identifier quelle type d'activité est exercée par l'ordinateur ainsi que son état.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PITA.jpg|300px|thumb|right|Un dessous de pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'un des points importants concernant le dispositif est son coût : moins de 300 euros.&lt;br /&gt;
L'appareil dispose :&lt;br /&gt;
* d'un PC portatif (PC-on-a-stick) ''Rikomagic MK802 IV'',&lt;br /&gt;
* d'un recepteur radio SDR ''FUNcube Dongle Pro+''&lt;br /&gt;
* d'une antenne radio&lt;br /&gt;
* d'une batterie&lt;br /&gt;
* d'une antenne WiFi&lt;br /&gt;
* d'une carte MicroSD&lt;br /&gt;
* d'un adapteur d'antenne&lt;br /&gt;
* et d'une '''pita'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le dispositif aurait une portée de 50cm. &lt;br /&gt;
Les chercheurs israéliens ont collaboré avec GNU Private Guard (logiciel de cryptage asymétrique) afin de protéger contre ces attaques les clés de cryptage.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
&lt;br /&gt;
''Scénario 1''&lt;br /&gt;
&lt;br /&gt;
Gérard a toujours le flair pour les bonnes affaires. Il a acheté une centaine de clés WiFi à un prix dérisoire sur AloXpresso afin de faire du profit à la revente. Le vendeur lui garantit que toutes les clés fonctionnent correctement. Gérard veut vérifier. Après vérification, 99 des clés sur 100 fonctionnent comme prévu. Gérard aimerait être sûr du disfonctionnement, mais Gérard n'est pas une pointure en informatique. &lt;br /&gt;
&lt;br /&gt;
Coup de génie ! Il se rappelle qu'il dispose d'un dispositif qui capte les ondes EM et les interprète directement. C'est le moment de tester ça. Il remarque une anomalie sur le spectre.&lt;br /&gt;
Il décide de contacter le revendeur pour lui signaler un disfonctionnement sur l'une des clé. &lt;br /&gt;
Pas de soucis. Le vendeur, étant bon prince, lui envoie une autre clé USB et lui fait une ristourne.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Scénario 2''&lt;br /&gt;
&lt;br /&gt;
La police fait une perquisition chez un individu soupçonné de graves délits. Cela fait plusieurs mois que la brigade criminelle prépare l'intervention, et une fois sur les lieux ils arrêtent le soupçonné malfaiteur.&lt;br /&gt;
Cependant avant de repartir, elle veut faire l'acquisition d'un maximum de preuves. Elle veut alors prendre l'essentiel des objets, dont certains objets éléctroniques connectés de l'individu dont elle pourra extraire les informations qui serviront à le faire tomber.&lt;br /&gt;
&lt;br /&gt;
Par chance, elle dispose d'un petit outil qui scannera les signatures alentours des objets connectés, comme des téléphones cachés, clés USB wifi dissimulées dans le décor etc..&lt;br /&gt;
Et si le suspect avait modifié malignement un objet connecté banal pour l'utiliser autrement à ses fins, la police le découvrirait car elle possède une base de données de toutes les signatures spectrales des objets connectés sur le marché et celle de l'objet modifié ne collerait pas avec celle de la base de données.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
&lt;br /&gt;
'''Comment étudier les signaux malgré les perturbations électromagnétiques ambiants et les faibles signaux des µC ?'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les signaux électromagnétiques des microcontrôleurs ou d'autres composants peuvent être faibles. Il y a une possibilité pour palier à ce problème, c'est de capter les signaux depuis une antenne émettrice que l'on rajoute à l'objet d'étude. &lt;br /&gt;
Nous utiliserons un SDR (Software Defined-Radio) afin de capter les ondes radio et les étudier directement sur PC. Le filtrage s'effectuera ainsi de manière numérique. Plusieurs tests seront effectués pour le même objet à étudier (quand on parle d'objet, on évoque un ensemble de plusieurs composants, comme par exemple une alimentation, un micro-contrôleur et une antenne). Ainsi, de manière statistique, nous pourrons en déduire un pattern récurrent pour chaque expérience en les effectuant dans différents environnements (pourquoi pas une chambre anachoïque). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons &lt;br /&gt;
* Capter le signal émis par un objet connecté le plus précisément possible&lt;br /&gt;
&lt;br /&gt;
* Concevoir nos propres objets connectés tous différents mais basés sur un même modèle&lt;br /&gt;
&lt;br /&gt;
* Interpréter les spectrogrammes, faire une étude statistique des signaux émis par nos différents objets et en tirer des conclusions&lt;br /&gt;
&lt;br /&gt;
* Répertorier dans une base de données les signatures de nos objets , voire de quelques objets disponibles sur le marché&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix logiciel :&lt;br /&gt;
&lt;br /&gt;
- La distribution Linux Pentoo ou Kali pour traiter les signaux avec GNU RADIO (Suite logicielle dédiée à l’implémentation de radios logicielles et de systèmes de traitement du signal).&lt;br /&gt;
&lt;br /&gt;
- FemtoOS pour l'OS des ATMEGA328P et ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix Matériel : &lt;br /&gt;
&lt;br /&gt;
- Plusieurs modules radios émetteurs &lt;br /&gt;
&lt;br /&gt;
- Plusieurs microcontrôleurs ATMEGA328P et un ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
- Des alimentations identiques pour chaque PCB&lt;br /&gt;
&lt;br /&gt;
- Un HackRF pour la réception des signaux&lt;br /&gt;
&lt;br /&gt;
- Une antenne 50 Ohm pour le HackRF [https://www.passion-radio.fr/accessoires-sdr/antenne-ant500-74.html]&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous devons préparer tout le matériel qui servira à faire nos tests. C'est à dire concevoir :&lt;br /&gt;
&lt;br /&gt;
- Un ensemble SDR/PC qui traitera le signal reçu avec GNU RADIO.&lt;br /&gt;
&lt;br /&gt;
- Une multitude de PCB qui seront nos objets connectés (Sur chacun d'entre eux on trouvera au minimum une antenne radio, un microcontrôleur et une alimentation)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de récupérer une &amp;quot;signature&amp;quot; d'un de nos objets , il faudra faire plus de 50 analyses spectrales pour conclure statistiquement sur une bonne signature qui caractérisera l'objet.&lt;br /&gt;
&lt;br /&gt;
Nous devons donc dans un second temps: &lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques mais qui ont un '''firmware''' différent.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques qui ont pour seule différence le '''microcontrôleur'''.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques dont seul le '''PCB''' diffère.&lt;br /&gt;
&lt;br /&gt;
Grâce à tous ces tests , nous pourrons conclure et voir l'impact qu'à le matériel ou le logiciel sur la signature d'un objet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enfin si les délais nous le permettent, nous pourrons réaliser un software qui cartographiera nos objets connectés dans la pièce grâce à la puissance de la signature reçue (Ce qui devrait être réalisable puisqu'à ce stade nous aurons une base de donnée des signatures).&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
|3&lt;br /&gt;
|8&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Recherches&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|6&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Prise en main de GnuRadio&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Configuration Xbee&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Expériences&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|5&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|4&lt;br /&gt;
|15&lt;br /&gt;
|9&lt;br /&gt;
|8&lt;br /&gt;
|7&lt;br /&gt;
|8&lt;br /&gt;
|8&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
[[Fichier:HackrfOne.jpeg|200px|thumb|right|Le HackRF One]]&lt;br /&gt;
Durant cette semaine, nous avons continué nos recherches notamment sur le moyen de transmission de nos objets connectés. Nous avons confirmé notre choix de notre SDR : Monsieur Boé nous a confirmé que des HackRF seraient disponibles dans les laboratoires et qu'il pourrait nous en prêter un. On disposera donc d'une antenne puissante pour traiter les signaux émis par nos objets communiquants. &lt;br /&gt;
&lt;br /&gt;
Il faudra coupler notre HackRF avec un logiciel appelé GNU RADIO qui est un logiciel très complet ( Pour information : la NASA a utilisé GNU RADIO afin de rétablir le contact avec une sonde spatiale abandonnée ). Afin de faire tourner ce logiciel libre, nous aurons besoin de la distribution Kali Linux, ex Backtrack.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Choix des émetteurs/récepteurs === &lt;br /&gt;
&lt;br /&gt;
Nous avons décidé que nos objets connectés communiqueront dans deux '''bandes de fréquences ISM''', l'une à '''900 MHz''' grâce à des modules Digi Xbee et l'autre à '''2,4 GHz''' par le moyen de modules émetteurs Bluetooth. On rappellera que les Digi Xbee et les émetteurs/récepteurs Bluetooth seront pilotés par des ATMEGA 2560.&lt;br /&gt;
&lt;br /&gt;
Les Xbee ne communiqueront pas entre eux et émettront en continu les mêmes données car ils le peuvent, alors que les émetteurs/récepteurs Bluetooth devront s'échanger des données si on veut pouvoir observer un quelconque signal autour de la fréquence de leurs porteuses. &lt;br /&gt;
&lt;br /&gt;
On voudra observer premièrement, si avec deux objets dans les '''mêmes''' conditions (donc même µc et même émetteur), on peut ou non '''distinguer une différence'''. Ceci est fondamental pour la suite des expériences, puisque si les deux émettent à la même fréquence, on pourra faire varier plusieurs paramètres afin de trouver '''des clés''' (des signes) qui pourraient aider à l'identification du matériel.&lt;br /&gt;
&lt;br /&gt;
Ces clés représentent différents facteurs potentiels d'identification du signal (le rapport signal-bruit en fonction de la distance par exemple...).&lt;br /&gt;
&lt;br /&gt;
''On planifie alors pour la semaine suivante de réussir à faire émettre, en utilisant simplement des breadboards pour commencer, nos Xbee et modules BT et observer quelque chose grâce à notre SDR.''&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration des modules XBee ===&lt;br /&gt;
&lt;br /&gt;
Nous avons configuré deux XBee afin qu'ils puissent communiquer entre eux : &lt;br /&gt;
&lt;br /&gt;
Les modules XBee ont été montés sur des platines d'interface USB/série de manière à ce qu'on puisse les paramétrer via le programme de contrôle ''minicom''. &lt;br /&gt;
&lt;br /&gt;
Dans le doute, on supposera que les XBee communiquent à 9600 Baud. On exécute la commande suivante : &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;minicom -b 9600 -D /dev/ttyUSB0&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
On active l'echo local dans minicom, afin de pouvoir observer ce qui a été envoyé par liaison série au XBee ('''CTRL+A''' puis '''E''').&lt;br /&gt;
&lt;br /&gt;
Pour commencer le paramètrage il faut taper ''' +++ ''' rapidement. Le XBee nous répond OK, cela veut dire que nous sommes dans le mode configuration et que nous pouvons utiliser les commandes '''AT'''. (Redirection vers la liste des commandes AT XBee [https://cdn.sparkfun.com/assets/resources/2/9/22AT_Commands.pdf]).&lt;br /&gt;
&lt;br /&gt;
Comme nos XBee ont été utilisés auparavant, il a fallu les restaurer à l'état usine avec la commande '''ATRE'''.&lt;br /&gt;
&lt;br /&gt;
Si on souhaite que des XBee puissent s'envoyer des données il faut qu'ils soient sur le même canal (commande '''ATCH''') et aient le même PAN ID (commande '''ATID'''). Notre PAN ID sera '''BEE6''' et le canal sera celui par défaut '''C'''.&lt;br /&gt;
&lt;br /&gt;
Ensuite il faut leur donner une adresse de destination ('''ATDH''' &amp;amp; '''ATDL''') qui sera l'adresse broadcast, pour ce faire on entre &lt;br /&gt;
 ATDH=0000&lt;br /&gt;
 ATDL=FFFF&lt;br /&gt;
&lt;br /&gt;
Enfin '''ATMY''' représente l'ID du XBee, notre premier XBee aura comme ID 5000 et le second 5001.&lt;br /&gt;
&lt;br /&gt;
N'oublions pas de sauvegarder les paramètres avec '''ATWR'''.&lt;br /&gt;
&lt;br /&gt;
On vérifie que tout a bien été pris en compte :&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;&lt;br /&gt;
+++OK&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATID&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
BEE6&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
C&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
0&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDL&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
FFFF&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATMY&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
5000&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCN&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Puis on fait de même avec le deuxième XBee (ID 5001).&lt;br /&gt;
&lt;br /&gt;
Voilà, lorsque on envoie des caractères par liaison série sur 5000, la LED '''Tx''' de 5000 s'allume et la Led '''Rx''' de 5001 s'allume elle aussi. Cela signifie que l'envoi de donnée par onde radio s'effectue correctement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que les XBee émettent et reçoivent, on peut commencer les mesures avec notre SDR. Mais avant cela il va falloir bien se familiariser avec le logiciel GNU RADIO qui est assez difficile à prendre en main.&lt;br /&gt;
&lt;br /&gt;
=== Première prise en main du logiciel GNURADIO ===&lt;br /&gt;
&lt;br /&gt;
Installation de GNU radio avec les fonctions + drivers pour HackRF : &lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install gqrx-sdr gnuradio gr-osmosdr hackrf &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le bloc Osmocom Source sert de &amp;quot;passerelle&amp;quot; entre le logiciel et la SDR, il permet de transmettre les informations récupérées par le HackRF afin qu'on puisse les traiter avec d'autres bloc de fonctions.&lt;br /&gt;
&lt;br /&gt;
Si on veut pouvoir récuperer les données il faut passer l'argument ''hackrf=0'' dans la box périphérique du bloc Osmocom.&lt;br /&gt;
&lt;br /&gt;
Ci-dessous on peut voir le spectre environnant entre 2.44GHz et 2.460GHz grâce au bloc WX GUI FFT Sink.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ScreenGnuRadio.png|Interface de GNURadio]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous a permis d'effectuer notre première expérience. L'utilisation des deux Xbees nous a permis d'observer l'impact des Xbee sur le champ électromagéntique environnant.&lt;br /&gt;
&lt;br /&gt;
Si on analyse le spectre environnant grâce au module FFT de GNU Radio, lorsque les Xbee communiquent entre eux, on peut apercevoir un pic caractéristique propre.&lt;br /&gt;
En effet, lors de l'emission d'un message sur le port série, on a un pic qui se dégage du spectre d'amplitude -20dBm. Ce pic est caractéristique au canal de communication choisi et configuré sur le Xbee.&lt;br /&gt;
Néanmoins, le signal est perturbé par le bruit environnant. &lt;br /&gt;
L'expérience étant effectuée au sein de l'école, les signaux Wi-Fi perturberont l'étude.&lt;br /&gt;
Il faut noter que la norme IEEE 802.11 impose au Wi-Fi l'utilisation d'une bande passante s'étalant de 2.4 GHz à 2.5 GHz.&lt;br /&gt;
&lt;br /&gt;
La bande passante des modules Zigbee se décomposent en 16 canaux, allant de 2400 MHz à 2480 MHz par pas de 5 MHz.&lt;br /&gt;
&lt;br /&gt;
Le canal ici utilisé est le canal 13 (3ème canal) de fréquence 2415 MHz.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[Fichier:Channel135001.png|thumb|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Fichier:channel135000.png|thumb|none|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBeeCh13.png|Spectre de l'environnement autour du XBee|thumb|none|400 px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBeeCh13SND.png|Lors de l'envoi de données au XBee voisin|thumb|none|400 px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut observer un pic de puissance lors de l'envoi d'une donnée en série à la fréquence 2.415 GHz.&lt;br /&gt;
Il nous est maintenant nécessaire d'analyser de plus près les signaux et leurs fréquence centrale dans la bande perçue au dessus de -20dB.&lt;br /&gt;
&lt;br /&gt;
On réeffectuera une expérience en zone isolée des signaux parasites.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous avons principalement fait des recherches dans le but de mieux comprendre les signaux émis par le Xbee.&lt;br /&gt;
&lt;br /&gt;
En somme, nous étions confrontés à de nombreuses interrogations. Le fonctionnement du Xbee étant assez simple et la sécurité du protocole Zigbee étant moindre, y a t-il possibilité de démoduler le signal émis afin de développer nos études ?&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
[[Fichier:Switchchannel pyscript.PNG|upright=0.8|thumb|right|Script Python]]&lt;br /&gt;
&lt;br /&gt;
Après réflexion et consultation de nos encadrants, nous nous sommes rendu compte que la démodulation prévue lors de la semaine 4 n'aiderait pas à répondre à la problématique de notre sujet !  &lt;br /&gt;
&lt;br /&gt;
Afin de mieux visualiser les signaux des Xbee , on décide d'automatiser le processus d'envoi sur le port série des données vers le Xbee. C'est à dire concevoir un programme Python qui automatisera l'envoi de données et le changement de channel à intervalle de temps régulier (Changement toutes les 10 secondes). &lt;br /&gt;
&lt;br /&gt;
L'utilisation de Minicom '''n'était pas du tout la meilleure solution''' pour faire émettre les Xbee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Après quelques essais, on remarque que lorsque le Xbee émet sur le channel 13, il émet à environ 2,445GHz au lieu d'émettre à 2,415GHz soit une différence de 30MHz : Ceci n'est pas important, car ce que l'on souhaite remarquer c'est un éventuel décalage de la fréquence centrale entre deux Xbee différents. Si les deux Xbee n'ont pas la même frequence centrale on pourra conclure que la '''fréquence centrale''' de la porteuse du Xbee n'est pas '''une des clés''' permettant d''''identifier''' cet émetteur/récepteur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaines 6 et 7==&lt;br /&gt;
&lt;br /&gt;
Afin de mieux cerner le comportement électromagnétique des modules XBee, il nous est nécessaire de comprendre leur fonctionnement et le protocole Zigbee.&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous avons cherché à souligner le parallélisme entre étude fréquentielle par le spectre et étude temporelle du signal.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PlancheXPtest.jpg|thumb|right|Planche prototype]]&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous avons paramétré la fréquence centrale de capture du HackRF. En effet, bien que le HackRF dispose d'une large bande passante, afin de se focaliser sur la porteuse, il est indispensable de configurer le HackRF en conséquence.&lt;br /&gt;
En second lieu, pour éviter une variation du RSSI (Received Signal Strength Indication) et de la puissance du signal, nous devions mettre en place une prototype de &amp;quot;planche expérimentale&amp;quot; sur laquelle devaient être fixés nos différents modules (l'antenne de reception et les Xbees).&lt;br /&gt;
&lt;br /&gt;
La position des antennes les unes par rapport aux autres est fondamentale. Afin d'optimiser la reception, les antennes doivent être parallèles.&lt;br /&gt;
&lt;br /&gt;
Chaque Xbee est identifié par un chiffre (1 ou 2). En effet, l'attribution de ces chiffres sera définitive pour ne pas perturber la cohérence des expériences. &lt;br /&gt;
Leur position est aussi fondamentale. Ainsi, en fonction que le Xbee soit emetteur ou récepteur, il sera disposé différement sur la planche.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Le XBee 1 émetteur directement connecté en série au PC===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:GrapheGNURadio01.png|thumb|left|150px|Schéma simple d'étude fréquentielle et temporelle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette expérience est la première mettant en place un contexte (un seul Xbee émetteur connecté en série au PC, le deuxième Xbee étant inactif) et nous permettra d'étudier le plus de cas possibles.&lt;br /&gt;
&lt;br /&gt;
Nous avons tout d'abord commencé par un graphe GNURadio simple permettant l'observation du spectre et du signal et la variation de la fréquence d'étude.&lt;br /&gt;
&lt;br /&gt;
Le script python a été réécrit afin que le XBee puisse émettre une chaîne de caractère &amp;quot;HELLO&amp;quot; * 1024. En effet, même si la fréquence de balayage du module HackRF peut être grandement augmentée, il faut éviter d'aller au dessous de 0.01s, finissant par consommer de manière considérable les ressources octroyées par le CPU le cas échéant.&lt;br /&gt;
Le fait d'augmenter la taille de la chaine de caractère permet de mieux synchroniser l'étude en temps réel avec la capture des données.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc émis les données sur le canal 14, soit la fréquence centrale est à 2.420GHz selon la norme Zigbee. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Etude fréquentielle&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L'étude fréquentielle est similaire à celle réalisée auparavant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div center&amp;gt;&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[Fichier:Spectrefreq2.png|thumb|center|750px|Spectre fréquentiel au canal 14]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[Fichier:Spectrogram.png|thumb|center|250px|Spectrogramme]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on peut observer sur l'analyseur de spectre GNURadio que la fréquence centrale est située 2.450GHz. Nous n'avons pas trouvé la raison mais il s'agit sûrement d'un décalage au niveau applicatif.&lt;br /&gt;
&lt;br /&gt;
D'autre part, l'ensemble des fréquences qui dessinent le spectre s'étalent sur une large bande de fréquence. En effet, cette technique d'étalement appelée DSSS (Direct-Sequence Spread Spectrum) utilisé par les modules XBee permet au signal d'être moins sensible aux interférences et aux brouillages. En outre, même si la puissance du spectre dans sa globalité reste la même, la densité spectrale elle diminue considérablement, rendant le signal plus &amp;quot;discret&amp;quot;.&lt;br /&gt;
La différence de puissance entre le lobe principal et les premiers lobes secondaires sont de 30 dB, ce qui est aussi commun au DSSS.&lt;br /&gt;
&lt;br /&gt;
Le spectrogramme témoigne aussi de l'étalement du signal sur un peu plus de 6 MHz (3MHz de par et d'autre de la fréquence centrale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt; Etude temporelle &amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Signal temporel.png|thumb|left|500px|Signal observable centré à 2.450GHz lors de l'émission]]&lt;br /&gt;
&lt;br /&gt;
Le signal ici est séparé en deux composantes car il s'agit d'un signal complexe. Nous avons supposé en premier temps qu'il s'agissait du signal principal décalé de 180°, ce qui n'était pas le cas.&lt;br /&gt;
Après quelques recherches, cette séparation des composantes permet de transmettre deux fois plus de données sur la même bande passante.&lt;br /&gt;
Le signal observable témoigne d'une modulation bien spécifique au XBee. En effet, on peut observer des sauts de phase à différents points, qui correspondent à une modulation par changement de phase (modulation QPSK ou Quadratic Phase-Shift Keying). Ce sont ces sauts de phases qui permettent la transmission des bits.&lt;br /&gt;
Les changements de phase s'il y a se font toutes les µs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé d'enregistrer ces données brutes dans un fichier et nous l'avons étudier avec Audacity, logiciel open-source de son, et donc de signaux ! L'inconvénient avec l'interface graphique QT de GNURadio est son manque de précision lors d'un dézoom sur le signal en temps réel. Audacity permet de palier à celà !&lt;br /&gt;
En outre, on peut voir que les paquets Xbee sont reconnaissables. En effet, le signal témoigne de la taille du paquet XBee.&lt;br /&gt;
&lt;br /&gt;
Le paquet XBee est constitué d'un premier header (header physique) de 6 octets :&lt;br /&gt;
- la séquence de préambule (4 octets) constitué de 32 bits à 0&lt;br /&gt;
&lt;br /&gt;
- l'indice de début du paquet fixé à 0x7A (1 octet)&lt;br /&gt;
&lt;br /&gt;
- la longueur du paquet (1 octet);&lt;br /&gt;
&lt;br /&gt;
d'un header MAC (7 à 27 octets en fonction des informations de l'adresse), d'un bloc FCS de fin de paquet (2 octets) et l'ensemble des données (de 1 à 104 octets).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Signal2.png|thumb|right|400px|On observe graphiquement qu'un paquet est transmis en 3846µs]]&lt;br /&gt;
[[Fichier:PacketXBee.png|400px|thumb|right|Paquet XBee]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Comme dit plus haut, les signaux émis par le XBee connaissent un étalement sur le spectre par DSSS.&lt;br /&gt;
Cet étalement s'effectue en divisant chaque symbole (correspondant à une série de 4 bits) transmis en &amp;lt;B&amp;gt;&amp;lt;I&amp;gt;chips&amp;lt;/I&amp;gt;&amp;lt;/B&amp;gt;.&lt;br /&gt;
Chaque symbole, soit 4 bits, correspond à 32 chips, et donc 32 états binaires (1 octet correspond à 64 chips).&lt;br /&gt;
Dans le cas de la norme ZigBee, la transmission de chacun des chips est synchronisé sur chaque µs (1 chip toutes les µs).&lt;br /&gt;
&lt;br /&gt;
Les signaux reçus par l'antenne HackRF étaient deux sinusoïdes modulées en phase et qui s'étalaient sur une période d'environ 3840µs (3846µs graphiquement mais il y a possibilité d'erreur à l'echelle du µs).&lt;br /&gt;
Sachant qu'un octet correspond à 64µs, on a :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;N_{octets} =\frac{2*T_{signal}}{64*T_{chip}}=\frac{2*3.840*10^{-6}}{64*10^{-6}}=120 octets&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'analogie peut être effectuée entre paquet Ethernet et paquet ZigBee. En effet, la taille limite des données d'un paquet est de 104 octets. La chaîne de caractère n'étant qu'envoyée par paquet, le paquet observé n'est que de 120 octets, ce qui est cohérent avec les caractéristiques du XBee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Hello1024secs.png|thumb|none|Temps de transmission de la chaîne de caractères &amp;quot;HELLO&amp;quot; 1024 fois]] &amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:AudacitySignal2.png|thumb|none|51 Paquets XBee portent la chaîne de caractère &amp;quot;HELLO&amp;quot; 1024 fois]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 8==&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé cette semaine d'étudier, ce qui est selon pour nous, l'une des pistes fondamentales de notre projet, et plus particulièrement de l'étude de nos signaux : le rapport signal bruit.&lt;br /&gt;
&lt;br /&gt;
L'objectif de cette semaine et de celle à venir était, à partir du signal acquis par le hackrf, d'effectuer le calcul du SNR (signal-to-noise ratio) tel que :&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;SNR =\frac{P_{signal}}{P_{bruit}}&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le script python qui nous a permis de communiquer entre les deux shields Xbee se verra amélioré afin de faire plusieurs acquisition des signaux lors de la communication entre les Xbee, effectuer une moyenne statistique, et de même lorsqu'il n'y a pas de communication.&lt;br /&gt;
&lt;br /&gt;
Néanmoins, nous avons essayé d'approcher le SNR directement depuis l'interface de GnuRadio par le biais de l'utilitaire graphique et le langage en bloc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 9==&lt;br /&gt;
&lt;br /&gt;
L'étude des signaux posait réellement problème de par le fait qu'une grande partie de la capture faite n'était que purement le bruit sans signal (utile plus tard pour l'étude du SNR).&lt;br /&gt;
Prenons l'exemple d'un paquet de 21 octets (un paquet contenant une seule chaîne de caractères HELLO). Le signal s'étalerait en théorie sur 21*64 chips soit 672 chips. Sachant que la modulation est une modulation QPSK, on s'étale sur un temps de 672µs.&lt;br /&gt;
En effet, le Xbee transmet toutes les 100ms.&lt;br /&gt;
Donc qu'une partie du signal nous est utile.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décider d'écrire un script qui nous permettrait d'étudier le signal dans de meilleures conditions, et donc de le filtrer.&lt;br /&gt;
&lt;br /&gt;
Chaque capture de signal effectuée est enregistrée dans un fichier par le biais du bloc fonction &amp;lt;B&amp;gt;&amp;lt;I&amp;gt;File Sink&amp;lt;/I&amp;gt;&amp;lt;/B&amp;gt; du compagnon GNURadio. Néanmoins, les fichiers obtenus sont des fichiers binaires assez lourds (environ 500Mo pour une capture de 3s), ce qui est un réel problème et qui implique le filtrage du signal.&lt;br /&gt;
&lt;br /&gt;
La bibliothèque numpy pour python nous permet en outre directement d'importer les échantillons des signaux, les traduisant du binaire à un format cible (complexe flottant 64 bits) dans un Array par le biais de la fonction:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; f = scipy.fromfile(open(&amp;quot;Nom du fichier&amp;quot;), dtype=scipy.complex64) &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La première solution pour réduire ce signal était d'imposer un threshold directement sur le signal, supérieur au bruit, mais qui conduirait à une perte d'une partie du signal à étudier.&lt;br /&gt;
La deuxième solution qui a été retenue était tout simplement de calculer l'amplitude et la phase du signal et appliquer ce même threshold à l'amplitude.&lt;br /&gt;
&lt;br /&gt;
== Semaine 10 et + ==&lt;br /&gt;
&lt;br /&gt;
A partir de la semaine 10 nous n'avons fait qu’enchaîner les expériences pour avoir suffisamment de données et en tirer des conclusions.&lt;br /&gt;
&lt;br /&gt;
Lorsqu'on fait une acquisition d'un signal xbee , on peut maintenant via un script traiter cette acquisition et récupérer seulement les parties qui nous intéressent : A savoir la partie réelle et la partie imaginaire , l'amplitude du signal et enfin la phase du signal.&lt;br /&gt;
&lt;br /&gt;
Exemple ci dessous après acquisition + traitement de notre xbee n°2 :&lt;br /&gt;
[[Fichier:Traitement xbee2.png|thumb|left|redresse=2]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;/div&gt;</summary>
		<author><name>Amoreau</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=73736</id>
		<title>IMA4 2018/2019 P70</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=73736"/>
				<updated>2019-04-25T20:20:14Z</updated>
		
		<summary type="html">&lt;p&gt;Amoreau : /* Semaine 10 et + */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;font-size: 30px; width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;Impact du matériel et du logiciel sur le champ électromagnétique&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Projet'''&amp;lt;/ins&amp;gt; : Impact du matériel et du logiciel sur le rayonnement électromagnétique&lt;br /&gt;
&lt;br /&gt;
''Nous proposons d'évaluer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et la consommation électrique.''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Etudiants'''&amp;lt;/ins&amp;gt; : Souheib KHINACHE et Antoine MOREAU&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Encadrants'''&amp;lt;/ins&amp;gt; : Alexandre BOE, Xavier REDON et Thomas VANTROYS&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'internet des objets est un marché en plein essor. La communication entre les différents objets connectés crée un nuage de signaux autour d'eux. Ces derniers sont vus par les utilisateurs comme des boîtes noires : le fonctionnement se fait sans en connaître les composants matériels et logiciels. &lt;br /&gt;
Néanmoins, ces objets, de par leurs propriétés électroniques, créent des fuites électromagnétiques impactant le champ environnant. &lt;br /&gt;
&lt;br /&gt;
Bien qu'ils peuvent porter à débat sur l'impact sur la santé, ces signaux peuvent représenter de réelles sources d'informations sur l'aspect matériel et applicatif de l'objet.&lt;br /&gt;
&lt;br /&gt;
Il serait donc intéressant d'avoir idée générale sur le fonctionnement du système en interprétant les ondes électromagnétiques émises par ce système.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Les principaux objectifs de ce projet seront donc de mesurer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et sur la consommation électrique.&lt;br /&gt;
Pour cela, l'outil potentiel avec lequel nous pourrions travailler serait une sonde de champ électromagnétique afin d'établir des mesures. &lt;br /&gt;
Cependant, nous pourrions concevoir notre propre système de capture et d'interprétation à partir d'une antenne, de filtres de fréquences et d'un microcontrôleur (on commencera par un ATMega328P). Il sera nécessaire de prendre en compte les perturbations issues de notre appareil de mesure et d'en tenir compte.&lt;br /&gt;
&lt;br /&gt;
On effectuera ainsi plusieurs expérimentations sur différents supports d'étude :&lt;br /&gt;
*l'aspect &amp;quot;Hardware&amp;quot; en étudiant différents modèles pour un même type de shield  &lt;br /&gt;
*l'aspect calculatoire du matériel en se basant sur l'impact des microcontrôleurs en fonction du modèle (ATMega328P et ATMega2560)&lt;br /&gt;
*l'aspect &amp;quot;Software&amp;quot;, en étudiant l'impact du logiciel et du firmware d'un même composant (différents firmwares pour un même shield Wi-Fi)&lt;br /&gt;
*l'aspect puissance des composants électroniques de gestion de puissance (ponts, hacheurs, onduleurs...).&lt;br /&gt;
&lt;br /&gt;
L'étude des différentes informations se fera par traitement des signaux électromagnétiques et des spectres. &lt;br /&gt;
Afin de mieux appréhender le problème, il nous est nécessaire de comprendre les phénomènes physiques issus de la notion d'électromagnétisme.&lt;br /&gt;
&lt;br /&gt;
Ces études mèneront à une étape plus complexe : l'interprétation des signaux. En effet, l'un des objectifs de ce projet est de comprendre du mieux possible le fonctionnement d'un système sans y avoir accès directement, et donc dans ce contexte &amp;quot;traduire&amp;quot; un ensemble de signaux électromagnétiques.&lt;br /&gt;
&lt;br /&gt;
On pourra en outre apporter un aspect visuel à l'étude en rajoutant une interface informatique.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
Bien qu'aux yeux de nombreuses personnes le bruit électromagnétique créé par les équipements électroniques du quotidien peut porter à controverse (débats concernant l'impact sur la santé par exemple), il peut être une source d'informations. &lt;br /&gt;
De nos jours, les ondes électromagnétiques restent un vaste champ d'étude, sujettes à de nombreuses thèses et recherches au sein des laboratoires.&lt;br /&gt;
&lt;br /&gt;
On peut prendre l'exemple de [https://www.eurekalert.org/pub_releases/2015-01/giot-rwt010715.php Milos Prvulovic], professeur à l'Institut Technologique de Géorgie, ayant simulé un contexte de cybercafé, dans lequel il place une antenne magnétique, un ordinateur portable cible et un ordinateur &amp;quot;espion&amp;quot;. Il réussit, grâce aux signaux EM émis par l'impulsion de l'appui des touches clavier à capter un message écrit par un ordinateur cible. &lt;br /&gt;
&lt;br /&gt;
Néanmoins, dans le quotidien, l'utilisation des sondes électromagnétiques se fait pour l'étude énergétique d'un système électronique (fuites électromagnétiques anormales, preuves d'une anomalie...) afin de respecter certaines normes législatives. Le code du travail par exemple réglemente et définit des valeurs seuils par le biais des articles R. 4453-3 et R. 4453-4.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
'''NBM-520 de NARDA STS'''&lt;br /&gt;
[[Fichier: NBM_TS.png|thumb|300px|NBM-TS, application des appareils NBM]]&lt;br /&gt;
NARDA STS est une entreprise qui fournit des outils de mesure. Elle met à disposition aux professionnels des sondes électromagnétiques.&lt;br /&gt;
La NBM-520 est un appareil de la franchise, mesurant le champ électrique et magnétique. Elle donne des valeurs précises du champ électromagnétique ambiant sur une large bande. Elle propose différentes sondes modulables permettant une souplesse au niveau de l'étude en fonction des besoins, avec des sondes pouvant étudier des signaux de fréquence de 100kHz à 6GHz ou même de 300kHz à 50GHz (en fonction de la sonde choisie).&lt;br /&gt;
&lt;br /&gt;
En outre, le dispositif peut se connecter en USB sur PC afin d'envoyer les données capturées et d'en faire une étude. Le dispositif propose un logiciel d'étude, NBM-TS, permettant d'observer du champ en fonction du temps, de la fréquence, de la position...&lt;br /&gt;
&lt;br /&gt;
L'équipement est utilisé par l'ANF (l'Agence Nationale des Fréquences, agence gérant l'ensemble des normes autour des radiofréquences), et est donc un gage de qualité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Avantages :''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Large bande de fréquence&lt;br /&gt;
* Matériel solide&lt;br /&gt;
* Application fonctionnelle permettant l'étude et gestion des données&lt;br /&gt;
* Possibilité d'étudier séparément champ électrique et magnétique&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Inconvénients:''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Impossible d'étudier les basses fréquences (appareils sous tension, bobinages...)&lt;br /&gt;
* Prix élevé : à partir de 3100€&lt;br /&gt;
* La cible de ce produit est surtout les professionels&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
'''Une pita.'''&lt;br /&gt;
&lt;br /&gt;
''Comment mon pain à pita vole ta clé RSA ?''&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Pita.jpg|200px|thumb|left|Une pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Des chercheurs israéliens ont découvert un moyen de capturer des clés de cryptage RSA, réputées comme inviolables, par le biais d'une pita... du moins avec un dispositif suffisamment petit pour être caché dans un pain à pita. &lt;br /&gt;
Le dispositif, renommé PITA pour Portable Instrument for Trace Acquisition a la particularité de capturer les ondes radio électromagnétiques émanantes d'un PC, qu'il soit connecté à un réseau ou pas.&lt;br /&gt;
Les différentes opérations du processeur sont identifiées en distinguant les différents modèles de l'activité radio sur le spectre EM.&lt;br /&gt;
&lt;br /&gt;
Bien que la capture des clés RSA a été faite dans des conditions particulières (modification du processeur de l'ordinateur cible), il est néanmoins possible, selon les chercheurs, d'identifier quelle type d'activité est exercée par l'ordinateur ainsi que son état.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PITA.jpg|300px|thumb|right|Un dessous de pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'un des points importants concernant le dispositif est son coût : moins de 300 euros.&lt;br /&gt;
L'appareil dispose :&lt;br /&gt;
* d'un PC portatif (PC-on-a-stick) ''Rikomagic MK802 IV'',&lt;br /&gt;
* d'un recepteur radio SDR ''FUNcube Dongle Pro+''&lt;br /&gt;
* d'une antenne radio&lt;br /&gt;
* d'une batterie&lt;br /&gt;
* d'une antenne WiFi&lt;br /&gt;
* d'une carte MicroSD&lt;br /&gt;
* d'un adapteur d'antenne&lt;br /&gt;
* et d'une '''pita'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le dispositif aurait une portée de 50cm. &lt;br /&gt;
Les chercheurs israéliens ont collaboré avec GNU Private Guard (logiciel de cryptage asymétrique) afin de protéger contre ces attaques les clés de cryptage.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
&lt;br /&gt;
''Scénario 1''&lt;br /&gt;
&lt;br /&gt;
Gérard a toujours le flair pour les bonnes affaires. Il a acheté une centaine de clés WiFi à un prix dérisoire sur AloXpresso afin de faire du profit à la revente. Le vendeur lui garantit que toutes les clés fonctionnent correctement. Gérard veut vérifier. Après vérification, 99 des clés sur 100 fonctionnent comme prévu. Gérard aimerait être sûr du disfonctionnement, mais Gérard n'est pas une pointure en informatique. &lt;br /&gt;
&lt;br /&gt;
Coup de génie ! Il se rappelle qu'il dispose d'un dispositif qui capte les ondes EM et les interprète directement. C'est le moment de tester ça. Il remarque une anomalie sur le spectre.&lt;br /&gt;
Il décide de contacter le revendeur pour lui signaler un disfonctionnement sur l'une des clé. &lt;br /&gt;
Pas de soucis. Le vendeur, étant bon prince, lui envoie une autre clé USB et lui fait une ristourne.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Scénario 2''&lt;br /&gt;
&lt;br /&gt;
La police fait une perquisition chez un individu soupçonné de graves délits. Cela fait plusieurs mois que la brigade criminelle prépare l'intervention, et une fois sur les lieux ils arrêtent le soupçonné malfaiteur.&lt;br /&gt;
Cependant avant de repartir, elle veut faire l'acquisition d'un maximum de preuves. Elle veut alors prendre l'essentiel des objets, dont certains objets éléctroniques connectés de l'individu dont elle pourra extraire les informations qui serviront à le faire tomber.&lt;br /&gt;
&lt;br /&gt;
Par chance, elle dispose d'un petit outil qui scannera les signatures alentours des objets connectés, comme des téléphones cachés, clés USB wifi dissimulées dans le décor etc..&lt;br /&gt;
Et si le suspect avait modifié malignement un objet connecté banal pour l'utiliser autrement à ses fins, la police le découvrirait car elle possède une base de données de toutes les signatures spectrales des objets connectés sur le marché et celle de l'objet modifié ne collerait pas avec celle de la base de données.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
&lt;br /&gt;
'''Comment étudier les signaux malgré les perturbations électromagnétiques ambiants et les faibles signaux des µC ?'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les signaux électromagnétiques des microcontrôleurs ou d'autres composants peuvent être faibles. Il y a une possibilité pour palier à ce problème, c'est de capter les signaux depuis une antenne émettrice que l'on rajoute à l'objet d'étude. &lt;br /&gt;
Nous utiliserons un SDR (Software Defined-Radio) afin de capter les ondes radio et les étudier directement sur PC. Le filtrage s'effectuera ainsi de manière numérique. Plusieurs tests seront effectués pour le même objet à étudier (quand on parle d'objet, on évoque un ensemble de plusieurs composants, comme par exemple une alimentation, un micro-contrôleur et une antenne). Ainsi, de manière statistique, nous pourrons en déduire un pattern récurrent pour chaque expérience en les effectuant dans différents environnements (pourquoi pas une chambre anachoïque). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons &lt;br /&gt;
* Capter le signal émis par un objet connecté le plus précisément possible&lt;br /&gt;
&lt;br /&gt;
* Concevoir nos propres objets connectés tous différents mais basés sur un même modèle&lt;br /&gt;
&lt;br /&gt;
* Interpréter les spectrogrammes, faire une étude statistique des signaux émis par nos différents objets et en tirer des conclusions&lt;br /&gt;
&lt;br /&gt;
* Répertorier dans une base de données les signatures de nos objets , voire de quelques objets disponibles sur le marché&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix logiciel :&lt;br /&gt;
&lt;br /&gt;
- La distribution Linux Pentoo ou Kali pour traiter les signaux avec GNU RADIO (Suite logicielle dédiée à l’implémentation de radios logicielles et de systèmes de traitement du signal).&lt;br /&gt;
&lt;br /&gt;
- FemtoOS pour l'OS des ATMEGA328P et ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix Matériel : &lt;br /&gt;
&lt;br /&gt;
- Plusieurs modules radios émetteurs &lt;br /&gt;
&lt;br /&gt;
- Plusieurs microcontrôleurs ATMEGA328P et un ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
- Des alimentations identiques pour chaque PCB&lt;br /&gt;
&lt;br /&gt;
- Un HackRF pour la réception des signaux&lt;br /&gt;
&lt;br /&gt;
- Une antenne 50 Ohm pour le HackRF [https://www.passion-radio.fr/accessoires-sdr/antenne-ant500-74.html]&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous devons préparer tout le matériel qui servira à faire nos tests. C'est à dire concevoir :&lt;br /&gt;
&lt;br /&gt;
- Un ensemble SDR/PC qui traitera le signal reçu avec GNU RADIO.&lt;br /&gt;
&lt;br /&gt;
- Une multitude de PCB qui seront nos objets connectés (Sur chacun d'entre eux on trouvera au minimum une antenne radio, un microcontrôleur et une alimentation)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de récupérer une &amp;quot;signature&amp;quot; d'un de nos objets , il faudra faire plus de 50 analyses spectrales pour conclure statistiquement sur une bonne signature qui caractérisera l'objet.&lt;br /&gt;
&lt;br /&gt;
Nous devons donc dans un second temps: &lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques mais qui ont un '''firmware''' différent.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques qui ont pour seule différence le '''microcontrôleur'''.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques dont seul le '''PCB''' diffère.&lt;br /&gt;
&lt;br /&gt;
Grâce à tous ces tests , nous pourrons conclure et voir l'impact qu'à le matériel ou le logiciel sur la signature d'un objet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enfin si les délais nous le permettent, nous pourrons réaliser un software qui cartographiera nos objets connectés dans la pièce grâce à la puissance de la signature reçue (Ce qui devrait être réalisable puisqu'à ce stade nous aurons une base de donnée des signatures).&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
|3&lt;br /&gt;
|8&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Recherches&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|6&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Prise en main de GnuRadio&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Configuration Xbee&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Expériences&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|5&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|4&lt;br /&gt;
|15&lt;br /&gt;
|9&lt;br /&gt;
|8&lt;br /&gt;
|7&lt;br /&gt;
|8&lt;br /&gt;
|8&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
[[Fichier:HackrfOne.jpeg|200px|thumb|right|Le HackRF One]]&lt;br /&gt;
Durant cette semaine, nous avons continué nos recherches notamment sur le moyen de transmission de nos objets connectés. Nous avons confirmé notre choix de notre SDR : Monsieur Boé nous a confirmé que des HackRF seraient disponibles dans les laboratoires et qu'il pourrait nous en prêter un. On disposera donc d'une antenne puissante pour traiter les signaux émis par nos objets communiquants. &lt;br /&gt;
&lt;br /&gt;
Il faudra coupler notre HackRF avec un logiciel appelé GNU RADIO qui est un logiciel très complet ( Pour information : la NASA a utilisé GNU RADIO afin de rétablir le contact avec une sonde spatiale abandonnée ). Afin de faire tourner ce logiciel libre, nous aurons besoin de la distribution Kali Linux, ex Backtrack.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Choix des émetteurs/récepteurs === &lt;br /&gt;
&lt;br /&gt;
Nous avons décidé que nos objets connectés communiqueront dans deux '''bandes de fréquences ISM''', l'une à '''900 MHz''' grâce à des modules Digi Xbee et l'autre à '''2,4 GHz''' par le moyen de modules émetteurs Bluetooth. On rappellera que les Digi Xbee et les émetteurs/récepteurs Bluetooth seront pilotés par des ATMEGA 2560.&lt;br /&gt;
&lt;br /&gt;
Les Xbee ne communiqueront pas entre eux et émettront en continu les mêmes données car ils le peuvent, alors que les émetteurs/récepteurs Bluetooth devront s'échanger des données si on veut pouvoir observer un quelconque signal autour de la fréquence de leurs porteuses. &lt;br /&gt;
&lt;br /&gt;
On voudra observer premièrement, si avec deux objets dans les '''mêmes''' conditions (donc même µc et même émetteur), on peut ou non '''distinguer une différence'''. Ceci est fondamental pour la suite des expériences, puisque si les deux émettent à la même fréquence, on pourra faire varier plusieurs paramètres afin de trouver '''des clés''' (des signes) qui pourraient aider à l'identification du matériel.&lt;br /&gt;
&lt;br /&gt;
Ces clés représentent différents facteurs potentiels d'identification du signal (le rapport signal-bruit en fonction de la distance par exemple...).&lt;br /&gt;
&lt;br /&gt;
''On planifie alors pour la semaine suivante de réussir à faire émettre, en utilisant simplement des breadboards pour commencer, nos Xbee et modules BT et observer quelque chose grâce à notre SDR.''&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration des modules XBee ===&lt;br /&gt;
&lt;br /&gt;
Nous avons configuré deux XBee afin qu'ils puissent communiquer entre eux : &lt;br /&gt;
&lt;br /&gt;
Les modules XBee ont été montés sur des platines d'interface USB/série de manière à ce qu'on puisse les paramétrer via le programme de contrôle ''minicom''. &lt;br /&gt;
&lt;br /&gt;
Dans le doute, on supposera que les XBee communiquent à 9600 Baud. On exécute la commande suivante : &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;minicom -b 9600 -D /dev/ttyUSB0&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
On active l'echo local dans minicom, afin de pouvoir observer ce qui a été envoyé par liaison série au XBee ('''CTRL+A''' puis '''E''').&lt;br /&gt;
&lt;br /&gt;
Pour commencer le paramètrage il faut taper ''' +++ ''' rapidement. Le XBee nous répond OK, cela veut dire que nous sommes dans le mode configuration et que nous pouvons utiliser les commandes '''AT'''. (Redirection vers la liste des commandes AT XBee [https://cdn.sparkfun.com/assets/resources/2/9/22AT_Commands.pdf]).&lt;br /&gt;
&lt;br /&gt;
Comme nos XBee ont été utilisés auparavant, il a fallu les restaurer à l'état usine avec la commande '''ATRE'''.&lt;br /&gt;
&lt;br /&gt;
Si on souhaite que des XBee puissent s'envoyer des données il faut qu'ils soient sur le même canal (commande '''ATCH''') et aient le même PAN ID (commande '''ATID'''). Notre PAN ID sera '''BEE6''' et le canal sera celui par défaut '''C'''.&lt;br /&gt;
&lt;br /&gt;
Ensuite il faut leur donner une adresse de destination ('''ATDH''' &amp;amp; '''ATDL''') qui sera l'adresse broadcast, pour ce faire on entre &lt;br /&gt;
 ATDH=0000&lt;br /&gt;
 ATDL=FFFF&lt;br /&gt;
&lt;br /&gt;
Enfin '''ATMY''' représente l'ID du XBee, notre premier XBee aura comme ID 5000 et le second 5001.&lt;br /&gt;
&lt;br /&gt;
N'oublions pas de sauvegarder les paramètres avec '''ATWR'''.&lt;br /&gt;
&lt;br /&gt;
On vérifie que tout a bien été pris en compte :&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;&lt;br /&gt;
+++OK&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATID&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
BEE6&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
C&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
0&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDL&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
FFFF&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATMY&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
5000&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCN&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Puis on fait de même avec le deuxième XBee (ID 5001).&lt;br /&gt;
&lt;br /&gt;
Voilà, lorsque on envoie des caractères par liaison série sur 5000, la LED '''Tx''' de 5000 s'allume et la Led '''Rx''' de 5001 s'allume elle aussi. Cela signifie que l'envoi de donnée par onde radio s'effectue correctement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que les XBee émettent et reçoivent, on peut commencer les mesures avec notre SDR. Mais avant cela il va falloir bien se familiariser avec le logiciel GNU RADIO qui est assez difficile à prendre en main.&lt;br /&gt;
&lt;br /&gt;
=== Première prise en main du logiciel GNURADIO ===&lt;br /&gt;
&lt;br /&gt;
Installation de GNU radio avec les fonctions + drivers pour HackRF : &lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install gqrx-sdr gnuradio gr-osmosdr hackrf &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le bloc Osmocom Source sert de &amp;quot;passerelle&amp;quot; entre le logiciel et la SDR, il permet de transmettre les informations récupérées par le HackRF afin qu'on puisse les traiter avec d'autres bloc de fonctions.&lt;br /&gt;
&lt;br /&gt;
Si on veut pouvoir récuperer les données il faut passer l'argument ''hackrf=0'' dans la box périphérique du bloc Osmocom.&lt;br /&gt;
&lt;br /&gt;
Ci-dessous on peut voir le spectre environnant entre 2.44GHz et 2.460GHz grâce au bloc WX GUI FFT Sink.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ScreenGnuRadio.png|Interface de GNURadio]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous a permis d'effectuer notre première expérience. L'utilisation des deux Xbees nous a permis d'observer l'impact des Xbee sur le champ électromagéntique environnant.&lt;br /&gt;
&lt;br /&gt;
Si on analyse le spectre environnant grâce au module FFT de GNU Radio, lorsque les Xbee communiquent entre eux, on peut apercevoir un pic caractéristique propre.&lt;br /&gt;
En effet, lors de l'emission d'un message sur le port série, on a un pic qui se dégage du spectre d'amplitude -20dBm. Ce pic est caractéristique au canal de communication choisi et configuré sur le Xbee.&lt;br /&gt;
Néanmoins, le signal est perturbé par le bruit environnant. &lt;br /&gt;
L'expérience étant effectuée au sein de l'école, les signaux Wi-Fi perturberont l'étude.&lt;br /&gt;
Il faut noter que la norme IEEE 802.11 impose au Wi-Fi l'utilisation d'une bande passante s'étalant de 2.4 GHz à 2.5 GHz.&lt;br /&gt;
&lt;br /&gt;
La bande passante des modules Zigbee se décomposent en 16 canaux, allant de 2400 MHz à 2480 MHz par pas de 5 MHz.&lt;br /&gt;
&lt;br /&gt;
Le canal ici utilisé est le canal 13 (3ème canal) de fréquence 2415 MHz.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[Fichier:Channel135001.png|thumb|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Fichier:channel135000.png|thumb|none|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBeeCh13.png|Spectre de l'environnement autour du XBee|thumb|none|400 px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBeeCh13SND.png|Lors de l'envoi de données au XBee voisin|thumb|none|400 px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut observer un pic de puissance lors de l'envoi d'une donnée en série à la fréquence 2.415 GHz.&lt;br /&gt;
Il nous est maintenant nécessaire d'analyser de plus près les signaux et leurs fréquence centrale dans la bande perçue au dessus de -20dB.&lt;br /&gt;
&lt;br /&gt;
On réeffectuera une expérience en zone isolée des signaux parasites.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous avons principalement fait des recherches dans le but de mieux comprendre les signaux émis par le Xbee.&lt;br /&gt;
&lt;br /&gt;
En somme, nous étions confrontés à de nombreuses interrogations. Le fonctionnement du Xbee étant assez simple et la sécurité du protocole Zigbee étant moindre, y a t-il possibilité de démoduler le signal émis afin de développer nos études ?&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
[[Fichier:Switchchannel pyscript.PNG|upright=0.8|thumb|right|Script Python]]&lt;br /&gt;
&lt;br /&gt;
Après réflexion et consultation de nos encadrants, nous nous sommes rendu compte que la démodulation prévue lors de la semaine 4 n'aiderait pas à répondre à la problématique de notre sujet !  &lt;br /&gt;
&lt;br /&gt;
Afin de mieux visualiser les signaux des Xbee , on décide d'automatiser le processus d'envoi sur le port série des données vers le Xbee. C'est à dire concevoir un programme Python qui automatisera l'envoi de données et le changement de channel à intervalle de temps régulier (Changement toutes les 10 secondes). &lt;br /&gt;
&lt;br /&gt;
L'utilisation de Minicom '''n'était pas du tout la meilleure solution''' pour faire émettre les Xbee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Après quelques essais, on remarque que lorsque le Xbee émet sur le channel 13, il émet à environ 2,445GHz au lieu d'émettre à 2,415GHz soit une différence de 30MHz : Ceci n'est pas important, car ce que l'on souhaite remarquer c'est un éventuel décalage de la fréquence centrale entre deux Xbee différents. Si les deux Xbee n'ont pas la même frequence centrale on pourra conclure que la '''fréquence centrale''' de la porteuse du Xbee n'est pas '''une des clés''' permettant d''''identifier''' cet émetteur/récepteur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaines 6 et 7==&lt;br /&gt;
&lt;br /&gt;
Afin de mieux cerner le comportement électromagnétique des modules XBee, il nous est nécessaire de comprendre leur fonctionnement et le protocole Zigbee.&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous avons cherché à souligner le parallélisme entre étude fréquentielle par le spectre et étude temporelle du signal.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PlancheXPtest.jpg|thumb|right|Planche prototype]]&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous avons paramétré la fréquence centrale de capture du HackRF. En effet, bien que le HackRF dispose d'une large bande passante, afin de se focaliser sur la porteuse, il est indispensable de configurer le HackRF en conséquence.&lt;br /&gt;
En second lieu, pour éviter une variation du RSSI (Received Signal Strength Indication) et de la puissance du signal, nous devions mettre en place une prototype de &amp;quot;planche expérimentale&amp;quot; sur laquelle devaient être fixés nos différents modules (l'antenne de reception et les Xbees).&lt;br /&gt;
&lt;br /&gt;
La position des antennes les unes par rapport aux autres est fondamentale. Afin d'optimiser la reception, les antennes doivent être parallèles.&lt;br /&gt;
&lt;br /&gt;
Chaque Xbee est identifié par un chiffre (1 ou 2). En effet, l'attribution de ces chiffres sera définitive pour ne pas perturber la cohérence des expériences. &lt;br /&gt;
Leur position est aussi fondamentale. Ainsi, en fonction que le Xbee soit emetteur ou récepteur, il sera disposé différement sur la planche.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Le XBee 1 émetteur directement connecté en série au PC===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:GrapheGNURadio01.png|thumb|left|150px|Schéma simple d'étude fréquentielle et temporelle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette expérience est la première mettant en place un contexte (un seul Xbee émetteur connecté en série au PC, le deuxième Xbee étant inactif) et nous permettra d'étudier le plus de cas possibles.&lt;br /&gt;
&lt;br /&gt;
Nous avons tout d'abord commencé par un graphe GNURadio simple permettant l'observation du spectre et du signal et la variation de la fréquence d'étude.&lt;br /&gt;
&lt;br /&gt;
Le script python a été réécrit afin que le XBee puisse émettre une chaîne de caractère &amp;quot;HELLO&amp;quot; * 1024. En effet, même si la fréquence de balayage du module HackRF peut être grandement augmentée, il faut éviter d'aller au dessous de 0.01s, finissant par consommer de manière considérable les ressources octroyées par le CPU le cas échéant.&lt;br /&gt;
Le fait d'augmenter la taille de la chaine de caractère permet de mieux synchroniser l'étude en temps réel avec la capture des données.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc émis les données sur le canal 14, soit la fréquence centrale est à 2.420GHz selon la norme Zigbee. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Etude fréquentielle&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L'étude fréquentielle est similaire à celle réalisée auparavant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div center&amp;gt;&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[Fichier:Spectrefreq2.png|thumb|center|750px|Spectre fréquentiel au canal 14]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[Fichier:Spectrogram.png|thumb|center|250px|Spectrogramme]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on peut observer sur l'analyseur de spectre GNURadio que la fréquence centrale est située 2.450GHz. Nous n'avons pas trouvé la raison mais il s'agit sûrement d'un décalage au niveau applicatif.&lt;br /&gt;
&lt;br /&gt;
D'autre part, l'ensemble des fréquences qui dessinent le spectre s'étalent sur une large bande de fréquence. En effet, cette technique d'étalement appelée DSSS (Direct-Sequence Spread Spectrum) utilisé par les modules XBee permet au signal d'être moins sensible aux interférences et aux brouillages. En outre, même si la puissance du spectre dans sa globalité reste la même, la densité spectrale elle diminue considérablement, rendant le signal plus &amp;quot;discret&amp;quot;.&lt;br /&gt;
La différence de puissance entre le lobe principal et les premiers lobes secondaires sont de 30 dB, ce qui est aussi commun au DSSS.&lt;br /&gt;
&lt;br /&gt;
Le spectrogramme témoigne aussi de l'étalement du signal sur un peu plus de 6 MHz (3MHz de par et d'autre de la fréquence centrale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt; Etude temporelle &amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Signal temporel.png|thumb|left|500px|Signal observable centré à 2.450GHz lors de l'émission]]&lt;br /&gt;
&lt;br /&gt;
Le signal ici est séparé en deux composantes car il s'agit d'un signal complexe. Nous avons supposé en premier temps qu'il s'agissait du signal principal décalé de 180°, ce qui n'était pas le cas.&lt;br /&gt;
Après quelques recherches, cette séparation des composantes permet de transmettre deux fois plus de données sur la même bande passante.&lt;br /&gt;
Le signal observable témoigne d'une modulation bien spécifique au XBee. En effet, on peut observer des sauts de phase à différents points, qui correspondent à une modulation par changement de phase (modulation QPSK ou Quadratic Phase-Shift Keying). Ce sont ces sauts de phases qui permettent la transmission des bits.&lt;br /&gt;
Les changements de phase s'il y a se font toutes les µs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé d'enregistrer ces données brutes dans un fichier et nous l'avons étudier avec Audacity, logiciel open-source de son, et donc de signaux ! L'inconvénient avec l'interface graphique QT de GNURadio est son manque de précision lors d'un dézoom sur le signal en temps réel. Audacity permet de palier à celà !&lt;br /&gt;
En outre, on peut voir que les paquets Xbee sont reconnaissables. En effet, le signal témoigne de la taille du paquet XBee.&lt;br /&gt;
&lt;br /&gt;
Le paquet XBee est constitué d'un premier header (header physique) de 6 octets :&lt;br /&gt;
- la séquence de préambule (4 octets) constitué de 32 bits à 0&lt;br /&gt;
&lt;br /&gt;
- l'indice de début du paquet fixé à 0x7A (1 octet)&lt;br /&gt;
&lt;br /&gt;
- la longueur du paquet (1 octet);&lt;br /&gt;
&lt;br /&gt;
d'un header MAC (7 à 27 octets en fonction des informations de l'adresse), d'un bloc FCS de fin de paquet (2 octets) et l'ensemble des données (de 1 à 104 octets).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Signal2.png|thumb|right|400px|On observe graphiquement qu'un paquet est transmis en 3846µs]]&lt;br /&gt;
[[Fichier:PacketXBee.png|400px|thumb|right|Paquet XBee]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Comme dit plus haut, les signaux émis par le XBee connaissent un étalement sur le spectre par DSSS.&lt;br /&gt;
Cet étalement s'effectue en divisant chaque symbole (correspondant à une série de 4 bits) transmis en &amp;lt;B&amp;gt;&amp;lt;I&amp;gt;chips&amp;lt;/I&amp;gt;&amp;lt;/B&amp;gt;.&lt;br /&gt;
Chaque symbole, soit 4 bits, correspond à 32 chips, et donc 32 états binaires (1 octet correspond à 64 chips).&lt;br /&gt;
Dans le cas de la norme ZigBee, la transmission de chacun des chips est synchronisé sur chaque µs (1 chip toutes les µs).&lt;br /&gt;
&lt;br /&gt;
Les signaux reçus par l'antenne HackRF étaient deux sinusoïdes modulées en phase et qui s'étalaient sur une période d'environ 3840µs (3846µs graphiquement mais il y a possibilité d'erreur à l'echelle du µs).&lt;br /&gt;
Sachant qu'un octet correspond à 64µs, on a :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;N_{octets} =\frac{2*T_{signal}}{64*T_{chip}}=\frac{2*3.840*10^{-6}}{64*10^{-6}}=120 octets&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'analogie peut être effectuée entre paquet Ethernet et paquet ZigBee. En effet, la taille limite des données d'un paquet est de 104 octets. La chaîne de caractère n'étant qu'envoyée par paquet, le paquet observé n'est que de 120 octets, ce qui est cohérent avec les caractéristiques du XBee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Hello1024secs.png|thumb|none|Temps de transmission de la chaîne de caractères &amp;quot;HELLO&amp;quot; 1024 fois]] &amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:AudacitySignal2.png|thumb|none|51 Paquets XBee portent la chaîne de caractère &amp;quot;HELLO&amp;quot; 1024 fois]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 8==&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé cette semaine d'étudier, ce qui est selon pour nous, l'une des pistes fondamentales de notre projet, et plus particulièrement de l'étude de nos signaux : le rapport signal bruit.&lt;br /&gt;
&lt;br /&gt;
L'objectif de cette semaine et de celle à venir était, à partir du signal acquis par le hackrf, d'effectuer le calcul du SNR (signal-to-noise ratio) tel que :&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;SNR =\frac{P_{signal}}{P_{bruit}}&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le script python qui nous a permis de communiquer entre les deux shields Xbee se verra amélioré afin de faire plusieurs acquisition des signaux lors de la communication entre les Xbee, effectuer une moyenne statistique, et de même lorsqu'il n'y a pas de communication.&lt;br /&gt;
&lt;br /&gt;
Néanmoins, nous avons essayé d'approcher le SNR directement depuis l'interface de GnuRadio par le biais de l'utilitaire graphique et le langage en bloc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 9==&lt;br /&gt;
&lt;br /&gt;
L'étude des signaux posait réellement problème de par le fait qu'une grande partie de la capture faite n'était que purement le bruit sans signal (utile plus tard pour l'étude du SNR).&lt;br /&gt;
Prenons l'exemple d'un paquet de 21 octets (un paquet contenant une seule chaîne de caractères HELLO). Le signal s'étalerait en théorie sur 21*64 chips soit 672 chips. Sachant que la modulation est une modulation QPSK, on s'étale sur un temps de 672µs.&lt;br /&gt;
En effet, le Xbee transmet toutes les 100ms.&lt;br /&gt;
Donc qu'une partie du signal nous est utile.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décider d'écrire un script qui nous permettrait d'étudier le signal dans de meilleures conditions, et donc de le filtrer.&lt;br /&gt;
&lt;br /&gt;
Chaque capture de signal effectuée est enregistrée dans un fichier par le biais du bloc fonction &amp;lt;B&amp;gt;&amp;lt;I&amp;gt;File Sink&amp;lt;/I&amp;gt;&amp;lt;/B&amp;gt; du compagnon GNURadio. Néanmoins, les fichiers obtenus sont des fichiers binaires assez lourds (environ 500Mo pour une capture de 3s), ce qui est un réel problème et qui implique le filtrage du signal.&lt;br /&gt;
&lt;br /&gt;
La bibliothèque numpy pour python nous permet en outre directement d'importer les échantillons des signaux, les traduisant du binaire à un format cible (complexe flottant 64 bits) dans un Array par le biais de la fonction:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; f = scipy.fromfile(open(&amp;quot;Nom du fichier&amp;quot;), dtype=scipy.complex64) &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La première solution pour réduire ce signal était d'imposer un threshold directement sur le signal, supérieur au bruit, mais qui conduirait à une perte d'une partie du signal à étudier.&lt;br /&gt;
La deuxième solution qui a été retenue était tout simplement de calculer l'amplitude et la phase du signal et appliquer ce même threshold à l'amplitude.&lt;br /&gt;
&lt;br /&gt;
== Semaine 10 et + ==&lt;br /&gt;
&lt;br /&gt;
A partir de la semaine 10 nous n'avons fait qu’enchaîner les expériences pour avoir suffisamment de données et en tirer des conclusions.&lt;br /&gt;
&lt;br /&gt;
Lorsqu'on fait une acquisition d'un signal xbee , on peut maintenant via un script traiter cette acquisition et récupérer seulement les parties qui nous intéressent : A savoir la partie réelle et la partie imaginaire , l'amplitude du signal et enfin la phase du signal.&lt;br /&gt;
&lt;br /&gt;
Exemple ci dessous après acquisition + traitement de notre xbee n°2 :&lt;br /&gt;
[[Fichier:Traitement xbee2.png|thumb|left|redresse=2]]&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;/div&gt;</summary>
		<author><name>Amoreau</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=73735</id>
		<title>IMA4 2018/2019 P70</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=73735"/>
				<updated>2019-04-25T20:15:55Z</updated>
		
		<summary type="html">&lt;p&gt;Amoreau : /* Semaine 10 et + */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;font-size: 30px; width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;Impact du matériel et du logiciel sur le champ électromagnétique&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Projet'''&amp;lt;/ins&amp;gt; : Impact du matériel et du logiciel sur le rayonnement électromagnétique&lt;br /&gt;
&lt;br /&gt;
''Nous proposons d'évaluer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et la consommation électrique.''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Etudiants'''&amp;lt;/ins&amp;gt; : Souheib KHINACHE et Antoine MOREAU&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Encadrants'''&amp;lt;/ins&amp;gt; : Alexandre BOE, Xavier REDON et Thomas VANTROYS&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'internet des objets est un marché en plein essor. La communication entre les différents objets connectés crée un nuage de signaux autour d'eux. Ces derniers sont vus par les utilisateurs comme des boîtes noires : le fonctionnement se fait sans en connaître les composants matériels et logiciels. &lt;br /&gt;
Néanmoins, ces objets, de par leurs propriétés électroniques, créent des fuites électromagnétiques impactant le champ environnant. &lt;br /&gt;
&lt;br /&gt;
Bien qu'ils peuvent porter à débat sur l'impact sur la santé, ces signaux peuvent représenter de réelles sources d'informations sur l'aspect matériel et applicatif de l'objet.&lt;br /&gt;
&lt;br /&gt;
Il serait donc intéressant d'avoir idée générale sur le fonctionnement du système en interprétant les ondes électromagnétiques émises par ce système.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Les principaux objectifs de ce projet seront donc de mesurer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et sur la consommation électrique.&lt;br /&gt;
Pour cela, l'outil potentiel avec lequel nous pourrions travailler serait une sonde de champ électromagnétique afin d'établir des mesures. &lt;br /&gt;
Cependant, nous pourrions concevoir notre propre système de capture et d'interprétation à partir d'une antenne, de filtres de fréquences et d'un microcontrôleur (on commencera par un ATMega328P). Il sera nécessaire de prendre en compte les perturbations issues de notre appareil de mesure et d'en tenir compte.&lt;br /&gt;
&lt;br /&gt;
On effectuera ainsi plusieurs expérimentations sur différents supports d'étude :&lt;br /&gt;
*l'aspect &amp;quot;Hardware&amp;quot; en étudiant différents modèles pour un même type de shield  &lt;br /&gt;
*l'aspect calculatoire du matériel en se basant sur l'impact des microcontrôleurs en fonction du modèle (ATMega328P et ATMega2560)&lt;br /&gt;
*l'aspect &amp;quot;Software&amp;quot;, en étudiant l'impact du logiciel et du firmware d'un même composant (différents firmwares pour un même shield Wi-Fi)&lt;br /&gt;
*l'aspect puissance des composants électroniques de gestion de puissance (ponts, hacheurs, onduleurs...).&lt;br /&gt;
&lt;br /&gt;
L'étude des différentes informations se fera par traitement des signaux électromagnétiques et des spectres. &lt;br /&gt;
Afin de mieux appréhender le problème, il nous est nécessaire de comprendre les phénomènes physiques issus de la notion d'électromagnétisme.&lt;br /&gt;
&lt;br /&gt;
Ces études mèneront à une étape plus complexe : l'interprétation des signaux. En effet, l'un des objectifs de ce projet est de comprendre du mieux possible le fonctionnement d'un système sans y avoir accès directement, et donc dans ce contexte &amp;quot;traduire&amp;quot; un ensemble de signaux électromagnétiques.&lt;br /&gt;
&lt;br /&gt;
On pourra en outre apporter un aspect visuel à l'étude en rajoutant une interface informatique.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
Bien qu'aux yeux de nombreuses personnes le bruit électromagnétique créé par les équipements électroniques du quotidien peut porter à controverse (débats concernant l'impact sur la santé par exemple), il peut être une source d'informations. &lt;br /&gt;
De nos jours, les ondes électromagnétiques restent un vaste champ d'étude, sujettes à de nombreuses thèses et recherches au sein des laboratoires.&lt;br /&gt;
&lt;br /&gt;
On peut prendre l'exemple de [https://www.eurekalert.org/pub_releases/2015-01/giot-rwt010715.php Milos Prvulovic], professeur à l'Institut Technologique de Géorgie, ayant simulé un contexte de cybercafé, dans lequel il place une antenne magnétique, un ordinateur portable cible et un ordinateur &amp;quot;espion&amp;quot;. Il réussit, grâce aux signaux EM émis par l'impulsion de l'appui des touches clavier à capter un message écrit par un ordinateur cible. &lt;br /&gt;
&lt;br /&gt;
Néanmoins, dans le quotidien, l'utilisation des sondes électromagnétiques se fait pour l'étude énergétique d'un système électronique (fuites électromagnétiques anormales, preuves d'une anomalie...) afin de respecter certaines normes législatives. Le code du travail par exemple réglemente et définit des valeurs seuils par le biais des articles R. 4453-3 et R. 4453-4.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
'''NBM-520 de NARDA STS'''&lt;br /&gt;
[[Fichier: NBM_TS.png|thumb|300px|NBM-TS, application des appareils NBM]]&lt;br /&gt;
NARDA STS est une entreprise qui fournit des outils de mesure. Elle met à disposition aux professionnels des sondes électromagnétiques.&lt;br /&gt;
La NBM-520 est un appareil de la franchise, mesurant le champ électrique et magnétique. Elle donne des valeurs précises du champ électromagnétique ambiant sur une large bande. Elle propose différentes sondes modulables permettant une souplesse au niveau de l'étude en fonction des besoins, avec des sondes pouvant étudier des signaux de fréquence de 100kHz à 6GHz ou même de 300kHz à 50GHz (en fonction de la sonde choisie).&lt;br /&gt;
&lt;br /&gt;
En outre, le dispositif peut se connecter en USB sur PC afin d'envoyer les données capturées et d'en faire une étude. Le dispositif propose un logiciel d'étude, NBM-TS, permettant d'observer du champ en fonction du temps, de la fréquence, de la position...&lt;br /&gt;
&lt;br /&gt;
L'équipement est utilisé par l'ANF (l'Agence Nationale des Fréquences, agence gérant l'ensemble des normes autour des radiofréquences), et est donc un gage de qualité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Avantages :''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Large bande de fréquence&lt;br /&gt;
* Matériel solide&lt;br /&gt;
* Application fonctionnelle permettant l'étude et gestion des données&lt;br /&gt;
* Possibilité d'étudier séparément champ électrique et magnétique&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Inconvénients:''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Impossible d'étudier les basses fréquences (appareils sous tension, bobinages...)&lt;br /&gt;
* Prix élevé : à partir de 3100€&lt;br /&gt;
* La cible de ce produit est surtout les professionels&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
'''Une pita.'''&lt;br /&gt;
&lt;br /&gt;
''Comment mon pain à pita vole ta clé RSA ?''&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Pita.jpg|200px|thumb|left|Une pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Des chercheurs israéliens ont découvert un moyen de capturer des clés de cryptage RSA, réputées comme inviolables, par le biais d'une pita... du moins avec un dispositif suffisamment petit pour être caché dans un pain à pita. &lt;br /&gt;
Le dispositif, renommé PITA pour Portable Instrument for Trace Acquisition a la particularité de capturer les ondes radio électromagnétiques émanantes d'un PC, qu'il soit connecté à un réseau ou pas.&lt;br /&gt;
Les différentes opérations du processeur sont identifiées en distinguant les différents modèles de l'activité radio sur le spectre EM.&lt;br /&gt;
&lt;br /&gt;
Bien que la capture des clés RSA a été faite dans des conditions particulières (modification du processeur de l'ordinateur cible), il est néanmoins possible, selon les chercheurs, d'identifier quelle type d'activité est exercée par l'ordinateur ainsi que son état.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PITA.jpg|300px|thumb|right|Un dessous de pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'un des points importants concernant le dispositif est son coût : moins de 300 euros.&lt;br /&gt;
L'appareil dispose :&lt;br /&gt;
* d'un PC portatif (PC-on-a-stick) ''Rikomagic MK802 IV'',&lt;br /&gt;
* d'un recepteur radio SDR ''FUNcube Dongle Pro+''&lt;br /&gt;
* d'une antenne radio&lt;br /&gt;
* d'une batterie&lt;br /&gt;
* d'une antenne WiFi&lt;br /&gt;
* d'une carte MicroSD&lt;br /&gt;
* d'un adapteur d'antenne&lt;br /&gt;
* et d'une '''pita'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le dispositif aurait une portée de 50cm. &lt;br /&gt;
Les chercheurs israéliens ont collaboré avec GNU Private Guard (logiciel de cryptage asymétrique) afin de protéger contre ces attaques les clés de cryptage.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
&lt;br /&gt;
''Scénario 1''&lt;br /&gt;
&lt;br /&gt;
Gérard a toujours le flair pour les bonnes affaires. Il a acheté une centaine de clés WiFi à un prix dérisoire sur AloXpresso afin de faire du profit à la revente. Le vendeur lui garantit que toutes les clés fonctionnent correctement. Gérard veut vérifier. Après vérification, 99 des clés sur 100 fonctionnent comme prévu. Gérard aimerait être sûr du disfonctionnement, mais Gérard n'est pas une pointure en informatique. &lt;br /&gt;
&lt;br /&gt;
Coup de génie ! Il se rappelle qu'il dispose d'un dispositif qui capte les ondes EM et les interprète directement. C'est le moment de tester ça. Il remarque une anomalie sur le spectre.&lt;br /&gt;
Il décide de contacter le revendeur pour lui signaler un disfonctionnement sur l'une des clé. &lt;br /&gt;
Pas de soucis. Le vendeur, étant bon prince, lui envoie une autre clé USB et lui fait une ristourne.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Scénario 2''&lt;br /&gt;
&lt;br /&gt;
La police fait une perquisition chez un individu soupçonné de graves délits. Cela fait plusieurs mois que la brigade criminelle prépare l'intervention, et une fois sur les lieux ils arrêtent le soupçonné malfaiteur.&lt;br /&gt;
Cependant avant de repartir, elle veut faire l'acquisition d'un maximum de preuves. Elle veut alors prendre l'essentiel des objets, dont certains objets éléctroniques connectés de l'individu dont elle pourra extraire les informations qui serviront à le faire tomber.&lt;br /&gt;
&lt;br /&gt;
Par chance, elle dispose d'un petit outil qui scannera les signatures alentours des objets connectés, comme des téléphones cachés, clés USB wifi dissimulées dans le décor etc..&lt;br /&gt;
Et si le suspect avait modifié malignement un objet connecté banal pour l'utiliser autrement à ses fins, la police le découvrirait car elle possède une base de données de toutes les signatures spectrales des objets connectés sur le marché et celle de l'objet modifié ne collerait pas avec celle de la base de données.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
&lt;br /&gt;
'''Comment étudier les signaux malgré les perturbations électromagnétiques ambiants et les faibles signaux des µC ?'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les signaux électromagnétiques des microcontrôleurs ou d'autres composants peuvent être faibles. Il y a une possibilité pour palier à ce problème, c'est de capter les signaux depuis une antenne émettrice que l'on rajoute à l'objet d'étude. &lt;br /&gt;
Nous utiliserons un SDR (Software Defined-Radio) afin de capter les ondes radio et les étudier directement sur PC. Le filtrage s'effectuera ainsi de manière numérique. Plusieurs tests seront effectués pour le même objet à étudier (quand on parle d'objet, on évoque un ensemble de plusieurs composants, comme par exemple une alimentation, un micro-contrôleur et une antenne). Ainsi, de manière statistique, nous pourrons en déduire un pattern récurrent pour chaque expérience en les effectuant dans différents environnements (pourquoi pas une chambre anachoïque). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons &lt;br /&gt;
* Capter le signal émis par un objet connecté le plus précisément possible&lt;br /&gt;
&lt;br /&gt;
* Concevoir nos propres objets connectés tous différents mais basés sur un même modèle&lt;br /&gt;
&lt;br /&gt;
* Interpréter les spectrogrammes, faire une étude statistique des signaux émis par nos différents objets et en tirer des conclusions&lt;br /&gt;
&lt;br /&gt;
* Répertorier dans une base de données les signatures de nos objets , voire de quelques objets disponibles sur le marché&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix logiciel :&lt;br /&gt;
&lt;br /&gt;
- La distribution Linux Pentoo ou Kali pour traiter les signaux avec GNU RADIO (Suite logicielle dédiée à l’implémentation de radios logicielles et de systèmes de traitement du signal).&lt;br /&gt;
&lt;br /&gt;
- FemtoOS pour l'OS des ATMEGA328P et ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix Matériel : &lt;br /&gt;
&lt;br /&gt;
- Plusieurs modules radios émetteurs &lt;br /&gt;
&lt;br /&gt;
- Plusieurs microcontrôleurs ATMEGA328P et un ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
- Des alimentations identiques pour chaque PCB&lt;br /&gt;
&lt;br /&gt;
- Un HackRF pour la réception des signaux&lt;br /&gt;
&lt;br /&gt;
- Une antenne 50 Ohm pour le HackRF [https://www.passion-radio.fr/accessoires-sdr/antenne-ant500-74.html]&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous devons préparer tout le matériel qui servira à faire nos tests. C'est à dire concevoir :&lt;br /&gt;
&lt;br /&gt;
- Un ensemble SDR/PC qui traitera le signal reçu avec GNU RADIO.&lt;br /&gt;
&lt;br /&gt;
- Une multitude de PCB qui seront nos objets connectés (Sur chacun d'entre eux on trouvera au minimum une antenne radio, un microcontrôleur et une alimentation)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de récupérer une &amp;quot;signature&amp;quot; d'un de nos objets , il faudra faire plus de 50 analyses spectrales pour conclure statistiquement sur une bonne signature qui caractérisera l'objet.&lt;br /&gt;
&lt;br /&gt;
Nous devons donc dans un second temps: &lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques mais qui ont un '''firmware''' différent.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques qui ont pour seule différence le '''microcontrôleur'''.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques dont seul le '''PCB''' diffère.&lt;br /&gt;
&lt;br /&gt;
Grâce à tous ces tests , nous pourrons conclure et voir l'impact qu'à le matériel ou le logiciel sur la signature d'un objet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enfin si les délais nous le permettent, nous pourrons réaliser un software qui cartographiera nos objets connectés dans la pièce grâce à la puissance de la signature reçue (Ce qui devrait être réalisable puisqu'à ce stade nous aurons une base de donnée des signatures).&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
|3&lt;br /&gt;
|8&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Recherches&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|6&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Prise en main de GnuRadio&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Configuration Xbee&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Expériences&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|5&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|4&lt;br /&gt;
|15&lt;br /&gt;
|9&lt;br /&gt;
|8&lt;br /&gt;
|7&lt;br /&gt;
|8&lt;br /&gt;
|8&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
[[Fichier:HackrfOne.jpeg|200px|thumb|right|Le HackRF One]]&lt;br /&gt;
Durant cette semaine, nous avons continué nos recherches notamment sur le moyen de transmission de nos objets connectés. Nous avons confirmé notre choix de notre SDR : Monsieur Boé nous a confirmé que des HackRF seraient disponibles dans les laboratoires et qu'il pourrait nous en prêter un. On disposera donc d'une antenne puissante pour traiter les signaux émis par nos objets communiquants. &lt;br /&gt;
&lt;br /&gt;
Il faudra coupler notre HackRF avec un logiciel appelé GNU RADIO qui est un logiciel très complet ( Pour information : la NASA a utilisé GNU RADIO afin de rétablir le contact avec une sonde spatiale abandonnée ). Afin de faire tourner ce logiciel libre, nous aurons besoin de la distribution Kali Linux, ex Backtrack.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Choix des émetteurs/récepteurs === &lt;br /&gt;
&lt;br /&gt;
Nous avons décidé que nos objets connectés communiqueront dans deux '''bandes de fréquences ISM''', l'une à '''900 MHz''' grâce à des modules Digi Xbee et l'autre à '''2,4 GHz''' par le moyen de modules émetteurs Bluetooth. On rappellera que les Digi Xbee et les émetteurs/récepteurs Bluetooth seront pilotés par des ATMEGA 2560.&lt;br /&gt;
&lt;br /&gt;
Les Xbee ne communiqueront pas entre eux et émettront en continu les mêmes données car ils le peuvent, alors que les émetteurs/récepteurs Bluetooth devront s'échanger des données si on veut pouvoir observer un quelconque signal autour de la fréquence de leurs porteuses. &lt;br /&gt;
&lt;br /&gt;
On voudra observer premièrement, si avec deux objets dans les '''mêmes''' conditions (donc même µc et même émetteur), on peut ou non '''distinguer une différence'''. Ceci est fondamental pour la suite des expériences, puisque si les deux émettent à la même fréquence, on pourra faire varier plusieurs paramètres afin de trouver '''des clés''' (des signes) qui pourraient aider à l'identification du matériel.&lt;br /&gt;
&lt;br /&gt;
Ces clés représentent différents facteurs potentiels d'identification du signal (le rapport signal-bruit en fonction de la distance par exemple...).&lt;br /&gt;
&lt;br /&gt;
''On planifie alors pour la semaine suivante de réussir à faire émettre, en utilisant simplement des breadboards pour commencer, nos Xbee et modules BT et observer quelque chose grâce à notre SDR.''&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration des modules XBee ===&lt;br /&gt;
&lt;br /&gt;
Nous avons configuré deux XBee afin qu'ils puissent communiquer entre eux : &lt;br /&gt;
&lt;br /&gt;
Les modules XBee ont été montés sur des platines d'interface USB/série de manière à ce qu'on puisse les paramétrer via le programme de contrôle ''minicom''. &lt;br /&gt;
&lt;br /&gt;
Dans le doute, on supposera que les XBee communiquent à 9600 Baud. On exécute la commande suivante : &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;minicom -b 9600 -D /dev/ttyUSB0&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
On active l'echo local dans minicom, afin de pouvoir observer ce qui a été envoyé par liaison série au XBee ('''CTRL+A''' puis '''E''').&lt;br /&gt;
&lt;br /&gt;
Pour commencer le paramètrage il faut taper ''' +++ ''' rapidement. Le XBee nous répond OK, cela veut dire que nous sommes dans le mode configuration et que nous pouvons utiliser les commandes '''AT'''. (Redirection vers la liste des commandes AT XBee [https://cdn.sparkfun.com/assets/resources/2/9/22AT_Commands.pdf]).&lt;br /&gt;
&lt;br /&gt;
Comme nos XBee ont été utilisés auparavant, il a fallu les restaurer à l'état usine avec la commande '''ATRE'''.&lt;br /&gt;
&lt;br /&gt;
Si on souhaite que des XBee puissent s'envoyer des données il faut qu'ils soient sur le même canal (commande '''ATCH''') et aient le même PAN ID (commande '''ATID'''). Notre PAN ID sera '''BEE6''' et le canal sera celui par défaut '''C'''.&lt;br /&gt;
&lt;br /&gt;
Ensuite il faut leur donner une adresse de destination ('''ATDH''' &amp;amp; '''ATDL''') qui sera l'adresse broadcast, pour ce faire on entre &lt;br /&gt;
 ATDH=0000&lt;br /&gt;
 ATDL=FFFF&lt;br /&gt;
&lt;br /&gt;
Enfin '''ATMY''' représente l'ID du XBee, notre premier XBee aura comme ID 5000 et le second 5001.&lt;br /&gt;
&lt;br /&gt;
N'oublions pas de sauvegarder les paramètres avec '''ATWR'''.&lt;br /&gt;
&lt;br /&gt;
On vérifie que tout a bien été pris en compte :&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;&lt;br /&gt;
+++OK&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATID&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
BEE6&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
C&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
0&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDL&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
FFFF&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATMY&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
5000&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCN&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Puis on fait de même avec le deuxième XBee (ID 5001).&lt;br /&gt;
&lt;br /&gt;
Voilà, lorsque on envoie des caractères par liaison série sur 5000, la LED '''Tx''' de 5000 s'allume et la Led '''Rx''' de 5001 s'allume elle aussi. Cela signifie que l'envoi de donnée par onde radio s'effectue correctement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que les XBee émettent et reçoivent, on peut commencer les mesures avec notre SDR. Mais avant cela il va falloir bien se familiariser avec le logiciel GNU RADIO qui est assez difficile à prendre en main.&lt;br /&gt;
&lt;br /&gt;
=== Première prise en main du logiciel GNURADIO ===&lt;br /&gt;
&lt;br /&gt;
Installation de GNU radio avec les fonctions + drivers pour HackRF : &lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install gqrx-sdr gnuradio gr-osmosdr hackrf &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le bloc Osmocom Source sert de &amp;quot;passerelle&amp;quot; entre le logiciel et la SDR, il permet de transmettre les informations récupérées par le HackRF afin qu'on puisse les traiter avec d'autres bloc de fonctions.&lt;br /&gt;
&lt;br /&gt;
Si on veut pouvoir récuperer les données il faut passer l'argument ''hackrf=0'' dans la box périphérique du bloc Osmocom.&lt;br /&gt;
&lt;br /&gt;
Ci-dessous on peut voir le spectre environnant entre 2.44GHz et 2.460GHz grâce au bloc WX GUI FFT Sink.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ScreenGnuRadio.png|Interface de GNURadio]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous a permis d'effectuer notre première expérience. L'utilisation des deux Xbees nous a permis d'observer l'impact des Xbee sur le champ électromagéntique environnant.&lt;br /&gt;
&lt;br /&gt;
Si on analyse le spectre environnant grâce au module FFT de GNU Radio, lorsque les Xbee communiquent entre eux, on peut apercevoir un pic caractéristique propre.&lt;br /&gt;
En effet, lors de l'emission d'un message sur le port série, on a un pic qui se dégage du spectre d'amplitude -20dBm. Ce pic est caractéristique au canal de communication choisi et configuré sur le Xbee.&lt;br /&gt;
Néanmoins, le signal est perturbé par le bruit environnant. &lt;br /&gt;
L'expérience étant effectuée au sein de l'école, les signaux Wi-Fi perturberont l'étude.&lt;br /&gt;
Il faut noter que la norme IEEE 802.11 impose au Wi-Fi l'utilisation d'une bande passante s'étalant de 2.4 GHz à 2.5 GHz.&lt;br /&gt;
&lt;br /&gt;
La bande passante des modules Zigbee se décomposent en 16 canaux, allant de 2400 MHz à 2480 MHz par pas de 5 MHz.&lt;br /&gt;
&lt;br /&gt;
Le canal ici utilisé est le canal 13 (3ème canal) de fréquence 2415 MHz.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[Fichier:Channel135001.png|thumb|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Fichier:channel135000.png|thumb|none|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBeeCh13.png|Spectre de l'environnement autour du XBee|thumb|none|400 px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBeeCh13SND.png|Lors de l'envoi de données au XBee voisin|thumb|none|400 px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut observer un pic de puissance lors de l'envoi d'une donnée en série à la fréquence 2.415 GHz.&lt;br /&gt;
Il nous est maintenant nécessaire d'analyser de plus près les signaux et leurs fréquence centrale dans la bande perçue au dessus de -20dB.&lt;br /&gt;
&lt;br /&gt;
On réeffectuera une expérience en zone isolée des signaux parasites.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous avons principalement fait des recherches dans le but de mieux comprendre les signaux émis par le Xbee.&lt;br /&gt;
&lt;br /&gt;
En somme, nous étions confrontés à de nombreuses interrogations. Le fonctionnement du Xbee étant assez simple et la sécurité du protocole Zigbee étant moindre, y a t-il possibilité de démoduler le signal émis afin de développer nos études ?&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
[[Fichier:Switchchannel pyscript.PNG|upright=0.8|thumb|right|Script Python]]&lt;br /&gt;
&lt;br /&gt;
Après réflexion et consultation de nos encadrants, nous nous sommes rendu compte que la démodulation prévue lors de la semaine 4 n'aiderait pas à répondre à la problématique de notre sujet !  &lt;br /&gt;
&lt;br /&gt;
Afin de mieux visualiser les signaux des Xbee , on décide d'automatiser le processus d'envoi sur le port série des données vers le Xbee. C'est à dire concevoir un programme Python qui automatisera l'envoi de données et le changement de channel à intervalle de temps régulier (Changement toutes les 10 secondes). &lt;br /&gt;
&lt;br /&gt;
L'utilisation de Minicom '''n'était pas du tout la meilleure solution''' pour faire émettre les Xbee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Après quelques essais, on remarque que lorsque le Xbee émet sur le channel 13, il émet à environ 2,445GHz au lieu d'émettre à 2,415GHz soit une différence de 30MHz : Ceci n'est pas important, car ce que l'on souhaite remarquer c'est un éventuel décalage de la fréquence centrale entre deux Xbee différents. Si les deux Xbee n'ont pas la même frequence centrale on pourra conclure que la '''fréquence centrale''' de la porteuse du Xbee n'est pas '''une des clés''' permettant d''''identifier''' cet émetteur/récepteur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaines 6 et 7==&lt;br /&gt;
&lt;br /&gt;
Afin de mieux cerner le comportement électromagnétique des modules XBee, il nous est nécessaire de comprendre leur fonctionnement et le protocole Zigbee.&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous avons cherché à souligner le parallélisme entre étude fréquentielle par le spectre et étude temporelle du signal.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PlancheXPtest.jpg|thumb|right|Planche prototype]]&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous avons paramétré la fréquence centrale de capture du HackRF. En effet, bien que le HackRF dispose d'une large bande passante, afin de se focaliser sur la porteuse, il est indispensable de configurer le HackRF en conséquence.&lt;br /&gt;
En second lieu, pour éviter une variation du RSSI (Received Signal Strength Indication) et de la puissance du signal, nous devions mettre en place une prototype de &amp;quot;planche expérimentale&amp;quot; sur laquelle devaient être fixés nos différents modules (l'antenne de reception et les Xbees).&lt;br /&gt;
&lt;br /&gt;
La position des antennes les unes par rapport aux autres est fondamentale. Afin d'optimiser la reception, les antennes doivent être parallèles.&lt;br /&gt;
&lt;br /&gt;
Chaque Xbee est identifié par un chiffre (1 ou 2). En effet, l'attribution de ces chiffres sera définitive pour ne pas perturber la cohérence des expériences. &lt;br /&gt;
Leur position est aussi fondamentale. Ainsi, en fonction que le Xbee soit emetteur ou récepteur, il sera disposé différement sur la planche.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Le XBee 1 émetteur directement connecté en série au PC===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:GrapheGNURadio01.png|thumb|left|150px|Schéma simple d'étude fréquentielle et temporelle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette expérience est la première mettant en place un contexte (un seul Xbee émetteur connecté en série au PC, le deuxième Xbee étant inactif) et nous permettra d'étudier le plus de cas possibles.&lt;br /&gt;
&lt;br /&gt;
Nous avons tout d'abord commencé par un graphe GNURadio simple permettant l'observation du spectre et du signal et la variation de la fréquence d'étude.&lt;br /&gt;
&lt;br /&gt;
Le script python a été réécrit afin que le XBee puisse émettre une chaîne de caractère &amp;quot;HELLO&amp;quot; * 1024. En effet, même si la fréquence de balayage du module HackRF peut être grandement augmentée, il faut éviter d'aller au dessous de 0.01s, finissant par consommer de manière considérable les ressources octroyées par le CPU le cas échéant.&lt;br /&gt;
Le fait d'augmenter la taille de la chaine de caractère permet de mieux synchroniser l'étude en temps réel avec la capture des données.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc émis les données sur le canal 14, soit la fréquence centrale est à 2.420GHz selon la norme Zigbee. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Etude fréquentielle&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L'étude fréquentielle est similaire à celle réalisée auparavant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div center&amp;gt;&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[Fichier:Spectrefreq2.png|thumb|center|750px|Spectre fréquentiel au canal 14]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[Fichier:Spectrogram.png|thumb|center|250px|Spectrogramme]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on peut observer sur l'analyseur de spectre GNURadio que la fréquence centrale est située 2.450GHz. Nous n'avons pas trouvé la raison mais il s'agit sûrement d'un décalage au niveau applicatif.&lt;br /&gt;
&lt;br /&gt;
D'autre part, l'ensemble des fréquences qui dessinent le spectre s'étalent sur une large bande de fréquence. En effet, cette technique d'étalement appelée DSSS (Direct-Sequence Spread Spectrum) utilisé par les modules XBee permet au signal d'être moins sensible aux interférences et aux brouillages. En outre, même si la puissance du spectre dans sa globalité reste la même, la densité spectrale elle diminue considérablement, rendant le signal plus &amp;quot;discret&amp;quot;.&lt;br /&gt;
La différence de puissance entre le lobe principal et les premiers lobes secondaires sont de 30 dB, ce qui est aussi commun au DSSS.&lt;br /&gt;
&lt;br /&gt;
Le spectrogramme témoigne aussi de l'étalement du signal sur un peu plus de 6 MHz (3MHz de par et d'autre de la fréquence centrale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt; Etude temporelle &amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Signal temporel.png|thumb|left|500px|Signal observable centré à 2.450GHz lors de l'émission]]&lt;br /&gt;
&lt;br /&gt;
Le signal ici est séparé en deux composantes car il s'agit d'un signal complexe. Nous avons supposé en premier temps qu'il s'agissait du signal principal décalé de 180°, ce qui n'était pas le cas.&lt;br /&gt;
Après quelques recherches, cette séparation des composantes permet de transmettre deux fois plus de données sur la même bande passante.&lt;br /&gt;
Le signal observable témoigne d'une modulation bien spécifique au XBee. En effet, on peut observer des sauts de phase à différents points, qui correspondent à une modulation par changement de phase (modulation QPSK ou Quadratic Phase-Shift Keying). Ce sont ces sauts de phases qui permettent la transmission des bits.&lt;br /&gt;
Les changements de phase s'il y a se font toutes les µs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé d'enregistrer ces données brutes dans un fichier et nous l'avons étudier avec Audacity, logiciel open-source de son, et donc de signaux ! L'inconvénient avec l'interface graphique QT de GNURadio est son manque de précision lors d'un dézoom sur le signal en temps réel. Audacity permet de palier à celà !&lt;br /&gt;
En outre, on peut voir que les paquets Xbee sont reconnaissables. En effet, le signal témoigne de la taille du paquet XBee.&lt;br /&gt;
&lt;br /&gt;
Le paquet XBee est constitué d'un premier header (header physique) de 6 octets :&lt;br /&gt;
- la séquence de préambule (4 octets) constitué de 32 bits à 0&lt;br /&gt;
&lt;br /&gt;
- l'indice de début du paquet fixé à 0x7A (1 octet)&lt;br /&gt;
&lt;br /&gt;
- la longueur du paquet (1 octet);&lt;br /&gt;
&lt;br /&gt;
d'un header MAC (7 à 27 octets en fonction des informations de l'adresse), d'un bloc FCS de fin de paquet (2 octets) et l'ensemble des données (de 1 à 104 octets).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Signal2.png|thumb|right|400px|On observe graphiquement qu'un paquet est transmis en 3846µs]]&lt;br /&gt;
[[Fichier:PacketXBee.png|400px|thumb|right|Paquet XBee]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Comme dit plus haut, les signaux émis par le XBee connaissent un étalement sur le spectre par DSSS.&lt;br /&gt;
Cet étalement s'effectue en divisant chaque symbole (correspondant à une série de 4 bits) transmis en &amp;lt;B&amp;gt;&amp;lt;I&amp;gt;chips&amp;lt;/I&amp;gt;&amp;lt;/B&amp;gt;.&lt;br /&gt;
Chaque symbole, soit 4 bits, correspond à 32 chips, et donc 32 états binaires (1 octet correspond à 64 chips).&lt;br /&gt;
Dans le cas de la norme ZigBee, la transmission de chacun des chips est synchronisé sur chaque µs (1 chip toutes les µs).&lt;br /&gt;
&lt;br /&gt;
Les signaux reçus par l'antenne HackRF étaient deux sinusoïdes modulées en phase et qui s'étalaient sur une période d'environ 3840µs (3846µs graphiquement mais il y a possibilité d'erreur à l'echelle du µs).&lt;br /&gt;
Sachant qu'un octet correspond à 64µs, on a :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;N_{octets} =\frac{2*T_{signal}}{64*T_{chip}}=\frac{2*3.840*10^{-6}}{64*10^{-6}}=120 octets&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'analogie peut être effectuée entre paquet Ethernet et paquet ZigBee. En effet, la taille limite des données d'un paquet est de 104 octets. La chaîne de caractère n'étant qu'envoyée par paquet, le paquet observé n'est que de 120 octets, ce qui est cohérent avec les caractéristiques du XBee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Hello1024secs.png|thumb|none|Temps de transmission de la chaîne de caractères &amp;quot;HELLO&amp;quot; 1024 fois]] &amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:AudacitySignal2.png|thumb|none|51 Paquets XBee portent la chaîne de caractère &amp;quot;HELLO&amp;quot; 1024 fois]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 8==&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé cette semaine d'étudier, ce qui est selon pour nous, l'une des pistes fondamentales de notre projet, et plus particulièrement de l'étude de nos signaux : le rapport signal bruit.&lt;br /&gt;
&lt;br /&gt;
L'objectif de cette semaine et de celle à venir était, à partir du signal acquis par le hackrf, d'effectuer le calcul du SNR (signal-to-noise ratio) tel que :&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;SNR =\frac{P_{signal}}{P_{bruit}}&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le script python qui nous a permis de communiquer entre les deux shields Xbee se verra amélioré afin de faire plusieurs acquisition des signaux lors de la communication entre les Xbee, effectuer une moyenne statistique, et de même lorsqu'il n'y a pas de communication.&lt;br /&gt;
&lt;br /&gt;
Néanmoins, nous avons essayé d'approcher le SNR directement depuis l'interface de GnuRadio par le biais de l'utilitaire graphique et le langage en bloc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 9==&lt;br /&gt;
&lt;br /&gt;
L'étude des signaux posait réellement problème de par le fait qu'une grande partie de la capture faite n'était que purement le bruit sans signal (utile plus tard pour l'étude du SNR).&lt;br /&gt;
Prenons l'exemple d'un paquet de 21 octets (un paquet contenant une seule chaîne de caractères HELLO). Le signal s'étalerait en théorie sur 21*64 chips soit 672 chips. Sachant que la modulation est une modulation QPSK, on s'étale sur un temps de 672µs.&lt;br /&gt;
En effet, le Xbee transmet toutes les 100ms.&lt;br /&gt;
Donc qu'une partie du signal nous est utile.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décider d'écrire un script qui nous permettrait d'étudier le signal dans de meilleures conditions, et donc de le filtrer.&lt;br /&gt;
&lt;br /&gt;
Chaque capture de signal effectuée est enregistrée dans un fichier par le biais du bloc fonction &amp;lt;B&amp;gt;&amp;lt;I&amp;gt;File Sink&amp;lt;/I&amp;gt;&amp;lt;/B&amp;gt; du compagnon GNURadio. Néanmoins, les fichiers obtenus sont des fichiers binaires assez lourds (environ 500Mo pour une capture de 3s), ce qui est un réel problème et qui implique le filtrage du signal.&lt;br /&gt;
&lt;br /&gt;
La bibliothèque numpy pour python nous permet en outre directement d'importer les échantillons des signaux, les traduisant du binaire à un format cible (complexe flottant 64 bits) dans un Array par le biais de la fonction:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; f = scipy.fromfile(open(&amp;quot;Nom du fichier&amp;quot;), dtype=scipy.complex64) &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La première solution pour réduire ce signal était d'imposer un threshold directement sur le signal, supérieur au bruit, mais qui conduirait à une perte d'une partie du signal à étudier.&lt;br /&gt;
La deuxième solution qui a été retenue était tout simplement de calculer l'amplitude et la phase du signal et appliquer ce même threshold à l'amplitude.&lt;br /&gt;
&lt;br /&gt;
== Semaine 10 et + ==&lt;br /&gt;
&lt;br /&gt;
A partir de la semaine 10 nous n'avons fait qu’enchaîner les expériences pour avoir suffisamment de données et en tirer des conclusions.&lt;br /&gt;
&lt;br /&gt;
Lorsqu'on fait une acquisition d'un signal xbee , on peut maintenant via un script traiter cette acquisition et récupérer seulement les parties qui nous intéressent : A savoir la partie réelle et la partie imaginaire , l'amplitude du signal et enfin la phase du signal.&lt;br /&gt;
&lt;br /&gt;
Exemple ci dessous après acquisition + traitement de notre xbee n°2 :&lt;br /&gt;
[[Fichier:Traitement xbee2.png]]&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;/div&gt;</summary>
		<author><name>Amoreau</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Traitement_xbee2.png&amp;diff=73734</id>
		<title>Fichier:Traitement xbee2.png</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Traitement_xbee2.png&amp;diff=73734"/>
				<updated>2019-04-25T20:14:15Z</updated>
		
		<summary type="html">&lt;p&gt;Amoreau : Amoreau a téléversé une nouvelle version de Fichier:Traitement xbee2.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Amoreau</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Traitement_xbee2.png&amp;diff=73733</id>
		<title>Fichier:Traitement xbee2.png</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Traitement_xbee2.png&amp;diff=73733"/>
				<updated>2019-04-25T20:06:58Z</updated>
		
		<summary type="html">&lt;p&gt;Amoreau : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Amoreau</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=73732</id>
		<title>IMA4 2018/2019 P70</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=73732"/>
				<updated>2019-04-25T19:53:08Z</updated>
		
		<summary type="html">&lt;p&gt;Amoreau : /* Réalisation du Projet */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;font-size: 30px; width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;Impact du matériel et du logiciel sur le champ électromagnétique&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Projet'''&amp;lt;/ins&amp;gt; : Impact du matériel et du logiciel sur le rayonnement électromagnétique&lt;br /&gt;
&lt;br /&gt;
''Nous proposons d'évaluer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et la consommation électrique.''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Etudiants'''&amp;lt;/ins&amp;gt; : Souheib KHINACHE et Antoine MOREAU&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Encadrants'''&amp;lt;/ins&amp;gt; : Alexandre BOE, Xavier REDON et Thomas VANTROYS&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'internet des objets est un marché en plein essor. La communication entre les différents objets connectés crée un nuage de signaux autour d'eux. Ces derniers sont vus par les utilisateurs comme des boîtes noires : le fonctionnement se fait sans en connaître les composants matériels et logiciels. &lt;br /&gt;
Néanmoins, ces objets, de par leurs propriétés électroniques, créent des fuites électromagnétiques impactant le champ environnant. &lt;br /&gt;
&lt;br /&gt;
Bien qu'ils peuvent porter à débat sur l'impact sur la santé, ces signaux peuvent représenter de réelles sources d'informations sur l'aspect matériel et applicatif de l'objet.&lt;br /&gt;
&lt;br /&gt;
Il serait donc intéressant d'avoir idée générale sur le fonctionnement du système en interprétant les ondes électromagnétiques émises par ce système.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Les principaux objectifs de ce projet seront donc de mesurer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et sur la consommation électrique.&lt;br /&gt;
Pour cela, l'outil potentiel avec lequel nous pourrions travailler serait une sonde de champ électromagnétique afin d'établir des mesures. &lt;br /&gt;
Cependant, nous pourrions concevoir notre propre système de capture et d'interprétation à partir d'une antenne, de filtres de fréquences et d'un microcontrôleur (on commencera par un ATMega328P). Il sera nécessaire de prendre en compte les perturbations issues de notre appareil de mesure et d'en tenir compte.&lt;br /&gt;
&lt;br /&gt;
On effectuera ainsi plusieurs expérimentations sur différents supports d'étude :&lt;br /&gt;
*l'aspect &amp;quot;Hardware&amp;quot; en étudiant différents modèles pour un même type de shield  &lt;br /&gt;
*l'aspect calculatoire du matériel en se basant sur l'impact des microcontrôleurs en fonction du modèle (ATMega328P et ATMega2560)&lt;br /&gt;
*l'aspect &amp;quot;Software&amp;quot;, en étudiant l'impact du logiciel et du firmware d'un même composant (différents firmwares pour un même shield Wi-Fi)&lt;br /&gt;
*l'aspect puissance des composants électroniques de gestion de puissance (ponts, hacheurs, onduleurs...).&lt;br /&gt;
&lt;br /&gt;
L'étude des différentes informations se fera par traitement des signaux électromagnétiques et des spectres. &lt;br /&gt;
Afin de mieux appréhender le problème, il nous est nécessaire de comprendre les phénomènes physiques issus de la notion d'électromagnétisme.&lt;br /&gt;
&lt;br /&gt;
Ces études mèneront à une étape plus complexe : l'interprétation des signaux. En effet, l'un des objectifs de ce projet est de comprendre du mieux possible le fonctionnement d'un système sans y avoir accès directement, et donc dans ce contexte &amp;quot;traduire&amp;quot; un ensemble de signaux électromagnétiques.&lt;br /&gt;
&lt;br /&gt;
On pourra en outre apporter un aspect visuel à l'étude en rajoutant une interface informatique.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
Bien qu'aux yeux de nombreuses personnes le bruit électromagnétique créé par les équipements électroniques du quotidien peut porter à controverse (débats concernant l'impact sur la santé par exemple), il peut être une source d'informations. &lt;br /&gt;
De nos jours, les ondes électromagnétiques restent un vaste champ d'étude, sujettes à de nombreuses thèses et recherches au sein des laboratoires.&lt;br /&gt;
&lt;br /&gt;
On peut prendre l'exemple de [https://www.eurekalert.org/pub_releases/2015-01/giot-rwt010715.php Milos Prvulovic], professeur à l'Institut Technologique de Géorgie, ayant simulé un contexte de cybercafé, dans lequel il place une antenne magnétique, un ordinateur portable cible et un ordinateur &amp;quot;espion&amp;quot;. Il réussit, grâce aux signaux EM émis par l'impulsion de l'appui des touches clavier à capter un message écrit par un ordinateur cible. &lt;br /&gt;
&lt;br /&gt;
Néanmoins, dans le quotidien, l'utilisation des sondes électromagnétiques se fait pour l'étude énergétique d'un système électronique (fuites électromagnétiques anormales, preuves d'une anomalie...) afin de respecter certaines normes législatives. Le code du travail par exemple réglemente et définit des valeurs seuils par le biais des articles R. 4453-3 et R. 4453-4.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
'''NBM-520 de NARDA STS'''&lt;br /&gt;
[[Fichier: NBM_TS.png|thumb|300px|NBM-TS, application des appareils NBM]]&lt;br /&gt;
NARDA STS est une entreprise qui fournit des outils de mesure. Elle met à disposition aux professionnels des sondes électromagnétiques.&lt;br /&gt;
La NBM-520 est un appareil de la franchise, mesurant le champ électrique et magnétique. Elle donne des valeurs précises du champ électromagnétique ambiant sur une large bande. Elle propose différentes sondes modulables permettant une souplesse au niveau de l'étude en fonction des besoins, avec des sondes pouvant étudier des signaux de fréquence de 100kHz à 6GHz ou même de 300kHz à 50GHz (en fonction de la sonde choisie).&lt;br /&gt;
&lt;br /&gt;
En outre, le dispositif peut se connecter en USB sur PC afin d'envoyer les données capturées et d'en faire une étude. Le dispositif propose un logiciel d'étude, NBM-TS, permettant d'observer du champ en fonction du temps, de la fréquence, de la position...&lt;br /&gt;
&lt;br /&gt;
L'équipement est utilisé par l'ANF (l'Agence Nationale des Fréquences, agence gérant l'ensemble des normes autour des radiofréquences), et est donc un gage de qualité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Avantages :''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Large bande de fréquence&lt;br /&gt;
* Matériel solide&lt;br /&gt;
* Application fonctionnelle permettant l'étude et gestion des données&lt;br /&gt;
* Possibilité d'étudier séparément champ électrique et magnétique&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Inconvénients:''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Impossible d'étudier les basses fréquences (appareils sous tension, bobinages...)&lt;br /&gt;
* Prix élevé : à partir de 3100€&lt;br /&gt;
* La cible de ce produit est surtout les professionels&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
'''Une pita.'''&lt;br /&gt;
&lt;br /&gt;
''Comment mon pain à pita vole ta clé RSA ?''&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Pita.jpg|200px|thumb|left|Une pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Des chercheurs israéliens ont découvert un moyen de capturer des clés de cryptage RSA, réputées comme inviolables, par le biais d'une pita... du moins avec un dispositif suffisamment petit pour être caché dans un pain à pita. &lt;br /&gt;
Le dispositif, renommé PITA pour Portable Instrument for Trace Acquisition a la particularité de capturer les ondes radio électromagnétiques émanantes d'un PC, qu'il soit connecté à un réseau ou pas.&lt;br /&gt;
Les différentes opérations du processeur sont identifiées en distinguant les différents modèles de l'activité radio sur le spectre EM.&lt;br /&gt;
&lt;br /&gt;
Bien que la capture des clés RSA a été faite dans des conditions particulières (modification du processeur de l'ordinateur cible), il est néanmoins possible, selon les chercheurs, d'identifier quelle type d'activité est exercée par l'ordinateur ainsi que son état.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PITA.jpg|300px|thumb|right|Un dessous de pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'un des points importants concernant le dispositif est son coût : moins de 300 euros.&lt;br /&gt;
L'appareil dispose :&lt;br /&gt;
* d'un PC portatif (PC-on-a-stick) ''Rikomagic MK802 IV'',&lt;br /&gt;
* d'un recepteur radio SDR ''FUNcube Dongle Pro+''&lt;br /&gt;
* d'une antenne radio&lt;br /&gt;
* d'une batterie&lt;br /&gt;
* d'une antenne WiFi&lt;br /&gt;
* d'une carte MicroSD&lt;br /&gt;
* d'un adapteur d'antenne&lt;br /&gt;
* et d'une '''pita'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le dispositif aurait une portée de 50cm. &lt;br /&gt;
Les chercheurs israéliens ont collaboré avec GNU Private Guard (logiciel de cryptage asymétrique) afin de protéger contre ces attaques les clés de cryptage.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
&lt;br /&gt;
''Scénario 1''&lt;br /&gt;
&lt;br /&gt;
Gérard a toujours le flair pour les bonnes affaires. Il a acheté une centaine de clés WiFi à un prix dérisoire sur AloXpresso afin de faire du profit à la revente. Le vendeur lui garantit que toutes les clés fonctionnent correctement. Gérard veut vérifier. Après vérification, 99 des clés sur 100 fonctionnent comme prévu. Gérard aimerait être sûr du disfonctionnement, mais Gérard n'est pas une pointure en informatique. &lt;br /&gt;
&lt;br /&gt;
Coup de génie ! Il se rappelle qu'il dispose d'un dispositif qui capte les ondes EM et les interprète directement. C'est le moment de tester ça. Il remarque une anomalie sur le spectre.&lt;br /&gt;
Il décide de contacter le revendeur pour lui signaler un disfonctionnement sur l'une des clé. &lt;br /&gt;
Pas de soucis. Le vendeur, étant bon prince, lui envoie une autre clé USB et lui fait une ristourne.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Scénario 2''&lt;br /&gt;
&lt;br /&gt;
La police fait une perquisition chez un individu soupçonné de graves délits. Cela fait plusieurs mois que la brigade criminelle prépare l'intervention, et une fois sur les lieux ils arrêtent le soupçonné malfaiteur.&lt;br /&gt;
Cependant avant de repartir, elle veut faire l'acquisition d'un maximum de preuves. Elle veut alors prendre l'essentiel des objets, dont certains objets éléctroniques connectés de l'individu dont elle pourra extraire les informations qui serviront à le faire tomber.&lt;br /&gt;
&lt;br /&gt;
Par chance, elle dispose d'un petit outil qui scannera les signatures alentours des objets connectés, comme des téléphones cachés, clés USB wifi dissimulées dans le décor etc..&lt;br /&gt;
Et si le suspect avait modifié malignement un objet connecté banal pour l'utiliser autrement à ses fins, la police le découvrirait car elle possède une base de données de toutes les signatures spectrales des objets connectés sur le marché et celle de l'objet modifié ne collerait pas avec celle de la base de données.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
&lt;br /&gt;
'''Comment étudier les signaux malgré les perturbations électromagnétiques ambiants et les faibles signaux des µC ?'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les signaux électromagnétiques des microcontrôleurs ou d'autres composants peuvent être faibles. Il y a une possibilité pour palier à ce problème, c'est de capter les signaux depuis une antenne émettrice que l'on rajoute à l'objet d'étude. &lt;br /&gt;
Nous utiliserons un SDR (Software Defined-Radio) afin de capter les ondes radio et les étudier directement sur PC. Le filtrage s'effectuera ainsi de manière numérique. Plusieurs tests seront effectués pour le même objet à étudier (quand on parle d'objet, on évoque un ensemble de plusieurs composants, comme par exemple une alimentation, un micro-contrôleur et une antenne). Ainsi, de manière statistique, nous pourrons en déduire un pattern récurrent pour chaque expérience en les effectuant dans différents environnements (pourquoi pas une chambre anachoïque). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons &lt;br /&gt;
* Capter le signal émis par un objet connecté le plus précisément possible&lt;br /&gt;
&lt;br /&gt;
* Concevoir nos propres objets connectés tous différents mais basés sur un même modèle&lt;br /&gt;
&lt;br /&gt;
* Interpréter les spectrogrammes, faire une étude statistique des signaux émis par nos différents objets et en tirer des conclusions&lt;br /&gt;
&lt;br /&gt;
* Répertorier dans une base de données les signatures de nos objets , voire de quelques objets disponibles sur le marché&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix logiciel :&lt;br /&gt;
&lt;br /&gt;
- La distribution Linux Pentoo ou Kali pour traiter les signaux avec GNU RADIO (Suite logicielle dédiée à l’implémentation de radios logicielles et de systèmes de traitement du signal).&lt;br /&gt;
&lt;br /&gt;
- FemtoOS pour l'OS des ATMEGA328P et ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix Matériel : &lt;br /&gt;
&lt;br /&gt;
- Plusieurs modules radios émetteurs &lt;br /&gt;
&lt;br /&gt;
- Plusieurs microcontrôleurs ATMEGA328P et un ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
- Des alimentations identiques pour chaque PCB&lt;br /&gt;
&lt;br /&gt;
- Un HackRF pour la réception des signaux&lt;br /&gt;
&lt;br /&gt;
- Une antenne 50 Ohm pour le HackRF [https://www.passion-radio.fr/accessoires-sdr/antenne-ant500-74.html]&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous devons préparer tout le matériel qui servira à faire nos tests. C'est à dire concevoir :&lt;br /&gt;
&lt;br /&gt;
- Un ensemble SDR/PC qui traitera le signal reçu avec GNU RADIO.&lt;br /&gt;
&lt;br /&gt;
- Une multitude de PCB qui seront nos objets connectés (Sur chacun d'entre eux on trouvera au minimum une antenne radio, un microcontrôleur et une alimentation)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de récupérer une &amp;quot;signature&amp;quot; d'un de nos objets , il faudra faire plus de 50 analyses spectrales pour conclure statistiquement sur une bonne signature qui caractérisera l'objet.&lt;br /&gt;
&lt;br /&gt;
Nous devons donc dans un second temps: &lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques mais qui ont un '''firmware''' différent.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques qui ont pour seule différence le '''microcontrôleur'''.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques dont seul le '''PCB''' diffère.&lt;br /&gt;
&lt;br /&gt;
Grâce à tous ces tests , nous pourrons conclure et voir l'impact qu'à le matériel ou le logiciel sur la signature d'un objet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enfin si les délais nous le permettent, nous pourrons réaliser un software qui cartographiera nos objets connectés dans la pièce grâce à la puissance de la signature reçue (Ce qui devrait être réalisable puisqu'à ce stade nous aurons une base de donnée des signatures).&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
|3&lt;br /&gt;
|8&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Recherches&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|6&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|4&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Prise en main de GnuRadio&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Configuration Xbee&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Expériences&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|5&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|4&lt;br /&gt;
|15&lt;br /&gt;
|9&lt;br /&gt;
|8&lt;br /&gt;
|7&lt;br /&gt;
|8&lt;br /&gt;
|8&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
[[Fichier:HackrfOne.jpeg|200px|thumb|right|Le HackRF One]]&lt;br /&gt;
Durant cette semaine, nous avons continué nos recherches notamment sur le moyen de transmission de nos objets connectés. Nous avons confirmé notre choix de notre SDR : Monsieur Boé nous a confirmé que des HackRF seraient disponibles dans les laboratoires et qu'il pourrait nous en prêter un. On disposera donc d'une antenne puissante pour traiter les signaux émis par nos objets communiquants. &lt;br /&gt;
&lt;br /&gt;
Il faudra coupler notre HackRF avec un logiciel appelé GNU RADIO qui est un logiciel très complet ( Pour information : la NASA a utilisé GNU RADIO afin de rétablir le contact avec une sonde spatiale abandonnée ). Afin de faire tourner ce logiciel libre, nous aurons besoin de la distribution Kali Linux, ex Backtrack.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Choix des émetteurs/récepteurs === &lt;br /&gt;
&lt;br /&gt;
Nous avons décidé que nos objets connectés communiqueront dans deux '''bandes de fréquences ISM''', l'une à '''900 MHz''' grâce à des modules Digi Xbee et l'autre à '''2,4 GHz''' par le moyen de modules émetteurs Bluetooth. On rappellera que les Digi Xbee et les émetteurs/récepteurs Bluetooth seront pilotés par des ATMEGA 2560.&lt;br /&gt;
&lt;br /&gt;
Les Xbee ne communiqueront pas entre eux et émettront en continu les mêmes données car ils le peuvent, alors que les émetteurs/récepteurs Bluetooth devront s'échanger des données si on veut pouvoir observer un quelconque signal autour de la fréquence de leurs porteuses. &lt;br /&gt;
&lt;br /&gt;
On voudra observer premièrement, si avec deux objets dans les '''mêmes''' conditions (donc même µc et même émetteur), on peut ou non '''distinguer une différence'''. Ceci est fondamental pour la suite des expériences, puisque si les deux émettent à la même fréquence, on pourra faire varier plusieurs paramètres afin de trouver '''des clés''' (des signes) qui pourraient aider à l'identification du matériel.&lt;br /&gt;
&lt;br /&gt;
Ces clés représentent différents facteurs potentiels d'identification du signal (le rapport signal-bruit en fonction de la distance par exemple...).&lt;br /&gt;
&lt;br /&gt;
''On planifie alors pour la semaine suivante de réussir à faire émettre, en utilisant simplement des breadboards pour commencer, nos Xbee et modules BT et observer quelque chose grâce à notre SDR.''&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration des modules XBee ===&lt;br /&gt;
&lt;br /&gt;
Nous avons configuré deux XBee afin qu'ils puissent communiquer entre eux : &lt;br /&gt;
&lt;br /&gt;
Les modules XBee ont été montés sur des platines d'interface USB/série de manière à ce qu'on puisse les paramétrer via le programme de contrôle ''minicom''. &lt;br /&gt;
&lt;br /&gt;
Dans le doute, on supposera que les XBee communiquent à 9600 Baud. On exécute la commande suivante : &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;minicom -b 9600 -D /dev/ttyUSB0&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
On active l'echo local dans minicom, afin de pouvoir observer ce qui a été envoyé par liaison série au XBee ('''CTRL+A''' puis '''E''').&lt;br /&gt;
&lt;br /&gt;
Pour commencer le paramètrage il faut taper ''' +++ ''' rapidement. Le XBee nous répond OK, cela veut dire que nous sommes dans le mode configuration et que nous pouvons utiliser les commandes '''AT'''. (Redirection vers la liste des commandes AT XBee [https://cdn.sparkfun.com/assets/resources/2/9/22AT_Commands.pdf]).&lt;br /&gt;
&lt;br /&gt;
Comme nos XBee ont été utilisés auparavant, il a fallu les restaurer à l'état usine avec la commande '''ATRE'''.&lt;br /&gt;
&lt;br /&gt;
Si on souhaite que des XBee puissent s'envoyer des données il faut qu'ils soient sur le même canal (commande '''ATCH''') et aient le même PAN ID (commande '''ATID'''). Notre PAN ID sera '''BEE6''' et le canal sera celui par défaut '''C'''.&lt;br /&gt;
&lt;br /&gt;
Ensuite il faut leur donner une adresse de destination ('''ATDH''' &amp;amp; '''ATDL''') qui sera l'adresse broadcast, pour ce faire on entre &lt;br /&gt;
 ATDH=0000&lt;br /&gt;
 ATDL=FFFF&lt;br /&gt;
&lt;br /&gt;
Enfin '''ATMY''' représente l'ID du XBee, notre premier XBee aura comme ID 5000 et le second 5001.&lt;br /&gt;
&lt;br /&gt;
N'oublions pas de sauvegarder les paramètres avec '''ATWR'''.&lt;br /&gt;
&lt;br /&gt;
On vérifie que tout a bien été pris en compte :&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;&lt;br /&gt;
+++OK&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATID&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
BEE6&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
C&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
0&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDL&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
FFFF&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATMY&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
5000&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCN&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Puis on fait de même avec le deuxième XBee (ID 5001).&lt;br /&gt;
&lt;br /&gt;
Voilà, lorsque on envoie des caractères par liaison série sur 5000, la LED '''Tx''' de 5000 s'allume et la Led '''Rx''' de 5001 s'allume elle aussi. Cela signifie que l'envoi de donnée par onde radio s'effectue correctement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que les XBee émettent et reçoivent, on peut commencer les mesures avec notre SDR. Mais avant cela il va falloir bien se familiariser avec le logiciel GNU RADIO qui est assez difficile à prendre en main.&lt;br /&gt;
&lt;br /&gt;
=== Première prise en main du logiciel GNURADIO ===&lt;br /&gt;
&lt;br /&gt;
Installation de GNU radio avec les fonctions + drivers pour HackRF : &lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install gqrx-sdr gnuradio gr-osmosdr hackrf &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le bloc Osmocom Source sert de &amp;quot;passerelle&amp;quot; entre le logiciel et la SDR, il permet de transmettre les informations récupérées par le HackRF afin qu'on puisse les traiter avec d'autres bloc de fonctions.&lt;br /&gt;
&lt;br /&gt;
Si on veut pouvoir récuperer les données il faut passer l'argument ''hackrf=0'' dans la box périphérique du bloc Osmocom.&lt;br /&gt;
&lt;br /&gt;
Ci-dessous on peut voir le spectre environnant entre 2.44GHz et 2.460GHz grâce au bloc WX GUI FFT Sink.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ScreenGnuRadio.png|Interface de GNURadio]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous a permis d'effectuer notre première expérience. L'utilisation des deux Xbees nous a permis d'observer l'impact des Xbee sur le champ électromagéntique environnant.&lt;br /&gt;
&lt;br /&gt;
Si on analyse le spectre environnant grâce au module FFT de GNU Radio, lorsque les Xbee communiquent entre eux, on peut apercevoir un pic caractéristique propre.&lt;br /&gt;
En effet, lors de l'emission d'un message sur le port série, on a un pic qui se dégage du spectre d'amplitude -20dBm. Ce pic est caractéristique au canal de communication choisi et configuré sur le Xbee.&lt;br /&gt;
Néanmoins, le signal est perturbé par le bruit environnant. &lt;br /&gt;
L'expérience étant effectuée au sein de l'école, les signaux Wi-Fi perturberont l'étude.&lt;br /&gt;
Il faut noter que la norme IEEE 802.11 impose au Wi-Fi l'utilisation d'une bande passante s'étalant de 2.4 GHz à 2.5 GHz.&lt;br /&gt;
&lt;br /&gt;
La bande passante des modules Zigbee se décomposent en 16 canaux, allant de 2400 MHz à 2480 MHz par pas de 5 MHz.&lt;br /&gt;
&lt;br /&gt;
Le canal ici utilisé est le canal 13 (3ème canal) de fréquence 2415 MHz.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[Fichier:Channel135001.png|thumb|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Fichier:channel135000.png|thumb|none|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBeeCh13.png|Spectre de l'environnement autour du XBee|thumb|none|400 px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBeeCh13SND.png|Lors de l'envoi de données au XBee voisin|thumb|none|400 px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut observer un pic de puissance lors de l'envoi d'une donnée en série à la fréquence 2.415 GHz.&lt;br /&gt;
Il nous est maintenant nécessaire d'analyser de plus près les signaux et leurs fréquence centrale dans la bande perçue au dessus de -20dB.&lt;br /&gt;
&lt;br /&gt;
On réeffectuera une expérience en zone isolée des signaux parasites.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous avons principalement fait des recherches dans le but de mieux comprendre les signaux émis par le Xbee.&lt;br /&gt;
&lt;br /&gt;
En somme, nous étions confrontés à de nombreuses interrogations. Le fonctionnement du Xbee étant assez simple et la sécurité du protocole Zigbee étant moindre, y a t-il possibilité de démoduler le signal émis afin de développer nos études ?&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
[[Fichier:Switchchannel pyscript.PNG|upright=0.8|thumb|right|Script Python]]&lt;br /&gt;
&lt;br /&gt;
Après réflexion et consultation de nos encadrants, nous nous sommes rendu compte que la démodulation prévue lors de la semaine 4 n'aiderait pas à répondre à la problématique de notre sujet !  &lt;br /&gt;
&lt;br /&gt;
Afin de mieux visualiser les signaux des Xbee , on décide d'automatiser le processus d'envoi sur le port série des données vers le Xbee. C'est à dire concevoir un programme Python qui automatisera l'envoi de données et le changement de channel à intervalle de temps régulier (Changement toutes les 10 secondes). &lt;br /&gt;
&lt;br /&gt;
L'utilisation de Minicom '''n'était pas du tout la meilleure solution''' pour faire émettre les Xbee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Après quelques essais, on remarque que lorsque le Xbee émet sur le channel 13, il émet à environ 2,445GHz au lieu d'émettre à 2,415GHz soit une différence de 30MHz : Ceci n'est pas important, car ce que l'on souhaite remarquer c'est un éventuel décalage de la fréquence centrale entre deux Xbee différents. Si les deux Xbee n'ont pas la même frequence centrale on pourra conclure que la '''fréquence centrale''' de la porteuse du Xbee n'est pas '''une des clés''' permettant d''''identifier''' cet émetteur/récepteur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaines 6 et 7==&lt;br /&gt;
&lt;br /&gt;
Afin de mieux cerner le comportement électromagnétique des modules XBee, il nous est nécessaire de comprendre leur fonctionnement et le protocole Zigbee.&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous avons cherché à souligner le parallélisme entre étude fréquentielle par le spectre et étude temporelle du signal.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PlancheXPtest.jpg|thumb|right|Planche prototype]]&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous avons paramétré la fréquence centrale de capture du HackRF. En effet, bien que le HackRF dispose d'une large bande passante, afin de se focaliser sur la porteuse, il est indispensable de configurer le HackRF en conséquence.&lt;br /&gt;
En second lieu, pour éviter une variation du RSSI (Received Signal Strength Indication) et de la puissance du signal, nous devions mettre en place une prototype de &amp;quot;planche expérimentale&amp;quot; sur laquelle devaient être fixés nos différents modules (l'antenne de reception et les Xbees).&lt;br /&gt;
&lt;br /&gt;
La position des antennes les unes par rapport aux autres est fondamentale. Afin d'optimiser la reception, les antennes doivent être parallèles.&lt;br /&gt;
&lt;br /&gt;
Chaque Xbee est identifié par un chiffre (1 ou 2). En effet, l'attribution de ces chiffres sera définitive pour ne pas perturber la cohérence des expériences. &lt;br /&gt;
Leur position est aussi fondamentale. Ainsi, en fonction que le Xbee soit emetteur ou récepteur, il sera disposé différement sur la planche.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Le XBee 1 émetteur directement connecté en série au PC===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:GrapheGNURadio01.png|thumb|left|150px|Schéma simple d'étude fréquentielle et temporelle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette expérience est la première mettant en place un contexte (un seul Xbee émetteur connecté en série au PC, le deuxième Xbee étant inactif) et nous permettra d'étudier le plus de cas possibles.&lt;br /&gt;
&lt;br /&gt;
Nous avons tout d'abord commencé par un graphe GNURadio simple permettant l'observation du spectre et du signal et la variation de la fréquence d'étude.&lt;br /&gt;
&lt;br /&gt;
Le script python a été réécrit afin que le XBee puisse émettre une chaîne de caractère &amp;quot;HELLO&amp;quot; * 1024. En effet, même si la fréquence de balayage du module HackRF peut être grandement augmentée, il faut éviter d'aller au dessous de 0.01s, finissant par consommer de manière considérable les ressources octroyées par le CPU le cas échéant.&lt;br /&gt;
Le fait d'augmenter la taille de la chaine de caractère permet de mieux synchroniser l'étude en temps réel avec la capture des données.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc émis les données sur le canal 14, soit la fréquence centrale est à 2.420GHz selon la norme Zigbee. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Etude fréquentielle&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L'étude fréquentielle est similaire à celle réalisée auparavant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div center&amp;gt;&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[Fichier:Spectrefreq2.png|thumb|center|750px|Spectre fréquentiel au canal 14]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[Fichier:Spectrogram.png|thumb|center|250px|Spectrogramme]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on peut observer sur l'analyseur de spectre GNURadio que la fréquence centrale est située 2.450GHz. Nous n'avons pas trouvé la raison mais il s'agit sûrement d'un décalage au niveau applicatif.&lt;br /&gt;
&lt;br /&gt;
D'autre part, l'ensemble des fréquences qui dessinent le spectre s'étalent sur une large bande de fréquence. En effet, cette technique d'étalement appelée DSSS (Direct-Sequence Spread Spectrum) utilisé par les modules XBee permet au signal d'être moins sensible aux interférences et aux brouillages. En outre, même si la puissance du spectre dans sa globalité reste la même, la densité spectrale elle diminue considérablement, rendant le signal plus &amp;quot;discret&amp;quot;.&lt;br /&gt;
La différence de puissance entre le lobe principal et les premiers lobes secondaires sont de 30 dB, ce qui est aussi commun au DSSS.&lt;br /&gt;
&lt;br /&gt;
Le spectrogramme témoigne aussi de l'étalement du signal sur un peu plus de 6 MHz (3MHz de par et d'autre de la fréquence centrale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt; Etude temporelle &amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Signal temporel.png|thumb|left|500px|Signal observable centré à 2.450GHz lors de l'émission]]&lt;br /&gt;
&lt;br /&gt;
Le signal ici est séparé en deux composantes car il s'agit d'un signal complexe. Nous avons supposé en premier temps qu'il s'agissait du signal principal décalé de 180°, ce qui n'était pas le cas.&lt;br /&gt;
Après quelques recherches, cette séparation des composantes permet de transmettre deux fois plus de données sur la même bande passante.&lt;br /&gt;
Le signal observable témoigne d'une modulation bien spécifique au XBee. En effet, on peut observer des sauts de phase à différents points, qui correspondent à une modulation par changement de phase (modulation QPSK ou Quadratic Phase-Shift Keying). Ce sont ces sauts de phases qui permettent la transmission des bits.&lt;br /&gt;
Les changements de phase s'il y a se font toutes les µs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé d'enregistrer ces données brutes dans un fichier et nous l'avons étudier avec Audacity, logiciel open-source de son, et donc de signaux ! L'inconvénient avec l'interface graphique QT de GNURadio est son manque de précision lors d'un dézoom sur le signal en temps réel. Audacity permet de palier à celà !&lt;br /&gt;
En outre, on peut voir que les paquets Xbee sont reconnaissables. En effet, le signal témoigne de la taille du paquet XBee.&lt;br /&gt;
&lt;br /&gt;
Le paquet XBee est constitué d'un premier header (header physique) de 6 octets :&lt;br /&gt;
- la séquence de préambule (4 octets) constitué de 32 bits à 0&lt;br /&gt;
&lt;br /&gt;
- l'indice de début du paquet fixé à 0x7A (1 octet)&lt;br /&gt;
&lt;br /&gt;
- la longueur du paquet (1 octet);&lt;br /&gt;
&lt;br /&gt;
d'un header MAC (7 à 27 octets en fonction des informations de l'adresse), d'un bloc FCS de fin de paquet (2 octets) et l'ensemble des données (de 1 à 104 octets).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Signal2.png|thumb|right|400px|On observe graphiquement qu'un paquet est transmis en 3846µs]]&lt;br /&gt;
[[Fichier:PacketXBee.png|400px|thumb|right|Paquet XBee]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Comme dit plus haut, les signaux émis par le XBee connaissent un étalement sur le spectre par DSSS.&lt;br /&gt;
Cet étalement s'effectue en divisant chaque symbole (correspondant à une série de 4 bits) transmis en &amp;lt;B&amp;gt;&amp;lt;I&amp;gt;chips&amp;lt;/I&amp;gt;&amp;lt;/B&amp;gt;.&lt;br /&gt;
Chaque symbole, soit 4 bits, correspond à 32 chips, et donc 32 états binaires (1 octet correspond à 64 chips).&lt;br /&gt;
Dans le cas de la norme ZigBee, la transmission de chacun des chips est synchronisé sur chaque µs (1 chip toutes les µs).&lt;br /&gt;
&lt;br /&gt;
Les signaux reçus par l'antenne HackRF étaient deux sinusoïdes modulées en phase et qui s'étalaient sur une période d'environ 3840µs (3846µs graphiquement mais il y a possibilité d'erreur à l'echelle du µs).&lt;br /&gt;
Sachant qu'un octet correspond à 64µs, on a :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;N_{octets} =\frac{2*T_{signal}}{64*T_{chip}}=\frac{2*3.840*10^{-6}}{64*10^{-6}}=120 octets&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'analogie peut être effectuée entre paquet Ethernet et paquet ZigBee. En effet, la taille limite des données d'un paquet est de 104 octets. La chaîne de caractère n'étant qu'envoyée par paquet, le paquet observé n'est que de 120 octets, ce qui est cohérent avec les caractéristiques du XBee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Hello1024secs.png|thumb|none|Temps de transmission de la chaîne de caractères &amp;quot;HELLO&amp;quot; 1024 fois]] &amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:AudacitySignal2.png|thumb|none|51 Paquets XBee portent la chaîne de caractère &amp;quot;HELLO&amp;quot; 1024 fois]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaine 8==&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé cette semaine d'étudier, ce qui est selon pour nous, l'une des pistes fondamentales de notre projet, et plus particulièrement de l'étude de nos signaux : le rapport signal bruit.&lt;br /&gt;
&lt;br /&gt;
L'objectif de cette semaine et de celle à venir était, à partir du signal acquis par le hackrf, d'effectuer le calcul du SNR (signal-to-noise ratio) tel que :&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;SNR =\frac{P_{signal}}{P_{bruit}}&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le script python qui nous a permis de communiquer entre les deux shields Xbee se verra amélioré afin de faire plusieurs acquisition des signaux lors de la communication entre les Xbee, effectuer une moyenne statistique, et de même lorsqu'il n'y a pas de communication.&lt;br /&gt;
&lt;br /&gt;
Néanmoins, nous avons essayé d'approcher le SNR directement depuis l'interface de GnuRadio par le biais de l'utilitaire graphique et le langage en bloc.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 9==&lt;br /&gt;
&lt;br /&gt;
L'étude des signaux posait réellement problème de par le fait qu'une grande partie de la capture faite n'était que purement le bruit sans signal (utile plus tard pour l'étude du SNR).&lt;br /&gt;
Prenons l'exemple d'un paquet de 21 octets (un paquet contenant une seule chaîne de caractères HELLO). Le signal s'étalerait en théorie sur 21*64 chips soit 672 chips. Sachant que la modulation est une modulation QPSK, on s'étale sur un temps de 672µs.&lt;br /&gt;
En effet, le Xbee transmet toutes les 100ms.&lt;br /&gt;
Donc qu'une partie du signal nous est utile.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc décider d'écrire un script qui nous permettrait d'étudier le signal dans de meilleures conditions, et donc de le filtrer.&lt;br /&gt;
&lt;br /&gt;
Chaque capture de signal effectuée est enregistrée dans un fichier par le biais du bloc fonction &amp;lt;B&amp;gt;&amp;lt;I&amp;gt;File Sink&amp;lt;/I&amp;gt;&amp;lt;/B&amp;gt; du compagnon GNURadio. Néanmoins, les fichiers obtenus sont des fichiers binaires assez lourds (environ 500Mo pour une capture de 3s), ce qui est un réel problème et qui implique le filtrage du signal.&lt;br /&gt;
&lt;br /&gt;
La bibliothèque numpy pour python nous permet en outre directement d'importer les échantillons des signaux, les traduisant du binaire à un format cible (complexe flottant 64 bits) dans un Array par le biais de la fonction:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; f = scipy.fromfile(open(&amp;quot;Nom du fichier&amp;quot;), dtype=scipy.complex64) &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La première solution pour réduire ce signal était d'imposer un threshold directement sur le signal, supérieur au bruit, mais qui conduirait à une perte d'une partie du signal à étudier.&lt;br /&gt;
La deuxième solution qui a été retenue était tout simplement de calculer l'amplitude et la phase du signal et appliquer ce même threshold à l'amplitude.&lt;br /&gt;
&lt;br /&gt;
== Semaine 10 et + ==&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;/div&gt;</summary>
		<author><name>Amoreau</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Discussion:Projets_IMA4_SC_%26_SA_2018/2019&amp;diff=71903</id>
		<title>Discussion:Projets IMA4 SC &amp; SA 2018/2019</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Discussion:Projets_IMA4_SC_%26_SA_2018/2019&amp;diff=71903"/>
				<updated>2019-03-27T17:33:45Z</updated>
		
		<summary type="html">&lt;p&gt;Amoreau : /* Présence */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Répartition des binômes ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| Projet || Analyse || Matériel || Mi-parcours || Fin de parcours || Wiki terminé || Rapport || Vidéo&lt;br /&gt;
|-&lt;br /&gt;
| P9 [[IMA4 2018/2019 P9|Spider and I]]&lt;br /&gt;
| La description des &amp;quot;concurrents&amp;quot; aurait pu être plus précise. Un effort sur le scénario d'usage qui aurait, lui aussi, pu être développé. Des coquilles. Un vague plan de travail.&lt;br /&gt;
| Rien ou presque, fournisseur non utilisable.&lt;br /&gt;
|&lt;br /&gt;
| N'utilisez pas le mode &amp;quot;code&amp;quot; (espace en première colonne) pour distinguer une ligne. Une progression régulière mais il faudrait résoudre les problèmes soulevés à la semaine 7. Le travail à réaliser est assez simple, un résultat parfait est attendu.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P10 [[IMA4 2018/2019 P10|Capteur de niveau d'eau et de pollution]]&lt;br /&gt;
| Des coquilles. Bonne description des concurrents. Un effort pour le scénario, bonne mise en contexte, forcer sur la description de l'usage. Un plan de travail correct.&lt;br /&gt;
| Une liste préliminaire de matériels. Fournisseurs correctement choisis. Rien sur la page principale.&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Coquilles inacceptables dans le Wiki&amp;lt;/font&amp;gt;. &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;Wiki assez vide. Il est à espérer que le projet est plus avancé !&amp;lt;/font&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P12 [[IMA4 2018/2019 P12|Recyclage plastique imprimante 3D]]&lt;br /&gt;
| Vous êtes sur pour les servo-moteurs ? Ne serait-ce point des moteurs pas à pas ? Très bonne description du produit à réaliser avec illustrations. Bel effort de rédaction, encore pas mal de coquilles surtout en fin de page. Bonne étude des concurrents. Un scénario d'usage un peu rapide qui ne donne pas assez envie d'acquérir le produit. Questions difficiles mal exploitées (une réponse à la première question pourrait aussi être &amp;quot;par l'expérience&amp;quot;, pas de réponse à la seconde question). Une étude solide du projet même si la liste des tâches à effectuer manque.&lt;br /&gt;
| Bonne question sur le budget, mais posez la si vous voulez une réponse :D Liste de matériel encore très embryonnaire : rien sur l'électronique, une discussion avec votre encadrant s'impose pour fixer la partie mécanique.&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Wiki très bien tenu mais corrigez les quelques coquilles. Avancé du travail bien présenté.&amp;lt;/font&amp;gt; Vous devez toujours me présenter la note pour les matériels achetés chez Leroy-Merlin.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P13 [[IMA4 2018/2019 P13|Emetteur / Récepteur analogique en bande 5725-5875 MHz]]&lt;br /&gt;
| Un seul concurrent. Scénario d'usage ne donnant probablement pas la pleine mesure du produit. &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Rien sur la planification&amp;lt;/font&amp;gt;.&lt;br /&gt;
| &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Rien.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Rien. Votre travail n'est pas évaluable. Votre projet est en péril.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P14 [[IMA4 2018/2019 P14|Voiture autonome en modèle réduit]]&lt;br /&gt;
| Il me semble que le chassis doit être celui d'un modèle radio-commandé existant. Il me semble que le pilotage manuel n'est pas autorisé. Description un peu rapide des concurrents. Une synthèse du matériel et logiciels employés aurait été intéressant. Pour le scénario d'usage, une description avec la voiture comme sujet aurait être plus intéressant. La réponse à la première question ne va pas dans le sens de l'autonomie. Dire que python est le langage par défaut de la RPi n'a pas de sens. Vous avez tout intérêt à prendre le langage le plus efficace est ce n'est probablement pas python. Pas de servo-moteurs continus sur une voiture radio-commandé. Pas vraiement de plan de travail. &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;Prenez contact avec votre encadrant direct, j'aimerais que vos choix soient validés, certains me paraissent discutables.&amp;lt;/font&amp;gt;&lt;br /&gt;
| Aucune référence précise pour les matériels. Rien sur la page principale.&lt;br /&gt;
|&lt;br /&gt;
| Wiki moyen, peu dense, très peu illustré. Vous partez comme les IMA5 sur une solution de votre cru alors que vous n'avez aucune expérience en réseaux de neurones. Il est à craindre que le résultat final soit décevant.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P22 [[IMA4 2018/2019 P22|Secure And Verified Public Announcements through Blockchain]]&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Excellente rédaction.&amp;lt;/font&amp;gt; Une bonne tentative de description du projet mais toujours un flou sur le travail à réaliser. Cela aurait pu être levé avec une liste précise des tâches à effectuer (une tentative de liste dans les objectifs).&lt;br /&gt;
| Pas de matériel nécessaire (une RPi peut être).&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Un wiki très propre. Travail effectué décrit.&amp;lt;/font&amp;gt;. Il manque juste l'information sur la validation du prototype 0 par l'encadrant direct.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P26 [[IMA4 2018/2019 P26|Discussion pair à pair]]&lt;br /&gt;
| &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Nombre de coquilles inacceptable&amp;lt;/font&amp;gt;. Rajouter dans les objectifs de devoir tenter une ouverture de bouclier pour TCP (TCP Hole Punching). Analyse du premier concurrent : le prétexte pour n'utiliser que des serveurs microsoft pour les supernoeuds skype est le faible nombre de machines d'utilisateurs non handicapées par des parefeux. Bonne réponse aux questions difficile. L'expérience de skype dit qu'il faut totalement éviter qu'un noeud utilisateur ait à relayer les communications d'un autre utilisateur (ce qui est d'ailleurs contraire aux objectifs). Il faut donc une solution de pair à pair pour '''tous''' les clients. En particulier, IPv6 '''doit''' être intégré dans les solutions possibles. Il ne me semble pas que l'enregistrement des utilisateurs soit nécessaire, elle nuit même à la vie privée. Il faut simplement mémoriser les utilisateurs connectés. &lt;br /&gt;
| Pas de matériel listé pourtant il faut mettre en place un banc d'essai.&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Coquilles inacceptables dans le Wiki&amp;lt;/font&amp;gt;. &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;En fin de projet vous avez seulement mis en place le banc de test sans aucun développement d'un système de perçage de box que ce soit en UDP ou en TCP&amp;lt;/font&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P28 [[IMA4 2018/2019 P28|Affichage à billes]]&lt;br /&gt;
| Pour les panneaux d'affichage publicitaire, je ne suis pas sur que la consommation puisse être qualifiée d'énorme (il semble que si, à la lecture de votre réponse aux questions difficiles mais cela doit comprendre l'éclairage dont votre produit pourrait avec aussi besoin). &amp;lt;font color='green'&amp;gt;Rédaction très correcte. Un gros effort sur les illustrations. Un scénario d'usage, lui aussi, bien rédigé&amp;lt;/font&amp;gt;. La réponse à la question difficile sur l'énergie consommée par votre produit ne me convainc pas : partez sur la différence d'énergie potentielle pour monter une bille pas sur la force à exercer qu'il faudrait intégrer sur la hauteur de la remontée. Il faut approfondir l'analyse des tâches à effectuer.&lt;br /&gt;
| Il me semble avoir demandé de limiter la complexité du dispositif : 8 moteurs ?? Pas de références précises pour les matériels (lien sur le matériel dans le site du fournisseur).&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Très bon Wiki. Avancé du travail très bien présenté.&amp;lt;/font&amp;gt; On attend avec impatience le résultat des tests sur le prototype &amp;quot;carton&amp;quot;.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P30 [[IMA4 2018/2019 P30|Système minimal de gestion de conteneurs]]&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Excellent Wiki à ce jour. Rédaction très claire. Très bonne introduction. Tâches à réalisées clairement listées (mais dans les objectifs). Présentation très correcte du &amp;quot;concurrent principal&amp;quot;. Un scénario d'usage correct (j'aurais plutôt insisté sur la faible consommation du système en ressources que sur l'installation dans un système fortement personnalisé). Un calendrier prévisionnel.&amp;lt;/font&amp;gt; Le second &amp;quot;concurrent&amp;quot; est en fait l'ancienne couche bas niveau de &amp;lt;code&amp;gt;Docker&amp;lt;/code&amp;gt;. Il faudrait utiliser la syntaxe Wiki mais ne touchez à rien avant la séance du 10 décembre cela me fera un exemple parfait pour expliquer cette syntaxe.&lt;br /&gt;
| Pas de matériel nécessaire (une machine virtuelle sera concédée en cours de projet).&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Wiki très complet et très propre. Avancé du travail bien présenté.&amp;lt;/font&amp;gt; Il faut arriver à finaliser les scripts de gestion des conteneurs. &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P31 [[IMA4 2018/2019 P31|Robot hexapode de mesure de RSSI WiFi]]&lt;br /&gt;
| &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Beaucoup trop de coquilles&amp;lt;/font&amp;gt;. Bonne présentation des &amp;quot;concurrents&amp;quot; qui vous servent aussi pour expliquer que votre projet est leur synthèse. Le scénario d'usage se tient. Bonne réponse à la question. Je ne crois pas trop au positionnement par RFID (il faut être sur un tag RFID pour le lire). Etes-vous sur pour l'Arduino méga ? Un Uno avec un bouclier PWM ne serait-il pas plus efficace ?&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Effort de liste de matériel avec des références précises&amp;lt;/font&amp;gt;. Pas de liste sur la page principale.&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;N'utilisez pas le mode &amp;quot;code&amp;quot; de mediawiki (espace en première colonne) pour distinguer des lignes. Utilisez la syntaxe pour les items. Wiki très peu dense. L'avancement du projet semble être suspendu.&amp;lt;/font&amp;gt; Un bel effort pour la partie mécanique (les pattes du robot). Par contre la partie programmation semble très peu avancée.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P32 [[IMA4 2018/2019 P32|Robe augmentée]]&lt;br /&gt;
| En français l'abréviation de Monsieur est M. Mr est l'abrévation de Mister donc à n'utiliser qu'en anglosaxonnerie. Attention nous avons une expérience du fil à coudre conducteur et cela ne marche pas très bien sauf sur une surface très réduite. &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;Le scénario d'usage est perturbant : cela semble être un scénario pour deux produits différents&amp;lt;/font&amp;gt;. &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;Vous avez considérablement simplifié le projet (sous-ensemble de projets déjà réalisés), la réalisation devra être impeccable pour que cela puisse être validé comme projet IMA4&amp;lt;/font&amp;gt;.&lt;br /&gt;
| La liste du matériel précise ce que vous souhaitez faire. Que vient faire la platine d'essai dans cette liste ? Pour le prototype ? Vous ne parlez pas du tout de la carte contrôleur. C'est une Lilypad ?&lt;br /&gt;
|&lt;br /&gt;
| Wiki bien illustré mais une rédaction séche. Développez un peu. OK pour les cartes électroniques mais vous devriez présenter une esquisse de la robe telle que vous souhaitez la réaliser.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P33 [[IMA4 2018/2019 P33|Collier à animations lumineuses]]&lt;br /&gt;
| Un français imaginatif avec un nombre de coquilles dans la moyenne. Un scénario d'usage rocambolesque (il doit me manquer quelques références) mais acceptable. Des concurrents pertinents. Réponses aux questions acceptables. Se limiter à trois plaques ne me semble pas pertinent (même si vous pouvez faire un premier test sur trois plaques). Pour l'étude de la communication prévoyez un prototype avec quelques Arduino.&lt;br /&gt;
| Une liste de matériel qui semble être établie à la hâte. Il manque de nombreux composants électroniques pour faire tourner micro-contrôleurs et pilotes de LED. Pas de référence précise pour les composants.&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Rien sur votre travail, il n'est donc pas évaluable. Votre projet est en péril.&amp;lt;/font&amp;gt; Vous devriez avoir fait les tests de communication sur le bus SPI et avoir conçu votre PCB.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P35 [[IMA4 2018/2019 P35|Machine Learning pour navigation autonome de robots mobiles]]&lt;br /&gt;
| Il n'est pas tenu compte des erreurs de français. Dans la partie objectifs, la première sous-partie devrait plutôt s'appeler &amp;quot;partie robotique&amp;quot;, il n'y a rien d'électronique ici. Le travail a effectuer est assez flou. En particulier le Wiki ne contient rien sur les bibliothèques de &amp;quot;machine learning&amp;quot; à utiliser.&lt;br /&gt;
| Le matériel est fourni par les encadrants directs (AIP ?)&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;J'ai peur que votre Wiki rende bien compte du travail effectué jusque là : uniquement des études, rien de concret à part utiliser une manette pour acquérir des jeux de données. C'est très inquiétant en cette période de fin de projet. Votre projet pourrait ne pas être validé.&amp;lt;/font&amp;gt; &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P37 [[IMA4 2018/2019 P37|Station de recharge intelligente pour robot mobile]]&lt;br /&gt;
| Trop de coquilles. &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;Il semble que le sujet initial ne correspond plus à ce qui est demandé, merci de préciser le nouveau sujet, calibrage du robot ?&amp;lt;/font&amp;gt;Comment comptez-vous calibrer un préhenseur avec simplement du code (pas de réponse au niveau de la question difficile) ? &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Un seul concurrrent et sur la partie obsolète du projet&amp;lt;/font&amp;gt;. Une analyse du travail a effectuer qui ne tient pas compte de l'abandon du sujet original.&lt;br /&gt;
| &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Aucune liste de matériel&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| Rien à redire sur votre Wiki. Il me semble bien rendre compte de l'avancé de votre projet. &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Une liste de matériel finalisée en fin de projet : vous prenez de grands risques. Je vous rappelle qu'un prototype fonctionnel est attendu.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P38 [[IMA4 2018/2019 P38|Interface Graphique pour Robotino 2 Upgradé]]&lt;br /&gt;
| Choix des &amp;quot;concurrents&amp;quot; peu pertinents ou il fallait insister sur les différences entre ces robots et le robotino 2 amélioré. Le scénario d'usage se tient. Bonne réponse à la question &amp;quot;difficile&amp;quot;. Il semble que le but du projet se réduise à créer une interface web avec une bibliothèque spécifique. &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;L'interface devra être irréprochable pour constituer un projet IMA4&amp;lt;/font&amp;gt;.&lt;br /&gt;
| Projet purement informatique, pas de matériel nécessaire (autre qu'un robotino amélioré).&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;N'utilisez pas le mode &amp;quot;code&amp;quot; de mediawiki pour distinguer une ligne. Corrigez les coquilles ! En cette fin de projet vous semblez bien peu avancés sur l'interface Web. Rien sur la démonstration de fonctionnement du robotino que vous devez implanter. Il va falloir diantrement accélérer !&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P40 [[IMA4 2018/2019 P40|RFID/NFC]]&lt;br /&gt;
| L'objectif est clairement explicité et dans un français très correct. Desc concurrents peu pertinents et une analyse trop hâtive des dits concurrents. La réponse sur la question de la difficulté du projet n'est pas convaincante. &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;Votre application de contrôle du robotino par smartphone se devra d'être irréprochable pour constituer un projet IMA4&amp;lt;/font&amp;gt;.&lt;br /&gt;
| Attention, tout votre projet repose sur la validité des lecteur RFID commandés. Si ces lecteurs ne sont pas utilisables votre projet tombe à l'eau. Vous avez étudié la compatibilité des lecteurs avec les robotino ?&lt;br /&gt;
|&lt;br /&gt;
| Vous semblez avoir avancé dans votre projet mais vos dernières entrées dans le Wiki sont trop courtes pour permettre de juger. Etoffez votre Wiki en décrivant mieux cette application (copies d'écrans). Je ne vois aucune trace de la partie de connexion IP automatique via NFC au robotino ?&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P42 [[IMA4 2018/2019 P42|Coupe de robotique des écoles primaires]]&lt;br /&gt;
| &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Beaucoup trop de coquilles&amp;lt;/font&amp;gt;. Objectifs très clairement précisés. Analyse des concurrents et réponse lapidaires. Le fait que vous ne respectiez pas le cahier des charges imposé aux enfants est problématique. &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Une liste précise des tâches a effectuer. Un calendrier prévisionnel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| Bel effort de liste de matériel. Quelques composants chez des fournisseurs non agréés. &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Liste sur la page principale&amp;lt;/font&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Wiki plus que correct qui donne bien une idée de la progression.&amp;lt;/font&amp;gt; Tentez d'appeler Robotshop pour savoir ce qu'est devenue la commande. Il faut aussi que vous vous penchiez sur le PCB de commande des LED et servo-moteurs de la piste.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P44 [[IMA4 2018/2019 P44|Clônes améliorés des modules ARDUINO]]&lt;br /&gt;
| Restriction du sujet à la conception et réalisation d'une seule carte, ce qui est, ma foi, prudent. Bonne description de &amp;quot;concurrents&amp;quot;. Des coquilles mais sans plus. Ne mettez pas d'espace ou d'accents dans les noms des fichiers téléchargés. Scénario d'usage acceptable. Clairement vous avez déjà pas mal réfléchi à votre carte. &lt;br /&gt;
| Une liste de matériel mais sans lien vers le composant chez un fournisseur agréé.&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Rien. Votre travail n'est pas évaluable. Votre projet est en péril.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P45 [[IMA4 2018/2019 P45|Sac à main ou sac à dos solaire]]&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Wiki très bien illustré, rédaction assez correcte (quelques coquilles)&amp;lt;/font&amp;gt;. Bonne description de concurrents, scénario d'usage convenable. Réponses un peu rapides aux questions &amp;quot;difficiles&amp;quot;&lt;br /&gt;
| Une liste de composants qui parait encore bien préliminaire. Aucun lien sur les composants chez les fournisseurs.&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;Vous avez posé quelques réflexions dans votre Wiki. Cependant aucune trace de réalisation. Une liste de matériel exploitable trop tardive.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P46 [[IMA4 2018/2019 P46|Kit Robot]]&lt;br /&gt;
| PLutôt bien rédigé malgré quelques coquilles. Objectifs bien fixés. Concurrents décrits en détail (un peu de synthèse n'aurait pas fait de mal). &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Scénario d'usage très correct&amp;lt;/font&amp;gt;. &lt;br /&gt;
| Un liste de composants bien avancée. &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Des liens vers les fournisseurs. Matériels sur la page principale.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| Le Wiki est correct. Vous semblez avoir terminé la phase de conception même s'il manque les informations sur le PCB. Disons que je serais rassuré quand vous aurez découpé les pièces du chassis et fait réaliser la carte électronique. En une phrase : il est plus que temps d'avoir des résultats tangibles !&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P57 [[IMA4 2018/2019 P57|Mise à jour over the air]]&lt;br /&gt;
| Bon cahier des charges qui répond aux questions que l'on pourrait se poser à la lecture du reste de la page. Quelle différence entre votre solution et Dualoptiboot du coup ? Dualoptiboot ne comprend pas la partie matérielle ? Allez-vous l'utiliser ? Un scénario d'usage bien rapide. La réponse semble à coté de la question, il semble que vous répondez à la question &amp;quot;comment vérifier une somme de contrôle avant de flasher la mémoire programme ?&amp;quot;. Comment allez vous gérer la clef de chiffrement ? Elle est figée dans l'amorceur ? Je crois comprendre en fin de page que vous voulez fixer une clef par capteur, cela casse le principe de la mise à jour par diffusion radio, non ?&lt;br /&gt;
| Une première liste de matériel sans lien vers les sites des fournisseurs agréés.&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;N'utilisez pas le mode &amp;quot;code&amp;quot; de mediawiki pour distinguer une ligne. Cinq semaines pour router une carte ? Au minimum donnez les problèmes rencontrés et les résultats obtenus. Dans l'état de vacuité de votre Wiki, il est légitime de douter de la validation du projet.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P63 [[IMA4 2018/2019 P63|Etude de la consommation d'un capteur de pollution]]&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Une partie analyse tout à fait correcte. La liste des tâches à effectuer est détaillée et claire&amp;lt;/font&amp;gt;.&lt;br /&gt;
| Une liste de matériel avec des liens vers des fournisseurs. Par contre les fournisseurs choisis ne sont pas forcément utilisables.&lt;br /&gt;
|&lt;br /&gt;
| Il y a comme un trou entre la semaine 3 et la semaine 7 ? Un problème de légende et de figure. &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Wiki acceptable.&amp;lt;/font&amp;gt; &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;Les cartes doivent être vérifiées et réalisées de toute urgence.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P70 [[IMA4 2018/2019 P70|Impact du matériel et du logiciel sur le rayonnement électromagnétique]]&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Rédaction très correcte. Une partie analyse tout à fait correcte. La liste des tâches à effectuer est détaillée et claire.&amp;lt;/font&amp;gt;&lt;br /&gt;
| Une liste de matériels très embryonnaire et sans lien exploitable.&lt;br /&gt;
|&lt;br /&gt;
| Le Wiki n'est pas à jour et ne permet pas de se faire une idée du travail des deux dernières semaines. Rien à redire sur le travail antérieur.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P72 [[IMA4 2018/2019 P72|Mesure du courant simple]]&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Rédaction correcte. Wiki bien illustré. Une partie analyse correcte.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Une liste de matériel bien avancée avec des liens exploitables.&amp;lt;/font&amp;gt; Recopiez les liens sur la page principale.&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Wiki très correct. Bien illustré. Il manque le schematic de la carte, vous l'avez réalisé n'est-ce pas ?&amp;lt;/font&amp;gt; &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;Vous devriez déjà avoir routé et réalisé votre carte.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P73 [[IMA4 2018/2019 P73|Ecriture automatique de partition musicale]]&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Rédaction très correcte. Une partie analyse tout à fait correcte. La liste des tâches à effectuer est détaillée et claire. Un calendrier prévisionnel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| Une tentative de liste de matériel qui ne pourra effectivement être finalisé qu'après discussions avec un électronicien.&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Wiki très correct. Bien illustré.&amp;lt;/font&amp;gt; Par contre vous semblez marquer le pas sur ces deux dernières semaines alors qu'il s'agirait, au contraire, de mettre un coup d'accélerateur. &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;Routez cette carte, il est plus que temps !&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Présence ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Projet !! Elèves !! 10/12/2018 !! 16/01/2019 !! 23/01/2019 !! 30/01/2019 !! 06/02/2019 !! 13/02/2019 !! 27/02/2019 !! 06/03/2019 !! 13/03/2019 !! 20/03/2019 !! 27/03/2019&lt;br /&gt;
|-&lt;br /&gt;
| P9 [[IMA4 2018/2019 P9|Spider and I]]&lt;br /&gt;
| Nestor Martinez / Lina Mejbar&lt;br /&gt;
| OK&lt;br /&gt;
| E305&lt;br /&gt;
| E305&lt;br /&gt;
| E305&lt;br /&gt;
| E304&lt;br /&gt;
| A208&lt;br /&gt;
| E304&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| E304&lt;br /&gt;
|-&lt;br /&gt;
| P10 [[IMA4 2018/2019 P10|Capteur de niveau d'eau et de pollution]]&lt;br /&gt;
| Antoine Branquart&lt;br /&gt;
| Absent (certificat médical)&lt;br /&gt;
| E305&lt;br /&gt;
| E305&lt;br /&gt;
| E301&lt;br /&gt;
| Absent (certificat médical)&lt;br /&gt;
| E301&lt;br /&gt;
| E303&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présent&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;Excusé (malade)&amp;lt;/font&amp;gt;&lt;br /&gt;
| C201&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présent&amp;lt;/font&amp;gt;&lt;br /&gt;
|C201&lt;br /&gt;
|C201&lt;br /&gt;
|-&lt;br /&gt;
| P12 [[IMA4 2018/2019 P12|Recyclage plastique imprimante 3D]]&lt;br /&gt;
| Corentin Danjou / Pol Mulon&lt;br /&gt;
| OK&lt;br /&gt;
| E305&lt;br /&gt;
| E305&lt;br /&gt;
| E301&lt;br /&gt;
| E304/E301&lt;br /&gt;
| E301&lt;br /&gt;
| E303&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| E303&lt;br /&gt;
| E303&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| E304 / C201&lt;br /&gt;
| Fabricarium / C201&lt;br /&gt;
|-&lt;br /&gt;
| P13 [[IMA4 2018/2019 P13|Emetteur / Récepteur analogique en bande 5725-5875 MHz]]&lt;br /&gt;
| Arthur Reviron&lt;br /&gt;
| Absent&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présent&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| C201&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présent&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P14 [[IMA4 2018/2019 P14|Voiture autonome en modèle réduit]]&lt;br /&gt;
| Hugo Dejaegher / Brandon Elemva&lt;br /&gt;
| OK&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306 + Fabricarium&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| E306&lt;br /&gt;
|-&lt;br /&gt;
| P22 [[IMA4 2018/2019 P22|Secure And Verified Public Announcements through Blockchain]]&lt;br /&gt;
| Arezki Ait Mouheb&lt;br /&gt;
| OK&lt;br /&gt;
| E306&lt;br /&gt;
| E305&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présent&amp;lt;/font&amp;gt;&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présent&amp;lt;/font&amp;gt;&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
|-&lt;br /&gt;
| P26 [[IMA4 2018/2019 P26|Discussion pair à pair]]&lt;br /&gt;
| Fabien Di Natale / Ibrahim Ben Dhiab&lt;br /&gt;
| OK&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
|-&lt;br /&gt;
| P28 [[IMA4 2018/2019 P28|Affichage à billes]]&lt;br /&gt;
| Flora Dziedzic / Martin Michel &lt;br /&gt;
| OK&lt;br /&gt;
| Fabricarium&lt;br /&gt;
| E305&lt;br /&gt;
| Fabricarium&lt;br /&gt;
| Fabricarium&lt;br /&gt;
| A311&lt;br /&gt;
| Fabricarium&lt;br /&gt;
| Fabricarium&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| Fabricarium&lt;br /&gt;
| Fabricarium&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| Fabricarium&lt;br /&gt;
|-&lt;br /&gt;
| P30 [[IMA4 2018/2019 P30|Système minimal de gestion de conteneurs]]&lt;br /&gt;
| Hind Malti&lt;br /&gt;
| OK&lt;br /&gt;
|E304&lt;br /&gt;
|E304&lt;br /&gt;
|E304&lt;br /&gt;
|E304&lt;br /&gt;
|E303&lt;br /&gt;
|E306&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présente&amp;lt;/font&amp;gt;&lt;br /&gt;
|E306&lt;br /&gt;
|E306&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
|E306&lt;br /&gt;
|E306&lt;br /&gt;
|-&lt;br /&gt;
| P31 [[IMA4 2018/2019 P31|Robot hexapode de mesure de RSSI WiFi]]&lt;br /&gt;
| Rémi Foucault / Hugo Velly&lt;br /&gt;
| OK&lt;br /&gt;
|E304&lt;br /&gt;
|E304&lt;br /&gt;
|E304 / Fabricarium&lt;br /&gt;
|E304 / Fabricarium&lt;br /&gt;
|E304&lt;br /&gt;
|E303&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
|E303&lt;br /&gt;
|E303&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
|E303/C202-bis&lt;br /&gt;
|E304&lt;br /&gt;
|-&lt;br /&gt;
| P32 [[IMA4 2018/2019 P32|Robe augmentée]]&lt;br /&gt;
| Brinda Muzakare / Yan Xuelu&lt;br /&gt;
| OK&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présentes&amp;lt;/font&amp;gt;&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présentes&amp;lt;/font&amp;gt;&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
|-&lt;br /&gt;
| P33 [[IMA4 2018/2019 P33|Collier à animations lumineuses]]&lt;br /&gt;
| Loris Ahouassou&lt;br /&gt;
| OK&lt;br /&gt;
| E306&lt;br /&gt;
| E305&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| C201&lt;br /&gt;
| E304&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présent&amp;lt;/font&amp;gt;&lt;br /&gt;
| E304&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Absent&amp;lt;/font&amp;gt;&lt;br /&gt;
| E304&lt;br /&gt;
|-&lt;br /&gt;
| P35 [[IMA4 2018/2019 P35|Machine Learning pour navigation autonome de robots mobiles]]&lt;br /&gt;
| Wenjing Chen / Puyuan Lin&lt;br /&gt;
| OK&lt;br /&gt;
| E304&lt;br /&gt;
| E305&lt;br /&gt;
| C304&lt;br /&gt;
| C102&lt;br /&gt;
| C304&lt;br /&gt;
| C304&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Absents&amp;lt;/font&amp;gt;&lt;br /&gt;
| C002&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| C002&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P37 [[IMA4 2018/2019 P37|Station de recharge intelligente pour robot mobile]]&lt;br /&gt;
| Guillaume Declerck / Pierre Guigo&lt;br /&gt;
| OK&lt;br /&gt;
| E305&lt;br /&gt;
| E305&lt;br /&gt;
| E301&lt;br /&gt;
| E303&lt;br /&gt;
| E301&lt;br /&gt;
| E303&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Pierre Guigo présent&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Guillaume Declerck absent&amp;lt;/font&amp;gt;&lt;br /&gt;
| E303 &amp;amp; C201&lt;br /&gt;
| C201 &amp;amp; E303&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|C203&lt;br /&gt;
|-&lt;br /&gt;
| P38 [[IMA4 2018/2019 P38|Interface Graphique pour Robotino 2 Upgradé]]&lt;br /&gt;
| François Brassart / Jérôme Haon&lt;br /&gt;
| OK&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E303&lt;br /&gt;
| E304&lt;br /&gt;
| E305&lt;br /&gt;
| E304&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
|C304&lt;br /&gt;
|C304&lt;br /&gt;
|-&lt;br /&gt;
| P40 [[IMA4 2018/2019 P40|RFID/NFC]]&lt;br /&gt;
| Jean De Dieu Nduwamungu / Xinwei Hu&lt;br /&gt;
| OK&lt;br /&gt;
| E305&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
|-&lt;br /&gt;
| P42 [[IMA4 2018/2019 P42|Coupe de robotique des écoles primaires]]&lt;br /&gt;
| Pierre Frison / Thibault Lepoivre&lt;br /&gt;
| OK&lt;br /&gt;
| E305&lt;br /&gt;
| E305&lt;br /&gt;
| E304&lt;br /&gt;
| Fabricarium&lt;br /&gt;
| E301(fab fermé)&lt;br /&gt;
| Fabricarium&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| Fabricarium&lt;br /&gt;
| Fab et C201&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| Fabricarium&lt;br /&gt;
| E303 (Lepoivre) / frison absent(malade)&lt;br /&gt;
|-&lt;br /&gt;
| P44 [[IMA4 2018/2019 P44|Clônes améliorés des modules ARDUINO]]&lt;br /&gt;
| Théau Moinat&lt;br /&gt;
| OK&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
|&lt;br /&gt;
| C201&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présent&amp;lt;/font&amp;gt;&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présent&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P45 [[IMA4 2018/2019 P45|Sac à main ou sac à dos solaire]]&lt;br /&gt;
| Mathis Dupré&lt;br /&gt;
| OK&lt;br /&gt;
| E305&lt;br /&gt;
| E305&lt;br /&gt;
| E301&lt;br /&gt;
| E304&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présent&amp;lt;/font&amp;gt;&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présent&amp;lt;/font&amp;gt;&lt;br /&gt;
| C201&lt;br /&gt;
|-&lt;br /&gt;
| P46 [[IMA4 2018/2019 P46|Kit Robot]]&lt;br /&gt;
| Valentin Pitre / Gaëlle Bernard&lt;br /&gt;
| OK&lt;br /&gt;
| E304&lt;br /&gt;
| E305&lt;br /&gt;
| E303&lt;br /&gt;
| E304&lt;br /&gt;
| A208&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| E304&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| E304&lt;br /&gt;
| C202&lt;br /&gt;
|-&lt;br /&gt;
| P57 [[IMA4 2018/2019 P57|Mise à jour over the air]]&lt;br /&gt;
| Florent Leroy&lt;br /&gt;
| OK&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présent&amp;lt;/font&amp;gt;&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présent&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P63 [[IMA4 2018/2019 P63|Etude de la consommation d'un capteur de pollution]]&lt;br /&gt;
| Victor Lorthios / Juliette Obled&lt;br /&gt;
| OK&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201+E303&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| E303&lt;br /&gt;
| C201&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
|-&lt;br /&gt;
| P70 [[IMA4 2018/2019 P70|Impact du matériel et du logiciel sur le rayonnement électromagnétique]]&lt;br /&gt;
| Antoine Moreau / Souheib Khinache&lt;br /&gt;
| OK&lt;br /&gt;
| E305&lt;br /&gt;
| E305&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| E304&lt;br /&gt;
| Fabricarium&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| Fabricarium&lt;br /&gt;
| Fabricarium&lt;br /&gt;
|-&lt;br /&gt;
| P72 [[IMA4 2018/2019 P72|Mesure du courant simple]]&lt;br /&gt;
| Raphaël Martin&lt;br /&gt;
| OK&lt;br /&gt;
| E305&lt;br /&gt;
| E305&lt;br /&gt;
| E301&lt;br /&gt;
| E303&lt;br /&gt;
| E303&lt;br /&gt;
| E303&lt;br /&gt;
| E303&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présent&amp;lt;/font&amp;gt;&lt;br /&gt;
| E303&lt;br /&gt;
| E303&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présent&amp;lt;/font&amp;gt;&lt;br /&gt;
| E303&lt;br /&gt;
|-&lt;br /&gt;
| P73 [[IMA4 2018/2019 P73|Ecriture automatique de partition musicale]]&lt;br /&gt;
| Hugo Leurent / Fabien Ronckier&lt;br /&gt;
| OK&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Amoreau</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Discussion:Projets_IMA4_SC_%26_SA_2018/2019&amp;diff=71902</id>
		<title>Discussion:Projets IMA4 SC &amp; SA 2018/2019</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Discussion:Projets_IMA4_SC_%26_SA_2018/2019&amp;diff=71902"/>
				<updated>2019-03-27T17:33:19Z</updated>
		
		<summary type="html">&lt;p&gt;Amoreau : /* Présence */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Répartition des binômes ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
| Projet || Analyse || Matériel || Mi-parcours || Fin de parcours || Wiki terminé || Rapport || Vidéo&lt;br /&gt;
|-&lt;br /&gt;
| P9 [[IMA4 2018/2019 P9|Spider and I]]&lt;br /&gt;
| La description des &amp;quot;concurrents&amp;quot; aurait pu être plus précise. Un effort sur le scénario d'usage qui aurait, lui aussi, pu être développé. Des coquilles. Un vague plan de travail.&lt;br /&gt;
| Rien ou presque, fournisseur non utilisable.&lt;br /&gt;
|&lt;br /&gt;
| N'utilisez pas le mode &amp;quot;code&amp;quot; (espace en première colonne) pour distinguer une ligne. Une progression régulière mais il faudrait résoudre les problèmes soulevés à la semaine 7. Le travail à réaliser est assez simple, un résultat parfait est attendu.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P10 [[IMA4 2018/2019 P10|Capteur de niveau d'eau et de pollution]]&lt;br /&gt;
| Des coquilles. Bonne description des concurrents. Un effort pour le scénario, bonne mise en contexte, forcer sur la description de l'usage. Un plan de travail correct.&lt;br /&gt;
| Une liste préliminaire de matériels. Fournisseurs correctement choisis. Rien sur la page principale.&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Coquilles inacceptables dans le Wiki&amp;lt;/font&amp;gt;. &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;Wiki assez vide. Il est à espérer que le projet est plus avancé !&amp;lt;/font&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P12 [[IMA4 2018/2019 P12|Recyclage plastique imprimante 3D]]&lt;br /&gt;
| Vous êtes sur pour les servo-moteurs ? Ne serait-ce point des moteurs pas à pas ? Très bonne description du produit à réaliser avec illustrations. Bel effort de rédaction, encore pas mal de coquilles surtout en fin de page. Bonne étude des concurrents. Un scénario d'usage un peu rapide qui ne donne pas assez envie d'acquérir le produit. Questions difficiles mal exploitées (une réponse à la première question pourrait aussi être &amp;quot;par l'expérience&amp;quot;, pas de réponse à la seconde question). Une étude solide du projet même si la liste des tâches à effectuer manque.&lt;br /&gt;
| Bonne question sur le budget, mais posez la si vous voulez une réponse :D Liste de matériel encore très embryonnaire : rien sur l'électronique, une discussion avec votre encadrant s'impose pour fixer la partie mécanique.&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Wiki très bien tenu mais corrigez les quelques coquilles. Avancé du travail bien présenté.&amp;lt;/font&amp;gt; Vous devez toujours me présenter la note pour les matériels achetés chez Leroy-Merlin.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P13 [[IMA4 2018/2019 P13|Emetteur / Récepteur analogique en bande 5725-5875 MHz]]&lt;br /&gt;
| Un seul concurrent. Scénario d'usage ne donnant probablement pas la pleine mesure du produit. &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Rien sur la planification&amp;lt;/font&amp;gt;.&lt;br /&gt;
| &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Rien.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Rien. Votre travail n'est pas évaluable. Votre projet est en péril.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P14 [[IMA4 2018/2019 P14|Voiture autonome en modèle réduit]]&lt;br /&gt;
| Il me semble que le chassis doit être celui d'un modèle radio-commandé existant. Il me semble que le pilotage manuel n'est pas autorisé. Description un peu rapide des concurrents. Une synthèse du matériel et logiciels employés aurait été intéressant. Pour le scénario d'usage, une description avec la voiture comme sujet aurait être plus intéressant. La réponse à la première question ne va pas dans le sens de l'autonomie. Dire que python est le langage par défaut de la RPi n'a pas de sens. Vous avez tout intérêt à prendre le langage le plus efficace est ce n'est probablement pas python. Pas de servo-moteurs continus sur une voiture radio-commandé. Pas vraiement de plan de travail. &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;Prenez contact avec votre encadrant direct, j'aimerais que vos choix soient validés, certains me paraissent discutables.&amp;lt;/font&amp;gt;&lt;br /&gt;
| Aucune référence précise pour les matériels. Rien sur la page principale.&lt;br /&gt;
|&lt;br /&gt;
| Wiki moyen, peu dense, très peu illustré. Vous partez comme les IMA5 sur une solution de votre cru alors que vous n'avez aucune expérience en réseaux de neurones. Il est à craindre que le résultat final soit décevant.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P22 [[IMA4 2018/2019 P22|Secure And Verified Public Announcements through Blockchain]]&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Excellente rédaction.&amp;lt;/font&amp;gt; Une bonne tentative de description du projet mais toujours un flou sur le travail à réaliser. Cela aurait pu être levé avec une liste précise des tâches à effectuer (une tentative de liste dans les objectifs).&lt;br /&gt;
| Pas de matériel nécessaire (une RPi peut être).&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Un wiki très propre. Travail effectué décrit.&amp;lt;/font&amp;gt;. Il manque juste l'information sur la validation du prototype 0 par l'encadrant direct.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P26 [[IMA4 2018/2019 P26|Discussion pair à pair]]&lt;br /&gt;
| &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Nombre de coquilles inacceptable&amp;lt;/font&amp;gt;. Rajouter dans les objectifs de devoir tenter une ouverture de bouclier pour TCP (TCP Hole Punching). Analyse du premier concurrent : le prétexte pour n'utiliser que des serveurs microsoft pour les supernoeuds skype est le faible nombre de machines d'utilisateurs non handicapées par des parefeux. Bonne réponse aux questions difficile. L'expérience de skype dit qu'il faut totalement éviter qu'un noeud utilisateur ait à relayer les communications d'un autre utilisateur (ce qui est d'ailleurs contraire aux objectifs). Il faut donc une solution de pair à pair pour '''tous''' les clients. En particulier, IPv6 '''doit''' être intégré dans les solutions possibles. Il ne me semble pas que l'enregistrement des utilisateurs soit nécessaire, elle nuit même à la vie privée. Il faut simplement mémoriser les utilisateurs connectés. &lt;br /&gt;
| Pas de matériel listé pourtant il faut mettre en place un banc d'essai.&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Coquilles inacceptables dans le Wiki&amp;lt;/font&amp;gt;. &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;En fin de projet vous avez seulement mis en place le banc de test sans aucun développement d'un système de perçage de box que ce soit en UDP ou en TCP&amp;lt;/font&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P28 [[IMA4 2018/2019 P28|Affichage à billes]]&lt;br /&gt;
| Pour les panneaux d'affichage publicitaire, je ne suis pas sur que la consommation puisse être qualifiée d'énorme (il semble que si, à la lecture de votre réponse aux questions difficiles mais cela doit comprendre l'éclairage dont votre produit pourrait avec aussi besoin). &amp;lt;font color='green'&amp;gt;Rédaction très correcte. Un gros effort sur les illustrations. Un scénario d'usage, lui aussi, bien rédigé&amp;lt;/font&amp;gt;. La réponse à la question difficile sur l'énergie consommée par votre produit ne me convainc pas : partez sur la différence d'énergie potentielle pour monter une bille pas sur la force à exercer qu'il faudrait intégrer sur la hauteur de la remontée. Il faut approfondir l'analyse des tâches à effectuer.&lt;br /&gt;
| Il me semble avoir demandé de limiter la complexité du dispositif : 8 moteurs ?? Pas de références précises pour les matériels (lien sur le matériel dans le site du fournisseur).&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Très bon Wiki. Avancé du travail très bien présenté.&amp;lt;/font&amp;gt; On attend avec impatience le résultat des tests sur le prototype &amp;quot;carton&amp;quot;.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P30 [[IMA4 2018/2019 P30|Système minimal de gestion de conteneurs]]&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Excellent Wiki à ce jour. Rédaction très claire. Très bonne introduction. Tâches à réalisées clairement listées (mais dans les objectifs). Présentation très correcte du &amp;quot;concurrent principal&amp;quot;. Un scénario d'usage correct (j'aurais plutôt insisté sur la faible consommation du système en ressources que sur l'installation dans un système fortement personnalisé). Un calendrier prévisionnel.&amp;lt;/font&amp;gt; Le second &amp;quot;concurrent&amp;quot; est en fait l'ancienne couche bas niveau de &amp;lt;code&amp;gt;Docker&amp;lt;/code&amp;gt;. Il faudrait utiliser la syntaxe Wiki mais ne touchez à rien avant la séance du 10 décembre cela me fera un exemple parfait pour expliquer cette syntaxe.&lt;br /&gt;
| Pas de matériel nécessaire (une machine virtuelle sera concédée en cours de projet).&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Wiki très complet et très propre. Avancé du travail bien présenté.&amp;lt;/font&amp;gt; Il faut arriver à finaliser les scripts de gestion des conteneurs. &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P31 [[IMA4 2018/2019 P31|Robot hexapode de mesure de RSSI WiFi]]&lt;br /&gt;
| &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Beaucoup trop de coquilles&amp;lt;/font&amp;gt;. Bonne présentation des &amp;quot;concurrents&amp;quot; qui vous servent aussi pour expliquer que votre projet est leur synthèse. Le scénario d'usage se tient. Bonne réponse à la question. Je ne crois pas trop au positionnement par RFID (il faut être sur un tag RFID pour le lire). Etes-vous sur pour l'Arduino méga ? Un Uno avec un bouclier PWM ne serait-il pas plus efficace ?&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Effort de liste de matériel avec des références précises&amp;lt;/font&amp;gt;. Pas de liste sur la page principale.&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;N'utilisez pas le mode &amp;quot;code&amp;quot; de mediawiki (espace en première colonne) pour distinguer des lignes. Utilisez la syntaxe pour les items. Wiki très peu dense. L'avancement du projet semble être suspendu.&amp;lt;/font&amp;gt; Un bel effort pour la partie mécanique (les pattes du robot). Par contre la partie programmation semble très peu avancée.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P32 [[IMA4 2018/2019 P32|Robe augmentée]]&lt;br /&gt;
| En français l'abréviation de Monsieur est M. Mr est l'abrévation de Mister donc à n'utiliser qu'en anglosaxonnerie. Attention nous avons une expérience du fil à coudre conducteur et cela ne marche pas très bien sauf sur une surface très réduite. &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;Le scénario d'usage est perturbant : cela semble être un scénario pour deux produits différents&amp;lt;/font&amp;gt;. &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;Vous avez considérablement simplifié le projet (sous-ensemble de projets déjà réalisés), la réalisation devra être impeccable pour que cela puisse être validé comme projet IMA4&amp;lt;/font&amp;gt;.&lt;br /&gt;
| La liste du matériel précise ce que vous souhaitez faire. Que vient faire la platine d'essai dans cette liste ? Pour le prototype ? Vous ne parlez pas du tout de la carte contrôleur. C'est une Lilypad ?&lt;br /&gt;
|&lt;br /&gt;
| Wiki bien illustré mais une rédaction séche. Développez un peu. OK pour les cartes électroniques mais vous devriez présenter une esquisse de la robe telle que vous souhaitez la réaliser.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P33 [[IMA4 2018/2019 P33|Collier à animations lumineuses]]&lt;br /&gt;
| Un français imaginatif avec un nombre de coquilles dans la moyenne. Un scénario d'usage rocambolesque (il doit me manquer quelques références) mais acceptable. Des concurrents pertinents. Réponses aux questions acceptables. Se limiter à trois plaques ne me semble pas pertinent (même si vous pouvez faire un premier test sur trois plaques). Pour l'étude de la communication prévoyez un prototype avec quelques Arduino.&lt;br /&gt;
| Une liste de matériel qui semble être établie à la hâte. Il manque de nombreux composants électroniques pour faire tourner micro-contrôleurs et pilotes de LED. Pas de référence précise pour les composants.&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Rien sur votre travail, il n'est donc pas évaluable. Votre projet est en péril.&amp;lt;/font&amp;gt; Vous devriez avoir fait les tests de communication sur le bus SPI et avoir conçu votre PCB.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P35 [[IMA4 2018/2019 P35|Machine Learning pour navigation autonome de robots mobiles]]&lt;br /&gt;
| Il n'est pas tenu compte des erreurs de français. Dans la partie objectifs, la première sous-partie devrait plutôt s'appeler &amp;quot;partie robotique&amp;quot;, il n'y a rien d'électronique ici. Le travail a effectuer est assez flou. En particulier le Wiki ne contient rien sur les bibliothèques de &amp;quot;machine learning&amp;quot; à utiliser.&lt;br /&gt;
| Le matériel est fourni par les encadrants directs (AIP ?)&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;J'ai peur que votre Wiki rende bien compte du travail effectué jusque là : uniquement des études, rien de concret à part utiliser une manette pour acquérir des jeux de données. C'est très inquiétant en cette période de fin de projet. Votre projet pourrait ne pas être validé.&amp;lt;/font&amp;gt; &lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P37 [[IMA4 2018/2019 P37|Station de recharge intelligente pour robot mobile]]&lt;br /&gt;
| Trop de coquilles. &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;Il semble que le sujet initial ne correspond plus à ce qui est demandé, merci de préciser le nouveau sujet, calibrage du robot ?&amp;lt;/font&amp;gt;Comment comptez-vous calibrer un préhenseur avec simplement du code (pas de réponse au niveau de la question difficile) ? &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Un seul concurrrent et sur la partie obsolète du projet&amp;lt;/font&amp;gt;. Une analyse du travail a effectuer qui ne tient pas compte de l'abandon du sujet original.&lt;br /&gt;
| &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Aucune liste de matériel&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| Rien à redire sur votre Wiki. Il me semble bien rendre compte de l'avancé de votre projet. &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Une liste de matériel finalisée en fin de projet : vous prenez de grands risques. Je vous rappelle qu'un prototype fonctionnel est attendu.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P38 [[IMA4 2018/2019 P38|Interface Graphique pour Robotino 2 Upgradé]]&lt;br /&gt;
| Choix des &amp;quot;concurrents&amp;quot; peu pertinents ou il fallait insister sur les différences entre ces robots et le robotino 2 amélioré. Le scénario d'usage se tient. Bonne réponse à la question &amp;quot;difficile&amp;quot;. Il semble que le but du projet se réduise à créer une interface web avec une bibliothèque spécifique. &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;L'interface devra être irréprochable pour constituer un projet IMA4&amp;lt;/font&amp;gt;.&lt;br /&gt;
| Projet purement informatique, pas de matériel nécessaire (autre qu'un robotino amélioré).&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;N'utilisez pas le mode &amp;quot;code&amp;quot; de mediawiki pour distinguer une ligne. Corrigez les coquilles ! En cette fin de projet vous semblez bien peu avancés sur l'interface Web. Rien sur la démonstration de fonctionnement du robotino que vous devez implanter. Il va falloir diantrement accélérer !&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P40 [[IMA4 2018/2019 P40|RFID/NFC]]&lt;br /&gt;
| L'objectif est clairement explicité et dans un français très correct. Desc concurrents peu pertinents et une analyse trop hâtive des dits concurrents. La réponse sur la question de la difficulté du projet n'est pas convaincante. &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;Votre application de contrôle du robotino par smartphone se devra d'être irréprochable pour constituer un projet IMA4&amp;lt;/font&amp;gt;.&lt;br /&gt;
| Attention, tout votre projet repose sur la validité des lecteur RFID commandés. Si ces lecteurs ne sont pas utilisables votre projet tombe à l'eau. Vous avez étudié la compatibilité des lecteurs avec les robotino ?&lt;br /&gt;
|&lt;br /&gt;
| Vous semblez avoir avancé dans votre projet mais vos dernières entrées dans le Wiki sont trop courtes pour permettre de juger. Etoffez votre Wiki en décrivant mieux cette application (copies d'écrans). Je ne vois aucune trace de la partie de connexion IP automatique via NFC au robotino ?&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P42 [[IMA4 2018/2019 P42|Coupe de robotique des écoles primaires]]&lt;br /&gt;
| &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Beaucoup trop de coquilles&amp;lt;/font&amp;gt;. Objectifs très clairement précisés. Analyse des concurrents et réponse lapidaires. Le fait que vous ne respectiez pas le cahier des charges imposé aux enfants est problématique. &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Une liste précise des tâches a effectuer. Un calendrier prévisionnel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| Bel effort de liste de matériel. Quelques composants chez des fournisseurs non agréés. &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Liste sur la page principale&amp;lt;/font&amp;gt;.&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Wiki plus que correct qui donne bien une idée de la progression.&amp;lt;/font&amp;gt; Tentez d'appeler Robotshop pour savoir ce qu'est devenue la commande. Il faut aussi que vous vous penchiez sur le PCB de commande des LED et servo-moteurs de la piste.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P44 [[IMA4 2018/2019 P44|Clônes améliorés des modules ARDUINO]]&lt;br /&gt;
| Restriction du sujet à la conception et réalisation d'une seule carte, ce qui est, ma foi, prudent. Bonne description de &amp;quot;concurrents&amp;quot;. Des coquilles mais sans plus. Ne mettez pas d'espace ou d'accents dans les noms des fichiers téléchargés. Scénario d'usage acceptable. Clairement vous avez déjà pas mal réfléchi à votre carte. &lt;br /&gt;
| Une liste de matériel mais sans lien vers le composant chez un fournisseur agréé.&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Rien. Votre travail n'est pas évaluable. Votre projet est en péril.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P45 [[IMA4 2018/2019 P45|Sac à main ou sac à dos solaire]]&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Wiki très bien illustré, rédaction assez correcte (quelques coquilles)&amp;lt;/font&amp;gt;. Bonne description de concurrents, scénario d'usage convenable. Réponses un peu rapides aux questions &amp;quot;difficiles&amp;quot;&lt;br /&gt;
| Une liste de composants qui parait encore bien préliminaire. Aucun lien sur les composants chez les fournisseurs.&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;Vous avez posé quelques réflexions dans votre Wiki. Cependant aucune trace de réalisation. Une liste de matériel exploitable trop tardive.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P46 [[IMA4 2018/2019 P46|Kit Robot]]&lt;br /&gt;
| PLutôt bien rédigé malgré quelques coquilles. Objectifs bien fixés. Concurrents décrits en détail (un peu de synthèse n'aurait pas fait de mal). &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Scénario d'usage très correct&amp;lt;/font&amp;gt;. &lt;br /&gt;
| Un liste de composants bien avancée. &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Des liens vers les fournisseurs. Matériels sur la page principale.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| Le Wiki est correct. Vous semblez avoir terminé la phase de conception même s'il manque les informations sur le PCB. Disons que je serais rassuré quand vous aurez découpé les pièces du chassis et fait réaliser la carte électronique. En une phrase : il est plus que temps d'avoir des résultats tangibles !&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P57 [[IMA4 2018/2019 P57|Mise à jour over the air]]&lt;br /&gt;
| Bon cahier des charges qui répond aux questions que l'on pourrait se poser à la lecture du reste de la page. Quelle différence entre votre solution et Dualoptiboot du coup ? Dualoptiboot ne comprend pas la partie matérielle ? Allez-vous l'utiliser ? Un scénario d'usage bien rapide. La réponse semble à coté de la question, il semble que vous répondez à la question &amp;quot;comment vérifier une somme de contrôle avant de flasher la mémoire programme ?&amp;quot;. Comment allez vous gérer la clef de chiffrement ? Elle est figée dans l'amorceur ? Je crois comprendre en fin de page que vous voulez fixer une clef par capteur, cela casse le principe de la mise à jour par diffusion radio, non ?&lt;br /&gt;
| Une première liste de matériel sans lien vers les sites des fournisseurs agréés.&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;N'utilisez pas le mode &amp;quot;code&amp;quot; de mediawiki pour distinguer une ligne. Cinq semaines pour router une carte ? Au minimum donnez les problèmes rencontrés et les résultats obtenus. Dans l'état de vacuité de votre Wiki, il est légitime de douter de la validation du projet.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P63 [[IMA4 2018/2019 P63|Etude de la consommation d'un capteur de pollution]]&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Une partie analyse tout à fait correcte. La liste des tâches à effectuer est détaillée et claire&amp;lt;/font&amp;gt;.&lt;br /&gt;
| Une liste de matériel avec des liens vers des fournisseurs. Par contre les fournisseurs choisis ne sont pas forcément utilisables.&lt;br /&gt;
|&lt;br /&gt;
| Il y a comme un trou entre la semaine 3 et la semaine 7 ? Un problème de légende et de figure. &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Wiki acceptable.&amp;lt;/font&amp;gt; &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;Les cartes doivent être vérifiées et réalisées de toute urgence.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P70 [[IMA4 2018/2019 P70|Impact du matériel et du logiciel sur le rayonnement électromagnétique]]&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Rédaction très correcte. Une partie analyse tout à fait correcte. La liste des tâches à effectuer est détaillée et claire.&amp;lt;/font&amp;gt;&lt;br /&gt;
| Une liste de matériels très embryonnaire et sans lien exploitable.&lt;br /&gt;
|&lt;br /&gt;
| Le Wiki n'est pas à jour et ne permet pas de se faire une idée du travail des deux dernières semaines. Rien à redire sur le travail antérieur.&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P72 [[IMA4 2018/2019 P72|Mesure du courant simple]]&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Rédaction correcte. Wiki bien illustré. Une partie analyse correcte.&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Une liste de matériel bien avancée avec des liens exploitables.&amp;lt;/font&amp;gt; Recopiez les liens sur la page principale.&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Wiki très correct. Bien illustré. Il manque le schematic de la carte, vous l'avez réalisé n'est-ce pas ?&amp;lt;/font&amp;gt; &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;Vous devriez déjà avoir routé et réalisé votre carte.&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| P73 [[IMA4 2018/2019 P73|Ecriture automatique de partition musicale]]&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Rédaction très correcte. Une partie analyse tout à fait correcte. La liste des tâches à effectuer est détaillée et claire. Un calendrier prévisionnel.&amp;lt;/font&amp;gt;&lt;br /&gt;
| Une tentative de liste de matériel qui ne pourra effectivement être finalisé qu'après discussions avec un électronicien.&lt;br /&gt;
|&lt;br /&gt;
| &amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Wiki très correct. Bien illustré.&amp;lt;/font&amp;gt; Par contre vous semblez marquer le pas sur ces deux dernières semaines alors qu'il s'agirait, au contraire, de mettre un coup d'accélerateur. &amp;lt;font color=&amp;quot;orange&amp;quot;&amp;gt;Routez cette carte, il est plus que temps !&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Présence ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Projet !! Elèves !! 10/12/2018 !! 16/01/2019 !! 23/01/2019 !! 30/01/2019 !! 06/02/2019 !! 13/02/2019 !! 27/02/2019 !! 06/03/2019 !! 13/03/2019 !! 20/03/2019 !! 27/03/2019&lt;br /&gt;
|-&lt;br /&gt;
| P9 [[IMA4 2018/2019 P9|Spider and I]]&lt;br /&gt;
| Nestor Martinez / Lina Mejbar&lt;br /&gt;
| OK&lt;br /&gt;
| E305&lt;br /&gt;
| E305&lt;br /&gt;
| E305&lt;br /&gt;
| E304&lt;br /&gt;
| A208&lt;br /&gt;
| E304&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| E304&lt;br /&gt;
|-&lt;br /&gt;
| P10 [[IMA4 2018/2019 P10|Capteur de niveau d'eau et de pollution]]&lt;br /&gt;
| Antoine Branquart&lt;br /&gt;
| Absent (certificat médical)&lt;br /&gt;
| E305&lt;br /&gt;
| E305&lt;br /&gt;
| E301&lt;br /&gt;
| Absent (certificat médical)&lt;br /&gt;
| E301&lt;br /&gt;
| E303&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présent&amp;lt;/font&amp;gt;&lt;br /&gt;
| &amp;lt;font color=&amp;quot;blue&amp;quot;&amp;gt;Excusé (malade)&amp;lt;/font&amp;gt;&lt;br /&gt;
| C201&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présent&amp;lt;/font&amp;gt;&lt;br /&gt;
|C201&lt;br /&gt;
|C201&lt;br /&gt;
|-&lt;br /&gt;
| P12 [[IMA4 2018/2019 P12|Recyclage plastique imprimante 3D]]&lt;br /&gt;
| Corentin Danjou / Pol Mulon&lt;br /&gt;
| OK&lt;br /&gt;
| E305&lt;br /&gt;
| E305&lt;br /&gt;
| E301&lt;br /&gt;
| E304/E301&lt;br /&gt;
| E301&lt;br /&gt;
| E303&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| E303&lt;br /&gt;
| E303&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| E304 / C201&lt;br /&gt;
| Fabricarium / C201&lt;br /&gt;
|-&lt;br /&gt;
| P13 [[IMA4 2018/2019 P13|Emetteur / Récepteur analogique en bande 5725-5875 MHz]]&lt;br /&gt;
| Arthur Reviron&lt;br /&gt;
| Absent&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présent&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
| C201&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présent&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P14 [[IMA4 2018/2019 P14|Voiture autonome en modèle réduit]]&lt;br /&gt;
| Hugo Dejaegher / Brandon Elemva&lt;br /&gt;
| OK&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306 + Fabricarium&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| E306&lt;br /&gt;
|-&lt;br /&gt;
| P22 [[IMA4 2018/2019 P22|Secure And Verified Public Announcements through Blockchain]]&lt;br /&gt;
| Arezki Ait Mouheb&lt;br /&gt;
| OK&lt;br /&gt;
| E306&lt;br /&gt;
| E305&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présent&amp;lt;/font&amp;gt;&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présent&amp;lt;/font&amp;gt;&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
|-&lt;br /&gt;
| P26 [[IMA4 2018/2019 P26|Discussion pair à pair]]&lt;br /&gt;
| Fabien Di Natale / Ibrahim Ben Dhiab&lt;br /&gt;
| OK&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
|-&lt;br /&gt;
| P28 [[IMA4 2018/2019 P28|Affichage à billes]]&lt;br /&gt;
| Flora Dziedzic / Martin Michel &lt;br /&gt;
| OK&lt;br /&gt;
| Fabricarium&lt;br /&gt;
| E305&lt;br /&gt;
| Fabricarium&lt;br /&gt;
| Fabricarium&lt;br /&gt;
| A311&lt;br /&gt;
| Fabricarium&lt;br /&gt;
| Fabricarium&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| Fabricarium&lt;br /&gt;
| Fabricarium&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| Fabricarium&lt;br /&gt;
|-&lt;br /&gt;
| P30 [[IMA4 2018/2019 P30|Système minimal de gestion de conteneurs]]&lt;br /&gt;
| Hind Malti&lt;br /&gt;
| OK&lt;br /&gt;
|E304&lt;br /&gt;
|E304&lt;br /&gt;
|E304&lt;br /&gt;
|E304&lt;br /&gt;
|E303&lt;br /&gt;
|E306&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présente&amp;lt;/font&amp;gt;&lt;br /&gt;
|E306&lt;br /&gt;
|E306&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
|E306&lt;br /&gt;
|E306&lt;br /&gt;
|-&lt;br /&gt;
| P31 [[IMA4 2018/2019 P31|Robot hexapode de mesure de RSSI WiFi]]&lt;br /&gt;
| Rémi Foucault / Hugo Velly&lt;br /&gt;
| OK&lt;br /&gt;
|E304&lt;br /&gt;
|E304&lt;br /&gt;
|E304 / Fabricarium&lt;br /&gt;
|E304 / Fabricarium&lt;br /&gt;
|E304&lt;br /&gt;
|E303&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
|E303&lt;br /&gt;
|E303&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
|E303/C202-bis&lt;br /&gt;
|E304&lt;br /&gt;
|-&lt;br /&gt;
| P32 [[IMA4 2018/2019 P32|Robe augmentée]]&lt;br /&gt;
| Brinda Muzakare / Yan Xuelu&lt;br /&gt;
| OK&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présentes&amp;lt;/font&amp;gt;&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présentes&amp;lt;/font&amp;gt;&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
|-&lt;br /&gt;
| P33 [[IMA4 2018/2019 P33|Collier à animations lumineuses]]&lt;br /&gt;
| Loris Ahouassou&lt;br /&gt;
| OK&lt;br /&gt;
| E306&lt;br /&gt;
| E305&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| C201&lt;br /&gt;
| E304&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présent&amp;lt;/font&amp;gt;&lt;br /&gt;
| E304&lt;br /&gt;
| &lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Absent&amp;lt;/font&amp;gt;&lt;br /&gt;
| E304&lt;br /&gt;
|-&lt;br /&gt;
| P35 [[IMA4 2018/2019 P35|Machine Learning pour navigation autonome de robots mobiles]]&lt;br /&gt;
| Wenjing Chen / Puyuan Lin&lt;br /&gt;
| OK&lt;br /&gt;
| E304&lt;br /&gt;
| E305&lt;br /&gt;
| C304&lt;br /&gt;
| C102&lt;br /&gt;
| C304&lt;br /&gt;
| C304&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Absents&amp;lt;/font&amp;gt;&lt;br /&gt;
| C002&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| C002&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P37 [[IMA4 2018/2019 P37|Station de recharge intelligente pour robot mobile]]&lt;br /&gt;
| Guillaume Declerck / Pierre Guigo&lt;br /&gt;
| OK&lt;br /&gt;
| E305&lt;br /&gt;
| E305&lt;br /&gt;
| E301&lt;br /&gt;
| E303&lt;br /&gt;
| E301&lt;br /&gt;
| E303&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Pierre Guigo présent&amp;lt;/font&amp;gt;&lt;br /&gt;
&amp;lt;font color=&amp;quot;red&amp;quot;&amp;gt;Guillaume Declerck absent&amp;lt;/font&amp;gt;&lt;br /&gt;
| E303 &amp;amp; C201&lt;br /&gt;
| C201 &amp;amp; E303&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
|&lt;br /&gt;
|C203&lt;br /&gt;
|-&lt;br /&gt;
| P38 [[IMA4 2018/2019 P38|Interface Graphique pour Robotino 2 Upgradé]]&lt;br /&gt;
| François Brassart / Jérôme Haon&lt;br /&gt;
| OK&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E303&lt;br /&gt;
| E304&lt;br /&gt;
| E305&lt;br /&gt;
| E304&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
|C304&lt;br /&gt;
|C304&lt;br /&gt;
|-&lt;br /&gt;
| P40 [[IMA4 2018/2019 P40|RFID/NFC]]&lt;br /&gt;
| Jean De Dieu Nduwamungu / Xinwei Hu&lt;br /&gt;
| OK&lt;br /&gt;
| E305&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
|-&lt;br /&gt;
| P42 [[IMA4 2018/2019 P42|Coupe de robotique des écoles primaires]]&lt;br /&gt;
| Pierre Frison / Thibault Lepoivre&lt;br /&gt;
| OK&lt;br /&gt;
| E305&lt;br /&gt;
| E305&lt;br /&gt;
| E304&lt;br /&gt;
| Fabricarium&lt;br /&gt;
| E301(fab fermé)&lt;br /&gt;
| Fabricarium&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| Fabricarium&lt;br /&gt;
| Fab et C201&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| Fabricarium&lt;br /&gt;
| E303 (Lepoivre) / frison absent(malade)&lt;br /&gt;
|-&lt;br /&gt;
| P44 [[IMA4 2018/2019 P44|Clônes améliorés des modules ARDUINO]]&lt;br /&gt;
| Théau Moinat&lt;br /&gt;
| OK&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
|&lt;br /&gt;
| C201&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présent&amp;lt;/font&amp;gt;&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présent&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P45 [[IMA4 2018/2019 P45|Sac à main ou sac à dos solaire]]&lt;br /&gt;
| Mathis Dupré&lt;br /&gt;
| OK&lt;br /&gt;
| E305&lt;br /&gt;
| E305&lt;br /&gt;
| E301&lt;br /&gt;
| E304&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présent&amp;lt;/font&amp;gt;&lt;br /&gt;
| E306&lt;br /&gt;
| E306&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présent&amp;lt;/font&amp;gt;&lt;br /&gt;
| C201&lt;br /&gt;
|-&lt;br /&gt;
| P46 [[IMA4 2018/2019 P46|Kit Robot]]&lt;br /&gt;
| Valentin Pitre / Gaëlle Bernard&lt;br /&gt;
| OK&lt;br /&gt;
| E304&lt;br /&gt;
| E305&lt;br /&gt;
| E303&lt;br /&gt;
| E304&lt;br /&gt;
| A208&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| E304&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| E304&lt;br /&gt;
| C202&lt;br /&gt;
|-&lt;br /&gt;
| P57 [[IMA4 2018/2019 P57|Mise à jour over the air]]&lt;br /&gt;
| Florent Leroy&lt;br /&gt;
| OK&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présent&amp;lt;/font&amp;gt;&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présent&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| P63 [[IMA4 2018/2019 P63|Etude de la consommation d'un capteur de pollution]]&lt;br /&gt;
| Victor Lorthios / Juliette Obled&lt;br /&gt;
| OK&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201+E303&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| E303&lt;br /&gt;
| C201&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
|-&lt;br /&gt;
| P70 [[IMA4 2018/2019 P70|Impact du matériel et du logiciel sur le rayonnement électromagnétique]]&lt;br /&gt;
| Antoine Moreau / Souheib Khinache&lt;br /&gt;
| OK&lt;br /&gt;
| E305&lt;br /&gt;
| E305&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
| E304&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| E304&lt;br /&gt;
| Fabricarium&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| Fabricarium&lt;br /&gt;
| E304&lt;br /&gt;
|-&lt;br /&gt;
| P72 [[IMA4 2018/2019 P72|Mesure du courant simple]]&lt;br /&gt;
| Raphaël Martin&lt;br /&gt;
| OK&lt;br /&gt;
| E305&lt;br /&gt;
| E305&lt;br /&gt;
| E301&lt;br /&gt;
| E303&lt;br /&gt;
| E303&lt;br /&gt;
| E303&lt;br /&gt;
| E303&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présent&amp;lt;/font&amp;gt;&lt;br /&gt;
| E303&lt;br /&gt;
| E303&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présent&amp;lt;/font&amp;gt;&lt;br /&gt;
| E303&lt;br /&gt;
|-&lt;br /&gt;
| P73 [[IMA4 2018/2019 P73|Ecriture automatique de partition musicale]]&lt;br /&gt;
| Hugo Leurent / Fabien Ronckier&lt;br /&gt;
| OK&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
&amp;lt;font color=&amp;quot;green&amp;quot;&amp;gt;Présents&amp;lt;/font&amp;gt;&lt;br /&gt;
| C201&lt;br /&gt;
| C201&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Amoreau</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=71814</id>
		<title>IMA4 2018/2019 P70</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=71814"/>
				<updated>2019-03-27T14:20:19Z</updated>
		
		<summary type="html">&lt;p&gt;Amoreau : /* Première prise en main du logiciel GNURADIO */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;font-size: 30px; width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;Impact du matériel et du logiciel sur le champ électromagnétique&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Projet'''&amp;lt;/ins&amp;gt; : Impact du matériel et du logiciel sur le rayonnement électromagnétique&lt;br /&gt;
&lt;br /&gt;
''Nous proposons d'évaluer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et la consommation électrique.''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Etudiants'''&amp;lt;/ins&amp;gt; : Souheib KHINACHE et Antoine MOREAU&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Encadrants'''&amp;lt;/ins&amp;gt; : Alexandre BOE, Xavier REDON et Thomas VANTROYS&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'internet des objets est un marché en plein essor. La communication entre les différents objets connectés crée un nuage de signaux autour d'eux. Ces derniers sont vus par les utilisateurs comme des boîtes noires : le fonctionnement se fait sans en connaître les composants matériels et logiciels. &lt;br /&gt;
Néanmoins, ces objets, de par leurs propriétés électroniques, créent des fuites électromagnétiques impactant le champ environnant. &lt;br /&gt;
&lt;br /&gt;
Bien qu'ils peuvent porter à débat sur l'impact sur la santé, ces signaux peuvent représenter de réelles sources d'informations sur l'aspect matériel et applicatif de l'objet.&lt;br /&gt;
&lt;br /&gt;
Il serait donc intéressant d'avoir idée générale sur le fonctionnement du système en interprétant les ondes électromagnétiques émises par ce système.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Les principaux objectifs de ce projet seront donc de mesurer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et sur la consommation électrique.&lt;br /&gt;
Pour cela, l'outil potentiel avec lequel nous pourrions travailler serait une sonde de champ électromagnétique afin d'établir des mesures. &lt;br /&gt;
Cependant, nous pourrions concevoir notre propre système de capture et d'interprétation à partir d'une antenne, de filtres de fréquences et d'un microcontrôleur (on commencera par un ATMega328P). Il sera nécessaire de prendre en compte les perturbations issues de notre appareil de mesure et d'en tenir compte.&lt;br /&gt;
&lt;br /&gt;
On effectuera ainsi plusieurs expérimentations sur différents supports d'étude :&lt;br /&gt;
*l'aspect &amp;quot;Hardware&amp;quot; en étudiant différents modèles pour un même type de shield  &lt;br /&gt;
*l'aspect calculatoire du matériel en se basant sur l'impact des microcontrôleurs en fonction du modèle (ATMega328P et ATMega2560)&lt;br /&gt;
*l'aspect &amp;quot;Software&amp;quot;, en étudiant l'impact du logiciel et du firmware d'un même composant (différents firmwares pour un même shield Wi-Fi)&lt;br /&gt;
*l'aspect puissance des composants électroniques de gestion de puissance (ponts, hacheurs, onduleurs...).&lt;br /&gt;
&lt;br /&gt;
L'étude des différentes informations se fera par traitement des signaux électromagnétiques et des spectres. &lt;br /&gt;
Afin de mieux appréhender le problème, il nous est nécessaire de comprendre les phénomènes physiques issus de la notion d'électromagnétisme.&lt;br /&gt;
&lt;br /&gt;
Ces études mèneront à une étape plus complexe : l'interprétation des signaux. En effet, l'un des objectifs de ce projet est de comprendre du mieux possible le fonctionnement d'un système sans y avoir accès directement, et donc dans ce contexte &amp;quot;traduire&amp;quot; un ensemble de signaux électromagnétiques.&lt;br /&gt;
&lt;br /&gt;
On pourra en outre apporter un aspect visuel à l'étude en rajoutant une interface informatique.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
Bien qu'aux yeux de nombreuses personnes le bruit électromagnétique créé par les équipements électroniques du quotidien peut porter à controverse (débats concernant l'impact sur la santé par exemple), il peut être une source d'informations. &lt;br /&gt;
De nos jours, les ondes électromagnétiques restent un vaste champ d'étude, sujettes à de nombreuses thèses et recherches au sein des laboratoires.&lt;br /&gt;
&lt;br /&gt;
On peut prendre l'exemple de [https://www.eurekalert.org/pub_releases/2015-01/giot-rwt010715.php Milos Prvulovic], professeur à l'Institut Technologique de Géorgie, ayant simulé un contexte de cybercafé, dans lequel il place une antenne magnétique, un ordinateur portable cible et un ordinateur &amp;quot;espion&amp;quot;. Il réussit, grâce aux signaux EM émis par l'impulsion de l'appui des touches clavier à capter un message écrit par un ordinateur cible. &lt;br /&gt;
&lt;br /&gt;
Néanmoins, dans le quotidien, l'utilisation des sondes électromagnétiques se fait pour l'étude énergétique d'un système électronique (fuites électromagnétiques anormales, preuves d'une anomalie...) afin de respecter certaines normes législatives. Le code du travail par exemple réglemente et définit des valeurs seuils par le biais des articles R. 4453-3 et R. 4453-4.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
'''NBM-520 de NARDA STS'''&lt;br /&gt;
[[Fichier: NBM_TS.png|thumb|300px|NBM-TS, application des appareils NBM]]&lt;br /&gt;
NARDA STS est une entreprise qui fournit des outils de mesure. Elle met à disposition aux professionnels des sondes électromagnétiques.&lt;br /&gt;
La NBM-520 est un appareil de la franchise, mesurant le champ électrique et magnétique. Elle donne des valeurs précises du champ électromagnétique ambiant sur une large bande. Elle propose différentes sondes modulables permettant une souplesse au niveau de l'étude en fonction des besoins, avec des sondes pouvant étudier des signaux de fréquence de 100kHz à 6GHz ou même de 300kHz à 50GHz (en fonction de la sonde choisie).&lt;br /&gt;
&lt;br /&gt;
En outre, le dispositif peut se connecter en USB sur PC afin d'envoyer les données capturées et d'en faire une étude. Le dispositif propose un logiciel d'étude, NBM-TS, permettant d'observer du champ en fonction du temps, de la fréquence, de la position...&lt;br /&gt;
&lt;br /&gt;
L'équipement est utilisé par l'ANF (l'Agence Nationale des Fréquences, agence gérant l'ensemble des normes autour des radiofréquences), et est donc un gage de qualité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Avantages :''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Large bande de fréquence&lt;br /&gt;
* Matériel solide&lt;br /&gt;
* Application fonctionnelle permettant l'étude et gestion des données&lt;br /&gt;
* Possibilité d'étudier séparément champ électrique et magnétique&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Inconvénients:''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Impossible d'étudier les basses fréquences (appareils sous tension, bobinages...)&lt;br /&gt;
* Prix élevé : à partir de 3100€&lt;br /&gt;
* La cible de ce produit est surtout les professionels&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
'''Une pita.'''&lt;br /&gt;
&lt;br /&gt;
''Comment mon pain à pita vole ta clé RSA ?''&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Pita.jpg|200px|thumb|left|Une pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Des chercheurs israéliens ont découvert un moyen de capturer des clés de cryptage RSA, réputées comme inviolables, par le biais d'une pita... du moins avec un dispositif suffisamment petit pour être caché dans un pain à pita. &lt;br /&gt;
Le dispositif, renommé PITA pour Portable Instrument for Trace Acquisition a la particularité de capturer les ondes radio électromagnétiques émanantes d'un PC, qu'il soit connecté à un réseau ou pas.&lt;br /&gt;
Les différentes opérations du processeur sont identifiées en distinguant les différents modèles de l'activité radio sur le spectre EM.&lt;br /&gt;
&lt;br /&gt;
Bien que la capture des clés RSA a été faite dans des conditions particulières (modification du processeur de l'ordinateur cible), il est néanmoins possible, selon les chercheurs, d'identifier quelle type d'activité est exercée par l'ordinateur ainsi que son état.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PITA.jpg|300px|thumb|right|Un dessous de pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'un des points importants concernant le dispositif est son coût : moins de 300 euros.&lt;br /&gt;
L'appareil dispose :&lt;br /&gt;
* d'un PC portatif (PC-on-a-stick) ''Rikomagic MK802 IV'',&lt;br /&gt;
* d'un recepteur radio SDR ''FUNcube Dongle Pro+''&lt;br /&gt;
* d'une antenne radio&lt;br /&gt;
* d'une batterie&lt;br /&gt;
* d'une antenne WiFi&lt;br /&gt;
* d'une carte MicroSD&lt;br /&gt;
* d'un adapteur d'antenne&lt;br /&gt;
* et d'une '''pita'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le dispositif aurait une portée de 50cm. &lt;br /&gt;
Les chercheurs israéliens ont collaboré avec GNU Private Guard (logiciel de cryptage asymétrique) afin de protéger contre ces attaques les clés de cryptage.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
&lt;br /&gt;
''Scénario 1''&lt;br /&gt;
&lt;br /&gt;
Gérard a toujours le flair pour les bonnes affaires. Il a acheté une centaine de clés WiFi à un prix dérisoire sur AloXpresso afin de faire du profit à la revente. Le vendeur lui garantit que toutes les clés fonctionnent correctement. Gérard veut vérifier. Après vérification, 99 des clés sur 100 fonctionnent comme prévu. Gérard aimerait être sûr du disfonctionnement, mais Gérard n'est pas une pointure en informatique. &lt;br /&gt;
&lt;br /&gt;
Coup de génie ! Il se rappelle qu'il dispose d'un dispositif qui capte les ondes EM et les interprète directement. C'est le moment de tester ça. Il remarque une anomalie sur le spectre.&lt;br /&gt;
Il décide de contacter le revendeur pour lui signaler un disfonctionnement sur l'une des clé. &lt;br /&gt;
Pas de soucis. Le vendeur, étant bon prince, lui envoie une autre clé USB et lui fait une ristourne.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Scénario 2''&lt;br /&gt;
&lt;br /&gt;
La police fait une perquisition chez un individu soupçonné de graves délits. Cela fait plusieurs mois que la brigade criminelle prépare l'intervention, et une fois sur les lieux ils arrêtent le soupçonné malfaiteur.&lt;br /&gt;
Cependant avant de repartir, elle veut faire l'acquisition d'un maximum de preuves. Elle veut alors prendre l'essentiel des objets, dont certains objets éléctroniques connectés de l'individu dont elle pourra extraire les informations qui serviront à le faire tomber.&lt;br /&gt;
&lt;br /&gt;
Par chance, elle dispose d'un petit outil qui scannera les signatures alentours des objets connectés, comme des téléphones cachés, clés USB wifi dissimulées dans le décor etc..&lt;br /&gt;
Et si le suspect avait modifié malignement un objet connecté banal pour l'utiliser autrement à ses fins, la police le découvrirait car elle possède une base de données de toutes les signatures spectrales des objets connectés sur le marché et celle de l'objet modifié ne collerait pas avec celle de la base de données.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
&lt;br /&gt;
'''Comment étudier les signaux malgré les perturbations électromagnétiques ambiants et les faibles signaux des µC ?'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les signaux électromagnétiques des microcontrôleurs ou d'autres composants peuvent être faibles. Il y a une possibilité pour palier à ce problème, c'est de capter les signaux depuis une antenne émettrice que l'on rajoute à l'objet d'étude. &lt;br /&gt;
Nous utiliserons un SDR (Software Defined-Radio) afin de capter les ondes radio et les étudier directement sur PC. Le filtrage s'effectuera ainsi de manière numérique. Plusieurs tests seront effectués pour le même objet à étudier (quand on parle d'objet, on évoque un ensemble de plusieurs composants, comme par exemple une alimentation, un micro-contrôleur et une antenne). Ainsi, de manière statistique, nous pourrons en déduire un pattern récurrent pour chaque expérience en les effectuant dans différents environnements (pourquoi pas une chambre anachoïque). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons &lt;br /&gt;
* Capter le signal émis par un objet connecté le plus précisément possible&lt;br /&gt;
&lt;br /&gt;
* Concevoir nos propres objets connectés tous différents mais basés sur un même modèle&lt;br /&gt;
&lt;br /&gt;
* Interpréter les spectrogrammes, faire une étude statistique des signaux émis par nos différents objets et en tirer des conclusions&lt;br /&gt;
&lt;br /&gt;
* Répertorier dans une base de données les signatures de nos objets , voire de quelques objets disponibles sur le marché&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix logiciel :&lt;br /&gt;
&lt;br /&gt;
- La distribution Linux Pentoo ou Kali pour traiter les signaux avec GNU RADIO (Suite logicielle dédiée à l’implémentation de radios logicielles et de systèmes de traitement du signal).&lt;br /&gt;
&lt;br /&gt;
- FemtoOS pour l'OS des ATMEGA328P et ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix Matériel : &lt;br /&gt;
&lt;br /&gt;
- Plusieurs modules radios émetteurs &lt;br /&gt;
&lt;br /&gt;
- Plusieurs microcontrôleurs ATMEGA328P et un ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
- Des alimentations identiques pour chaque PCB&lt;br /&gt;
&lt;br /&gt;
- Un HackRF pour la réception des signaux&lt;br /&gt;
&lt;br /&gt;
- Une antenne 50 Ohm pour le HackRF [https://www.passion-radio.fr/accessoires-sdr/antenne-ant500-74.html]&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous devons préparer tout le matériel qui servira à faire nos tests. C'est à dire concevoir :&lt;br /&gt;
&lt;br /&gt;
- Un ensemble SDR/PC qui traitera le signal reçu avec GNU RADIO.&lt;br /&gt;
&lt;br /&gt;
- Une multitude de PCB qui seront nos objets connectés (Sur chacun d'entre eux on trouvera au minimum une antenne radio, un microcontrôleur et une alimentation)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de récupérer une &amp;quot;signature&amp;quot; d'un de nos objets , il faudra faire plus de 50 analyses spectrales pour conclure statistiquement sur une bonne signature qui caractérisera l'objet.&lt;br /&gt;
&lt;br /&gt;
Nous devons donc dans un second temps: &lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques mais qui ont un '''firmware''' différent.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques qui ont pour seule différence le '''microcontrôleur'''.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques dont seul le '''PCB''' diffère.&lt;br /&gt;
&lt;br /&gt;
Grâce à tous ces tests , nous pourrons conclure et voir l'impact qu'à le matériel ou le logiciel sur la signature d'un objet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enfin si les délais nous le permettent, nous pourrons réaliser un software qui cartographiera nos objets connectés dans la pièce grâce à la puissance de la signature reçue (Ce qui devrait être réalisable puisqu'à ce stade nous aurons une base de donnée des signatures).&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
|3&lt;br /&gt;
|8&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Recherches&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|6&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Prise en main de GnuRadio&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Configuration Xbee&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|4&lt;br /&gt;
|15&lt;br /&gt;
|9&lt;br /&gt;
|8&lt;br /&gt;
|7&lt;br /&gt;
|8&lt;br /&gt;
|8&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
[[Fichier:HackrfOne.jpeg|200px|thumb|right|Le HackRF One]]&lt;br /&gt;
Durant cette semaine, nous avons continué nos recherches notamment sur le moyen de transmission de nos objets connectés. Nous avons confirmé notre choix de notre SDR : Monsieur Boé nous a confirmé que des HackRF seraient disponibles dans les laboratoires et qu'il pourrait nous en prêter un. On disposera donc d'une antenne puissante pour traiter les signaux émis par nos objets communiquants. &lt;br /&gt;
&lt;br /&gt;
Il faudra coupler notre HackRF avec un logiciel appelé GNU RADIO qui est un logiciel très complet ( Pour information : la NASA a utilisé GNU RADIO afin de rétablir le contact avec une sonde spatiale abandonnée ). Afin de faire tourner ce logiciel libre, nous aurons besoin de la distribution Kali Linux, ex Backtrack.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Choix des émetteurs/récepteurs === &lt;br /&gt;
&lt;br /&gt;
Nous avons décidé que nos objets connectés communiqueront dans deux '''bandes de fréquences ISM''', l'une à '''900 MHz''' grâce à des modules Digi Xbee et l'autre à '''2,4 GHz''' par le moyen de modules émetteurs Bluetooth. On rappellera que les Digi Xbee et les émetteurs/récepteurs Bluetooth seront pilotés par des ATMEGA 2560.&lt;br /&gt;
&lt;br /&gt;
Les Xbee ne communiqueront pas entre eux et émettront en continu les mêmes données car ils le peuvent, alors que les émetteurs/récepteurs Bluetooth devront s'échanger des données si on veut pouvoir observer un quelconque signal autour de la fréquence de leurs porteuses. &lt;br /&gt;
&lt;br /&gt;
On voudra observer premièrement, si avec deux objets dans les '''mêmes''' conditions (donc même µc et même émetteur), on peut ou non '''distinguer une différence'''. Ceci est fondamental pour la suite des expériences, puisque si les deux émettent à la même fréquence, on pourra faire varier plusieurs paramètres afin de trouver '''des clés''' (des signes) qui pourraient aider à l'identification du matériel.&lt;br /&gt;
&lt;br /&gt;
Ces clés représentent différents facteurs potentiels d'identification du signal (le rapport signal-bruit en fonction de la distance par exemple...).&lt;br /&gt;
&lt;br /&gt;
''On planifie alors pour la semaine suivante de réussir à faire émettre, en utilisant simplement des breadboards pour commencer, nos Xbee et modules BT et observer quelque chose grâce à notre SDR.''&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration des modules XBee ===&lt;br /&gt;
&lt;br /&gt;
Nous avons configuré deux XBee afin qu'ils puissent communiquer entre eux : &lt;br /&gt;
&lt;br /&gt;
Les modules XBee ont été montés sur des platines d'interface USB/série de manière à ce qu'on puisse les paramétrer via le programme de contrôle ''minicom''. &lt;br /&gt;
&lt;br /&gt;
Dans le doute, on supposera que les XBee communiquent à 9600 Baud. On exécute la commande suivante : &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;minicom -b 9600 -D /dev/ttyUSB0&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
On active l'echo local dans minicom, afin de pouvoir observer ce qui a été envoyé par liaison série au XBee ('''CTRL+A''' puis '''E''').&lt;br /&gt;
&lt;br /&gt;
Pour commencer le paramètrage il faut taper ''' +++ ''' rapidement. Le XBee nous répond OK, cela veut dire que nous sommes dans le mode configuration et que nous pouvons utiliser les commandes '''AT'''. (Redirection vers la liste des commandes AT XBee [https://cdn.sparkfun.com/assets/resources/2/9/22AT_Commands.pdf]).&lt;br /&gt;
&lt;br /&gt;
Comme nos XBee ont été utilisés auparavant, il a fallu les restaurer à l'état usine avec la commande '''ATRE'''.&lt;br /&gt;
&lt;br /&gt;
Si on souhaite que des XBee puissent s'envoyer des données il faut qu'ils soient sur le même canal (commande '''ATCH''') et aient le même PAN ID (commande '''ATID'''). Notre PAN ID sera '''BEE6''' et le canal sera celui par défaut '''C'''.&lt;br /&gt;
&lt;br /&gt;
Ensuite il faut leur donner une adresse de destination ('''ATDH''' &amp;amp; '''ATDL''') qui sera l'adresse broadcast, pour ce faire on entre &lt;br /&gt;
 ATDH=0000&lt;br /&gt;
 ATDL=FFFF&lt;br /&gt;
&lt;br /&gt;
Enfin '''ATMY''' représente l'ID du XBee, notre premier XBee aura comme ID 5000 et le second 5001.&lt;br /&gt;
&lt;br /&gt;
N'oublions pas de sauvegarder les paramètres avec '''ATWR'''.&lt;br /&gt;
&lt;br /&gt;
On vérifie que tout a bien été pris en compte :&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;&lt;br /&gt;
+++OK&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATID&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
BEE6&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
C&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
0&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDL&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
FFFF&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATMY&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
5000&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCN&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Puis on fait de même avec le deuxième XBee (ID 5001).&lt;br /&gt;
&lt;br /&gt;
Voilà, lorsque on envoie des caractères par liaison série sur 5000, la LED '''Tx''' de 5000 s'allume et la Led '''Rx''' de 5001 s'allume elle aussi. Cela signifie que l'envoi de donnée par onde radio s'effectue correctement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que les XBee émettent et reçoivent, on peut commencer les mesures avec notre SDR. Mais avant cela il va falloir bien se familiariser avec le logiciel GNU RADIO qui est assez difficile à prendre en main.&lt;br /&gt;
&lt;br /&gt;
=== Première prise en main du logiciel GNURADIO ===&lt;br /&gt;
&lt;br /&gt;
Installation de GNU radio avec les fonctions + drivers pour HackRF : &lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install gqrx-sdr gnuradio gr-osmosdr hackrf &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le bloc Osmocom Source sert de &amp;quot;passerelle&amp;quot; entre le logiciel et la SDR, il permet de transmettre les informations récupérées par le HackRF afin qu'on puisse les traiter avec d'autres bloc de fonctions.&lt;br /&gt;
&lt;br /&gt;
Si on veut pouvoir récuperer les données il faut passer l'argument ''hackrf=0'' dans la box périphérique du bloc Osmocom.&lt;br /&gt;
&lt;br /&gt;
Ci-dessous on peut voir le spectre environnant entre 2.44GHz et 2.460GHz grâce au bloc WX GUI FFT Sink.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ScreenGnuRadio.png|Interface de GNURadio]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous a permis d'effectuer notre première expérience. L'utilisation des deux Xbees nous a permis d'observer l'impact des Xbee sur le champ électromagéntique environnant.&lt;br /&gt;
&lt;br /&gt;
Si on analyse le spectre environnant grâce au module FFT de GNU Radio, lorsque les Xbee communiquent entre eux, on peut apercevoir un pic caractéristique propre.&lt;br /&gt;
En effet, lors de l'emission d'un message sur le port série, on a un pic qui se dégage du spectre d'amplitude -20dBm. Ce pic est caractéristique au canal de communication choisi et configuré sur le Xbee.&lt;br /&gt;
Néanmoins, le signal est perturbé par le bruit environnant. &lt;br /&gt;
L'expérience étant effectuée au sein de l'école, les signaux Wi-Fi perturberont l'étude.&lt;br /&gt;
Il faut noter que la norme IEEE 802.11 impose au Wi-Fi l'utilisation d'une bande passante s'étalant de 2.4 GHz à 2.5 GHz.&lt;br /&gt;
&lt;br /&gt;
La bande passante des modules Zigbee se décomposent en 16 canaux, allant de 2400 MHz à 2480 MHz par pas de 5 MHz.&lt;br /&gt;
&lt;br /&gt;
Le canal ici utilisé est le canal 13 (3ème canal) de fréquence 2415 MHz.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- [[Fichier:Channel135001.png|thumb|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Fichier:channel135000.png|thumb|none|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBeeCh13.png|Spectre de l'environnement autour du XBee|thumb|none|400 px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:XBeeCh13SND.png|Lors de l'envoi de données au XBee voisin|thumb|none|400 px]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
On peut observer un pic de puissance lors de l'envoi d'une donnée en série à la fréquence 2.415 GHz.&lt;br /&gt;
Il nous est maintenant nécessaire d'analyser de plus près les signaux et leurs fréquence centrale dans la bande perçue au dessus de -20dB.&lt;br /&gt;
&lt;br /&gt;
On réeffectuera une expérience en zone isolée des signaux parasites.&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous avons principalement fait des recherches dans le but de mieux comprendre les signaux émis par le Xbee.&lt;br /&gt;
&lt;br /&gt;
En somme, nous étions confrontés à de nombreuses interrogations. Le fonctionnement du Xbee étant assez simple et la sécurité du protocole Zigbee étant moindre, y a t-il possibilité de démoduler le signal émis afin de développer nos études ?&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&amp;lt;div&amp;gt;&lt;br /&gt;
[[Fichier:Switchchannel pyscript.PNG|upright=0.8|thumb|right|Script Python]]&lt;br /&gt;
&lt;br /&gt;
Après réflexion et consultation de nos encadrants, nous nous sommes rendu compte que la démodulation prévue lors de la semaine 4 n'aiderait pas à répondre à la problématique de notre sujet !  &lt;br /&gt;
&lt;br /&gt;
Afin de mieux visualiser les signaux des Xbee , on décide d'automatiser le processus d'envoi sur le port série des données vers le Xbee. C'est à dire concevoir un programme Python qui automatisera l'envoi de données et le changement de channel à intervalle de temps régulier (Changement toutes les 10 secondes). &lt;br /&gt;
&lt;br /&gt;
L'utilisation de Minicom '''n'était pas du tout la meilleure solution''' pour faire émettre les Xbee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Après quelques essais, on remarque que lorsque le Xbee émet sur le channel 13, il émet à environ 2,445GHz au lieu d'émettre à 2,415GHz soit une différence de 30MHz : Ceci n'est pas important, car ce que l'on souhaite remarquer c'est un éventuel décalage de la fréquence centrale entre deux Xbee différents. Si les deux Xbee n'ont pas la même frequence centrale on pourra conclure que la '''fréquence centrale''' de la porteuse du Xbee n'est pas '''une des clés''' permettant d''''identifier''' cet émetteur/récepteur.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Semaines 6 et 7==&lt;br /&gt;
&lt;br /&gt;
Afin de mieux cerner le comportement électromagnétique des modules XBee, il nous est nécessaire de comprendre leur fonctionnement et le protocole Zigbee.&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous avons cherché à souligner le parallélisme entre étude fréquentielle par le spectre et étude temporelle du signal.&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PlancheXPtest.jpg|thumb|right|Planche prototype]]&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous avons paramétré la fréquence centrale de capture du HackRF. En effet, bien que le HackRF dispose d'une large bande passante, afin de se focaliser sur la porteuse, il est indispensable de configurer le HackRF en conséquence.&lt;br /&gt;
En second lieu, pour éviter une variation du RSSI (Received Signal Strength Indication) et de la puissance du signal, nous devions mettre en place une prototype de &amp;quot;planche expérimentale&amp;quot; sur laquelle devaient être fixés nos différents modules (l'antenne de reception et les Xbees).&lt;br /&gt;
&lt;br /&gt;
La position des antennes les unes par rapport aux autres est fondamentale. Afin d'optimiser la reception, les antennes doivent être parallèles.&lt;br /&gt;
&lt;br /&gt;
Chaque Xbee est identifié par un chiffre (1 ou 2). En effet, l'attribution de ces chiffres sera définitive pour ne pas perturber la cohérence des expériences. &lt;br /&gt;
Leur position est aussi fondamentale. Ainsi, en fonction que le Xbee soit emetteur ou récepteur, il sera disposé différement sur la planche.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Le XBee 1 émetteur directement connecté en série au PC===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:GrapheGNURadio01.png|thumb|left|150px|Schéma simple d'étude fréquentielle et temporelle]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette expérience est la première mettant en place un contexte (un seul Xbee émetteur connecté en série au PC, le deuxième Xbee étant inactif) et nous permettra d'étudier le plus de cas possibles.&lt;br /&gt;
&lt;br /&gt;
Nous avons tout d'abord commencé par un graphe GNURadio simple permettant l'observation du spectre et du signal et la variation de la fréquence d'étude.&lt;br /&gt;
&lt;br /&gt;
Le script python a été réécrit afin que le XBee puisse émettre une chaîne de caractère &amp;quot;HELLO&amp;quot; * 1024. En effet, même si la fréquence de balayage du module HackRF peut être grandement augmentée, il faut éviter d'aller au dessous de 0.01s, finissant par consommer de manière considérable les ressources octroyées par le CPU le cas échéant.&lt;br /&gt;
Le fait d'augmenter la taille de la chaine de caractère permet de mieux synchroniser l'étude en temps réel avec la capture des données.&lt;br /&gt;
&lt;br /&gt;
Nous avons donc émis les données sur le canal 14, soit la fréquence centrale est à 2.420GHz selon la norme Zigbee. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt;Etude fréquentielle&amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
L'étude fréquentielle est similaire à celle réalisée auparavant.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div center&amp;gt;&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[Fichier:Spectrefreq2.png|thumb|center|750px|Spectre fréquentiel au canal 14]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt;[[Fichier:Spectrogram.png|thumb|center|250px|Spectrogramme]]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, on peut observer sur l'analyseur de spectre GNURadio que la fréquence centrale est située 2.450GHz. Nous n'avons pas trouvé la raison mais il s'agit sûrement d'un décalage au niveau applicatif.&lt;br /&gt;
&lt;br /&gt;
D'autre part, l'ensemble des fréquences qui dessinent le spectre s'étalent sur une large bande de fréquence. En effet, cette technique d'étalement appelée DSSS (Direct-Sequence Spread Spectrum) utilisé par les modules XBee permet au signal d'être moins sensible aux interférences et aux brouillages. En outre, même si la puissance du spectre dans sa globalité reste la même, la densité spectrale elle diminue considérablement, rendant le signal plus &amp;quot;discret&amp;quot;.&lt;br /&gt;
La différence de puissance entre le lobe principal et les premiers lobes secondaires sont de 30 dB, ce qui est aussi commun au DSSS.&lt;br /&gt;
&lt;br /&gt;
Le spectrogramme témoigne aussi de l'étalement du signal sur un peu plus de 6 MHz (3MHz de par et d'autre de la fréquence centrale).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;B&amp;gt;&amp;lt;U&amp;gt; Etude temporelle &amp;lt;/U&amp;gt;&amp;lt;/B&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Signal temporel.png|thumb|left|500px|Signal observable centré à 2.450GHz lors de l'émission]]&lt;br /&gt;
&lt;br /&gt;
Le signal ici est séparé en deux composantes car il s'agit d'un signal complexe. Nous avons supposé en premier temps qu'il s'agissait du signal principal décalé de 180°, ce qui n'était pas le cas.&lt;br /&gt;
Après quelques recherches, cette séparation des composantes permet de transmettre deux fois plus de données sur la même bande passante.&lt;br /&gt;
Le signal observable témoigne d'une modulation bien spécifique au XBee. En effet, on peut observer des sauts de phase à différents points, qui correspondent à une modulation par changement de phase (modulation QPSK ou Quadratic Phase-Shift Keying). Ce sont ces sauts de phases qui permettent la transmission des bits.&lt;br /&gt;
Les changements de phase s'il y a se font toutes les µs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé d'enregistrer ces données brutes dans un fichier et nous l'avons étudier avec Audacity, logiciel open-source de son, et donc de signaux ! L'inconvénient avec l'interface graphique QT de GNURadio est son manque de précision lors d'un dézoom sur le signal en temps réel. Audacity permet de palier à celà !&lt;br /&gt;
En outre, on peut voir que les paquets Xbee sont reconnaissables. En effet, le signal témoigne de la taille du paquet XBee.&lt;br /&gt;
&lt;br /&gt;
Le paquet XBee est constitué d'un premier header (header physique) de 6 octets :&lt;br /&gt;
- la séquence de préambule (4 octets) constitué de 32 bits à 0&lt;br /&gt;
&lt;br /&gt;
- l'indice de début du paquet fixé à 0x7A (1 octet)&lt;br /&gt;
&lt;br /&gt;
- la longueur du paquet (1 octet);&lt;br /&gt;
&lt;br /&gt;
d'un header MAC (7 à 27 octets en fonction des informations de l'adresse), d'un bloc FCS de fin de paquet (2 octets) et l'ensemble des données (de 1 à 104 octets).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Signal2.png|thumb|right|400px|On observe graphiquement qu'un paquet est transmis en 3846µs]]&lt;br /&gt;
[[Fichier:PacketXBee.png|400px|thumb|right|Paquet XBee]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Comme dit plus haut, les signaux émis par le XBee connaissent un étalement sur le spectre par DSSS.&lt;br /&gt;
Cet étalement s'effectue en divisant chaque symbole (correspondant à une série de 4 bits) transmis en &amp;lt;B&amp;gt;&amp;lt;I&amp;gt;chips&amp;lt;/I&amp;gt;&amp;lt;/B&amp;gt;.&lt;br /&gt;
Chaque symbole, soit 4 bits, correspond à 32 chips, et donc 32 états binaires (1 octet correspond à 64 chips).&lt;br /&gt;
Dans le cas de la norme ZigBee, la transmission de chacun des chips est synchronisé sur chaque µs (1 chip toutes les µs).&lt;br /&gt;
&lt;br /&gt;
Les signaux reçus par l'antenne HackRF étaient deux sinusoïdes modulées en phase et qui s'étalaient sur une période d'environ 3840µs (3846µs graphiquement mais il y a possibilité d'erreur à l'echelle du µs).&lt;br /&gt;
Sachant qu'un octet correspond à 64µs, on a :&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;N_{octets} =\frac{2*T_{signal}}{64*T_{chip}}=\frac{2*3.840*10^{-6}}{64*10^{-6}}=120 octets&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'analogie peut être effectuée entre paquet Ethernet et paquet ZigBee. En effet, la taille limite des données d'un paquet est de 104 octets. La chaîne de caractère n'étant qu'envoyée par paquet, le paquet observé n'est que de 120 octets, ce qui est cohérent avec les caractéristiques du XBee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div&amp;gt;&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:Hello1024secs.png|thumb|none|Temps de transmission de la chaîne de caractères &amp;quot;HELLO&amp;quot; 1024 fois]] &amp;lt;/li&amp;gt; &lt;br /&gt;
&amp;lt;li style=&amp;quot;display: inline-block;&amp;quot;&amp;gt; [[Fichier:AudacitySignal2.png|thumb|none|51 Paquets XBee portent la chaîne de caractère &amp;quot;HELLO&amp;quot; 1024 fois]] &amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
// À continuer : calculs pour connaître la taille du paquet à partir du signal //&lt;br /&gt;
&lt;br /&gt;
==Semaine 8==&lt;br /&gt;
&lt;br /&gt;
Nous avons décidé cette semaine d'étudier, ce qui est selon pour nous, l'une des pistes fondamentales de notre projet, et plus particulièrement de l'étude de nos signaux : le rapport signal bruit.&lt;br /&gt;
&lt;br /&gt;
L'objectif de cette semaine et de celle à venir était, à partir du signal acquis par le hackrf, d'effectuer le calcul du SNR (signal-to-noise ratio) tel que :&lt;br /&gt;
&amp;lt;center&amp;gt;&amp;lt;math&amp;gt;SNR =\frac{P_{signal}}{P_{bruit}}&amp;lt;/math&amp;gt;&amp;lt;/center&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le script python qui nous a permis de communiquer entre les deux shields Xbee se verra amélioré afin de faire plusieurs acquisition des signaux lors de la communication entre les Xbee, effectuer une moyenne statistique, et de même lorsqu'il n'y a pas de communication.&lt;br /&gt;
&lt;br /&gt;
Néanmoins, nous avons essayé d'approcher le SNR directement depuis l'interface de GnuRadio par le biais de l'utilitaire graphique et le langage en bloc.&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;/div&gt;</summary>
		<author><name>Amoreau</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=70732</id>
		<title>IMA4 2018/2019 P70</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=70732"/>
				<updated>2019-03-10T21:00:34Z</updated>
		
		<summary type="html">&lt;p&gt;Amoreau : /* Semaine 5 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;font-size: 30px; width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;Impact du matériel et du logiciel sur le champ électromagnétique&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Projet'''&amp;lt;/ins&amp;gt; : Impact du matériel et du logiciel sur le rayonnement électromagnétique&lt;br /&gt;
&lt;br /&gt;
''Nous proposons d'évaluer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et la consommation électrique.''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Etudiants'''&amp;lt;/ins&amp;gt; : Souheib KHINACHE et Antoine MOREAU&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Encadrants'''&amp;lt;/ins&amp;gt; : Alexandre BOE, Xavier REDON et Thomas VANTROYS&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'internet des objets est un marché en plein essor. La communication entre les différents objets connectés crée un nuage de signaux autour d'eux. Ces derniers sont vus par les utilisateurs comme des boîtes noires : le fonctionnement se fait sans en connaître les composants matériels et logiciels. &lt;br /&gt;
Néanmoins, ces objets, de par leurs propriétés électroniques, créent des fuites électromagnétiques impactant le champ environnant. &lt;br /&gt;
&lt;br /&gt;
Bien qu'ils peuvent porter à débat sur l'impact sur la santé, ces signaux peuvent représenter de réelles sources d'informations sur l'aspect matériel et applicatif de l'objet.&lt;br /&gt;
&lt;br /&gt;
Il serait donc intéressant d'avoir idée générale sur le fonctionnement du système en interprétant les ondes électromagnétiques émises par ce système.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Les principaux objectifs de ce projet seront donc de mesurer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et sur la consommation électrique.&lt;br /&gt;
Pour cela, l'outil potentiel avec lequel nous pourrions travailler serait une sonde de champ électromagnétique afin d'établir des mesures. &lt;br /&gt;
Cependant, nous pourrions concevoir notre propre système de capture et d'interprétation à partir d'une antenne, de filtres de fréquences et d'un microcontrôleur (on commencera par un ATMega328P). Il sera nécessaire de prendre en compte les perturbations issues de notre appareil de mesure et d'en tenir compte.&lt;br /&gt;
&lt;br /&gt;
On effectuera ainsi plusieurs expérimentations sur différents supports d'étude :&lt;br /&gt;
*l'aspect &amp;quot;Hardware&amp;quot; en étudiant différents modèles pour un même type de shield  &lt;br /&gt;
*l'aspect calculatoire du matériel en se basant sur l'impact des microcontrôleurs en fonction du modèle (ATMega328P et ATMega2560)&lt;br /&gt;
*l'aspect &amp;quot;Software&amp;quot;, en étudiant l'impact du logiciel et du firmware d'un même composant (différents firmwares pour un même shield Wi-Fi)&lt;br /&gt;
*l'aspect puissance des composants électroniques de gestion de puissance (ponts, hacheurs, onduleurs...).&lt;br /&gt;
&lt;br /&gt;
L'étude des différentes informations se fera par traitement des signaux électromagnétiques et des spectres. &lt;br /&gt;
Afin de mieux appréhender le problème, il nous est nécessaire de comprendre les phénomènes physiques issus de la notion d'électromagnétisme.&lt;br /&gt;
&lt;br /&gt;
Ces études mèneront à une étape plus complexe : l'interprétation des signaux. En effet, l'un des objectifs de ce projet est de comprendre du mieux possible le fonctionnement d'un système sans y avoir accès directement, et donc dans ce contexte &amp;quot;traduire&amp;quot; un ensemble de signaux électromagnétiques.&lt;br /&gt;
&lt;br /&gt;
On pourra en outre apporter un aspect visuel à l'étude en rajoutant une interface informatique.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
Bien qu'aux yeux de nombreuses personnes le bruit électromagnétique créé par les équipements électroniques du quotidien peut porter à controverse (débats concernant l'impact sur la santé par exemple), il peut être une source d'informations. &lt;br /&gt;
De nos jours, les ondes électromagnétiques restent un vaste champ d'étude, sujettes à de nombreuses thèses et recherches au sein des laboratoires.&lt;br /&gt;
&lt;br /&gt;
On peut prendre l'exemple de [https://www.eurekalert.org/pub_releases/2015-01/giot-rwt010715.php Milos Prvulovic], professeur à l'Institut Technologique de Géorgie, ayant simulé un contexte de cybercafé, dans lequel il place une antenne magnétique, un ordinateur portable cible et un ordinateur &amp;quot;espion&amp;quot;. Il réussit, grâce aux signaux EM émis par l'impulsion de l'appui des touches clavier à capter un message écrit par un ordinateur cible. &lt;br /&gt;
&lt;br /&gt;
Néanmoins, dans le quotidien, l'utilisation des sondes électromagnétiques se fait pour l'étude énergétique d'un système électronique (fuites électromagnétiques anormales, preuves d'une anomalie...) afin de respecter certaines normes législatives. Le code du travail par exemple réglemente et définit des valeurs seuils par le biais des articles R. 4453-3 et R. 4453-4.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
'''NBM-520 de NARDA STS'''&lt;br /&gt;
[[Fichier: NBM_TS.png|thumb|300px|NBM-TS, application des appareils NBM]]&lt;br /&gt;
NARDA STS est une entreprise qui fournit des outils de mesure. Elle met à disposition aux professionnels des sondes électromagnétiques.&lt;br /&gt;
La NBM-520 est un appareil de la franchise, mesurant le champ électrique et magnétique. Elle donne des valeurs précises du champ électromagnétique ambiant sur une large bande. Elle propose différentes sondes modulables permettant une souplesse au niveau de l'étude en fonction des besoins, avec des sondes pouvant étudier des signaux de fréquence de 100kHz à 6GHz ou même de 300kHz à 50GHz (en fonction de la sonde choisie).&lt;br /&gt;
&lt;br /&gt;
En outre, le dispositif peut se connecter en USB sur PC afin d'envoyer les données capturées et d'en faire une étude. Le dispositif propose un logiciel d'étude, NBM-TS, permettant d'observer du champ en fonction du temps, de la fréquence, de la position...&lt;br /&gt;
&lt;br /&gt;
L'équipement est utilisé par l'ANF (l'Agence Nationale des Fréquences, agence gérant l'ensemble des normes autour des radiofréquences), et est donc un gage de qualité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Avantages :''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Large bande de fréquence&lt;br /&gt;
* Matériel solide&lt;br /&gt;
* Application fonctionnelle permettant l'étude et gestion des données&lt;br /&gt;
* Possibilité d'étudier séparément champ électrique et magnétique&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Inconvénients:''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Impossible d'étudier les basses fréquences (appareils sous tension, bobinages...)&lt;br /&gt;
* Prix élevé : à partir de 3100€&lt;br /&gt;
* La cible de ce produit est surtout les professionels&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
'''Une pita.'''&lt;br /&gt;
&lt;br /&gt;
''Comment mon pain à pita vole ta clé RSA ?''&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Pita.jpg|200px|thumb|left|Une pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Des chercheurs israéliens ont découvert un moyen de capturer des clés de cryptage RSA, réputées comme inviolables, par le biais d'une pita... du moins avec un dispositif suffisamment petit pour être caché dans un pain à pita. &lt;br /&gt;
Le dispositif, renommé PITA pour Portable Instrument for Trace Acquisition a la particularité de capturer les ondes radio électromagnétiques émanantes d'un PC, qu'il soit connecté à un réseau ou pas.&lt;br /&gt;
Les différentes opérations du processeur sont identifiées en distinguant les différents modèles de l'activité radio sur le spectre EM.&lt;br /&gt;
&lt;br /&gt;
Bien que la capture des clés RSA a été faite dans des conditions particulières (modification du processeur de l'ordinateur cible), il est néanmoins possible, selon les chercheurs, d'identifier quelle type d'activité est exercée par l'ordinateur ainsi que son état.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PITA.jpg|300px|thumb|right|Un dessous de pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'un des points importants concernant le dispositif est son coût : moins de 300 euros.&lt;br /&gt;
L'appareil dispose :&lt;br /&gt;
* d'un PC portatif (PC-on-a-stick) ''Rikomagic MK802 IV'',&lt;br /&gt;
* d'un recepteur radio SDR ''FUNcube Dongle Pro+''&lt;br /&gt;
* d'une antenne radio&lt;br /&gt;
* d'une batterie&lt;br /&gt;
* d'une antenne WiFi&lt;br /&gt;
* d'une carte MicroSD&lt;br /&gt;
* d'un adapteur d'antenne&lt;br /&gt;
* et d'une '''pita'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le dispositif aurait une portée de 50cm. &lt;br /&gt;
Les chercheurs israéliens ont collaboré avec GNU Private Guard (logiciel de cryptage asymétrique) afin de protéger contre ces attaques les clés de cryptage.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
&lt;br /&gt;
''Scénario 1''&lt;br /&gt;
&lt;br /&gt;
Gérard a toujours le flair pour les bonnes affaires. Il a acheté une centaine de clés WiFi à un prix dérisoire sur AloXpresso afin de faire du profit à la revente. Le vendeur lui garantit que toutes les clés fonctionnent correctement. Gérard veut vérifier. Après vérification, 99 des clés sur 100 fonctionnent comme prévu. Gérard aimerait être sûr du disfonctionnement, mais Gérard n'est pas une pointure en informatique. &lt;br /&gt;
&lt;br /&gt;
Coup de génie ! Il se rappelle qu'il dispose d'un dispositif qui capte les ondes EM et les interprète directement. C'est le moment de tester ça. Il remarque une anomalie sur le spectre.&lt;br /&gt;
Il décide de contacter le revendeur pour lui signaler un disfonctionnement sur l'une des clé. &lt;br /&gt;
Pas de soucis. Le vendeur, étant bon prince, lui envoie une autre clé USB et lui fait une ristourne.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Scénario 2''&lt;br /&gt;
&lt;br /&gt;
La police fait une perquisition chez un individu soupçonné de graves délits. Cela fait plusieurs mois que la brigade criminelle prépare l'intervention, et une fois sur les lieux ils arrêtent le soupçonné malfaiteur.&lt;br /&gt;
Cependant avant de repartir, elle veut faire l'acquisition d'un maximum de preuves. Elle veut alors prendre l'essentiel des objets, dont certains objets éléctroniques connectés de l'individu dont elle pourra extraire les informations qui serviront à le faire tomber.&lt;br /&gt;
&lt;br /&gt;
Par chance, elle dispose d'un petit outil qui scannera les signatures alentours des objets connectés, comme des téléphones cachés, clés USB wifi dissimulées dans le décor etc..&lt;br /&gt;
Et si le suspect avait modifié malignement un objet connecté banal pour l'utiliser autrement à ses fins, la police le découvrirait car elle possède une base de données de toutes les signatures spectrales des objets connectés sur le marché et celle de l'objet modifié ne collerait pas avec celle de la base de données.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
&lt;br /&gt;
'''Comment étudier les signaux malgré les perturbations électromagnétiques ambiants et les faibles signaux des µC ?'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les signaux électromagnétiques des microcontrôleurs ou d'autres composants peuvent être faibles. Il y a une possibilité pour palier à ce problème, c'est de capter les signaux depuis une antenne émettrice que l'on rajoute à l'objet d'étude. &lt;br /&gt;
Nous utiliserons un SDR (Software Defined-Radio) afin de capter les ondes radio et les étudier directement sur PC. Le filtrage s'effectuera ainsi de manière numérique. Plusieurs tests seront effectués pour le même objet à étudier (quand on parle d'objet, on évoque un ensemble de plusieurs composants, comme par exemple une alimentation, un micro-contrôleur et une antenne). Ainsi, de manière statistique, nous pourrons en déduire un pattern récurrent pour chaque expérience en les effectuant dans différents environnements (pourquoi pas une chambre anachoïque). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons &lt;br /&gt;
* Capter le signal émis par un objet connecté le plus précisément possible&lt;br /&gt;
&lt;br /&gt;
* Concevoir nos propres objets connectés tous différents mais basés sur un même modèle&lt;br /&gt;
&lt;br /&gt;
* Interpréter les spectrogrammes, faire une étude statistique des signaux émis par nos différents objets et en tirer des conclusions&lt;br /&gt;
&lt;br /&gt;
* Répertorier dans une base de données les signatures de nos objets , voire de quelques objets disponibles sur le marché&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix logiciel :&lt;br /&gt;
&lt;br /&gt;
- La distribution Linux Pentoo ou Kali pour traiter les signaux avec GNU RADIO (Suite logicielle dédiée à l’implémentation de radios logicielles et de systèmes de traitement du signal).&lt;br /&gt;
&lt;br /&gt;
- FemtoOS pour l'OS des ATMEGA328P et ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix Matériel : &lt;br /&gt;
&lt;br /&gt;
- Plusieurs modules radios émetteurs &lt;br /&gt;
&lt;br /&gt;
- Plusieurs microcontrôleurs ATMEGA328P et un ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
- Des alimentations identiques pour chaque PCB&lt;br /&gt;
&lt;br /&gt;
- Un HackRF pour la réception des signaux&lt;br /&gt;
&lt;br /&gt;
- Une antenne 50 Ohm pour le HackRF [https://www.passion-radio.fr/accessoires-sdr/antenne-ant500-74.html]&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous devons préparer tout le matériel qui servira à faire nos tests. C'est à dire concevoir :&lt;br /&gt;
&lt;br /&gt;
- Un ensemble SDR/PC qui traitera le signal reçu avec GNU RADIO.&lt;br /&gt;
&lt;br /&gt;
- Une multitude de PCB qui seront nos objets connectés (Sur chacun d'entre eux on trouvera au minimum une antenne radio, un microcontrôleur et une alimentation)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de récupérer une &amp;quot;signature&amp;quot; d'un de nos objets , il faudra faire plus de 50 analyses spectrales pour conclure statistiquement sur une bonne signature qui caractérisera l'objet.&lt;br /&gt;
&lt;br /&gt;
Nous devons donc dans un second temps: &lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques mais qui ont un '''firmware''' différent.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques qui ont pour seule différence le '''microcontrôleur'''.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques dont seul le '''PCB''' diffère.&lt;br /&gt;
&lt;br /&gt;
Grâce à tous ces tests , nous pourrons conclure et voir l'impact qu'à le matériel ou le logiciel sur la signature d'un objet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enfin si les délais nous le permettent, nous pourrons réaliser un software qui cartographiera nos objets connectés dans la pièce grâce à la puissance de la signature reçue (Ce qui devrait être réalisable puisqu'à ce stade nous aurons une base de donnée des signatures).&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
|3&lt;br /&gt;
|8&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Recherches&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|6&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Prise en main de GnuRadio&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Configuration Xbee&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|4&lt;br /&gt;
|15&lt;br /&gt;
|9&lt;br /&gt;
|8&lt;br /&gt;
|7&lt;br /&gt;
|8&lt;br /&gt;
|8&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
[[Fichier:HackrfOne.jpeg|200px|thumb|right|Le HackRF One]]&lt;br /&gt;
Durant cette semaine, nous avons continué nos recherches notamment sur le moyen de transmission de nos objets connectés. Nous avons confirmé notre choix de notre SDR : Monsieur Boé nous a confirmé que des HackRF seraient disponibles dans les laboratoires et qu'il pourrait nous en prêter un. On disposera donc d'une antenne puissante pour traiter les signaux émis par nos objets communiquants. &lt;br /&gt;
&lt;br /&gt;
Il faudra coupler notre HackRF avec un logiciel appelé GNU RADIO qui est un logiciel très complet ( Pour information : la NASA a utilisé GNU RADIO afin de rétablir le contact avec une sonde spatiale abandonnée ). Afin de faire tourner ce logiciel libre, nous aurons besoin de la distribution Kali Linux, ex Backtrack.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Choix des émetteurs/récepteurs === &lt;br /&gt;
&lt;br /&gt;
Nous avons décidé que nos objets connectés communiqueront dans deux '''bandes de fréquences ISM''', l'une à '''900 MHz''' grâce à des modules Digi Xbee et l'autre à '''2,4 GHz''' par le moyen de modules émetteurs Bluetooth. On rappellera que les Digi Xbee et les émetteurs/récepteurs Bluetooth seront pilotés par des ATMEGA 2560.&lt;br /&gt;
&lt;br /&gt;
Les Xbee ne communiqueront pas entre eux et émettront en continu les mêmes données car ils le peuvent, alors que les émetteurs/récepteurs Bluetooth devront s'échanger des données si on veut pouvoir observer un quelconque signal autour de la fréquence de leurs porteuses. &lt;br /&gt;
&lt;br /&gt;
On voudra observer premièrement, si avec deux objets dans les '''mêmes''' conditions (donc même µc et même émetteur), on peut ou non '''distinguer une différence'''. Ceci est fondamental pour la suite des expériences, puisque si les deux émettent à la même fréquence, on pourra faire varier plusieurs paramètres afin de trouver '''des clés''' (des signes) qui pourraient aider à l'identification du matériel.&lt;br /&gt;
&lt;br /&gt;
Ces clés représentent différents facteurs potentiels d'identification du signal (le rapport signal-bruit en fonction de la distance par exemple...).&lt;br /&gt;
&lt;br /&gt;
''On planifie alors pour la semaine suivante de réussir à faire émettre, en utilisant simplement des breadboards pour commencer, nos Xbee et modules BT et observer quelque chose grâce à notre SDR.''&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration des modules XBee ===&lt;br /&gt;
&lt;br /&gt;
Nous avons configuré deux XBee afin qu'ils puissent communiquer entre eux : &lt;br /&gt;
&lt;br /&gt;
Les modules XBee ont été montés sur des platines d'interface USB/série de manière à ce qu'on puisse les paramétrer via le programme de contrôle ''minicom''. &lt;br /&gt;
&lt;br /&gt;
Dans le doute, on supposera que les XBee communiquent à 9600 Baud. On exécute la commande suivante : &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;minicom -b 9600 -D /dev/ttyUSB0&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
On active l'echo local dans minicom, afin de pouvoir observer ce qui a été envoyé par liaison série au XBee ('''CTRL+A''' puis '''E''').&lt;br /&gt;
&lt;br /&gt;
Pour commencer le paramètrage il faut taper ''' +++ ''' rapidement. Le XBee nous répond OK, cela veut dire que nous sommes dans le mode configuration et que nous pouvons utiliser les commandes '''AT'''. (Redirection vers la liste des commandes AT XBee [https://cdn.sparkfun.com/assets/resources/2/9/22AT_Commands.pdf]).&lt;br /&gt;
&lt;br /&gt;
Comme nos XBee ont été utilisés auparavant, il a fallu les restaurer à l'état usine avec la commande '''ATRE'''.&lt;br /&gt;
&lt;br /&gt;
Si on souhaite que des XBee puissent s'envoyer des données il faut qu'ils soient sur le même canal (commande '''ATCH''') et aient le même PAN ID (commande '''ATID'''). Notre PAN ID sera '''BEE6''' et le canal sera celui par défaut '''C'''.&lt;br /&gt;
&lt;br /&gt;
Ensuite il faut leur donner une adresse de destination ('''ATDH''' &amp;amp; '''ATDL''') qui sera l'adresse broadcast, pour ce faire on entre &lt;br /&gt;
 ATDH=0000&lt;br /&gt;
 ATDL=FFFF&lt;br /&gt;
&lt;br /&gt;
Enfin '''ATMY''' représente l'ID du XBee, notre premier XBee aura comme ID 5000 et le second 5001.&lt;br /&gt;
&lt;br /&gt;
N'oublions pas de sauvegarder les paramètres avec '''ATWR'''.&lt;br /&gt;
&lt;br /&gt;
On vérifie que tout a bien été pris en compte :&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;&lt;br /&gt;
+++OK&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATID&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
BEE6&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
C&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
0&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDL&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
FFFF&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATMY&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
5000&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCN&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Puis on fait de même avec le deuxième XBee (ID 5001).&lt;br /&gt;
&lt;br /&gt;
Voilà, lorsque on envoie des caractères par liaison série sur 5000, la LED '''Tx''' de 5000 s'allume et la Led '''Rx''' de 5001 s'allume elle aussi. Cela signifie que l'envoi de donnée par onde radio s'effectue correctement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que les XBee émettent et reçoivent, on peut commencer les mesures avec notre SDR. Mais avant cela il va falloir bien se familiariser avec le logiciel GNU RADIO qui est assez difficile à prendre en main.&lt;br /&gt;
&lt;br /&gt;
=== Première prise en main du logiciel GNURADIO ===&lt;br /&gt;
&lt;br /&gt;
Installation de GNU radio avec les fonctions + drivers pour HackRF : &lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install gqrx gnuradio gr-osmosdr hackrf &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le bloc Osmocom Source sert de &amp;quot;passerelle&amp;quot; entre le logiciel et la SDR, il permet de transmettre les informations récupérées par le HackRF afin qu'on puisse les traiter avec d'autres bloc de fonctions.&lt;br /&gt;
&lt;br /&gt;
Si on veut pouvoir récuperer les données il faut passer l'argument ''hackrf=0'' dans la box périphérique du bloc Osmocom.&lt;br /&gt;
&lt;br /&gt;
Ci-dessous on peut voir le spectre environnant entre 2.44GHz et 2.460GHz grâce au bloc WX GUI FFT Sink.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ScreenGnuRadio.png|Interface de GNURadio]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous a permis d'effectuer notre première expérience. L'utilisation des deux Xbees nous a permis d'observer l'impact des Xbee sur le champ électromagéntique environnant.&lt;br /&gt;
&lt;br /&gt;
Si on analyse le spectre environnant grâce au module FFT de GNU Radio, lorsque les Xbee communiquent entre eux, on peut apercevoir un pic caractéristique propre.&lt;br /&gt;
En effet, lors de l'emission d'un message sur le port série, on a un pic qui se dégage du spectre d'amplitude -20dBm. Ce pic est caractéristique au canal de communication choisi et configuré sur le Xbee.&lt;br /&gt;
Néanmoins, le signal est perturbé par le bruit environnant. &lt;br /&gt;
L'expérience étant effectuée au sein de l'école, les signaux Wi-Fi perturberont l'étude.&lt;br /&gt;
Il faut noter que la norme IEEE 802.11 impose au Wi-Fi l'utilisation d'une bande passante s'étalant de 2.4 GHz à 2.5 GHz.&lt;br /&gt;
&lt;br /&gt;
La bande passante des modules Zigbee se décomposent en 16 canaux, allant de 2400 MHz à 2480 MHz par pas de 5 MHz.&lt;br /&gt;
&lt;br /&gt;
Le canal ici utilisé est le canal 13 (3ème canal) de fréquence 2415 MHz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- [[Fichier:Channel135001.png|thumb|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Fichier:channel135000.png|thumb|none|400 px]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:XBeeCh13.png|Spectre de l'environnement autour du XBee|thumb|400 px]][[Fichier:XBeeCh13SND.png|Lors de l'envoi de données au XBee voisin|thumb|none|400 px]]&lt;br /&gt;
&lt;br /&gt;
On peut observer un pic de puissance lors de l'envoi d'une donnée en série à la fréquence 2.415 GHz.&lt;br /&gt;
Il nous est maintenant nécessaire d'analyser de plus près les signaux et leurs fréquence centrale dans la bande perçue au dessus de -20dB.&lt;br /&gt;
&lt;br /&gt;
On réeffectuera une expérience en zone isolée des signaux parasites.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous avons principalement fait des recherches dans le but de mieux comprendre les signaux émis par le Xbee.&lt;br /&gt;
&lt;br /&gt;
En somme, nous étions confrontés à de nombreuses interrogations. Le fonctionnement du Xbee étant assez simple et la sécurité du protocole Zigbee étant moindre, y a t-il possibilité de démoduler le signal émis afin de développer nos études ?&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
[[Fichier:Switchchannel pyscript.PNG|upright=0.8|thumb|right|Programme Python fait rapidement]]&lt;br /&gt;
Après réflexion et consultation de nos encadrants, nous nous sommes rendu compte que la démodulation prévue lors de la semaine 4 n'aiderait pas à répondre à la problématique de notre sujet !  &lt;br /&gt;
&lt;br /&gt;
Afin de mieux visualiser les signaux des Xbee , on décide d'automatiser le processus d'envoi sur le port série des données vers le Xbee. C'est à dire concevoir un programme Python qui automatisera l'envoi de données et le changement de channel à intervalle de temps régulier (Changement toutes les 10 secondes). &lt;br /&gt;
&lt;br /&gt;
L'utilisation de Minicom '''n'était pas du tout la meilleure solution''' pour faire émettre les Xbee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Après quelques essais, on remarque que lorsque le Xbee émet sur le channel 13, il émet à environ 2,445GHz au lieu d'émettre à 2,415GHz soit une différence de 30MHz : Ceci n'est pas important, car ce que l'on souhaite remarquer c'est un éventuel décalage de la fréquence centrale entre deux Xbee différents. Si les deux Xbee n'ont pas la même frequence centrale on pourra conclure que la '''fréquence centrale''' de la porteuse du Xbee n'est pas '''une des clés''' permettant d''''identifier''' cet émetteur/récepteur.&lt;br /&gt;
&lt;br /&gt;
==Semaine 6==&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;/div&gt;</summary>
		<author><name>Amoreau</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=70731</id>
		<title>IMA4 2018/2019 P70</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=70731"/>
				<updated>2019-03-10T21:00:11Z</updated>
		
		<summary type="html">&lt;p&gt;Amoreau : /* Configuration des modules XBee */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;font-size: 30px; width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;Impact du matériel et du logiciel sur le champ électromagnétique&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Projet'''&amp;lt;/ins&amp;gt; : Impact du matériel et du logiciel sur le rayonnement électromagnétique&lt;br /&gt;
&lt;br /&gt;
''Nous proposons d'évaluer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et la consommation électrique.''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Etudiants'''&amp;lt;/ins&amp;gt; : Souheib KHINACHE et Antoine MOREAU&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Encadrants'''&amp;lt;/ins&amp;gt; : Alexandre BOE, Xavier REDON et Thomas VANTROYS&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'internet des objets est un marché en plein essor. La communication entre les différents objets connectés crée un nuage de signaux autour d'eux. Ces derniers sont vus par les utilisateurs comme des boîtes noires : le fonctionnement se fait sans en connaître les composants matériels et logiciels. &lt;br /&gt;
Néanmoins, ces objets, de par leurs propriétés électroniques, créent des fuites électromagnétiques impactant le champ environnant. &lt;br /&gt;
&lt;br /&gt;
Bien qu'ils peuvent porter à débat sur l'impact sur la santé, ces signaux peuvent représenter de réelles sources d'informations sur l'aspect matériel et applicatif de l'objet.&lt;br /&gt;
&lt;br /&gt;
Il serait donc intéressant d'avoir idée générale sur le fonctionnement du système en interprétant les ondes électromagnétiques émises par ce système.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Les principaux objectifs de ce projet seront donc de mesurer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et sur la consommation électrique.&lt;br /&gt;
Pour cela, l'outil potentiel avec lequel nous pourrions travailler serait une sonde de champ électromagnétique afin d'établir des mesures. &lt;br /&gt;
Cependant, nous pourrions concevoir notre propre système de capture et d'interprétation à partir d'une antenne, de filtres de fréquences et d'un microcontrôleur (on commencera par un ATMega328P). Il sera nécessaire de prendre en compte les perturbations issues de notre appareil de mesure et d'en tenir compte.&lt;br /&gt;
&lt;br /&gt;
On effectuera ainsi plusieurs expérimentations sur différents supports d'étude :&lt;br /&gt;
*l'aspect &amp;quot;Hardware&amp;quot; en étudiant différents modèles pour un même type de shield  &lt;br /&gt;
*l'aspect calculatoire du matériel en se basant sur l'impact des microcontrôleurs en fonction du modèle (ATMega328P et ATMega2560)&lt;br /&gt;
*l'aspect &amp;quot;Software&amp;quot;, en étudiant l'impact du logiciel et du firmware d'un même composant (différents firmwares pour un même shield Wi-Fi)&lt;br /&gt;
*l'aspect puissance des composants électroniques de gestion de puissance (ponts, hacheurs, onduleurs...).&lt;br /&gt;
&lt;br /&gt;
L'étude des différentes informations se fera par traitement des signaux électromagnétiques et des spectres. &lt;br /&gt;
Afin de mieux appréhender le problème, il nous est nécessaire de comprendre les phénomènes physiques issus de la notion d'électromagnétisme.&lt;br /&gt;
&lt;br /&gt;
Ces études mèneront à une étape plus complexe : l'interprétation des signaux. En effet, l'un des objectifs de ce projet est de comprendre du mieux possible le fonctionnement d'un système sans y avoir accès directement, et donc dans ce contexte &amp;quot;traduire&amp;quot; un ensemble de signaux électromagnétiques.&lt;br /&gt;
&lt;br /&gt;
On pourra en outre apporter un aspect visuel à l'étude en rajoutant une interface informatique.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
Bien qu'aux yeux de nombreuses personnes le bruit électromagnétique créé par les équipements électroniques du quotidien peut porter à controverse (débats concernant l'impact sur la santé par exemple), il peut être une source d'informations. &lt;br /&gt;
De nos jours, les ondes électromagnétiques restent un vaste champ d'étude, sujettes à de nombreuses thèses et recherches au sein des laboratoires.&lt;br /&gt;
&lt;br /&gt;
On peut prendre l'exemple de [https://www.eurekalert.org/pub_releases/2015-01/giot-rwt010715.php Milos Prvulovic], professeur à l'Institut Technologique de Géorgie, ayant simulé un contexte de cybercafé, dans lequel il place une antenne magnétique, un ordinateur portable cible et un ordinateur &amp;quot;espion&amp;quot;. Il réussit, grâce aux signaux EM émis par l'impulsion de l'appui des touches clavier à capter un message écrit par un ordinateur cible. &lt;br /&gt;
&lt;br /&gt;
Néanmoins, dans le quotidien, l'utilisation des sondes électromagnétiques se fait pour l'étude énergétique d'un système électronique (fuites électromagnétiques anormales, preuves d'une anomalie...) afin de respecter certaines normes législatives. Le code du travail par exemple réglemente et définit des valeurs seuils par le biais des articles R. 4453-3 et R. 4453-4.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
'''NBM-520 de NARDA STS'''&lt;br /&gt;
[[Fichier: NBM_TS.png|thumb|300px|NBM-TS, application des appareils NBM]]&lt;br /&gt;
NARDA STS est une entreprise qui fournit des outils de mesure. Elle met à disposition aux professionnels des sondes électromagnétiques.&lt;br /&gt;
La NBM-520 est un appareil de la franchise, mesurant le champ électrique et magnétique. Elle donne des valeurs précises du champ électromagnétique ambiant sur une large bande. Elle propose différentes sondes modulables permettant une souplesse au niveau de l'étude en fonction des besoins, avec des sondes pouvant étudier des signaux de fréquence de 100kHz à 6GHz ou même de 300kHz à 50GHz (en fonction de la sonde choisie).&lt;br /&gt;
&lt;br /&gt;
En outre, le dispositif peut se connecter en USB sur PC afin d'envoyer les données capturées et d'en faire une étude. Le dispositif propose un logiciel d'étude, NBM-TS, permettant d'observer du champ en fonction du temps, de la fréquence, de la position...&lt;br /&gt;
&lt;br /&gt;
L'équipement est utilisé par l'ANF (l'Agence Nationale des Fréquences, agence gérant l'ensemble des normes autour des radiofréquences), et est donc un gage de qualité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Avantages :''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Large bande de fréquence&lt;br /&gt;
* Matériel solide&lt;br /&gt;
* Application fonctionnelle permettant l'étude et gestion des données&lt;br /&gt;
* Possibilité d'étudier séparément champ électrique et magnétique&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Inconvénients:''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Impossible d'étudier les basses fréquences (appareils sous tension, bobinages...)&lt;br /&gt;
* Prix élevé : à partir de 3100€&lt;br /&gt;
* La cible de ce produit est surtout les professionels&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
'''Une pita.'''&lt;br /&gt;
&lt;br /&gt;
''Comment mon pain à pita vole ta clé RSA ?''&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Pita.jpg|200px|thumb|left|Une pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Des chercheurs israéliens ont découvert un moyen de capturer des clés de cryptage RSA, réputées comme inviolables, par le biais d'une pita... du moins avec un dispositif suffisamment petit pour être caché dans un pain à pita. &lt;br /&gt;
Le dispositif, renommé PITA pour Portable Instrument for Trace Acquisition a la particularité de capturer les ondes radio électromagnétiques émanantes d'un PC, qu'il soit connecté à un réseau ou pas.&lt;br /&gt;
Les différentes opérations du processeur sont identifiées en distinguant les différents modèles de l'activité radio sur le spectre EM.&lt;br /&gt;
&lt;br /&gt;
Bien que la capture des clés RSA a été faite dans des conditions particulières (modification du processeur de l'ordinateur cible), il est néanmoins possible, selon les chercheurs, d'identifier quelle type d'activité est exercée par l'ordinateur ainsi que son état.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PITA.jpg|300px|thumb|right|Un dessous de pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'un des points importants concernant le dispositif est son coût : moins de 300 euros.&lt;br /&gt;
L'appareil dispose :&lt;br /&gt;
* d'un PC portatif (PC-on-a-stick) ''Rikomagic MK802 IV'',&lt;br /&gt;
* d'un recepteur radio SDR ''FUNcube Dongle Pro+''&lt;br /&gt;
* d'une antenne radio&lt;br /&gt;
* d'une batterie&lt;br /&gt;
* d'une antenne WiFi&lt;br /&gt;
* d'une carte MicroSD&lt;br /&gt;
* d'un adapteur d'antenne&lt;br /&gt;
* et d'une '''pita'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le dispositif aurait une portée de 50cm. &lt;br /&gt;
Les chercheurs israéliens ont collaboré avec GNU Private Guard (logiciel de cryptage asymétrique) afin de protéger contre ces attaques les clés de cryptage.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
&lt;br /&gt;
''Scénario 1''&lt;br /&gt;
&lt;br /&gt;
Gérard a toujours le flair pour les bonnes affaires. Il a acheté une centaine de clés WiFi à un prix dérisoire sur AloXpresso afin de faire du profit à la revente. Le vendeur lui garantit que toutes les clés fonctionnent correctement. Gérard veut vérifier. Après vérification, 99 des clés sur 100 fonctionnent comme prévu. Gérard aimerait être sûr du disfonctionnement, mais Gérard n'est pas une pointure en informatique. &lt;br /&gt;
&lt;br /&gt;
Coup de génie ! Il se rappelle qu'il dispose d'un dispositif qui capte les ondes EM et les interprète directement. C'est le moment de tester ça. Il remarque une anomalie sur le spectre.&lt;br /&gt;
Il décide de contacter le revendeur pour lui signaler un disfonctionnement sur l'une des clé. &lt;br /&gt;
Pas de soucis. Le vendeur, étant bon prince, lui envoie une autre clé USB et lui fait une ristourne.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Scénario 2''&lt;br /&gt;
&lt;br /&gt;
La police fait une perquisition chez un individu soupçonné de graves délits. Cela fait plusieurs mois que la brigade criminelle prépare l'intervention, et une fois sur les lieux ils arrêtent le soupçonné malfaiteur.&lt;br /&gt;
Cependant avant de repartir, elle veut faire l'acquisition d'un maximum de preuves. Elle veut alors prendre l'essentiel des objets, dont certains objets éléctroniques connectés de l'individu dont elle pourra extraire les informations qui serviront à le faire tomber.&lt;br /&gt;
&lt;br /&gt;
Par chance, elle dispose d'un petit outil qui scannera les signatures alentours des objets connectés, comme des téléphones cachés, clés USB wifi dissimulées dans le décor etc..&lt;br /&gt;
Et si le suspect avait modifié malignement un objet connecté banal pour l'utiliser autrement à ses fins, la police le découvrirait car elle possède une base de données de toutes les signatures spectrales des objets connectés sur le marché et celle de l'objet modifié ne collerait pas avec celle de la base de données.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
&lt;br /&gt;
'''Comment étudier les signaux malgré les perturbations électromagnétiques ambiants et les faibles signaux des µC ?'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les signaux électromagnétiques des microcontrôleurs ou d'autres composants peuvent être faibles. Il y a une possibilité pour palier à ce problème, c'est de capter les signaux depuis une antenne émettrice que l'on rajoute à l'objet d'étude. &lt;br /&gt;
Nous utiliserons un SDR (Software Defined-Radio) afin de capter les ondes radio et les étudier directement sur PC. Le filtrage s'effectuera ainsi de manière numérique. Plusieurs tests seront effectués pour le même objet à étudier (quand on parle d'objet, on évoque un ensemble de plusieurs composants, comme par exemple une alimentation, un micro-contrôleur et une antenne). Ainsi, de manière statistique, nous pourrons en déduire un pattern récurrent pour chaque expérience en les effectuant dans différents environnements (pourquoi pas une chambre anachoïque). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons &lt;br /&gt;
* Capter le signal émis par un objet connecté le plus précisément possible&lt;br /&gt;
&lt;br /&gt;
* Concevoir nos propres objets connectés tous différents mais basés sur un même modèle&lt;br /&gt;
&lt;br /&gt;
* Interpréter les spectrogrammes, faire une étude statistique des signaux émis par nos différents objets et en tirer des conclusions&lt;br /&gt;
&lt;br /&gt;
* Répertorier dans une base de données les signatures de nos objets , voire de quelques objets disponibles sur le marché&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix logiciel :&lt;br /&gt;
&lt;br /&gt;
- La distribution Linux Pentoo ou Kali pour traiter les signaux avec GNU RADIO (Suite logicielle dédiée à l’implémentation de radios logicielles et de systèmes de traitement du signal).&lt;br /&gt;
&lt;br /&gt;
- FemtoOS pour l'OS des ATMEGA328P et ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix Matériel : &lt;br /&gt;
&lt;br /&gt;
- Plusieurs modules radios émetteurs &lt;br /&gt;
&lt;br /&gt;
- Plusieurs microcontrôleurs ATMEGA328P et un ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
- Des alimentations identiques pour chaque PCB&lt;br /&gt;
&lt;br /&gt;
- Un HackRF pour la réception des signaux&lt;br /&gt;
&lt;br /&gt;
- Une antenne 50 Ohm pour le HackRF [https://www.passion-radio.fr/accessoires-sdr/antenne-ant500-74.html]&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous devons préparer tout le matériel qui servira à faire nos tests. C'est à dire concevoir :&lt;br /&gt;
&lt;br /&gt;
- Un ensemble SDR/PC qui traitera le signal reçu avec GNU RADIO.&lt;br /&gt;
&lt;br /&gt;
- Une multitude de PCB qui seront nos objets connectés (Sur chacun d'entre eux on trouvera au minimum une antenne radio, un microcontrôleur et une alimentation)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de récupérer une &amp;quot;signature&amp;quot; d'un de nos objets , il faudra faire plus de 50 analyses spectrales pour conclure statistiquement sur une bonne signature qui caractérisera l'objet.&lt;br /&gt;
&lt;br /&gt;
Nous devons donc dans un second temps: &lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques mais qui ont un '''firmware''' différent.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques qui ont pour seule différence le '''microcontrôleur'''.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques dont seul le '''PCB''' diffère.&lt;br /&gt;
&lt;br /&gt;
Grâce à tous ces tests , nous pourrons conclure et voir l'impact qu'à le matériel ou le logiciel sur la signature d'un objet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enfin si les délais nous le permettent, nous pourrons réaliser un software qui cartographiera nos objets connectés dans la pièce grâce à la puissance de la signature reçue (Ce qui devrait être réalisable puisqu'à ce stade nous aurons une base de donnée des signatures).&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
|3&lt;br /&gt;
|8&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Recherches&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|6&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Prise en main de GnuRadio&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Configuration Xbee&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|4&lt;br /&gt;
|15&lt;br /&gt;
|9&lt;br /&gt;
|8&lt;br /&gt;
|7&lt;br /&gt;
|8&lt;br /&gt;
|8&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
[[Fichier:HackrfOne.jpeg|200px|thumb|right|Le HackRF One]]&lt;br /&gt;
Durant cette semaine, nous avons continué nos recherches notamment sur le moyen de transmission de nos objets connectés. Nous avons confirmé notre choix de notre SDR : Monsieur Boé nous a confirmé que des HackRF seraient disponibles dans les laboratoires et qu'il pourrait nous en prêter un. On disposera donc d'une antenne puissante pour traiter les signaux émis par nos objets communiquants. &lt;br /&gt;
&lt;br /&gt;
Il faudra coupler notre HackRF avec un logiciel appelé GNU RADIO qui est un logiciel très complet ( Pour information : la NASA a utilisé GNU RADIO afin de rétablir le contact avec une sonde spatiale abandonnée ). Afin de faire tourner ce logiciel libre, nous aurons besoin de la distribution Kali Linux, ex Backtrack.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Choix des émetteurs/récepteurs === &lt;br /&gt;
&lt;br /&gt;
Nous avons décidé que nos objets connectés communiqueront dans deux '''bandes de fréquences ISM''', l'une à '''900 MHz''' grâce à des modules Digi Xbee et l'autre à '''2,4 GHz''' par le moyen de modules émetteurs Bluetooth. On rappellera que les Digi Xbee et les émetteurs/récepteurs Bluetooth seront pilotés par des ATMEGA 2560.&lt;br /&gt;
&lt;br /&gt;
Les Xbee ne communiqueront pas entre eux et émettront en continu les mêmes données car ils le peuvent, alors que les émetteurs/récepteurs Bluetooth devront s'échanger des données si on veut pouvoir observer un quelconque signal autour de la fréquence de leurs porteuses. &lt;br /&gt;
&lt;br /&gt;
On voudra observer premièrement, si avec deux objets dans les '''mêmes''' conditions (donc même µc et même émetteur), on peut ou non '''distinguer une différence'''. Ceci est fondamental pour la suite des expériences, puisque si les deux émettent à la même fréquence, on pourra faire varier plusieurs paramètres afin de trouver '''des clés''' (des signes) qui pourraient aider à l'identification du matériel.&lt;br /&gt;
&lt;br /&gt;
Ces clés représentent différents facteurs potentiels d'identification du signal (le rapport signal-bruit en fonction de la distance par exemple...).&lt;br /&gt;
&lt;br /&gt;
''On planifie alors pour la semaine suivante de réussir à faire émettre, en utilisant simplement des breadboards pour commencer, nos Xbee et modules BT et observer quelque chose grâce à notre SDR.''&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration des modules XBee ===&lt;br /&gt;
&lt;br /&gt;
Nous avons configuré deux XBee afin qu'ils puissent communiquer entre eux : &lt;br /&gt;
&lt;br /&gt;
Les modules XBee ont été montés sur des platines d'interface USB/série de manière à ce qu'on puisse les paramétrer via le programme de contrôle ''minicom''. &lt;br /&gt;
&lt;br /&gt;
Dans le doute, on supposera que les XBee communiquent à 9600 Baud. On exécute la commande suivante : &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;minicom -b 9600 -D /dev/ttyUSB0&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
On active l'echo local dans minicom, afin de pouvoir observer ce qui a été envoyé par liaison série au XBee ('''CTRL+A''' puis '''E''').&lt;br /&gt;
&lt;br /&gt;
Pour commencer le paramètrage il faut taper ''' +++ ''' rapidement. Le XBee nous répond OK, cela veut dire que nous sommes dans le mode configuration et que nous pouvons utiliser les commandes '''AT'''. (Redirection vers la liste des commandes AT XBee [https://cdn.sparkfun.com/assets/resources/2/9/22AT_Commands.pdf]).&lt;br /&gt;
&lt;br /&gt;
Comme nos XBee ont été utilisés auparavant, il a fallu les restaurer à l'état usine avec la commande '''ATRE'''.&lt;br /&gt;
&lt;br /&gt;
Si on souhaite que des XBee puissent s'envoyer des données il faut qu'ils soient sur le même canal (commande '''ATCH''') et aient le même PAN ID (commande '''ATID'''). Notre PAN ID sera '''BEE6''' et le canal sera celui par défaut '''C'''.&lt;br /&gt;
&lt;br /&gt;
Ensuite il faut leur donner une adresse de destination ('''ATDH''' &amp;amp; '''ATDL''') qui sera l'adresse broadcast, pour ce faire on entre &lt;br /&gt;
 ATDH=0000&lt;br /&gt;
 ATDL=FFFF&lt;br /&gt;
&lt;br /&gt;
Enfin '''ATMY''' représente l'ID du XBee, notre premier XBee aura comme ID 5000 et le second 5001.&lt;br /&gt;
&lt;br /&gt;
N'oublions pas de sauvegarder les paramètres avec '''ATWR'''.&lt;br /&gt;
&lt;br /&gt;
On vérifie que tout a bien été pris en compte :&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;&lt;br /&gt;
+++OK&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATID&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
BEE6&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
C&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
0&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDL&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
FFFF&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATMY&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
5000&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCN&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Puis on fait de même avec le deuxième XBee (ID 5001).&lt;br /&gt;
&lt;br /&gt;
Voilà, lorsque on envoie des caractères par liaison série sur 5000, la LED '''Tx''' de 5000 s'allume et la Led '''Rx''' de 5001 s'allume elle aussi. Cela signifie que l'envoi de donnée par onde radio s'effectue correctement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que les XBee émettent et reçoivent, on peut commencer les mesures avec notre SDR. Mais avant cela il va falloir bien se familiariser avec le logiciel GNU RADIO qui est assez difficile à prendre en main.&lt;br /&gt;
&lt;br /&gt;
=== Première prise en main du logiciel GNURADIO ===&lt;br /&gt;
&lt;br /&gt;
Installation de GNU radio avec les fonctions + drivers pour HackRF : &lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install gqrx gnuradio gr-osmosdr hackrf &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le bloc Osmocom Source sert de &amp;quot;passerelle&amp;quot; entre le logiciel et la SDR, il permet de transmettre les informations récupérées par le HackRF afin qu'on puisse les traiter avec d'autres bloc de fonctions.&lt;br /&gt;
&lt;br /&gt;
Si on veut pouvoir récuperer les données il faut passer l'argument ''hackrf=0'' dans la box périphérique du bloc Osmocom.&lt;br /&gt;
&lt;br /&gt;
Ci-dessous on peut voir le spectre environnant entre 2.44GHz et 2.460GHz grâce au bloc WX GUI FFT Sink.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ScreenGnuRadio.png|Interface de GNURadio]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous a permis d'effectuer notre première expérience. L'utilisation des deux Xbees nous a permis d'observer l'impact des Xbee sur le champ électromagéntique environnant.&lt;br /&gt;
&lt;br /&gt;
Si on analyse le spectre environnant grâce au module FFT de GNU Radio, lorsque les Xbee communiquent entre eux, on peut apercevoir un pic caractéristique propre.&lt;br /&gt;
En effet, lors de l'emission d'un message sur le port série, on a un pic qui se dégage du spectre d'amplitude -20dBm. Ce pic est caractéristique au canal de communication choisi et configuré sur le Xbee.&lt;br /&gt;
Néanmoins, le signal est perturbé par le bruit environnant. &lt;br /&gt;
L'expérience étant effectuée au sein de l'école, les signaux Wi-Fi perturberont l'étude.&lt;br /&gt;
Il faut noter que la norme IEEE 802.11 impose au Wi-Fi l'utilisation d'une bande passante s'étalant de 2.4 GHz à 2.5 GHz.&lt;br /&gt;
&lt;br /&gt;
La bande passante des modules Zigbee se décomposent en 16 canaux, allant de 2400 MHz à 2480 MHz par pas de 5 MHz.&lt;br /&gt;
&lt;br /&gt;
Le canal ici utilisé est le canal 13 (3ème canal) de fréquence 2415 MHz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- [[Fichier:Channel135001.png|thumb|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Fichier:channel135000.png|thumb|none|400 px]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:XBeeCh13.png|Spectre de l'environnement autour du XBee|thumb|400 px]][[Fichier:XBeeCh13SND.png|Lors de l'envoi de données au XBee voisin|thumb|none|400 px]]&lt;br /&gt;
&lt;br /&gt;
On peut observer un pic de puissance lors de l'envoi d'une donnée en série à la fréquence 2.415 GHz.&lt;br /&gt;
Il nous est maintenant nécessaire d'analyser de plus près les signaux et leurs fréquence centrale dans la bande perçue au dessus de -20dB.&lt;br /&gt;
&lt;br /&gt;
On réeffectuera une expérience en zone isolée des signaux parasites.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous avons principalement fait des recherches dans le but de mieux comprendre les signaux émis par le Xbee.&lt;br /&gt;
&lt;br /&gt;
En somme, nous étions confrontés à de nombreuses interrogations. Le fonctionnement du Xbee étant assez simple et la sécurité du protocole Zigbee étant moindre, y a t-il possibilité de démoduler le signal émis afin de développer nos études ?&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
[[Fichier:Switchchannel pyscript.PNG|upright=0.8|thumb|right|Programme Python fait rapidement]]&lt;br /&gt;
Après réflexion et consultation de nos encadrants, nous nous sommes rendu compte que la démodulation prévue lors de la semaine 4 n'aiderait pas à répondre à la problématique de notre sujet !  &lt;br /&gt;
&lt;br /&gt;
Afin de mieux visualiser les signaux des Xbee , on décide d'automatiser le processus d'envoie sur le port série des données vers le Xbee. C'est à dire concevoir un programme Python qui automatisera l'envoi de données et le changement de channel à intervalle de temps régulier (Changement toutes les 10 secondes). &lt;br /&gt;
&lt;br /&gt;
L'utilisation de Minicom '''n'était pas du tout la meilleure solution''' pour faire émettre les Xbee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Après quelques essais, on remarque que lorsque le Xbee émet sur le channel 13, il émet à environ 2,445GHz au lieu d'émettre à 2,415GHz soit une différence de 30MHz : Ceci n'est pas important, car ce que l'on souhaite remarquer c'est un éventuel décalage de la fréquence centrale entre deux Xbee différents. Si les deux Xbee n'ont pas la même frequence centrale on pourra conclure que la '''fréquence centrale''' de la porteuse du Xbee n'est pas '''une des clés''' permettant d''''identifier''' cet émetteur/récepteur.&lt;br /&gt;
&lt;br /&gt;
==Semaine 6==&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;/div&gt;</summary>
		<author><name>Amoreau</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=70492</id>
		<title>IMA4 2018/2019 P70</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=70492"/>
				<updated>2019-03-06T16:49:07Z</updated>
		
		<summary type="html">&lt;p&gt;Amoreau : /* Semaine 5 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;font-size: 30px; width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;Impact du matériel et du logiciel sur le champ électromagnétique&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Projet'''&amp;lt;/ins&amp;gt; : Impact du matériel et du logiciel sur le rayonnement électromagnétique&lt;br /&gt;
&lt;br /&gt;
''Nous proposons d'évaluer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et la consommation électrique.''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Etudiants'''&amp;lt;/ins&amp;gt; : Souheib KHINACHE et Antoine MOREAU&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Encadrants'''&amp;lt;/ins&amp;gt; : Alexandre BOE, Xavier REDON et Thomas VANTROYS&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'internet des objets est un marché en plein essor. La communication entre les différents objets connectés crée un nuage de signaux autour d'eux. Ces derniers sont vus par les utilisateurs comme des boîtes noires : le fonctionnement se fait sans en connaître les composants matériels et logiciels. &lt;br /&gt;
Néanmoins, ces objets, de par leurs propriétés électroniques, créent des fuites électromagnétiques impactant le champ environnant. &lt;br /&gt;
&lt;br /&gt;
Bien qu'ils peuvent porter à débat sur l'impact sur la santé, ces signaux peuvent représenter de réelles sources d'informations sur l'aspect matériel et applicatif de l'objet.&lt;br /&gt;
&lt;br /&gt;
Il serait donc intéressant d'avoir idée générale sur le fonctionnement du système en interprétant les ondes électromagnétiques émises par ce système.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Les principaux objectifs de ce projet seront donc de mesurer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et sur la consommation électrique.&lt;br /&gt;
Pour cela, l'outil potentiel avec lequel nous pourrions travailler serait une sonde de champ électromagnétique afin d'établir des mesures. &lt;br /&gt;
Cependant, nous pourrions concevoir notre propre système de capture et d'interprétation à partir d'une antenne, de filtres de fréquences et d'un microcontrôleur (on commencera par un ATMega328P). Il sera nécessaire de prendre en compte les perturbations issues de notre appareil de mesure et d'en tenir compte.&lt;br /&gt;
&lt;br /&gt;
On effectuera ainsi plusieurs expérimentations sur différents supports d'étude :&lt;br /&gt;
*l'aspect &amp;quot;Hardware&amp;quot; en étudiant différents modèles pour un même type de shield  &lt;br /&gt;
*l'aspect calculatoire du matériel en se basant sur l'impact des microcontrôleurs en fonction du modèle (ATMega328P et ATMega2560)&lt;br /&gt;
*l'aspect &amp;quot;Software&amp;quot;, en étudiant l'impact du logiciel et du firmware d'un même composant (différents firmwares pour un même shield Wi-Fi)&lt;br /&gt;
*l'aspect puissance des composants électroniques de gestion de puissance (ponts, hacheurs, onduleurs...).&lt;br /&gt;
&lt;br /&gt;
L'étude des différentes informations se fera par traitement des signaux électromagnétiques et des spectres. &lt;br /&gt;
Afin de mieux appréhender le problème, il nous est nécessaire de comprendre les phénomènes physiques issus de la notion d'électromagnétisme.&lt;br /&gt;
&lt;br /&gt;
Ces études mèneront à une étape plus complexe : l'interprétation des signaux. En effet, l'un des objectifs de ce projet est de comprendre du mieux possible le fonctionnement d'un système sans y avoir accès directement, et donc dans ce contexte &amp;quot;traduire&amp;quot; un ensemble de signaux électromagnétiques.&lt;br /&gt;
&lt;br /&gt;
On pourra en outre apporter un aspect visuel à l'étude en rajoutant une interface informatique.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
Bien qu'aux yeux de nombreuses personnes le bruit électromagnétique créé par les équipements électroniques du quotidien peut porter à controverse (débats concernant l'impact sur la santé par exemple), il peut être une source d'informations. &lt;br /&gt;
De nos jours, les ondes électromagnétiques restent un vaste champ d'étude, sujettes à de nombreuses thèses et recherches au sein des laboratoires.&lt;br /&gt;
&lt;br /&gt;
On peut prendre l'exemple de [https://www.eurekalert.org/pub_releases/2015-01/giot-rwt010715.php Milos Prvulovic], professeur à l'Institut Technologique de Géorgie, ayant simulé un contexte de cybercafé, dans lequel il place une antenne magnétique, un ordinateur portable cible et un ordinateur &amp;quot;espion&amp;quot;. Il réussit, grâce aux signaux EM émis par l'impulsion de l'appui des touches clavier à capter un message écrit par un ordinateur cible. &lt;br /&gt;
&lt;br /&gt;
Néanmoins, dans le quotidien, l'utilisation des sondes électromagnétiques se fait pour l'étude énergétique d'un système électronique (fuites électromagnétiques anormales, preuves d'une anomalie...) afin de respecter certaines normes législatives. Le code du travail par exemple réglemente et définit des valeurs seuils par le biais des articles R. 4453-3 et R. 4453-4.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
'''NBM-520 de NARDA STS'''&lt;br /&gt;
[[Fichier: NBM_TS.png|thumb|300px|NBM-TS, application des appareils NBM]]&lt;br /&gt;
NARDA STS est une entreprise qui fournit des outils de mesure. Elle met à disposition aux professionnels des sondes électromagnétiques.&lt;br /&gt;
La NBM-520 est un appareil de la franchise, mesurant le champ électrique et magnétique. Elle donne des valeurs précises du champ électromagnétique ambiant sur une large bande. Elle propose différentes sondes modulables permettant une souplesse au niveau de l'étude en fonction des besoins, avec des sondes pouvant étudier des signaux de fréquence de 100kHz à 6GHz ou même de 300kHz à 50GHz (en fonction de la sonde choisie).&lt;br /&gt;
&lt;br /&gt;
En outre, le dispositif peut se connecter en USB sur PC afin d'envoyer les données capturées et d'en faire une étude. Le dispositif propose un logiciel d'étude, NBM-TS, permettant d'observer du champ en fonction du temps, de la fréquence, de la position...&lt;br /&gt;
&lt;br /&gt;
L'équipement est utilisé par l'ANF (l'Agence Nationale des Fréquences, agence gérant l'ensemble des normes autour des radiofréquences), et est donc un gage de qualité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Avantages :''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Large bande de fréquence&lt;br /&gt;
* Matériel solide&lt;br /&gt;
* Application fonctionnelle permettant l'étude et gestion des données&lt;br /&gt;
* Possibilité d'étudier séparément champ électrique et magnétique&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Inconvénients:''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Impossible d'étudier les basses fréquences (appareils sous tension, bobinages...)&lt;br /&gt;
* Prix élevé : à partir de 3100€&lt;br /&gt;
* La cible de ce produit est surtout les professionels&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
'''Une pita.'''&lt;br /&gt;
&lt;br /&gt;
''Comment mon pain à pita vole ta clé RSA ?''&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Pita.jpg|200px|thumb|left|Une pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Des chercheurs israéliens ont découvert un moyen de capturer des clés de cryptage RSA, réputées comme inviolables, par le biais d'une pita... du moins avec un dispositif suffisamment petit pour être caché dans un pain à pita. &lt;br /&gt;
Le dispositif, renommé PITA pour Portable Instrument for Trace Acquisition a la particularité de capturer les ondes radio électromagnétiques émanantes d'un PC, qu'il soit connecté à un réseau ou pas.&lt;br /&gt;
Les différentes opérations du processeur sont identifiées en distinguant les différents modèles de l'activité radio sur le spectre EM.&lt;br /&gt;
&lt;br /&gt;
Bien que la capture des clés RSA a été faite dans des conditions particulières (modification du processeur de l'ordinateur cible), il est néanmoins possible, selon les chercheurs, d'identifier quelle type d'activité est exercée par l'ordinateur ainsi que son état.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PITA.jpg|300px|thumb|right|Un dessous de pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'un des points importants concernant le dispositif est son coût : moins de 300 euros.&lt;br /&gt;
L'appareil dispose :&lt;br /&gt;
* d'un PC portatif (PC-on-a-stick) ''Rikomagic MK802 IV'',&lt;br /&gt;
* d'un recepteur radio SDR ''FUNcube Dongle Pro+''&lt;br /&gt;
* d'une antenne radio&lt;br /&gt;
* d'une batterie&lt;br /&gt;
* d'une antenne WiFi&lt;br /&gt;
* d'une carte MicroSD&lt;br /&gt;
* d'un adapteur d'antenne&lt;br /&gt;
* et d'une '''pita'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le dispositif aurait une portée de 50cm. &lt;br /&gt;
Les chercheurs israéliens ont collaboré avec GNU Private Guard (logiciel de cryptage asymétrique) afin de protéger contre ces attaques les clés de cryptage.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
&lt;br /&gt;
''Scénario 1''&lt;br /&gt;
&lt;br /&gt;
Gérard a toujours le flair pour les bonnes affaires. Il a acheté une centaine de clés WiFi à un prix dérisoire sur AloXpresso afin de faire du profit à la revente. Le vendeur lui garantit que toutes les clés fonctionnent correctement. Gérard veut vérifier. Après vérification, 99 des clés sur 100 fonctionnent comme prévu. Gérard aimerait être sûr du disfonctionnement, mais Gérard n'est pas une pointure en informatique. &lt;br /&gt;
&lt;br /&gt;
Coup de génie ! Il se rappelle qu'il dispose d'un dispositif qui capte les ondes EM et les interprète directement. C'est le moment de tester ça. Il remarque une anomalie sur le spectre.&lt;br /&gt;
Il décide de contacter le revendeur pour lui signaler un disfonctionnement sur l'une des clé. &lt;br /&gt;
Pas de soucis. Le vendeur, étant bon prince, lui envoie une autre clé USB et lui fait une ristourne.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Scénario 2''&lt;br /&gt;
&lt;br /&gt;
La police fait une perquisition chez un individu soupçonné de graves délits. Cela fait plusieurs mois que la brigade criminelle prépare l'intervention, et une fois sur les lieux ils arrêtent le soupçonné malfaiteur.&lt;br /&gt;
Cependant avant de repartir, elle veut faire l'acquisition d'un maximum de preuves. Elle veut alors prendre l'essentiel des objets, dont certains objets éléctroniques connectés de l'individu dont elle pourra extraire les informations qui serviront à le faire tomber.&lt;br /&gt;
&lt;br /&gt;
Par chance, elle dispose d'un petit outil qui scannera les signatures alentours des objets connectés, comme des téléphones cachés, clés USB wifi dissimulées dans le décor etc..&lt;br /&gt;
Et si le suspect avait modifié malignement un objet connecté banal pour l'utiliser autrement à ses fins, la police le découvrirait car elle possède une base de données de toutes les signatures spectrales des objets connectés sur le marché et celle de l'objet modifié ne collerait pas avec celle de la base de données.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
&lt;br /&gt;
'''Comment étudier les signaux malgré les perturbations électromagnétiques ambiants et les faibles signaux des µC ?'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les signaux électromagnétiques des microcontrôleurs ou d'autres composants peuvent être faibles. Il y a une possibilité pour palier à ce problème, c'est de capter les signaux depuis une antenne émettrice que l'on rajoute à l'objet d'étude. &lt;br /&gt;
Nous utiliserons un SDR (Software Defined-Radio) afin de capter les ondes radio et les étudier directement sur PC. Le filtrage s'effectuera ainsi de manière numérique. Plusieurs tests seront effectués pour le même objet à étudier (quand on parle d'objet, on évoque un ensemble de plusieurs composants, comme par exemple une alimentation, un micro-contrôleur et une antenne). Ainsi, de manière statistique, nous pourrons en déduire un pattern récurrent pour chaque expérience en les effectuant dans différents environnements (pourquoi pas une chambre anachoïque). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons &lt;br /&gt;
* Capter le signal émis par un objet connecté le plus précisément possible&lt;br /&gt;
&lt;br /&gt;
* Concevoir nos propres objets connectés tous différents mais basés sur un même modèle&lt;br /&gt;
&lt;br /&gt;
* Interpréter les spectrogrammes, faire une étude statistique des signaux émis par nos différents objets et en tirer des conclusions&lt;br /&gt;
&lt;br /&gt;
* Répertorier dans une base de données les signatures de nos objets , voire de quelques objets disponibles sur le marché&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix logiciel :&lt;br /&gt;
&lt;br /&gt;
- La distribution Linux Pentoo ou Kali pour traiter les signaux avec GNU RADIO (Suite logicielle dédiée à l’implémentation de radios logicielles et de systèmes de traitement du signal).&lt;br /&gt;
&lt;br /&gt;
- FemtoOS pour l'OS des ATMEGA328P et ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix Matériel : &lt;br /&gt;
&lt;br /&gt;
- Plusieurs modules radios émetteurs &lt;br /&gt;
&lt;br /&gt;
- Plusieurs microcontrôleurs ATMEGA328P et un ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
- Des alimentations identiques pour chaque PCB&lt;br /&gt;
&lt;br /&gt;
- Un HackRF pour la réception des signaux&lt;br /&gt;
&lt;br /&gt;
- Une antenne 50 Ohm pour le HackRF [https://www.passion-radio.fr/accessoires-sdr/antenne-ant500-74.html]&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous devons préparer tout le matériel qui servira à faire nos tests. C'est à dire concevoir :&lt;br /&gt;
&lt;br /&gt;
- Un ensemble SDR/PC qui traitera le signal reçu avec GNU RADIO.&lt;br /&gt;
&lt;br /&gt;
- Une multitude de PCB qui seront nos objets connectés (Sur chacun d'entre eux on trouvera au minimum une antenne radio, un microcontrôleur et une alimentation)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de récupérer une &amp;quot;signature&amp;quot; d'un de nos objets , il faudra faire plus de 50 analyses spectrales pour conclure statistiquement sur une bonne signature qui caractérisera l'objet.&lt;br /&gt;
&lt;br /&gt;
Nous devons donc dans un second temps: &lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques mais qui ont un '''firmware''' différent.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques qui ont pour seule différence le '''microcontrôleur'''.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques dont seul le '''PCB''' diffère.&lt;br /&gt;
&lt;br /&gt;
Grâce à tous ces tests , nous pourrons conclure et voir l'impact qu'à le matériel ou le logiciel sur la signature d'un objet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enfin si les délais nous le permettent, nous pourrons réaliser un software qui cartographiera nos objets connectés dans la pièce grâce à la puissance de la signature reçue (Ce qui devrait être réalisable puisqu'à ce stade nous aurons une base de donnée des signatures).&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
|3&lt;br /&gt;
|8&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Recherches&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|6&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Prise en main de GnuRadio&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Configuration Xbee&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|4&lt;br /&gt;
|15&lt;br /&gt;
|9&lt;br /&gt;
|8&lt;br /&gt;
|7&lt;br /&gt;
|8&lt;br /&gt;
|8&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
[[Fichier:HackrfOne.jpeg|200px|thumb|right|Le HackRF One]]&lt;br /&gt;
Durant cette semaine, nous avons continué nos recherches notamment sur le moyen de transmission de nos objets connectés. Nous avons confirmé notre choix de notre SDR : Monsieur Boé nous a confirmé que des HackRF seraient disponibles dans les laboratoires et qu'il pourrait nous en prêter un. On disposera donc d'une antenne puissante pour traiter les signaux émis par nos objets communiquants. &lt;br /&gt;
&lt;br /&gt;
Il faudra coupler notre HackRF avec un logiciel appelé GNU RADIO qui est un logiciel très complet ( Pour information : la NASA a utilisé GNU RADIO afin de rétablir le contact avec une sonde spatiale abandonnée ). Afin de faire tourner ce logiciel libre, nous aurons besoin de la distribution Kali Linux, ex Backtrack.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Choix des émetteurs/récepteurs === &lt;br /&gt;
&lt;br /&gt;
Nous avons décidé que nos objets connectés communiqueront dans deux '''bandes de fréquences ISM''', l'une à '''900 MHz''' grâce à des modules Digi Xbee et l'autre à '''2,4 GHz''' par le moyen de modules émetteurs Bluetooth. On rappellera que les Digi Xbee et les émetteurs/récepteurs Bluetooth seront pilotés par des ATMEGA 2560.&lt;br /&gt;
&lt;br /&gt;
Les Xbee ne communiqueront pas entre eux et émettront en continu les mêmes données car ils le peuvent, alors que les émetteurs/récepteurs Bluetooth devront s'échanger des données si on veut pouvoir observer un quelconque signal autour de la fréquence de leurs porteuses. &lt;br /&gt;
&lt;br /&gt;
On voudra observer premièrement, si avec deux objets dans les '''mêmes''' conditions (donc même µc et même émetteur), on peut ou non '''distinguer une différence'''. Ceci est fondamental pour la suite des expériences, puisque si les deux émettent à la même fréquence, on pourra faire varier plusieurs paramètres afin de trouver '''des clés''' (des signes) qui pourraient aider à l'identification du matériel.&lt;br /&gt;
&lt;br /&gt;
Ces clés représentent différents facteurs potentiels d'identification du signal (le rapport signal-bruit en fonction de la distance par exemple...).&lt;br /&gt;
&lt;br /&gt;
''On planifie alors pour la semaine suivante de réussir à faire émettre, en utilisant simplement des breadboards pour commencer, nos Xbee et modules BT et observer quelque chose grâce à notre SDR.''&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration des modules XBee ===&lt;br /&gt;
&lt;br /&gt;
Nous avons configuré deux XBee afin qu'ils puissent communiquer entre eux : &lt;br /&gt;
&lt;br /&gt;
Les modules XBee ont été montés sur des platines d'interface USB/série de manière à ce qu'on puisse les paramétrer via le programme de contrôle ''minicom''. &lt;br /&gt;
&lt;br /&gt;
Dans le doute, on supposera que les XBee communiquent à 9600 Baud. On exécute la commande suivante : &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;minicom -b 9600 -D /dev/ttyUSB0&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
On active l'echo local dans minicom, afin de pouvoir observer ce qui a été envoyé par liaison série au XBee ('''CTRL+A''' puis '''E''').&lt;br /&gt;
&lt;br /&gt;
Pour commencer le paramètrage il faut taper ''' +++ ''' rapidement. Le XBee nous répond OK, cela veut dire que nous sommes dans le mode configuration et que nous pouvons utiliser les commandes '''AT'''. (Redirection vers la liste des commandes AT XBee [https://cdn.sparkfun.com/assets/resources/2/9/22AT_Commands.pdf]).&lt;br /&gt;
&lt;br /&gt;
Comme nos XBee ont été utilisés auparavant, il a fallu les restaurer à l'état usine avec la commande '''ATRE'''.&lt;br /&gt;
&lt;br /&gt;
Si on souhaite que des XBee puissent s'envoyer des données il faut qu'ils soient sur le même canal (commande '''ATCH''') et aient le même PAN ID (commande '''ATID'''). Notre PAN ID sera '''BEE6''' et le canal sera celui par défaut '''C'''.&lt;br /&gt;
&lt;br /&gt;
Ensuite il faut leur donner une adresse de destination ('''ATDH''' &amp;amp; '''ATDL''') qui sera l'adresse broadcast, pour ce faire on entre &lt;br /&gt;
 ATDH=0000&lt;br /&gt;
 ATDL=FFFF&lt;br /&gt;
&lt;br /&gt;
Enfin '''ATMY''' représente l'ID du XBee, notre premier XBee aura comme ID 5000 et le second 5001.&lt;br /&gt;
&lt;br /&gt;
N'oublions pas de sauvegarder les paramètres avec '''ATWR'''.&lt;br /&gt;
&lt;br /&gt;
On vérifie que tout a bien été pris en compte :&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;&lt;br /&gt;
+++OK&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATID&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
BEE6&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
C&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
0&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDL&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
FFFF&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATMY&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
5000&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCN&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Puis on fait de même avec le deuxième XBee (ID 5001).&lt;br /&gt;
&lt;br /&gt;
Voilà, lorsque on envoi des caractères par liaison série sur 5000, la LED '''Tx''' de 5000 s'allume et la Led '''Rx''' de 5001 s'allume elle aussi. Cela signifie que l'envoi de donnée par onde radio s'effectue correctement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que les XBee émettent et reçoivent, on peut commencer les mesures avec notre SDR. Mais avant cela il va falloir bien se familiariser avec le logiciel GNU RADIO qui est assez difficile à prendre en main.&lt;br /&gt;
&lt;br /&gt;
=== Première prise en main du logiciel GNURADIO ===&lt;br /&gt;
&lt;br /&gt;
Installation de GNU radio avec les fonctions + drivers pour HackRF : &lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install gqrx gnuradio gr-osmosdr hackrf &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le bloc Osmocom Source sert de &amp;quot;passerelle&amp;quot; entre le logiciel et la SDR, il permet de transmettre les informations récupérées par le HackRF afin qu'on puisse les traiter avec d'autres bloc de fonctions.&lt;br /&gt;
&lt;br /&gt;
Si on veut pouvoir récuperer les données il faut passer l'argument ''hackrf=0'' dans la box périphérique du bloc Osmocom.&lt;br /&gt;
&lt;br /&gt;
Ci-dessous on peut voir le spectre environnant entre 2.44GHz et 2.460GHz grâce au bloc WX GUI FFT Sink.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ScreenGnuRadio.png|Interface de GNURadio]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous a permis d'effectuer notre première expérience. L'utilisation des deux Xbees nous a permis d'observer l'impact des Xbee sur le champ électromagéntique environnant.&lt;br /&gt;
&lt;br /&gt;
Si on analyse le spectre environnant grâce au module FFT de GNU Radio, lorsque les Xbee communiquent entre eux, on peut apercevoir un pic caractéristique propre.&lt;br /&gt;
En effet, lors de l'emission d'un message sur le port série, on a un pic qui se dégage du spectre d'amplitude -20dBm. Ce pic est caractéristique au canal de communication choisi et configuré sur le Xbee.&lt;br /&gt;
Néanmoins, le signal est perturbé par le bruit environnant. &lt;br /&gt;
L'expérience étant effectuée au sein de l'école, les signaux Wi-Fi perturberont l'étude.&lt;br /&gt;
Il faut noter que la norme IEEE 802.11 impose au Wi-Fi l'utilisation d'une bande passante s'étalant de 2.4 GHz à 2.5 GHz.&lt;br /&gt;
&lt;br /&gt;
La bande passante des modules Zigbee se décomposent en 16 canaux, allant de 2400 MHz à 2480 MHz par pas de 5 MHz.&lt;br /&gt;
&lt;br /&gt;
Le canal ici utilisé est le canal 13 (3ème canal) de fréquence 2415 MHz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- [[Fichier:Channel135001.png|thumb|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Fichier:channel135000.png|thumb|none|400 px]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:XBeeCh13.png|Spectre de l'environnement autour du XBee|thumb|400 px]][[Fichier:XBeeCh13SND.png|Lors de l'envoi de données au XBee voisin|thumb|none|400 px]]&lt;br /&gt;
&lt;br /&gt;
On peut observer un pic de puissance lors de l'envoi d'une donnée en série à la fréquence 2.415 GHz.&lt;br /&gt;
Il nous est maintenant nécessaire d'analyser de plus près les signaux et leurs fréquence centrale dans la bande perçue au dessus de -20dB.&lt;br /&gt;
&lt;br /&gt;
On réeffectuera une expérience en zone isolée des signaux parasites.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous avons principalement fait des recherches dans le but de mieux comprendre les signaux émis par le Xbee.&lt;br /&gt;
&lt;br /&gt;
En somme, nous étions confrontés à de nombreuses interrogations. Le fonctionnement du Xbee étant assez simple et la sécurité du protocole Zigbee étant moindre, y a t-il possibilité de démoduler le signal émis afin de développer nos études ?&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
[[Fichier:Switchchannel pyscript.PNG|upright=0.8|thumb|right|Programme Python fait rapidement]]&lt;br /&gt;
Après réflexion et consultation de nos encadrants, nous nous sommes rendu compte que la démodulation prévue lors de la semaine 4 n'aiderait pas à répondre à la problématique de notre sujet !  &lt;br /&gt;
&lt;br /&gt;
Afin de mieux visualiser les signaux des Xbee , on décide d'automatiser le processus d'envoie sur le port série des données vers le Xbee. C'est à dire concevoir un programme Python qui automatisera l'envoi de données et le changement de channel à intervalle de temps régulier (Changement toutes les 10 secondes). &lt;br /&gt;
&lt;br /&gt;
L'utilisation de Minicom '''n'était pas du tout la meilleure solution''' pour faire émettre les Xbee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Après quelques essais, on remarque que lorsque le Xbee émet sur le channel 13, il émet à environ 2,445GHz au lieu d'émettre à 2,415GHz soit une différence de 30MHz : Ceci n'est pas important, car ce que l'on souhaite remarquer c'est un éventuel décalage de la fréquence centrale entre deux Xbee différents. Si les deux Xbee n'ont pas la même frequence centrale on pourra conclure que la '''fréquence centrale''' de la porteuse du Xbee n'est pas '''une des clés''' permettant d''''identifier''' cet émetteur/récepteur.&lt;br /&gt;
&lt;br /&gt;
==Semaine 6==&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;/div&gt;</summary>
		<author><name>Amoreau</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=70491</id>
		<title>IMA4 2018/2019 P70</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=70491"/>
				<updated>2019-03-06T16:48:59Z</updated>
		
		<summary type="html">&lt;p&gt;Amoreau : /* Semaine 5 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;font-size: 30px; width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;Impact du matériel et du logiciel sur le champ électromagnétique&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Projet'''&amp;lt;/ins&amp;gt; : Impact du matériel et du logiciel sur le rayonnement électromagnétique&lt;br /&gt;
&lt;br /&gt;
''Nous proposons d'évaluer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et la consommation électrique.''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Etudiants'''&amp;lt;/ins&amp;gt; : Souheib KHINACHE et Antoine MOREAU&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Encadrants'''&amp;lt;/ins&amp;gt; : Alexandre BOE, Xavier REDON et Thomas VANTROYS&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'internet des objets est un marché en plein essor. La communication entre les différents objets connectés crée un nuage de signaux autour d'eux. Ces derniers sont vus par les utilisateurs comme des boîtes noires : le fonctionnement se fait sans en connaître les composants matériels et logiciels. &lt;br /&gt;
Néanmoins, ces objets, de par leurs propriétés électroniques, créent des fuites électromagnétiques impactant le champ environnant. &lt;br /&gt;
&lt;br /&gt;
Bien qu'ils peuvent porter à débat sur l'impact sur la santé, ces signaux peuvent représenter de réelles sources d'informations sur l'aspect matériel et applicatif de l'objet.&lt;br /&gt;
&lt;br /&gt;
Il serait donc intéressant d'avoir idée générale sur le fonctionnement du système en interprétant les ondes électromagnétiques émises par ce système.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Les principaux objectifs de ce projet seront donc de mesurer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et sur la consommation électrique.&lt;br /&gt;
Pour cela, l'outil potentiel avec lequel nous pourrions travailler serait une sonde de champ électromagnétique afin d'établir des mesures. &lt;br /&gt;
Cependant, nous pourrions concevoir notre propre système de capture et d'interprétation à partir d'une antenne, de filtres de fréquences et d'un microcontrôleur (on commencera par un ATMega328P). Il sera nécessaire de prendre en compte les perturbations issues de notre appareil de mesure et d'en tenir compte.&lt;br /&gt;
&lt;br /&gt;
On effectuera ainsi plusieurs expérimentations sur différents supports d'étude :&lt;br /&gt;
*l'aspect &amp;quot;Hardware&amp;quot; en étudiant différents modèles pour un même type de shield  &lt;br /&gt;
*l'aspect calculatoire du matériel en se basant sur l'impact des microcontrôleurs en fonction du modèle (ATMega328P et ATMega2560)&lt;br /&gt;
*l'aspect &amp;quot;Software&amp;quot;, en étudiant l'impact du logiciel et du firmware d'un même composant (différents firmwares pour un même shield Wi-Fi)&lt;br /&gt;
*l'aspect puissance des composants électroniques de gestion de puissance (ponts, hacheurs, onduleurs...).&lt;br /&gt;
&lt;br /&gt;
L'étude des différentes informations se fera par traitement des signaux électromagnétiques et des spectres. &lt;br /&gt;
Afin de mieux appréhender le problème, il nous est nécessaire de comprendre les phénomènes physiques issus de la notion d'électromagnétisme.&lt;br /&gt;
&lt;br /&gt;
Ces études mèneront à une étape plus complexe : l'interprétation des signaux. En effet, l'un des objectifs de ce projet est de comprendre du mieux possible le fonctionnement d'un système sans y avoir accès directement, et donc dans ce contexte &amp;quot;traduire&amp;quot; un ensemble de signaux électromagnétiques.&lt;br /&gt;
&lt;br /&gt;
On pourra en outre apporter un aspect visuel à l'étude en rajoutant une interface informatique.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
Bien qu'aux yeux de nombreuses personnes le bruit électromagnétique créé par les équipements électroniques du quotidien peut porter à controverse (débats concernant l'impact sur la santé par exemple), il peut être une source d'informations. &lt;br /&gt;
De nos jours, les ondes électromagnétiques restent un vaste champ d'étude, sujettes à de nombreuses thèses et recherches au sein des laboratoires.&lt;br /&gt;
&lt;br /&gt;
On peut prendre l'exemple de [https://www.eurekalert.org/pub_releases/2015-01/giot-rwt010715.php Milos Prvulovic], professeur à l'Institut Technologique de Géorgie, ayant simulé un contexte de cybercafé, dans lequel il place une antenne magnétique, un ordinateur portable cible et un ordinateur &amp;quot;espion&amp;quot;. Il réussit, grâce aux signaux EM émis par l'impulsion de l'appui des touches clavier à capter un message écrit par un ordinateur cible. &lt;br /&gt;
&lt;br /&gt;
Néanmoins, dans le quotidien, l'utilisation des sondes électromagnétiques se fait pour l'étude énergétique d'un système électronique (fuites électromagnétiques anormales, preuves d'une anomalie...) afin de respecter certaines normes législatives. Le code du travail par exemple réglemente et définit des valeurs seuils par le biais des articles R. 4453-3 et R. 4453-4.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
'''NBM-520 de NARDA STS'''&lt;br /&gt;
[[Fichier: NBM_TS.png|thumb|300px|NBM-TS, application des appareils NBM]]&lt;br /&gt;
NARDA STS est une entreprise qui fournit des outils de mesure. Elle met à disposition aux professionnels des sondes électromagnétiques.&lt;br /&gt;
La NBM-520 est un appareil de la franchise, mesurant le champ électrique et magnétique. Elle donne des valeurs précises du champ électromagnétique ambiant sur une large bande. Elle propose différentes sondes modulables permettant une souplesse au niveau de l'étude en fonction des besoins, avec des sondes pouvant étudier des signaux de fréquence de 100kHz à 6GHz ou même de 300kHz à 50GHz (en fonction de la sonde choisie).&lt;br /&gt;
&lt;br /&gt;
En outre, le dispositif peut se connecter en USB sur PC afin d'envoyer les données capturées et d'en faire une étude. Le dispositif propose un logiciel d'étude, NBM-TS, permettant d'observer du champ en fonction du temps, de la fréquence, de la position...&lt;br /&gt;
&lt;br /&gt;
L'équipement est utilisé par l'ANF (l'Agence Nationale des Fréquences, agence gérant l'ensemble des normes autour des radiofréquences), et est donc un gage de qualité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Avantages :''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Large bande de fréquence&lt;br /&gt;
* Matériel solide&lt;br /&gt;
* Application fonctionnelle permettant l'étude et gestion des données&lt;br /&gt;
* Possibilité d'étudier séparément champ électrique et magnétique&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Inconvénients:''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Impossible d'étudier les basses fréquences (appareils sous tension, bobinages...)&lt;br /&gt;
* Prix élevé : à partir de 3100€&lt;br /&gt;
* La cible de ce produit est surtout les professionels&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
'''Une pita.'''&lt;br /&gt;
&lt;br /&gt;
''Comment mon pain à pita vole ta clé RSA ?''&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Pita.jpg|200px|thumb|left|Une pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Des chercheurs israéliens ont découvert un moyen de capturer des clés de cryptage RSA, réputées comme inviolables, par le biais d'une pita... du moins avec un dispositif suffisamment petit pour être caché dans un pain à pita. &lt;br /&gt;
Le dispositif, renommé PITA pour Portable Instrument for Trace Acquisition a la particularité de capturer les ondes radio électromagnétiques émanantes d'un PC, qu'il soit connecté à un réseau ou pas.&lt;br /&gt;
Les différentes opérations du processeur sont identifiées en distinguant les différents modèles de l'activité radio sur le spectre EM.&lt;br /&gt;
&lt;br /&gt;
Bien que la capture des clés RSA a été faite dans des conditions particulières (modification du processeur de l'ordinateur cible), il est néanmoins possible, selon les chercheurs, d'identifier quelle type d'activité est exercée par l'ordinateur ainsi que son état.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PITA.jpg|300px|thumb|right|Un dessous de pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'un des points importants concernant le dispositif est son coût : moins de 300 euros.&lt;br /&gt;
L'appareil dispose :&lt;br /&gt;
* d'un PC portatif (PC-on-a-stick) ''Rikomagic MK802 IV'',&lt;br /&gt;
* d'un recepteur radio SDR ''FUNcube Dongle Pro+''&lt;br /&gt;
* d'une antenne radio&lt;br /&gt;
* d'une batterie&lt;br /&gt;
* d'une antenne WiFi&lt;br /&gt;
* d'une carte MicroSD&lt;br /&gt;
* d'un adapteur d'antenne&lt;br /&gt;
* et d'une '''pita'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le dispositif aurait une portée de 50cm. &lt;br /&gt;
Les chercheurs israéliens ont collaboré avec GNU Private Guard (logiciel de cryptage asymétrique) afin de protéger contre ces attaques les clés de cryptage.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
&lt;br /&gt;
''Scénario 1''&lt;br /&gt;
&lt;br /&gt;
Gérard a toujours le flair pour les bonnes affaires. Il a acheté une centaine de clés WiFi à un prix dérisoire sur AloXpresso afin de faire du profit à la revente. Le vendeur lui garantit que toutes les clés fonctionnent correctement. Gérard veut vérifier. Après vérification, 99 des clés sur 100 fonctionnent comme prévu. Gérard aimerait être sûr du disfonctionnement, mais Gérard n'est pas une pointure en informatique. &lt;br /&gt;
&lt;br /&gt;
Coup de génie ! Il se rappelle qu'il dispose d'un dispositif qui capte les ondes EM et les interprète directement. C'est le moment de tester ça. Il remarque une anomalie sur le spectre.&lt;br /&gt;
Il décide de contacter le revendeur pour lui signaler un disfonctionnement sur l'une des clé. &lt;br /&gt;
Pas de soucis. Le vendeur, étant bon prince, lui envoie une autre clé USB et lui fait une ristourne.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Scénario 2''&lt;br /&gt;
&lt;br /&gt;
La police fait une perquisition chez un individu soupçonné de graves délits. Cela fait plusieurs mois que la brigade criminelle prépare l'intervention, et une fois sur les lieux ils arrêtent le soupçonné malfaiteur.&lt;br /&gt;
Cependant avant de repartir, elle veut faire l'acquisition d'un maximum de preuves. Elle veut alors prendre l'essentiel des objets, dont certains objets éléctroniques connectés de l'individu dont elle pourra extraire les informations qui serviront à le faire tomber.&lt;br /&gt;
&lt;br /&gt;
Par chance, elle dispose d'un petit outil qui scannera les signatures alentours des objets connectés, comme des téléphones cachés, clés USB wifi dissimulées dans le décor etc..&lt;br /&gt;
Et si le suspect avait modifié malignement un objet connecté banal pour l'utiliser autrement à ses fins, la police le découvrirait car elle possède une base de données de toutes les signatures spectrales des objets connectés sur le marché et celle de l'objet modifié ne collerait pas avec celle de la base de données.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
&lt;br /&gt;
'''Comment étudier les signaux malgré les perturbations électromagnétiques ambiants et les faibles signaux des µC ?'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les signaux électromagnétiques des microcontrôleurs ou d'autres composants peuvent être faibles. Il y a une possibilité pour palier à ce problème, c'est de capter les signaux depuis une antenne émettrice que l'on rajoute à l'objet d'étude. &lt;br /&gt;
Nous utiliserons un SDR (Software Defined-Radio) afin de capter les ondes radio et les étudier directement sur PC. Le filtrage s'effectuera ainsi de manière numérique. Plusieurs tests seront effectués pour le même objet à étudier (quand on parle d'objet, on évoque un ensemble de plusieurs composants, comme par exemple une alimentation, un micro-contrôleur et une antenne). Ainsi, de manière statistique, nous pourrons en déduire un pattern récurrent pour chaque expérience en les effectuant dans différents environnements (pourquoi pas une chambre anachoïque). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons &lt;br /&gt;
* Capter le signal émis par un objet connecté le plus précisément possible&lt;br /&gt;
&lt;br /&gt;
* Concevoir nos propres objets connectés tous différents mais basés sur un même modèle&lt;br /&gt;
&lt;br /&gt;
* Interpréter les spectrogrammes, faire une étude statistique des signaux émis par nos différents objets et en tirer des conclusions&lt;br /&gt;
&lt;br /&gt;
* Répertorier dans une base de données les signatures de nos objets , voire de quelques objets disponibles sur le marché&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix logiciel :&lt;br /&gt;
&lt;br /&gt;
- La distribution Linux Pentoo ou Kali pour traiter les signaux avec GNU RADIO (Suite logicielle dédiée à l’implémentation de radios logicielles et de systèmes de traitement du signal).&lt;br /&gt;
&lt;br /&gt;
- FemtoOS pour l'OS des ATMEGA328P et ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix Matériel : &lt;br /&gt;
&lt;br /&gt;
- Plusieurs modules radios émetteurs &lt;br /&gt;
&lt;br /&gt;
- Plusieurs microcontrôleurs ATMEGA328P et un ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
- Des alimentations identiques pour chaque PCB&lt;br /&gt;
&lt;br /&gt;
- Un HackRF pour la réception des signaux&lt;br /&gt;
&lt;br /&gt;
- Une antenne 50 Ohm pour le HackRF [https://www.passion-radio.fr/accessoires-sdr/antenne-ant500-74.html]&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous devons préparer tout le matériel qui servira à faire nos tests. C'est à dire concevoir :&lt;br /&gt;
&lt;br /&gt;
- Un ensemble SDR/PC qui traitera le signal reçu avec GNU RADIO.&lt;br /&gt;
&lt;br /&gt;
- Une multitude de PCB qui seront nos objets connectés (Sur chacun d'entre eux on trouvera au minimum une antenne radio, un microcontrôleur et une alimentation)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de récupérer une &amp;quot;signature&amp;quot; d'un de nos objets , il faudra faire plus de 50 analyses spectrales pour conclure statistiquement sur une bonne signature qui caractérisera l'objet.&lt;br /&gt;
&lt;br /&gt;
Nous devons donc dans un second temps: &lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques mais qui ont un '''firmware''' différent.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques qui ont pour seule différence le '''microcontrôleur'''.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques dont seul le '''PCB''' diffère.&lt;br /&gt;
&lt;br /&gt;
Grâce à tous ces tests , nous pourrons conclure et voir l'impact qu'à le matériel ou le logiciel sur la signature d'un objet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enfin si les délais nous le permettent, nous pourrons réaliser un software qui cartographiera nos objets connectés dans la pièce grâce à la puissance de la signature reçue (Ce qui devrait être réalisable puisqu'à ce stade nous aurons une base de donnée des signatures).&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
|3&lt;br /&gt;
|8&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Recherches&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|6&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Prise en main de GnuRadio&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Configuration Xbee&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|4&lt;br /&gt;
|15&lt;br /&gt;
|9&lt;br /&gt;
|8&lt;br /&gt;
|7&lt;br /&gt;
|8&lt;br /&gt;
|8&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
[[Fichier:HackrfOne.jpeg|200px|thumb|right|Le HackRF One]]&lt;br /&gt;
Durant cette semaine, nous avons continué nos recherches notamment sur le moyen de transmission de nos objets connectés. Nous avons confirmé notre choix de notre SDR : Monsieur Boé nous a confirmé que des HackRF seraient disponibles dans les laboratoires et qu'il pourrait nous en prêter un. On disposera donc d'une antenne puissante pour traiter les signaux émis par nos objets communiquants. &lt;br /&gt;
&lt;br /&gt;
Il faudra coupler notre HackRF avec un logiciel appelé GNU RADIO qui est un logiciel très complet ( Pour information : la NASA a utilisé GNU RADIO afin de rétablir le contact avec une sonde spatiale abandonnée ). Afin de faire tourner ce logiciel libre, nous aurons besoin de la distribution Kali Linux, ex Backtrack.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Choix des émetteurs/récepteurs === &lt;br /&gt;
&lt;br /&gt;
Nous avons décidé que nos objets connectés communiqueront dans deux '''bandes de fréquences ISM''', l'une à '''900 MHz''' grâce à des modules Digi Xbee et l'autre à '''2,4 GHz''' par le moyen de modules émetteurs Bluetooth. On rappellera que les Digi Xbee et les émetteurs/récepteurs Bluetooth seront pilotés par des ATMEGA 2560.&lt;br /&gt;
&lt;br /&gt;
Les Xbee ne communiqueront pas entre eux et émettront en continu les mêmes données car ils le peuvent, alors que les émetteurs/récepteurs Bluetooth devront s'échanger des données si on veut pouvoir observer un quelconque signal autour de la fréquence de leurs porteuses. &lt;br /&gt;
&lt;br /&gt;
On voudra observer premièrement, si avec deux objets dans les '''mêmes''' conditions (donc même µc et même émetteur), on peut ou non '''distinguer une différence'''. Ceci est fondamental pour la suite des expériences, puisque si les deux émettent à la même fréquence, on pourra faire varier plusieurs paramètres afin de trouver '''des clés''' (des signes) qui pourraient aider à l'identification du matériel.&lt;br /&gt;
&lt;br /&gt;
Ces clés représentent différents facteurs potentiels d'identification du signal (le rapport signal-bruit en fonction de la distance par exemple...).&lt;br /&gt;
&lt;br /&gt;
''On planifie alors pour la semaine suivante de réussir à faire émettre, en utilisant simplement des breadboards pour commencer, nos Xbee et modules BT et observer quelque chose grâce à notre SDR.''&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration des modules XBee ===&lt;br /&gt;
&lt;br /&gt;
Nous avons configuré deux XBee afin qu'ils puissent communiquer entre eux : &lt;br /&gt;
&lt;br /&gt;
Les modules XBee ont été montés sur des platines d'interface USB/série de manière à ce qu'on puisse les paramétrer via le programme de contrôle ''minicom''. &lt;br /&gt;
&lt;br /&gt;
Dans le doute, on supposera que les XBee communiquent à 9600 Baud. On exécute la commande suivante : &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;minicom -b 9600 -D /dev/ttyUSB0&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
On active l'echo local dans minicom, afin de pouvoir observer ce qui a été envoyé par liaison série au XBee ('''CTRL+A''' puis '''E''').&lt;br /&gt;
&lt;br /&gt;
Pour commencer le paramètrage il faut taper ''' +++ ''' rapidement. Le XBee nous répond OK, cela veut dire que nous sommes dans le mode configuration et que nous pouvons utiliser les commandes '''AT'''. (Redirection vers la liste des commandes AT XBee [https://cdn.sparkfun.com/assets/resources/2/9/22AT_Commands.pdf]).&lt;br /&gt;
&lt;br /&gt;
Comme nos XBee ont été utilisés auparavant, il a fallu les restaurer à l'état usine avec la commande '''ATRE'''.&lt;br /&gt;
&lt;br /&gt;
Si on souhaite que des XBee puissent s'envoyer des données il faut qu'ils soient sur le même canal (commande '''ATCH''') et aient le même PAN ID (commande '''ATID'''). Notre PAN ID sera '''BEE6''' et le canal sera celui par défaut '''C'''.&lt;br /&gt;
&lt;br /&gt;
Ensuite il faut leur donner une adresse de destination ('''ATDH''' &amp;amp; '''ATDL''') qui sera l'adresse broadcast, pour ce faire on entre &lt;br /&gt;
 ATDH=0000&lt;br /&gt;
 ATDL=FFFF&lt;br /&gt;
&lt;br /&gt;
Enfin '''ATMY''' représente l'ID du XBee, notre premier XBee aura comme ID 5000 et le second 5001.&lt;br /&gt;
&lt;br /&gt;
N'oublions pas de sauvegarder les paramètres avec '''ATWR'''.&lt;br /&gt;
&lt;br /&gt;
On vérifie que tout a bien été pris en compte :&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;&lt;br /&gt;
+++OK&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATID&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
BEE6&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
C&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
0&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDL&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
FFFF&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATMY&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
5000&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCN&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Puis on fait de même avec le deuxième XBee (ID 5001).&lt;br /&gt;
&lt;br /&gt;
Voilà, lorsque on envoi des caractères par liaison série sur 5000, la LED '''Tx''' de 5000 s'allume et la Led '''Rx''' de 5001 s'allume elle aussi. Cela signifie que l'envoi de donnée par onde radio s'effectue correctement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que les XBee émettent et reçoivent, on peut commencer les mesures avec notre SDR. Mais avant cela il va falloir bien se familiariser avec le logiciel GNU RADIO qui est assez difficile à prendre en main.&lt;br /&gt;
&lt;br /&gt;
=== Première prise en main du logiciel GNURADIO ===&lt;br /&gt;
&lt;br /&gt;
Installation de GNU radio avec les fonctions + drivers pour HackRF : &lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install gqrx gnuradio gr-osmosdr hackrf &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le bloc Osmocom Source sert de &amp;quot;passerelle&amp;quot; entre le logiciel et la SDR, il permet de transmettre les informations récupérées par le HackRF afin qu'on puisse les traiter avec d'autres bloc de fonctions.&lt;br /&gt;
&lt;br /&gt;
Si on veut pouvoir récuperer les données il faut passer l'argument ''hackrf=0'' dans la box périphérique du bloc Osmocom.&lt;br /&gt;
&lt;br /&gt;
Ci-dessous on peut voir le spectre environnant entre 2.44GHz et 2.460GHz grâce au bloc WX GUI FFT Sink.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ScreenGnuRadio.png|Interface de GNURadio]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous a permis d'effectuer notre première expérience. L'utilisation des deux Xbees nous a permis d'observer l'impact des Xbee sur le champ électromagéntique environnant.&lt;br /&gt;
&lt;br /&gt;
Si on analyse le spectre environnant grâce au module FFT de GNU Radio, lorsque les Xbee communiquent entre eux, on peut apercevoir un pic caractéristique propre.&lt;br /&gt;
En effet, lors de l'emission d'un message sur le port série, on a un pic qui se dégage du spectre d'amplitude -20dBm. Ce pic est caractéristique au canal de communication choisi et configuré sur le Xbee.&lt;br /&gt;
Néanmoins, le signal est perturbé par le bruit environnant. &lt;br /&gt;
L'expérience étant effectuée au sein de l'école, les signaux Wi-Fi perturberont l'étude.&lt;br /&gt;
Il faut noter que la norme IEEE 802.11 impose au Wi-Fi l'utilisation d'une bande passante s'étalant de 2.4 GHz à 2.5 GHz.&lt;br /&gt;
&lt;br /&gt;
La bande passante des modules Zigbee se décomposent en 16 canaux, allant de 2400 MHz à 2480 MHz par pas de 5 MHz.&lt;br /&gt;
&lt;br /&gt;
Le canal ici utilisé est le canal 13 (3ème canal) de fréquence 2415 MHz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- [[Fichier:Channel135001.png|thumb|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Fichier:channel135000.png|thumb|none|400 px]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:XBeeCh13.png|Spectre de l'environnement autour du XBee|thumb|400 px]][[Fichier:XBeeCh13SND.png|Lors de l'envoi de données au XBee voisin|thumb|none|400 px]]&lt;br /&gt;
&lt;br /&gt;
On peut observer un pic de puissance lors de l'envoi d'une donnée en série à la fréquence 2.415 GHz.&lt;br /&gt;
Il nous est maintenant nécessaire d'analyser de plus près les signaux et leurs fréquence centrale dans la bande perçue au dessus de -20dB.&lt;br /&gt;
&lt;br /&gt;
On réeffectuera une expérience en zone isolée des signaux parasites.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous avons principalement fait des recherches dans le but de mieux comprendre les signaux émis par le Xbee.&lt;br /&gt;
&lt;br /&gt;
En somme, nous étions confrontés à de nombreuses interrogations. Le fonctionnement du Xbee étant assez simple et la sécurité du protocole Zigbee étant moindre, y a t-il possibilité de démoduler le signal émis afin de développer nos études ?&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
[[Fichier:Switchchannel pyscript2.PNG|upright=0.8|thumb|right|Programme Python fait rapidement]]&lt;br /&gt;
Après réflexion et consultation de nos encadrants, nous nous sommes rendu compte que la démodulation prévue lors de la semaine 4 n'aiderait pas à répondre à la problématique de notre sujet !  &lt;br /&gt;
&lt;br /&gt;
Afin de mieux visualiser les signaux des Xbee , on décide d'automatiser le processus d'envoie sur le port série des données vers le Xbee. C'est à dire concevoir un programme Python qui automatisera l'envoi de données et le changement de channel à intervalle de temps régulier (Changement toutes les 10 secondes). &lt;br /&gt;
&lt;br /&gt;
L'utilisation de Minicom '''n'était pas du tout la meilleure solution''' pour faire émettre les Xbee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Après quelques essais, on remarque que lorsque le Xbee émet sur le channel 13, il émet à environ 2,445GHz au lieu d'émettre à 2,415GHz soit une différence de 30MHz : Ceci n'est pas important, car ce que l'on souhaite remarquer c'est un éventuel décalage de la fréquence centrale entre deux Xbee différents. Si les deux Xbee n'ont pas la même frequence centrale on pourra conclure que la '''fréquence centrale''' de la porteuse du Xbee n'est pas '''une des clés''' permettant d''''identifier''' cet émetteur/récepteur.&lt;br /&gt;
&lt;br /&gt;
==Semaine 6==&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;/div&gt;</summary>
		<author><name>Amoreau</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Switchchannel_pyscript.PNG&amp;diff=70490</id>
		<title>Fichier:Switchchannel pyscript.PNG</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Switchchannel_pyscript.PNG&amp;diff=70490"/>
				<updated>2019-03-06T16:44:48Z</updated>
		
		<summary type="html">&lt;p&gt;Amoreau : Amoreau a téléversé une nouvelle version de Fichier:Switchchannel pyscript.PNG&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Amoreau</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=70471</id>
		<title>IMA4 2018/2019 P70</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=70471"/>
				<updated>2019-03-06T15:57:00Z</updated>
		
		<summary type="html">&lt;p&gt;Amoreau : /* Réalisation du Projet */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;font-size: 30px; width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;Impact du matériel et du logiciel sur le champ électromagnétique&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Projet'''&amp;lt;/ins&amp;gt; : Impact du matériel et du logiciel sur le rayonnement électromagnétique&lt;br /&gt;
&lt;br /&gt;
''Nous proposons d'évaluer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et la consommation électrique.''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Etudiants'''&amp;lt;/ins&amp;gt; : Souheib KHINACHE et Antoine MOREAU&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Encadrants'''&amp;lt;/ins&amp;gt; : Alexandre BOE, Xavier REDON et Thomas VANTROYS&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'internet des objets est un marché en plein essor. La communication entre les différents objets connectés crée un nuage de signaux autour d'eux. Ces derniers sont vus par les utilisateurs comme des boîtes noires : le fonctionnement se fait sans en connaître les composants matériels et logiciels. &lt;br /&gt;
Néanmoins, ces objets, de par leurs propriétés électroniques, créent des fuites électromagnétiques impactant le champ environnant. &lt;br /&gt;
&lt;br /&gt;
Bien qu'ils peuvent porter à débat sur l'impact sur la santé, ces signaux peuvent représenter de réelles sources d'informations sur l'aspect matériel et applicatif de l'objet.&lt;br /&gt;
&lt;br /&gt;
Il serait donc intéressant d'avoir idée générale sur le fonctionnement du système en interprétant les ondes électromagnétiques émises par ce système.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Les principaux objectifs de ce projet seront donc de mesurer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et sur la consommation électrique.&lt;br /&gt;
Pour cela, l'outil potentiel avec lequel nous pourrions travailler serait une sonde de champ électromagnétique afin d'établir des mesures. &lt;br /&gt;
Cependant, nous pourrions concevoir notre propre système de capture et d'interprétation à partir d'une antenne, de filtres de fréquences et d'un microcontrôleur (on commencera par un ATMega328P). Il sera nécessaire de prendre en compte les perturbations issues de notre appareil de mesure et d'en tenir compte.&lt;br /&gt;
&lt;br /&gt;
On effectuera ainsi plusieurs expérimentations sur différents supports d'étude :&lt;br /&gt;
*l'aspect &amp;quot;Hardware&amp;quot; en étudiant différents modèles pour un même type de shield  &lt;br /&gt;
*l'aspect calculatoire du matériel en se basant sur l'impact des microcontrôleurs en fonction du modèle (ATMega328P et ATMega2560)&lt;br /&gt;
*l'aspect &amp;quot;Software&amp;quot;, en étudiant l'impact du logiciel et du firmware d'un même composant (différents firmwares pour un même shield Wi-Fi)&lt;br /&gt;
*l'aspect puissance des composants électroniques de gestion de puissance (ponts, hacheurs, onduleurs...).&lt;br /&gt;
&lt;br /&gt;
L'étude des différentes informations se fera par traitement des signaux électromagnétiques et des spectres. &lt;br /&gt;
Afin de mieux appréhender le problème, il nous est nécessaire de comprendre les phénomènes physiques issus de la notion d'électromagnétisme.&lt;br /&gt;
&lt;br /&gt;
Ces études mèneront à une étape plus complexe : l'interprétation des signaux. En effet, l'un des objectifs de ce projet est de comprendre du mieux possible le fonctionnement d'un système sans y avoir accès directement, et donc dans ce contexte &amp;quot;traduire&amp;quot; un ensemble de signaux électromagnétiques.&lt;br /&gt;
&lt;br /&gt;
On pourra en outre apporter un aspect visuel à l'étude en rajoutant une interface informatique.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
Bien qu'aux yeux de nombreuses personnes le bruit électromagnétique créé par les équipements électroniques du quotidien peut porter à controverse (débats concernant l'impact sur la santé par exemple), il peut être une source d'informations. &lt;br /&gt;
De nos jours, les ondes électromagnétiques restent un vaste champ d'étude, sujettes à de nombreuses thèses et recherches au sein des laboratoires.&lt;br /&gt;
&lt;br /&gt;
On peut prendre l'exemple de [https://www.eurekalert.org/pub_releases/2015-01/giot-rwt010715.php Milos Prvulovic], professeur à l'Institut Technologique de Géorgie, ayant simulé un contexte de cybercafé, dans lequel il place une antenne magnétique, un ordinateur portable cible et un ordinateur &amp;quot;espion&amp;quot;. Il réussit, grâce aux signaux EM émis par l'impulsion de l'appui des touches clavier à capter un message écrit par un ordinateur cible. &lt;br /&gt;
&lt;br /&gt;
Néanmoins, dans le quotidien, l'utilisation des sondes électromagnétiques se fait pour l'étude énergétique d'un système électronique (fuites électromagnétiques anormales, preuves d'une anomalie...) afin de respecter certaines normes législatives. Le code du travail par exemple réglemente et définit des valeurs seuils par le biais des articles R. 4453-3 et R. 4453-4.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
'''NBM-520 de NARDA STS'''&lt;br /&gt;
[[Fichier: NBM_TS.png|thumb|300px|NBM-TS, application des appareils NBM]]&lt;br /&gt;
NARDA STS est une entreprise qui fournit des outils de mesure. Elle met à disposition aux professionnels des sondes électromagnétiques.&lt;br /&gt;
La NBM-520 est un appareil de la franchise, mesurant le champ électrique et magnétique. Elle donne des valeurs précises du champ électromagnétique ambiant sur une large bande. Elle propose différentes sondes modulables permettant une souplesse au niveau de l'étude en fonction des besoins, avec des sondes pouvant étudier des signaux de fréquence de 100kHz à 6GHz ou même de 300kHz à 50GHz (en fonction de la sonde choisie).&lt;br /&gt;
&lt;br /&gt;
En outre, le dispositif peut se connecter en USB sur PC afin d'envoyer les données capturées et d'en faire une étude. Le dispositif propose un logiciel d'étude, NBM-TS, permettant d'observer du champ en fonction du temps, de la fréquence, de la position...&lt;br /&gt;
&lt;br /&gt;
L'équipement est utilisé par l'ANF (l'Agence Nationale des Fréquences, agence gérant l'ensemble des normes autour des radiofréquences), et est donc un gage de qualité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Avantages :''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Large bande de fréquence&lt;br /&gt;
* Matériel solide&lt;br /&gt;
* Application fonctionnelle permettant l'étude et gestion des données&lt;br /&gt;
* Possibilité d'étudier séparément champ électrique et magnétique&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Inconvénients:''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Impossible d'étudier les basses fréquences (appareils sous tension, bobinages...)&lt;br /&gt;
* Prix élevé : à partir de 3100€&lt;br /&gt;
* La cible de ce produit est surtout les professionels&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
'''Une pita.'''&lt;br /&gt;
&lt;br /&gt;
''Comment mon pain à pita vole ta clé RSA ?''&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Pita.jpg|200px|thumb|left|Une pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Des chercheurs israéliens ont découvert un moyen de capturer des clés de cryptage RSA, réputées comme inviolables, par le biais d'une pita... du moins avec un dispositif suffisamment petit pour être caché dans un pain à pita. &lt;br /&gt;
Le dispositif, renommé PITA pour Portable Instrument for Trace Acquisition a la particularité de capturer les ondes radio électromagnétiques émanantes d'un PC, qu'il soit connecté à un réseau ou pas.&lt;br /&gt;
Les différentes opérations du processeur sont identifiées en distinguant les différents modèles de l'activité radio sur le spectre EM.&lt;br /&gt;
&lt;br /&gt;
Bien que la capture des clés RSA a été faite dans des conditions particulières (modification du processeur de l'ordinateur cible), il est néanmoins possible, selon les chercheurs, d'identifier quelle type d'activité est exercée par l'ordinateur ainsi que son état.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PITA.jpg|300px|thumb|right|Un dessous de pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'un des points importants concernant le dispositif est son coût : moins de 300 euros.&lt;br /&gt;
L'appareil dispose :&lt;br /&gt;
* d'un PC portatif (PC-on-a-stick) ''Rikomagic MK802 IV'',&lt;br /&gt;
* d'un recepteur radio SDR ''FUNcube Dongle Pro+''&lt;br /&gt;
* d'une antenne radio&lt;br /&gt;
* d'une batterie&lt;br /&gt;
* d'une antenne WiFi&lt;br /&gt;
* d'une carte MicroSD&lt;br /&gt;
* d'un adapteur d'antenne&lt;br /&gt;
* et d'une '''pita'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le dispositif aurait une portée de 50cm. &lt;br /&gt;
Les chercheurs israéliens ont collaboré avec GNU Private Guard (logiciel de cryptage asymétrique) afin de protéger contre ces attaques les clés de cryptage.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
&lt;br /&gt;
''Scénario 1''&lt;br /&gt;
&lt;br /&gt;
Gérard a toujours le flair pour les bonnes affaires. Il a acheté une centaine de clés WiFi à un prix dérisoire sur AloXpresso afin de faire du profit à la revente. Le vendeur lui garantit que toutes les clés fonctionnent correctement. Gérard veut vérifier. Après vérification, 99 des clés sur 100 fonctionnent comme prévu. Gérard aimerait être sûr du disfonctionnement, mais Gérard n'est pas une pointure en informatique. &lt;br /&gt;
&lt;br /&gt;
Coup de génie ! Il se rappelle qu'il dispose d'un dispositif qui capte les ondes EM et les interprète directement. C'est le moment de tester ça. Il remarque une anomalie sur le spectre.&lt;br /&gt;
Il décide de contacter le revendeur pour lui signaler un disfonctionnement sur l'une des clé. &lt;br /&gt;
Pas de soucis. Le vendeur, étant bon prince, lui envoie une autre clé USB et lui fait une ristourne.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Scénario 2''&lt;br /&gt;
&lt;br /&gt;
La police fait une perquisition chez un individu soupçonné de graves délits. Cela fait plusieurs mois que la brigade criminelle prépare l'intervention, et une fois sur les lieux ils arrêtent le soupçonné malfaiteur.&lt;br /&gt;
Cependant avant de repartir, elle veut faire l'acquisition d'un maximum de preuves. Elle veut alors prendre l'essentiel des objets, dont certains objets éléctroniques connectés de l'individu dont elle pourra extraire les informations qui serviront à le faire tomber.&lt;br /&gt;
&lt;br /&gt;
Par chance, elle dispose d'un petit outil qui scannera les signatures alentours des objets connectés, comme des téléphones cachés, clés USB wifi dissimulées dans le décor etc..&lt;br /&gt;
Et si le suspect avait modifié malignement un objet connecté banal pour l'utiliser autrement à ses fins, la police le découvrirait car elle possède une base de données de toutes les signatures spectrales des objets connectés sur le marché et celle de l'objet modifié ne collerait pas avec celle de la base de données.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
&lt;br /&gt;
'''Comment étudier les signaux malgré les perturbations électromagnétiques ambiants et les faibles signaux des µC ?'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les signaux électromagnétiques des microcontrôleurs ou d'autres composants peuvent être faibles. Il y a une possibilité pour palier à ce problème, c'est de capter les signaux depuis une antenne émettrice que l'on rajoute à l'objet d'étude. &lt;br /&gt;
Nous utiliserons un SDR (Software Defined-Radio) afin de capter les ondes radio et les étudier directement sur PC. Le filtrage s'effectuera ainsi de manière numérique. Plusieurs tests seront effectués pour le même objet à étudier (quand on parle d'objet, on évoque un ensemble de plusieurs composants, comme par exemple une alimentation, un micro-contrôleur et une antenne). Ainsi, de manière statistique, nous pourrons en déduire un pattern récurrent pour chaque expérience en les effectuant dans différents environnements (pourquoi pas une chambre anachoïque). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons &lt;br /&gt;
* Capter le signal émis par un objet connecté le plus précisément possible&lt;br /&gt;
&lt;br /&gt;
* Concevoir nos propres objets connectés tous différents mais basés sur un même modèle&lt;br /&gt;
&lt;br /&gt;
* Interpréter les spectrogrammes, faire une étude statistique des signaux émis par nos différents objets et en tirer des conclusions&lt;br /&gt;
&lt;br /&gt;
* Répertorier dans une base de données les signatures de nos objets , voire de quelques objets disponibles sur le marché&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix logiciel :&lt;br /&gt;
&lt;br /&gt;
- La distribution Linux Pentoo ou Kali pour traiter les signaux avec GNU RADIO (Suite logicielle dédiée à l’implémentation de radios logicielles et de systèmes de traitement du signal).&lt;br /&gt;
&lt;br /&gt;
- FemtoOS pour l'OS des ATMEGA328P et ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix Matériel : &lt;br /&gt;
&lt;br /&gt;
- Plusieurs modules radios émetteurs &lt;br /&gt;
&lt;br /&gt;
- Plusieurs microcontrôleurs ATMEGA328P et un ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
- Des alimentations identiques pour chaque PCB&lt;br /&gt;
&lt;br /&gt;
- Un HackRF pour la réception des signaux&lt;br /&gt;
&lt;br /&gt;
- Une antenne 50 Ohm pour le HackRF [https://www.passion-radio.fr/accessoires-sdr/antenne-ant500-74.html]&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous devons préparer tout le matériel qui servira à faire nos tests. C'est à dire concevoir :&lt;br /&gt;
&lt;br /&gt;
- Un ensemble SDR/PC qui traitera le signal reçu avec GNU RADIO.&lt;br /&gt;
&lt;br /&gt;
- Une multitude de PCB qui seront nos objets connectés (Sur chacun d'entre eux on trouvera au minimum une antenne radio, un microcontrôleur et une alimentation)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de récupérer une &amp;quot;signature&amp;quot; d'un de nos objets , il faudra faire plus de 50 analyses spectrales pour conclure statistiquement sur une bonne signature qui caractérisera l'objet.&lt;br /&gt;
&lt;br /&gt;
Nous devons donc dans un second temps: &lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques mais qui ont un '''firmware''' différent.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques qui ont pour seule différence le '''microcontrôleur'''.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques dont seul le '''PCB''' diffère.&lt;br /&gt;
&lt;br /&gt;
Grâce à tous ces tests , nous pourrons conclure et voir l'impact qu'à le matériel ou le logiciel sur la signature d'un objet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enfin si les délais nous le permettent, nous pourrons réaliser un software qui cartographiera nos objets connectés dans la pièce grâce à la puissance de la signature reçue (Ce qui devrait être réalisable puisqu'à ce stade nous aurons une base de donnée des signatures).&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
|3&lt;br /&gt;
|8&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Recherches&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|6&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Prise en main de GnuRadio&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Configuration Xbee&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|4&lt;br /&gt;
|15&lt;br /&gt;
|9&lt;br /&gt;
|8&lt;br /&gt;
|7&lt;br /&gt;
|8&lt;br /&gt;
|8&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
[[Fichier:HackrfOne.jpeg|200px|thumb|right|Le HackRF One]]&lt;br /&gt;
Durant cette semaine, nous avons continué nos recherches notamment sur le moyen de transmission de nos objets connectés. Nous avons confirmé notre choix de notre SDR : Monsieur Boé nous a confirmé que des HackRF seraient disponibles dans les laboratoires et qu'il pourrait nous en prêter un. On disposera donc d'une antenne puissante pour traiter les signaux émis par nos objets communiquants. &lt;br /&gt;
&lt;br /&gt;
Il faudra coupler notre HackRF avec un logiciel appelé GNU RADIO qui est un logiciel très complet ( Pour information : la NASA a utilisé GNU RADIO afin de rétablir le contact avec une sonde spatiale abandonnée ). Afin de faire tourner ce logiciel libre, nous aurons besoin de la distribution Kali Linux, ex Backtrack.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Choix des émetteurs/récepteurs === &lt;br /&gt;
&lt;br /&gt;
Nous avons décidé que nos objets connectés communiqueront dans deux '''bandes de fréquences ISM''', l'une à '''900 MHz''' grâce à des modules Digi Xbee et l'autre à '''2,4 GHz''' par le moyen de modules émetteurs Bluetooth. On rappellera que les Digi Xbee et les émetteurs/récepteurs Bluetooth seront pilotés par des ATMEGA 2560.&lt;br /&gt;
&lt;br /&gt;
Les Xbee ne communiqueront pas entre eux et émettront en continu les mêmes données car ils le peuvent, alors que les émetteurs/récepteurs Bluetooth devront s'échanger des données si on veut pouvoir observer un quelconque signal autour de la fréquence de leurs porteuses. &lt;br /&gt;
&lt;br /&gt;
On voudra observer premièrement, si avec deux objets dans les '''mêmes''' conditions (donc même µc et même émetteur), on peut ou non '''distinguer une différence'''. Ceci est fondamental pour la suite des expériences, puisque si les deux émettent à la même fréquence, on pourra faire varier plusieurs paramètres afin de trouver '''des clés''' (des signes) qui pourraient aider à l'identification du matériel.&lt;br /&gt;
&lt;br /&gt;
Ces clés représentent différents facteurs potentiels d'identification du signal (le rapport signal-bruit en fonction de la distance par exemple...).&lt;br /&gt;
&lt;br /&gt;
''On planifie alors pour la semaine suivante de réussir à faire émettre, en utilisant simplement des breadboards pour commencer, nos Xbee et modules BT et observer quelque chose grâce à notre SDR.''&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration des modules XBee ===&lt;br /&gt;
&lt;br /&gt;
Nous avons configuré deux XBee afin qu'ils puissent communiquer entre eux : &lt;br /&gt;
&lt;br /&gt;
Les modules XBee ont été montés sur des platines d'interface USB/série de manière à ce qu'on puisse les paramétrer via le programme de contrôle ''minicom''. &lt;br /&gt;
&lt;br /&gt;
Dans le doute, on supposera que les XBee communiquent à 9600 Baud. On exécute la commande suivante : &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;minicom -b 9600 -D /dev/ttyUSB0&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
On active l'echo local dans minicom, afin de pouvoir observer ce qui a été envoyé par liaison série au XBee ('''CTRL+A''' puis '''E''').&lt;br /&gt;
&lt;br /&gt;
Pour commencer le paramètrage il faut taper ''' +++ ''' rapidement. Le XBee nous répond OK, cela veut dire que nous sommes dans le mode configuration et que nous pouvons utiliser les commandes '''AT'''. (Redirection vers la liste des commandes AT XBee [https://cdn.sparkfun.com/assets/resources/2/9/22AT_Commands.pdf]).&lt;br /&gt;
&lt;br /&gt;
Comme nos XBee ont été utilisés auparavant, il a fallu les restaurer à l'état usine avec la commande '''ATRE'''.&lt;br /&gt;
&lt;br /&gt;
Si on souhaite que des XBee puissent s'envoyer des données il faut qu'ils soient sur le même canal (commande '''ATCH''') et aient le même PAN ID (commande '''ATID'''). Notre PAN ID sera '''BEE6''' et le canal sera celui par défaut '''C'''.&lt;br /&gt;
&lt;br /&gt;
Ensuite il faut leur donner une adresse de destination ('''ATDH''' &amp;amp; '''ATDL''') qui sera l'adresse broadcast, pour ce faire on entre &lt;br /&gt;
 ATDH=0000&lt;br /&gt;
 ATDL=FFFF&lt;br /&gt;
&lt;br /&gt;
Enfin '''ATMY''' représente l'ID du XBee, notre premier XBee aura comme ID 5000 et le second 5001.&lt;br /&gt;
&lt;br /&gt;
N'oublions pas de sauvegarder les paramètres avec '''ATWR'''.&lt;br /&gt;
&lt;br /&gt;
On vérifie que tout a bien été pris en compte :&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;&lt;br /&gt;
+++OK&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATID&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
BEE6&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
C&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
0&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDL&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
FFFF&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATMY&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
5000&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCN&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Puis on fait de même avec le deuxième XBee (ID 5001).&lt;br /&gt;
&lt;br /&gt;
Voilà, lorsque on envoi des caractères par liaison série sur 5000, la LED '''Tx''' de 5000 s'allume et la Led '''Rx''' de 5001 s'allume elle aussi. Cela signifie que l'envoi de donnée par onde radio s'effectue correctement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que les XBee émettent et reçoivent, on peut commencer les mesures avec notre SDR. Mais avant cela il va falloir bien se familiariser avec le logiciel GNU RADIO qui est assez difficile à prendre en main.&lt;br /&gt;
&lt;br /&gt;
=== Première prise en main du logiciel GNURADIO ===&lt;br /&gt;
&lt;br /&gt;
Installation de GNU radio avec les fonctions + drivers pour HackRF : &lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install gqrx gnuradio gr-osmosdr hackrf &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le bloc Osmocom Source sert de &amp;quot;passerelle&amp;quot; entre le logiciel et la SDR, il permet de transmettre les informations récupérées par le HackRF afin qu'on puisse les traiter avec d'autres bloc de fonctions.&lt;br /&gt;
&lt;br /&gt;
Si on veut pouvoir récuperer les données il faut passer l'argument ''hackrf=0'' dans la box périphérique du bloc Osmocom.&lt;br /&gt;
&lt;br /&gt;
Ci-dessous on peut voir le spectre environnant entre 2.44GHz et 2.460GHz grâce au bloc WX GUI FFT Sink.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ScreenGnuRadio.png|Interface de GNURadio]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous a permis d'effectuer notre première expérience. L'utilisation des deux Xbees nous a permis d'observer l'impact des Xbee sur le champ électromagéntique environnant.&lt;br /&gt;
&lt;br /&gt;
Si on analyse le spectre environnant grâce au module FFT de GNU Radio, lorsque les Xbee communiquent entre eux, on peut apercevoir un pic caractéristique propre.&lt;br /&gt;
En effet, lors de l'emission d'un message sur le port série, on a un pic qui se dégage du spectre d'amplitude -20dBm. Ce pic est caractéristique au canal de communication choisi et configuré sur le Xbee.&lt;br /&gt;
Néanmoins, le signal est perturbé par le bruit environnant. &lt;br /&gt;
L'expérience étant effectuée au sein de l'école, les signaux Wi-Fi perturberont l'étude.&lt;br /&gt;
Il faut noter que la norme IEEE 802.11 impose au Wi-Fi l'utilisation d'une bande passante s'étalant de 2.4 GHz à 2.5 GHz.&lt;br /&gt;
&lt;br /&gt;
La bande passante des modules Zigbee se décomposent en 16 canaux, allant de 2400 MHz à 2480 MHz par pas de 5 MHz.&lt;br /&gt;
&lt;br /&gt;
Le canal ici utilisé est le canal 13 (3ème canal) de fréquence 2415 MHz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- [[Fichier:Channel135001.png|thumb|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Fichier:channel135000.png|thumb|none|400 px]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:XBeeCh13.png|Spectre de l'environnement autour du XBee|thumb|400 px]][[Fichier:XBeeCh13SND.png|Lors de l'envoi de données au XBee voisin|thumb|none|400 px]]&lt;br /&gt;
&lt;br /&gt;
On peut observer un pic de puissance lors de l'envoi d'une donnée en série à la fréquence 2.415 GHz.&lt;br /&gt;
Il nous est maintenant nécessaire d'analyser de plus près les signaux et leurs fréquence centrale dans la bande perçue au dessus de -20dB.&lt;br /&gt;
&lt;br /&gt;
On réeffectuera une expérience en zone isolée des signaux parasites.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous avons principalement fait des recherches dans le but de mieux comprendre les signaux émis par le Xbee.&lt;br /&gt;
&lt;br /&gt;
En somme, nous étions confrontés à de nombreuses interrogations. Le fonctionnement du Xbee étant assez simple et la sécurité du protocole Zigbee étant moindre, y a t-il possibilité de démoduler le signal émis afin de développer nos études ?&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
[[Fichier:Switchchannel pyscript.PNG|upright=0.8|thumb|right|Programme Python fait rapidement]]&lt;br /&gt;
Après réflexion et consultation de nos encadrants, nous nous sommes rendu compte que la démodulation prévue lors de la semaine 4 n'aiderait pas à répondre à la problématique de notre sujet !  &lt;br /&gt;
&lt;br /&gt;
Afin de mieux visualiser les signaux des Xbee , on décide d'automatiser le processus d'envoie sur le port série des données vers le Xbee. C'est à dire concevoir un programme Python qui automatisera l'envoi de données et le changement de channel à intervalle de temps régulier (Changement toutes les 10 secondes). &lt;br /&gt;
&lt;br /&gt;
L'utilisation de Minicom '''n'était pas du tout la meilleure solution''' pour faire émettre les Xbee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Après quelques essais, on remarque que lorsque le Xbee émet sur le channel 13, il émet à environ 2,445GHz au lieu d'émettre à 2,415GHz soit une différence de 30MHz : Ceci n'est pas important, car ce que l'on souhaite remarquer c'est un éventuel décalage de la fréquence centrale entre deux Xbee différents. Si les deux Xbee n'ont pas la même frequence centrale on pourra conclure que la '''fréquence centrale''' de la porteuse du Xbee n'est pas '''une des clés''' permettant d''''identifier''' cet émetteur/récepteur.&lt;br /&gt;
&lt;br /&gt;
==Semaine 6==&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;/div&gt;</summary>
		<author><name>Amoreau</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=70470</id>
		<title>IMA4 2018/2019 P70</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=70470"/>
				<updated>2019-03-06T15:55:28Z</updated>
		
		<summary type="html">&lt;p&gt;Amoreau : /* Semaine 5 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;font-size: 30px; width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;Impact du matériel et du logiciel sur le champ électromagnétique&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Projet'''&amp;lt;/ins&amp;gt; : Impact du matériel et du logiciel sur le rayonnement électromagnétique&lt;br /&gt;
&lt;br /&gt;
''Nous proposons d'évaluer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et la consommation électrique.''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Etudiants'''&amp;lt;/ins&amp;gt; : Souheib KHINACHE et Antoine MOREAU&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Encadrants'''&amp;lt;/ins&amp;gt; : Alexandre BOE, Xavier REDON et Thomas VANTROYS&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'internet des objets est un marché en plein essor. La communication entre les différents objets connectés crée un nuage de signaux autour d'eux. Ces derniers sont vus par les utilisateurs comme des boîtes noires : le fonctionnement se fait sans en connaître les composants matériels et logiciels. &lt;br /&gt;
Néanmoins, ces objets, de par leurs propriétés électroniques, créent des fuites électromagnétiques impactant le champ environnant. &lt;br /&gt;
&lt;br /&gt;
Bien qu'ils peuvent porter à débat sur l'impact sur la santé, ces signaux peuvent représenter de réelles sources d'informations sur l'aspect matériel et applicatif de l'objet.&lt;br /&gt;
&lt;br /&gt;
Il serait donc intéressant d'avoir idée générale sur le fonctionnement du système en interprétant les ondes électromagnétiques émises par ce système.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Les principaux objectifs de ce projet seront donc de mesurer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et sur la consommation électrique.&lt;br /&gt;
Pour cela, l'outil potentiel avec lequel nous pourrions travailler serait une sonde de champ électromagnétique afin d'établir des mesures. &lt;br /&gt;
Cependant, nous pourrions concevoir notre propre système de capture et d'interprétation à partir d'une antenne, de filtres de fréquences et d'un microcontrôleur (on commencera par un ATMega328P). Il sera nécessaire de prendre en compte les perturbations issues de notre appareil de mesure et d'en tenir compte.&lt;br /&gt;
&lt;br /&gt;
On effectuera ainsi plusieurs expérimentations sur différents supports d'étude :&lt;br /&gt;
*l'aspect &amp;quot;Hardware&amp;quot; en étudiant différents modèles pour un même type de shield  &lt;br /&gt;
*l'aspect calculatoire du matériel en se basant sur l'impact des microcontrôleurs en fonction du modèle (ATMega328P et ATMega2560)&lt;br /&gt;
*l'aspect &amp;quot;Software&amp;quot;, en étudiant l'impact du logiciel et du firmware d'un même composant (différents firmwares pour un même shield Wi-Fi)&lt;br /&gt;
*l'aspect puissance des composants électroniques de gestion de puissance (ponts, hacheurs, onduleurs...).&lt;br /&gt;
&lt;br /&gt;
L'étude des différentes informations se fera par traitement des signaux électromagnétiques et des spectres. &lt;br /&gt;
Afin de mieux appréhender le problème, il nous est nécessaire de comprendre les phénomènes physiques issus de la notion d'électromagnétisme.&lt;br /&gt;
&lt;br /&gt;
Ces études mèneront à une étape plus complexe : l'interprétation des signaux. En effet, l'un des objectifs de ce projet est de comprendre du mieux possible le fonctionnement d'un système sans y avoir accès directement, et donc dans ce contexte &amp;quot;traduire&amp;quot; un ensemble de signaux électromagnétiques.&lt;br /&gt;
&lt;br /&gt;
On pourra en outre apporter un aspect visuel à l'étude en rajoutant une interface informatique.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
Bien qu'aux yeux de nombreuses personnes le bruit électromagnétique créé par les équipements électroniques du quotidien peut porter à controverse (débats concernant l'impact sur la santé par exemple), il peut être une source d'informations. &lt;br /&gt;
De nos jours, les ondes électromagnétiques restent un vaste champ d'étude, sujettes à de nombreuses thèses et recherches au sein des laboratoires.&lt;br /&gt;
&lt;br /&gt;
On peut prendre l'exemple de [https://www.eurekalert.org/pub_releases/2015-01/giot-rwt010715.php Milos Prvulovic], professeur à l'Institut Technologique de Géorgie, ayant simulé un contexte de cybercafé, dans lequel il place une antenne magnétique, un ordinateur portable cible et un ordinateur &amp;quot;espion&amp;quot;. Il réussit, grâce aux signaux EM émis par l'impulsion de l'appui des touches clavier à capter un message écrit par un ordinateur cible. &lt;br /&gt;
&lt;br /&gt;
Néanmoins, dans le quotidien, l'utilisation des sondes électromagnétiques se fait pour l'étude énergétique d'un système électronique (fuites électromagnétiques anormales, preuves d'une anomalie...) afin de respecter certaines normes législatives. Le code du travail par exemple réglemente et définit des valeurs seuils par le biais des articles R. 4453-3 et R. 4453-4.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
'''NBM-520 de NARDA STS'''&lt;br /&gt;
[[Fichier: NBM_TS.png|thumb|300px|NBM-TS, application des appareils NBM]]&lt;br /&gt;
NARDA STS est une entreprise qui fournit des outils de mesure. Elle met à disposition aux professionnels des sondes électromagnétiques.&lt;br /&gt;
La NBM-520 est un appareil de la franchise, mesurant le champ électrique et magnétique. Elle donne des valeurs précises du champ électromagnétique ambiant sur une large bande. Elle propose différentes sondes modulables permettant une souplesse au niveau de l'étude en fonction des besoins, avec des sondes pouvant étudier des signaux de fréquence de 100kHz à 6GHz ou même de 300kHz à 50GHz (en fonction de la sonde choisie).&lt;br /&gt;
&lt;br /&gt;
En outre, le dispositif peut se connecter en USB sur PC afin d'envoyer les données capturées et d'en faire une étude. Le dispositif propose un logiciel d'étude, NBM-TS, permettant d'observer du champ en fonction du temps, de la fréquence, de la position...&lt;br /&gt;
&lt;br /&gt;
L'équipement est utilisé par l'ANF (l'Agence Nationale des Fréquences, agence gérant l'ensemble des normes autour des radiofréquences), et est donc un gage de qualité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Avantages :''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Large bande de fréquence&lt;br /&gt;
* Matériel solide&lt;br /&gt;
* Application fonctionnelle permettant l'étude et gestion des données&lt;br /&gt;
* Possibilité d'étudier séparément champ électrique et magnétique&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Inconvénients:''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Impossible d'étudier les basses fréquences (appareils sous tension, bobinages...)&lt;br /&gt;
* Prix élevé : à partir de 3100€&lt;br /&gt;
* La cible de ce produit est surtout les professionels&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
'''Une pita.'''&lt;br /&gt;
&lt;br /&gt;
''Comment mon pain à pita vole ta clé RSA ?''&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Pita.jpg|200px|thumb|left|Une pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Des chercheurs israéliens ont découvert un moyen de capturer des clés de cryptage RSA, réputées comme inviolables, par le biais d'une pita... du moins avec un dispositif suffisamment petit pour être caché dans un pain à pita. &lt;br /&gt;
Le dispositif, renommé PITA pour Portable Instrument for Trace Acquisition a la particularité de capturer les ondes radio électromagnétiques émanantes d'un PC, qu'il soit connecté à un réseau ou pas.&lt;br /&gt;
Les différentes opérations du processeur sont identifiées en distinguant les différents modèles de l'activité radio sur le spectre EM.&lt;br /&gt;
&lt;br /&gt;
Bien que la capture des clés RSA a été faite dans des conditions particulières (modification du processeur de l'ordinateur cible), il est néanmoins possible, selon les chercheurs, d'identifier quelle type d'activité est exercée par l'ordinateur ainsi que son état.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PITA.jpg|300px|thumb|right|Un dessous de pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'un des points importants concernant le dispositif est son coût : moins de 300 euros.&lt;br /&gt;
L'appareil dispose :&lt;br /&gt;
* d'un PC portatif (PC-on-a-stick) ''Rikomagic MK802 IV'',&lt;br /&gt;
* d'un recepteur radio SDR ''FUNcube Dongle Pro+''&lt;br /&gt;
* d'une antenne radio&lt;br /&gt;
* d'une batterie&lt;br /&gt;
* d'une antenne WiFi&lt;br /&gt;
* d'une carte MicroSD&lt;br /&gt;
* d'un adapteur d'antenne&lt;br /&gt;
* et d'une '''pita'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le dispositif aurait une portée de 50cm. &lt;br /&gt;
Les chercheurs israéliens ont collaboré avec GNU Private Guard (logiciel de cryptage asymétrique) afin de protéger contre ces attaques les clés de cryptage.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
&lt;br /&gt;
''Scénario 1''&lt;br /&gt;
&lt;br /&gt;
Gérard a toujours le flair pour les bonnes affaires. Il a acheté une centaine de clés WiFi à un prix dérisoire sur AloXpresso afin de faire du profit à la revente. Le vendeur lui garantit que toutes les clés fonctionnent correctement. Gérard veut vérifier. Après vérification, 99 des clés sur 100 fonctionnent comme prévu. Gérard aimerait être sûr du disfonctionnement, mais Gérard n'est pas une pointure en informatique. &lt;br /&gt;
&lt;br /&gt;
Coup de génie ! Il se rappelle qu'il dispose d'un dispositif qui capte les ondes EM et les interprète directement. C'est le moment de tester ça. Il remarque une anomalie sur le spectre.&lt;br /&gt;
Il décide de contacter le revendeur pour lui signaler un disfonctionnement sur l'une des clé. &lt;br /&gt;
Pas de soucis. Le vendeur, étant bon prince, lui envoie une autre clé USB et lui fait une ristourne.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Scénario 2''&lt;br /&gt;
&lt;br /&gt;
La police fait une perquisition chez un individu soupçonné de graves délits. Cela fait plusieurs mois que la brigade criminelle prépare l'intervention, et une fois sur les lieux ils arrêtent le soupçonné malfaiteur.&lt;br /&gt;
Cependant avant de repartir, elle veut faire l'acquisition d'un maximum de preuves. Elle veut alors prendre l'essentiel des objets, dont certains objets éléctroniques connectés de l'individu dont elle pourra extraire les informations qui serviront à le faire tomber.&lt;br /&gt;
&lt;br /&gt;
Par chance, elle dispose d'un petit outil qui scannera les signatures alentours des objets connectés, comme des téléphones cachés, clés USB wifi dissimulées dans le décor etc..&lt;br /&gt;
Et si le suspect avait modifié malignement un objet connecté banal pour l'utiliser autrement à ses fins, la police le découvrirait car elle possède une base de données de toutes les signatures spectrales des objets connectés sur le marché et celle de l'objet modifié ne collerait pas avec celle de la base de données.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
&lt;br /&gt;
'''Comment étudier les signaux malgré les perturbations électromagnétiques ambiants et les faibles signaux des µC ?'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les signaux électromagnétiques des microcontrôleurs ou d'autres composants peuvent être faibles. Il y a une possibilité pour palier à ce problème, c'est de capter les signaux depuis une antenne émettrice que l'on rajoute à l'objet d'étude. &lt;br /&gt;
Nous utiliserons un SDR (Software Defined-Radio) afin de capter les ondes radio et les étudier directement sur PC. Le filtrage s'effectuera ainsi de manière numérique. Plusieurs tests seront effectués pour le même objet à étudier (quand on parle d'objet, on évoque un ensemble de plusieurs composants, comme par exemple une alimentation, un micro-contrôleur et une antenne). Ainsi, de manière statistique, nous pourrons en déduire un pattern récurrent pour chaque expérience en les effectuant dans différents environnements (pourquoi pas une chambre anachoïque). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons &lt;br /&gt;
* Capter le signal émis par un objet connecté le plus précisément possible&lt;br /&gt;
&lt;br /&gt;
* Concevoir nos propres objets connectés tous différents mais basés sur un même modèle&lt;br /&gt;
&lt;br /&gt;
* Interpréter les spectrogrammes, faire une étude statistique des signaux émis par nos différents objets et en tirer des conclusions&lt;br /&gt;
&lt;br /&gt;
* Répertorier dans une base de données les signatures de nos objets , voire de quelques objets disponibles sur le marché&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix logiciel :&lt;br /&gt;
&lt;br /&gt;
- La distribution Linux Pentoo ou Kali pour traiter les signaux avec GNU RADIO (Suite logicielle dédiée à l’implémentation de radios logicielles et de systèmes de traitement du signal).&lt;br /&gt;
&lt;br /&gt;
- FemtoOS pour l'OS des ATMEGA328P et ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix Matériel : &lt;br /&gt;
&lt;br /&gt;
- Plusieurs modules radios émetteurs &lt;br /&gt;
&lt;br /&gt;
- Plusieurs microcontrôleurs ATMEGA328P et un ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
- Des alimentations identiques pour chaque PCB&lt;br /&gt;
&lt;br /&gt;
- Un HackRF pour la réception des signaux&lt;br /&gt;
&lt;br /&gt;
- Une antenne 50 Ohm pour le HackRF [https://www.passion-radio.fr/accessoires-sdr/antenne-ant500-74.html]&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous devons préparer tout le matériel qui servira à faire nos tests. C'est à dire concevoir :&lt;br /&gt;
&lt;br /&gt;
- Un ensemble SDR/PC qui traitera le signal reçu avec GNU RADIO.&lt;br /&gt;
&lt;br /&gt;
- Une multitude de PCB qui seront nos objets connectés (Sur chacun d'entre eux on trouvera au minimum une antenne radio, un microcontrôleur et une alimentation)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de récupérer une &amp;quot;signature&amp;quot; d'un de nos objets , il faudra faire plus de 50 analyses spectrales pour conclure statistiquement sur une bonne signature qui caractérisera l'objet.&lt;br /&gt;
&lt;br /&gt;
Nous devons donc dans un second temps: &lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques mais qui ont un '''firmware''' différent.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques qui ont pour seule différence le '''microcontrôleur'''.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques dont seul le '''PCB''' diffère.&lt;br /&gt;
&lt;br /&gt;
Grâce à tous ces tests , nous pourrons conclure et voir l'impact qu'à le matériel ou le logiciel sur la signature d'un objet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enfin si les délais nous le permettent, nous pourrons réaliser un software qui cartographiera nos objets connectés dans la pièce grâce à la puissance de la signature reçue (Ce qui devrait être réalisable puisqu'à ce stade nous aurons une base de donnée des signatures).&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
|3&lt;br /&gt;
|8&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Recherches&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|6&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Prise en main de GnuRadio&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Configuration Xbee&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|4&lt;br /&gt;
|15&lt;br /&gt;
|9&lt;br /&gt;
|8&lt;br /&gt;
|7&lt;br /&gt;
|8&lt;br /&gt;
|8&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
[[Fichier:HackrfOne.jpeg|200px|thumb|right|Le HackRF One]]&lt;br /&gt;
Durant cette semaine, nous avons continué nos recherches notamment sur le moyen de transmission de nos objets connectés. Nous avons confirmé notre choix de notre SDR : Monsieur Boé nous a confirmé que des HackRF seraient disponibles dans les laboratoires et qu'il pourrait nous en prêter un. On disposera donc d'une antenne puissante pour traiter les signaux émis par nos objets communiquants. &lt;br /&gt;
&lt;br /&gt;
Il faudra coupler notre HackRF avec un logiciel appelé GNU RADIO qui est un logiciel très complet ( Pour information : la NASA a utilisé GNU RADIO afin de rétablir le contact avec une sonde spatiale abandonnée ). Afin de faire tourner ce logiciel libre, nous aurons besoin de la distribution Kali Linux, ex Backtrack.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Choix des émetteurs/récepteurs === &lt;br /&gt;
&lt;br /&gt;
Nous avons décidé que nos objets connectés communiqueront dans deux '''bandes de fréquences ISM''', l'une à '''900 MHz''' grâce à des modules Digi Xbee et l'autre à '''2,4 GHz''' par le moyen de modules émetteurs Bluetooth. On rappellera que les Digi Xbee et les émetteurs/récepteurs Bluetooth seront pilotés par des ATMEGA 2560.&lt;br /&gt;
&lt;br /&gt;
Les Xbee ne communiqueront pas entre eux et émettront en continu les mêmes données car ils le peuvent, alors que les émetteurs/récepteurs Bluetooth devront s'échanger des données si on veut pouvoir observer un quelconque signal autour de la fréquence de leurs porteuses. &lt;br /&gt;
&lt;br /&gt;
On voudra observer premièrement, si avec deux objets dans les '''mêmes''' conditions (donc même µc et même émetteur), on peut ou non '''distinguer une différence'''. Ceci est fondamental pour la suite des expériences, puisque si les deux émettent à la même fréquence, on pourra faire varier plusieurs paramètres afin de trouver '''des clés''' (des signes) qui pourraient aider à l'identification du matériel.&lt;br /&gt;
&lt;br /&gt;
Ces clés représentent différents facteurs potentiels d'identification du signal (le rapport signal-bruit en fonction de la distance par exemple...).&lt;br /&gt;
&lt;br /&gt;
''On planifie alors pour la semaine suivante de réussir à faire émettre, en utilisant simplement des breadboards pour commencer, nos Xbee et modules BT et observer quelque chose grâce à notre SDR.''&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration des modules XBee ===&lt;br /&gt;
&lt;br /&gt;
Nous avons configuré deux XBee afin qu'ils puissent communiquer entre eux : &lt;br /&gt;
&lt;br /&gt;
Les modules XBee ont été montés sur des platines d'interface USB/série de manière à ce qu'on puisse les paramétrer via le programme de contrôle ''minicom''. &lt;br /&gt;
&lt;br /&gt;
Dans le doute, on supposera que les XBee communiquent à 9600 Baud. On exécute la commande suivante : &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;minicom -b 9600 -D /dev/ttyUSB0&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
On active l'echo local dans minicom, afin de pouvoir observer ce qui a été envoyé par liaison série au XBee ('''CTRL+A''' puis '''E''').&lt;br /&gt;
&lt;br /&gt;
Pour commencer le paramètrage il faut taper ''' +++ ''' rapidement. Le XBee nous répond OK, cela veut dire que nous sommes dans le mode configuration et que nous pouvons utiliser les commandes '''AT'''. (Redirection vers la liste des commandes AT XBee [https://cdn.sparkfun.com/assets/resources/2/9/22AT_Commands.pdf]).&lt;br /&gt;
&lt;br /&gt;
Comme nos XBee ont été utilisés auparavant, il a fallu les restaurer à l'état usine avec la commande '''ATRE'''.&lt;br /&gt;
&lt;br /&gt;
Si on souhaite que des XBee puissent s'envoyer des données il faut qu'ils soient sur le même canal (commande '''ATCH''') et aient le même PAN ID (commande '''ATID'''). Notre PAN ID sera '''BEE6''' et le canal sera celui par défaut '''C'''.&lt;br /&gt;
&lt;br /&gt;
Ensuite il faut leur donner une adresse de destination ('''ATDH''' &amp;amp; '''ATDL''') qui sera l'adresse broadcast, pour ce faire on entre &lt;br /&gt;
 ATDH=0000&lt;br /&gt;
 ATDL=FFFF&lt;br /&gt;
&lt;br /&gt;
Enfin '''ATMY''' représente l'ID du XBee, notre premier XBee aura comme ID 5000 et le second 5001.&lt;br /&gt;
&lt;br /&gt;
N'oublions pas de sauvegarder les paramètres avec '''ATWR'''.&lt;br /&gt;
&lt;br /&gt;
On vérifie que tout a bien été pris en compte :&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;&lt;br /&gt;
+++OK&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATID&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
BEE6&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
C&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
0&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDL&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
FFFF&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATMY&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
5000&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCN&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Puis on fait de même avec le deuxième XBee (ID 5001).&lt;br /&gt;
&lt;br /&gt;
Voilà, lorsque on envoi des caractères par liaison série sur 5000, la LED '''Tx''' de 5000 s'allume et la Led '''Rx''' de 5001 s'allume elle aussi. Cela signifie que l'envoi de donnée par onde radio s'effectue correctement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que les XBee émettent et reçoivent, on peut commencer les mesures avec notre SDR. Mais avant cela il va falloir bien se familiariser avec le logiciel GNU RADIO qui est assez difficile à prendre en main.&lt;br /&gt;
&lt;br /&gt;
=== Première prise en main du logiciel GNURADIO ===&lt;br /&gt;
&lt;br /&gt;
Installation de GNU radio avec les fonctions + drivers pour HackRF : &lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install gqrx gnuradio gr-osmosdr hackrf &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le bloc Osmocom Source sert de &amp;quot;passerelle&amp;quot; entre le logiciel et la SDR, il permet de transmettre les informations récupérées par le HackRF afin qu'on puisse les traiter avec d'autres bloc de fonctions.&lt;br /&gt;
&lt;br /&gt;
Si on veut pouvoir récuperer les données il faut passer l'argument ''hackrf=0'' dans la box périphérique du bloc Osmocom.&lt;br /&gt;
&lt;br /&gt;
Ci-dessous on peut voir le spectre environnant entre 2.44GHz et 2.460GHz grâce au bloc WX GUI FFT Sink.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ScreenGnuRadio.png|Interface de GNURadio]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous a permis d'effectuer notre première expérience. L'utilisation des deux Xbees nous a permis d'observer l'impact des Xbee sur le champ électromagéntique environnant.&lt;br /&gt;
&lt;br /&gt;
Si on analyse le spectre environnant grâce au module FFT de GNU Radio, lorsque les Xbee communiquent entre eux, on peut apercevoir un pic caractéristique propre.&lt;br /&gt;
En effet, lors de l'emission d'un message sur le port série, on a un pic qui se dégage du spectre d'amplitude -20dBm. Ce pic est caractéristique au canal de communication choisi et configuré sur le Xbee.&lt;br /&gt;
Néanmoins, le signal est perturbé par le bruit environnant. &lt;br /&gt;
L'expérience étant effectuée au sein de l'école, les signaux Wi-Fi perturberont l'étude.&lt;br /&gt;
Il faut noter que la norme IEEE 802.11 impose au Wi-Fi l'utilisation d'une bande passante s'étalant de 2.4 GHz à 2.5 GHz.&lt;br /&gt;
&lt;br /&gt;
La bande passante des modules Zigbee se décomposent en 16 canaux, allant de 2400 MHz à 2480 MHz par pas de 5 MHz.&lt;br /&gt;
&lt;br /&gt;
Le canal ici utilisé est le canal 13 (3ème canal) de fréquence 2415 MHz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- [[Fichier:Channel135001.png|thumb|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Fichier:channel135000.png|thumb|none|400 px]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:XBeeCh13.png|Spectre de l'environnement autour du XBee|thumb|400 px]][[Fichier:XBeeCh13SND.png|Lors de l'envoi de données au XBee voisin|thumb|none|400 px]]&lt;br /&gt;
&lt;br /&gt;
On peut observer un pic de puissance lors de l'envoi d'une donnée en série à la fréquence 2.415 GHz.&lt;br /&gt;
Il nous est maintenant nécessaire d'analyser de plus près les signaux et leurs fréquence centrale dans la bande perçue au dessus de -20dB.&lt;br /&gt;
&lt;br /&gt;
On réeffectuera une expérience en zone isolée des signaux parasites.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous avons principalement fait des recherches dans le but de mieux comprendre les signaux émis par le Xbee.&lt;br /&gt;
&lt;br /&gt;
En somme, nous étions confrontés à de nombreuses interrogations. Le fonctionnement du Xbee étant assez simple et la sécurité du protocole Zigbee étant moindre, y a t-il possibilité de démoduler le signal émis afin de développer nos études ?&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
[[Fichier:Switchchannel pyscript.PNG|upright=0.8|thumb|right|Programme Python fait rapidement]]&lt;br /&gt;
Après réflexion et consultation de nos encadrants, nous nous sommes rendu compte que la démodulation prévue lors de la semaine 4 n'aiderait pas à répondre à la problématique de notre sujet !  &lt;br /&gt;
&lt;br /&gt;
Afin de mieux visualiser les signaux des Xbee , on décide d'automatiser le processus d'envoie sur le port série des données vers le Xbee. C'est à dire concevoir un programme Python qui automatisera l'envoi de données et le changement de channel à intervalle de temps régulier (Changement toutes les 10 secondes). &lt;br /&gt;
&lt;br /&gt;
L'utilisation de Minicom '''n'était pas du tout la meilleure solution''' pour faire émettre les Xbee.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Après quelques essais, on remarque que lorsque le Xbee émet sur le channel 13, il émet à environ 2,445GHz au lieu d'émettre à 2,415GHz soit une différence de 30MHz : Ceci n'est pas important, car ce que l'on souhaite remarquer c'est un éventuel décalage de la fréquence centrale entre deux Xbee différents. Si les deux Xbee n'ont pas la même frequence centrale on pourra conclure que la '''fréquence centrale''' de la porteuse du Xbee n'est pas '''une des clés''' permettant d''''identifier''' cet émetteur/récepteur.&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;/div&gt;</summary>
		<author><name>Amoreau</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Switchchannel_pyscript.PNG&amp;diff=70467</id>
		<title>Fichier:Switchchannel pyscript.PNG</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=Fichier:Switchchannel_pyscript.PNG&amp;diff=70467"/>
				<updated>2019-03-06T15:51:02Z</updated>
		
		<summary type="html">&lt;p&gt;Amoreau : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Amoreau</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=70464</id>
		<title>IMA4 2018/2019 P70</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=70464"/>
				<updated>2019-03-06T15:41:25Z</updated>
		
		<summary type="html">&lt;p&gt;Amoreau : /* Semaine 5 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;font-size: 30px; width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;Impact du matériel et du logiciel sur le champ électromagnétique&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Projet'''&amp;lt;/ins&amp;gt; : Impact du matériel et du logiciel sur le rayonnement électromagnétique&lt;br /&gt;
&lt;br /&gt;
''Nous proposons d'évaluer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et la consommation électrique.''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Etudiants'''&amp;lt;/ins&amp;gt; : Souheib KHINACHE et Antoine MOREAU&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Encadrants'''&amp;lt;/ins&amp;gt; : Alexandre BOE, Xavier REDON et Thomas VANTROYS&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'internet des objets est un marché en plein essor. La communication entre les différents objets connectés crée un nuage de signaux autour d'eux. Ces derniers sont vus par les utilisateurs comme des boîtes noires : le fonctionnement se fait sans en connaître les composants matériels et logiciels. &lt;br /&gt;
Néanmoins, ces objets, de par leurs propriétés électroniques, créent des fuites électromagnétiques impactant le champ environnant. &lt;br /&gt;
&lt;br /&gt;
Bien qu'ils peuvent porter à débat sur l'impact sur la santé, ces signaux peuvent représenter de réelles sources d'informations sur l'aspect matériel et applicatif de l'objet.&lt;br /&gt;
&lt;br /&gt;
Il serait donc intéressant d'avoir idée générale sur le fonctionnement du système en interprétant les ondes électromagnétiques émises par ce système.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Les principaux objectifs de ce projet seront donc de mesurer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et sur la consommation électrique.&lt;br /&gt;
Pour cela, l'outil potentiel avec lequel nous pourrions travailler serait une sonde de champ électromagnétique afin d'établir des mesures. &lt;br /&gt;
Cependant, nous pourrions concevoir notre propre système de capture et d'interprétation à partir d'une antenne, de filtres de fréquences et d'un microcontrôleur (on commencera par un ATMega328P). Il sera nécessaire de prendre en compte les perturbations issues de notre appareil de mesure et d'en tenir compte.&lt;br /&gt;
&lt;br /&gt;
On effectuera ainsi plusieurs expérimentations sur différents supports d'étude :&lt;br /&gt;
*l'aspect &amp;quot;Hardware&amp;quot; en étudiant différents modèles pour un même type de shield  &lt;br /&gt;
*l'aspect calculatoire du matériel en se basant sur l'impact des microcontrôleurs en fonction du modèle (ATMega328P et ATMega2560)&lt;br /&gt;
*l'aspect &amp;quot;Software&amp;quot;, en étudiant l'impact du logiciel et du firmware d'un même composant (différents firmwares pour un même shield Wi-Fi)&lt;br /&gt;
*l'aspect puissance des composants électroniques de gestion de puissance (ponts, hacheurs, onduleurs...).&lt;br /&gt;
&lt;br /&gt;
L'étude des différentes informations se fera par traitement des signaux électromagnétiques et des spectres. &lt;br /&gt;
Afin de mieux appréhender le problème, il nous est nécessaire de comprendre les phénomènes physiques issus de la notion d'électromagnétisme.&lt;br /&gt;
&lt;br /&gt;
Ces études mèneront à une étape plus complexe : l'interprétation des signaux. En effet, l'un des objectifs de ce projet est de comprendre du mieux possible le fonctionnement d'un système sans y avoir accès directement, et donc dans ce contexte &amp;quot;traduire&amp;quot; un ensemble de signaux électromagnétiques.&lt;br /&gt;
&lt;br /&gt;
On pourra en outre apporter un aspect visuel à l'étude en rajoutant une interface informatique.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
Bien qu'aux yeux de nombreuses personnes le bruit électromagnétique créé par les équipements électroniques du quotidien peut porter à controverse (débats concernant l'impact sur la santé par exemple), il peut être une source d'informations. &lt;br /&gt;
De nos jours, les ondes électromagnétiques restent un vaste champ d'étude, sujettes à de nombreuses thèses et recherches au sein des laboratoires.&lt;br /&gt;
&lt;br /&gt;
On peut prendre l'exemple de [https://www.eurekalert.org/pub_releases/2015-01/giot-rwt010715.php Milos Prvulovic], professeur à l'Institut Technologique de Géorgie, ayant simulé un contexte de cybercafé, dans lequel il place une antenne magnétique, un ordinateur portable cible et un ordinateur &amp;quot;espion&amp;quot;. Il réussit, grâce aux signaux EM émis par l'impulsion de l'appui des touches clavier à capter un message écrit par un ordinateur cible. &lt;br /&gt;
&lt;br /&gt;
Néanmoins, dans le quotidien, l'utilisation des sondes électromagnétiques se fait pour l'étude énergétique d'un système électronique (fuites électromagnétiques anormales, preuves d'une anomalie...) afin de respecter certaines normes législatives. Le code du travail par exemple réglemente et définit des valeurs seuils par le biais des articles R. 4453-3 et R. 4453-4.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
'''NBM-520 de NARDA STS'''&lt;br /&gt;
[[Fichier: NBM_TS.png|thumb|300px|NBM-TS, application des appareils NBM]]&lt;br /&gt;
NARDA STS est une entreprise qui fournit des outils de mesure. Elle met à disposition aux professionnels des sondes électromagnétiques.&lt;br /&gt;
La NBM-520 est un appareil de la franchise, mesurant le champ électrique et magnétique. Elle donne des valeurs précises du champ électromagnétique ambiant sur une large bande. Elle propose différentes sondes modulables permettant une souplesse au niveau de l'étude en fonction des besoins, avec des sondes pouvant étudier des signaux de fréquence de 100kHz à 6GHz ou même de 300kHz à 50GHz (en fonction de la sonde choisie).&lt;br /&gt;
&lt;br /&gt;
En outre, le dispositif peut se connecter en USB sur PC afin d'envoyer les données capturées et d'en faire une étude. Le dispositif propose un logiciel d'étude, NBM-TS, permettant d'observer du champ en fonction du temps, de la fréquence, de la position...&lt;br /&gt;
&lt;br /&gt;
L'équipement est utilisé par l'ANF (l'Agence Nationale des Fréquences, agence gérant l'ensemble des normes autour des radiofréquences), et est donc un gage de qualité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Avantages :''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Large bande de fréquence&lt;br /&gt;
* Matériel solide&lt;br /&gt;
* Application fonctionnelle permettant l'étude et gestion des données&lt;br /&gt;
* Possibilité d'étudier séparément champ électrique et magnétique&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Inconvénients:''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Impossible d'étudier les basses fréquences (appareils sous tension, bobinages...)&lt;br /&gt;
* Prix élevé : à partir de 3100€&lt;br /&gt;
* La cible de ce produit est surtout les professionels&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
'''Une pita.'''&lt;br /&gt;
&lt;br /&gt;
''Comment mon pain à pita vole ta clé RSA ?''&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Pita.jpg|200px|thumb|left|Une pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Des chercheurs israéliens ont découvert un moyen de capturer des clés de cryptage RSA, réputées comme inviolables, par le biais d'une pita... du moins avec un dispositif suffisamment petit pour être caché dans un pain à pita. &lt;br /&gt;
Le dispositif, renommé PITA pour Portable Instrument for Trace Acquisition a la particularité de capturer les ondes radio électromagnétiques émanantes d'un PC, qu'il soit connecté à un réseau ou pas.&lt;br /&gt;
Les différentes opérations du processeur sont identifiées en distinguant les différents modèles de l'activité radio sur le spectre EM.&lt;br /&gt;
&lt;br /&gt;
Bien que la capture des clés RSA a été faite dans des conditions particulières (modification du processeur de l'ordinateur cible), il est néanmoins possible, selon les chercheurs, d'identifier quelle type d'activité est exercée par l'ordinateur ainsi que son état.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PITA.jpg|300px|thumb|right|Un dessous de pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'un des points importants concernant le dispositif est son coût : moins de 300 euros.&lt;br /&gt;
L'appareil dispose :&lt;br /&gt;
* d'un PC portatif (PC-on-a-stick) ''Rikomagic MK802 IV'',&lt;br /&gt;
* d'un recepteur radio SDR ''FUNcube Dongle Pro+''&lt;br /&gt;
* d'une antenne radio&lt;br /&gt;
* d'une batterie&lt;br /&gt;
* d'une antenne WiFi&lt;br /&gt;
* d'une carte MicroSD&lt;br /&gt;
* d'un adapteur d'antenne&lt;br /&gt;
* et d'une '''pita'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le dispositif aurait une portée de 50cm. &lt;br /&gt;
Les chercheurs israéliens ont collaboré avec GNU Private Guard (logiciel de cryptage asymétrique) afin de protéger contre ces attaques les clés de cryptage.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
&lt;br /&gt;
''Scénario 1''&lt;br /&gt;
&lt;br /&gt;
Gérard a toujours le flair pour les bonnes affaires. Il a acheté une centaine de clés WiFi à un prix dérisoire sur AloXpresso afin de faire du profit à la revente. Le vendeur lui garantit que toutes les clés fonctionnent correctement. Gérard veut vérifier. Après vérification, 99 des clés sur 100 fonctionnent comme prévu. Gérard aimerait être sûr du disfonctionnement, mais Gérard n'est pas une pointure en informatique. &lt;br /&gt;
&lt;br /&gt;
Coup de génie ! Il se rappelle qu'il dispose d'un dispositif qui capte les ondes EM et les interprète directement. C'est le moment de tester ça. Il remarque une anomalie sur le spectre.&lt;br /&gt;
Il décide de contacter le revendeur pour lui signaler un disfonctionnement sur l'une des clé. &lt;br /&gt;
Pas de soucis. Le vendeur, étant bon prince, lui envoie une autre clé USB et lui fait une ristourne.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Scénario 2''&lt;br /&gt;
&lt;br /&gt;
La police fait une perquisition chez un individu soupçonné de graves délits. Cela fait plusieurs mois que la brigade criminelle prépare l'intervention, et une fois sur les lieux ils arrêtent le soupçonné malfaiteur.&lt;br /&gt;
Cependant avant de repartir, elle veut faire l'acquisition d'un maximum de preuves. Elle veut alors prendre l'essentiel des objets, dont certains objets éléctroniques connectés de l'individu dont elle pourra extraire les informations qui serviront à le faire tomber.&lt;br /&gt;
&lt;br /&gt;
Par chance, elle dispose d'un petit outil qui scannera les signatures alentours des objets connectés, comme des téléphones cachés, clés USB wifi dissimulées dans le décor etc..&lt;br /&gt;
Et si le suspect avait modifié malignement un objet connecté banal pour l'utiliser autrement à ses fins, la police le découvrirait car elle possède une base de données de toutes les signatures spectrales des objets connectés sur le marché et celle de l'objet modifié ne collerait pas avec celle de la base de données.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
&lt;br /&gt;
'''Comment étudier les signaux malgré les perturbations électromagnétiques ambiants et les faibles signaux des µC ?'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les signaux électromagnétiques des microcontrôleurs ou d'autres composants peuvent être faibles. Il y a une possibilité pour palier à ce problème, c'est de capter les signaux depuis une antenne émettrice que l'on rajoute à l'objet d'étude. &lt;br /&gt;
Nous utiliserons un SDR (Software Defined-Radio) afin de capter les ondes radio et les étudier directement sur PC. Le filtrage s'effectuera ainsi de manière numérique. Plusieurs tests seront effectués pour le même objet à étudier (quand on parle d'objet, on évoque un ensemble de plusieurs composants, comme par exemple une alimentation, un micro-contrôleur et une antenne). Ainsi, de manière statistique, nous pourrons en déduire un pattern récurrent pour chaque expérience en les effectuant dans différents environnements (pourquoi pas une chambre anachoïque). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons &lt;br /&gt;
* Capter le signal émis par un objet connecté le plus précisément possible&lt;br /&gt;
&lt;br /&gt;
* Concevoir nos propres objets connectés tous différents mais basés sur un même modèle&lt;br /&gt;
&lt;br /&gt;
* Interpréter les spectrogrammes, faire une étude statistique des signaux émis par nos différents objets et en tirer des conclusions&lt;br /&gt;
&lt;br /&gt;
* Répertorier dans une base de données les signatures de nos objets , voire de quelques objets disponibles sur le marché&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix logiciel :&lt;br /&gt;
&lt;br /&gt;
- La distribution Linux Pentoo ou Kali pour traiter les signaux avec GNU RADIO (Suite logicielle dédiée à l’implémentation de radios logicielles et de systèmes de traitement du signal).&lt;br /&gt;
&lt;br /&gt;
- FemtoOS pour l'OS des ATMEGA328P et ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix Matériel : &lt;br /&gt;
&lt;br /&gt;
- Plusieurs modules radios émetteurs &lt;br /&gt;
&lt;br /&gt;
- Plusieurs microcontrôleurs ATMEGA328P et un ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
- Des alimentations identiques pour chaque PCB&lt;br /&gt;
&lt;br /&gt;
- Un HackRF pour la réception des signaux&lt;br /&gt;
&lt;br /&gt;
- Une antenne 50 Ohm pour le HackRF [https://www.passion-radio.fr/accessoires-sdr/antenne-ant500-74.html]&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous devons préparer tout le matériel qui servira à faire nos tests. C'est à dire concevoir :&lt;br /&gt;
&lt;br /&gt;
- Un ensemble SDR/PC qui traitera le signal reçu avec GNU RADIO.&lt;br /&gt;
&lt;br /&gt;
- Une multitude de PCB qui seront nos objets connectés (Sur chacun d'entre eux on trouvera au minimum une antenne radio, un microcontrôleur et une alimentation)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de récupérer une &amp;quot;signature&amp;quot; d'un de nos objets , il faudra faire plus de 50 analyses spectrales pour conclure statistiquement sur une bonne signature qui caractérisera l'objet.&lt;br /&gt;
&lt;br /&gt;
Nous devons donc dans un second temps: &lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques mais qui ont un '''firmware''' différent.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques qui ont pour seule différence le '''microcontrôleur'''.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques dont seul le '''PCB''' diffère.&lt;br /&gt;
&lt;br /&gt;
Grâce à tous ces tests , nous pourrons conclure et voir l'impact qu'à le matériel ou le logiciel sur la signature d'un objet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enfin si les délais nous le permettent, nous pourrons réaliser un software qui cartographiera nos objets connectés dans la pièce grâce à la puissance de la signature reçue (Ce qui devrait être réalisable puisqu'à ce stade nous aurons une base de donnée des signatures).&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
|3&lt;br /&gt;
|8&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Recherches&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|6&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Prise en main de GnuRadio&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Configuration Xbee&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|4&lt;br /&gt;
|15&lt;br /&gt;
|9&lt;br /&gt;
|8&lt;br /&gt;
|7&lt;br /&gt;
|8&lt;br /&gt;
|8&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
[[Fichier:HackrfOne.jpeg|200px|thumb|right|Le HackRF One]]&lt;br /&gt;
Durant cette semaine, nous avons continué nos recherches notamment sur le moyen de transmission de nos objets connectés. Nous avons confirmé notre choix de notre SDR : Monsieur Boé nous a confirmé que des HackRF seraient disponibles dans les laboratoires et qu'il pourrait nous en prêter un. On disposera donc d'une antenne puissante pour traiter les signaux émis par nos objets communiquants. &lt;br /&gt;
&lt;br /&gt;
Il faudra coupler notre HackRF avec un logiciel appelé GNU RADIO qui est un logiciel très complet ( Pour information : la NASA a utilisé GNU RADIO afin de rétablir le contact avec une sonde spatiale abandonnée ). Afin de faire tourner ce logiciel libre, nous aurons besoin de la distribution Kali Linux, ex Backtrack.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Choix des émetteurs/récepteurs === &lt;br /&gt;
&lt;br /&gt;
Nous avons décidé que nos objets connectés communiqueront dans deux '''bandes de fréquences ISM''', l'une à '''900 MHz''' grâce à des modules Digi Xbee et l'autre à '''2,4 GHz''' par le moyen de modules émetteurs Bluetooth. On rappellera que les Digi Xbee et les émetteurs/récepteurs Bluetooth seront pilotés par des ATMEGA 2560.&lt;br /&gt;
&lt;br /&gt;
Les Xbee ne communiqueront pas entre eux et émettront en continu les mêmes données car ils le peuvent, alors que les émetteurs/récepteurs Bluetooth devront s'échanger des données si on veut pouvoir observer un quelconque signal autour de la fréquence de leurs porteuses. &lt;br /&gt;
&lt;br /&gt;
On voudra observer premièrement, si avec deux objets dans les '''mêmes''' conditions (donc même µc et même émetteur), on peut ou non '''distinguer une différence'''. Ceci est fondamental pour la suite des expériences, puisque si les deux émettent à la même fréquence, on pourra faire varier plusieurs paramètres afin de trouver '''des clés''' (des signes) qui pourraient aider à l'identification du matériel.&lt;br /&gt;
&lt;br /&gt;
Ces clés représentent différents facteurs potentiels d'identification du signal (le rapport signal-bruit en fonction de la distance par exemple...).&lt;br /&gt;
&lt;br /&gt;
''On planifie alors pour la semaine suivante de réussir à faire émettre, en utilisant simplement des breadboards pour commencer, nos Xbee et modules BT et observer quelque chose grâce à notre SDR.''&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration des modules XBee ===&lt;br /&gt;
&lt;br /&gt;
Nous avons configuré deux XBee afin qu'ils puissent communiquer entre eux : &lt;br /&gt;
&lt;br /&gt;
Les modules XBee ont été montés sur des platines d'interface USB/série de manière à ce qu'on puisse les paramétrer via le programme de contrôle ''minicom''. &lt;br /&gt;
&lt;br /&gt;
Dans le doute, on supposera que les XBee communiquent à 9600 Baud. On exécute la commande suivante : &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;minicom -b 9600 -D /dev/ttyUSB0&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
On active l'echo local dans minicom, afin de pouvoir observer ce qui a été envoyé par liaison série au XBee ('''CTRL+A''' puis '''E''').&lt;br /&gt;
&lt;br /&gt;
Pour commencer le paramètrage il faut taper ''' +++ ''' rapidement. Le XBee nous répond OK, cela veut dire que nous sommes dans le mode configuration et que nous pouvons utiliser les commandes '''AT'''. (Redirection vers la liste des commandes AT XBee [https://cdn.sparkfun.com/assets/resources/2/9/22AT_Commands.pdf]).&lt;br /&gt;
&lt;br /&gt;
Comme nos XBee ont été utilisés auparavant, il a fallu les restaurer à l'état usine avec la commande '''ATRE'''.&lt;br /&gt;
&lt;br /&gt;
Si on souhaite que des XBee puissent s'envoyer des données il faut qu'ils soient sur le même canal (commande '''ATCH''') et aient le même PAN ID (commande '''ATID'''). Notre PAN ID sera '''BEE6''' et le canal sera celui par défaut '''C'''.&lt;br /&gt;
&lt;br /&gt;
Ensuite il faut leur donner une adresse de destination ('''ATDH''' &amp;amp; '''ATDL''') qui sera l'adresse broadcast, pour ce faire on entre &lt;br /&gt;
 ATDH=0000&lt;br /&gt;
 ATDL=FFFF&lt;br /&gt;
&lt;br /&gt;
Enfin '''ATMY''' représente l'ID du XBee, notre premier XBee aura comme ID 5000 et le second 5001.&lt;br /&gt;
&lt;br /&gt;
N'oublions pas de sauvegarder les paramètres avec '''ATWR'''.&lt;br /&gt;
&lt;br /&gt;
On vérifie que tout a bien été pris en compte :&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;&lt;br /&gt;
+++OK&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATID&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
BEE6&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
C&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
0&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDL&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
FFFF&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATMY&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
5000&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCN&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Puis on fait de même avec le deuxième XBee (ID 5001).&lt;br /&gt;
&lt;br /&gt;
Voilà, lorsque on envoi des caractères par liaison série sur 5000, la LED '''Tx''' de 5000 s'allume et la Led '''Rx''' de 5001 s'allume elle aussi. Cela signifie que l'envoi de donnée par onde radio s'effectue correctement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que les XBee émettent et reçoivent, on peut commencer les mesures avec notre SDR. Mais avant cela il va falloir bien se familiariser avec le logiciel GNU RADIO qui est assez difficile à prendre en main.&lt;br /&gt;
&lt;br /&gt;
=== Première prise en main du logiciel GNURADIO ===&lt;br /&gt;
&lt;br /&gt;
Installation de GNU radio avec les fonctions + drivers pour HackRF : &lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install gqrx gnuradio gr-osmosdr hackrf &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le bloc Osmocom Source sert de &amp;quot;passerelle&amp;quot; entre le logiciel et la SDR, il permet de transmettre les informations récupérées par le HackRF afin qu'on puisse les traiter avec d'autres bloc de fonctions.&lt;br /&gt;
&lt;br /&gt;
Si on veut pouvoir récuperer les données il faut passer l'argument ''hackrf=0'' dans la box périphérique du bloc Osmocom.&lt;br /&gt;
&lt;br /&gt;
Ci-dessous on peut voir le spectre environnant entre 2.44GHz et 2.460GHz grâce au bloc WX GUI FFT Sink.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ScreenGnuRadio.png|Interface de GNURadio]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous a permis d'effectuer notre première expérience. L'utilisation des deux Xbees nous a permis d'observer l'impact des Xbee sur le champ électromagéntique environnant.&lt;br /&gt;
&lt;br /&gt;
Si on analyse le spectre environnant grâce au module FFT de GNU Radio, lorsque les Xbee communiquent entre eux, on peut apercevoir un pic caractéristique propre.&lt;br /&gt;
En effet, lors de l'emission d'un message sur le port série, on a un pic qui se dégage du spectre d'amplitude -20dBm. Ce pic est caractéristique au canal de communication choisi et configuré sur le Xbee.&lt;br /&gt;
Néanmoins, le signal est perturbé par le bruit environnant. &lt;br /&gt;
L'expérience étant effectuée au sein de l'école, les signaux Wi-Fi perturberont l'étude.&lt;br /&gt;
Il faut noter que la norme IEEE 802.11 impose au Wi-Fi l'utilisation d'une bande passante s'étalant de 2.4 GHz à 2.5 GHz.&lt;br /&gt;
&lt;br /&gt;
La bande passante des modules Zigbee se décomposent en 16 canaux, allant de 2400 MHz à 2480 MHz par pas de 5 MHz.&lt;br /&gt;
&lt;br /&gt;
Le canal ici utilisé est le canal 13 (3ème canal) de fréquence 2415 MHz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- [[Fichier:Channel135001.png|thumb|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Fichier:channel135000.png|thumb|none|400 px]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:XBeeCh13.png|Spectre de l'environnement autour du XBee|thumb|400 px]][[Fichier:XBeeCh13SND.png|Lors de l'envoi de données au XBee voisin|thumb|none|400 px]]&lt;br /&gt;
&lt;br /&gt;
On peut observer un pic de puissance lors de l'envoi d'une donnée en série à la fréquence 2.415 GHz.&lt;br /&gt;
Il nous est maintenant nécessaire d'analyser de plus près les signaux et leurs fréquence centrale dans la bande perçue au dessus de -20dB.&lt;br /&gt;
&lt;br /&gt;
On réeffectuera une expérience en zone isolée des signaux parasites.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous avons principalement fait des recherches dans le but de mieux comprendre les signaux émis par le Xbee.&lt;br /&gt;
&lt;br /&gt;
En somme, nous étions confrontés à de nombreuses interrogations. Le fonctionnement du Xbee étant assez simple et la sécurité du protocole Zigbee étant moindre, y a t-il possibilité de démoduler le signal émis afin de développer nos études ?&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&lt;br /&gt;
Après réflexion et consultation de nos encadrants, nous nous sommes rendu compte que la démodulation prévue lors de la semaine 4 n'aiderait pas à répondre à la problématique de notre sujet !  &lt;br /&gt;
&lt;br /&gt;
Afin de mieux visualiser les signaux des Xbee , on décide d'automatiser le processus d'envoie sur le port série des données vers le Xbee. C'est à dire concevoir un programme Python qui automatisera l'envoi de données et le changement de channel à intervalle de temps régulier (Changement toutes les 10 secondes). &lt;br /&gt;
&lt;br /&gt;
L'utilisation de Minicom '''n'était pas du tout la meilleure solution''' pour faire émettre les Xbee.&lt;br /&gt;
&lt;br /&gt;
Après quelques essais, on remarque que lorsque le Xbee émet sur le channel 13, il émet à environ 2,445GHz au lieu d'émettre à 2,415GHz soit une différence de 30MHz : Ceci n'est pas important, car ce que l'on souhaite remarquer c'est un éventuel décalage de la fréquence centrale entre deux Xbee différents. Si les deux Xbee n'ont pas la même frequence centrale on pourra conclure que la '''fréquence centrale''' de la porteuse du Xbee n'est pas '''une des clés''' permettant d''''identifier''' cet émetteur/récepteur.&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;/div&gt;</summary>
		<author><name>Amoreau</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=70453</id>
		<title>IMA4 2018/2019 P70</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=70453"/>
				<updated>2019-03-06T15:22:09Z</updated>
		
		<summary type="html">&lt;p&gt;Amoreau : /* Semaine 5 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;font-size: 30px; width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;Impact du matériel et du logiciel sur le champ électromagnétique&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Projet'''&amp;lt;/ins&amp;gt; : Impact du matériel et du logiciel sur le rayonnement électromagnétique&lt;br /&gt;
&lt;br /&gt;
''Nous proposons d'évaluer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et la consommation électrique.''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Etudiants'''&amp;lt;/ins&amp;gt; : Souheib KHINACHE et Antoine MOREAU&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Encadrants'''&amp;lt;/ins&amp;gt; : Alexandre BOE, Xavier REDON et Thomas VANTROYS&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'internet des objets est un marché en plein essor. La communication entre les différents objets connectés crée un nuage de signaux autour d'eux. Ces derniers sont vus par les utilisateurs comme des boîtes noires : le fonctionnement se fait sans en connaître les composants matériels et logiciels. &lt;br /&gt;
Néanmoins, ces objets, de par leurs propriétés électroniques, créent des fuites électromagnétiques impactant le champ environnant. &lt;br /&gt;
&lt;br /&gt;
Bien qu'ils peuvent porter à débat sur l'impact sur la santé, ces signaux peuvent représenter de réelles sources d'informations sur l'aspect matériel et applicatif de l'objet.&lt;br /&gt;
&lt;br /&gt;
Il serait donc intéressant d'avoir idée générale sur le fonctionnement du système en interprétant les ondes électromagnétiques émises par ce système.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Les principaux objectifs de ce projet seront donc de mesurer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et sur la consommation électrique.&lt;br /&gt;
Pour cela, l'outil potentiel avec lequel nous pourrions travailler serait une sonde de champ électromagnétique afin d'établir des mesures. &lt;br /&gt;
Cependant, nous pourrions concevoir notre propre système de capture et d'interprétation à partir d'une antenne, de filtres de fréquences et d'un microcontrôleur (on commencera par un ATMega328P). Il sera nécessaire de prendre en compte les perturbations issues de notre appareil de mesure et d'en tenir compte.&lt;br /&gt;
&lt;br /&gt;
On effectuera ainsi plusieurs expérimentations sur différents supports d'étude :&lt;br /&gt;
*l'aspect &amp;quot;Hardware&amp;quot; en étudiant différents modèles pour un même type de shield  &lt;br /&gt;
*l'aspect calculatoire du matériel en se basant sur l'impact des microcontrôleurs en fonction du modèle (ATMega328P et ATMega2560)&lt;br /&gt;
*l'aspect &amp;quot;Software&amp;quot;, en étudiant l'impact du logiciel et du firmware d'un même composant (différents firmwares pour un même shield Wi-Fi)&lt;br /&gt;
*l'aspect puissance des composants électroniques de gestion de puissance (ponts, hacheurs, onduleurs...).&lt;br /&gt;
&lt;br /&gt;
L'étude des différentes informations se fera par traitement des signaux électromagnétiques et des spectres. &lt;br /&gt;
Afin de mieux appréhender le problème, il nous est nécessaire de comprendre les phénomènes physiques issus de la notion d'électromagnétisme.&lt;br /&gt;
&lt;br /&gt;
Ces études mèneront à une étape plus complexe : l'interprétation des signaux. En effet, l'un des objectifs de ce projet est de comprendre du mieux possible le fonctionnement d'un système sans y avoir accès directement, et donc dans ce contexte &amp;quot;traduire&amp;quot; un ensemble de signaux électromagnétiques.&lt;br /&gt;
&lt;br /&gt;
On pourra en outre apporter un aspect visuel à l'étude en rajoutant une interface informatique.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
Bien qu'aux yeux de nombreuses personnes le bruit électromagnétique créé par les équipements électroniques du quotidien peut porter à controverse (débats concernant l'impact sur la santé par exemple), il peut être une source d'informations. &lt;br /&gt;
De nos jours, les ondes électromagnétiques restent un vaste champ d'étude, sujettes à de nombreuses thèses et recherches au sein des laboratoires.&lt;br /&gt;
&lt;br /&gt;
On peut prendre l'exemple de [https://www.eurekalert.org/pub_releases/2015-01/giot-rwt010715.php Milos Prvulovic], professeur à l'Institut Technologique de Géorgie, ayant simulé un contexte de cybercafé, dans lequel il place une antenne magnétique, un ordinateur portable cible et un ordinateur &amp;quot;espion&amp;quot;. Il réussit, grâce aux signaux EM émis par l'impulsion de l'appui des touches clavier à capter un message écrit par un ordinateur cible. &lt;br /&gt;
&lt;br /&gt;
Néanmoins, dans le quotidien, l'utilisation des sondes électromagnétiques se fait pour l'étude énergétique d'un système électronique (fuites électromagnétiques anormales, preuves d'une anomalie...) afin de respecter certaines normes législatives. Le code du travail par exemple réglemente et définit des valeurs seuils par le biais des articles R. 4453-3 et R. 4453-4.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
'''NBM-520 de NARDA STS'''&lt;br /&gt;
[[Fichier: NBM_TS.png|thumb|300px|NBM-TS, application des appareils NBM]]&lt;br /&gt;
NARDA STS est une entreprise qui fournit des outils de mesure. Elle met à disposition aux professionnels des sondes électromagnétiques.&lt;br /&gt;
La NBM-520 est un appareil de la franchise, mesurant le champ électrique et magnétique. Elle donne des valeurs précises du champ électromagnétique ambiant sur une large bande. Elle propose différentes sondes modulables permettant une souplesse au niveau de l'étude en fonction des besoins, avec des sondes pouvant étudier des signaux de fréquence de 100kHz à 6GHz ou même de 300kHz à 50GHz (en fonction de la sonde choisie).&lt;br /&gt;
&lt;br /&gt;
En outre, le dispositif peut se connecter en USB sur PC afin d'envoyer les données capturées et d'en faire une étude. Le dispositif propose un logiciel d'étude, NBM-TS, permettant d'observer du champ en fonction du temps, de la fréquence, de la position...&lt;br /&gt;
&lt;br /&gt;
L'équipement est utilisé par l'ANF (l'Agence Nationale des Fréquences, agence gérant l'ensemble des normes autour des radiofréquences), et est donc un gage de qualité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Avantages :''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Large bande de fréquence&lt;br /&gt;
* Matériel solide&lt;br /&gt;
* Application fonctionnelle permettant l'étude et gestion des données&lt;br /&gt;
* Possibilité d'étudier séparément champ électrique et magnétique&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Inconvénients:''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Impossible d'étudier les basses fréquences (appareils sous tension, bobinages...)&lt;br /&gt;
* Prix élevé : à partir de 3100€&lt;br /&gt;
* La cible de ce produit est surtout les professionels&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
'''Une pita.'''&lt;br /&gt;
&lt;br /&gt;
''Comment mon pain à pita vole ta clé RSA ?''&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Pita.jpg|200px|thumb|left|Une pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Des chercheurs israéliens ont découvert un moyen de capturer des clés de cryptage RSA, réputées comme inviolables, par le biais d'une pita... du moins avec un dispositif suffisamment petit pour être caché dans un pain à pita. &lt;br /&gt;
Le dispositif, renommé PITA pour Portable Instrument for Trace Acquisition a la particularité de capturer les ondes radio électromagnétiques émanantes d'un PC, qu'il soit connecté à un réseau ou pas.&lt;br /&gt;
Les différentes opérations du processeur sont identifiées en distinguant les différents modèles de l'activité radio sur le spectre EM.&lt;br /&gt;
&lt;br /&gt;
Bien que la capture des clés RSA a été faite dans des conditions particulières (modification du processeur de l'ordinateur cible), il est néanmoins possible, selon les chercheurs, d'identifier quelle type d'activité est exercée par l'ordinateur ainsi que son état.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PITA.jpg|300px|thumb|right|Un dessous de pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'un des points importants concernant le dispositif est son coût : moins de 300 euros.&lt;br /&gt;
L'appareil dispose :&lt;br /&gt;
* d'un PC portatif (PC-on-a-stick) ''Rikomagic MK802 IV'',&lt;br /&gt;
* d'un recepteur radio SDR ''FUNcube Dongle Pro+''&lt;br /&gt;
* d'une antenne radio&lt;br /&gt;
* d'une batterie&lt;br /&gt;
* d'une antenne WiFi&lt;br /&gt;
* d'une carte MicroSD&lt;br /&gt;
* d'un adapteur d'antenne&lt;br /&gt;
* et d'une '''pita'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le dispositif aurait une portée de 50cm. &lt;br /&gt;
Les chercheurs israéliens ont collaboré avec GNU Private Guard (logiciel de cryptage asymétrique) afin de protéger contre ces attaques les clés de cryptage.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
&lt;br /&gt;
''Scénario 1''&lt;br /&gt;
&lt;br /&gt;
Gérard a toujours le flair pour les bonnes affaires. Il a acheté une centaine de clés WiFi à un prix dérisoire sur AloXpresso afin de faire du profit à la revente. Le vendeur lui garantit que toutes les clés fonctionnent correctement. Gérard veut vérifier. Après vérification, 99 des clés sur 100 fonctionnent comme prévu. Gérard aimerait être sûr du disfonctionnement, mais Gérard n'est pas une pointure en informatique. &lt;br /&gt;
&lt;br /&gt;
Coup de génie ! Il se rappelle qu'il dispose d'un dispositif qui capte les ondes EM et les interprète directement. C'est le moment de tester ça. Il remarque une anomalie sur le spectre.&lt;br /&gt;
Il décide de contacter le revendeur pour lui signaler un disfonctionnement sur l'une des clé. &lt;br /&gt;
Pas de soucis. Le vendeur, étant bon prince, lui envoie une autre clé USB et lui fait une ristourne.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Scénario 2''&lt;br /&gt;
&lt;br /&gt;
La police fait une perquisition chez un individu soupçonné de graves délits. Cela fait plusieurs mois que la brigade criminelle prépare l'intervention, et une fois sur les lieux ils arrêtent le soupçonné malfaiteur.&lt;br /&gt;
Cependant avant de repartir, elle veut faire l'acquisition d'un maximum de preuves. Elle veut alors prendre l'essentiel des objets, dont certains objets éléctroniques connectés de l'individu dont elle pourra extraire les informations qui serviront à le faire tomber.&lt;br /&gt;
&lt;br /&gt;
Par chance, elle dispose d'un petit outil qui scannera les signatures alentours des objets connectés, comme des téléphones cachés, clés USB wifi dissimulées dans le décor etc..&lt;br /&gt;
Et si le suspect avait modifié malignement un objet connecté banal pour l'utiliser autrement à ses fins, la police le découvrirait car elle possède une base de données de toutes les signatures spectrales des objets connectés sur le marché et celle de l'objet modifié ne collerait pas avec celle de la base de données.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
&lt;br /&gt;
'''Comment étudier les signaux malgré les perturbations électromagnétiques ambiants et les faibles signaux des µC ?'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les signaux électromagnétiques des microcontrôleurs ou d'autres composants peuvent être faibles. Il y a une possibilité pour palier à ce problème, c'est de capter les signaux depuis une antenne émettrice que l'on rajoute à l'objet d'étude. &lt;br /&gt;
Nous utiliserons un SDR (Software Defined-Radio) afin de capter les ondes radio et les étudier directement sur PC. Le filtrage s'effectuera ainsi de manière numérique. Plusieurs tests seront effectués pour le même objet à étudier (quand on parle d'objet, on évoque un ensemble de plusieurs composants, comme par exemple une alimentation, un micro-contrôleur et une antenne). Ainsi, de manière statistique, nous pourrons en déduire un pattern récurrent pour chaque expérience en les effectuant dans différents environnements (pourquoi pas une chambre anachoïque). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons &lt;br /&gt;
* Capter le signal émis par un objet connecté le plus précisément possible&lt;br /&gt;
&lt;br /&gt;
* Concevoir nos propres objets connectés tous différents mais basés sur un même modèle&lt;br /&gt;
&lt;br /&gt;
* Interpréter les spectrogrammes, faire une étude statistique des signaux émis par nos différents objets et en tirer des conclusions&lt;br /&gt;
&lt;br /&gt;
* Répertorier dans une base de données les signatures de nos objets , voire de quelques objets disponibles sur le marché&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix logiciel :&lt;br /&gt;
&lt;br /&gt;
- La distribution Linux Pentoo ou Kali pour traiter les signaux avec GNU RADIO (Suite logicielle dédiée à l’implémentation de radios logicielles et de systèmes de traitement du signal).&lt;br /&gt;
&lt;br /&gt;
- FemtoOS pour l'OS des ATMEGA328P et ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix Matériel : &lt;br /&gt;
&lt;br /&gt;
- Plusieurs modules radios émetteurs &lt;br /&gt;
&lt;br /&gt;
- Plusieurs microcontrôleurs ATMEGA328P et un ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
- Des alimentations identiques pour chaque PCB&lt;br /&gt;
&lt;br /&gt;
- Un HackRF pour la réception des signaux&lt;br /&gt;
&lt;br /&gt;
- Une antenne 50 Ohm pour le HackRF [https://www.passion-radio.fr/accessoires-sdr/antenne-ant500-74.html]&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous devons préparer tout le matériel qui servira à faire nos tests. C'est à dire concevoir :&lt;br /&gt;
&lt;br /&gt;
- Un ensemble SDR/PC qui traitera le signal reçu avec GNU RADIO.&lt;br /&gt;
&lt;br /&gt;
- Une multitude de PCB qui seront nos objets connectés (Sur chacun d'entre eux on trouvera au minimum une antenne radio, un microcontrôleur et une alimentation)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de récupérer une &amp;quot;signature&amp;quot; d'un de nos objets , il faudra faire plus de 50 analyses spectrales pour conclure statistiquement sur une bonne signature qui caractérisera l'objet.&lt;br /&gt;
&lt;br /&gt;
Nous devons donc dans un second temps: &lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques mais qui ont un '''firmware''' différent.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques qui ont pour seule différence le '''microcontrôleur'''.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques dont seul le '''PCB''' diffère.&lt;br /&gt;
&lt;br /&gt;
Grâce à tous ces tests , nous pourrons conclure et voir l'impact qu'à le matériel ou le logiciel sur la signature d'un objet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enfin si les délais nous le permettent, nous pourrons réaliser un software qui cartographiera nos objets connectés dans la pièce grâce à la puissance de la signature reçue (Ce qui devrait être réalisable puisqu'à ce stade nous aurons une base de donnée des signatures).&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
|3&lt;br /&gt;
|8&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Recherches&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|6&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Prise en main de GnuRadio&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Configuration Xbee&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|4&lt;br /&gt;
|15&lt;br /&gt;
|9&lt;br /&gt;
|8&lt;br /&gt;
|7&lt;br /&gt;
|8&lt;br /&gt;
|8&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
[[Fichier:HackrfOne.jpeg|200px|thumb|right|Le HackRF One]]&lt;br /&gt;
Durant cette semaine, nous avons continué nos recherches notamment sur le moyen de transmission de nos objets connectés. Nous avons confirmé notre choix de notre SDR : Monsieur Boé nous a confirmé que des HackRF seraient disponibles dans les laboratoires et qu'il pourrait nous en prêter un. On disposera donc d'une antenne puissante pour traiter les signaux émis par nos objets communiquants. &lt;br /&gt;
&lt;br /&gt;
Il faudra coupler notre HackRF avec un logiciel appelé GNU RADIO qui est un logiciel très complet ( Pour information : la NASA a utilisé GNU RADIO afin de rétablir le contact avec une sonde spatiale abandonnée ). Afin de faire tourner ce logiciel libre, nous aurons besoin de la distribution Kali Linux, ex Backtrack.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Choix des émetteurs/récepteurs === &lt;br /&gt;
&lt;br /&gt;
Nous avons décidé que nos objets connectés communiqueront dans deux '''bandes de fréquences ISM''', l'une à '''900 MHz''' grâce à des modules Digi Xbee et l'autre à '''2,4 GHz''' par le moyen de modules émetteurs Bluetooth. On rappellera que les Digi Xbee et les émetteurs/récepteurs Bluetooth seront pilotés par des ATMEGA 2560.&lt;br /&gt;
&lt;br /&gt;
Les Xbee ne communiqueront pas entre eux et émettront en continu les mêmes données car ils le peuvent, alors que les émetteurs/récepteurs Bluetooth devront s'échanger des données si on veut pouvoir observer un quelconque signal autour de la fréquence de leurs porteuses. &lt;br /&gt;
&lt;br /&gt;
On voudra observer premièrement, si avec deux objets dans les '''mêmes''' conditions (donc même µc et même émetteur), on peut ou non '''distinguer une différence'''. Ceci est fondamental pour la suite des expériences, puisque si les deux émettent à la même fréquence, on pourra faire varier plusieurs paramètres afin de trouver '''des clés''' (des signes) qui pourraient aider à l'identification du matériel.&lt;br /&gt;
&lt;br /&gt;
Ces clés représentent différents facteurs potentiels d'identification du signal (le rapport signal-bruit en fonction de la distance par exemple...).&lt;br /&gt;
&lt;br /&gt;
''On planifie alors pour la semaine suivante de réussir à faire émettre, en utilisant simplement des breadboards pour commencer, nos Xbee et modules BT et observer quelque chose grâce à notre SDR.''&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration des modules XBee ===&lt;br /&gt;
&lt;br /&gt;
Nous avons configuré deux XBee afin qu'ils puissent communiquer entre eux : &lt;br /&gt;
&lt;br /&gt;
Les modules XBee ont été montés sur des platines d'interface USB/série de manière à ce qu'on puisse les paramétrer via le programme de contrôle ''minicom''. &lt;br /&gt;
&lt;br /&gt;
Dans le doute, on supposera que les XBee communiquent à 9600 Baud. On exécute la commande suivante : &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;minicom -b 9600 -D /dev/ttyUSB0&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
On active l'echo local dans minicom, afin de pouvoir observer ce qui a été envoyé par liaison série au XBee ('''CTRL+A''' puis '''E''').&lt;br /&gt;
&lt;br /&gt;
Pour commencer le paramètrage il faut taper ''' +++ ''' rapidement. Le XBee nous répond OK, cela veut dire que nous sommes dans le mode configuration et que nous pouvons utiliser les commandes '''AT'''. (Redirection vers la liste des commandes AT XBee [https://cdn.sparkfun.com/assets/resources/2/9/22AT_Commands.pdf]).&lt;br /&gt;
&lt;br /&gt;
Comme nos XBee ont été utilisés auparavant, il a fallu les restaurer à l'état usine avec la commande '''ATRE'''.&lt;br /&gt;
&lt;br /&gt;
Si on souhaite que des XBee puissent s'envoyer des données il faut qu'ils soient sur le même canal (commande '''ATCH''') et aient le même PAN ID (commande '''ATID'''). Notre PAN ID sera '''BEE6''' et le canal sera celui par défaut '''C'''.&lt;br /&gt;
&lt;br /&gt;
Ensuite il faut leur donner une adresse de destination ('''ATDH''' &amp;amp; '''ATDL''') qui sera l'adresse broadcast, pour ce faire on entre &lt;br /&gt;
 ATDH=0000&lt;br /&gt;
 ATDL=FFFF&lt;br /&gt;
&lt;br /&gt;
Enfin '''ATMY''' représente l'ID du XBee, notre premier XBee aura comme ID 5000 et le second 5001.&lt;br /&gt;
&lt;br /&gt;
N'oublions pas de sauvegarder les paramètres avec '''ATWR'''.&lt;br /&gt;
&lt;br /&gt;
On vérifie que tout a bien été pris en compte :&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;&lt;br /&gt;
+++OK&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATID&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
BEE6&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
C&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
0&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDL&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
FFFF&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATMY&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
5000&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCN&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Puis on fait de même avec le deuxième XBee (ID 5001).&lt;br /&gt;
&lt;br /&gt;
Voilà, lorsque on envoi des caractères par liaison série sur 5000, la LED '''Tx''' de 5000 s'allume et la Led '''Rx''' de 5001 s'allume elle aussi. Cela signifie que l'envoi de donnée par onde radio s'effectue correctement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que les XBee émettent et reçoivent, on peut commencer les mesures avec notre SDR. Mais avant cela il va falloir bien se familiariser avec le logiciel GNU RADIO qui est assez difficile à prendre en main.&lt;br /&gt;
&lt;br /&gt;
=== Première prise en main du logiciel GNURADIO ===&lt;br /&gt;
&lt;br /&gt;
Installation de GNU radio avec les fonctions + drivers pour HackRF : &lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install gqrx gnuradio gr-osmosdr hackrf &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le bloc Osmocom Source sert de &amp;quot;passerelle&amp;quot; entre le logiciel et la SDR, il permet de transmettre les informations récupérées par le HackRF afin qu'on puisse les traiter avec d'autres bloc de fonctions.&lt;br /&gt;
&lt;br /&gt;
Si on veut pouvoir récuperer les données il faut passer l'argument ''hackrf=0'' dans la box périphérique du bloc Osmocom.&lt;br /&gt;
&lt;br /&gt;
Ci-dessous on peut voir le spectre environnant entre 2.44GHz et 2.460GHz grâce au bloc WX GUI FFT Sink.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ScreenGnuRadio.png|Interface de GNURadio]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous a permis d'effectuer notre première expérience. L'utilisation des deux Xbees nous a permis d'observer l'impact des Xbee sur le champ électromagéntique environnant.&lt;br /&gt;
&lt;br /&gt;
Si on analyse le spectre environnant grâce au module FFT de GNU Radio, lorsque les Xbee communiquent entre eux, on peut apercevoir un pic caractéristique propre.&lt;br /&gt;
En effet, lors de l'emission d'un message sur le port série, on a un pic qui se dégage du spectre d'amplitude -20dBm. Ce pic est caractéristique au canal de communication choisi et configuré sur le Xbee.&lt;br /&gt;
Néanmoins, le signal est perturbé par le bruit environnant. &lt;br /&gt;
L'expérience étant effectuée au sein de l'école, les signaux Wi-Fi perturberont l'étude.&lt;br /&gt;
Il faut noter que la norme IEEE 802.11 impose au Wi-Fi l'utilisation d'une bande passante s'étalant de 2.4 GHz à 2.5 GHz.&lt;br /&gt;
&lt;br /&gt;
La bande passante des modules Zigbee se décomposent en 16 canaux, allant de 2400 MHz à 2480 MHz par pas de 5 MHz.&lt;br /&gt;
&lt;br /&gt;
Le canal ici utilisé est le canal 13 (3ème canal) de fréquence 2415 MHz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- [[Fichier:Channel135001.png|thumb|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Fichier:channel135000.png|thumb|none|400 px]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:XBeeCh13.png|Spectre de l'environnement autour du XBee|thumb|400 px]][[Fichier:XBeeCh13SND.png|Lors de l'envoi de données au XBee voisin|thumb|none|400 px]]&lt;br /&gt;
&lt;br /&gt;
On peut observer un pic de puissance lors de l'envoi d'une donnée en série à la fréquence 2.415 GHz.&lt;br /&gt;
Il nous est maintenant nécessaire d'analyser de plus près les signaux et leurs fréquence centrale dans la bande perçue au dessus de -20dB.&lt;br /&gt;
&lt;br /&gt;
On réeffectuera une expérience en zone isolée des signaux parasites.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous avons principalement fait des recherches dans le but de mieux comprendre les signaux émis par le Xbee.&lt;br /&gt;
&lt;br /&gt;
En somme, nous étions confrontés à de nombreuses interrogations. Le fonctionnement du Xbee étant assez simple et la sécurité du protocole Zigbee étant moindre, y a t-il possibilité de démoduler le signal émis afin de développer nos études ?&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&lt;br /&gt;
Après réflexion et consultation de nos encadrants, nous nous sommes rendu compte que la démodulation prévue lors de la semaine 4 n'aiderait pas à répondre à la problématique de notre sujet !  &lt;br /&gt;
&lt;br /&gt;
Afin de mieux visualiser les signaux des Xbee , on décide d'automatiser le processus d'envoie sur le port série des données vers le Xbee. C'est à dire concevoir un programme Python qui automatisera l'envoi de données et le changement de channel à intervalle de temps régulier (Changement toutes les 10 secondes). &lt;br /&gt;
&lt;br /&gt;
L'utilisation de Minicom '''n'était pas du tout la meilleure solution''' pour faire émettre les Xbee.&lt;br /&gt;
&lt;br /&gt;
Après quelques essais, on remarque que lorsque le Xbee émet sur le channel 13, il émet à environ 2,445GHz.&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;/div&gt;</summary>
		<author><name>Amoreau</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=70434</id>
		<title>IMA4 2018/2019 P70</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=70434"/>
				<updated>2019-03-06T14:32:19Z</updated>
		
		<summary type="html">&lt;p&gt;Amoreau : /* Réalisation du Projet */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;font-size: 30px; width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;Impact du matériel et du logiciel sur le champ électromagnétique&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Projet'''&amp;lt;/ins&amp;gt; : Impact du matériel et du logiciel sur le rayonnement électromagnétique&lt;br /&gt;
&lt;br /&gt;
''Nous proposons d'évaluer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et la consommation électrique.''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Etudiants'''&amp;lt;/ins&amp;gt; : Souheib KHINACHE et Antoine MOREAU&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Encadrants'''&amp;lt;/ins&amp;gt; : Alexandre BOE, Xavier REDON et Thomas VANTROYS&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'internet des objets est un marché en plein essor. La communication entre les différents objets connectés crée un nuage de signaux autour d'eux. Ces derniers sont vus par les utilisateurs comme des boîtes noires : le fonctionnement se fait sans en connaître les composants matériels et logiciels. &lt;br /&gt;
Néanmoins, ces objets, de par leurs propriétés électroniques, créent des fuites électromagnétiques impactant le champ environnant. &lt;br /&gt;
&lt;br /&gt;
Bien qu'ils peuvent porter à débat sur l'impact sur la santé, ces signaux peuvent représenter de réelles sources d'informations sur l'aspect matériel et applicatif de l'objet.&lt;br /&gt;
&lt;br /&gt;
Il serait donc intéressant d'avoir idée générale sur le fonctionnement du système en interprétant les ondes électromagnétiques émises par ce système.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Les principaux objectifs de ce projet seront donc de mesurer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et sur la consommation électrique.&lt;br /&gt;
Pour cela, l'outil potentiel avec lequel nous pourrions travailler serait une sonde de champ électromagnétique afin d'établir des mesures. &lt;br /&gt;
Cependant, nous pourrions concevoir notre propre système de capture et d'interprétation à partir d'une antenne, de filtres de fréquences et d'un microcontrôleur (on commencera par un ATMega328P). Il sera nécessaire de prendre en compte les perturbations issues de notre appareil de mesure et d'en tenir compte.&lt;br /&gt;
&lt;br /&gt;
On effectuera ainsi plusieurs expérimentations sur différents supports d'étude :&lt;br /&gt;
*l'aspect &amp;quot;Hardware&amp;quot; en étudiant différents modèles pour un même type de shield  &lt;br /&gt;
*l'aspect calculatoire du matériel en se basant sur l'impact des microcontrôleurs en fonction du modèle (ATMega328P et ATMega2560)&lt;br /&gt;
*l'aspect &amp;quot;Software&amp;quot;, en étudiant l'impact du logiciel et du firmware d'un même composant (différents firmwares pour un même shield Wi-Fi)&lt;br /&gt;
*l'aspect puissance des composants électroniques de gestion de puissance (ponts, hacheurs, onduleurs...).&lt;br /&gt;
&lt;br /&gt;
L'étude des différentes informations se fera par traitement des signaux électromagnétiques et des spectres. &lt;br /&gt;
Afin de mieux appréhender le problème, il nous est nécessaire de comprendre les phénomènes physiques issus de la notion d'électromagnétisme.&lt;br /&gt;
&lt;br /&gt;
Ces études mèneront à une étape plus complexe : l'interprétation des signaux. En effet, l'un des objectifs de ce projet est de comprendre du mieux possible le fonctionnement d'un système sans y avoir accès directement, et donc dans ce contexte &amp;quot;traduire&amp;quot; un ensemble de signaux électromagnétiques.&lt;br /&gt;
&lt;br /&gt;
On pourra en outre apporter un aspect visuel à l'étude en rajoutant une interface informatique.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
Bien qu'aux yeux de nombreuses personnes le bruit électromagnétique créé par les équipements électroniques du quotidien peut porter à controverse (débats concernant l'impact sur la santé par exemple), il peut être une source d'informations. &lt;br /&gt;
De nos jours, les ondes électromagnétiques restent un vaste champ d'étude, sujettes à de nombreuses thèses et recherches au sein des laboratoires.&lt;br /&gt;
&lt;br /&gt;
On peut prendre l'exemple de [https://www.eurekalert.org/pub_releases/2015-01/giot-rwt010715.php Milos Prvulovic], professeur à l'Institut Technologique de Géorgie, ayant simulé un contexte de cybercafé, dans lequel il place une antenne magnétique, un ordinateur portable cible et un ordinateur &amp;quot;espion&amp;quot;. Il réussit, grâce aux signaux EM émis par l'impulsion de l'appui des touches clavier à capter un message écrit par un ordinateur cible. &lt;br /&gt;
&lt;br /&gt;
Néanmoins, dans le quotidien, l'utilisation des sondes électromagnétiques se fait pour l'étude énergétique d'un système électronique (fuites électromagnétiques anormales, preuves d'une anomalie...) afin de respecter certaines normes législatives. Le code du travail par exemple réglemente et définit des valeurs seuils par le biais des articles R. 4453-3 et R. 4453-4.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
'''NBM-520 de NARDA STS'''&lt;br /&gt;
[[Fichier: NBM_TS.png|thumb|300px|NBM-TS, application des appareils NBM]]&lt;br /&gt;
NARDA STS est une entreprise qui fournit des outils de mesure. Elle met à disposition aux professionnels des sondes électromagnétiques.&lt;br /&gt;
La NBM-520 est un appareil de la franchise, mesurant le champ électrique et magnétique. Elle donne des valeurs précises du champ électromagnétique ambiant sur une large bande. Elle propose différentes sondes modulables permettant une souplesse au niveau de l'étude en fonction des besoins, avec des sondes pouvant étudier des signaux de fréquence de 100kHz à 6GHz ou même de 300kHz à 50GHz (en fonction de la sonde choisie).&lt;br /&gt;
&lt;br /&gt;
En outre, le dispositif peut se connecter en USB sur PC afin d'envoyer les données capturées et d'en faire une étude. Le dispositif propose un logiciel d'étude, NBM-TS, permettant d'observer du champ en fonction du temps, de la fréquence, de la position...&lt;br /&gt;
&lt;br /&gt;
L'équipement est utilisé par l'ANF (l'Agence Nationale des Fréquences, agence gérant l'ensemble des normes autour des radiofréquences), et est donc un gage de qualité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Avantages :''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Large bande de fréquence&lt;br /&gt;
* Matériel solide&lt;br /&gt;
* Application fonctionnelle permettant l'étude et gestion des données&lt;br /&gt;
* Possibilité d'étudier séparément champ électrique et magnétique&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Inconvénients:''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Impossible d'étudier les basses fréquences (appareils sous tension, bobinages...)&lt;br /&gt;
* Prix élevé : à partir de 3100€&lt;br /&gt;
* La cible de ce produit est surtout les professionels&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
'''Une pita.'''&lt;br /&gt;
&lt;br /&gt;
''Comment mon pain à pita vole ta clé RSA ?''&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Pita.jpg|200px|thumb|left|Une pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Des chercheurs israéliens ont découvert un moyen de capturer des clés de cryptage RSA, réputées comme inviolables, par le biais d'une pita... du moins avec un dispositif suffisamment petit pour être caché dans un pain à pita. &lt;br /&gt;
Le dispositif, renommé PITA pour Portable Instrument for Trace Acquisition a la particularité de capturer les ondes radio électromagnétiques émanantes d'un PC, qu'il soit connecté à un réseau ou pas.&lt;br /&gt;
Les différentes opérations du processeur sont identifiées en distinguant les différents modèles de l'activité radio sur le spectre EM.&lt;br /&gt;
&lt;br /&gt;
Bien que la capture des clés RSA a été faite dans des conditions particulières (modification du processeur de l'ordinateur cible), il est néanmoins possible, selon les chercheurs, d'identifier quelle type d'activité est exercée par l'ordinateur ainsi que son état.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PITA.jpg|300px|thumb|right|Un dessous de pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'un des points importants concernant le dispositif est son coût : moins de 300 euros.&lt;br /&gt;
L'appareil dispose :&lt;br /&gt;
* d'un PC portatif (PC-on-a-stick) ''Rikomagic MK802 IV'',&lt;br /&gt;
* d'un recepteur radio SDR ''FUNcube Dongle Pro+''&lt;br /&gt;
* d'une antenne radio&lt;br /&gt;
* d'une batterie&lt;br /&gt;
* d'une antenne WiFi&lt;br /&gt;
* d'une carte MicroSD&lt;br /&gt;
* d'un adapteur d'antenne&lt;br /&gt;
* et d'une '''pita'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le dispositif aurait une portée de 50cm. &lt;br /&gt;
Les chercheurs israéliens ont collaboré avec GNU Private Guard (logiciel de cryptage asymétrique) afin de protéger contre ces attaques les clés de cryptage.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
&lt;br /&gt;
''Scénario 1''&lt;br /&gt;
&lt;br /&gt;
Gérard a toujours le flair pour les bonnes affaires. Il a acheté une centaine de clés WiFi à un prix dérisoire sur AloXpresso afin de faire du profit à la revente. Le vendeur lui garantit que toutes les clés fonctionnent correctement. Gérard veut vérifier. Après vérification, 99 des clés sur 100 fonctionnent comme prévu. Gérard aimerait être sûr du disfonctionnement, mais Gérard n'est pas une pointure en informatique. &lt;br /&gt;
&lt;br /&gt;
Coup de génie ! Il se rappelle qu'il dispose d'un dispositif qui capte les ondes EM et les interprète directement. C'est le moment de tester ça. Il remarque une anomalie sur le spectre.&lt;br /&gt;
Il décide de contacter le revendeur pour lui signaler un disfonctionnement sur l'une des clé. &lt;br /&gt;
Pas de soucis. Le vendeur, étant bon prince, lui envoie une autre clé USB et lui fait une ristourne.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Scénario 2''&lt;br /&gt;
&lt;br /&gt;
La police fait une perquisition chez un individu soupçonné de graves délits. Cela fait plusieurs mois que la brigade criminelle prépare l'intervention, et une fois sur les lieux ils arrêtent le soupçonné malfaiteur.&lt;br /&gt;
Cependant avant de repartir, elle veut faire l'acquisition d'un maximum de preuves. Elle veut alors prendre l'essentiel des objets, dont certains objets éléctroniques connectés de l'individu dont elle pourra extraire les informations qui serviront à le faire tomber.&lt;br /&gt;
&lt;br /&gt;
Par chance, elle dispose d'un petit outil qui scannera les signatures alentours des objets connectés, comme des téléphones cachés, clés USB wifi dissimulées dans le décor etc..&lt;br /&gt;
Et si le suspect avait modifié malignement un objet connecté banal pour l'utiliser autrement à ses fins, la police le découvrirait car elle possède une base de données de toutes les signatures spectrales des objets connectés sur le marché et celle de l'objet modifié ne collerait pas avec celle de la base de données.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
&lt;br /&gt;
'''Comment étudier les signaux malgré les perturbations électromagnétiques ambiants et les faibles signaux des µC ?'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les signaux électromagnétiques des microcontrôleurs ou d'autres composants peuvent être faibles. Il y a une possibilité pour palier à ce problème, c'est de capter les signaux depuis une antenne émettrice que l'on rajoute à l'objet d'étude. &lt;br /&gt;
Nous utiliserons un SDR (Software Defined-Radio) afin de capter les ondes radio et les étudier directement sur PC. Le filtrage s'effectuera ainsi de manière numérique. Plusieurs tests seront effectués pour le même objet à étudier (quand on parle d'objet, on évoque un ensemble de plusieurs composants, comme par exemple une alimentation, un micro-contrôleur et une antenne). Ainsi, de manière statistique, nous pourrons en déduire un pattern récurrent pour chaque expérience en les effectuant dans différents environnements (pourquoi pas une chambre anachoïque). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons &lt;br /&gt;
* Capter le signal émis par un objet connecté le plus précisément possible&lt;br /&gt;
&lt;br /&gt;
* Concevoir nos propres objets connectés tous différents mais basés sur un même modèle&lt;br /&gt;
&lt;br /&gt;
* Interpréter les spectrogrammes, faire une étude statistique des signaux émis par nos différents objets et en tirer des conclusions&lt;br /&gt;
&lt;br /&gt;
* Répertorier dans une base de données les signatures de nos objets , voire de quelques objets disponibles sur le marché&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix logiciel :&lt;br /&gt;
&lt;br /&gt;
- La distribution Linux Pentoo ou Kali pour traiter les signaux avec GNU RADIO (Suite logicielle dédiée à l’implémentation de radios logicielles et de systèmes de traitement du signal).&lt;br /&gt;
&lt;br /&gt;
- FemtoOS pour l'OS des ATMEGA328P et ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix Matériel : &lt;br /&gt;
&lt;br /&gt;
- Plusieurs modules radios émetteurs &lt;br /&gt;
&lt;br /&gt;
- Plusieurs microcontrôleurs ATMEGA328P et un ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
- Des alimentations identiques pour chaque PCB&lt;br /&gt;
&lt;br /&gt;
- Un HackRF pour la réception des signaux&lt;br /&gt;
&lt;br /&gt;
- Une antenne 50 Ohm pour le HackRF [https://www.passion-radio.fr/accessoires-sdr/antenne-ant500-74.html]&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous devons préparer tout le matériel qui servira à faire nos tests. C'est à dire concevoir :&lt;br /&gt;
&lt;br /&gt;
- Un ensemble SDR/PC qui traitera le signal reçu avec GNU RADIO.&lt;br /&gt;
&lt;br /&gt;
- Une multitude de PCB qui seront nos objets connectés (Sur chacun d'entre eux on trouvera au minimum une antenne radio, un microcontrôleur et une alimentation)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de récupérer une &amp;quot;signature&amp;quot; d'un de nos objets , il faudra faire plus de 50 analyses spectrales pour conclure statistiquement sur une bonne signature qui caractérisera l'objet.&lt;br /&gt;
&lt;br /&gt;
Nous devons donc dans un second temps: &lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques mais qui ont un '''firmware''' différent.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques qui ont pour seule différence le '''microcontrôleur'''.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques dont seul le '''PCB''' diffère.&lt;br /&gt;
&lt;br /&gt;
Grâce à tous ces tests , nous pourrons conclure et voir l'impact qu'à le matériel ou le logiciel sur la signature d'un objet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enfin si les délais nous le permettent, nous pourrons réaliser un software qui cartographiera nos objets connectés dans la pièce grâce à la puissance de la signature reçue (Ce qui devrait être réalisable puisqu'à ce stade nous aurons une base de donnée des signatures).&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
|3&lt;br /&gt;
|8&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Recherches&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|6&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Prise en main de GnuRadio&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Configuration Xbee&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|4&lt;br /&gt;
|15&lt;br /&gt;
|9&lt;br /&gt;
|8&lt;br /&gt;
|7&lt;br /&gt;
|8&lt;br /&gt;
|8&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
[[Fichier:HackrfOne.jpeg|200px|thumb|right|Le HackRF One]]&lt;br /&gt;
Durant cette semaine, nous avons continué nos recherches notamment sur le moyen de transmission de nos objets connectés. Nous avons confirmé notre choix de notre SDR : Monsieur Boé nous a confirmé que des HackRF seraient disponibles dans les laboratoires et qu'il pourrait nous en prêter un. On disposera donc d'une antenne puissante pour traiter les signaux émis par nos objets communiquants. &lt;br /&gt;
&lt;br /&gt;
Il faudra coupler notre HackRF avec un logiciel appelé GNU RADIO qui est un logiciel très complet ( Pour information : la NASA a utilisé GNU RADIO afin de rétablir le contact avec une sonde spatiale abandonnée ). Afin de faire tourner ce logiciel libre, nous aurons besoin de la distribution Kali Linux, ex Backtrack.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Choix des émetteurs/récepteurs === &lt;br /&gt;
&lt;br /&gt;
Nous avons décidé que nos objets connectés communiqueront dans deux '''bandes de fréquences ISM''', l'une à '''900 MHz''' grâce à des modules Digi Xbee et l'autre à '''2,4 GHz''' par le moyen de modules émetteurs Bluetooth. On rappellera que les Digi Xbee et les émetteurs/récepteurs Bluetooth seront pilotés par des ATMEGA 2560.&lt;br /&gt;
&lt;br /&gt;
Les Xbee ne communiqueront pas entre eux et émettront en continu les mêmes données car ils le peuvent, alors que les émetteurs/récepteurs Bluetooth devront s'échanger des données si on veut pouvoir observer un quelconque signal autour de la fréquence de leurs porteuses. &lt;br /&gt;
&lt;br /&gt;
On voudra observer premièrement, si avec deux objets dans les '''mêmes''' conditions (donc même µc et même émetteur), on peut ou non '''distinguer une différence'''. Ceci est fondamental pour la suite des expériences, puisque si les deux émettent à la même fréquence, on pourra faire varier plusieurs paramètres afin de trouver '''des clés''' (des signes) qui pourraient aider à l'identification du matériel.&lt;br /&gt;
&lt;br /&gt;
Ces clés représentent différents facteurs potentiels d'identification du signal (le rapport signal-bruit en fonction de la distance par exemple...).&lt;br /&gt;
&lt;br /&gt;
''On planifie alors pour la semaine suivante de réussir à faire émettre, en utilisant simplement des breadboards pour commencer, nos Xbee et modules BT et observer quelque chose grâce à notre SDR.''&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration des modules XBee ===&lt;br /&gt;
&lt;br /&gt;
Nous avons configuré deux XBee afin qu'ils puissent communiquer entre eux : &lt;br /&gt;
&lt;br /&gt;
Les modules XBee ont été montés sur des platines d'interface USB/série de manière à ce qu'on puisse les paramétrer via le programme de contrôle ''minicom''. &lt;br /&gt;
&lt;br /&gt;
Dans le doute, on supposera que les XBee communiquent à 9600 Baud. On exécute la commande suivante : &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;minicom -b 9600 -D /dev/ttyUSB0&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
On active l'echo local dans minicom, afin de pouvoir observer ce qui a été envoyé par liaison série au XBee ('''CTRL+A''' puis '''E''').&lt;br /&gt;
&lt;br /&gt;
Pour commencer le paramètrage il faut taper ''' +++ ''' rapidement. Le XBee nous répond OK, cela veut dire que nous sommes dans le mode configuration et que nous pouvons utiliser les commandes '''AT'''. (Redirection vers la liste des commandes AT XBee [https://cdn.sparkfun.com/assets/resources/2/9/22AT_Commands.pdf]).&lt;br /&gt;
&lt;br /&gt;
Comme nos XBee ont été utilisés auparavant, il a fallu les restaurer à l'état usine avec la commande '''ATRE'''.&lt;br /&gt;
&lt;br /&gt;
Si on souhaite que des XBee puissent s'envoyer des données il faut qu'ils soient sur le même canal (commande '''ATCH''') et aient le même PAN ID (commande '''ATID'''). Notre PAN ID sera '''BEE6''' et le canal sera celui par défaut '''C'''.&lt;br /&gt;
&lt;br /&gt;
Ensuite il faut leur donner une adresse de destination ('''ATDH''' &amp;amp; '''ATDL''') qui sera l'adresse broadcast, pour ce faire on entre &lt;br /&gt;
 ATDH=0000&lt;br /&gt;
 ATDL=FFFF&lt;br /&gt;
&lt;br /&gt;
Enfin '''ATMY''' représente l'ID du XBee, notre premier XBee aura comme ID 5000 et le second 5001.&lt;br /&gt;
&lt;br /&gt;
N'oublions pas de sauvegarder les paramètres avec '''ATWR'''.&lt;br /&gt;
&lt;br /&gt;
On vérifie que tout a bien été pris en compte :&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;&lt;br /&gt;
+++OK&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATID&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
BEE6&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
C&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
0&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDL&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
FFFF&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATMY&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
5000&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCN&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Puis on fait de même avec le deuxième XBee (ID 5001).&lt;br /&gt;
&lt;br /&gt;
Voilà, lorsque on envoi des caractères par liaison série sur 5000, la LED '''Tx''' de 5000 s'allume et la Led '''Rx''' de 5001 s'allume elle aussi. Cela signifie que l'envoi de donnée par onde radio s'effectue correctement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que les XBee émettent et reçoivent, on peut commencer les mesures avec notre SDR. Mais avant cela il va falloir bien se familiariser avec le logiciel GNU RADIO qui est assez difficile à prendre en main.&lt;br /&gt;
&lt;br /&gt;
=== Première prise en main du logiciel GNURADIO ===&lt;br /&gt;
&lt;br /&gt;
Installation de GNU radio avec les fonctions + drivers pour HackRF : &lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install gqrx gnuradio gr-osmosdr hackrf &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le bloc Osmocom Source sert de &amp;quot;passerelle&amp;quot; entre le logiciel et la SDR, il permet de transmettre les informations récupérées par le HackRF afin qu'on puisse les traiter avec d'autres bloc de fonctions.&lt;br /&gt;
&lt;br /&gt;
Si on veut pouvoir récuperer les données il faut passer l'argument ''hackrf=0'' dans la box périphérique du bloc Osmocom.&lt;br /&gt;
&lt;br /&gt;
Ci-dessous on peut voir le spectre environnant entre 2.44GHz et 2.460GHz grâce au bloc WX GUI FFT Sink.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ScreenGnuRadio.png|Interface de GNURadio]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous a permis d'effectuer notre première expérience. L'utilisation des deux Xbees nous a permis d'observer l'impact des Xbee sur le champ électromagéntique environnant.&lt;br /&gt;
&lt;br /&gt;
Si on analyse le spectre environnant grâce au module FFT de GNU Radio, lorsque les Xbee communiquent entre eux, on peut apercevoir un pic caractéristique propre.&lt;br /&gt;
En effet, lors de l'emission d'un message sur le port série, on a un pic qui se dégage du spectre d'amplitude -20dBm. Ce pic est caractéristique au canal de communication choisi et configuré sur le Xbee.&lt;br /&gt;
Néanmoins, le signal est perturbé par le bruit environnant. &lt;br /&gt;
L'expérience étant effectuée au sein de l'école, les signaux Wi-Fi perturberont l'étude.&lt;br /&gt;
Il faut noter que la norme IEEE 802.11 impose au Wi-Fi l'utilisation d'une bande passante s'étalant de 2.4 GHz à 2.5 GHz.&lt;br /&gt;
&lt;br /&gt;
La bande passante des modules Zigbee se décomposent en 16 canaux, allant de 2400 MHz à 2480 MHz par pas de 5 MHz.&lt;br /&gt;
&lt;br /&gt;
Le canal ici utilisé est le canal 13 (3ème canal) de fréquence 2415 MHz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- [[Fichier:Channel135001.png|thumb|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Fichier:channel135000.png|thumb|none|400 px]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:XBeeCh13.png|Spectre de l'environnement autour du XBee|thumb|400 px]][[Fichier:XBeeCh13SND.png|Lors de l'envoi de données au XBee voisin|thumb|none|400 px]]&lt;br /&gt;
&lt;br /&gt;
On peut observer un pic de puissance lors de l'envoi d'une donnée en série à la fréquence 2.415 GHz.&lt;br /&gt;
Il nous est maintenant nécessaire d'analyser de plus près les signaux et leurs fréquence centrale dans la bande perçue au dessus de -20dB.&lt;br /&gt;
&lt;br /&gt;
On réeffectuera une expérience en zone isolée des signaux parasites.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous avons principalement fait des recherches dans le but de mieux comprendre les signaux émis par le Xbee.&lt;br /&gt;
&lt;br /&gt;
En somme, nous étions confrontés à de nombreuses interrogations. Le fonctionnement du Xbee étant assez simple et la sécurité du protocole Zigbee étant moindre, y a t-il possibilité de démoduler le signal émis afin de développer nos études ?&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&lt;br /&gt;
Après réflexion et consultation de nos encadrants, nous nous sommes rendu compte que la démodulation prévue lors de la semaine 4 n'aiderait pas à répondre à la problématique de notre sujet !  &lt;br /&gt;
&lt;br /&gt;
Afin de mieux visualiser les signaux des Xbee , on décide d'automatiser le processus d'envoie sur le port série des données vers le Xbee. C'est à dire concevoir un programme Python qui automatisera l'envoi de données et le changement de channel à intervalle de temps régulier (Changement toutes les 10 secondes). &lt;br /&gt;
&lt;br /&gt;
L'utilisation de Minicom '''n'était pas du tout la meilleure solution''' pour faire émettre les Xbee.&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;/div&gt;</summary>
		<author><name>Amoreau</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=70432</id>
		<title>IMA4 2018/2019 P70</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=70432"/>
				<updated>2019-03-06T14:31:57Z</updated>
		
		<summary type="html">&lt;p&gt;Amoreau : /* Semaine 5 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;font-size: 30px; width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;Impact du matériel et du logiciel sur le champ électromagnétique&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Projet'''&amp;lt;/ins&amp;gt; : Impact du matériel et du logiciel sur le rayonnement électromagnétique&lt;br /&gt;
&lt;br /&gt;
''Nous proposons d'évaluer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et la consommation électrique.''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Etudiants'''&amp;lt;/ins&amp;gt; : Souheib KHINACHE et Antoine MOREAU&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Encadrants'''&amp;lt;/ins&amp;gt; : Alexandre BOE, Xavier REDON et Thomas VANTROYS&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'internet des objets est un marché en plein essor. La communication entre les différents objets connectés crée un nuage de signaux autour d'eux. Ces derniers sont vus par les utilisateurs comme des boîtes noires : le fonctionnement se fait sans en connaître les composants matériels et logiciels. &lt;br /&gt;
Néanmoins, ces objets, de par leurs propriétés électroniques, créent des fuites électromagnétiques impactant le champ environnant. &lt;br /&gt;
&lt;br /&gt;
Bien qu'ils peuvent porter à débat sur l'impact sur la santé, ces signaux peuvent représenter de réelles sources d'informations sur l'aspect matériel et applicatif de l'objet.&lt;br /&gt;
&lt;br /&gt;
Il serait donc intéressant d'avoir idée générale sur le fonctionnement du système en interprétant les ondes électromagnétiques émises par ce système.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Les principaux objectifs de ce projet seront donc de mesurer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et sur la consommation électrique.&lt;br /&gt;
Pour cela, l'outil potentiel avec lequel nous pourrions travailler serait une sonde de champ électromagnétique afin d'établir des mesures. &lt;br /&gt;
Cependant, nous pourrions concevoir notre propre système de capture et d'interprétation à partir d'une antenne, de filtres de fréquences et d'un microcontrôleur (on commencera par un ATMega328P). Il sera nécessaire de prendre en compte les perturbations issues de notre appareil de mesure et d'en tenir compte.&lt;br /&gt;
&lt;br /&gt;
On effectuera ainsi plusieurs expérimentations sur différents supports d'étude :&lt;br /&gt;
*l'aspect &amp;quot;Hardware&amp;quot; en étudiant différents modèles pour un même type de shield  &lt;br /&gt;
*l'aspect calculatoire du matériel en se basant sur l'impact des microcontrôleurs en fonction du modèle (ATMega328P et ATMega2560)&lt;br /&gt;
*l'aspect &amp;quot;Software&amp;quot;, en étudiant l'impact du logiciel et du firmware d'un même composant (différents firmwares pour un même shield Wi-Fi)&lt;br /&gt;
*l'aspect puissance des composants électroniques de gestion de puissance (ponts, hacheurs, onduleurs...).&lt;br /&gt;
&lt;br /&gt;
L'étude des différentes informations se fera par traitement des signaux électromagnétiques et des spectres. &lt;br /&gt;
Afin de mieux appréhender le problème, il nous est nécessaire de comprendre les phénomènes physiques issus de la notion d'électromagnétisme.&lt;br /&gt;
&lt;br /&gt;
Ces études mèneront à une étape plus complexe : l'interprétation des signaux. En effet, l'un des objectifs de ce projet est de comprendre du mieux possible le fonctionnement d'un système sans y avoir accès directement, et donc dans ce contexte &amp;quot;traduire&amp;quot; un ensemble de signaux électromagnétiques.&lt;br /&gt;
&lt;br /&gt;
On pourra en outre apporter un aspect visuel à l'étude en rajoutant une interface informatique.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
Bien qu'aux yeux de nombreuses personnes le bruit électromagnétique créé par les équipements électroniques du quotidien peut porter à controverse (débats concernant l'impact sur la santé par exemple), il peut être une source d'informations. &lt;br /&gt;
De nos jours, les ondes électromagnétiques restent un vaste champ d'étude, sujettes à de nombreuses thèses et recherches au sein des laboratoires.&lt;br /&gt;
&lt;br /&gt;
On peut prendre l'exemple de [https://www.eurekalert.org/pub_releases/2015-01/giot-rwt010715.php Milos Prvulovic], professeur à l'Institut Technologique de Géorgie, ayant simulé un contexte de cybercafé, dans lequel il place une antenne magnétique, un ordinateur portable cible et un ordinateur &amp;quot;espion&amp;quot;. Il réussit, grâce aux signaux EM émis par l'impulsion de l'appui des touches clavier à capter un message écrit par un ordinateur cible. &lt;br /&gt;
&lt;br /&gt;
Néanmoins, dans le quotidien, l'utilisation des sondes électromagnétiques se fait pour l'étude énergétique d'un système électronique (fuites électromagnétiques anormales, preuves d'une anomalie...) afin de respecter certaines normes législatives. Le code du travail par exemple réglemente et définit des valeurs seuils par le biais des articles R. 4453-3 et R. 4453-4.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
'''NBM-520 de NARDA STS'''&lt;br /&gt;
[[Fichier: NBM_TS.png|thumb|300px|NBM-TS, application des appareils NBM]]&lt;br /&gt;
NARDA STS est une entreprise qui fournit des outils de mesure. Elle met à disposition aux professionnels des sondes électromagnétiques.&lt;br /&gt;
La NBM-520 est un appareil de la franchise, mesurant le champ électrique et magnétique. Elle donne des valeurs précises du champ électromagnétique ambiant sur une large bande. Elle propose différentes sondes modulables permettant une souplesse au niveau de l'étude en fonction des besoins, avec des sondes pouvant étudier des signaux de fréquence de 100kHz à 6GHz ou même de 300kHz à 50GHz (en fonction de la sonde choisie).&lt;br /&gt;
&lt;br /&gt;
En outre, le dispositif peut se connecter en USB sur PC afin d'envoyer les données capturées et d'en faire une étude. Le dispositif propose un logiciel d'étude, NBM-TS, permettant d'observer du champ en fonction du temps, de la fréquence, de la position...&lt;br /&gt;
&lt;br /&gt;
L'équipement est utilisé par l'ANF (l'Agence Nationale des Fréquences, agence gérant l'ensemble des normes autour des radiofréquences), et est donc un gage de qualité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Avantages :''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Large bande de fréquence&lt;br /&gt;
* Matériel solide&lt;br /&gt;
* Application fonctionnelle permettant l'étude et gestion des données&lt;br /&gt;
* Possibilité d'étudier séparément champ électrique et magnétique&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Inconvénients:''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Impossible d'étudier les basses fréquences (appareils sous tension, bobinages...)&lt;br /&gt;
* Prix élevé : à partir de 3100€&lt;br /&gt;
* La cible de ce produit est surtout les professionels&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
'''Une pita.'''&lt;br /&gt;
&lt;br /&gt;
''Comment mon pain à pita vole ta clé RSA ?''&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Pita.jpg|200px|thumb|left|Une pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Des chercheurs israéliens ont découvert un moyen de capturer des clés de cryptage RSA, réputées comme inviolables, par le biais d'une pita... du moins avec un dispositif suffisamment petit pour être caché dans un pain à pita. &lt;br /&gt;
Le dispositif, renommé PITA pour Portable Instrument for Trace Acquisition a la particularité de capturer les ondes radio électromagnétiques émanantes d'un PC, qu'il soit connecté à un réseau ou pas.&lt;br /&gt;
Les différentes opérations du processeur sont identifiées en distinguant les différents modèles de l'activité radio sur le spectre EM.&lt;br /&gt;
&lt;br /&gt;
Bien que la capture des clés RSA a été faite dans des conditions particulières (modification du processeur de l'ordinateur cible), il est néanmoins possible, selon les chercheurs, d'identifier quelle type d'activité est exercée par l'ordinateur ainsi que son état.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PITA.jpg|300px|thumb|right|Un dessous de pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'un des points importants concernant le dispositif est son coût : moins de 300 euros.&lt;br /&gt;
L'appareil dispose :&lt;br /&gt;
* d'un PC portatif (PC-on-a-stick) ''Rikomagic MK802 IV'',&lt;br /&gt;
* d'un recepteur radio SDR ''FUNcube Dongle Pro+''&lt;br /&gt;
* d'une antenne radio&lt;br /&gt;
* d'une batterie&lt;br /&gt;
* d'une antenne WiFi&lt;br /&gt;
* d'une carte MicroSD&lt;br /&gt;
* d'un adapteur d'antenne&lt;br /&gt;
* et d'une '''pita'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le dispositif aurait une portée de 50cm. &lt;br /&gt;
Les chercheurs israéliens ont collaboré avec GNU Private Guard (logiciel de cryptage asymétrique) afin de protéger contre ces attaques les clés de cryptage.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
&lt;br /&gt;
''Scénario 1''&lt;br /&gt;
&lt;br /&gt;
Gérard a toujours le flair pour les bonnes affaires. Il a acheté une centaine de clés WiFi à un prix dérisoire sur AloXpresso afin de faire du profit à la revente. Le vendeur lui garantit que toutes les clés fonctionnent correctement. Gérard veut vérifier. Après vérification, 99 des clés sur 100 fonctionnent comme prévu. Gérard aimerait être sûr du disfonctionnement, mais Gérard n'est pas une pointure en informatique. &lt;br /&gt;
&lt;br /&gt;
Coup de génie ! Il se rappelle qu'il dispose d'un dispositif qui capte les ondes EM et les interprète directement. C'est le moment de tester ça. Il remarque une anomalie sur le spectre.&lt;br /&gt;
Il décide de contacter le revendeur pour lui signaler un disfonctionnement sur l'une des clé. &lt;br /&gt;
Pas de soucis. Le vendeur, étant bon prince, lui envoie une autre clé USB et lui fait une ristourne.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Scénario 2''&lt;br /&gt;
&lt;br /&gt;
La police fait une perquisition chez un individu soupçonné de graves délits. Cela fait plusieurs mois que la brigade criminelle prépare l'intervention, et une fois sur les lieux ils arrêtent le soupçonné malfaiteur.&lt;br /&gt;
Cependant avant de repartir, elle veut faire l'acquisition d'un maximum de preuves. Elle veut alors prendre l'essentiel des objets, dont certains objets éléctroniques connectés de l'individu dont elle pourra extraire les informations qui serviront à le faire tomber.&lt;br /&gt;
&lt;br /&gt;
Par chance, elle dispose d'un petit outil qui scannera les signatures alentours des objets connectés, comme des téléphones cachés, clés USB wifi dissimulées dans le décor etc..&lt;br /&gt;
Et si le suspect avait modifié malignement un objet connecté banal pour l'utiliser autrement à ses fins, la police le découvrirait car elle possède une base de données de toutes les signatures spectrales des objets connectés sur le marché et celle de l'objet modifié ne collerait pas avec celle de la base de données.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
&lt;br /&gt;
'''Comment étudier les signaux malgré les perturbations électromagnétiques ambiants et les faibles signaux des µC ?'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les signaux électromagnétiques des microcontrôleurs ou d'autres composants peuvent être faibles. Il y a une possibilité pour palier à ce problème, c'est de capter les signaux depuis une antenne émettrice que l'on rajoute à l'objet d'étude. &lt;br /&gt;
Nous utiliserons un SDR (Software Defined-Radio) afin de capter les ondes radio et les étudier directement sur PC. Le filtrage s'effectuera ainsi de manière numérique. Plusieurs tests seront effectués pour le même objet à étudier (quand on parle d'objet, on évoque un ensemble de plusieurs composants, comme par exemple une alimentation, un micro-contrôleur et une antenne). Ainsi, de manière statistique, nous pourrons en déduire un pattern récurrent pour chaque expérience en les effectuant dans différents environnements (pourquoi pas une chambre anachoïque). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons &lt;br /&gt;
* Capter le signal émis par un objet connecté le plus précisément possible&lt;br /&gt;
&lt;br /&gt;
* Concevoir nos propres objets connectés tous différents mais basés sur un même modèle&lt;br /&gt;
&lt;br /&gt;
* Interpréter les spectrogrammes, faire une étude statistique des signaux émis par nos différents objets et en tirer des conclusions&lt;br /&gt;
&lt;br /&gt;
* Répertorier dans une base de données les signatures de nos objets , voire de quelques objets disponibles sur le marché&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix logiciel :&lt;br /&gt;
&lt;br /&gt;
- La distribution Linux Pentoo ou Kali pour traiter les signaux avec GNU RADIO (Suite logicielle dédiée à l’implémentation de radios logicielles et de systèmes de traitement du signal).&lt;br /&gt;
&lt;br /&gt;
- FemtoOS pour l'OS des ATMEGA328P et ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix Matériel : &lt;br /&gt;
&lt;br /&gt;
- Plusieurs modules radios émetteurs &lt;br /&gt;
&lt;br /&gt;
- Plusieurs microcontrôleurs ATMEGA328P et un ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
- Des alimentations identiques pour chaque PCB&lt;br /&gt;
&lt;br /&gt;
- Un HackRF pour la réception des signaux&lt;br /&gt;
&lt;br /&gt;
- Une antenne 50 Ohm pour le HackRF [https://www.passion-radio.fr/accessoires-sdr/antenne-ant500-74.html]&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous devons préparer tout le matériel qui servira à faire nos tests. C'est à dire concevoir :&lt;br /&gt;
&lt;br /&gt;
- Un ensemble SDR/PC qui traitera le signal reçu avec GNU RADIO.&lt;br /&gt;
&lt;br /&gt;
- Une multitude de PCB qui seront nos objets connectés (Sur chacun d'entre eux on trouvera au minimum une antenne radio, un microcontrôleur et une alimentation)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de récupérer une &amp;quot;signature&amp;quot; d'un de nos objets , il faudra faire plus de 50 analyses spectrales pour conclure statistiquement sur une bonne signature qui caractérisera l'objet.&lt;br /&gt;
&lt;br /&gt;
Nous devons donc dans un second temps: &lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques mais qui ont un '''firmware''' différent.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques qui ont pour seule différence le '''microcontrôleur'''.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques dont seul le '''PCB''' diffère.&lt;br /&gt;
&lt;br /&gt;
Grâce à tous ces tests , nous pourrons conclure et voir l'impact qu'à le matériel ou le logiciel sur la signature d'un objet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enfin si les délais nous le permettent, nous pourrons réaliser un software qui cartographiera nos objets connectés dans la pièce grâce à la puissance de la signature reçue (Ce qui devrait être réalisable puisqu'à ce stade nous aurons une base de donnée des signatures).&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
|3&lt;br /&gt;
|8&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Recherches&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Prise en main de GnuRadio&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Configuration Xbee&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|4&lt;br /&gt;
|15&lt;br /&gt;
|9&lt;br /&gt;
|8&lt;br /&gt;
|7&lt;br /&gt;
|8&lt;br /&gt;
|8&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
[[Fichier:HackrfOne.jpeg|200px|thumb|right|Le HackRF One]]&lt;br /&gt;
Durant cette semaine, nous avons continué nos recherches notamment sur le moyen de transmission de nos objets connectés. Nous avons confirmé notre choix de notre SDR : Monsieur Boé nous a confirmé que des HackRF seraient disponibles dans les laboratoires et qu'il pourrait nous en prêter un. On disposera donc d'une antenne puissante pour traiter les signaux émis par nos objets communiquants. &lt;br /&gt;
&lt;br /&gt;
Il faudra coupler notre HackRF avec un logiciel appelé GNU RADIO qui est un logiciel très complet ( Pour information : la NASA a utilisé GNU RADIO afin de rétablir le contact avec une sonde spatiale abandonnée ). Afin de faire tourner ce logiciel libre, nous aurons besoin de la distribution Kali Linux, ex Backtrack.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Choix des émetteurs/récepteurs === &lt;br /&gt;
&lt;br /&gt;
Nous avons décidé que nos objets connectés communiqueront dans deux '''bandes de fréquences ISM''', l'une à '''900 MHz''' grâce à des modules Digi Xbee et l'autre à '''2,4 GHz''' par le moyen de modules émetteurs Bluetooth. On rappellera que les Digi Xbee et les émetteurs/récepteurs Bluetooth seront pilotés par des ATMEGA 2560.&lt;br /&gt;
&lt;br /&gt;
Les Xbee ne communiqueront pas entre eux et émettront en continu les mêmes données car ils le peuvent, alors que les émetteurs/récepteurs Bluetooth devront s'échanger des données si on veut pouvoir observer un quelconque signal autour de la fréquence de leurs porteuses. &lt;br /&gt;
&lt;br /&gt;
On voudra observer premièrement, si avec deux objets dans les '''mêmes''' conditions (donc même µc et même émetteur), on peut ou non '''distinguer une différence'''. Ceci est fondamental pour la suite des expériences, puisque si les deux émettent à la même fréquence, on pourra faire varier plusieurs paramètres afin de trouver '''des clés''' (des signes) qui pourraient aider à l'identification du matériel.&lt;br /&gt;
&lt;br /&gt;
Ces clés représentent différents facteurs potentiels d'identification du signal (le rapport signal-bruit en fonction de la distance par exemple...).&lt;br /&gt;
&lt;br /&gt;
''On planifie alors pour la semaine suivante de réussir à faire émettre, en utilisant simplement des breadboards pour commencer, nos Xbee et modules BT et observer quelque chose grâce à notre SDR.''&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration des modules XBee ===&lt;br /&gt;
&lt;br /&gt;
Nous avons configuré deux XBee afin qu'ils puissent communiquer entre eux : &lt;br /&gt;
&lt;br /&gt;
Les modules XBee ont été montés sur des platines d'interface USB/série de manière à ce qu'on puisse les paramétrer via le programme de contrôle ''minicom''. &lt;br /&gt;
&lt;br /&gt;
Dans le doute, on supposera que les XBee communiquent à 9600 Baud. On exécute la commande suivante : &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;minicom -b 9600 -D /dev/ttyUSB0&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
On active l'echo local dans minicom, afin de pouvoir observer ce qui a été envoyé par liaison série au XBee ('''CTRL+A''' puis '''E''').&lt;br /&gt;
&lt;br /&gt;
Pour commencer le paramètrage il faut taper ''' +++ ''' rapidement. Le XBee nous répond OK, cela veut dire que nous sommes dans le mode configuration et que nous pouvons utiliser les commandes '''AT'''. (Redirection vers la liste des commandes AT XBee [https://cdn.sparkfun.com/assets/resources/2/9/22AT_Commands.pdf]).&lt;br /&gt;
&lt;br /&gt;
Comme nos XBee ont été utilisés auparavant, il a fallu les restaurer à l'état usine avec la commande '''ATRE'''.&lt;br /&gt;
&lt;br /&gt;
Si on souhaite que des XBee puissent s'envoyer des données il faut qu'ils soient sur le même canal (commande '''ATCH''') et aient le même PAN ID (commande '''ATID'''). Notre PAN ID sera '''BEE6''' et le canal sera celui par défaut '''C'''.&lt;br /&gt;
&lt;br /&gt;
Ensuite il faut leur donner une adresse de destination ('''ATDH''' &amp;amp; '''ATDL''') qui sera l'adresse broadcast, pour ce faire on entre &lt;br /&gt;
 ATDH=0000&lt;br /&gt;
 ATDL=FFFF&lt;br /&gt;
&lt;br /&gt;
Enfin '''ATMY''' représente l'ID du XBee, notre premier XBee aura comme ID 5000 et le second 5001.&lt;br /&gt;
&lt;br /&gt;
N'oublions pas de sauvegarder les paramètres avec '''ATWR'''.&lt;br /&gt;
&lt;br /&gt;
On vérifie que tout a bien été pris en compte :&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;&lt;br /&gt;
+++OK&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATID&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
BEE6&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
C&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
0&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDL&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
FFFF&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATMY&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
5000&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCN&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Puis on fait de même avec le deuxième XBee (ID 5001).&lt;br /&gt;
&lt;br /&gt;
Voilà, lorsque on envoi des caractères par liaison série sur 5000, la LED '''Tx''' de 5000 s'allume et la Led '''Rx''' de 5001 s'allume elle aussi. Cela signifie que l'envoi de donnée par onde radio s'effectue correctement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que les XBee émettent et reçoivent, on peut commencer les mesures avec notre SDR. Mais avant cela il va falloir bien se familiariser avec le logiciel GNU RADIO qui est assez difficile à prendre en main.&lt;br /&gt;
&lt;br /&gt;
=== Première prise en main du logiciel GNURADIO ===&lt;br /&gt;
&lt;br /&gt;
Installation de GNU radio avec les fonctions + drivers pour HackRF : &lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install gqrx gnuradio gr-osmosdr hackrf &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le bloc Osmocom Source sert de &amp;quot;passerelle&amp;quot; entre le logiciel et la SDR, il permet de transmettre les informations récupérées par le HackRF afin qu'on puisse les traiter avec d'autres bloc de fonctions.&lt;br /&gt;
&lt;br /&gt;
Si on veut pouvoir récuperer les données il faut passer l'argument ''hackrf=0'' dans la box périphérique du bloc Osmocom.&lt;br /&gt;
&lt;br /&gt;
Ci-dessous on peut voir le spectre environnant entre 2.44GHz et 2.460GHz grâce au bloc WX GUI FFT Sink.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ScreenGnuRadio.png|Interface de GNURadio]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous a permis d'effectuer notre première expérience. L'utilisation des deux Xbees nous a permis d'observer l'impact des Xbee sur le champ électromagéntique environnant.&lt;br /&gt;
&lt;br /&gt;
Si on analyse le spectre environnant grâce au module FFT de GNU Radio, lorsque les Xbee communiquent entre eux, on peut apercevoir un pic caractéristique propre.&lt;br /&gt;
En effet, lors de l'emission d'un message sur le port série, on a un pic qui se dégage du spectre d'amplitude -20dBm. Ce pic est caractéristique au canal de communication choisi et configuré sur le Xbee.&lt;br /&gt;
Néanmoins, le signal est perturbé par le bruit environnant. &lt;br /&gt;
L'expérience étant effectuée au sein de l'école, les signaux Wi-Fi perturberont l'étude.&lt;br /&gt;
Il faut noter que la norme IEEE 802.11 impose au Wi-Fi l'utilisation d'une bande passante s'étalant de 2.4 GHz à 2.5 GHz.&lt;br /&gt;
&lt;br /&gt;
La bande passante des modules Zigbee se décomposent en 16 canaux, allant de 2400 MHz à 2480 MHz par pas de 5 MHz.&lt;br /&gt;
&lt;br /&gt;
Le canal ici utilisé est le canal 13 (3ème canal) de fréquence 2415 MHz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- [[Fichier:Channel135001.png|thumb|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Fichier:channel135000.png|thumb|none|400 px]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:XBeeCh13.png|Spectre de l'environnement autour du XBee|thumb|400 px]][[Fichier:XBeeCh13SND.png|Lors de l'envoi de données au XBee voisin|thumb|none|400 px]]&lt;br /&gt;
&lt;br /&gt;
On peut observer un pic de puissance lors de l'envoi d'une donnée en série à la fréquence 2.415 GHz.&lt;br /&gt;
Il nous est maintenant nécessaire d'analyser de plus près les signaux et leurs fréquence centrale dans la bande perçue au dessus de -20dB.&lt;br /&gt;
&lt;br /&gt;
On réeffectuera une expérience en zone isolée des signaux parasites.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous avons principalement fait des recherches dans le but de mieux comprendre les signaux émis par le Xbee.&lt;br /&gt;
&lt;br /&gt;
En somme, nous étions confrontés à de nombreuses interrogations. Le fonctionnement du Xbee étant assez simple et la sécurité du protocole Zigbee étant moindre, y a t-il possibilité de démoduler le signal émis afin de développer nos études ?&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&lt;br /&gt;
Après réflexion et consultation de nos encadrants, nous nous sommes rendu compte que la démodulation prévue lors de la semaine 4 n'aiderait pas à répondre à la problématique de notre sujet !  &lt;br /&gt;
&lt;br /&gt;
Afin de mieux visualiser les signaux des Xbee , on décide d'automatiser le processus d'envoie sur le port série des données vers le Xbee. C'est à dire concevoir un programme Python qui automatisera l'envoi de données et le changement de channel à intervalle de temps régulier (Changement toutes les 10 secondes). &lt;br /&gt;
&lt;br /&gt;
L'utilisation de Minicom '''n'était pas du tout la meilleure solution''' pour faire émettre les Xbee.&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;/div&gt;</summary>
		<author><name>Amoreau</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=70425</id>
		<title>IMA4 2018/2019 P70</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=70425"/>
				<updated>2019-03-06T14:22:53Z</updated>
		
		<summary type="html">&lt;p&gt;Amoreau : /* Semaine 4 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;font-size: 30px; width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;Impact du matériel et du logiciel sur le champ électromagnétique&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Projet'''&amp;lt;/ins&amp;gt; : Impact du matériel et du logiciel sur le rayonnement électromagnétique&lt;br /&gt;
&lt;br /&gt;
''Nous proposons d'évaluer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et la consommation électrique.''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Etudiants'''&amp;lt;/ins&amp;gt; : Souheib KHINACHE et Antoine MOREAU&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Encadrants'''&amp;lt;/ins&amp;gt; : Alexandre BOE, Xavier REDON et Thomas VANTROYS&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'internet des objets est un marché en plein essor. La communication entre les différents objets connectés crée un nuage de signaux autour d'eux. Ces derniers sont vus par les utilisateurs comme des boîtes noires : le fonctionnement se fait sans en connaître les composants matériels et logiciels. &lt;br /&gt;
Néanmoins, ces objets, de par leurs propriétés électroniques, créent des fuites électromagnétiques impactant le champ environnant. &lt;br /&gt;
&lt;br /&gt;
Bien qu'ils peuvent porter à débat sur l'impact sur la santé, ces signaux peuvent représenter de réelles sources d'informations sur l'aspect matériel et applicatif de l'objet.&lt;br /&gt;
&lt;br /&gt;
Il serait donc intéressant d'avoir idée générale sur le fonctionnement du système en interprétant les ondes électromagnétiques émises par ce système.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Les principaux objectifs de ce projet seront donc de mesurer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et sur la consommation électrique.&lt;br /&gt;
Pour cela, l'outil potentiel avec lequel nous pourrions travailler serait une sonde de champ électromagnétique afin d'établir des mesures. &lt;br /&gt;
Cependant, nous pourrions concevoir notre propre système de capture et d'interprétation à partir d'une antenne, de filtres de fréquences et d'un microcontrôleur (on commencera par un ATMega328P). Il sera nécessaire de prendre en compte les perturbations issues de notre appareil de mesure et d'en tenir compte.&lt;br /&gt;
&lt;br /&gt;
On effectuera ainsi plusieurs expérimentations sur différents supports d'étude :&lt;br /&gt;
*l'aspect &amp;quot;Hardware&amp;quot; en étudiant différents modèles pour un même type de shield  &lt;br /&gt;
*l'aspect calculatoire du matériel en se basant sur l'impact des microcontrôleurs en fonction du modèle (ATMega328P et ATMega2560)&lt;br /&gt;
*l'aspect &amp;quot;Software&amp;quot;, en étudiant l'impact du logiciel et du firmware d'un même composant (différents firmwares pour un même shield Wi-Fi)&lt;br /&gt;
*l'aspect puissance des composants électroniques de gestion de puissance (ponts, hacheurs, onduleurs...).&lt;br /&gt;
&lt;br /&gt;
L'étude des différentes informations se fera par traitement des signaux électromagnétiques et des spectres. &lt;br /&gt;
Afin de mieux appréhender le problème, il nous est nécessaire de comprendre les phénomènes physiques issus de la notion d'électromagnétisme.&lt;br /&gt;
&lt;br /&gt;
Ces études mèneront à une étape plus complexe : l'interprétation des signaux. En effet, l'un des objectifs de ce projet est de comprendre du mieux possible le fonctionnement d'un système sans y avoir accès directement, et donc dans ce contexte &amp;quot;traduire&amp;quot; un ensemble de signaux électromagnétiques.&lt;br /&gt;
&lt;br /&gt;
On pourra en outre apporter un aspect visuel à l'étude en rajoutant une interface informatique.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
Bien qu'aux yeux de nombreuses personnes le bruit électromagnétique créé par les équipements électroniques du quotidien peut porter à controverse (débats concernant l'impact sur la santé par exemple), il peut être une source d'informations. &lt;br /&gt;
De nos jours, les ondes électromagnétiques restent un vaste champ d'étude, sujettes à de nombreuses thèses et recherches au sein des laboratoires.&lt;br /&gt;
&lt;br /&gt;
On peut prendre l'exemple de [https://www.eurekalert.org/pub_releases/2015-01/giot-rwt010715.php Milos Prvulovic], professeur à l'Institut Technologique de Géorgie, ayant simulé un contexte de cybercafé, dans lequel il place une antenne magnétique, un ordinateur portable cible et un ordinateur &amp;quot;espion&amp;quot;. Il réussit, grâce aux signaux EM émis par l'impulsion de l'appui des touches clavier à capter un message écrit par un ordinateur cible. &lt;br /&gt;
&lt;br /&gt;
Néanmoins, dans le quotidien, l'utilisation des sondes électromagnétiques se fait pour l'étude énergétique d'un système électronique (fuites électromagnétiques anormales, preuves d'une anomalie...) afin de respecter certaines normes législatives. Le code du travail par exemple réglemente et définit des valeurs seuils par le biais des articles R. 4453-3 et R. 4453-4.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
'''NBM-520 de NARDA STS'''&lt;br /&gt;
[[Fichier: NBM_TS.png|thumb|300px|NBM-TS, application des appareils NBM]]&lt;br /&gt;
NARDA STS est une entreprise qui fournit des outils de mesure. Elle met à disposition aux professionnels des sondes électromagnétiques.&lt;br /&gt;
La NBM-520 est un appareil de la franchise, mesurant le champ électrique et magnétique. Elle donne des valeurs précises du champ électromagnétique ambiant sur une large bande. Elle propose différentes sondes modulables permettant une souplesse au niveau de l'étude en fonction des besoins, avec des sondes pouvant étudier des signaux de fréquence de 100kHz à 6GHz ou même de 300kHz à 50GHz (en fonction de la sonde choisie).&lt;br /&gt;
&lt;br /&gt;
En outre, le dispositif peut se connecter en USB sur PC afin d'envoyer les données capturées et d'en faire une étude. Le dispositif propose un logiciel d'étude, NBM-TS, permettant d'observer du champ en fonction du temps, de la fréquence, de la position...&lt;br /&gt;
&lt;br /&gt;
L'équipement est utilisé par l'ANF (l'Agence Nationale des Fréquences, agence gérant l'ensemble des normes autour des radiofréquences), et est donc un gage de qualité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Avantages :''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Large bande de fréquence&lt;br /&gt;
* Matériel solide&lt;br /&gt;
* Application fonctionnelle permettant l'étude et gestion des données&lt;br /&gt;
* Possibilité d'étudier séparément champ électrique et magnétique&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Inconvénients:''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Impossible d'étudier les basses fréquences (appareils sous tension, bobinages...)&lt;br /&gt;
* Prix élevé : à partir de 3100€&lt;br /&gt;
* La cible de ce produit est surtout les professionels&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
'''Une pita.'''&lt;br /&gt;
&lt;br /&gt;
''Comment mon pain à pita vole ta clé RSA ?''&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Pita.jpg|200px|thumb|left|Une pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Des chercheurs israéliens ont découvert un moyen de capturer des clés de cryptage RSA, réputées comme inviolables, par le biais d'une pita... du moins avec un dispositif suffisamment petit pour être caché dans un pain à pita. &lt;br /&gt;
Le dispositif, renommé PITA pour Portable Instrument for Trace Acquisition a la particularité de capturer les ondes radio électromagnétiques émanantes d'un PC, qu'il soit connecté à un réseau ou pas.&lt;br /&gt;
Les différentes opérations du processeur sont identifiées en distinguant les différents modèles de l'activité radio sur le spectre EM.&lt;br /&gt;
&lt;br /&gt;
Bien que la capture des clés RSA a été faite dans des conditions particulières (modification du processeur de l'ordinateur cible), il est néanmoins possible, selon les chercheurs, d'identifier quelle type d'activité est exercée par l'ordinateur ainsi que son état.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PITA.jpg|300px|thumb|right|Un dessous de pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'un des points importants concernant le dispositif est son coût : moins de 300 euros.&lt;br /&gt;
L'appareil dispose :&lt;br /&gt;
* d'un PC portatif (PC-on-a-stick) ''Rikomagic MK802 IV'',&lt;br /&gt;
* d'un recepteur radio SDR ''FUNcube Dongle Pro+''&lt;br /&gt;
* d'une antenne radio&lt;br /&gt;
* d'une batterie&lt;br /&gt;
* d'une antenne WiFi&lt;br /&gt;
* d'une carte MicroSD&lt;br /&gt;
* d'un adapteur d'antenne&lt;br /&gt;
* et d'une '''pita'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le dispositif aurait une portée de 50cm. &lt;br /&gt;
Les chercheurs israéliens ont collaboré avec GNU Private Guard (logiciel de cryptage asymétrique) afin de protéger contre ces attaques les clés de cryptage.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
&lt;br /&gt;
''Scénario 1''&lt;br /&gt;
&lt;br /&gt;
Gérard a toujours le flair pour les bonnes affaires. Il a acheté une centaine de clés WiFi à un prix dérisoire sur AloXpresso afin de faire du profit à la revente. Le vendeur lui garantit que toutes les clés fonctionnent correctement. Gérard veut vérifier. Après vérification, 99 des clés sur 100 fonctionnent comme prévu. Gérard aimerait être sûr du disfonctionnement, mais Gérard n'est pas une pointure en informatique. &lt;br /&gt;
&lt;br /&gt;
Coup de génie ! Il se rappelle qu'il dispose d'un dispositif qui capte les ondes EM et les interprète directement. C'est le moment de tester ça. Il remarque une anomalie sur le spectre.&lt;br /&gt;
Il décide de contacter le revendeur pour lui signaler un disfonctionnement sur l'une des clé. &lt;br /&gt;
Pas de soucis. Le vendeur, étant bon prince, lui envoie une autre clé USB et lui fait une ristourne.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Scénario 2''&lt;br /&gt;
&lt;br /&gt;
La police fait une perquisition chez un individu soupçonné de graves délits. Cela fait plusieurs mois que la brigade criminelle prépare l'intervention, et une fois sur les lieux ils arrêtent le soupçonné malfaiteur.&lt;br /&gt;
Cependant avant de repartir, elle veut faire l'acquisition d'un maximum de preuves. Elle veut alors prendre l'essentiel des objets, dont certains objets éléctroniques connectés de l'individu dont elle pourra extraire les informations qui serviront à le faire tomber.&lt;br /&gt;
&lt;br /&gt;
Par chance, elle dispose d'un petit outil qui scannera les signatures alentours des objets connectés, comme des téléphones cachés, clés USB wifi dissimulées dans le décor etc..&lt;br /&gt;
Et si le suspect avait modifié malignement un objet connecté banal pour l'utiliser autrement à ses fins, la police le découvrirait car elle possède une base de données de toutes les signatures spectrales des objets connectés sur le marché et celle de l'objet modifié ne collerait pas avec celle de la base de données.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
&lt;br /&gt;
'''Comment étudier les signaux malgré les perturbations électromagnétiques ambiants et les faibles signaux des µC ?'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les signaux électromagnétiques des microcontrôleurs ou d'autres composants peuvent être faibles. Il y a une possibilité pour palier à ce problème, c'est de capter les signaux depuis une antenne émettrice que l'on rajoute à l'objet d'étude. &lt;br /&gt;
Nous utiliserons un SDR (Software Defined-Radio) afin de capter les ondes radio et les étudier directement sur PC. Le filtrage s'effectuera ainsi de manière numérique. Plusieurs tests seront effectués pour le même objet à étudier (quand on parle d'objet, on évoque un ensemble de plusieurs composants, comme par exemple une alimentation, un micro-contrôleur et une antenne). Ainsi, de manière statistique, nous pourrons en déduire un pattern récurrent pour chaque expérience en les effectuant dans différents environnements (pourquoi pas une chambre anachoïque). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons &lt;br /&gt;
* Capter le signal émis par un objet connecté le plus précisément possible&lt;br /&gt;
&lt;br /&gt;
* Concevoir nos propres objets connectés tous différents mais basés sur un même modèle&lt;br /&gt;
&lt;br /&gt;
* Interpréter les spectrogrammes, faire une étude statistique des signaux émis par nos différents objets et en tirer des conclusions&lt;br /&gt;
&lt;br /&gt;
* Répertorier dans une base de données les signatures de nos objets , voire de quelques objets disponibles sur le marché&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix logiciel :&lt;br /&gt;
&lt;br /&gt;
- La distribution Linux Pentoo ou Kali pour traiter les signaux avec GNU RADIO (Suite logicielle dédiée à l’implémentation de radios logicielles et de systèmes de traitement du signal).&lt;br /&gt;
&lt;br /&gt;
- FemtoOS pour l'OS des ATMEGA328P et ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix Matériel : &lt;br /&gt;
&lt;br /&gt;
- Plusieurs modules radios émetteurs &lt;br /&gt;
&lt;br /&gt;
- Plusieurs microcontrôleurs ATMEGA328P et un ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
- Des alimentations identiques pour chaque PCB&lt;br /&gt;
&lt;br /&gt;
- Un HackRF pour la réception des signaux&lt;br /&gt;
&lt;br /&gt;
- Une antenne 50 Ohm pour le HackRF [https://www.passion-radio.fr/accessoires-sdr/antenne-ant500-74.html]&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous devons préparer tout le matériel qui servira à faire nos tests. C'est à dire concevoir :&lt;br /&gt;
&lt;br /&gt;
- Un ensemble SDR/PC qui traitera le signal reçu avec GNU RADIO.&lt;br /&gt;
&lt;br /&gt;
- Une multitude de PCB qui seront nos objets connectés (Sur chacun d'entre eux on trouvera au minimum une antenne radio, un microcontrôleur et une alimentation)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de récupérer une &amp;quot;signature&amp;quot; d'un de nos objets , il faudra faire plus de 50 analyses spectrales pour conclure statistiquement sur une bonne signature qui caractérisera l'objet.&lt;br /&gt;
&lt;br /&gt;
Nous devons donc dans un second temps: &lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques mais qui ont un '''firmware''' différent.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques qui ont pour seule différence le '''microcontrôleur'''.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques dont seul le '''PCB''' diffère.&lt;br /&gt;
&lt;br /&gt;
Grâce à tous ces tests , nous pourrons conclure et voir l'impact qu'à le matériel ou le logiciel sur la signature d'un objet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enfin si les délais nous le permettent, nous pourrons réaliser un software qui cartographiera nos objets connectés dans la pièce grâce à la puissance de la signature reçue (Ce qui devrait être réalisable puisqu'à ce stade nous aurons une base de donnée des signatures).&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
|3&lt;br /&gt;
|8&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Recherches&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Prise en main de GnuRadio&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Configuration Xbee&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|4&lt;br /&gt;
|15&lt;br /&gt;
|9&lt;br /&gt;
|8&lt;br /&gt;
|7&lt;br /&gt;
|8&lt;br /&gt;
|8&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
[[Fichier:HackrfOne.jpeg|200px|thumb|right|Le HackRF One]]&lt;br /&gt;
Durant cette semaine, nous avons continué nos recherches notamment sur le moyen de transmission de nos objets connectés. Nous avons confirmé notre choix de notre SDR : Monsieur Boé nous a confirmé que des HackRF seraient disponibles dans les laboratoires et qu'il pourrait nous en prêter un. On disposera donc d'une antenne puissante pour traiter les signaux émis par nos objets communiquants. &lt;br /&gt;
&lt;br /&gt;
Il faudra coupler notre HackRF avec un logiciel appelé GNU RADIO qui est un logiciel très complet ( Pour information : la NASA a utilisé GNU RADIO afin de rétablir le contact avec une sonde spatiale abandonnée ). Afin de faire tourner ce logiciel libre, nous aurons besoin de la distribution Kali Linux, ex Backtrack.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Choix des émetteurs/récepteurs === &lt;br /&gt;
&lt;br /&gt;
Nous avons décidé que nos objets connectés communiqueront dans deux '''bandes de fréquences ISM''', l'une à '''900 MHz''' grâce à des modules Digi Xbee et l'autre à '''2,4 GHz''' par le moyen de modules émetteurs Bluetooth. On rappellera que les Digi Xbee et les émetteurs/récepteurs Bluetooth seront pilotés par des ATMEGA 2560.&lt;br /&gt;
&lt;br /&gt;
Les Xbee ne communiqueront pas entre eux et émettront en continu les mêmes données car ils le peuvent, alors que les émetteurs/récepteurs Bluetooth devront s'échanger des données si on veut pouvoir observer un quelconque signal autour de la fréquence de leurs porteuses. &lt;br /&gt;
&lt;br /&gt;
On voudra observer premièrement, si avec deux objets dans les '''mêmes''' conditions (donc même µc et même émetteur), on peut ou non '''distinguer une différence'''. Ceci est fondamental pour la suite des expériences, puisque si les deux émettent à la même fréquence, on pourra faire varier plusieurs paramètres afin de trouver '''des clés''' (des signes) qui pourraient aider à l'identification du matériel.&lt;br /&gt;
&lt;br /&gt;
Ces clés représentent différents facteurs potentiels d'identification du signal (le rapport signal-bruit en fonction de la distance par exemple...).&lt;br /&gt;
&lt;br /&gt;
''On planifie alors pour la semaine suivante de réussir à faire émettre, en utilisant simplement des breadboards pour commencer, nos Xbee et modules BT et observer quelque chose grâce à notre SDR.''&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration des modules XBee ===&lt;br /&gt;
&lt;br /&gt;
Nous avons configuré deux XBee afin qu'ils puissent communiquer entre eux : &lt;br /&gt;
&lt;br /&gt;
Les modules XBee ont été montés sur des platines d'interface USB/série de manière à ce qu'on puisse les paramétrer via le programme de contrôle ''minicom''. &lt;br /&gt;
&lt;br /&gt;
Dans le doute, on supposera que les XBee communiquent à 9600 Baud. On exécute la commande suivante : &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;minicom -b 9600 -D /dev/ttyUSB0&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
On active l'echo local dans minicom, afin de pouvoir observer ce qui a été envoyé par liaison série au XBee ('''CTRL+A''' puis '''E''').&lt;br /&gt;
&lt;br /&gt;
Pour commencer le paramètrage il faut taper ''' +++ ''' rapidement. Le XBee nous répond OK, cela veut dire que nous sommes dans le mode configuration et que nous pouvons utiliser les commandes '''AT'''. (Redirection vers la liste des commandes AT XBee [https://cdn.sparkfun.com/assets/resources/2/9/22AT_Commands.pdf]).&lt;br /&gt;
&lt;br /&gt;
Comme nos XBee ont été utilisés auparavant, il a fallu les restaurer à l'état usine avec la commande '''ATRE'''.&lt;br /&gt;
&lt;br /&gt;
Si on souhaite que des XBee puissent s'envoyer des données il faut qu'ils soient sur le même canal (commande '''ATCH''') et aient le même PAN ID (commande '''ATID'''). Notre PAN ID sera '''BEE6''' et le canal sera celui par défaut '''C'''.&lt;br /&gt;
&lt;br /&gt;
Ensuite il faut leur donner une adresse de destination ('''ATDH''' &amp;amp; '''ATDL''') qui sera l'adresse broadcast, pour ce faire on entre &lt;br /&gt;
 ATDH=0000&lt;br /&gt;
 ATDL=FFFF&lt;br /&gt;
&lt;br /&gt;
Enfin '''ATMY''' représente l'ID du XBee, notre premier XBee aura comme ID 5000 et le second 5001.&lt;br /&gt;
&lt;br /&gt;
N'oublions pas de sauvegarder les paramètres avec '''ATWR'''.&lt;br /&gt;
&lt;br /&gt;
On vérifie que tout a bien été pris en compte :&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;&lt;br /&gt;
+++OK&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATID&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
BEE6&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
C&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
0&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDL&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
FFFF&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATMY&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
5000&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCN&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Puis on fait de même avec le deuxième XBee (ID 5001).&lt;br /&gt;
&lt;br /&gt;
Voilà, lorsque on envoi des caractères par liaison série sur 5000, la LED '''Tx''' de 5000 s'allume et la Led '''Rx''' de 5001 s'allume elle aussi. Cela signifie que l'envoi de donnée par onde radio s'effectue correctement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que les XBee émettent et reçoivent, on peut commencer les mesures avec notre SDR. Mais avant cela il va falloir bien se familiariser avec le logiciel GNU RADIO qui est assez difficile à prendre en main.&lt;br /&gt;
&lt;br /&gt;
=== Première prise en main du logiciel GNURADIO ===&lt;br /&gt;
&lt;br /&gt;
Installation de GNU radio avec les fonctions + drivers pour HackRF : &lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install gqrx gnuradio gr-osmosdr hackrf &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le bloc Osmocom Source sert de &amp;quot;passerelle&amp;quot; entre le logiciel et la SDR, il permet de transmettre les informations récupérées par le HackRF afin qu'on puisse les traiter avec d'autres bloc de fonctions.&lt;br /&gt;
&lt;br /&gt;
Si on veut pouvoir récuperer les données il faut passer l'argument ''hackrf=0'' dans la box périphérique du bloc Osmocom.&lt;br /&gt;
&lt;br /&gt;
Ci-dessous on peut voir le spectre environnant entre 2.44GHz et 2.460GHz grâce au bloc WX GUI FFT Sink.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ScreenGnuRadio.png|Interface de GNURadio]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous a permis d'effectuer notre première expérience. L'utilisation des deux Xbees nous a permis d'observer l'impact des Xbee sur le champ électromagéntique environnant.&lt;br /&gt;
&lt;br /&gt;
Si on analyse le spectre environnant grâce au module FFT de GNU Radio, lorsque les Xbee communiquent entre eux, on peut apercevoir un pic caractéristique propre.&lt;br /&gt;
En effet, lors de l'emission d'un message sur le port série, on a un pic qui se dégage du spectre d'amplitude -20dBm. Ce pic est caractéristique au canal de communication choisi et configuré sur le Xbee.&lt;br /&gt;
Néanmoins, le signal est perturbé par le bruit environnant. &lt;br /&gt;
L'expérience étant effectuée au sein de l'école, les signaux Wi-Fi perturberont l'étude.&lt;br /&gt;
Il faut noter que la norme IEEE 802.11 impose au Wi-Fi l'utilisation d'une bande passante s'étalant de 2.4 GHz à 2.5 GHz.&lt;br /&gt;
&lt;br /&gt;
La bande passante des modules Zigbee se décomposent en 16 canaux, allant de 2400 MHz à 2480 MHz par pas de 5 MHz.&lt;br /&gt;
&lt;br /&gt;
Le canal ici utilisé est le canal 13 (3ème canal) de fréquence 2415 MHz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- [[Fichier:Channel135001.png|thumb|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Fichier:channel135000.png|thumb|none|400 px]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:XBeeCh13.png|Spectre de l'environnement autour du XBee|thumb|400 px]][[Fichier:XBeeCh13SND.png|Lors de l'envoi de données au XBee voisin|thumb|none|400 px]]&lt;br /&gt;
&lt;br /&gt;
On peut observer un pic de puissance lors de l'envoi d'une donnée en série à la fréquence 2.415 GHz.&lt;br /&gt;
Il nous est maintenant nécessaire d'analyser de plus près les signaux et leurs fréquence centrale dans la bande perçue au dessus de -20dB.&lt;br /&gt;
&lt;br /&gt;
On réeffectuera une expérience en zone isolée des signaux parasites.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous avons principalement fait des recherches dans le but de mieux comprendre les signaux émis par le Xbee.&lt;br /&gt;
&lt;br /&gt;
En somme, nous étions confrontés à de nombreuses interrogations. Le fonctionnement du Xbee étant assez simple et la sécurité du protocole Zigbee étant moindre, y a t-il possibilité de démoduler le signal émis afin de développer nos études ?&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&lt;br /&gt;
On décide d'automatiser le processus d'envoie sur le port série des données vers le Xbee.&lt;br /&gt;
En effet, le fait que des données soient envoyées sur un temps t ne nous permet de voir correctement le signal. Il nous est nécessaire d'approcher le moment de balayage avec l'envoi des données.&lt;br /&gt;
&lt;br /&gt;
Un script python est réalisé afin d'envoyer en continue les données.&lt;br /&gt;
En outre, le script permet de changer toutes les dix secondes de canal d'envoi.&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;/div&gt;</summary>
		<author><name>Amoreau</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=70424</id>
		<title>IMA4 2018/2019 P70</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=70424"/>
				<updated>2019-03-06T14:22:39Z</updated>
		
		<summary type="html">&lt;p&gt;Amoreau : /* Semaine 4 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;font-size: 30px; width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;Impact du matériel et du logiciel sur le champ électromagnétique&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Projet'''&amp;lt;/ins&amp;gt; : Impact du matériel et du logiciel sur le rayonnement électromagnétique&lt;br /&gt;
&lt;br /&gt;
''Nous proposons d'évaluer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et la consommation électrique.''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Etudiants'''&amp;lt;/ins&amp;gt; : Souheib KHINACHE et Antoine MOREAU&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Encadrants'''&amp;lt;/ins&amp;gt; : Alexandre BOE, Xavier REDON et Thomas VANTROYS&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'internet des objets est un marché en plein essor. La communication entre les différents objets connectés crée un nuage de signaux autour d'eux. Ces derniers sont vus par les utilisateurs comme des boîtes noires : le fonctionnement se fait sans en connaître les composants matériels et logiciels. &lt;br /&gt;
Néanmoins, ces objets, de par leurs propriétés électroniques, créent des fuites électromagnétiques impactant le champ environnant. &lt;br /&gt;
&lt;br /&gt;
Bien qu'ils peuvent porter à débat sur l'impact sur la santé, ces signaux peuvent représenter de réelles sources d'informations sur l'aspect matériel et applicatif de l'objet.&lt;br /&gt;
&lt;br /&gt;
Il serait donc intéressant d'avoir idée générale sur le fonctionnement du système en interprétant les ondes électromagnétiques émises par ce système.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Les principaux objectifs de ce projet seront donc de mesurer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et sur la consommation électrique.&lt;br /&gt;
Pour cela, l'outil potentiel avec lequel nous pourrions travailler serait une sonde de champ électromagnétique afin d'établir des mesures. &lt;br /&gt;
Cependant, nous pourrions concevoir notre propre système de capture et d'interprétation à partir d'une antenne, de filtres de fréquences et d'un microcontrôleur (on commencera par un ATMega328P). Il sera nécessaire de prendre en compte les perturbations issues de notre appareil de mesure et d'en tenir compte.&lt;br /&gt;
&lt;br /&gt;
On effectuera ainsi plusieurs expérimentations sur différents supports d'étude :&lt;br /&gt;
*l'aspect &amp;quot;Hardware&amp;quot; en étudiant différents modèles pour un même type de shield  &lt;br /&gt;
*l'aspect calculatoire du matériel en se basant sur l'impact des microcontrôleurs en fonction du modèle (ATMega328P et ATMega2560)&lt;br /&gt;
*l'aspect &amp;quot;Software&amp;quot;, en étudiant l'impact du logiciel et du firmware d'un même composant (différents firmwares pour un même shield Wi-Fi)&lt;br /&gt;
*l'aspect puissance des composants électroniques de gestion de puissance (ponts, hacheurs, onduleurs...).&lt;br /&gt;
&lt;br /&gt;
L'étude des différentes informations se fera par traitement des signaux électromagnétiques et des spectres. &lt;br /&gt;
Afin de mieux appréhender le problème, il nous est nécessaire de comprendre les phénomènes physiques issus de la notion d'électromagnétisme.&lt;br /&gt;
&lt;br /&gt;
Ces études mèneront à une étape plus complexe : l'interprétation des signaux. En effet, l'un des objectifs de ce projet est de comprendre du mieux possible le fonctionnement d'un système sans y avoir accès directement, et donc dans ce contexte &amp;quot;traduire&amp;quot; un ensemble de signaux électromagnétiques.&lt;br /&gt;
&lt;br /&gt;
On pourra en outre apporter un aspect visuel à l'étude en rajoutant une interface informatique.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
Bien qu'aux yeux de nombreuses personnes le bruit électromagnétique créé par les équipements électroniques du quotidien peut porter à controverse (débats concernant l'impact sur la santé par exemple), il peut être une source d'informations. &lt;br /&gt;
De nos jours, les ondes électromagnétiques restent un vaste champ d'étude, sujettes à de nombreuses thèses et recherches au sein des laboratoires.&lt;br /&gt;
&lt;br /&gt;
On peut prendre l'exemple de [https://www.eurekalert.org/pub_releases/2015-01/giot-rwt010715.php Milos Prvulovic], professeur à l'Institut Technologique de Géorgie, ayant simulé un contexte de cybercafé, dans lequel il place une antenne magnétique, un ordinateur portable cible et un ordinateur &amp;quot;espion&amp;quot;. Il réussit, grâce aux signaux EM émis par l'impulsion de l'appui des touches clavier à capter un message écrit par un ordinateur cible. &lt;br /&gt;
&lt;br /&gt;
Néanmoins, dans le quotidien, l'utilisation des sondes électromagnétiques se fait pour l'étude énergétique d'un système électronique (fuites électromagnétiques anormales, preuves d'une anomalie...) afin de respecter certaines normes législatives. Le code du travail par exemple réglemente et définit des valeurs seuils par le biais des articles R. 4453-3 et R. 4453-4.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
'''NBM-520 de NARDA STS'''&lt;br /&gt;
[[Fichier: NBM_TS.png|thumb|300px|NBM-TS, application des appareils NBM]]&lt;br /&gt;
NARDA STS est une entreprise qui fournit des outils de mesure. Elle met à disposition aux professionnels des sondes électromagnétiques.&lt;br /&gt;
La NBM-520 est un appareil de la franchise, mesurant le champ électrique et magnétique. Elle donne des valeurs précises du champ électromagnétique ambiant sur une large bande. Elle propose différentes sondes modulables permettant une souplesse au niveau de l'étude en fonction des besoins, avec des sondes pouvant étudier des signaux de fréquence de 100kHz à 6GHz ou même de 300kHz à 50GHz (en fonction de la sonde choisie).&lt;br /&gt;
&lt;br /&gt;
En outre, le dispositif peut se connecter en USB sur PC afin d'envoyer les données capturées et d'en faire une étude. Le dispositif propose un logiciel d'étude, NBM-TS, permettant d'observer du champ en fonction du temps, de la fréquence, de la position...&lt;br /&gt;
&lt;br /&gt;
L'équipement est utilisé par l'ANF (l'Agence Nationale des Fréquences, agence gérant l'ensemble des normes autour des radiofréquences), et est donc un gage de qualité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Avantages :''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Large bande de fréquence&lt;br /&gt;
* Matériel solide&lt;br /&gt;
* Application fonctionnelle permettant l'étude et gestion des données&lt;br /&gt;
* Possibilité d'étudier séparément champ électrique et magnétique&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Inconvénients:''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Impossible d'étudier les basses fréquences (appareils sous tension, bobinages...)&lt;br /&gt;
* Prix élevé : à partir de 3100€&lt;br /&gt;
* La cible de ce produit est surtout les professionels&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
'''Une pita.'''&lt;br /&gt;
&lt;br /&gt;
''Comment mon pain à pita vole ta clé RSA ?''&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Pita.jpg|200px|thumb|left|Une pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Des chercheurs israéliens ont découvert un moyen de capturer des clés de cryptage RSA, réputées comme inviolables, par le biais d'une pita... du moins avec un dispositif suffisamment petit pour être caché dans un pain à pita. &lt;br /&gt;
Le dispositif, renommé PITA pour Portable Instrument for Trace Acquisition a la particularité de capturer les ondes radio électromagnétiques émanantes d'un PC, qu'il soit connecté à un réseau ou pas.&lt;br /&gt;
Les différentes opérations du processeur sont identifiées en distinguant les différents modèles de l'activité radio sur le spectre EM.&lt;br /&gt;
&lt;br /&gt;
Bien que la capture des clés RSA a été faite dans des conditions particulières (modification du processeur de l'ordinateur cible), il est néanmoins possible, selon les chercheurs, d'identifier quelle type d'activité est exercée par l'ordinateur ainsi que son état.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PITA.jpg|300px|thumb|right|Un dessous de pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'un des points importants concernant le dispositif est son coût : moins de 300 euros.&lt;br /&gt;
L'appareil dispose :&lt;br /&gt;
* d'un PC portatif (PC-on-a-stick) ''Rikomagic MK802 IV'',&lt;br /&gt;
* d'un recepteur radio SDR ''FUNcube Dongle Pro+''&lt;br /&gt;
* d'une antenne radio&lt;br /&gt;
* d'une batterie&lt;br /&gt;
* d'une antenne WiFi&lt;br /&gt;
* d'une carte MicroSD&lt;br /&gt;
* d'un adapteur d'antenne&lt;br /&gt;
* et d'une '''pita'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le dispositif aurait une portée de 50cm. &lt;br /&gt;
Les chercheurs israéliens ont collaboré avec GNU Private Guard (logiciel de cryptage asymétrique) afin de protéger contre ces attaques les clés de cryptage.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
&lt;br /&gt;
''Scénario 1''&lt;br /&gt;
&lt;br /&gt;
Gérard a toujours le flair pour les bonnes affaires. Il a acheté une centaine de clés WiFi à un prix dérisoire sur AloXpresso afin de faire du profit à la revente. Le vendeur lui garantit que toutes les clés fonctionnent correctement. Gérard veut vérifier. Après vérification, 99 des clés sur 100 fonctionnent comme prévu. Gérard aimerait être sûr du disfonctionnement, mais Gérard n'est pas une pointure en informatique. &lt;br /&gt;
&lt;br /&gt;
Coup de génie ! Il se rappelle qu'il dispose d'un dispositif qui capte les ondes EM et les interprète directement. C'est le moment de tester ça. Il remarque une anomalie sur le spectre.&lt;br /&gt;
Il décide de contacter le revendeur pour lui signaler un disfonctionnement sur l'une des clé. &lt;br /&gt;
Pas de soucis. Le vendeur, étant bon prince, lui envoie une autre clé USB et lui fait une ristourne.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Scénario 2''&lt;br /&gt;
&lt;br /&gt;
La police fait une perquisition chez un individu soupçonné de graves délits. Cela fait plusieurs mois que la brigade criminelle prépare l'intervention, et une fois sur les lieux ils arrêtent le soupçonné malfaiteur.&lt;br /&gt;
Cependant avant de repartir, elle veut faire l'acquisition d'un maximum de preuves. Elle veut alors prendre l'essentiel des objets, dont certains objets éléctroniques connectés de l'individu dont elle pourra extraire les informations qui serviront à le faire tomber.&lt;br /&gt;
&lt;br /&gt;
Par chance, elle dispose d'un petit outil qui scannera les signatures alentours des objets connectés, comme des téléphones cachés, clés USB wifi dissimulées dans le décor etc..&lt;br /&gt;
Et si le suspect avait modifié malignement un objet connecté banal pour l'utiliser autrement à ses fins, la police le découvrirait car elle possède une base de données de toutes les signatures spectrales des objets connectés sur le marché et celle de l'objet modifié ne collerait pas avec celle de la base de données.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
&lt;br /&gt;
'''Comment étudier les signaux malgré les perturbations électromagnétiques ambiants et les faibles signaux des µC ?'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les signaux électromagnétiques des microcontrôleurs ou d'autres composants peuvent être faibles. Il y a une possibilité pour palier à ce problème, c'est de capter les signaux depuis une antenne émettrice que l'on rajoute à l'objet d'étude. &lt;br /&gt;
Nous utiliserons un SDR (Software Defined-Radio) afin de capter les ondes radio et les étudier directement sur PC. Le filtrage s'effectuera ainsi de manière numérique. Plusieurs tests seront effectués pour le même objet à étudier (quand on parle d'objet, on évoque un ensemble de plusieurs composants, comme par exemple une alimentation, un micro-contrôleur et une antenne). Ainsi, de manière statistique, nous pourrons en déduire un pattern récurrent pour chaque expérience en les effectuant dans différents environnements (pourquoi pas une chambre anachoïque). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons &lt;br /&gt;
* Capter le signal émis par un objet connecté le plus précisément possible&lt;br /&gt;
&lt;br /&gt;
* Concevoir nos propres objets connectés tous différents mais basés sur un même modèle&lt;br /&gt;
&lt;br /&gt;
* Interpréter les spectrogrammes, faire une étude statistique des signaux émis par nos différents objets et en tirer des conclusions&lt;br /&gt;
&lt;br /&gt;
* Répertorier dans une base de données les signatures de nos objets , voire de quelques objets disponibles sur le marché&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix logiciel :&lt;br /&gt;
&lt;br /&gt;
- La distribution Linux Pentoo ou Kali pour traiter les signaux avec GNU RADIO (Suite logicielle dédiée à l’implémentation de radios logicielles et de systèmes de traitement du signal).&lt;br /&gt;
&lt;br /&gt;
- FemtoOS pour l'OS des ATMEGA328P et ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix Matériel : &lt;br /&gt;
&lt;br /&gt;
- Plusieurs modules radios émetteurs &lt;br /&gt;
&lt;br /&gt;
- Plusieurs microcontrôleurs ATMEGA328P et un ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
- Des alimentations identiques pour chaque PCB&lt;br /&gt;
&lt;br /&gt;
- Un HackRF pour la réception des signaux&lt;br /&gt;
&lt;br /&gt;
- Une antenne 50 Ohm pour le HackRF [https://www.passion-radio.fr/accessoires-sdr/antenne-ant500-74.html]&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous devons préparer tout le matériel qui servira à faire nos tests. C'est à dire concevoir :&lt;br /&gt;
&lt;br /&gt;
- Un ensemble SDR/PC qui traitera le signal reçu avec GNU RADIO.&lt;br /&gt;
&lt;br /&gt;
- Une multitude de PCB qui seront nos objets connectés (Sur chacun d'entre eux on trouvera au minimum une antenne radio, un microcontrôleur et une alimentation)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de récupérer une &amp;quot;signature&amp;quot; d'un de nos objets , il faudra faire plus de 50 analyses spectrales pour conclure statistiquement sur une bonne signature qui caractérisera l'objet.&lt;br /&gt;
&lt;br /&gt;
Nous devons donc dans un second temps: &lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques mais qui ont un '''firmware''' différent.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques qui ont pour seule différence le '''microcontrôleur'''.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques dont seul le '''PCB''' diffère.&lt;br /&gt;
&lt;br /&gt;
Grâce à tous ces tests , nous pourrons conclure et voir l'impact qu'à le matériel ou le logiciel sur la signature d'un objet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enfin si les délais nous le permettent, nous pourrons réaliser un software qui cartographiera nos objets connectés dans la pièce grâce à la puissance de la signature reçue (Ce qui devrait être réalisable puisqu'à ce stade nous aurons une base de donnée des signatures).&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
|3&lt;br /&gt;
|8&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Recherches&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Prise en main de GnuRadio&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Configuration Xbee&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|4&lt;br /&gt;
|15&lt;br /&gt;
|9&lt;br /&gt;
|8&lt;br /&gt;
|7&lt;br /&gt;
|8&lt;br /&gt;
|8&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
[[Fichier:HackrfOne.jpeg|200px|thumb|right|Le HackRF One]]&lt;br /&gt;
Durant cette semaine, nous avons continué nos recherches notamment sur le moyen de transmission de nos objets connectés. Nous avons confirmé notre choix de notre SDR : Monsieur Boé nous a confirmé que des HackRF seraient disponibles dans les laboratoires et qu'il pourrait nous en prêter un. On disposera donc d'une antenne puissante pour traiter les signaux émis par nos objets communiquants. &lt;br /&gt;
&lt;br /&gt;
Il faudra coupler notre HackRF avec un logiciel appelé GNU RADIO qui est un logiciel très complet ( Pour information : la NASA a utilisé GNU RADIO afin de rétablir le contact avec une sonde spatiale abandonnée ). Afin de faire tourner ce logiciel libre, nous aurons besoin de la distribution Kali Linux, ex Backtrack.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Choix des émetteurs/récepteurs === &lt;br /&gt;
&lt;br /&gt;
Nous avons décidé que nos objets connectés communiqueront dans deux '''bandes de fréquences ISM''', l'une à '''900 MHz''' grâce à des modules Digi Xbee et l'autre à '''2,4 GHz''' par le moyen de modules émetteurs Bluetooth. On rappellera que les Digi Xbee et les émetteurs/récepteurs Bluetooth seront pilotés par des ATMEGA 2560.&lt;br /&gt;
&lt;br /&gt;
Les Xbee ne communiqueront pas entre eux et émettront en continu les mêmes données car ils le peuvent, alors que les émetteurs/récepteurs Bluetooth devront s'échanger des données si on veut pouvoir observer un quelconque signal autour de la fréquence de leurs porteuses. &lt;br /&gt;
&lt;br /&gt;
On voudra observer premièrement, si avec deux objets dans les '''mêmes''' conditions (donc même µc et même émetteur), on peut ou non '''distinguer une différence'''. Ceci est fondamental pour la suite des expériences, puisque si les deux émettent à la même fréquence, on pourra faire varier plusieurs paramètres afin de trouver '''des clés''' (des signes) qui pourraient aider à l'identification du matériel.&lt;br /&gt;
&lt;br /&gt;
Ces clés représentent différents facteurs potentiels d'identification du signal (le rapport signal-bruit en fonction de la distance par exemple...).&lt;br /&gt;
&lt;br /&gt;
''On planifie alors pour la semaine suivante de réussir à faire émettre, en utilisant simplement des breadboards pour commencer, nos Xbee et modules BT et observer quelque chose grâce à notre SDR.''&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration des modules XBee ===&lt;br /&gt;
&lt;br /&gt;
Nous avons configuré deux XBee afin qu'ils puissent communiquer entre eux : &lt;br /&gt;
&lt;br /&gt;
Les modules XBee ont été montés sur des platines d'interface USB/série de manière à ce qu'on puisse les paramétrer via le programme de contrôle ''minicom''. &lt;br /&gt;
&lt;br /&gt;
Dans le doute, on supposera que les XBee communiquent à 9600 Baud. On exécute la commande suivante : &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;minicom -b 9600 -D /dev/ttyUSB0&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
On active l'echo local dans minicom, afin de pouvoir observer ce qui a été envoyé par liaison série au XBee ('''CTRL+A''' puis '''E''').&lt;br /&gt;
&lt;br /&gt;
Pour commencer le paramètrage il faut taper ''' +++ ''' rapidement. Le XBee nous répond OK, cela veut dire que nous sommes dans le mode configuration et que nous pouvons utiliser les commandes '''AT'''. (Redirection vers la liste des commandes AT XBee [https://cdn.sparkfun.com/assets/resources/2/9/22AT_Commands.pdf]).&lt;br /&gt;
&lt;br /&gt;
Comme nos XBee ont été utilisés auparavant, il a fallu les restaurer à l'état usine avec la commande '''ATRE'''.&lt;br /&gt;
&lt;br /&gt;
Si on souhaite que des XBee puissent s'envoyer des données il faut qu'ils soient sur le même canal (commande '''ATCH''') et aient le même PAN ID (commande '''ATID'''). Notre PAN ID sera '''BEE6''' et le canal sera celui par défaut '''C'''.&lt;br /&gt;
&lt;br /&gt;
Ensuite il faut leur donner une adresse de destination ('''ATDH''' &amp;amp; '''ATDL''') qui sera l'adresse broadcast, pour ce faire on entre &lt;br /&gt;
 ATDH=0000&lt;br /&gt;
 ATDL=FFFF&lt;br /&gt;
&lt;br /&gt;
Enfin '''ATMY''' représente l'ID du XBee, notre premier XBee aura comme ID 5000 et le second 5001.&lt;br /&gt;
&lt;br /&gt;
N'oublions pas de sauvegarder les paramètres avec '''ATWR'''.&lt;br /&gt;
&lt;br /&gt;
On vérifie que tout a bien été pris en compte :&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;&lt;br /&gt;
+++OK&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATID&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
BEE6&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
C&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
0&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDL&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
FFFF&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATMY&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
5000&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCN&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Puis on fait de même avec le deuxième XBee (ID 5001).&lt;br /&gt;
&lt;br /&gt;
Voilà, lorsque on envoi des caractères par liaison série sur 5000, la LED '''Tx''' de 5000 s'allume et la Led '''Rx''' de 5001 s'allume elle aussi. Cela signifie que l'envoi de donnée par onde radio s'effectue correctement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que les XBee émettent et reçoivent, on peut commencer les mesures avec notre SDR. Mais avant cela il va falloir bien se familiariser avec le logiciel GNU RADIO qui est assez difficile à prendre en main.&lt;br /&gt;
&lt;br /&gt;
=== Première prise en main du logiciel GNURADIO ===&lt;br /&gt;
&lt;br /&gt;
Installation de GNU radio avec les fonctions + drivers pour HackRF : &lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install gqrx gnuradio gr-osmosdr hackrf &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le bloc Osmocom Source sert de &amp;quot;passerelle&amp;quot; entre le logiciel et la SDR, il permet de transmettre les informations récupérées par le HackRF afin qu'on puisse les traiter avec d'autres bloc de fonctions.&lt;br /&gt;
&lt;br /&gt;
Si on veut pouvoir récuperer les données il faut passer l'argument ''hackrf=0'' dans la box périphérique du bloc Osmocom.&lt;br /&gt;
&lt;br /&gt;
Ci-dessous on peut voir le spectre environnant entre 2.44GHz et 2.460GHz grâce au bloc WX GUI FFT Sink.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ScreenGnuRadio.png|Interface de GNURadio]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous a permis d'effectuer notre première expérience. L'utilisation des deux Xbees nous a permis d'observer l'impact des Xbee sur le champ électromagéntique environnant.&lt;br /&gt;
&lt;br /&gt;
Si on analyse le spectre environnant grâce au module FFT de GNU Radio, lorsque les Xbee communiquent entre eux, on peut apercevoir un pic caractéristique propre.&lt;br /&gt;
En effet, lors de l'emission d'un message sur le port série, on a un pic qui se dégage du spectre d'amplitude -20dBm. Ce pic est caractéristique au canal de communication choisi et configuré sur le Xbee.&lt;br /&gt;
Néanmoins, le signal est perturbé par le bruit environnant. &lt;br /&gt;
L'expérience étant effectuée au sein de l'école, les signaux Wi-Fi perturberont l'étude.&lt;br /&gt;
Il faut noter que la norme IEEE 802.11 impose au Wi-Fi l'utilisation d'une bande passante s'étalant de 2.4 GHz à 2.5 GHz.&lt;br /&gt;
&lt;br /&gt;
La bande passante des modules Zigbee se décomposent en 16 canaux, allant de 2400 MHz à 2480 MHz par pas de 5 MHz.&lt;br /&gt;
&lt;br /&gt;
Le canal ici utilisé est le canal 13 (3ème canal) de fréquence 2415 MHz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- [[Fichier:Channel135001.png|thumb|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Fichier:channel135000.png|thumb|none|400 px]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:XBeeCh13.png|Spectre de l'environnement autour du XBee|thumb|400 px]][[Fichier:XBeeCh13SND.png|Lors de l'envoi de données au XBee voisin|thumb|none|400 px]]&lt;br /&gt;
&lt;br /&gt;
On peut observer un pic de puissance lors de l'envoi d'une donnée en série à la fréquence 2.415 GHz.&lt;br /&gt;
Il nous est maintenant nécessaire d'analyser de plus près les signaux et leurs fréquence centrale dans la bande perçue au dessus de -20dB.&lt;br /&gt;
&lt;br /&gt;
On réeffectuera une expérience en zone isolée des signaux parasites.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous nous avons principalement fait des recherches dans le but de mieux comprendre les signaux émis par le Xbee.&lt;br /&gt;
&lt;br /&gt;
En somme, nous étions confrontés à de nombreuses interrogations. Le fonctionnement du Xbee étant assez simple et la sécurité du protocole Zigbee étant moindre, y a t-il possibilité de démoduler le signal émis afin de développer nos études ?&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&lt;br /&gt;
On décide d'automatiser le processus d'envoie sur le port série des données vers le Xbee.&lt;br /&gt;
En effet, le fait que des données soient envoyées sur un temps t ne nous permet de voir correctement le signal. Il nous est nécessaire d'approcher le moment de balayage avec l'envoi des données.&lt;br /&gt;
&lt;br /&gt;
Un script python est réalisé afin d'envoyer en continue les données.&lt;br /&gt;
En outre, le script permet de changer toutes les dix secondes de canal d'envoi.&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;/div&gt;</summary>
		<author><name>Amoreau</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=70422</id>
		<title>IMA4 2018/2019 P70</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=70422"/>
				<updated>2019-03-06T14:20:28Z</updated>
		
		<summary type="html">&lt;p&gt;Amoreau : /* Feuille d'heures */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;font-size: 30px; width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;Impact du matériel et du logiciel sur le champ électromagnétique&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Projet'''&amp;lt;/ins&amp;gt; : Impact du matériel et du logiciel sur le rayonnement électromagnétique&lt;br /&gt;
&lt;br /&gt;
''Nous proposons d'évaluer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et la consommation électrique.''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Etudiants'''&amp;lt;/ins&amp;gt; : Souheib KHINACHE et Antoine MOREAU&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Encadrants'''&amp;lt;/ins&amp;gt; : Alexandre BOE, Xavier REDON et Thomas VANTROYS&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'internet des objets est un marché en plein essor. La communication entre les différents objets connectés crée un nuage de signaux autour d'eux. Ces derniers sont vus par les utilisateurs comme des boîtes noires : le fonctionnement se fait sans en connaître les composants matériels et logiciels. &lt;br /&gt;
Néanmoins, ces objets, de par leurs propriétés électroniques, créent des fuites électromagnétiques impactant le champ environnant. &lt;br /&gt;
&lt;br /&gt;
Bien qu'ils peuvent porter à débat sur l'impact sur la santé, ces signaux peuvent représenter de réelles sources d'informations sur l'aspect matériel et applicatif de l'objet.&lt;br /&gt;
&lt;br /&gt;
Il serait donc intéressant d'avoir idée générale sur le fonctionnement du système en interprétant les ondes électromagnétiques émises par ce système.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Les principaux objectifs de ce projet seront donc de mesurer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et sur la consommation électrique.&lt;br /&gt;
Pour cela, l'outil potentiel avec lequel nous pourrions travailler serait une sonde de champ électromagnétique afin d'établir des mesures. &lt;br /&gt;
Cependant, nous pourrions concevoir notre propre système de capture et d'interprétation à partir d'une antenne, de filtres de fréquences et d'un microcontrôleur (on commencera par un ATMega328P). Il sera nécessaire de prendre en compte les perturbations issues de notre appareil de mesure et d'en tenir compte.&lt;br /&gt;
&lt;br /&gt;
On effectuera ainsi plusieurs expérimentations sur différents supports d'étude :&lt;br /&gt;
*l'aspect &amp;quot;Hardware&amp;quot; en étudiant différents modèles pour un même type de shield  &lt;br /&gt;
*l'aspect calculatoire du matériel en se basant sur l'impact des microcontrôleurs en fonction du modèle (ATMega328P et ATMega2560)&lt;br /&gt;
*l'aspect &amp;quot;Software&amp;quot;, en étudiant l'impact du logiciel et du firmware d'un même composant (différents firmwares pour un même shield Wi-Fi)&lt;br /&gt;
*l'aspect puissance des composants électroniques de gestion de puissance (ponts, hacheurs, onduleurs...).&lt;br /&gt;
&lt;br /&gt;
L'étude des différentes informations se fera par traitement des signaux électromagnétiques et des spectres. &lt;br /&gt;
Afin de mieux appréhender le problème, il nous est nécessaire de comprendre les phénomènes physiques issus de la notion d'électromagnétisme.&lt;br /&gt;
&lt;br /&gt;
Ces études mèneront à une étape plus complexe : l'interprétation des signaux. En effet, l'un des objectifs de ce projet est de comprendre du mieux possible le fonctionnement d'un système sans y avoir accès directement, et donc dans ce contexte &amp;quot;traduire&amp;quot; un ensemble de signaux électromagnétiques.&lt;br /&gt;
&lt;br /&gt;
On pourra en outre apporter un aspect visuel à l'étude en rajoutant une interface informatique.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
Bien qu'aux yeux de nombreuses personnes le bruit électromagnétique créé par les équipements électroniques du quotidien peut porter à controverse (débats concernant l'impact sur la santé par exemple), il peut être une source d'informations. &lt;br /&gt;
De nos jours, les ondes électromagnétiques restent un vaste champ d'étude, sujettes à de nombreuses thèses et recherches au sein des laboratoires.&lt;br /&gt;
&lt;br /&gt;
On peut prendre l'exemple de [https://www.eurekalert.org/pub_releases/2015-01/giot-rwt010715.php Milos Prvulovic], professeur à l'Institut Technologique de Géorgie, ayant simulé un contexte de cybercafé, dans lequel il place une antenne magnétique, un ordinateur portable cible et un ordinateur &amp;quot;espion&amp;quot;. Il réussit, grâce aux signaux EM émis par l'impulsion de l'appui des touches clavier à capter un message écrit par un ordinateur cible. &lt;br /&gt;
&lt;br /&gt;
Néanmoins, dans le quotidien, l'utilisation des sondes électromagnétiques se fait pour l'étude énergétique d'un système électronique (fuites électromagnétiques anormales, preuves d'une anomalie...) afin de respecter certaines normes législatives. Le code du travail par exemple réglemente et définit des valeurs seuils par le biais des articles R. 4453-3 et R. 4453-4.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
'''NBM-520 de NARDA STS'''&lt;br /&gt;
[[Fichier: NBM_TS.png|thumb|300px|NBM-TS, application des appareils NBM]]&lt;br /&gt;
NARDA STS est une entreprise qui fournit des outils de mesure. Elle met à disposition aux professionnels des sondes électromagnétiques.&lt;br /&gt;
La NBM-520 est un appareil de la franchise, mesurant le champ électrique et magnétique. Elle donne des valeurs précises du champ électromagnétique ambiant sur une large bande. Elle propose différentes sondes modulables permettant une souplesse au niveau de l'étude en fonction des besoins, avec des sondes pouvant étudier des signaux de fréquence de 100kHz à 6GHz ou même de 300kHz à 50GHz (en fonction de la sonde choisie).&lt;br /&gt;
&lt;br /&gt;
En outre, le dispositif peut se connecter en USB sur PC afin d'envoyer les données capturées et d'en faire une étude. Le dispositif propose un logiciel d'étude, NBM-TS, permettant d'observer du champ en fonction du temps, de la fréquence, de la position...&lt;br /&gt;
&lt;br /&gt;
L'équipement est utilisé par l'ANF (l'Agence Nationale des Fréquences, agence gérant l'ensemble des normes autour des radiofréquences), et est donc un gage de qualité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Avantages :''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Large bande de fréquence&lt;br /&gt;
* Matériel solide&lt;br /&gt;
* Application fonctionnelle permettant l'étude et gestion des données&lt;br /&gt;
* Possibilité d'étudier séparément champ électrique et magnétique&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Inconvénients:''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Impossible d'étudier les basses fréquences (appareils sous tension, bobinages...)&lt;br /&gt;
* Prix élevé : à partir de 3100€&lt;br /&gt;
* La cible de ce produit est surtout les professionels&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
'''Une pita.'''&lt;br /&gt;
&lt;br /&gt;
''Comment mon pain à pita vole ta clé RSA ?''&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Pita.jpg|200px|thumb|left|Une pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Des chercheurs israéliens ont découvert un moyen de capturer des clés de cryptage RSA, réputées comme inviolables, par le biais d'une pita... du moins avec un dispositif suffisamment petit pour être caché dans un pain à pita. &lt;br /&gt;
Le dispositif, renommé PITA pour Portable Instrument for Trace Acquisition a la particularité de capturer les ondes radio électromagnétiques émanantes d'un PC, qu'il soit connecté à un réseau ou pas.&lt;br /&gt;
Les différentes opérations du processeur sont identifiées en distinguant les différents modèles de l'activité radio sur le spectre EM.&lt;br /&gt;
&lt;br /&gt;
Bien que la capture des clés RSA a été faite dans des conditions particulières (modification du processeur de l'ordinateur cible), il est néanmoins possible, selon les chercheurs, d'identifier quelle type d'activité est exercée par l'ordinateur ainsi que son état.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PITA.jpg|300px|thumb|right|Un dessous de pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'un des points importants concernant le dispositif est son coût : moins de 300 euros.&lt;br /&gt;
L'appareil dispose :&lt;br /&gt;
* d'un PC portatif (PC-on-a-stick) ''Rikomagic MK802 IV'',&lt;br /&gt;
* d'un recepteur radio SDR ''FUNcube Dongle Pro+''&lt;br /&gt;
* d'une antenne radio&lt;br /&gt;
* d'une batterie&lt;br /&gt;
* d'une antenne WiFi&lt;br /&gt;
* d'une carte MicroSD&lt;br /&gt;
* d'un adapteur d'antenne&lt;br /&gt;
* et d'une '''pita'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le dispositif aurait une portée de 50cm. &lt;br /&gt;
Les chercheurs israéliens ont collaboré avec GNU Private Guard (logiciel de cryptage asymétrique) afin de protéger contre ces attaques les clés de cryptage.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
&lt;br /&gt;
''Scénario 1''&lt;br /&gt;
&lt;br /&gt;
Gérard a toujours le flair pour les bonnes affaires. Il a acheté une centaine de clés WiFi à un prix dérisoire sur AloXpresso afin de faire du profit à la revente. Le vendeur lui garantit que toutes les clés fonctionnent correctement. Gérard veut vérifier. Après vérification, 99 des clés sur 100 fonctionnent comme prévu. Gérard aimerait être sûr du disfonctionnement, mais Gérard n'est pas une pointure en informatique. &lt;br /&gt;
&lt;br /&gt;
Coup de génie ! Il se rappelle qu'il dispose d'un dispositif qui capte les ondes EM et les interprète directement. C'est le moment de tester ça. Il remarque une anomalie sur le spectre.&lt;br /&gt;
Il décide de contacter le revendeur pour lui signaler un disfonctionnement sur l'une des clé. &lt;br /&gt;
Pas de soucis. Le vendeur, étant bon prince, lui envoie une autre clé USB et lui fait une ristourne.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Scénario 2''&lt;br /&gt;
&lt;br /&gt;
La police fait une perquisition chez un individu soupçonné de graves délits. Cela fait plusieurs mois que la brigade criminelle prépare l'intervention, et une fois sur les lieux ils arrêtent le soupçonné malfaiteur.&lt;br /&gt;
Cependant avant de repartir, elle veut faire l'acquisition d'un maximum de preuves. Elle veut alors prendre l'essentiel des objets, dont certains objets éléctroniques connectés de l'individu dont elle pourra extraire les informations qui serviront à le faire tomber.&lt;br /&gt;
&lt;br /&gt;
Par chance, elle dispose d'un petit outil qui scannera les signatures alentours des objets connectés, comme des téléphones cachés, clés USB wifi dissimulées dans le décor etc..&lt;br /&gt;
Et si le suspect avait modifié malignement un objet connecté banal pour l'utiliser autrement à ses fins, la police le découvrirait car elle possède une base de données de toutes les signatures spectrales des objets connectés sur le marché et celle de l'objet modifié ne collerait pas avec celle de la base de données.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
&lt;br /&gt;
'''Comment étudier les signaux malgré les perturbations électromagnétiques ambiants et les faibles signaux des µC ?'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les signaux électromagnétiques des microcontrôleurs ou d'autres composants peuvent être faibles. Il y a une possibilité pour palier à ce problème, c'est de capter les signaux depuis une antenne émettrice que l'on rajoute à l'objet d'étude. &lt;br /&gt;
Nous utiliserons un SDR (Software Defined-Radio) afin de capter les ondes radio et les étudier directement sur PC. Le filtrage s'effectuera ainsi de manière numérique. Plusieurs tests seront effectués pour le même objet à étudier (quand on parle d'objet, on évoque un ensemble de plusieurs composants, comme par exemple une alimentation, un micro-contrôleur et une antenne). Ainsi, de manière statistique, nous pourrons en déduire un pattern récurrent pour chaque expérience en les effectuant dans différents environnements (pourquoi pas une chambre anachoïque). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons &lt;br /&gt;
* Capter le signal émis par un objet connecté le plus précisément possible&lt;br /&gt;
&lt;br /&gt;
* Concevoir nos propres objets connectés tous différents mais basés sur un même modèle&lt;br /&gt;
&lt;br /&gt;
* Interpréter les spectrogrammes, faire une étude statistique des signaux émis par nos différents objets et en tirer des conclusions&lt;br /&gt;
&lt;br /&gt;
* Répertorier dans une base de données les signatures de nos objets , voire de quelques objets disponibles sur le marché&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix logiciel :&lt;br /&gt;
&lt;br /&gt;
- La distribution Linux Pentoo ou Kali pour traiter les signaux avec GNU RADIO (Suite logicielle dédiée à l’implémentation de radios logicielles et de systèmes de traitement du signal).&lt;br /&gt;
&lt;br /&gt;
- FemtoOS pour l'OS des ATMEGA328P et ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix Matériel : &lt;br /&gt;
&lt;br /&gt;
- Plusieurs modules radios émetteurs &lt;br /&gt;
&lt;br /&gt;
- Plusieurs microcontrôleurs ATMEGA328P et un ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
- Des alimentations identiques pour chaque PCB&lt;br /&gt;
&lt;br /&gt;
- Un HackRF pour la réception des signaux&lt;br /&gt;
&lt;br /&gt;
- Une antenne 50 Ohm pour le HackRF [https://www.passion-radio.fr/accessoires-sdr/antenne-ant500-74.html]&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous devons préparer tout le matériel qui servira à faire nos tests. C'est à dire concevoir :&lt;br /&gt;
&lt;br /&gt;
- Un ensemble SDR/PC qui traitera le signal reçu avec GNU RADIO.&lt;br /&gt;
&lt;br /&gt;
- Une multitude de PCB qui seront nos objets connectés (Sur chacun d'entre eux on trouvera au minimum une antenne radio, un microcontrôleur et une alimentation)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de récupérer une &amp;quot;signature&amp;quot; d'un de nos objets , il faudra faire plus de 50 analyses spectrales pour conclure statistiquement sur une bonne signature qui caractérisera l'objet.&lt;br /&gt;
&lt;br /&gt;
Nous devons donc dans un second temps: &lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques mais qui ont un '''firmware''' différent.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques qui ont pour seule différence le '''microcontrôleur'''.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques dont seul le '''PCB''' diffère.&lt;br /&gt;
&lt;br /&gt;
Grâce à tous ces tests , nous pourrons conclure et voir l'impact qu'à le matériel ou le logiciel sur la signature d'un objet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enfin si les délais nous le permettent, nous pourrons réaliser un software qui cartographiera nos objets connectés dans la pièce grâce à la puissance de la signature reçue (Ce qui devrait être réalisable puisqu'à ce stade nous aurons une base de donnée des signatures).&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
|3&lt;br /&gt;
|8&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Recherches&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Prise en main de GnuRadio&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Configuration Xbee&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|4&lt;br /&gt;
|15&lt;br /&gt;
|9&lt;br /&gt;
|8&lt;br /&gt;
|7&lt;br /&gt;
|8&lt;br /&gt;
|8&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
[[Fichier:HackrfOne.jpeg|200px|thumb|right|Le HackRF One]]&lt;br /&gt;
Durant cette semaine, nous avons continué nos recherches notamment sur le moyen de transmission de nos objets connectés. Nous avons confirmé notre choix de notre SDR : Monsieur Boé nous a confirmé que des HackRF seraient disponibles dans les laboratoires et qu'il pourrait nous en prêter un. On disposera donc d'une antenne puissante pour traiter les signaux émis par nos objets communiquants. &lt;br /&gt;
&lt;br /&gt;
Il faudra coupler notre HackRF avec un logiciel appelé GNU RADIO qui est un logiciel très complet ( Pour information : la NASA a utilisé GNU RADIO afin de rétablir le contact avec une sonde spatiale abandonnée ). Afin de faire tourner ce logiciel libre, nous aurons besoin de la distribution Kali Linux, ex Backtrack.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Choix des émetteurs/récepteurs === &lt;br /&gt;
&lt;br /&gt;
Nous avons décidé que nos objets connectés communiqueront dans deux '''bandes de fréquences ISM''', l'une à '''900 MHz''' grâce à des modules Digi Xbee et l'autre à '''2,4 GHz''' par le moyen de modules émetteurs Bluetooth. On rappellera que les Digi Xbee et les émetteurs/récepteurs Bluetooth seront pilotés par des ATMEGA 2560.&lt;br /&gt;
&lt;br /&gt;
Les Xbee ne communiqueront pas entre eux et émettront en continu les mêmes données car ils le peuvent, alors que les émetteurs/récepteurs Bluetooth devront s'échanger des données si on veut pouvoir observer un quelconque signal autour de la fréquence de leurs porteuses. &lt;br /&gt;
&lt;br /&gt;
On voudra observer premièrement, si avec deux objets dans les '''mêmes''' conditions (donc même µc et même émetteur), on peut ou non '''distinguer une différence'''. Ceci est fondamental pour la suite des expériences, puisque si les deux émettent à la même fréquence, on pourra faire varier plusieurs paramètres afin de trouver '''des clés''' (des signes) qui pourraient aider à l'identification du matériel.&lt;br /&gt;
&lt;br /&gt;
Ces clés représentent différents facteurs potentiels d'identification du signal (le rapport signal-bruit en fonction de la distance par exemple...).&lt;br /&gt;
&lt;br /&gt;
''On planifie alors pour la semaine suivante de réussir à faire émettre, en utilisant simplement des breadboards pour commencer, nos Xbee et modules BT et observer quelque chose grâce à notre SDR.''&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration des modules XBee ===&lt;br /&gt;
&lt;br /&gt;
Nous avons configuré deux XBee afin qu'ils puissent communiquer entre eux : &lt;br /&gt;
&lt;br /&gt;
Les modules XBee ont été montés sur des platines d'interface USB/série de manière à ce qu'on puisse les paramétrer via le programme de contrôle ''minicom''. &lt;br /&gt;
&lt;br /&gt;
Dans le doute, on supposera que les XBee communiquent à 9600 Baud. On exécute la commande suivante : &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;minicom -b 9600 -D /dev/ttyUSB0&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
On active l'echo local dans minicom, afin de pouvoir observer ce qui a été envoyé par liaison série au XBee ('''CTRL+A''' puis '''E''').&lt;br /&gt;
&lt;br /&gt;
Pour commencer le paramètrage il faut taper ''' +++ ''' rapidement. Le XBee nous répond OK, cela veut dire que nous sommes dans le mode configuration et que nous pouvons utiliser les commandes '''AT'''. (Redirection vers la liste des commandes AT XBee [https://cdn.sparkfun.com/assets/resources/2/9/22AT_Commands.pdf]).&lt;br /&gt;
&lt;br /&gt;
Comme nos XBee ont été utilisés auparavant, il a fallu les restaurer à l'état usine avec la commande '''ATRE'''.&lt;br /&gt;
&lt;br /&gt;
Si on souhaite que des XBee puissent s'envoyer des données il faut qu'ils soient sur le même canal (commande '''ATCH''') et aient le même PAN ID (commande '''ATID'''). Notre PAN ID sera '''BEE6''' et le canal sera celui par défaut '''C'''.&lt;br /&gt;
&lt;br /&gt;
Ensuite il faut leur donner une adresse de destination ('''ATDH''' &amp;amp; '''ATDL''') qui sera l'adresse broadcast, pour ce faire on entre &lt;br /&gt;
 ATDH=0000&lt;br /&gt;
 ATDL=FFFF&lt;br /&gt;
&lt;br /&gt;
Enfin '''ATMY''' représente l'ID du XBee, notre premier XBee aura comme ID 5000 et le second 5001.&lt;br /&gt;
&lt;br /&gt;
N'oublions pas de sauvegarder les paramètres avec '''ATWR'''.&lt;br /&gt;
&lt;br /&gt;
On vérifie que tout a bien été pris en compte :&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;&lt;br /&gt;
+++OK&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATID&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
BEE6&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
C&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
0&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDL&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
FFFF&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATMY&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
5000&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCN&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Puis on fait de même avec le deuxième XBee (ID 5001).&lt;br /&gt;
&lt;br /&gt;
Voilà, lorsque on envoi des caractères par liaison série sur 5000, la LED '''Tx''' de 5000 s'allume et la Led '''Rx''' de 5001 s'allume elle aussi. Cela signifie que l'envoi de donnée par onde radio s'effectue correctement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que les XBee émettent et reçoivent, on peut commencer les mesures avec notre SDR. Mais avant cela il va falloir bien se familiariser avec le logiciel GNU RADIO qui est assez difficile à prendre en main.&lt;br /&gt;
&lt;br /&gt;
=== Première prise en main du logiciel GNURADIO ===&lt;br /&gt;
&lt;br /&gt;
Installation de GNU radio avec les fonctions + drivers pour HackRF : &lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install gqrx gnuradio gr-osmosdr hackrf &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le bloc Osmocom Source sert de &amp;quot;passerelle&amp;quot; entre le logiciel et la SDR, il permet de transmettre les informations récupérées par le HackRF afin qu'on puisse les traiter avec d'autres bloc de fonctions.&lt;br /&gt;
&lt;br /&gt;
Si on veut pouvoir récuperer les données il faut passer l'argument ''hackrf=0'' dans la box périphérique du bloc Osmocom.&lt;br /&gt;
&lt;br /&gt;
Ci-dessous on peut voir le spectre environnant entre 2.44GHz et 2.460GHz grâce au bloc WX GUI FFT Sink.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ScreenGnuRadio.png|Interface de GNURadio]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous a permis d'effectuer notre première expérience. L'utilisation des deux Xbees nous a permis d'observer l'impact des Xbee sur le champ électromagéntique environnant.&lt;br /&gt;
&lt;br /&gt;
Si on analyse le spectre environnant grâce au module FFT de GNU Radio, lorsque les Xbee communiquent entre eux, on peut apercevoir un pic caractéristique propre.&lt;br /&gt;
En effet, lors de l'emission d'un message sur le port série, on a un pic qui se dégage du spectre d'amplitude -20dBm. Ce pic est caractéristique au canal de communication choisi et configuré sur le Xbee.&lt;br /&gt;
Néanmoins, le signal est perturbé par le bruit environnant. &lt;br /&gt;
L'expérience étant effectuée au sein de l'école, les signaux Wi-Fi perturberont l'étude.&lt;br /&gt;
Il faut noter que la norme IEEE 802.11 impose au Wi-Fi l'utilisation d'une bande passante s'étalant de 2.4 GHz à 2.5 GHz.&lt;br /&gt;
&lt;br /&gt;
La bande passante des modules Zigbee se décomposent en 16 canaux, allant de 2400 MHz à 2480 MHz par pas de 5 MHz.&lt;br /&gt;
&lt;br /&gt;
Le canal ici utilisé est le canal 13 (3ème canal) de fréquence 2415 MHz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- [[Fichier:Channel135001.png|thumb|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Fichier:channel135000.png|thumb|none|400 px]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:XBeeCh13.png|Spectre de l'environnement autour du XBee|thumb|400 px]][[Fichier:XBeeCh13SND.png|Lors de l'envoi de données au XBee voisin|thumb|none|400 px]]&lt;br /&gt;
&lt;br /&gt;
On peut observer un pic de puissance lors de l'envoi d'une donnée en série à la fréquence 2.415 GHz.&lt;br /&gt;
Il nous est maintenant nécessaire d'analyser de plus près les signaux et leurs fréquence centrale dans la bande perçue au dessus de -20dB.&lt;br /&gt;
&lt;br /&gt;
On réeffectuera une expérience en zone isolée des signaux parasites.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous nous sommes principalement à la tâche de recherche afin de mieux comprendre les signaux émis par le Xbee.&lt;br /&gt;
&lt;br /&gt;
En somme, nous étions confrontés à de nombreuses interrogations. Le fonctionnement du Xbee étant assez simple et la sécurité du protocole Zigbee étant moindre, y a t-il possibilité de démoduler le signal émis afin de développper nos études ?&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&lt;br /&gt;
On décide d'automatiser le processus d'envoie sur le port série des données vers le Xbee.&lt;br /&gt;
En effet, le fait que des données soient envoyées sur un temps t ne nous permet de voir correctement le signal. Il nous est nécessaire d'approcher le moment de balayage avec l'envoi des données.&lt;br /&gt;
&lt;br /&gt;
Un script python est réalisé afin d'envoyer en continue les données.&lt;br /&gt;
En outre, le script permet de changer toutes les dix secondes de canal d'envoi.&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;/div&gt;</summary>
		<author><name>Amoreau</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=70420</id>
		<title>IMA4 2018/2019 P70</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=70420"/>
				<updated>2019-03-06T14:20:18Z</updated>
		
		<summary type="html">&lt;p&gt;Amoreau : /* Feuille d'heures */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;font-size: 30px; width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;Impact du matériel et du logiciel sur le champ électromagnétique&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Projet'''&amp;lt;/ins&amp;gt; : Impact du matériel et du logiciel sur le rayonnement électromagnétique&lt;br /&gt;
&lt;br /&gt;
''Nous proposons d'évaluer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et la consommation électrique.''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Etudiants'''&amp;lt;/ins&amp;gt; : Souheib KHINACHE et Antoine MOREAU&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Encadrants'''&amp;lt;/ins&amp;gt; : Alexandre BOE, Xavier REDON et Thomas VANTROYS&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'internet des objets est un marché en plein essor. La communication entre les différents objets connectés crée un nuage de signaux autour d'eux. Ces derniers sont vus par les utilisateurs comme des boîtes noires : le fonctionnement se fait sans en connaître les composants matériels et logiciels. &lt;br /&gt;
Néanmoins, ces objets, de par leurs propriétés électroniques, créent des fuites électromagnétiques impactant le champ environnant. &lt;br /&gt;
&lt;br /&gt;
Bien qu'ils peuvent porter à débat sur l'impact sur la santé, ces signaux peuvent représenter de réelles sources d'informations sur l'aspect matériel et applicatif de l'objet.&lt;br /&gt;
&lt;br /&gt;
Il serait donc intéressant d'avoir idée générale sur le fonctionnement du système en interprétant les ondes électromagnétiques émises par ce système.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Les principaux objectifs de ce projet seront donc de mesurer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et sur la consommation électrique.&lt;br /&gt;
Pour cela, l'outil potentiel avec lequel nous pourrions travailler serait une sonde de champ électromagnétique afin d'établir des mesures. &lt;br /&gt;
Cependant, nous pourrions concevoir notre propre système de capture et d'interprétation à partir d'une antenne, de filtres de fréquences et d'un microcontrôleur (on commencera par un ATMega328P). Il sera nécessaire de prendre en compte les perturbations issues de notre appareil de mesure et d'en tenir compte.&lt;br /&gt;
&lt;br /&gt;
On effectuera ainsi plusieurs expérimentations sur différents supports d'étude :&lt;br /&gt;
*l'aspect &amp;quot;Hardware&amp;quot; en étudiant différents modèles pour un même type de shield  &lt;br /&gt;
*l'aspect calculatoire du matériel en se basant sur l'impact des microcontrôleurs en fonction du modèle (ATMega328P et ATMega2560)&lt;br /&gt;
*l'aspect &amp;quot;Software&amp;quot;, en étudiant l'impact du logiciel et du firmware d'un même composant (différents firmwares pour un même shield Wi-Fi)&lt;br /&gt;
*l'aspect puissance des composants électroniques de gestion de puissance (ponts, hacheurs, onduleurs...).&lt;br /&gt;
&lt;br /&gt;
L'étude des différentes informations se fera par traitement des signaux électromagnétiques et des spectres. &lt;br /&gt;
Afin de mieux appréhender le problème, il nous est nécessaire de comprendre les phénomènes physiques issus de la notion d'électromagnétisme.&lt;br /&gt;
&lt;br /&gt;
Ces études mèneront à une étape plus complexe : l'interprétation des signaux. En effet, l'un des objectifs de ce projet est de comprendre du mieux possible le fonctionnement d'un système sans y avoir accès directement, et donc dans ce contexte &amp;quot;traduire&amp;quot; un ensemble de signaux électromagnétiques.&lt;br /&gt;
&lt;br /&gt;
On pourra en outre apporter un aspect visuel à l'étude en rajoutant une interface informatique.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
Bien qu'aux yeux de nombreuses personnes le bruit électromagnétique créé par les équipements électroniques du quotidien peut porter à controverse (débats concernant l'impact sur la santé par exemple), il peut être une source d'informations. &lt;br /&gt;
De nos jours, les ondes électromagnétiques restent un vaste champ d'étude, sujettes à de nombreuses thèses et recherches au sein des laboratoires.&lt;br /&gt;
&lt;br /&gt;
On peut prendre l'exemple de [https://www.eurekalert.org/pub_releases/2015-01/giot-rwt010715.php Milos Prvulovic], professeur à l'Institut Technologique de Géorgie, ayant simulé un contexte de cybercafé, dans lequel il place une antenne magnétique, un ordinateur portable cible et un ordinateur &amp;quot;espion&amp;quot;. Il réussit, grâce aux signaux EM émis par l'impulsion de l'appui des touches clavier à capter un message écrit par un ordinateur cible. &lt;br /&gt;
&lt;br /&gt;
Néanmoins, dans le quotidien, l'utilisation des sondes électromagnétiques se fait pour l'étude énergétique d'un système électronique (fuites électromagnétiques anormales, preuves d'une anomalie...) afin de respecter certaines normes législatives. Le code du travail par exemple réglemente et définit des valeurs seuils par le biais des articles R. 4453-3 et R. 4453-4.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
'''NBM-520 de NARDA STS'''&lt;br /&gt;
[[Fichier: NBM_TS.png|thumb|300px|NBM-TS, application des appareils NBM]]&lt;br /&gt;
NARDA STS est une entreprise qui fournit des outils de mesure. Elle met à disposition aux professionnels des sondes électromagnétiques.&lt;br /&gt;
La NBM-520 est un appareil de la franchise, mesurant le champ électrique et magnétique. Elle donne des valeurs précises du champ électromagnétique ambiant sur une large bande. Elle propose différentes sondes modulables permettant une souplesse au niveau de l'étude en fonction des besoins, avec des sondes pouvant étudier des signaux de fréquence de 100kHz à 6GHz ou même de 300kHz à 50GHz (en fonction de la sonde choisie).&lt;br /&gt;
&lt;br /&gt;
En outre, le dispositif peut se connecter en USB sur PC afin d'envoyer les données capturées et d'en faire une étude. Le dispositif propose un logiciel d'étude, NBM-TS, permettant d'observer du champ en fonction du temps, de la fréquence, de la position...&lt;br /&gt;
&lt;br /&gt;
L'équipement est utilisé par l'ANF (l'Agence Nationale des Fréquences, agence gérant l'ensemble des normes autour des radiofréquences), et est donc un gage de qualité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Avantages :''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Large bande de fréquence&lt;br /&gt;
* Matériel solide&lt;br /&gt;
* Application fonctionnelle permettant l'étude et gestion des données&lt;br /&gt;
* Possibilité d'étudier séparément champ électrique et magnétique&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Inconvénients:''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Impossible d'étudier les basses fréquences (appareils sous tension, bobinages...)&lt;br /&gt;
* Prix élevé : à partir de 3100€&lt;br /&gt;
* La cible de ce produit est surtout les professionels&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
'''Une pita.'''&lt;br /&gt;
&lt;br /&gt;
''Comment mon pain à pita vole ta clé RSA ?''&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Pita.jpg|200px|thumb|left|Une pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Des chercheurs israéliens ont découvert un moyen de capturer des clés de cryptage RSA, réputées comme inviolables, par le biais d'une pita... du moins avec un dispositif suffisamment petit pour être caché dans un pain à pita. &lt;br /&gt;
Le dispositif, renommé PITA pour Portable Instrument for Trace Acquisition a la particularité de capturer les ondes radio électromagnétiques émanantes d'un PC, qu'il soit connecté à un réseau ou pas.&lt;br /&gt;
Les différentes opérations du processeur sont identifiées en distinguant les différents modèles de l'activité radio sur le spectre EM.&lt;br /&gt;
&lt;br /&gt;
Bien que la capture des clés RSA a été faite dans des conditions particulières (modification du processeur de l'ordinateur cible), il est néanmoins possible, selon les chercheurs, d'identifier quelle type d'activité est exercée par l'ordinateur ainsi que son état.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PITA.jpg|300px|thumb|right|Un dessous de pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'un des points importants concernant le dispositif est son coût : moins de 300 euros.&lt;br /&gt;
L'appareil dispose :&lt;br /&gt;
* d'un PC portatif (PC-on-a-stick) ''Rikomagic MK802 IV'',&lt;br /&gt;
* d'un recepteur radio SDR ''FUNcube Dongle Pro+''&lt;br /&gt;
* d'une antenne radio&lt;br /&gt;
* d'une batterie&lt;br /&gt;
* d'une antenne WiFi&lt;br /&gt;
* d'une carte MicroSD&lt;br /&gt;
* d'un adapteur d'antenne&lt;br /&gt;
* et d'une '''pita'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le dispositif aurait une portée de 50cm. &lt;br /&gt;
Les chercheurs israéliens ont collaboré avec GNU Private Guard (logiciel de cryptage asymétrique) afin de protéger contre ces attaques les clés de cryptage.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
&lt;br /&gt;
''Scénario 1''&lt;br /&gt;
&lt;br /&gt;
Gérard a toujours le flair pour les bonnes affaires. Il a acheté une centaine de clés WiFi à un prix dérisoire sur AloXpresso afin de faire du profit à la revente. Le vendeur lui garantit que toutes les clés fonctionnent correctement. Gérard veut vérifier. Après vérification, 99 des clés sur 100 fonctionnent comme prévu. Gérard aimerait être sûr du disfonctionnement, mais Gérard n'est pas une pointure en informatique. &lt;br /&gt;
&lt;br /&gt;
Coup de génie ! Il se rappelle qu'il dispose d'un dispositif qui capte les ondes EM et les interprète directement. C'est le moment de tester ça. Il remarque une anomalie sur le spectre.&lt;br /&gt;
Il décide de contacter le revendeur pour lui signaler un disfonctionnement sur l'une des clé. &lt;br /&gt;
Pas de soucis. Le vendeur, étant bon prince, lui envoie une autre clé USB et lui fait une ristourne.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Scénario 2''&lt;br /&gt;
&lt;br /&gt;
La police fait une perquisition chez un individu soupçonné de graves délits. Cela fait plusieurs mois que la brigade criminelle prépare l'intervention, et une fois sur les lieux ils arrêtent le soupçonné malfaiteur.&lt;br /&gt;
Cependant avant de repartir, elle veut faire l'acquisition d'un maximum de preuves. Elle veut alors prendre l'essentiel des objets, dont certains objets éléctroniques connectés de l'individu dont elle pourra extraire les informations qui serviront à le faire tomber.&lt;br /&gt;
&lt;br /&gt;
Par chance, elle dispose d'un petit outil qui scannera les signatures alentours des objets connectés, comme des téléphones cachés, clés USB wifi dissimulées dans le décor etc..&lt;br /&gt;
Et si le suspect avait modifié malignement un objet connecté banal pour l'utiliser autrement à ses fins, la police le découvrirait car elle possède une base de données de toutes les signatures spectrales des objets connectés sur le marché et celle de l'objet modifié ne collerait pas avec celle de la base de données.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
&lt;br /&gt;
'''Comment étudier les signaux malgré les perturbations électromagnétiques ambiants et les faibles signaux des µC ?'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les signaux électromagnétiques des microcontrôleurs ou d'autres composants peuvent être faibles. Il y a une possibilité pour palier à ce problème, c'est de capter les signaux depuis une antenne émettrice que l'on rajoute à l'objet d'étude. &lt;br /&gt;
Nous utiliserons un SDR (Software Defined-Radio) afin de capter les ondes radio et les étudier directement sur PC. Le filtrage s'effectuera ainsi de manière numérique. Plusieurs tests seront effectués pour le même objet à étudier (quand on parle d'objet, on évoque un ensemble de plusieurs composants, comme par exemple une alimentation, un micro-contrôleur et une antenne). Ainsi, de manière statistique, nous pourrons en déduire un pattern récurrent pour chaque expérience en les effectuant dans différents environnements (pourquoi pas une chambre anachoïque). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons &lt;br /&gt;
* Capter le signal émis par un objet connecté le plus précisément possible&lt;br /&gt;
&lt;br /&gt;
* Concevoir nos propres objets connectés tous différents mais basés sur un même modèle&lt;br /&gt;
&lt;br /&gt;
* Interpréter les spectrogrammes, faire une étude statistique des signaux émis par nos différents objets et en tirer des conclusions&lt;br /&gt;
&lt;br /&gt;
* Répertorier dans une base de données les signatures de nos objets , voire de quelques objets disponibles sur le marché&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix logiciel :&lt;br /&gt;
&lt;br /&gt;
- La distribution Linux Pentoo ou Kali pour traiter les signaux avec GNU RADIO (Suite logicielle dédiée à l’implémentation de radios logicielles et de systèmes de traitement du signal).&lt;br /&gt;
&lt;br /&gt;
- FemtoOS pour l'OS des ATMEGA328P et ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix Matériel : &lt;br /&gt;
&lt;br /&gt;
- Plusieurs modules radios émetteurs &lt;br /&gt;
&lt;br /&gt;
- Plusieurs microcontrôleurs ATMEGA328P et un ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
- Des alimentations identiques pour chaque PCB&lt;br /&gt;
&lt;br /&gt;
- Un HackRF pour la réception des signaux&lt;br /&gt;
&lt;br /&gt;
- Une antenne 50 Ohm pour le HackRF [https://www.passion-radio.fr/accessoires-sdr/antenne-ant500-74.html]&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous devons préparer tout le matériel qui servira à faire nos tests. C'est à dire concevoir :&lt;br /&gt;
&lt;br /&gt;
- Un ensemble SDR/PC qui traitera le signal reçu avec GNU RADIO.&lt;br /&gt;
&lt;br /&gt;
- Une multitude de PCB qui seront nos objets connectés (Sur chacun d'entre eux on trouvera au minimum une antenne radio, un microcontrôleur et une alimentation)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de récupérer une &amp;quot;signature&amp;quot; d'un de nos objets , il faudra faire plus de 50 analyses spectrales pour conclure statistiquement sur une bonne signature qui caractérisera l'objet.&lt;br /&gt;
&lt;br /&gt;
Nous devons donc dans un second temps: &lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques mais qui ont un '''firmware''' différent.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques qui ont pour seule différence le '''microcontrôleur'''.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques dont seul le '''PCB''' diffère.&lt;br /&gt;
&lt;br /&gt;
Grâce à tous ces tests , nous pourrons conclure et voir l'impact qu'à le matériel ou le logiciel sur la signature d'un objet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enfin si les délais nous le permettent, nous pourrons réaliser un software qui cartographiera nos objets connectés dans la pièce grâce à la puissance de la signature reçue (Ce qui devrait être réalisable puisqu'à ce stade nous aurons une base de donnée des signatures).&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
|3&lt;br /&gt;
|8&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Recherches&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Prise en main de GnuRadio&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Configuration Xbee&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|4&lt;br /&gt;
|15&lt;br /&gt;
|9&lt;br /&gt;
|8&lt;br /&gt;
|7&lt;br /&gt;
|8&lt;br /&gt;
|8&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
[[Fichier:HackrfOne.jpeg|200px|thumb|right|Le HackRF One]]&lt;br /&gt;
Durant cette semaine, nous avons continué nos recherches notamment sur le moyen de transmission de nos objets connectés. Nous avons confirmé notre choix de notre SDR : Monsieur Boé nous a confirmé que des HackRF seraient disponibles dans les laboratoires et qu'il pourrait nous en prêter un. On disposera donc d'une antenne puissante pour traiter les signaux émis par nos objets communiquants. &lt;br /&gt;
&lt;br /&gt;
Il faudra coupler notre HackRF avec un logiciel appelé GNU RADIO qui est un logiciel très complet ( Pour information : la NASA a utilisé GNU RADIO afin de rétablir le contact avec une sonde spatiale abandonnée ). Afin de faire tourner ce logiciel libre, nous aurons besoin de la distribution Kali Linux, ex Backtrack.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Choix des émetteurs/récepteurs === &lt;br /&gt;
&lt;br /&gt;
Nous avons décidé que nos objets connectés communiqueront dans deux '''bandes de fréquences ISM''', l'une à '''900 MHz''' grâce à des modules Digi Xbee et l'autre à '''2,4 GHz''' par le moyen de modules émetteurs Bluetooth. On rappellera que les Digi Xbee et les émetteurs/récepteurs Bluetooth seront pilotés par des ATMEGA 2560.&lt;br /&gt;
&lt;br /&gt;
Les Xbee ne communiqueront pas entre eux et émettront en continu les mêmes données car ils le peuvent, alors que les émetteurs/récepteurs Bluetooth devront s'échanger des données si on veut pouvoir observer un quelconque signal autour de la fréquence de leurs porteuses. &lt;br /&gt;
&lt;br /&gt;
On voudra observer premièrement, si avec deux objets dans les '''mêmes''' conditions (donc même µc et même émetteur), on peut ou non '''distinguer une différence'''. Ceci est fondamental pour la suite des expériences, puisque si les deux émettent à la même fréquence, on pourra faire varier plusieurs paramètres afin de trouver '''des clés''' (des signes) qui pourraient aider à l'identification du matériel.&lt;br /&gt;
&lt;br /&gt;
Ces clés représentent différents facteurs potentiels d'identification du signal (le rapport signal-bruit en fonction de la distance par exemple...).&lt;br /&gt;
&lt;br /&gt;
''On planifie alors pour la semaine suivante de réussir à faire émettre, en utilisant simplement des breadboards pour commencer, nos Xbee et modules BT et observer quelque chose grâce à notre SDR.''&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration des modules XBee ===&lt;br /&gt;
&lt;br /&gt;
Nous avons configuré deux XBee afin qu'ils puissent communiquer entre eux : &lt;br /&gt;
&lt;br /&gt;
Les modules XBee ont été montés sur des platines d'interface USB/série de manière à ce qu'on puisse les paramétrer via le programme de contrôle ''minicom''. &lt;br /&gt;
&lt;br /&gt;
Dans le doute, on supposera que les XBee communiquent à 9600 Baud. On exécute la commande suivante : &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;minicom -b 9600 -D /dev/ttyUSB0&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
On active l'echo local dans minicom, afin de pouvoir observer ce qui a été envoyé par liaison série au XBee ('''CTRL+A''' puis '''E''').&lt;br /&gt;
&lt;br /&gt;
Pour commencer le paramètrage il faut taper ''' +++ ''' rapidement. Le XBee nous répond OK, cela veut dire que nous sommes dans le mode configuration et que nous pouvons utiliser les commandes '''AT'''. (Redirection vers la liste des commandes AT XBee [https://cdn.sparkfun.com/assets/resources/2/9/22AT_Commands.pdf]).&lt;br /&gt;
&lt;br /&gt;
Comme nos XBee ont été utilisés auparavant, il a fallu les restaurer à l'état usine avec la commande '''ATRE'''.&lt;br /&gt;
&lt;br /&gt;
Si on souhaite que des XBee puissent s'envoyer des données il faut qu'ils soient sur le même canal (commande '''ATCH''') et aient le même PAN ID (commande '''ATID'''). Notre PAN ID sera '''BEE6''' et le canal sera celui par défaut '''C'''.&lt;br /&gt;
&lt;br /&gt;
Ensuite il faut leur donner une adresse de destination ('''ATDH''' &amp;amp; '''ATDL''') qui sera l'adresse broadcast, pour ce faire on entre &lt;br /&gt;
 ATDH=0000&lt;br /&gt;
 ATDL=FFFF&lt;br /&gt;
&lt;br /&gt;
Enfin '''ATMY''' représente l'ID du XBee, notre premier XBee aura comme ID 5000 et le second 5001.&lt;br /&gt;
&lt;br /&gt;
N'oublions pas de sauvegarder les paramètres avec '''ATWR'''.&lt;br /&gt;
&lt;br /&gt;
On vérifie que tout a bien été pris en compte :&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;&lt;br /&gt;
+++OK&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATID&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
BEE6&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
C&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
0&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDL&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
FFFF&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATMY&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
5000&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCN&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Puis on fait de même avec le deuxième XBee (ID 5001).&lt;br /&gt;
&lt;br /&gt;
Voilà, lorsque on envoi des caractères par liaison série sur 5000, la LED '''Tx''' de 5000 s'allume et la Led '''Rx''' de 5001 s'allume elle aussi. Cela signifie que l'envoi de donnée par onde radio s'effectue correctement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que les XBee émettent et reçoivent, on peut commencer les mesures avec notre SDR. Mais avant cela il va falloir bien se familiariser avec le logiciel GNU RADIO qui est assez difficile à prendre en main.&lt;br /&gt;
&lt;br /&gt;
=== Première prise en main du logiciel GNURADIO ===&lt;br /&gt;
&lt;br /&gt;
Installation de GNU radio avec les fonctions + drivers pour HackRF : &lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install gqrx gnuradio gr-osmosdr hackrf &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le bloc Osmocom Source sert de &amp;quot;passerelle&amp;quot; entre le logiciel et la SDR, il permet de transmettre les informations récupérées par le HackRF afin qu'on puisse les traiter avec d'autres bloc de fonctions.&lt;br /&gt;
&lt;br /&gt;
Si on veut pouvoir récuperer les données il faut passer l'argument ''hackrf=0'' dans la box périphérique du bloc Osmocom.&lt;br /&gt;
&lt;br /&gt;
Ci-dessous on peut voir le spectre environnant entre 2.44GHz et 2.460GHz grâce au bloc WX GUI FFT Sink.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ScreenGnuRadio.png|Interface de GNURadio]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous a permis d'effectuer notre première expérience. L'utilisation des deux Xbees nous a permis d'observer l'impact des Xbee sur le champ électromagéntique environnant.&lt;br /&gt;
&lt;br /&gt;
Si on analyse le spectre environnant grâce au module FFT de GNU Radio, lorsque les Xbee communiquent entre eux, on peut apercevoir un pic caractéristique propre.&lt;br /&gt;
En effet, lors de l'emission d'un message sur le port série, on a un pic qui se dégage du spectre d'amplitude -20dBm. Ce pic est caractéristique au canal de communication choisi et configuré sur le Xbee.&lt;br /&gt;
Néanmoins, le signal est perturbé par le bruit environnant. &lt;br /&gt;
L'expérience étant effectuée au sein de l'école, les signaux Wi-Fi perturberont l'étude.&lt;br /&gt;
Il faut noter que la norme IEEE 802.11 impose au Wi-Fi l'utilisation d'une bande passante s'étalant de 2.4 GHz à 2.5 GHz.&lt;br /&gt;
&lt;br /&gt;
La bande passante des modules Zigbee se décomposent en 16 canaux, allant de 2400 MHz à 2480 MHz par pas de 5 MHz.&lt;br /&gt;
&lt;br /&gt;
Le canal ici utilisé est le canal 13 (3ème canal) de fréquence 2415 MHz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- [[Fichier:Channel135001.png|thumb|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Fichier:channel135000.png|thumb|none|400 px]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:XBeeCh13.png|Spectre de l'environnement autour du XBee|thumb|400 px]][[Fichier:XBeeCh13SND.png|Lors de l'envoi de données au XBee voisin|thumb|none|400 px]]&lt;br /&gt;
&lt;br /&gt;
On peut observer un pic de puissance lors de l'envoi d'une donnée en série à la fréquence 2.415 GHz.&lt;br /&gt;
Il nous est maintenant nécessaire d'analyser de plus près les signaux et leurs fréquence centrale dans la bande perçue au dessus de -20dB.&lt;br /&gt;
&lt;br /&gt;
On réeffectuera une expérience en zone isolée des signaux parasites.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous nous sommes principalement à la tâche de recherche afin de mieux comprendre les signaux émis par le Xbee.&lt;br /&gt;
&lt;br /&gt;
En somme, nous étions confrontés à de nombreuses interrogations. Le fonctionnement du Xbee étant assez simple et la sécurité du protocole Zigbee étant moindre, y a t-il possibilité de démoduler le signal émis afin de développper nos études ?&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&lt;br /&gt;
On décide d'automatiser le processus d'envoie sur le port série des données vers le Xbee.&lt;br /&gt;
En effet, le fait que des données soient envoyées sur un temps t ne nous permet de voir correctement le signal. Il nous est nécessaire d'approcher le moment de balayage avec l'envoi des données.&lt;br /&gt;
&lt;br /&gt;
Un script python est réalisé afin d'envoyer en continue les données.&lt;br /&gt;
En outre, le script permet de changer toutes les dix secondes de canal d'envoi.&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;/div&gt;</summary>
		<author><name>Amoreau</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=70415</id>
		<title>IMA4 2018/2019 P70</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=70415"/>
				<updated>2019-03-06T14:17:33Z</updated>
		
		<summary type="html">&lt;p&gt;Amoreau : /* Réalisation du Projet */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;font-size: 30px; width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;Impact du matériel et du logiciel sur le champ électromagnétique&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Projet'''&amp;lt;/ins&amp;gt; : Impact du matériel et du logiciel sur le rayonnement électromagnétique&lt;br /&gt;
&lt;br /&gt;
''Nous proposons d'évaluer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et la consommation électrique.''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Etudiants'''&amp;lt;/ins&amp;gt; : Souheib KHINACHE et Antoine MOREAU&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Encadrants'''&amp;lt;/ins&amp;gt; : Alexandre BOE, Xavier REDON et Thomas VANTROYS&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'internet des objets est un marché en plein essor. La communication entre les différents objets connectés crée un nuage de signaux autour d'eux. Ces derniers sont vus par les utilisateurs comme des boîtes noires : le fonctionnement se fait sans en connaître les composants matériels et logiciels. &lt;br /&gt;
Néanmoins, ces objets, de par leurs propriétés électroniques, créent des fuites électromagnétiques impactant le champ environnant. &lt;br /&gt;
&lt;br /&gt;
Bien qu'ils peuvent porter à débat sur l'impact sur la santé, ces signaux peuvent représenter de réelles sources d'informations sur l'aspect matériel et applicatif de l'objet.&lt;br /&gt;
&lt;br /&gt;
Il serait donc intéressant d'avoir idée générale sur le fonctionnement du système en interprétant les ondes électromagnétiques émises par ce système.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Les principaux objectifs de ce projet seront donc de mesurer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et sur la consommation électrique.&lt;br /&gt;
Pour cela, l'outil potentiel avec lequel nous pourrions travailler serait une sonde de champ électromagnétique afin d'établir des mesures. &lt;br /&gt;
Cependant, nous pourrions concevoir notre propre système de capture et d'interprétation à partir d'une antenne, de filtres de fréquences et d'un microcontrôleur (on commencera par un ATMega328P). Il sera nécessaire de prendre en compte les perturbations issues de notre appareil de mesure et d'en tenir compte.&lt;br /&gt;
&lt;br /&gt;
On effectuera ainsi plusieurs expérimentations sur différents supports d'étude :&lt;br /&gt;
*l'aspect &amp;quot;Hardware&amp;quot; en étudiant différents modèles pour un même type de shield  &lt;br /&gt;
*l'aspect calculatoire du matériel en se basant sur l'impact des microcontrôleurs en fonction du modèle (ATMega328P et ATMega2560)&lt;br /&gt;
*l'aspect &amp;quot;Software&amp;quot;, en étudiant l'impact du logiciel et du firmware d'un même composant (différents firmwares pour un même shield Wi-Fi)&lt;br /&gt;
*l'aspect puissance des composants électroniques de gestion de puissance (ponts, hacheurs, onduleurs...).&lt;br /&gt;
&lt;br /&gt;
L'étude des différentes informations se fera par traitement des signaux électromagnétiques et des spectres. &lt;br /&gt;
Afin de mieux appréhender le problème, il nous est nécessaire de comprendre les phénomènes physiques issus de la notion d'électromagnétisme.&lt;br /&gt;
&lt;br /&gt;
Ces études mèneront à une étape plus complexe : l'interprétation des signaux. En effet, l'un des objectifs de ce projet est de comprendre du mieux possible le fonctionnement d'un système sans y avoir accès directement, et donc dans ce contexte &amp;quot;traduire&amp;quot; un ensemble de signaux électromagnétiques.&lt;br /&gt;
&lt;br /&gt;
On pourra en outre apporter un aspect visuel à l'étude en rajoutant une interface informatique.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
Bien qu'aux yeux de nombreuses personnes le bruit électromagnétique créé par les équipements électroniques du quotidien peut porter à controverse (débats concernant l'impact sur la santé par exemple), il peut être une source d'informations. &lt;br /&gt;
De nos jours, les ondes électromagnétiques restent un vaste champ d'étude, sujettes à de nombreuses thèses et recherches au sein des laboratoires.&lt;br /&gt;
&lt;br /&gt;
On peut prendre l'exemple de [https://www.eurekalert.org/pub_releases/2015-01/giot-rwt010715.php Milos Prvulovic], professeur à l'Institut Technologique de Géorgie, ayant simulé un contexte de cybercafé, dans lequel il place une antenne magnétique, un ordinateur portable cible et un ordinateur &amp;quot;espion&amp;quot;. Il réussit, grâce aux signaux EM émis par l'impulsion de l'appui des touches clavier à capter un message écrit par un ordinateur cible. &lt;br /&gt;
&lt;br /&gt;
Néanmoins, dans le quotidien, l'utilisation des sondes électromagnétiques se fait pour l'étude énergétique d'un système électronique (fuites électromagnétiques anormales, preuves d'une anomalie...) afin de respecter certaines normes législatives. Le code du travail par exemple réglemente et définit des valeurs seuils par le biais des articles R. 4453-3 et R. 4453-4.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
'''NBM-520 de NARDA STS'''&lt;br /&gt;
[[Fichier: NBM_TS.png|thumb|300px|NBM-TS, application des appareils NBM]]&lt;br /&gt;
NARDA STS est une entreprise qui fournit des outils de mesure. Elle met à disposition aux professionnels des sondes électromagnétiques.&lt;br /&gt;
La NBM-520 est un appareil de la franchise, mesurant le champ électrique et magnétique. Elle donne des valeurs précises du champ électromagnétique ambiant sur une large bande. Elle propose différentes sondes modulables permettant une souplesse au niveau de l'étude en fonction des besoins, avec des sondes pouvant étudier des signaux de fréquence de 100kHz à 6GHz ou même de 300kHz à 50GHz (en fonction de la sonde choisie).&lt;br /&gt;
&lt;br /&gt;
En outre, le dispositif peut se connecter en USB sur PC afin d'envoyer les données capturées et d'en faire une étude. Le dispositif propose un logiciel d'étude, NBM-TS, permettant d'observer du champ en fonction du temps, de la fréquence, de la position...&lt;br /&gt;
&lt;br /&gt;
L'équipement est utilisé par l'ANF (l'Agence Nationale des Fréquences, agence gérant l'ensemble des normes autour des radiofréquences), et est donc un gage de qualité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Avantages :''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Large bande de fréquence&lt;br /&gt;
* Matériel solide&lt;br /&gt;
* Application fonctionnelle permettant l'étude et gestion des données&lt;br /&gt;
* Possibilité d'étudier séparément champ électrique et magnétique&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Inconvénients:''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Impossible d'étudier les basses fréquences (appareils sous tension, bobinages...)&lt;br /&gt;
* Prix élevé : à partir de 3100€&lt;br /&gt;
* La cible de ce produit est surtout les professionels&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
'''Une pita.'''&lt;br /&gt;
&lt;br /&gt;
''Comment mon pain à pita vole ta clé RSA ?''&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Pita.jpg|200px|thumb|left|Une pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Des chercheurs israéliens ont découvert un moyen de capturer des clés de cryptage RSA, réputées comme inviolables, par le biais d'une pita... du moins avec un dispositif suffisamment petit pour être caché dans un pain à pita. &lt;br /&gt;
Le dispositif, renommé PITA pour Portable Instrument for Trace Acquisition a la particularité de capturer les ondes radio électromagnétiques émanantes d'un PC, qu'il soit connecté à un réseau ou pas.&lt;br /&gt;
Les différentes opérations du processeur sont identifiées en distinguant les différents modèles de l'activité radio sur le spectre EM.&lt;br /&gt;
&lt;br /&gt;
Bien que la capture des clés RSA a été faite dans des conditions particulières (modification du processeur de l'ordinateur cible), il est néanmoins possible, selon les chercheurs, d'identifier quelle type d'activité est exercée par l'ordinateur ainsi que son état.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PITA.jpg|300px|thumb|right|Un dessous de pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'un des points importants concernant le dispositif est son coût : moins de 300 euros.&lt;br /&gt;
L'appareil dispose :&lt;br /&gt;
* d'un PC portatif (PC-on-a-stick) ''Rikomagic MK802 IV'',&lt;br /&gt;
* d'un recepteur radio SDR ''FUNcube Dongle Pro+''&lt;br /&gt;
* d'une antenne radio&lt;br /&gt;
* d'une batterie&lt;br /&gt;
* d'une antenne WiFi&lt;br /&gt;
* d'une carte MicroSD&lt;br /&gt;
* d'un adapteur d'antenne&lt;br /&gt;
* et d'une '''pita'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le dispositif aurait une portée de 50cm. &lt;br /&gt;
Les chercheurs israéliens ont collaboré avec GNU Private Guard (logiciel de cryptage asymétrique) afin de protéger contre ces attaques les clés de cryptage.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
&lt;br /&gt;
''Scénario 1''&lt;br /&gt;
&lt;br /&gt;
Gérard a toujours le flair pour les bonnes affaires. Il a acheté une centaine de clés WiFi à un prix dérisoire sur AloXpresso afin de faire du profit à la revente. Le vendeur lui garantit que toutes les clés fonctionnent correctement. Gérard veut vérifier. Après vérification, 99 des clés sur 100 fonctionnent comme prévu. Gérard aimerait être sûr du disfonctionnement, mais Gérard n'est pas une pointure en informatique. &lt;br /&gt;
&lt;br /&gt;
Coup de génie ! Il se rappelle qu'il dispose d'un dispositif qui capte les ondes EM et les interprète directement. C'est le moment de tester ça. Il remarque une anomalie sur le spectre.&lt;br /&gt;
Il décide de contacter le revendeur pour lui signaler un disfonctionnement sur l'une des clé. &lt;br /&gt;
Pas de soucis. Le vendeur, étant bon prince, lui envoie une autre clé USB et lui fait une ristourne.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Scénario 2''&lt;br /&gt;
&lt;br /&gt;
La police fait une perquisition chez un individu soupçonné de graves délits. Cela fait plusieurs mois que la brigade criminelle prépare l'intervention, et une fois sur les lieux ils arrêtent le soupçonné malfaiteur.&lt;br /&gt;
Cependant avant de repartir, elle veut faire l'acquisition d'un maximum de preuves. Elle veut alors prendre l'essentiel des objets, dont certains objets éléctroniques connectés de l'individu dont elle pourra extraire les informations qui serviront à le faire tomber.&lt;br /&gt;
&lt;br /&gt;
Par chance, elle dispose d'un petit outil qui scannera les signatures alentours des objets connectés, comme des téléphones cachés, clés USB wifi dissimulées dans le décor etc..&lt;br /&gt;
Et si le suspect avait modifié malignement un objet connecté banal pour l'utiliser autrement à ses fins, la police le découvrirait car elle possède une base de données de toutes les signatures spectrales des objets connectés sur le marché et celle de l'objet modifié ne collerait pas avec celle de la base de données.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
&lt;br /&gt;
'''Comment étudier les signaux malgré les perturbations électromagnétiques ambiants et les faibles signaux des µC ?'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les signaux électromagnétiques des microcontrôleurs ou d'autres composants peuvent être faibles. Il y a une possibilité pour palier à ce problème, c'est de capter les signaux depuis une antenne émettrice que l'on rajoute à l'objet d'étude. &lt;br /&gt;
Nous utiliserons un SDR (Software Defined-Radio) afin de capter les ondes radio et les étudier directement sur PC. Le filtrage s'effectuera ainsi de manière numérique. Plusieurs tests seront effectués pour le même objet à étudier (quand on parle d'objet, on évoque un ensemble de plusieurs composants, comme par exemple une alimentation, un micro-contrôleur et une antenne). Ainsi, de manière statistique, nous pourrons en déduire un pattern récurrent pour chaque expérience en les effectuant dans différents environnements (pourquoi pas une chambre anachoïque). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons &lt;br /&gt;
* Capter le signal émis par un objet connecté le plus précisément possible&lt;br /&gt;
&lt;br /&gt;
* Concevoir nos propres objets connectés tous différents mais basés sur un même modèle&lt;br /&gt;
&lt;br /&gt;
* Interpréter les spectrogrammes, faire une étude statistique des signaux émis par nos différents objets et en tirer des conclusions&lt;br /&gt;
&lt;br /&gt;
* Répertorier dans une base de données les signatures de nos objets , voire de quelques objets disponibles sur le marché&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix logiciel :&lt;br /&gt;
&lt;br /&gt;
- La distribution Linux Pentoo ou Kali pour traiter les signaux avec GNU RADIO (Suite logicielle dédiée à l’implémentation de radios logicielles et de systèmes de traitement du signal).&lt;br /&gt;
&lt;br /&gt;
- FemtoOS pour l'OS des ATMEGA328P et ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix Matériel : &lt;br /&gt;
&lt;br /&gt;
- Plusieurs modules radios émetteurs &lt;br /&gt;
&lt;br /&gt;
- Plusieurs microcontrôleurs ATMEGA328P et un ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
- Des alimentations identiques pour chaque PCB&lt;br /&gt;
&lt;br /&gt;
- Un HackRF pour la réception des signaux&lt;br /&gt;
&lt;br /&gt;
- Une antenne 50 Ohm pour le HackRF [https://www.passion-radio.fr/accessoires-sdr/antenne-ant500-74.html]&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous devons préparer tout le matériel qui servira à faire nos tests. C'est à dire concevoir :&lt;br /&gt;
&lt;br /&gt;
- Un ensemble SDR/PC qui traitera le signal reçu avec GNU RADIO.&lt;br /&gt;
&lt;br /&gt;
- Une multitude de PCB qui seront nos objets connectés (Sur chacun d'entre eux on trouvera au minimum une antenne radio, un microcontrôleur et une alimentation)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de récupérer une &amp;quot;signature&amp;quot; d'un de nos objets , il faudra faire plus de 50 analyses spectrales pour conclure statistiquement sur une bonne signature qui caractérisera l'objet.&lt;br /&gt;
&lt;br /&gt;
Nous devons donc dans un second temps: &lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques mais qui ont un '''firmware''' différent.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques qui ont pour seule différence le '''microcontrôleur'''.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques dont seul le '''PCB''' diffère.&lt;br /&gt;
&lt;br /&gt;
Grâce à tous ces tests , nous pourrons conclure et voir l'impact qu'à le matériel ou le logiciel sur la signature d'un objet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enfin si les délais nous le permettent, nous pourrons réaliser un software qui cartographiera nos objets connectés dans la pièce grâce à la puissance de la signature reçue (Ce qui devrait être réalisable puisqu'à ce stade nous aurons une base de donnée des signatures).&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
|3&lt;br /&gt;
|8&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Recherches&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Prise en main de GnuRadio&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Configuration Xbee&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|2&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
[[Fichier:HackrfOne.jpeg|200px|thumb|right|Le HackRF One]]&lt;br /&gt;
Durant cette semaine, nous avons continué nos recherches notamment sur le moyen de transmission de nos objets connectés. Nous avons confirmé notre choix de notre SDR : Monsieur Boé nous a confirmé que des HackRF seraient disponibles dans les laboratoires et qu'il pourrait nous en prêter un. On disposera donc d'une antenne puissante pour traiter les signaux émis par nos objets communiquants. &lt;br /&gt;
&lt;br /&gt;
Il faudra coupler notre HackRF avec un logiciel appelé GNU RADIO qui est un logiciel très complet ( Pour information : la NASA a utilisé GNU RADIO afin de rétablir le contact avec une sonde spatiale abandonnée ). Afin de faire tourner ce logiciel libre, nous aurons besoin de la distribution Kali Linux, ex Backtrack.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Choix des émetteurs/récepteurs === &lt;br /&gt;
&lt;br /&gt;
Nous avons décidé que nos objets connectés communiqueront dans deux '''bandes de fréquences ISM''', l'une à '''900 MHz''' grâce à des modules Digi Xbee et l'autre à '''2,4 GHz''' par le moyen de modules émetteurs Bluetooth. On rappellera que les Digi Xbee et les émetteurs/récepteurs Bluetooth seront pilotés par des ATMEGA 2560.&lt;br /&gt;
&lt;br /&gt;
Les Xbee ne communiqueront pas entre eux et émettront en continu les mêmes données car ils le peuvent, alors que les émetteurs/récepteurs Bluetooth devront s'échanger des données si on veut pouvoir observer un quelconque signal autour de la fréquence de leurs porteuses. &lt;br /&gt;
&lt;br /&gt;
On voudra observer premièrement, si avec deux objets dans les '''mêmes''' conditions (donc même µc et même émetteur), on peut ou non '''distinguer une différence'''. Ceci est fondamental pour la suite des expériences, puisque si les deux émettent à la même fréquence, on pourra faire varier plusieurs paramètres afin de trouver '''des clés''' (des signes) qui pourraient aider à l'identification du matériel.&lt;br /&gt;
&lt;br /&gt;
Ces clés représentent différents facteurs potentiels d'identification du signal (le rapport signal-bruit en fonction de la distance par exemple...).&lt;br /&gt;
&lt;br /&gt;
''On planifie alors pour la semaine suivante de réussir à faire émettre, en utilisant simplement des breadboards pour commencer, nos Xbee et modules BT et observer quelque chose grâce à notre SDR.''&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration des modules XBee ===&lt;br /&gt;
&lt;br /&gt;
Nous avons configuré deux XBee afin qu'ils puissent communiquer entre eux : &lt;br /&gt;
&lt;br /&gt;
Les modules XBee ont été montés sur des platines d'interface USB/série de manière à ce qu'on puisse les paramétrer via le programme de contrôle ''minicom''. &lt;br /&gt;
&lt;br /&gt;
Dans le doute, on supposera que les XBee communiquent à 9600 Baud. On exécute la commande suivante : &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;minicom -b 9600 -D /dev/ttyUSB0&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
On active l'echo local dans minicom, afin de pouvoir observer ce qui a été envoyé par liaison série au XBee ('''CTRL+A''' puis '''E''').&lt;br /&gt;
&lt;br /&gt;
Pour commencer le paramètrage il faut taper ''' +++ ''' rapidement. Le XBee nous répond OK, cela veut dire que nous sommes dans le mode configuration et que nous pouvons utiliser les commandes '''AT'''. (Redirection vers la liste des commandes AT XBee [https://cdn.sparkfun.com/assets/resources/2/9/22AT_Commands.pdf]).&lt;br /&gt;
&lt;br /&gt;
Comme nos XBee ont été utilisés auparavant, il a fallu les restaurer à l'état usine avec la commande '''ATRE'''.&lt;br /&gt;
&lt;br /&gt;
Si on souhaite que des XBee puissent s'envoyer des données il faut qu'ils soient sur le même canal (commande '''ATCH''') et aient le même PAN ID (commande '''ATID'''). Notre PAN ID sera '''BEE6''' et le canal sera celui par défaut '''C'''.&lt;br /&gt;
&lt;br /&gt;
Ensuite il faut leur donner une adresse de destination ('''ATDH''' &amp;amp; '''ATDL''') qui sera l'adresse broadcast, pour ce faire on entre &lt;br /&gt;
 ATDH=0000&lt;br /&gt;
 ATDL=FFFF&lt;br /&gt;
&lt;br /&gt;
Enfin '''ATMY''' représente l'ID du XBee, notre premier XBee aura comme ID 5000 et le second 5001.&lt;br /&gt;
&lt;br /&gt;
N'oublions pas de sauvegarder les paramètres avec '''ATWR'''.&lt;br /&gt;
&lt;br /&gt;
On vérifie que tout a bien été pris en compte :&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;&lt;br /&gt;
+++OK&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATID&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
BEE6&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
C&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
0&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDL&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
FFFF&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATMY&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
5000&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCN&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Puis on fait de même avec le deuxième XBee (ID 5001).&lt;br /&gt;
&lt;br /&gt;
Voilà, lorsque on envoi des caractères par liaison série sur 5000, la LED '''Tx''' de 5000 s'allume et la Led '''Rx''' de 5001 s'allume elle aussi. Cela signifie que l'envoi de donnée par onde radio s'effectue correctement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que les XBee émettent et reçoivent, on peut commencer les mesures avec notre SDR. Mais avant cela il va falloir bien se familiariser avec le logiciel GNU RADIO qui est assez difficile à prendre en main.&lt;br /&gt;
&lt;br /&gt;
=== Première prise en main du logiciel GNURADIO ===&lt;br /&gt;
&lt;br /&gt;
Installation de GNU radio avec les fonctions + drivers pour HackRF : &lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install gqrx gnuradio gr-osmosdr hackrf &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le bloc Osmocom Source sert de &amp;quot;passerelle&amp;quot; entre le logiciel et la SDR, il permet de transmettre les informations récupérées par le HackRF afin qu'on puisse les traiter avec d'autres bloc de fonctions.&lt;br /&gt;
&lt;br /&gt;
Si on veut pouvoir récuperer les données il faut passer l'argument ''hackrf=0'' dans la box périphérique du bloc Osmocom.&lt;br /&gt;
&lt;br /&gt;
Ci-dessous on peut voir le spectre environnant entre 2.44GHz et 2.460GHz grâce au bloc WX GUI FFT Sink.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ScreenGnuRadio.png|Interface de GNURadio]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous a permis d'effectuer notre première expérience. L'utilisation des deux Xbees nous a permis d'observer l'impact des Xbee sur le champ électromagéntique environnant.&lt;br /&gt;
&lt;br /&gt;
Si on analyse le spectre environnant grâce au module FFT de GNU Radio, lorsque les Xbee communiquent entre eux, on peut apercevoir un pic caractéristique propre.&lt;br /&gt;
En effet, lors de l'emission d'un message sur le port série, on a un pic qui se dégage du spectre d'amplitude -20dBm. Ce pic est caractéristique au canal de communication choisi et configuré sur le Xbee.&lt;br /&gt;
Néanmoins, le signal est perturbé par le bruit environnant. &lt;br /&gt;
L'expérience étant effectuée au sein de l'école, les signaux Wi-Fi perturberont l'étude.&lt;br /&gt;
Il faut noter que la norme IEEE 802.11 impose au Wi-Fi l'utilisation d'une bande passante s'étalant de 2.4 GHz à 2.5 GHz.&lt;br /&gt;
&lt;br /&gt;
La bande passante des modules Zigbee se décomposent en 16 canaux, allant de 2400 MHz à 2480 MHz par pas de 5 MHz.&lt;br /&gt;
&lt;br /&gt;
Le canal ici utilisé est le canal 13 (3ème canal) de fréquence 2415 MHz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- [[Fichier:Channel135001.png|thumb|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Fichier:channel135000.png|thumb|none|400 px]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:XBeeCh13.png|Spectre de l'environnement autour du XBee|thumb|400 px]][[Fichier:XBeeCh13SND.png|Lors de l'envoi de données au XBee voisin|thumb|none|400 px]]&lt;br /&gt;
&lt;br /&gt;
On peut observer un pic de puissance lors de l'envoi d'une donnée en série à la fréquence 2.415 GHz.&lt;br /&gt;
Il nous est maintenant nécessaire d'analyser de plus près les signaux et leurs fréquence centrale dans la bande perçue au dessus de -20dB.&lt;br /&gt;
&lt;br /&gt;
On réeffectuera une expérience en zone isolée des signaux parasites.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous nous sommes principalement à la tâche de recherche afin de mieux comprendre les signaux émis par le Xbee.&lt;br /&gt;
&lt;br /&gt;
En somme, nous étions confrontés à de nombreuses interrogations. Le fonctionnement du Xbee étant assez simple et la sécurité du protocole Zigbee étant moindre, y a t-il possibilité de démoduler le signal émis afin de développper nos études ?&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&lt;br /&gt;
On décide d'automatiser le processus d'envoie sur le port série des données vers le Xbee.&lt;br /&gt;
En effet, le fait que des données soient envoyées sur un temps t ne nous permet de voir correctement le signal. Il nous est nécessaire d'approcher le moment de balayage avec l'envoi des données.&lt;br /&gt;
&lt;br /&gt;
Un script python est réalisé afin d'envoyer en continue les données.&lt;br /&gt;
En outre, le script permet de changer toutes les dix secondes de canal d'envoi.&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;/div&gt;</summary>
		<author><name>Amoreau</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=70413</id>
		<title>IMA4 2018/2019 P70</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=70413"/>
				<updated>2019-03-06T14:17:17Z</updated>
		
		<summary type="html">&lt;p&gt;Amoreau : /* Feuille d'heures */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;font-size: 30px; width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;Impact du matériel et du logiciel sur le champ électromagnétique&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Projet'''&amp;lt;/ins&amp;gt; : Impact du matériel et du logiciel sur le rayonnement électromagnétique&lt;br /&gt;
&lt;br /&gt;
''Nous proposons d'évaluer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et la consommation électrique.''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Etudiants'''&amp;lt;/ins&amp;gt; : Souheib KHINACHE et Antoine MOREAU&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Encadrants'''&amp;lt;/ins&amp;gt; : Alexandre BOE, Xavier REDON et Thomas VANTROYS&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'internet des objets est un marché en plein essor. La communication entre les différents objets connectés crée un nuage de signaux autour d'eux. Ces derniers sont vus par les utilisateurs comme des boîtes noires : le fonctionnement se fait sans en connaître les composants matériels et logiciels. &lt;br /&gt;
Néanmoins, ces objets, de par leurs propriétés électroniques, créent des fuites électromagnétiques impactant le champ environnant. &lt;br /&gt;
&lt;br /&gt;
Bien qu'ils peuvent porter à débat sur l'impact sur la santé, ces signaux peuvent représenter de réelles sources d'informations sur l'aspect matériel et applicatif de l'objet.&lt;br /&gt;
&lt;br /&gt;
Il serait donc intéressant d'avoir idée générale sur le fonctionnement du système en interprétant les ondes électromagnétiques émises par ce système.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Les principaux objectifs de ce projet seront donc de mesurer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et sur la consommation électrique.&lt;br /&gt;
Pour cela, l'outil potentiel avec lequel nous pourrions travailler serait une sonde de champ électromagnétique afin d'établir des mesures. &lt;br /&gt;
Cependant, nous pourrions concevoir notre propre système de capture et d'interprétation à partir d'une antenne, de filtres de fréquences et d'un microcontrôleur (on commencera par un ATMega328P). Il sera nécessaire de prendre en compte les perturbations issues de notre appareil de mesure et d'en tenir compte.&lt;br /&gt;
&lt;br /&gt;
On effectuera ainsi plusieurs expérimentations sur différents supports d'étude :&lt;br /&gt;
*l'aspect &amp;quot;Hardware&amp;quot; en étudiant différents modèles pour un même type de shield  &lt;br /&gt;
*l'aspect calculatoire du matériel en se basant sur l'impact des microcontrôleurs en fonction du modèle (ATMega328P et ATMega2560)&lt;br /&gt;
*l'aspect &amp;quot;Software&amp;quot;, en étudiant l'impact du logiciel et du firmware d'un même composant (différents firmwares pour un même shield Wi-Fi)&lt;br /&gt;
*l'aspect puissance des composants électroniques de gestion de puissance (ponts, hacheurs, onduleurs...).&lt;br /&gt;
&lt;br /&gt;
L'étude des différentes informations se fera par traitement des signaux électromagnétiques et des spectres. &lt;br /&gt;
Afin de mieux appréhender le problème, il nous est nécessaire de comprendre les phénomènes physiques issus de la notion d'électromagnétisme.&lt;br /&gt;
&lt;br /&gt;
Ces études mèneront à une étape plus complexe : l'interprétation des signaux. En effet, l'un des objectifs de ce projet est de comprendre du mieux possible le fonctionnement d'un système sans y avoir accès directement, et donc dans ce contexte &amp;quot;traduire&amp;quot; un ensemble de signaux électromagnétiques.&lt;br /&gt;
&lt;br /&gt;
On pourra en outre apporter un aspect visuel à l'étude en rajoutant une interface informatique.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
Bien qu'aux yeux de nombreuses personnes le bruit électromagnétique créé par les équipements électroniques du quotidien peut porter à controverse (débats concernant l'impact sur la santé par exemple), il peut être une source d'informations. &lt;br /&gt;
De nos jours, les ondes électromagnétiques restent un vaste champ d'étude, sujettes à de nombreuses thèses et recherches au sein des laboratoires.&lt;br /&gt;
&lt;br /&gt;
On peut prendre l'exemple de [https://www.eurekalert.org/pub_releases/2015-01/giot-rwt010715.php Milos Prvulovic], professeur à l'Institut Technologique de Géorgie, ayant simulé un contexte de cybercafé, dans lequel il place une antenne magnétique, un ordinateur portable cible et un ordinateur &amp;quot;espion&amp;quot;. Il réussit, grâce aux signaux EM émis par l'impulsion de l'appui des touches clavier à capter un message écrit par un ordinateur cible. &lt;br /&gt;
&lt;br /&gt;
Néanmoins, dans le quotidien, l'utilisation des sondes électromagnétiques se fait pour l'étude énergétique d'un système électronique (fuites électromagnétiques anormales, preuves d'une anomalie...) afin de respecter certaines normes législatives. Le code du travail par exemple réglemente et définit des valeurs seuils par le biais des articles R. 4453-3 et R. 4453-4.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
'''NBM-520 de NARDA STS'''&lt;br /&gt;
[[Fichier: NBM_TS.png|thumb|300px|NBM-TS, application des appareils NBM]]&lt;br /&gt;
NARDA STS est une entreprise qui fournit des outils de mesure. Elle met à disposition aux professionnels des sondes électromagnétiques.&lt;br /&gt;
La NBM-520 est un appareil de la franchise, mesurant le champ électrique et magnétique. Elle donne des valeurs précises du champ électromagnétique ambiant sur une large bande. Elle propose différentes sondes modulables permettant une souplesse au niveau de l'étude en fonction des besoins, avec des sondes pouvant étudier des signaux de fréquence de 100kHz à 6GHz ou même de 300kHz à 50GHz (en fonction de la sonde choisie).&lt;br /&gt;
&lt;br /&gt;
En outre, le dispositif peut se connecter en USB sur PC afin d'envoyer les données capturées et d'en faire une étude. Le dispositif propose un logiciel d'étude, NBM-TS, permettant d'observer du champ en fonction du temps, de la fréquence, de la position...&lt;br /&gt;
&lt;br /&gt;
L'équipement est utilisé par l'ANF (l'Agence Nationale des Fréquences, agence gérant l'ensemble des normes autour des radiofréquences), et est donc un gage de qualité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Avantages :''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Large bande de fréquence&lt;br /&gt;
* Matériel solide&lt;br /&gt;
* Application fonctionnelle permettant l'étude et gestion des données&lt;br /&gt;
* Possibilité d'étudier séparément champ électrique et magnétique&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Inconvénients:''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Impossible d'étudier les basses fréquences (appareils sous tension, bobinages...)&lt;br /&gt;
* Prix élevé : à partir de 3100€&lt;br /&gt;
* La cible de ce produit est surtout les professionels&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
'''Une pita.'''&lt;br /&gt;
&lt;br /&gt;
''Comment mon pain à pita vole ta clé RSA ?''&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Pita.jpg|200px|thumb|left|Une pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Des chercheurs israéliens ont découvert un moyen de capturer des clés de cryptage RSA, réputées comme inviolables, par le biais d'une pita... du moins avec un dispositif suffisamment petit pour être caché dans un pain à pita. &lt;br /&gt;
Le dispositif, renommé PITA pour Portable Instrument for Trace Acquisition a la particularité de capturer les ondes radio électromagnétiques émanantes d'un PC, qu'il soit connecté à un réseau ou pas.&lt;br /&gt;
Les différentes opérations du processeur sont identifiées en distinguant les différents modèles de l'activité radio sur le spectre EM.&lt;br /&gt;
&lt;br /&gt;
Bien que la capture des clés RSA a été faite dans des conditions particulières (modification du processeur de l'ordinateur cible), il est néanmoins possible, selon les chercheurs, d'identifier quelle type d'activité est exercée par l'ordinateur ainsi que son état.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PITA.jpg|300px|thumb|right|Un dessous de pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'un des points importants concernant le dispositif est son coût : moins de 300 euros.&lt;br /&gt;
L'appareil dispose :&lt;br /&gt;
* d'un PC portatif (PC-on-a-stick) ''Rikomagic MK802 IV'',&lt;br /&gt;
* d'un recepteur radio SDR ''FUNcube Dongle Pro+''&lt;br /&gt;
* d'une antenne radio&lt;br /&gt;
* d'une batterie&lt;br /&gt;
* d'une antenne WiFi&lt;br /&gt;
* d'une carte MicroSD&lt;br /&gt;
* d'un adapteur d'antenne&lt;br /&gt;
* et d'une '''pita'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le dispositif aurait une portée de 50cm. &lt;br /&gt;
Les chercheurs israéliens ont collaboré avec GNU Private Guard (logiciel de cryptage asymétrique) afin de protéger contre ces attaques les clés de cryptage.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
&lt;br /&gt;
''Scénario 1''&lt;br /&gt;
&lt;br /&gt;
Gérard a toujours le flair pour les bonnes affaires. Il a acheté une centaine de clés WiFi à un prix dérisoire sur AloXpresso afin de faire du profit à la revente. Le vendeur lui garantit que toutes les clés fonctionnent correctement. Gérard veut vérifier. Après vérification, 99 des clés sur 100 fonctionnent comme prévu. Gérard aimerait être sûr du disfonctionnement, mais Gérard n'est pas une pointure en informatique. &lt;br /&gt;
&lt;br /&gt;
Coup de génie ! Il se rappelle qu'il dispose d'un dispositif qui capte les ondes EM et les interprète directement. C'est le moment de tester ça. Il remarque une anomalie sur le spectre.&lt;br /&gt;
Il décide de contacter le revendeur pour lui signaler un disfonctionnement sur l'une des clé. &lt;br /&gt;
Pas de soucis. Le vendeur, étant bon prince, lui envoie une autre clé USB et lui fait une ristourne.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Scénario 2''&lt;br /&gt;
&lt;br /&gt;
La police fait une perquisition chez un individu soupçonné de graves délits. Cela fait plusieurs mois que la brigade criminelle prépare l'intervention, et une fois sur les lieux ils arrêtent le soupçonné malfaiteur.&lt;br /&gt;
Cependant avant de repartir, elle veut faire l'acquisition d'un maximum de preuves. Elle veut alors prendre l'essentiel des objets, dont certains objets éléctroniques connectés de l'individu dont elle pourra extraire les informations qui serviront à le faire tomber.&lt;br /&gt;
&lt;br /&gt;
Par chance, elle dispose d'un petit outil qui scannera les signatures alentours des objets connectés, comme des téléphones cachés, clés USB wifi dissimulées dans le décor etc..&lt;br /&gt;
Et si le suspect avait modifié malignement un objet connecté banal pour l'utiliser autrement à ses fins, la police le découvrirait car elle possède une base de données de toutes les signatures spectrales des objets connectés sur le marché et celle de l'objet modifié ne collerait pas avec celle de la base de données.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
&lt;br /&gt;
'''Comment étudier les signaux malgré les perturbations électromagnétiques ambiants et les faibles signaux des µC ?'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les signaux électromagnétiques des microcontrôleurs ou d'autres composants peuvent être faibles. Il y a une possibilité pour palier à ce problème, c'est de capter les signaux depuis une antenne émettrice que l'on rajoute à l'objet d'étude. &lt;br /&gt;
Nous utiliserons un SDR (Software Defined-Radio) afin de capter les ondes radio et les étudier directement sur PC. Le filtrage s'effectuera ainsi de manière numérique. Plusieurs tests seront effectués pour le même objet à étudier (quand on parle d'objet, on évoque un ensemble de plusieurs composants, comme par exemple une alimentation, un micro-contrôleur et une antenne). Ainsi, de manière statistique, nous pourrons en déduire un pattern récurrent pour chaque expérience en les effectuant dans différents environnements (pourquoi pas une chambre anachoïque). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons &lt;br /&gt;
* Capter le signal émis par un objet connecté le plus précisément possible&lt;br /&gt;
&lt;br /&gt;
* Concevoir nos propres objets connectés tous différents mais basés sur un même modèle&lt;br /&gt;
&lt;br /&gt;
* Interpréter les spectrogrammes, faire une étude statistique des signaux émis par nos différents objets et en tirer des conclusions&lt;br /&gt;
&lt;br /&gt;
* Répertorier dans une base de données les signatures de nos objets , voire de quelques objets disponibles sur le marché&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix logiciel :&lt;br /&gt;
&lt;br /&gt;
- La distribution Linux Pentoo ou Kali pour traiter les signaux avec GNU RADIO (Suite logicielle dédiée à l’implémentation de radios logicielles et de systèmes de traitement du signal).&lt;br /&gt;
&lt;br /&gt;
- FemtoOS pour l'OS des ATMEGA328P et ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix Matériel : &lt;br /&gt;
&lt;br /&gt;
- Plusieurs modules radios émetteurs &lt;br /&gt;
&lt;br /&gt;
- Plusieurs microcontrôleurs ATMEGA328P et un ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
- Des alimentations identiques pour chaque PCB&lt;br /&gt;
&lt;br /&gt;
- Un HackRF pour la réception des signaux&lt;br /&gt;
&lt;br /&gt;
- Une antenne 50 Ohm pour le HackRF [https://www.passion-radio.fr/accessoires-sdr/antenne-ant500-74.html]&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous devons préparer tout le matériel qui servira à faire nos tests. C'est à dire concevoir :&lt;br /&gt;
&lt;br /&gt;
- Un ensemble SDR/PC qui traitera le signal reçu avec GNU RADIO.&lt;br /&gt;
&lt;br /&gt;
- Une multitude de PCB qui seront nos objets connectés (Sur chacun d'entre eux on trouvera au minimum une antenne radio, un microcontrôleur et une alimentation)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de récupérer une &amp;quot;signature&amp;quot; d'un de nos objets , il faudra faire plus de 50 analyses spectrales pour conclure statistiquement sur une bonne signature qui caractérisera l'objet.&lt;br /&gt;
&lt;br /&gt;
Nous devons donc dans un second temps: &lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques mais qui ont un '''firmware''' différent.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques qui ont pour seule différence le '''microcontrôleur'''.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques dont seul le '''PCB''' diffère.&lt;br /&gt;
&lt;br /&gt;
Grâce à tous ces tests , nous pourrons conclure et voir l'impact qu'à le matériel ou le logiciel sur la signature d'un objet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enfin si les délais nous le permettent, nous pourrons réaliser un software qui cartographiera nos objets connectés dans la pièce grâce à la puissance de la signature reçue (Ce qui devrait être réalisable puisqu'à ce stade nous aurons une base de donnée des signatures).&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
|3&lt;br /&gt;
|8&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Recherches&lt;br /&gt;
|1&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|3&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Prise en main de GnuRadio&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Configuration Xbee&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|2&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
[[Fichier:HackrfOne.jpeg|200px|thumb|right|Le HackRF One]]&lt;br /&gt;
Durant cette semaine, nous avons continué nos recherches notamment sur le moyen de transmission de nos objets connectés. Nous avons confirmé notre choix de notre SDR : Monsieur Boé nous a confirmé que des HackRF seraient disponibles dans les laboratoires et qu'il pourrait nous en prêter un. On disposera donc d'une antenne puissante pour traiter les signaux émis par nos objets communiquants. &lt;br /&gt;
&lt;br /&gt;
Il faudra coupler notre HackRF avec un logiciel appelé GNU RADIO qui est un logiciel très complet ( Pour information : la NASA a utilisé GNU RADIO afin de rétablir le contact avec une sonde spatiale abandonnée ). Afin de faire tourner ce logiciel libre, nous aurons besoin de la distribution Kali Linux, ex Backtrack.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Choix des émetteurs/récepteurs === &lt;br /&gt;
&lt;br /&gt;
Nous avons décidé que nos objets connectés communiqueront dans deux '''bandes de fréquences ISM''', l'une à '''900 MHz''' grâce à des modules Digi Xbee et l'autre à '''2,4 GHz''' par le moyen de modules émetteurs Bluetooth. On rappellera que les Digi Xbee et les émetteurs/récepteurs Bluetooth seront pilotés par des ATMEGA 2560.&lt;br /&gt;
&lt;br /&gt;
Les Xbee ne communiqueront pas entre eux et émettront en continu les mêmes données car ils le peuvent, alors que les émetteurs/récepteurs Bluetooth devront s'échanger des données si on veut pouvoir observer un quelconque signal autour de la fréquence de leurs porteuses. &lt;br /&gt;
&lt;br /&gt;
On voudra observer premièrement, si avec deux objets dans les '''mêmes''' conditions (donc même µc et même émetteur), on peut ou non '''distinguer une différence'''. Ceci est fondamental pour la suite des expériences, puisque si les deux émettent à la même fréquence, on pourra faire varier plusieurs paramètres afin de trouver '''des clés''' (des signes) qui pourraient aider à l'identification du matériel.&lt;br /&gt;
&lt;br /&gt;
Ces clés représentent différents facteurs potentiels d'identification du signal (le rapport signal-bruit en fonction de la distance par exemple...).&lt;br /&gt;
&lt;br /&gt;
''On planifie alors pour la semaine suivante de réussir à faire émettre, en utilisant simplement des breadboards pour commencer, nos Xbee et modules BT et observer quelque chose grâce à notre SDR.''&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration des modules XBee ===&lt;br /&gt;
&lt;br /&gt;
Nous avons configuré deux XBee afin qu'ils puissent communiquer entre eux : &lt;br /&gt;
&lt;br /&gt;
Les modules XBee ont été montés sur des platines d'interface USB/série de manière à ce qu'on puisse les paramétrer via le programme de contrôle ''minicom''. &lt;br /&gt;
&lt;br /&gt;
Dans le doute, on supposera que les XBee communiquent à 9600 Baud. On exécute la commande suivante : &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;minicom -b 9600 -D /dev/ttyUSB0&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
On active l'echo local dans minicom, afin de pouvoir observer ce qui a été envoyé par liaison série au XBee ('''CTRL+A''' puis '''E''').&lt;br /&gt;
&lt;br /&gt;
Pour commencer le paramètrage il faut taper ''' +++ ''' rapidement. Le XBee nous répond OK, cela veut dire que nous sommes dans le mode configuration et que nous pouvons utiliser les commandes '''AT'''. (Redirection vers la liste des commandes AT XBee [https://cdn.sparkfun.com/assets/resources/2/9/22AT_Commands.pdf]).&lt;br /&gt;
&lt;br /&gt;
Comme nos XBee ont été utilisés auparavant, il a fallu les restaurer à l'état usine avec la commande '''ATRE'''.&lt;br /&gt;
&lt;br /&gt;
Si on souhaite que des XBee puissent s'envoyer des données il faut qu'ils soient sur le même canal (commande '''ATCH''') et aient le même PAN ID (commande '''ATID'''). Notre PAN ID sera '''BEE6''' et le canal sera celui par défaut '''C'''.&lt;br /&gt;
&lt;br /&gt;
Ensuite il faut leur donner une adresse de destination ('''ATDH''' &amp;amp; '''ATDL''') qui sera l'adresse broadcast, pour ce faire on entre &lt;br /&gt;
 ATDH=0000&lt;br /&gt;
 ATDL=FFFF&lt;br /&gt;
&lt;br /&gt;
Enfin '''ATMY''' représente l'ID du XBee, notre premier XBee aura comme ID 5000 et le second 5001.&lt;br /&gt;
&lt;br /&gt;
N'oublions pas de sauvegarder les paramètres avec '''ATWR'''.&lt;br /&gt;
&lt;br /&gt;
On vérifie que tout a bien été pris en compte :&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;&lt;br /&gt;
+++OK&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATID&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
BEE6&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
C&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
0&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDL&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
FFFF&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATMY&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
5000&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCN&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Puis on fait de même avec le deuxième XBee (ID 5001).&lt;br /&gt;
&lt;br /&gt;
Voilà, lorsque on envoi des caractères par liaison série sur 5000, la LED '''Tx''' de 5000 s'allume et la Led '''Rx''' de 5001 s'allume elle aussi. Cela signifie que l'envoi de donnée par onde radio s'effectue correctement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que les XBee émettent et reçoivent, on peut commencer les mesures avec notre SDR. Mais avant cela il va falloir bien se familiariser avec le logiciel GNU RADIO qui est assez difficile à prendre en main.&lt;br /&gt;
&lt;br /&gt;
=== Première prise en main du logiciel GNURADIO ===&lt;br /&gt;
&lt;br /&gt;
Installation de GNU radio avec les fonctions + drivers pour HackRF : &lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install gqrx gnuradio gr-osmosdr hackrf &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le bloc Osmocom Source sert de &amp;quot;passerelle&amp;quot; entre le logiciel et la SDR, il permet de transmettre les informations récupérées par le HackRF afin qu'on puisse les traiter avec d'autres bloc de fonctions.&lt;br /&gt;
&lt;br /&gt;
Si on veut pouvoir récuperer les données il faut passer l'argument ''hackrf=0'' dans la box périphérique du bloc Osmocom.&lt;br /&gt;
&lt;br /&gt;
Ci-dessous on peut voir le spectre environnant entre 2.44GHz et 2.460GHz grâce au bloc WX GUI FFT Sink.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ScreenGnuRadio.png|Interface de GNURadio]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous a permis d'effectuer notre première expérience. L'utilisation des deux Xbees nous a permis d'observer l'impact des Xbee sur le champ électromagéntique environnant.&lt;br /&gt;
&lt;br /&gt;
Si on analyse le spectre environnant grâce au module FFT de GNU Radio, lorsque les Xbee communiquent entre eux, on peut apercevoir un pic caractéristique propre.&lt;br /&gt;
En effet, lors de l'emission d'un message sur le port série, on a un pic qui se dégage du spectre d'amplitude -20dBm. Ce pic est caractéristique au canal de communication choisi et configuré sur le Xbee.&lt;br /&gt;
Néanmoins, le signal est perturbé par le bruit environnant. &lt;br /&gt;
L'expérience étant effectuée au sein de l'école, les signaux Wi-Fi perturberont l'étude.&lt;br /&gt;
Il faut noter que la norme IEEE 802.11 impose au Wi-Fi l'utilisation d'une bande passante s'étalant de 2.4 GHz à 2.5 GHz.&lt;br /&gt;
&lt;br /&gt;
La bande passante des modules Zigbee se décomposent en 16 canaux, allant de 2400 MHz à 2480 MHz par pas de 5 MHz.&lt;br /&gt;
&lt;br /&gt;
Le canal ici utilisé est le canal 13 (3ème canal) de fréquence 2415 MHz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- [[Fichier:Channel135001.png|thumb|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Fichier:channel135000.png|thumb|none|400 px]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:XBeeCh13.png|Spectre de l'environnement autour du XBee|thumb|400 px]][[Fichier:XBeeCh13SND.png|Lors de l'envoi de données au XBee voisin|thumb|none|400 px]]&lt;br /&gt;
&lt;br /&gt;
On peut observer un pic de puissance lors de l'envoi d'une donnée en série à la fréquence 2.415 GHz.&lt;br /&gt;
Il nous est maintenant nécessaire d'analyser de plus près les signaux et leurs fréquence centrale dans la bande perçue au dessus de -20dB.&lt;br /&gt;
&lt;br /&gt;
On réeffectuera une expérience en zone isolée des signaux parasites.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous nous sommes principalement à la tâche de recherche afin de mieux comprendre les signaux émis par le Xbee.&lt;br /&gt;
&lt;br /&gt;
En somme, nous étions confrontés à de nombreuses interrogations. Le fonctionnement du Xbee étant assez simple et la sécurité du protocole Zigbee étant moindre, y a t-il possibilité de démoduler le signal émis afin de développper nos études ?&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&lt;br /&gt;
On décide d'automatiser le processus d'envoie sur le port série des données vers le Xbee.&lt;br /&gt;
En effet, le fait que des données soient envoyées sur un temps t ne nous permet de voir correctement le signal. Il nous est nécessaire d'approcher le moment de balayage avec l'envoi des données.&lt;br /&gt;
&lt;br /&gt;
Un script python est réalisé afin d'envoyer en continue les données.&lt;br /&gt;
En outre, le script permet de changer toutes les dix secondes de canal d'envoi.&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;/div&gt;</summary>
		<author><name>Amoreau</name></author>	</entry>

	<entry>
		<id>https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=70410</id>
		<title>IMA4 2018/2019 P70</title>
		<link rel="alternate" type="text/html" href="https://projets-ima.plil.fr/mediawiki/index.php?title=IMA4_2018/2019_P70&amp;diff=70410"/>
				<updated>2019-03-06T14:15:46Z</updated>
		
		<summary type="html">&lt;p&gt;Amoreau : /* Feuille d'heures */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div class=&amp;quot;center&amp;quot; style=&amp;quot;font-size: 30px; width: auto; margin-left: auto; margin-right: auto;&amp;quot;&amp;gt;Impact du matériel et du logiciel sur le champ électromagnétique&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;br style=&amp;quot;clear: both;&amp;quot;/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Présentation générale=&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Projet'''&amp;lt;/ins&amp;gt; : Impact du matériel et du logiciel sur le rayonnement électromagnétique&lt;br /&gt;
&lt;br /&gt;
''Nous proposons d'évaluer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et la consommation électrique.''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Etudiants'''&amp;lt;/ins&amp;gt; : Souheib KHINACHE et Antoine MOREAU&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;'''Encadrants'''&amp;lt;/ins&amp;gt; : Alexandre BOE, Xavier REDON et Thomas VANTROYS&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
L'internet des objets est un marché en plein essor. La communication entre les différents objets connectés crée un nuage de signaux autour d'eux. Ces derniers sont vus par les utilisateurs comme des boîtes noires : le fonctionnement se fait sans en connaître les composants matériels et logiciels. &lt;br /&gt;
Néanmoins, ces objets, de par leurs propriétés électroniques, créent des fuites électromagnétiques impactant le champ environnant. &lt;br /&gt;
&lt;br /&gt;
Bien qu'ils peuvent porter à débat sur l'impact sur la santé, ces signaux peuvent représenter de réelles sources d'informations sur l'aspect matériel et applicatif de l'objet.&lt;br /&gt;
&lt;br /&gt;
Il serait donc intéressant d'avoir idée générale sur le fonctionnement du système en interprétant les ondes électromagnétiques émises par ce système.&lt;br /&gt;
&lt;br /&gt;
==Objectifs==&lt;br /&gt;
&lt;br /&gt;
Les principaux objectifs de ce projet seront donc de mesurer l'impact du matériel et du logiciel sur le rayonnement électromagnétique et sur la consommation électrique.&lt;br /&gt;
Pour cela, l'outil potentiel avec lequel nous pourrions travailler serait une sonde de champ électromagnétique afin d'établir des mesures. &lt;br /&gt;
Cependant, nous pourrions concevoir notre propre système de capture et d'interprétation à partir d'une antenne, de filtres de fréquences et d'un microcontrôleur (on commencera par un ATMega328P). Il sera nécessaire de prendre en compte les perturbations issues de notre appareil de mesure et d'en tenir compte.&lt;br /&gt;
&lt;br /&gt;
On effectuera ainsi plusieurs expérimentations sur différents supports d'étude :&lt;br /&gt;
*l'aspect &amp;quot;Hardware&amp;quot; en étudiant différents modèles pour un même type de shield  &lt;br /&gt;
*l'aspect calculatoire du matériel en se basant sur l'impact des microcontrôleurs en fonction du modèle (ATMega328P et ATMega2560)&lt;br /&gt;
*l'aspect &amp;quot;Software&amp;quot;, en étudiant l'impact du logiciel et du firmware d'un même composant (différents firmwares pour un même shield Wi-Fi)&lt;br /&gt;
*l'aspect puissance des composants électroniques de gestion de puissance (ponts, hacheurs, onduleurs...).&lt;br /&gt;
&lt;br /&gt;
L'étude des différentes informations se fera par traitement des signaux électromagnétiques et des spectres. &lt;br /&gt;
Afin de mieux appréhender le problème, il nous est nécessaire de comprendre les phénomènes physiques issus de la notion d'électromagnétisme.&lt;br /&gt;
&lt;br /&gt;
Ces études mèneront à une étape plus complexe : l'interprétation des signaux. En effet, l'un des objectifs de ce projet est de comprendre du mieux possible le fonctionnement d'un système sans y avoir accès directement, et donc dans ce contexte &amp;quot;traduire&amp;quot; un ensemble de signaux électromagnétiques.&lt;br /&gt;
&lt;br /&gt;
On pourra en outre apporter un aspect visuel à l'étude en rajoutant une interface informatique.&lt;br /&gt;
&lt;br /&gt;
=Analyse du projet=&lt;br /&gt;
&lt;br /&gt;
==Positionnement par rapport à l'existant==&lt;br /&gt;
&lt;br /&gt;
Bien qu'aux yeux de nombreuses personnes le bruit électromagnétique créé par les équipements électroniques du quotidien peut porter à controverse (débats concernant l'impact sur la santé par exemple), il peut être une source d'informations. &lt;br /&gt;
De nos jours, les ondes électromagnétiques restent un vaste champ d'étude, sujettes à de nombreuses thèses et recherches au sein des laboratoires.&lt;br /&gt;
&lt;br /&gt;
On peut prendre l'exemple de [https://www.eurekalert.org/pub_releases/2015-01/giot-rwt010715.php Milos Prvulovic], professeur à l'Institut Technologique de Géorgie, ayant simulé un contexte de cybercafé, dans lequel il place une antenne magnétique, un ordinateur portable cible et un ordinateur &amp;quot;espion&amp;quot;. Il réussit, grâce aux signaux EM émis par l'impulsion de l'appui des touches clavier à capter un message écrit par un ordinateur cible. &lt;br /&gt;
&lt;br /&gt;
Néanmoins, dans le quotidien, l'utilisation des sondes électromagnétiques se fait pour l'étude énergétique d'un système électronique (fuites électromagnétiques anormales, preuves d'une anomalie...) afin de respecter certaines normes législatives. Le code du travail par exemple réglemente et définit des valeurs seuils par le biais des articles R. 4453-3 et R. 4453-4.&lt;br /&gt;
&lt;br /&gt;
==Analyse du premier concurrent==&lt;br /&gt;
&lt;br /&gt;
'''NBM-520 de NARDA STS'''&lt;br /&gt;
[[Fichier: NBM_TS.png|thumb|300px|NBM-TS, application des appareils NBM]]&lt;br /&gt;
NARDA STS est une entreprise qui fournit des outils de mesure. Elle met à disposition aux professionnels des sondes électromagnétiques.&lt;br /&gt;
La NBM-520 est un appareil de la franchise, mesurant le champ électrique et magnétique. Elle donne des valeurs précises du champ électromagnétique ambiant sur une large bande. Elle propose différentes sondes modulables permettant une souplesse au niveau de l'étude en fonction des besoins, avec des sondes pouvant étudier des signaux de fréquence de 100kHz à 6GHz ou même de 300kHz à 50GHz (en fonction de la sonde choisie).&lt;br /&gt;
&lt;br /&gt;
En outre, le dispositif peut se connecter en USB sur PC afin d'envoyer les données capturées et d'en faire une étude. Le dispositif propose un logiciel d'étude, NBM-TS, permettant d'observer du champ en fonction du temps, de la fréquence, de la position...&lt;br /&gt;
&lt;br /&gt;
L'équipement est utilisé par l'ANF (l'Agence Nationale des Fréquences, agence gérant l'ensemble des normes autour des radiofréquences), et est donc un gage de qualité.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Avantages :''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Large bande de fréquence&lt;br /&gt;
* Matériel solide&lt;br /&gt;
* Application fonctionnelle permettant l'étude et gestion des données&lt;br /&gt;
* Possibilité d'étudier séparément champ électrique et magnétique&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ins&amp;gt;''Inconvénients:''&amp;lt;/ins&amp;gt;&lt;br /&gt;
* Impossible d'étudier les basses fréquences (appareils sous tension, bobinages...)&lt;br /&gt;
* Prix élevé : à partir de 3100€&lt;br /&gt;
* La cible de ce produit est surtout les professionels&lt;br /&gt;
&lt;br /&gt;
==Analyse du second concurrent==&lt;br /&gt;
&lt;br /&gt;
'''Une pita.'''&lt;br /&gt;
&lt;br /&gt;
''Comment mon pain à pita vole ta clé RSA ?''&lt;br /&gt;
&lt;br /&gt;
[[Fichier:Pita.jpg|200px|thumb|left|Une pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Des chercheurs israéliens ont découvert un moyen de capturer des clés de cryptage RSA, réputées comme inviolables, par le biais d'une pita... du moins avec un dispositif suffisamment petit pour être caché dans un pain à pita. &lt;br /&gt;
Le dispositif, renommé PITA pour Portable Instrument for Trace Acquisition a la particularité de capturer les ondes radio électromagnétiques émanantes d'un PC, qu'il soit connecté à un réseau ou pas.&lt;br /&gt;
Les différentes opérations du processeur sont identifiées en distinguant les différents modèles de l'activité radio sur le spectre EM.&lt;br /&gt;
&lt;br /&gt;
Bien que la capture des clés RSA a été faite dans des conditions particulières (modification du processeur de l'ordinateur cible), il est néanmoins possible, selon les chercheurs, d'identifier quelle type d'activité est exercée par l'ordinateur ainsi que son état.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:PITA.jpg|300px|thumb|right|Un dessous de pita.]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
L'un des points importants concernant le dispositif est son coût : moins de 300 euros.&lt;br /&gt;
L'appareil dispose :&lt;br /&gt;
* d'un PC portatif (PC-on-a-stick) ''Rikomagic MK802 IV'',&lt;br /&gt;
* d'un recepteur radio SDR ''FUNcube Dongle Pro+''&lt;br /&gt;
* d'une antenne radio&lt;br /&gt;
* d'une batterie&lt;br /&gt;
* d'une antenne WiFi&lt;br /&gt;
* d'une carte MicroSD&lt;br /&gt;
* d'un adapteur d'antenne&lt;br /&gt;
* et d'une '''pita'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le dispositif aurait une portée de 50cm. &lt;br /&gt;
Les chercheurs israéliens ont collaboré avec GNU Private Guard (logiciel de cryptage asymétrique) afin de protéger contre ces attaques les clés de cryptage.&lt;br /&gt;
&lt;br /&gt;
==Scénario d'usage du produit ou du concept envisagé==&lt;br /&gt;
&lt;br /&gt;
''Scénario 1''&lt;br /&gt;
&lt;br /&gt;
Gérard a toujours le flair pour les bonnes affaires. Il a acheté une centaine de clés WiFi à un prix dérisoire sur AloXpresso afin de faire du profit à la revente. Le vendeur lui garantit que toutes les clés fonctionnent correctement. Gérard veut vérifier. Après vérification, 99 des clés sur 100 fonctionnent comme prévu. Gérard aimerait être sûr du disfonctionnement, mais Gérard n'est pas une pointure en informatique. &lt;br /&gt;
&lt;br /&gt;
Coup de génie ! Il se rappelle qu'il dispose d'un dispositif qui capte les ondes EM et les interprète directement. C'est le moment de tester ça. Il remarque une anomalie sur le spectre.&lt;br /&gt;
Il décide de contacter le revendeur pour lui signaler un disfonctionnement sur l'une des clé. &lt;br /&gt;
Pas de soucis. Le vendeur, étant bon prince, lui envoie une autre clé USB et lui fait une ristourne.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Scénario 2''&lt;br /&gt;
&lt;br /&gt;
La police fait une perquisition chez un individu soupçonné de graves délits. Cela fait plusieurs mois que la brigade criminelle prépare l'intervention, et une fois sur les lieux ils arrêtent le soupçonné malfaiteur.&lt;br /&gt;
Cependant avant de repartir, elle veut faire l'acquisition d'un maximum de preuves. Elle veut alors prendre l'essentiel des objets, dont certains objets éléctroniques connectés de l'individu dont elle pourra extraire les informations qui serviront à le faire tomber.&lt;br /&gt;
&lt;br /&gt;
Par chance, elle dispose d'un petit outil qui scannera les signatures alentours des objets connectés, comme des téléphones cachés, clés USB wifi dissimulées dans le décor etc..&lt;br /&gt;
Et si le suspect avait modifié malignement un objet connecté banal pour l'utiliser autrement à ses fins, la police le découvrirait car elle possède une base de données de toutes les signatures spectrales des objets connectés sur le marché et celle de l'objet modifié ne collerait pas avec celle de la base de données.&lt;br /&gt;
&lt;br /&gt;
==Réponse à la question difficile==&lt;br /&gt;
&lt;br /&gt;
'''Comment étudier les signaux malgré les perturbations électromagnétiques ambiants et les faibles signaux des µC ?'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Les signaux électromagnétiques des microcontrôleurs ou d'autres composants peuvent être faibles. Il y a une possibilité pour palier à ce problème, c'est de capter les signaux depuis une antenne émettrice que l'on rajoute à l'objet d'étude. &lt;br /&gt;
Nous utiliserons un SDR (Software Defined-Radio) afin de capter les ondes radio et les étudier directement sur PC. Le filtrage s'effectuera ainsi de manière numérique. Plusieurs tests seront effectués pour le même objet à étudier (quand on parle d'objet, on évoque un ensemble de plusieurs composants, comme par exemple une alimentation, un micro-contrôleur et une antenne). Ainsi, de manière statistique, nous pourrons en déduire un pattern récurrent pour chaque expérience en les effectuant dans différents environnements (pourquoi pas une chambre anachoïque). &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Préparation du projet=&lt;br /&gt;
&lt;br /&gt;
==Cahier des charges==&lt;br /&gt;
&lt;br /&gt;
Nous souhaitons &lt;br /&gt;
* Capter le signal émis par un objet connecté le plus précisément possible&lt;br /&gt;
&lt;br /&gt;
* Concevoir nos propres objets connectés tous différents mais basés sur un même modèle&lt;br /&gt;
&lt;br /&gt;
* Interpréter les spectrogrammes, faire une étude statistique des signaux émis par nos différents objets et en tirer des conclusions&lt;br /&gt;
&lt;br /&gt;
* Répertorier dans une base de données les signatures de nos objets , voire de quelques objets disponibles sur le marché&lt;br /&gt;
&lt;br /&gt;
==Choix techniques : matériel et logiciel==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix logiciel :&lt;br /&gt;
&lt;br /&gt;
- La distribution Linux Pentoo ou Kali pour traiter les signaux avec GNU RADIO (Suite logicielle dédiée à l’implémentation de radios logicielles et de systèmes de traitement du signal).&lt;br /&gt;
&lt;br /&gt;
- FemtoOS pour l'OS des ATMEGA328P et ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Choix Matériel : &lt;br /&gt;
&lt;br /&gt;
- Plusieurs modules radios émetteurs &lt;br /&gt;
&lt;br /&gt;
- Plusieurs microcontrôleurs ATMEGA328P et un ATMEGA2560&lt;br /&gt;
&lt;br /&gt;
- Des alimentations identiques pour chaque PCB&lt;br /&gt;
&lt;br /&gt;
- Un HackRF pour la réception des signaux&lt;br /&gt;
&lt;br /&gt;
- Une antenne 50 Ohm pour le HackRF [https://www.passion-radio.fr/accessoires-sdr/antenne-ant500-74.html]&lt;br /&gt;
&lt;br /&gt;
==Liste des tâches à effectuer==&lt;br /&gt;
&lt;br /&gt;
Tout d'abord, nous devons préparer tout le matériel qui servira à faire nos tests. C'est à dire concevoir :&lt;br /&gt;
&lt;br /&gt;
- Un ensemble SDR/PC qui traitera le signal reçu avec GNU RADIO.&lt;br /&gt;
&lt;br /&gt;
- Une multitude de PCB qui seront nos objets connectés (Sur chacun d'entre eux on trouvera au minimum une antenne radio, un microcontrôleur et une alimentation)&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ensuite afin de récupérer une &amp;quot;signature&amp;quot; d'un de nos objets , il faudra faire plus de 50 analyses spectrales pour conclure statistiquement sur une bonne signature qui caractérisera l'objet.&lt;br /&gt;
&lt;br /&gt;
Nous devons donc dans un second temps: &lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques mais qui ont un '''firmware''' différent.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques qui ont pour seule différence le '''microcontrôleur'''.&lt;br /&gt;
&lt;br /&gt;
- Récupérer la signature de deux objets connectés identiques dont seul le '''PCB''' diffère.&lt;br /&gt;
&lt;br /&gt;
Grâce à tous ces tests , nous pourrons conclure et voir l'impact qu'à le matériel ou le logiciel sur la signature d'un objet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Enfin si les délais nous le permettent, nous pourrons réaliser un software qui cartographiera nos objets connectés dans la pièce grâce à la puissance de la signature reçue (Ce qui devrait être réalisable puisqu'à ce stade nous aurons une base de donnée des signatures).&lt;br /&gt;
&lt;br /&gt;
==Calendrier prévisionnel==&lt;br /&gt;
&lt;br /&gt;
=Réalisation du Projet=&lt;br /&gt;
==Feuille d'heures==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Tâche !! Prélude !! Heures S1 !! Heures S2 !! Heures S3 !! Heures S4 !! Heures S5 !! Heures S6 !! Heures S7 !! Heures S8 !! Heures S9 !! Heures S10 !! Total&lt;br /&gt;
|-&lt;br /&gt;
| Analyse du projet &lt;br /&gt;
| 2&lt;br /&gt;
| 8&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Prise en main de GnuRadio&lt;br /&gt;
|0&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|4&lt;br /&gt;
|3&lt;br /&gt;
|2&lt;br /&gt;
|3&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Configuration Xbee&lt;br /&gt;
|0&lt;br /&gt;
|2&lt;br /&gt;
|2&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|1&lt;br /&gt;
|2&lt;br /&gt;
|x&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Total&lt;br /&gt;
|2&lt;br /&gt;
|0&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Prologue==&lt;br /&gt;
==Semaine 1==&lt;br /&gt;
[[Fichier:HackrfOne.jpeg|200px|thumb|right|Le HackRF One]]&lt;br /&gt;
Durant cette semaine, nous avons continué nos recherches notamment sur le moyen de transmission de nos objets connectés. Nous avons confirmé notre choix de notre SDR : Monsieur Boé nous a confirmé que des HackRF seraient disponibles dans les laboratoires et qu'il pourrait nous en prêter un. On disposera donc d'une antenne puissante pour traiter les signaux émis par nos objets communiquants. &lt;br /&gt;
&lt;br /&gt;
Il faudra coupler notre HackRF avec un logiciel appelé GNU RADIO qui est un logiciel très complet ( Pour information : la NASA a utilisé GNU RADIO afin de rétablir le contact avec une sonde spatiale abandonnée ). Afin de faire tourner ce logiciel libre, nous aurons besoin de la distribution Kali Linux, ex Backtrack.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Choix des émetteurs/récepteurs === &lt;br /&gt;
&lt;br /&gt;
Nous avons décidé que nos objets connectés communiqueront dans deux '''bandes de fréquences ISM''', l'une à '''900 MHz''' grâce à des modules Digi Xbee et l'autre à '''2,4 GHz''' par le moyen de modules émetteurs Bluetooth. On rappellera que les Digi Xbee et les émetteurs/récepteurs Bluetooth seront pilotés par des ATMEGA 2560.&lt;br /&gt;
&lt;br /&gt;
Les Xbee ne communiqueront pas entre eux et émettront en continu les mêmes données car ils le peuvent, alors que les émetteurs/récepteurs Bluetooth devront s'échanger des données si on veut pouvoir observer un quelconque signal autour de la fréquence de leurs porteuses. &lt;br /&gt;
&lt;br /&gt;
On voudra observer premièrement, si avec deux objets dans les '''mêmes''' conditions (donc même µc et même émetteur), on peut ou non '''distinguer une différence'''. Ceci est fondamental pour la suite des expériences, puisque si les deux émettent à la même fréquence, on pourra faire varier plusieurs paramètres afin de trouver '''des clés''' (des signes) qui pourraient aider à l'identification du matériel.&lt;br /&gt;
&lt;br /&gt;
Ces clés représentent différents facteurs potentiels d'identification du signal (le rapport signal-bruit en fonction de la distance par exemple...).&lt;br /&gt;
&lt;br /&gt;
''On planifie alors pour la semaine suivante de réussir à faire émettre, en utilisant simplement des breadboards pour commencer, nos Xbee et modules BT et observer quelque chose grâce à notre SDR.''&lt;br /&gt;
&lt;br /&gt;
==Semaine 2==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configuration des modules XBee ===&lt;br /&gt;
&lt;br /&gt;
Nous avons configuré deux XBee afin qu'ils puissent communiquer entre eux : &lt;br /&gt;
&lt;br /&gt;
Les modules XBee ont été montés sur des platines d'interface USB/série de manière à ce qu'on puisse les paramétrer via le programme de contrôle ''minicom''. &lt;br /&gt;
&lt;br /&gt;
Dans le doute, on supposera que les XBee communiquent à 9600 Baud. On exécute la commande suivante : &lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;minicom -b 9600 -D /dev/ttyUSB0&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
On active l'echo local dans minicom, afin de pouvoir observer ce qui a été envoyé par liaison série au XBee ('''CTRL+A''' puis '''E''').&lt;br /&gt;
&lt;br /&gt;
Pour commencer le paramètrage il faut taper ''' +++ ''' rapidement. Le XBee nous répond OK, cela veut dire que nous sommes dans le mode configuration et que nous pouvons utiliser les commandes '''AT'''. (Redirection vers la liste des commandes AT XBee [https://cdn.sparkfun.com/assets/resources/2/9/22AT_Commands.pdf]).&lt;br /&gt;
&lt;br /&gt;
Comme nos XBee ont été utilisés auparavant, il a fallu les restaurer à l'état usine avec la commande '''ATRE'''.&lt;br /&gt;
&lt;br /&gt;
Si on souhaite que des XBee puissent s'envoyer des données il faut qu'ils soient sur le même canal (commande '''ATCH''') et aient le même PAN ID (commande '''ATID'''). Notre PAN ID sera '''BEE6''' et le canal sera celui par défaut '''C'''.&lt;br /&gt;
&lt;br /&gt;
Ensuite il faut leur donner une adresse de destination ('''ATDH''' &amp;amp; '''ATDL''') qui sera l'adresse broadcast, pour ce faire on entre &lt;br /&gt;
 ATDH=0000&lt;br /&gt;
 ATDL=FFFF&lt;br /&gt;
&lt;br /&gt;
Enfin '''ATMY''' représente l'ID du XBee, notre premier XBee aura comme ID 5000 et le second 5001.&lt;br /&gt;
&lt;br /&gt;
N'oublions pas de sauvegarder les paramètres avec '''ATWR'''.&lt;br /&gt;
&lt;br /&gt;
On vérifie que tout a bien été pris en compte :&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;padding:15px;color:#ffffff;background-color:#23241F;font-family:Consolas&amp;quot;&amp;gt;&lt;br /&gt;
+++OK&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATID&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
BEE6&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
C&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDH&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
0&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATDL&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
FFFF&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATMY&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
5000&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
ATCN&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
OK&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
Puis on fait de même avec le deuxième XBee (ID 5001).&lt;br /&gt;
&lt;br /&gt;
Voilà, lorsque on envoi des caractères par liaison série sur 5000, la LED '''Tx''' de 5000 s'allume et la Led '''Rx''' de 5001 s'allume elle aussi. Cela signifie que l'envoi de donnée par onde radio s'effectue correctement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Maintenant que les XBee émettent et reçoivent, on peut commencer les mesures avec notre SDR. Mais avant cela il va falloir bien se familiariser avec le logiciel GNU RADIO qui est assez difficile à prendre en main.&lt;br /&gt;
&lt;br /&gt;
=== Première prise en main du logiciel GNURADIO ===&lt;br /&gt;
&lt;br /&gt;
Installation de GNU radio avec les fonctions + drivers pour HackRF : &lt;br /&gt;
&lt;br /&gt;
 sudo apt-get install gqrx gnuradio gr-osmosdr hackrf &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Le bloc Osmocom Source sert de &amp;quot;passerelle&amp;quot; entre le logiciel et la SDR, il permet de transmettre les informations récupérées par le HackRF afin qu'on puisse les traiter avec d'autres bloc de fonctions.&lt;br /&gt;
&lt;br /&gt;
Si on veut pouvoir récuperer les données il faut passer l'argument ''hackrf=0'' dans la box périphérique du bloc Osmocom.&lt;br /&gt;
&lt;br /&gt;
Ci-dessous on peut voir le spectre environnant entre 2.44GHz et 2.460GHz grâce au bloc WX GUI FFT Sink.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Fichier:ScreenGnuRadio.png|Interface de GNURadio]]&lt;br /&gt;
&lt;br /&gt;
==Semaine 3==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Cette semaine nous a permis d'effectuer notre première expérience. L'utilisation des deux Xbees nous a permis d'observer l'impact des Xbee sur le champ électromagéntique environnant.&lt;br /&gt;
&lt;br /&gt;
Si on analyse le spectre environnant grâce au module FFT de GNU Radio, lorsque les Xbee communiquent entre eux, on peut apercevoir un pic caractéristique propre.&lt;br /&gt;
En effet, lors de l'emission d'un message sur le port série, on a un pic qui se dégage du spectre d'amplitude -20dBm. Ce pic est caractéristique au canal de communication choisi et configuré sur le Xbee.&lt;br /&gt;
Néanmoins, le signal est perturbé par le bruit environnant. &lt;br /&gt;
L'expérience étant effectuée au sein de l'école, les signaux Wi-Fi perturberont l'étude.&lt;br /&gt;
Il faut noter que la norme IEEE 802.11 impose au Wi-Fi l'utilisation d'une bande passante s'étalant de 2.4 GHz à 2.5 GHz.&lt;br /&gt;
&lt;br /&gt;
La bande passante des modules Zigbee se décomposent en 16 canaux, allant de 2400 MHz à 2480 MHz par pas de 5 MHz.&lt;br /&gt;
&lt;br /&gt;
Le canal ici utilisé est le canal 13 (3ème canal) de fréquence 2415 MHz.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;!-- [[Fichier:Channel135001.png|thumb|400 px]] --&amp;gt;&lt;br /&gt;
&amp;lt;!-- [[Fichier:channel135000.png|thumb|none|400 px]] --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Fichier:XBeeCh13.png|Spectre de l'environnement autour du XBee|thumb|400 px]][[Fichier:XBeeCh13SND.png|Lors de l'envoi de données au XBee voisin|thumb|none|400 px]]&lt;br /&gt;
&lt;br /&gt;
On peut observer un pic de puissance lors de l'envoi d'une donnée en série à la fréquence 2.415 GHz.&lt;br /&gt;
Il nous est maintenant nécessaire d'analyser de plus près les signaux et leurs fréquence centrale dans la bande perçue au dessus de -20dB.&lt;br /&gt;
&lt;br /&gt;
On réeffectuera une expérience en zone isolée des signaux parasites.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Semaine 4==&lt;br /&gt;
&lt;br /&gt;
Cette semaine, nous nous sommes principalement à la tâche de recherche afin de mieux comprendre les signaux émis par le Xbee.&lt;br /&gt;
&lt;br /&gt;
En somme, nous étions confrontés à de nombreuses interrogations. Le fonctionnement du Xbee étant assez simple et la sécurité du protocole Zigbee étant moindre, y a t-il possibilité de démoduler le signal émis afin de développper nos études ?&lt;br /&gt;
&lt;br /&gt;
==Semaine 5==&lt;br /&gt;
&lt;br /&gt;
On décide d'automatiser le processus d'envoie sur le port série des données vers le Xbee.&lt;br /&gt;
En effet, le fait que des données soient envoyées sur un temps t ne nous permet de voir correctement le signal. Il nous est nécessaire d'approcher le moment de balayage avec l'envoi des données.&lt;br /&gt;
&lt;br /&gt;
Un script python est réalisé afin d'envoyer en continue les données.&lt;br /&gt;
En outre, le script permet de changer toutes les dix secondes de canal d'envoi.&lt;br /&gt;
&lt;br /&gt;
=Documents Rendus=&lt;/div&gt;</summary>
		<author><name>Amoreau</name></author>	</entry>

	</feed>