IMA4 2017/2018 P7

De Wiki de Projets IMA
Révision datée du 17 janvier 2018 à 17:36 par Sblas (discussion | contributions) (Analyse du second concurrent)


Présentation générale

Généralités

  • Titre du projet: Peach'IncBot (A défaut d'un meilleur nom)
  • Description: Développer une interface sous la forme d'une brique simple (type puzzle) permettant de prévoir le déplacement d'un robot
  • Membres de l'équipe: Maëva Delaporte, Simon Blas

Description

L'apprentissage de l'informatique très tôt dans la scolarité est un atout pour comprendre le monde numérique qui nous entoure.

Cependant, les interfaces traditionnelles d'accès à l'informatique ne sont pas adaptées aux jeunes enfants. En effet, ils ne sont généralement pas lecteurs et leur apprentissage passe essentiellement par le toucher. Notre projet consiste donc à créer un jeu pour enfant les introduisant à la programmation par blocs. L'enfant aurait à sa disposition un tapis de jeu, un ensemble de briques, un robot et un ordinateur. L'enfant devrait construire un chemin formé d'une succession de briques miniatures. Le chemin alors formé serait alors envoyé à l'ordinateur où il serait affiché. Le robot suivrait ensuite les instructions données et réaliserait le chemin correspondant sur le tapis. Les briques ne sont pas à l'échelle du robot, le robot ne pourra donc pas rouler dessus. Elles seront assemblées sous forme de pièces de puzzle.

Objectifs

Ce projet a pour objectif d'éduquer les enfants à la programmation dès leur plus jeune âge de manière ludique.

Pour cela, les différentes parties à réaliser seront:

  • Développer une pièce de puzzle en bois que l'on puisse assembler avec d'autres afin de pouvoir construire des chemins;
  • Ajouter un système permettant de relier électriquement entre eux les morceaux de puzzle et de transmettre le chemin à un PC;
  • Guider le robot sur le chemin correspondant;
  • Associer le déplacement à un code informatique pour amener les plus grands vers la programmation par bloc par exemple.

Analyse du projet

Positionnement par rapport à l'existant

Les robots qui ont déjà été créés dans ce secteur se présentent sous deux formes.

Soit, leur programmation est assurée par un assemblage de pièces à disposer sur un petit puzzle. Dans ce cas, la disposition des pièces ne reflète pas directement le chemin que va prendre le robot, mais simplement l'ordre dans lequel il va effectuer les instructions. C'est le cas notamment du robot Cubetto.

Soit, la programmation est faite à même le robot, à l'aide de touches, généralement disposées sur le "dos" du robot. L'ordre dans lequel on appuie sur les touches correspond alors à la séquence d'instructions que le robot va ensuite suivre lorsqu'on appuiera sur le bouton de démarrage. C'est le cas du Beebot par exemple.

Dans les deux cas, dans le but d'un apprentissage ludique, les robots sont fournis avec un tapis de jeu afin de fournir un support amusant et des objectifs aux enfants.

Notre robot se différenciera de ses concurrents de la façon suivante: la programmation de celui-ci sera assurée par l'assemblage de pièces de puzzle qui auront la forme du chemin que le robot va parcourir. L'enfant pourra donc directement visualiser le chemin qu'il programme, en dehors d'une échelle différente. Le positionnement des pièces se traduira en un programme qui sera alors téléversé vers le robot. SI l'enfant est plus âgé, il pourra également activer un mode plus avancé où le forme du circuit ne représentera plus les directions que prendra le robot mais la forme du programme. Par exemple, une boucle for sera représentée par une boucle de blocs, avec au début et à la fin de la boucle des blocs spéciaux pour l'indiquer. On peut également introduire la notion de choix avec un bloc if qui créera une divergence des chemins que le robot pourrait prendre.

Analyse du premier concurrent

Un jeu aboutit et similaire au sujet existe déjà et s'appelle Cubetto.

Fabriqué en bois robuste, Cubetto fera découvrir le monde de la programmation à votre enfant. Sans écran, intuitif et prêt à l’emploi. Un langage de programmation à toucher et à manipuler comme des LEGO®. À chaque bloc, une action. Combinez-les pour créer des programmes.

Cubetto.jpg

La programmation du Cubetto se fait au moyen de petites pièces de couleur, à insérer dans un certain ordre sur une plaque prévue à cet effet. L'ordre dans lequel est inséré les pièces correspond à l'ordre dans lequel seront effectuées les actions. Une fois les pièces disposées sur le plateau, il suffit d'appuyer sur un bouton pour que le robot suive le programme réalisé. Pour un jeu ludique, le Cubetto est fourni avec des tapis de jeu, qui représentent différents univers. L'enfant dispose ensuite de missions à réaliser sur les différentes cartes, avec pour objectif esquiver certains obstacles ou passer par certains points, objectifs qui lui raconteront une histoire et lui apprendront à se servir des pièces de programmation plus complexes. Il dispose notamment d'un cube bleu, qui permet d'exécuter une séquence d'actions programmées sur une planche à part, et dont l'utilisation devient nécessaire lors de la réalisation des chemins les plus complexes. En effet, sans cette brique, il n'y pas assez d'espace sur la planche-puzzle pour mettre tous les mouvements dont il a besoin.

2.Space V02-01-copy small-640x0-c-default.png

Analyse du second concurrent

Le second concurrent est Beebot ou Mouse, Code & Go. Ces deux jouets fonctionnent de la même manière.


Leur programmation est assurée via les boutons situés sur leur dos. On appuie sur les boutons en séquence pour créer un programme puis on appuie sur un bouton pour lancer l'exécution. Le robot est donc relativement simpliste, et facile à comprendre pour les enfants.

Scénario d'usage du produit ou du concept envisagé

Billy est un jeune enfant qui s'ennuie. Dehors il pleut, et tous ses amis sont occupés. Ses parents sont partis faire des courses et l'ont laissé seul à la maison (il ne sont pas très responsables...). Heureusement, il a à sa disposition, un magnifique jeu: le Peach'IncBot! Grâce à lui, il va pouvoir passer son après midi sans déprimer.

Il commence par déplier son tapis de jeu le plus grand possible. Ensuite, il sort toutes ses briques de construction, et s'attelle à créer un chemin qui passerait par tous les dragons, afin que son robot chevalier puisse se charger de se problème qui terrorise le royaume depuis plusieurs semaines. C'est un défi relativement simple, les dragons ne sont pas très dispersés et Billy parvient sans trop de peine à tous les atteindre avec les briques à sa disposition.

Ensuite se pose un défi plus intéressant. Billy doit faire en sorte que son chevalier réussisse à passer dans toutes les villes afin de déposer les princesses et précédemment délivrées et leur annoncer la nouvelle de sa victoire. Il va cette fois-ci devoir réaliser un chemin aussi optimisé que possible, et ne faire aucun détour car il a juste assez de briques pour réaliser ce parcours.

Réponses aux questions difficiles

Quelle alimentation?

Notre puzzle comportera un bloc de base, comportant la batterie nécessaire à alimenter toutes les pièces qui y seront reliées. La transmission d'énergie et d'information se fera via des picots montés sur ressorts. Lorsque deux briques seront mises en contact, le picot entrera dans la cavité correspondante sur la deuxième brique. Chaque brique aura donc deux côtés, un mâle et un femelle.

Comment les briques vont-elles communiquer?

Les briques utiliseront la communication série. La brique principale utilisera la communication Bluetooth avec l'ordinateur.

Comment faire pour différencier les briques?

Chaque brique aura la forme correspondant à l'instruction qu'elle enverra au robot. Les briques seront de plus colorées pour correspondre au déplacement correspondant et rendre le tout plus visuel pour les enfants. La brique de départ sera unique. Chaque brique aura un identifiant unique qui pourra être transmis via la liaison série. L'identifiant permettra à la brique principale de savoir quelle est la forme de la brique correspondante pour la traduire en instructions.

Quelle sécurité vis-à-vis des enfants?

Les picots permettraient d'éviter aux enfants de se blesser. Si l'enfant appuie sur un picot, celui-ci se rétracte dans sa cavité car il est monté sur ressort, il ne peut donc pas vraiment se blesser avec. Le ressort permet de plaquer les picots l'un sur l'autre.

Préparation du projet

Cahier des charges

Choix techniques : matériel et logiciel

Partie matériel

On peut distinguer trois parties:

Partie briques

Brique principale

  • Pile 9V [1] + Cordon d'alimentation [2]
  • Arduino Uno [3]
  • Module bluetooth pour Arduino [4]
  • PCB (réalisé à Polytech par nous)
  • 4*picots mâle [5]
  • 4*ressorts [6]

(Briques de déplacement)*n

  • Microcontrôleur Atmega 328p [7]
  • PCB (réalisé à Polytech par nous)
  • 8*picots mâle [8]
  • 8*picots femelle [9]
  • 8*ressorts [10]

Nous comptons réaliser au moins huit briques de base. Il nous faudra de plus ajouter des boutons poussoir [11] et des afficheurs 7-segments [12] pour les briques de boucle tant que, des leds [13] pour les boucle if, et des potentiomètres [14] pour les capteurs.

Brique de fins

  • Microcontrôleur Atmega 328p [15]
  • PCB (réalisé à Polytech par nous)
  • 4*picots femelle [16]

Il faudra une brique de fin pour chaque chemin créé.

Partie robot mobile

  • Pile 9V [17] + Cordon d'alimentation [18]
  • Kit roue + moteur *2 [19]
  • Roue folle [20]
  • Contrôleur de moteur [21]
  • Arduino uno [22]
  • Arduino shield pour bluetooth [23]
  • Capteur ultrason [24]

Piste de jeu

Nous verrons si nous pouvons la faire dans le temps imparti. Ce n'est pas une priorité.

Matériau

Bois [25]

Partie logiciel

Arduino IDE, Cad Designer, Altium Designer, Programmateur Atmega 328p

A ajouter/changer: boutons poussoirs pour boucles, Atmega 328p -> atmega, nombres pics, ressorts?

Au début (conception) => communication série donc câbles?

Liste des tâches à effectuer

Partie briques:
1. Programmer les Atmega328p, notamment pour la liaison série
2. Programmer l'arduino uno de la brique principale
3. Créer les boites pour les différentes briques, brique principale, de déplacement et de fin.
4. Créer les PCB pour les différentes briques, brique principale, de déplacement et de fin.

Partie robot
5. Construire le robot
6. Programmer le robot

Partie ordinateur
7. Réaliser le programme sur ordinateur

Partie "tapis de jeu"
8. Réaliser le tapis

Calendrier prévisionnel

Réalisation du Projet

Feuille d'heures

Tâche Prélude Heures S1 Heures S2 Heures S3 Heures S4 Heures S5 Heures S6 Heures S7 Heures S8 Heures S9 Heures S10 Total
Analyse du projet 0


Prologue

Semaine 1

Semaine 2

Documents Rendus