Abe's children : attention, ça va exploser !

Encadrants : 

Occurrences : 

2014

Nombre d'étudiants minimum: 

4

Nombre d'étudiants maximum: 

4

Nombre d'instances : 

1

 

Certains d'entre vous connaissent peut-être le fameux jeu "Oddworld: Abe's Odyssey". Une charmante petite créature du nom d'Abe devait, notamment, désamorcer une série de bombes clignotant selon différents motifs répétitifs en tapant dessus au bon moment.

Votre mission, si vous l'acceptez, sera de vous débarasser des descendants d'Abe une bonne fois pour toutes en réalisant ce dispositif machiavélique. Pour cela, vous disposerez de ballons de baudruche dans lesquels vous placerez un circuit à base de micro-processeur ainsi que des capteurs, un module radio et des leds. Les ballons discuteront avec un serveur, écrit en Python, qui contrôlera ce jeu mortel (pour les descendants d'Abe).

Chaque ballon clignotera sur une séquence qui lui est propre. Par exemple : rouge - rouge - vert - rouge - rouge - vert. Il faudra lui appuyer dessus au moment où il est vert pour le désamorcer. Une pression au mauvais moment, et c'est l'explosion. Le dernier descendant à être vivant gagne la partie.

Bien entendu, comme la vie est injuste, dès qu'un descendant d'Abe désamorcera sa bombe, la séquence pour les autres deviendra plus complexe ou plus rapide. Et, comme elle est très injuste, des événements imprévus (et très injustes) se mêleront de la partie.

 

Qu'allez-vous apprendre ?

Vous allez apprendre comment réaliser un système simple à base de processeur (similaire à celui vu en ELECINF102, mais un peu plus complexe) et comment le programmer. Soit vous réaliserez des cartes électroniques basées sur un petit processeur (du genre tinyAVR) avec tous les périphériques nécessaires, soit nous ré-utiliserons les Kubz développés en PAF de l'année dernière. Les cartes communiqueront par radio avec un PC, sur lequel vous programmerez le serveur de jeu en Python. Les cartes, elles, seront programmées en C. C'est de la programmation embarquée, différente de celle que vous avez vue dans les UE d'informatique : vous ne disposerez que de très peu de mémoire flash (1 à 4ko) et encore moins de RAM (quelques octets). Vous apprendrez donc à optimiser votre code en taille et en consommation.

Vous apprendrez aussi comment récupérer en C les informations de capteurs extérieurs et comment piloter des périphériques (LED). Enfin, vous apprendrez à mettre en oeuvre un module radio, avec toutes les contraintes associées (interférences, pertes de données) et comment rendre le système robuste à tous ces problèmes.

Ce sera un bon aperçu du parcours de systèmes embarqués !

Attention, ce projet n'est pas simple : il demande un certain goût de la programmation et un investissement conséquent. À réserver aux gens motivés !