Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
cours:oc:gr7_16_17:gr7_16_17 [2017/02/14 13:40] bmessiha |
cours:oc:gr7_16_17:gr7_16_17 [2017/02/19 23:49] (Version actuelle) bmessiha [Installation] |
||
---|---|---|---|
Ligne 91: | Ligne 91: | ||
{{:cours:oc:gr7_16_17:capture2.png?300|}} | {{:cours:oc:gr7_16_17:capture2.png?300|}} | ||
+ | |||
+ | =====RENDU FINAL===== | ||
+ | |||
+ | |||
+ | ====Reste à faire==== | ||
+ | |||
+ | Notre projet est complet et fonctionnel pour la commande du TV par des commandes vocales depuis l’utilisateur, et aussi par des boutons. Ce qui reste à faire est de contrôler autre appareil UPNP, (exemple: Network Light) par le même type des commandes. L'intérêt de ça est que nous voulons créer un objet qui sera la moyenne de communication avec les autres périphériques de la maison. Alors c’est important que notre objet contrôle, avec la commande vocale, la lumière, la music, la machine à laver...etc. | ||
+ | |||
+ | **Comment appliquer ça:** | ||
+ | * Ajouter la possibilité de changer la télécommande (IR remote) dynamiquement avec une action en donnant en paramètre la télécommande exigée (exemple: TV Samsung). Cet action peut être exécuté avec la commande vocal du l’utilisateur. | ||
+ | * Modifier l’architecture en encapsulant en plus les services: Faire une service pour la reconnaissance vocale + une autre service pour l’analyse de la phrase reconnue, au lieu de les faire dans une seule service. Ce qui va nous donner une flexibilité pour utiliser seulement la reconnaissance vocale et aussi pour ajouter plus de fonctionnalité au niveau d’analyse (exemple: analyser la phrase pour savoir si l’utilisateur veut changer la télécommande). | ||
+ | * La service d’analyse qui sera implémentée dans la raspberry pi, va changer l'événement de la commande qui correspond au périphérique UPNP mentionné dans la phrase de l'utilisateur. Exemple: L’utilisateur dit “ Turn on the light”. Le périphérique choisit sera les lampes connectées, et la commande sera “turn on”.. | ||
+ | * Pour contrôler un autre appareil (qui exige par exemple HTTP request), profitant de notre architecture modifié, il va falloir ajouter un bean qui utilise comme événement depuis la raspberry pi la commande vocale analysée, et exécute une action pour contrôler l’appareil (exemple: si on veut communiquer avec un smart TV avec votre objet). | ||
+ | |||
+ | ====Code Source==== | ||
+ | * Embarqué (UPnP): https://github.com/bichoymessiha/PyUPnP-VoiceControl | ||
+ | * Wcomp Source : {{:cours:oc:gr7_16_17:wcomp.zip|}} | ||
+ | ====Installation==== | ||
+ | |||
+ | ===Installation réseaux=== | ||
+ | On a configuré la rasp de sorte qu'elle connecte automatiquement au réseau privé (mobile hotspot). | ||
+ | Il faut d'abord choisir le réseau sur lequel vous allez connecter et suivre les étapes du lien suivant pour la rendre la connection par default: http://weworkweplay.com/play/automatically-connect-a-raspberry-pi-to-a-wifi-network/ | ||
+ | |||
+ | Installer PuTTY pour la connection ssh | ||
+ | Utilisateur: pi | ||
+ | Mot de passe: root | ||
+ | |||
+ | ===Installation matérielle=== | ||
+ | * Brancher l'émetteur IR dans le port RPISER (serial du raspberry pi) | ||
+ | * Brancher la carte son usb avec le micro. | ||
+ | * Brancher les boutons sur les port D2,D3,D4,D7 | ||
+ | * D2 : Commencer la reconnaissance vocale | ||
+ | * D3 : Bouton Power | ||
+ | * D4 : Bouton Mute | ||
+ | * D5 : Bouton Volume up | ||
+ | ===Installation et démarrage du raspberry=== | ||
+ | |||
+ | 1- Démarrage UPNP depuis la carte originale: | ||
+ | * Lancer “main.py” (sudo python main.py) depuis l'espace ~/PyUPnP-master/examples/mediaserver/ | ||
+ | 2- Installation from scratch et configurations logiciels et matériels: | ||
+ | Tout d'abord, il faut installer la version raspbian jessie lite version 4.4.21-v7 sur la raspberry | ||
+ | Il faut ensuite installer les composantes suivantes: | ||
+ | * Sudo apt-get install Python 2.7 Python-pip | ||
+ | * sudo pip install soappy | ||
+ | * sudo pip install twisted | ||
+ | * Telecharger et installer GrovePi via le lien suivant https://www.dexterindustries.com/GrovePi/get-started-with-the-grovepi/setting-software/ puis executer la commande d’installation. | ||
+ | * Téléchargez le repository 1 : suivant: https://github.com/fuzeman/PyUPnP, il contient les fichiers sources python UPNP de base. Ça sera le dossier principale de notre projet. | ||
+ | * Téléchargez le repository 2 : suivant: https://github.com/bichoymessiha/PyUPnP-VoiceControl, il contient notre fichiers sources pour ce projet. Puis copiez les fichiers du dossier “service” dans le dossier “pupnp/services”. Puis copiez le contenu du dossier “examples” dans le dossier “examples/mediaserver” | ||
+ | * Executez la commande “python setup.py install” depuis l'espace “PyUPnP/” créer par le repository 1. | ||
+ | * Enfin Lancer “main.py” (sudo python main.py) depuis l'espace ~/PyUPnP-master/examples/mediaserver/ | ||
+ | |||
+ | ===Installation et démarrage du WComp=== | ||
+ | |||
+ | * Il faut ajouter le fichier binaire Raspberry_Pi_Voice_Commander.UPnP2Bean.dll sous la directoire Beans sous la directoire d'installation de SharpDevelop. Ce fichier contient le UPnP device. | ||
+ | * Sous SharpDevelop : Fichier → Nouveau → Fichier… → Sélectionner la catégorie WComp.Net et choisissez C#Container → Créer. | ||
+ | {{:cours:oc:gr7_16_17:container.png?300|}} | ||
+ | * Importer directement les containers : WComp.NET → Import … et sélectionner le fichier .wcc précédemment téléchargé. | ||
+ | |||
+ | ====Photos==== | ||
+ | |||
+ | |||
+ | |||
+ | Copie d'écran de la composition | ||
+ | |||
+ | {{:cours:oc:gr7_16_17:design.png?400|}} | ||
+ | |||
+ | Copie d'écran de Device Spy | ||
+ | |||
+ | {{:cours:oc:gr7_16_17:devicespy.png?400|}} | ||
+ | |||
+ | Photo de l'objet démonté | ||
+ | |||
+ | {{:cours:oc:gr7_16_17:untitled_presentation.png?600|}} |