Analyse 2014 - Espace Numerique de Travail

Transcription

Analyse 2014 - Espace Numerique de Travail
Projet GT1 – Clavier Virtuel
LPo Touchard-Washington
BTS IRIS Session 2014
Clavier Virtuel
Dossier d’analyse.
YANNICK FROMENTOUX – ALEXIS LOUIS – MARIUS SERGENT
Projet GT1 – Clavier Virtuel
LPo Touchard-Washington
BTS IRIS Session 2014
Sommaire
I – Description de l’existant. ................................................................................................................... 2
I.1 – Introduction. ............................................................................................................................... 2
I.2 – Projet réalisé par la section IRIS 2012-2013. .............................................................................. 3
I.3 – Solution proposée. ..................................................................................................................... 4
II – Etude du clavier. ............................................................................................................................... 5
II.1 – Présentation du clavier ATS-1111. ............................................................................................. 5
II.1.1 – Fonctionnement. ................................................................................................................ 5
II.2 Installation du clavier avec Titan .................................................................................................. 7
II.3 Communication du clavier avec la centrale .................................................................................. 8
III – Analyse de la solution proposée. ................................................................................................... 12
III.1 – Prototypage de l’application mobile....................................................................................... 12
III.1.1 – IHM iOS. ........................................................................................................................... 12
III.1.2 – IHM Android .................................................................................................................... 13
III.2 – Moyens de communication avec l’application mobile............................................................ 14
III.3 – Environnements de développement pour les applications mobiles. ...................................... 14
III.4 – ANDROID ................................................................................................................................ 14
III.4.1 – Qu’est-ce qu’Android ? .................................................................................................... 14
III.4.1 – Programmer en Java sous Windows ................................................................................ 15
III.5 – iOS .......................................................................................................................................... 17
III.5.1 – Introduction : ................................................................................................................... 17
III.5.2 – J2objC : ............................................................................................................................ 20
III.6 – Présentation du Raspberry Pi. ................................................................................................ 21
III.7 – Environnement de développement du Raspberry Pi. ............................................................. 23
III.7.1 – Installation et paramétrage de l’EDI pour le pc de développement. ............................... 24
III.7.2 – Maintenant l’objectif est de configurer Qt pour la cross-compilation. ............................ 24
III.8 – Adaptation de la liaison série du Raspberry Pi........................................................................ 27
III.9 Alimentation du Raspberry Pi .................................................................................................... 28
III.10 – Synoptique de l’architecture du système. ............................................................................ 29
III.11 – Perspective avec l’application mobile................................................................................... 29
YANNICK FROMENTOUX – ALEXIS LOUIS – MARIUS SERGENT
1
Projet GT1 – Clavier Virtuel
LPo Touchard-Washington
BTS IRIS Session 2014
I – Description de l’existant.
I.1 – Introduction.
La centrale d’alarme ATS Master 4000 mis à notre disposition pour le projet, est employée pour la
surveillance des locaux d’entreprises ou de particuliers. La centrale est déployée en plusieurs
« parties », en effet elle dispose :
D’un boîtier principal contenant la carte mère de la centrale ATS
Master 4000, qui va gérer l’intégralité de l’alarme ainsi que les
différents composants qui y sont raccordés.
D’un clavier ATS-1111 qui permettra de piloter l’ensemble de la centrale et ses
éléments.
D’une carte additionnelle permettant une connexion permanente aux réseaux IP.
D’un détecteur de présence DD105. Ce capteur est un capteur de mouvement mais
il est aussi capable de détecter un niveau sonore trop important.
YANNICK FROMENTOUX – ALEXIS LOUIS – MARIUS SERGENT
2
Projet GT1 – Clavier Virtuel
LPo Touchard-Washington
BTS IRIS Session 2014
• D’un capteur magnétique d’ouverture de porte IM9700. Ce
capteur permet de détecter une ouverture de porte, il déclenche
ainsi l’alarme.
Tous ces éléments sont pilotés par le logiciel d’exploitation TITAN, qui va permettre l’ajout, par
exemple, d’un nouveau clavier, armer ou désarmer une alarme, configurer des zones, des groupes et
des RAS. Avant tout, définissons, les quelques points de vocabulaire essentiels :
Groupe : Un groupe est un ensemble de capteurs présents dans une zone géographique, il peut, par
exemple définir tous les capteurs présents dans le hangar A1.
Zone : Une zone est une précision propre au capteur donnant une indication sur le lieu exact dans le
groupe où est située l’alerte.
RAS : Ce terme défini tout clavier ou module permettant le pilotage de la centrale d’alarme.
I.2 – Projet réalisé par la section IRIS 2012-2013.
L’année dernière, il a été demandé d’apporter une nouvelle partie à cette centrale d’alarme,
permettant ainsi de piloter l’alarme à distance à travers internet. Pour se faire, un module déporté a
été incorporé au système déjà existant ainsi qu’un ordinateur connecté à internet afin de simuler le
fonctionnement du clavier.
Le schéma ci-dessus illustre la solution retenue par l’équipe de projet de 2013.
YANNICK FROMENTOUX – ALEXIS LOUIS – MARIUS SERGENT
3
Projet GT1 – Clavier Virtuel
LPo Touchard-Washington
BTS IRIS Session 2014
Le module déporté, visible sur l’illustration précédente, est composé de trois modules qui sont :
Une carte FEZ Panda qui contient l’application permettant l’émulation du clavier virtuel.
Une carte Arduino Ethernet Shield, qui apporte le support réseau la centrale et la carte FEZ
Panda.
Une carte de conversion TTL/RS485 qui sert à convertir les trames RS485.
Cependant, malgré la possibilité d’ajouter la possibilité de piloter la centrale à distance, ce procédé
présente quelques inconvénients qui sont les suivants :
Prix : ~35€ pour la carte FEZ Panda + ~40€ pour la carte Arduino + ~13€ pour la carte de
conversion TTL-RS485, ce qui implique un coût d’environ 90€, selon les sites/boutiques sur
lesquels la commande est effectuée.
Cette solution a également pour inconvénient d’avoir trois modules à gérer et à
interconnecter.
Le module FEZ Panda accepte uniquement le langage de programmation C# de plus il faut
recompiler le code source puis l’exécuter pour que celui-ci fonctionne.
I.3 – Solution proposée.
Afin de pallier aux problèmes rencontrés, la solution de cette année (2014) est de remplacer le module
déporté (FEZ Panda et la carte Ethernet Shield) pas un Raspberry Pi. La carte convertisseur TTL-R485 a
été conservé car le Raspberry ne dispose que d’une liaison série TTL. De plus :
Le Raspberry Pi peut être géré à l’aide d’un système d’exploitation contrairement à la solution
à base de FEZ Panda et d’Arduino, ce qui apporte la gestion de fichiers.
Diminution du coût et ce de manière significative : ~31€ pour le Raspberry Pi + 13€ pour la
carte de conversion TTL-RS485, ce qui fait un total d’environ 45€ selon les boutiques sur
lesquelles la commande est effectuée.
L’illustration
ci-contre
représente
un devis de la
solution
proposée
pour un seul
module.
Le Raspberry Pi peut accepter plusieurs langages de programmation comme le C++, le C, le
Java etc
YANNICK FROMENTOUX – ALEXIS LOUIS – MARIUS SERGENT
4
Projet GT1 – Clavier Virtuel
LPo Touchard-Washington
BTS IRIS Session 2014
II – Etude du clavier.
II.1 – Présentation du clavier ATS-1111.
Une centrale ATS4000 peut gérer 16 groupes et RAS, eux-mêmes comprenant 16 zones. Ce qui fait 256
zones configurables pour cette centrale.
II.1.1 – Fonctionnement.
Le clavier est utilisé pour piloter la centrale ATS 4000. Il permet l’armement
et le désarmement de la centrale par exemple. Il possède également un
buzzer réglable.
Les différents codes en sortie d’usine sont :
Désactivation
Armement
Désarmement
Accès au menu
1234
1122 + ON
1122 + OFF
MENU + 1278 + ENTER
Le menu permet d’accéder aux fonctions du clavier d’alarme suivantes :
1 - Lire l’état de la centrale
2 - Les zones ouvertes
3 - Visualisation des alarmes séparément
4 - Les zones exclues
5 - Voir l’historique
6 - Visualisation des rapports et des tests
7 - Paramétrer les services
8 - Compteurs
9 - Paramétrer les noms de zone
10 - Exclure une zone
11 - Inclure une zone
12 - Tester une zone
13 - Démarrer les tests
14 - Gérer les utilisateurs
15 - Régler Heure/Date
16 - Exclure/Inclure un RAS (boitier de
commande)
17 - Maintenance
18 - RAZ caméras
19 - Programmation
20 - Groupes de porte et d’étage
21 - Vacances
22 - Ouvrir porte
23 - Ouvrir, Refermer, Bloquer, Débloquer
24 - Imprimer JDB
MARIUS SERGENT
5
Projet GT1 – Clavier Virtuel
LPo Touchard-Washington
BTS IRIS Session 2014
Le clavier de la centrale ATS Master sera décrit ici.
L’écran à cristaux liquides rétroéclairé se compose de 4 lignes
de 16 caractères. Il affiche les messages de la centrale et si
plusieurs claviers sont connectés, celle-ci met à jour les
informations entre eux.
4 LEDs informent l’utilisateur de l’alimentation, des défauts, du
contrôle d’accès et des alarmes.
Le Clavier se compose de 12 touches chiffrées et prenant 3
lettres chacune pour les chiffres de 1 à 9, les autres sont
utilisées pour les caractères spéciaux.
Il y a également 2 boutons ON/OFF, 2 OPEN/CLEAR, 2 de
sélection et 4 flèches de sélection pour naviguer dans les
menus.
La dernière partie du clavier comporte 16 LEDs indiquant l’état
des groupes d’alarmes connectés
L’arrière se compose du système de câblage et d’une série de
dipswitchs, utilisée pour paramétrer l’adresse d’un RAS et la
terminaison du bus (TERM).
Le switch 5 sert à paramétrer TERM sur « ON » le cas échéant. Les
bus ne doivent pas avoir plus de deux switchs ou cavaliers TERM
paramétrés sur « ON ».
L’adresse RAS se configure à l’aide des switchs 1 à 4.
L’illustration ci-contre présente les dipswitchs de configuration d’adresse
des RAS.
MARIUS SERGENT
6
Projet GT1 – Clavier Virtuel
LPo Touchard-Washington
BTS IRIS Session 2014
II.2 Installation du clavier avec Titan
Pour utiliser le logiciel de gestion TITAN, le logiciel demande de s’identifier afin de bénéficier des
contrôles administrateurs
Login : ADVISOR MASTER
Mot de passe : 998765
Le Logiciel Titan permet un contrôle complet de la
centrale : ajout de zone, de groupe et de RAS (claviers).
Pour ajouter un ras, il faut au préalable le déclarer.
Il est possible de paramétrer le numéro de la centrale, le numéro du clavier,
sa dénomination, le nombre d’utilisateurs pouvant y accéder et le numéro de ce clavier au sein du
groupe auquel il est rattaché.
Cette étape est capitale. Si un RAS (Clavier) n’est pas déclaré, il ne
sera pas reconnu par la centrale et donc aucune trame ne lui sera
destinée, empêchant le fonctionnement du système.
Il est également impossible de programmer deux claviers sur le
même numéro. Pour cela les claviers de la série ATS dispose d’un
switch afin de définir leur numéro.
Switch
ALEXIS LOUIS
7
Projet GT1 – Clavier Virtuel
LPo Touchard-Washington
BTS IRIS Session 2014
II.3 Communication du clavier avec la centrale
Fil blanc : Masse
Fil vert : Data +
Fil rouge : Alimentation
Fil jaune : Data -
Protocole :
Il existe plusieurs types de trames, chaque trame commence par l’octet suivant :
0x5E : Octet d’en-tête.
Puis le type de la trame est définit par un des octets suivants :
0x90 : Octet de présence.
0x10 : Octet d’Affichage.
0x50 : Octet d’Affichage 2.
0xD0 : Octet pression de touche.
Le clavier envoi des trames à la centrale d’alarme ATS Master sous forme de trames. Chaque touche
dispose d’un code unique que le Raspberry Pi devra reconstruire pour convertir les informations
venant du téléphone vers la centrale. Chaque trame venant du clavier commence par les deux codes
ASCII 07 01, correspondant respectivement, à un caractère d’appel pour commencer la trame et à l’entête de la trame. Ensuite la trame est complétée par les codes hexadécimaux propres aux touches
pressées.
En plus de transmettre les touches, il est important de pouvoir les afficher et donc d’analyser les trames
d’affichage. Cependant, il est possible que plusieurs claviers soient connectés sur la même centrale
(par exemple un clavier ATS1111 et un opérateur distant). Il est indispensable que chaque utilisateur
puisse la même chose, et ce en même temps. La centrale envoie donc au(x) clavier(s) une trame ASCII,
changeant en fonction du message à afficher.
La trame de présence se définit des deux manières suivantes.
ALEXIS LOUIS
8
Projet GT1 – Clavier Virtuel
LPo Touchard-Washington
•
BTS IRIS Session 2014
Lorsque qu’aucune touche n’est pressée :
5E 9X 02
5E : Début de trame
9X : Clavier visé (9=Pour un
clavier ; X= n° clavier en Héxa)
02 : Caractère d'entête
•
6X 00
Code de fin de trame.
6X : 6D + n° Clavier en Héxa
00 : Octet de Présence
Lorsqu’une touche est pressée :
5E 9X 02
5E : Début de trame
9X : Clavier visé (9=Pour un
clavier ; x= n° clavier en Héxa)
02 : Caractère d'entête
6X
Identification du Clavier
6X : 6D + n° Clavier en Héxa
(LRC)
Touches
0
Suite de la trame
30
1
31
2
32
3
33
4
34
5
35
6
36
7
37
8
38
9
39
Menu
3A
Enter
3B
On-Bas
3E
Off-Haut
3F
Open
48
Clear
3D
07 01 XX YY
07 : Caractère d’appel de la
trame
01 : Entête de données
XX : l’octet correspondant à la
touche pressée
YY : Valeur du LRC de la trame
Dans l’exemple sélectionné, Le 90 correspond
au Clavier n°1 (0x00) et on retrouve bien la
touche
pressée,
la
touche
1, avec
le code
« 31 ».La
trame d’affichage est particulière. Le troisième
5E 10 01
5E : Début de trame
10 : Clavier visé
01 : Définit un changement
d’Affichage Ecran
10 10 00
Code ASCII pour afficher le
Code de fin de trame.
texte à afficher.
Le premier caractère ASCII 10
est une réponse du clavier
validant la trame.
10 00 : Fin de trame
octet définit si le changement est au niveau de l’affichage (0x01) ou d’une LED (0x11). Une trame LCD
pouvant contenir 64 caractères, la taille maximale de cette trame est donc de 70 octets.
ALEXIS LOUIS
9
Projet GT1 – Clavier Virtuel
LPo Touchard-Washington
BTS IRIS Session 2014
Par exemple :
On obtient donc le code ASCII suivant : 13:0b:54:61:70:65:72:20:63:6f:64:65:20:0a:63:6f:64:65:3a:20
Caractère à afficher
Hexa + caractère associé
T
54 T
A
61 a
P
70 p
E
65 e
R
72 r
Espace
20(Espace)
C
63 c
O
6F o
D
64 d
E
65 e
Espace
20(Espace)
Saut de ligne
0a
C
63
O
6f
D
64
E
65
:
3a
Espace
20
ALEXIS LOUIS
10
Projet GT1 – Clavier Virtuel
LPo Touchard-Washington
BTS IRIS Session 2014
Changement d’état de LED :
5E 10 11
07 02 15 00 mm
nn oo pp
5E : Début de trame
10 : Clavier visé
11 : Définit un
changement de LED.
XX 00
15 : Led alarme allumée
mm : Groupe Led 1
nn : Groupe Led 2
oo : Groupe Led 3
pp : Groupe Led 4
Code de fin de trame.
XX : LRC
00 : Fin de trame
Une trame led est donc composée de 13 octets.
Voici une représentation des Leds présentes sur le clavier ATS1111. Les Leds y sont groupées de la
manière suivante.
Groupe Led A
Groupe Led C
Groupe Led B
Groupe Led D
Organisation d’un octet gérant un groupe de Leds :
Led 4
Bit 7
Led 3
Bit 6
Bit 5
Led 2
Bit 4
Bit 3
Led 1
Bit 2
Bit 1
Bit 0
Chaque Led est gérée par 2 bits. Le bit du poids faible (Bit 0, 2, 4, 6) gère l’état de la Led : au niveau 0,
la Led concernée est éteinte ; au niveau 1, la Led est allumée. Le bit de poids (1, 3, 5, 7) fort quant à
lui, gère le clignotement de la Led, en cas d’alarme. Le niveau logique 1 lance le clignotement tandis
que le niveau 0 l’arrête.
Pour gérer les leds d’état (Mise sous tension, mode configuration, alarme et présence de défauts), on
utilise le 6ème octet de la trame.
Mise sous Tension
Mode Configuration
Led Défaut
Led Alarme
Organisation de l’octet de contrôle des Leds D’etat : Organisation de l’octet de contrôle des Leds
D’etat :
Bit 7
Led Clef
Bit 6
Bit 5
Bit 4
Led
Alarme
Bit 3
Bit 2
Led
Défaut
Bit 1
Bit 0
Led Mise
sous
Tension
Un niveau 1 signifie que la Led associé au Bit concerné est allumée tandis que le niveau 0 impose
l’extinction de la Led.
ALEXIS LOUIS
11
Projet GT1 – Clavier Virtuel
LPo Touchard-Washington
BTS IRIS Session 2014
III – Analyse de la solution proposée.
III.1 – Prototypage de l’application mobile.
Une application mobile se doit d’être multiplateforme, nous allons donc nous concentrer sur une
version Android, utilisé sur 68,2% des smartphones, et iOS, présent sur 15% du marché.
La taille du clavier ATS 1111 n’étant pas adaptée à une intégration directe sur smartphone. Il faut créer
une interface spécifique calquée au maximum sur le clavier réel. Compte-tenu de la taille de l’écran, il
faut scinder le contrôleur en deux parties distinctes.
III.1.1 – IHM iOS.
Page principale de l’application :
Le deuxième volet d’affichage de l’application est composé des 16 LEDs
gérées indépendamment les unes des autres.
MARIUS SERGENT
12
Projet GT1 – Clavier Virtuel
LPo Touchard-Washington
BTS IRIS Session 2014
III.1.2 – IHM Android
Solution 1 :
La structure est identique à celle d’iOS. L’objectif est de représenter le plus fidèlement possible le
clavier local. Les LEDs sont situées sur une autre vue. L’inconvénient de cet affichage est qu’il utilise
une vue entière uniquement pour afficher les LEDs. Mais cela permet de les séparer et d’être plus
lisible.
Solution 2 :
Les LEDs sont situées sur un panneau
coulissant en bas de l’application, ce qui
permettrait de conserver la même vue
pour tout le contenu de l’application.
MARIUS SERGENT
13
Projet GT1 – Clavier Virtuel
LPo Touchard-Washington
BTS IRIS Session 2014
III.2 – Moyens de communication avec l’application mobile.
L’application a pour objectif de communiquer sans fil avec la centrale ATS4000. Deux solutions existent
pour la mise en place de ce procédé : le WIFI et la 3G/4G. La première est une solution locale et la
deuxième une solution standard, qui sera utilisée pour un accès distant.
Pour le développement de l’application, une borne WIFI a été mise en place sur un switch aux côtés
de la centrale ATS et du poste informatique.
Pour la connexion depuis un poste distant, l’entreprise utilise actuellement une solution VPN, ce
système sera reproduit dans l’application mobile afin d’avoir une connexion plus stable et sécurisée et
directe avec le système d’alarme.
Le problème lié à la communication sans fil est l’instabilité des transferts et la perte régulière de
connexion en 3G/4G due à l’emplacement géographique de la personne utilisant l’application.
Le second problème est qu’un transfert sans fil offre une possibilité d’écoute d’une personne non
autorisée.
La solution pour stabiliser les transferts est de faire un check d’intégrité (un CRC par exemple) lors de
l’émission et de la réception des informations afin de vérifier qu’aucun élément n’a été omis.
Pour éviter la perte de connexion, un thread au sein de l’application sera chargé de maintenir la
connexion entre cette dernière et le serveur en envoyant régulièrement une confirmation de présence.
En cas de déconnexion, l’application se coupera et une nouvelle connexion sera demandée.
Les échanges seront cryptés selon un algorithme spécifique afin d’exclure tout espionnage possible.
Enfin, l’appairage des périphériques est essentiel pour assurer un niveau correct de sécurité. Il sera
effectué au travers d’une interface web qui permettra de valider ou non l’accès d’un terminal par son
code IMEI ou son adresse MAC. Cette association ne sera nécessaire qu’une seule fois, il sera
également possible de verrouiller l’accès aux fonctionnalités de l’application par un code de sécurité
afin d’éviter tout détournement en cas de vol ou de perte du périphérique.
III.3 – Environnements de développement pour les applications mobiles.
III.4 – ANDROID
III.4.1 – Qu’est-ce qu’Android ?
Android est un système d’exploitation
mobile basé sur Linux. Il est très utilisé
sur les terminaux car il coûte peu cher
et n’est pas très gourmand en
ressources. Au départ, il n’était
disponible que pour les architectures
ARM mais depuis quelques temps, il
arrive sur plateforme INTEL. Le schéma
ci-dessous présente les différents
éléments clefs qui composent
Android :
MARIUS SERGENT
14
Projet GT1 – Clavier Virtuel
LPo Touchard-Washington
BTS IRIS Session 2014
Les applications doivent donc être codées en Java et sont exécutées par la machine virtuelle nommée
Dalvik, le cœur de la couche applicative d’Android, associé à ses librairies, qui permettent, par
exemple, d’accéder au cryptage des données ou encore aux bases SQLite (nécessaires pour conserver
des données de façon permanente au sein du périphérique). Cette machine repose sur le kernel linux
qui contrôle le matériel et en offre l’accès aux couches supérieures. Les frameworks permettent aux
applications d’accéder aux différentes fonctions managées de l’appareil et de l’OS, la couche
applicative n’utilise que des accès simplifiés à ces composants.
III.4.1 – Programmer en Java sous Windows
III.4.1.1 – Java
Installer l’environnement Java dans Windows nécessite quelques ajustements de l’OS.
Après avoir préalablement installé le Java JDK, il faut se rendre dans les paramètres avancés, dans les
variables d’environnement puis définir une nouvelle variable système nommée JAVA_HOME et qui
pointe sur le dossier d’installation du JDK. Ensuite, il est nécessaire de modifier la variable Path afin d’y
rajouter le dossier bin de JAVA_HOME. Ces opérations ont pour but d’intégrer dans Windows les
emplacements des systèmes Java et ainsi pouvoir compiler et exécuter proprement le code.
MARIUS SERGENT
15
Projet GT1 – Clavier Virtuel
LPo Touchard-Washington
BTS IRIS Session 2014
III.4.1.2 – L’environnement de développement
3 opportunités se sont présentées pour le choix du logiciel de développement : QTCreator, qui
comporte depuis peu la compilation pour les systèmes mobiles, Eclipse, logiciel open-source qui est
fourni avec le Android SDK ou Android Studio, dernière sortie de Google pour les développeurs.
Le choix s’est porté sur Android Studio car étant le dernier outil de Google, il offre davantage de
possibilité qu’Eclipse, il est donc plus aisé de travailler avec. Qt Creator n’ayant pas les mêmes
fonctionnalités de test, comme de pouvoir exécuter directement sur un mobile physique. La principale
différence entre les deux logiciels de Google est que l’Android SDK de base repose sur l’IDE Eclipse et
Android Studio fonctionne avec IntelliJ IDEA. Cette dernière version n’est pas 100% stable mais offre,
par exemple, une prévisualisation de l’application en temps réel ainsi qu’une meilleure interface
graphique pour travailler l’IHM.
III.4.1.3 – Installation
Il faut se rendre sur le site de Google dédié aux développeurs Android afin de télécharger Android
Studio.
L’installation se déroule comme une installation Windows standard. L’environnement s’installe dans
C:\Users\UTILISATEUR\AppData\Local\Android\android-studio et créé tous les raccourcis nécessaires.
L’installateur détecte automatiquement l’emplacement de travail (le workspace, c’est-à-dire
l’emplacement où s’enregistrent les fichiers de projet) par défaut se trouve dans
C:\Users\UTILISATEUR\AndroidStudioProjects.
III.4.1.4 – Configuration
Tout d’abord, il faut lancer le SDK Manager, cet outil permet de télécharger et d’installer les différentes
versions d’Android (aussi nommées APIs), l’intérêt est de pouvoir ainsi tester son application sur
différentes plateformes. En général, il faut compiler avec le dernier SDK disponible et sélectionner la
version minimum requise pour l’application dans le code.
MARIUS SERGENT
16
Projet GT1 – Clavier Virtuel
LPo Touchard-Washington
BTS IRIS Session 2014
Pour utiliser un périphérique Android physique pour les tests, il faut également installer les drivers
Google USB et activer le mode débogage USB dans les options pour développeurs des réglages de
l’appareil. Android Studio va alors utiliser les commandes ADB afin de « push » l’application dans la
mémoire, l’installer puis la lancer.
III.5 – iOS
III.5.1 – Introduction :
iOS est le système d’exploitation mobile utilisé par Apple dans ses terminaux mobiles et tablettes. Il
est fondé sur un noyau UNIX.
Le schéma ci-dessus nous montre la structure du système embarqué d’Apple. La machine nommée
Dalvik sur Android s’appelle ici Darwin. Les services cœurs sont exécutés par lui. Sur la couche
supérieure, on trouve les services graphiques et médias, avec les décodeurs, les codecs et
l’accélération graphique. Au-dessus les Frameworks des applications et en dernier l’interface
utilisateur.
Les applications sont écrites en Objectif C, une forme de C orientée objet similaire au Java.
III.5.1.1 – Environnement :
Il a été nécessaire d’utiliser une machine virtuelle MacOS sur un PC à l’aide de VMware afin d’installer
et d’utiliser Xcode, logiciel indispensable pour coder à destination d’un Iphone ou Ipad. Cet IDE permet
en effet de simuler les périphériques Apple ainsi qu’un environnement pour la modélisation graphique.
MARIUS SERGENT
17
Projet GT1 – Clavier Virtuel
LPo Touchard-Washington
BTS IRIS Session 2014
III.5.1.2 – Installation :
Il suffit de posséder un compte Apple et de télécharger l’application gratuite depuis l’AppStore Apple.
Notons que pour charger une application sur le store, il est nécessaire de posséder une licence de
développement coûtant environ 90$.
III.5.1.3 – IDE :
L’environnement Xcode se présente sous cette forme :
A droite l’architecture du logiciel, au centre la page de code et sur la droite les sorties de compilation,
l’historique ainsi que les cibles de sortie.
MARIUS SERGENT
18
Projet GT1 – Clavier Virtuel
LPo Touchard-Washington
BTS IRIS Session 2014
Ici, l’interface permettant de gérer la partie graphique de l’application. Il est possible de créer son
projet dans un autre environnement comme Unity afin de réaliser des applications en 3D ou des jeux.
Ici, il s’agit d’une interface à deux onglets, avec d’autres additionnables, en vues séparées.
Ce screenshot montre la simulation d’un périphérique Apple
par le logiciel. Cette fonction permet de tester son application
sur les différentes gammes d’écrans des appareils de la
marque.
MARIUS SERGENT
19
Projet GT1 – Clavier Virtuel
LPo Touchard-Washington
BTS IRIS Session 2014
III.5.2 – J2objC :
J2objC est un utilitaire console conçu par Google afin de convertir le code java des applications Android
en code objectif C pour les appareils Apple. Il fonctionne sur Mac OS X.
Il suffit d’appeler l’exécutable dans un terminal avec comme paramètre le nom du (des) fichier(s) à
convertir.
Le soft convertit uniquement le squelette et l’architecture du code et une petite partie de son contenu.
Il permet tout de même de gagner de précieuses heures.
MARIUS SERGENT
20
Projet GT1 – Clavier Virtuel
LPo Touchard-Washington
BTS IRIS Session 2014
III.6 – Présentation du Raspberry Pi.
Voici la fiche technique du Raspberry Pi :
Processeur : Broadcom BCM2835 ARM1176JZFS
Fréquence : 700 MHz
Mémoire : 512 Mo
Contrôleur vidéo : Broadcom Videocore 4 GPU
Mémoire vidéo : 512 Mo (partagée)
Connectique : 2x USB, 1x Ethernet, 1x HDMI, 1x Prise d’alimentation micro USB 5V, 1x port de carte
SD, 1x sortie RCA, 1x sortie Jack 3.5 mm, 1x connecteur GPIO 26 broches.
Dimension : 85,6 mm x 54 mm x 17 mm
Système d’exploitation : Aucun à la livraison.
L’illustration ci-dessus, présente toutes les connectiques du Raspberry Pi.
YANNICK FROMENTOUX
21
Projet GT1 – Clavier Virtuel
LPo Touchard-Washington
BTS IRIS Session 2014
Dans le cadre du projet le port Ethernet du Raspberry Pi va être essentiel ainsi que les broches « GPIO »
car les trames émises depuis l’application mobile vont être réceptionnées par la prise RJ-45 puis être
envoyées vers les broches GPIO pour ensuite être transmises à la centrale d’alarme. Notamment, les
échanges qui auront lieu entre le Raspberry Pi et la centrale ATS -4000 se feront à l’aide de la broche
GPIO, qui servira à réceptionner les trames en provenance de la centrale.
Afin de pouvoir exploiter convenablement les capacités du Raspberry Pi (Type B), il faut y installer un
système d’exploitation, étant donné que le processeur du Raspberry Pi embarque un processeur ARM,
le type du processeur n’est pas compatible avec les O.S (Operating Systems, systèmes d’exploitation
en anglais) « traditionnel », il faut en installer un compatible avec l’architecture de ce dernier. Pour ce
faire, nous avons utilisé un paquetage de tous les systèmes compatibles pour ce dernier, appelé
NOOBS (New Out Of Box Software) disponible à cette adresse en téléchargement soit par lien direct
soit par torrent :
http://www.raspberrypi.org/downloads
En effet ce paquetage comprend les systèmes d’exploitation suivants :
Raspbian : Est un système d’exploitation adapté pour le Raspberry Pi, basé sur la
distribution Linux Debian, mais en allégé afin de limiter les baisses de performances du
Raspberry.
Pidora : Est un système d’exploitation pour Raspberry Pi adapté de Fedora qui est luimême basé sur la distribution RedHat.
RaspBMC : Est quant à lui différent des systèmes précédents par le fait qu’il s’agit d'un
O.S ayant pour principale utilisation de servir de HTPC (ordinateur compact ayant pour
principal objectif de diffuser du contenu multimédia sur un téléviseur) et serveur
multimédia. Il est lui aussi basé sur Debian.
OpenELEC : Tout comme RaspBMC, OpenELEC est un système qui a pour but d’être
utilisé comme Media Center.
YANNICK FROMENTOUX
22
Projet GT1 – Clavier Virtuel
LPo Touchard-Washington
BTS IRIS Session 2014
RISC OS : Est le système d’exploitation conçu pour les ordinateurs ou appareils
embarquant des processeurs à architecture RISC et ARM comme le Raspberry Pi.
Arch : Qui est la distribution optimisée pour les processeurs ARM du système
d’exploitation Arch Linux.
Après ce petit tour d’horizon des différents choix possibles de systèmes d’exploitation disponibles pour
le Raspberry Pi, le système qui a été retenu est Raspbian, car ce dernier semble le plus adapté à
l’utilisation requise pour les besoins du projet, car il offre la possibilité de gérer des fichiers, un EDI
peut être installé dessus, contrairement aux systèmes RaspBMC et OpenELEC, il est basé sur Debian,
ce qui offre un accès à une large communauté et une grande diversité de paquets/logiciels mis à
disposition.
III.7 – Environnement de développement du Raspberry Pi.
Pour mener à bien le projet il a été choisis d’installer l’environnement de développement intégré (IDE)
Qt Creator pour la richesse de ses librairies, car il permet de programmer rapidement et efficacement
une interface graphique afin d’effectuer des tests visuels rapidement.
Pour installer l’IDE Qt il faut passer par le terminale de Raspbian, pour y accéder il faut procéder comme
cela :
Menu
Autre
Et sélectionner LXTerminal .
L’illustration ci-contre présente la console
sous de Raspbian.
YANNICK FROMENTOUX
23
Projet GT1 – Clavier Virtuel
LPo Touchard-Washington
BTS IRIS Session 2014
Une fois en face du terminal, les commandes suivantes devront être exécutées :
sudo apt-get install qtcreator
« sudo » permet d’exécuter le reste de la commande en mode « super-utilisateur », puis « apt-get »
est la commande qui va effectuer l’installation ou la désinstaller les paquets depuis un dépôt APT.
Ensuite nous avons « install » qui va installer le dit paquet, pour finir « qtcreator » est le nom du paquet
à installer. Suite à cette commande il se peut que le mot de passe soit demandé selon le système sur
lequel on se trouve, sur Raspbian, le mot de passe n’est pas requis pour l’exécution de celle-ci.
La commande validée, de nombreuses lignes de commandes vont s’afficher sur le terminal, ces
dernières auront pour but de vérifier l’état de la connexion entre le Raspberry Pi et le dépôt de paquets
APT, s’en suit le téléchargement de ce dernier puis l’installation du paquet.
Une fois Qt Creator installé, il nous a fallu entrer la commande suivante :
sudo apt-get install qtcreator-dbg
Comme la commande précédente celle-ci sera exécutée en tant que « super-utilisateur », va
rechercher dans le dépôt ATP le paquet « qtcreator-dbg » et va l’installer. Nous avons besoin du paquet
Qt Creator DBG car il s’agit en réalité de l’IDE Qt Creator mais remanié de manière à être plus léger.
III.7.1 – Installation et paramétrage de l’EDI pour le pc de développement.
De la même que pour le Raspberry Pi, il faut également Qt Creator sur la machine de développement
afin de pouvoir produire le code source. Etant donné que cette machine fonctionne sous Linux Mint
16 (Petra), passer par le terminal est indispensable pour entrer la commande suivante :
sudo apt-get install qtcreator
III.7.2 – Maintenant l’objectif est de configurer Qt pour la cross-compilation.
Malheureusement pour les besoins du projet la configuration de l’environnement de développement
intégré pour la cross-compilation n’a pas pu aboutir. Il sera détaillé prochainement pourquoi cela a été
un échec et quelle solution fonctionnelle est retenue.
Principe : La cross-compilation consiste à développer et compiler un code source sur une machine
(dans notre cas notre PC de développement), pour un environnement autre que celui sur lequel il est
compilé (ici il s’agit du Raspberry Pi), en effet c’est plus simple et surtout plus rapide de compiler un
code sur notre PC de développement que sur le Raspberry Pi en lui-même.
YANNICK FROMENTOUX
24
Projet GT1 – Clavier Virtuel
LPo Touchard-Washington
BTS IRIS Session 2014
L’illustration ci-dessus montre le fonctionnement de Qt quel que soit la version employée.
Le fonctionnement de Qt Creator dépend :
Du module QtCores qui contient toutes les fonctionnalités de bases qui ne concernent
pas les interfaces graphiques.
Du système d’exploitation (O.S).
« gcc-4.7-arm-linux-gnueabihf » qui est le compilateur retenu pour le Raspberry Pi.
Qmake, qui est le lien entre le compilateur, le débuggeur et qt.
Si l’un de ces quatre éléments n’est pas correctement prit en compte, le programme ne fonctionne
pas, la cross-compilation n’aura pas lieu.
Problème rencontré : Lors des différentes tentatives pour paramétrer Qt pour qu’il puisse compiler un
code source afin d’être interprété par le Raspberry Pi, le problème venait du fichier « Qmake » qui
n’était pas compatible avec le compilateur, lorsqu’il a été tenté, en vain, de créer un kit de compilation
spécifique, il était indiqué qu’il était impossible de produire du code pour la version X.X.X de Qt et ce,
peu importe le « Qmake » employé, ou Qt compile « à vide », comme le montre les captures d’écran
ci-après.
YANNICK FROMENTOUX
25
Projet GT1 – Clavier Virtuel
LPo Touchard-Washington
BTS IRIS Session 2014
Sur la capture ci-dessus, Qt qui compile « dans le vide », en effet la compilation a démarré à
11h38’’30 et à 11h47 celle-ci n’avait toujours pas commencé.
Dans ce cas, l’erreur comme quoi le kit de compilation ne peut pas produire du code pour la version Qt
4.8.4.
Solution retenu : Afin de palier à l’échec de la mise en place de la cross-compilation, nous avons mis
en place un serveur NFS afin de transférer le code source produit depuis le PC de développement vers
le Raspberry Pi (ce dernier a été debuggé à l’aide du débuggeur compris sur le Qt Linux du PC) ce qui
évite alors d’avoir à déconnecter soit le clavier, soit la souris pour ensuite lancer le transfert de fichiers.
Pour la compilation Qt Creator a été installé (voir page annexe), nous ouvrons le projet en cours et
lançons la compilation et lançons le programme à partir de l’exécutable produit après la compilation.
YANNICK FROMENTOUX
26
Projet GT1 – Clavier Virtuel
LPo Touchard-Washington
BTS IRIS Session 2014
III.8 – Adaptation de la liaison série du Raspberry Pi
Le Raspberry Pi dispose d’une connectique 26 broches pouvant délivrer des trames TTL. On dispose
d’une broche d’alimentation 5V, une broche 3V3, une broche masse, une broche transmission et une
broche émission.
Cependant pour communiquer la centrale ATS4000 fonctionne sur un
bus RS485, il faut donc relier le Raspberry Pi au bus RS485 par le biais
d’un convertisseur TTL-RS485.
La carte sélectionnée est la MikroElectronika ADM485.
La configuration des pins est paramétrable par les switchs. On peut
donc définir quelles broches recevront ou émettront les données.
Il est impératif d’alimenter le module ADM485 pour assurer le bon fonctionnement du système, en
effet le module consomme 2mA. Pour cela nous disposons d’une broche d’alimentation 5V DC sur le
Raspberry, aucune alimentation externe supplémentaire n’est donc nécessaire.
YANNICK FROMENTOUX – ALEXIS LOUIS – MARIUS SERGENT
27
Projet GT1 – Clavier Virtuel
LPo Touchard-Washington
BTS IRIS Session 2014
III.9 Alimentation du Raspberry Pi
L’installation impose une communication permanente avec le Raspberry Pi afin de garantir le contrôle
de l’alarme à distance. Par conséquent, le Raspberry Pi doit maintenir son alimentation avec celle de
l’alarme afin d’éviter toute coupure volontaire. Seulement la centrale d’alarme se présente de la
manière suivante :
La centrale ATS4000 est alimentée en 12V, et
dispose de bornes 12V [encadré rouge] pour
alimenter les périphériques. Un dispositif
d’alimentation par batterie 12V DC [encadré
orange] a été prévu en cas de coupure du
système d’alimentation principal. La batterie de
sauvegarde se recharge en continu. Cependant
le Raspberry Pi est alimenté, de base, par un
chargeur secteur 5V DC avec une prise micro
USB pouvant délivrer 2A.
La solution adoptée, afin d’inclure le Raspberry Pi sur une borne d’alimentation de la centrale, qui est
en 12V DC, est de relier ce dernier avec un module de conversion 12V DC – 5V DC.
Le module de conversion sera branché sur la borne
d’alimentation auxiliaire, mise en valeur ici.
Le modèle choisi étant indisponible sur un site de référence
sûr (pour faciliter la disponibilité à grande échelle), une
solution alternative est choisie en attendant un choix de
partenaire.
YANNICK FROMENTOUX – ALEXIS LOUIS – MARIUS SERGENT
28
Projet GT1 – Clavier Virtuel
LPo Touchard-Washington
BTS IRIS Session 2014
III.10 – Synoptique de l’architecture du système.
Pour assurer la sécurité du système, les données transmises entre le périphérique mobile et le
Raspberry Pi doivent être cryptées. (Marius explique une des solutions envisageable)
Pour l’alimentation du Raspberry Pi, il est possible d’installer un module afin de convertir la tension
12V DC sortant dans la centrale en 5V DC. Le modèle n’est pas encore définit, par soucis de
disponibilité, ou par soucis de simplicité d’installation.
III.11 – Perspective avec l’application mobile.
Il est possible d’avoir 3 périphériques mobiles simultanément : le client, un télésurveilleur et un agent
de sécurité.
YANNICK FROMENTOUX – ALEXIS LOUIS – MARIUS SERGENT
29
Projet GT1 – Clavier Virtuel
LPo Touchard-Washington
BTS IRIS Session 2014
Le problème principal est la manière d’identifier quel mobile envoie les informations. Il faut donc un
système d’appairage pour limiter les connexions possibles. Mais il faut également une adresse IP
propre à chaque périphérique mobile.
YANNICK FROMENTOUX – ALEXIS LOUIS – MARIUS SERGENT
30