Contrôle de matrice leds, 2011/2012, TD3

De Wiki d'activités IMA

Evaluation informatique et électronique

Gestion de projet / rédaction Wiki

Rédaction correcte mais sans plus; quelques coquilles, un formattage un peu déroutant. Des éléments de gestion de projet donnés dans le Wiki. La gestion de projet en elle même est très satisfaisante puisque que le projet a abouti.

Note 75%.

Test fonctionnels

  • Sous-système : Le système de gestion de matrice de LED est un succès (constaté le 24/05/2012, vidéo à venir), interconnexion FoxBoard / Altium effectuée. Note 120%.
  • Système : Un système a été réalisé en l'espèce d'un jeu de type "snake". Système à priori fonctionnel (la confirmation se fera via la vidéo). Note 100% (à confirmer).

Qualité de la réalisation

  • Informatique. Note
    • procédure de test : Pas de README sur la FoxBoard, banc d'essai avec un cable arraché, tentative de test de snake14 à la main sans vraiment de succès (la gestion des boutons est aléatoire). Note en l'état 50%.
    • pages HTML et Javascript : Non applicable.
    • scripts PHP ou programmes C : Un vrai code C, structuré en fonction, du code mort et un formattage un peu limite. Note 90%
    • installation sur FoxBoard : Les exécutables y sont, tentative de démarrage automatique. Note 80%
  • Electronique :
    • qualité de la réalisation :
    • tests autonomes :

Bilan

Tous les points principaux ont un poids équivalent (sauf "système" qui est un bonus).

Note finale :

Mise en place du jeu SNAKE sur une matrice de LEDs

Introduction

Dans l'optique du projet systèmes communicants, nous avons choisi de mettre en place l'antique (mais non dépassé) jeu SNAKE et de l'appliquer sur les matrices de LEDs fournies. Il est intéressant de rappeler que ce jeu a été vu pour la première fois en 1970 et est devenu populaire pour sa simplicité et sa disponibilité sur tout type de plate-formes. Pour le projet, nous avons donc décidé de réaliser ce jeu entièrement grâce au langage informatique C et les outils électronique de base. Il est évident que deux parties se détachent dans la réalisation de ce projet. Dans ce compte rendu, nous allons vous montrer l'évolution en parallèle de la partie informatique et de la partie électronique. Enfin, nous mettrons en avant la réunion des deux parties pour former le jeu.

Développement par séances

Séance 1 20/04/2012

Après avoir choisi le sujet de notre projet, il a été clair qu'un cahier des charges devait être mis sur papier. Nous avons décidé que :

  • l'utilisateur aura 4 boutons pour diriger le serpent.
  • deux afficheurs 7 segments présenteront le score.
  • pour la matrice de LEDs, 8 mots de 8 bits seront envoyés ainsi qu'un bit d'écriture
  • Un bouton reset sera mis en place pour rafraîchir la matrice avant le début du jeu.


Ensuite,nous avons scindé notre trinôme en deux. Le premier groupe est parti sur le logiciel de conception assisté de circuit électronique afin de concevoir le contrôle de la matrice LEDs.Le second groupe a pris en main la maquette de matrice LEDs et esquissé une interface web de contrôle d'allumage. A la fin de la séance, le groupe s'est remis ensemble pour la mise en commun des idées. Au final, au niveau électronique,un circuit basé sur nos expériences en microprocesseur a été édité et sera testé à la prochaine séance. Au niveau informatique, la maquette de LEDs a été pleinement comprise et la programmation du jeu en langage C est prévue pour la séance prochaine.

==>Prévisions pour la séance du 11/05/2012

  • Programmation du jeu SNAKE
  • Test du circuit électronique
  • Recherche sur la transmission des données
  • Mise en place du tableau des scores du jeu
  • Ajouter des points au cahier des charges


Séance 2 11/05/2012

Le groupe est tout d'abord resté en partie informatique pour mettre au point le jeu du point de vue strictement informatique. Le programme a été conçu tout d'abord en utilisant la maquette arduino donnée par le professeur. Après avoir ébauché les grandes lignes du jeu, le trinôme s'est encore scindé pour pouvoir compléter la partie électronique. Rappelons que le schéma altium avait été déjà testé avec l'oscilloscope et qu il fonctionnait. Il restait donc normalement qu'à câbler une matrice de LEDs. En pratique,le schéma se révéla incomplet.Nous dûmes donc l'améliorer pour qu'il prenne en compte l'affichage croissant des colonnes.


Séance 3 21/05/2012


==> Partie Informatique


Le code du Jeu est enfin terminé. Dés l'or que l'on compile, un message apparait obligeant l'utilisateur à appuyer sur une touche pour démarrer. Ensuite,les touches directionnelles dirigent le serpent vers la direction choisi. Le jeu se termine quand le serpent se mort la queue ou lorsque le serpent atteint les zones limites.


Fichier:Snake.c.txt

==> Partie Électronique La partie Informatique étant fini, nous sommes tous retournés sur altium pour terminer le schéma et le compiler sur la nanoBoard. A la fin de la séance, le schéma marchait, et ressemblait à ceci: Fichier:Sch.pdf

Nous avons donc fait quelques tests supplémentaires sur oscilloscope pour vérifier que les sorties répondait correctement à nos attentes.

Suite à cela , nous avions besoin de câbler la matrice de LEDs en suivant son schéma

[1]

Matrice-cablee.jpg


==> Réunion des deux parties

======>Configuration de la Foxboard

Dans la Foxboard, il faut changer les paramêtres de l'interface afin de pouvoir se connecter et travailler en SSH.

AVANT MODIFICATIONS

                  auto eth0
                    iface eth0 inet static
                    address 172.26.79.X
                    netmask 255.255.255.0
                    gateway 172.26.79.254
                    dns-nameservers 193.48.57.34

APRES MODIFICATIONS

                  auto eth0
                    iface eth0 inet static
                    address 172.26.79.07
                    netmask 255.255.255.0
                    gateway 172.26.79.254
                    dns-nameservers 193.48.57.34

Par la suite, il faut donc se connecter en SSH sur la foxboard ( commande: ssh 172.26.79.07) et copier le programme dans la mémoire du petit appareil et compiler le programme(scp -r snake.c root@172.26.79.07:/root/rep/).

======>Initialisation du port émission RS 232

Port-emission2.jpg

A défaut de pouvoir mettre en place le protocole d'émission par nous même, nous avons utilisé un bloc fait par un des professeurs Ce bloc a pour but d'activié le port RS 232 de la NanoBoard afin de pouvoir brancher la Foxboard. En clair, ce bloc est le passage de la frontière entre le programme informatique C et la partie électronique active sur la NanoBoard.

Explication de la partie Electronique

Fichier:Sch.pdf Dans cette partie nous allons détailler, la partie électronique compilé sur la NanoBoard.

==>Capture des octets et enregistrement. Dans cette partie du schéma, nous réceptionons 8 mots d'un octet Suite à cette réception,nous utilisons l'ensemble démultiplexeur-compteur pour enregistrer chaque octet dans un registre. En effet, l'ensemble autorise tour a tour l'enregistrement dans les registres. ==>Multiplexage et répartition des octets. Dans cette partie,à l'inverse de la précédente, nous allons prendre dans chaque registre ( avec l'ensemble multiplexeur_compteur) pour les porter sur chaque ligne de la matrice. ==>Sélection de la colonne Même système de selection

==Explication de la partie Informatique.

Conclusion

Le système que nous avons choisi est le mythique jeu Snake.Nous avons spliter le sujet en deux parties, l'une informatique et l'autre électronique. La partie électronique s'est axé autour du logiciel Altium et la Nanoboard.Après des essais théorique fructueux et des essais sur matrice encourageantes, nous avons décidé de reformer le trinôme afin de compléter la partie informatique. La partie informatique a été très rapide au niveau du codage du jeu. Après avoir réussi à configurer le daemon et la FoxBoard, nous avons pu voir le jeu fonctionner sous maquette Arduino.