Projet IMA3 P2, 2017/2018, TD1

De Wiki de Projets IMA
Révision datée du 17 juin 2018 à 18:46 par Ibendhia (discussion | contributions) (Fonctionnalités du système)

Projet IMA3-SC 2017-2018

Interface de gestion à interface tangible

Cahier des charges

Description du système

Nous prévoyons de mettre en forme une interface de gestion de Tamagotchi qui serait en relation avec une carte électronique sur un Arduino qui nous indique l'évolution du Tamagotchi à l'aide d'un écran LCD.

Matériel nécessaire

  • SparksFun Inventors Kit
  • Arduino Uno
  • Raspberry Pi 2
  • 4 LEDs
  • 5 résistances 330 ohm
  • Afficheur LCD 2 par 16 bits
  • 2 boutons
  • 1 potentiomètre 22k

Séance 1

  • Mise en place du projet
    Nous avons tout d'abord décidé le sujet que nous allons réaliser et les étapes de sa réalisation.
    Ensuite nous avons listé le matériel dont nous aurons besoin pour notre projet.
    Nous avons enfin prévu deux équipes de deux personnes : la première équipe va s'occuper de la configuration de la Raspberry Pi tandis que l'autre s'occupera de de créer le shield qui sera appliqué sur l'Arduino.
  • Exemple de jeu


Exemple de Tamagotchi

  • Raspberry Pi
    Nous avons débuté la configuration du Raspberry Pi et sommes parvenu à la configuration en point d'accès;
  • Appréhension du logiciel Fritzing
    Découverte du logiciel Fritzing et de l'arduino.
    Mise en place partielle du PCB sur Fritzing.
Aperçu conception PCB

Séance 2

  • Raspberry Pi
    Nous sommes parvenus à mettre en marche l'interface web en relation avec la Raspberry Pi. Insertion d'images et textes sur la page web.
    Quelques problèmes ont été rencontrés lors de la configuration car certaines commandes n'étaient pas indiquées dans le guide. Par exemple ifup wlan qu'il fallait écrire pour réussir la configuration IP des clients WIFI.
  • Appréhension du logiciel Fritzing et mise en place du PCB
    A partir du SparksFun Inventors Kit fourni, nous avons effectué le montage électronique que nous avions réalisé la séance précédente sur Fritzing.
    Nous avons également programmé l'Arduino pour parcourir différents affichages sur le LCD à partir d'un bouton.
Aperçu du montage sur l'Arduino

Séance 3

  • Raspberry Pi
    Nous avons terminé la réalisation du guide pour configurer la Raspberry Pi et avons continué la réalisation du site web dans l'optique de mettre en relation la Raspberry et l'arduino.
  • Mise en place du shield
    Nous avons terminé la réalisation du PCB sur Fritzing et avons lancé sa gravure.
    Nous avons également continué la programmation de l'affichage du jeu de gestion et de l'affichage du PCB.

Hors-séance

Configuration SSH

Tout d'abord, pour pouvoir travailler hors de l'école, on a mis en place un moyen de se connecter en SSH à partir de nos ordinateurs Windows ou Linux avec un câble ethernet. Pour cela, sur le raspberry, dans le fichier /etc/network/interfaces, on écrit la configuration suivante:

auto eth0
iface eth0 inet static
address 192.168.0.200
netmask 255.255.255.0

De même pour nos ordinateurs sous Linux, on écrit la configuration suivante:

auto "nom_port_ethernet"
iface "nom_port_ethernet" inet static
address 192.168.0.11
netmask 255.255.255.0

Puis à partir de la console, on se connecte en SSH avec:

ssh pi@192.168.0.200

Sous Windows, il faut modifier l'IPv4 du port ethernet en question, pour cela, on va dans le panneau de contrôle, puis Network and Sharing Center, puis Change adapter settings, et là on trouve l'adaptateur ethernet. On accède à ses propriétés et on modifie le protocole internet version 4 de cette manière:

Ipv4 exemple.jpg

Maintenant que notre addresse IP ethernet est statique, à l'aide du logiciel Putty, on se connecte en SSH au RPi, comme on voit ci-dessous:

Putty.jpg

PCB

Fonctionnalités du système

Le shield simule le Tamagotchi, en ayant un bouton qui permet de changer d'affichage (niveau et timer de progression), et l'autre qui permet d'entraîner son Tamagotchi pour passer au niveau supérieur. Egalement, on souhaite pouvoir reinitialiser son niveau en appuyant sur les deux boutons simultanément. Il faut donc que ces fonctionnalités soient utilisables sur l'interface web grâce à la liaison série, et que les informations soient synchronisées.

  • Raspberry Pi et interface web
    Avec le websocket, on peut envoyer et recevoir des données de l'interface web sur le Raspberry Pi jusqu'à l'Arduino. On a donc mis en place l'interface ci-contre en HTML et JavaScript en s'inspirant de l'exemple du guide de configuration.
    Interface web
    Le bouton entraîner permet d'augmenter d'un niveau le Tamagotchi.
    Le bouton synchroniser permet de récupérer le niveau du Tamagotchi de l'Arduino car le niveau est réinitialisé à 1 lors de l'ouverture de la page web.
    Niveau du Tamagotchi s'incrémente dès que entraîner est appuyé, et également lorsque le bouton niveau du shield est appuyé, parce que le websocket est en constante écoute de la liaison série.
    Temps d'entraînement est le temps nécessaire entre chaque passage au niveau supérieur.
    Le code commenté est fourni plus bas.

== Bilan ==