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/19 21:11] bmessiha [RENDU FINAL] |
cours:oc:gr7_16_17:gr7_16_17 [2017/02/19 23:49] (Version actuelle) bmessiha [Installation] |
||
---|---|---|---|
Ligne 92: | Ligne 92: | ||
- | ====RENDU FINAL==== | + | =====RENDU FINAL===== |
- | ===Amelioration=== | ||
- | * 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). | ||
- | * 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). | ||
- | ===Reste à faire=== | + | ====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. | 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:** | **Comment appliquer ça:** | ||
- | 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”. En disant “the light” le périphérique choisit sera les lampes connectées, et la commande sera “turn on”.. | + | * 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=== | ===Installation matérielle=== | ||
* Brancher l'émetteur IR dans le port RPISER (serial du raspberry pi) | * 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 | * Brancher les boutons sur les port D2,D3,D4,D7 | ||
* D2 : Commencer la reconnaissance vocale | * D2 : Commencer la reconnaissance vocale | ||
Ligne 117: | Ligne 129: | ||
1- Démarrage UPNP depuis la carte originale: | 1- Démarrage UPNP depuis la carte originale: | ||
- | * Connexion SFTP avec Nom d’utilisateur “pi” et le mot de passe “root” | ||
* Lancer “main.py” (sudo python main.py) depuis l'espace ~/PyUPnP-master/examples/mediaserver/ | * Lancer “main.py” (sudo python main.py) depuis l'espace ~/PyUPnP-master/examples/mediaserver/ | ||
2- Installation from scratch et configurations logiciels et matériels: | 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 | Tout d'abord, il faut installer la version raspbian jessie lite version 4.4.21-v7 sur la raspberry | ||
- | Il faut aussi configurer le SSH sur la raspberry | ||
Il faut ensuite installer les composantes suivantes: | Il faut ensuite installer les composantes suivantes: | ||
* Sudo apt-get install Python 2.7 Python-pip | * 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. | * 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 1 : suivant: https://github.com/fuzeman/PyUPnP, il contient les fichiers sources python UPNP de base. Ça sera le dossier principale de notre projet. | ||
Ligne 129: | Ligne 141: | ||
* Executez la commande “python setup.py install” depuis l'espace “PyUPnP/” créer par le repository 1. | * 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/ | * Enfin Lancer “main.py” (sudo python main.py) depuis l'espace ~/PyUPnP-master/examples/mediaserver/ | ||
+ | |||
===Installation et démarrage du WComp=== | ===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|}} |