Malette Arduino éducative I

De Wiki de Projets IMA
Révision datée du 12 avril 2015 à 21:23 par Yhu (discussion | contributions) (Avancement du Projet)


Cahier des charges

Présentation générale du projet

Contexte

Ce projet est réalisé dans le cadre de notre quatrième année en IMA, alors que la question de comment intéresser les plus jeunes à la programmation se pose, et encore plus difficile : comment faire pour que les prochaines promotions d'IMA réussissent à comprendre quelque chose en système.

Objectif du projet

L'objectif de notre projet est de concevoir des shields Arduino pour les TP système en IMA4 et pour une mallette à vocation pédagogique (fin de primaire / collège) pour l'initiation à la programmation sur Arduino

Description du projet

Ce projet s'intéresse au développement de logiciels et des bibliothèque associées.

La première partie de ce projet consiste à concevoir l'ordonnanceur pour le Shield "TP système" conçu et réalisé dans un autre projet.

La seconde partie est à destination d'enfants. Polytech est engagée dans la sensibilisation aux sciences des enfants de primaire et du collège. Cela s'est traduit par exemple à la mise en place d'une compétition de robotique pour les élèves de primaire

Afin d'aller plus vers l'apprentissage de la programmation, nous envisageons d'initier des élèves à la plateforme Arduino.

Il est demandé de concevoir et réaliser :

  • une mallette avec un Arduino,
  • des exemples de projets réalisables par des enfants, soit en autonomie (collège) soit accompagnés (primaire),
  • une documentation claire et didactique pour les enfants,
  • une documentation plus approfondie pour les enseignants.

Choix techniques : matériel et logiciel

Logiciel:

  • Pour la programmation, nous allons utiliser le langage C.

Matériel de développement :

  • Un arduino Uno [disponible au 29/1/2015 en E306 (dans votre casier)]
  • Une matrice RGB 8*8 [disponible au 29/1/2015 en E306 (dans votre casier)]
  • Matrice 8*8 monocolore utilisant le bus i2c [disponible au 29/1/2015 en E306 (dans votre casier)]
  • Un afficheur 4*7 segments [disponible au 29/1/2015 en E306 (dans votre casier)]
  • Une LED rouge [disponible au 29/1/2015 en E306 (dans votre casier)]
  • Une LED jaune [disponible au 29/1/2015 en E306 (dans votre casier)]

Etapes du projet

La première étape du projet sera de l'ordonnanceur de démonstration du Shield pour les TP système d'ordonnancement. Ce shield comporte une matrice 8*8 RGB SPI, une LED rouge, une LED jaune, un afficheur 4*7 segments SPI et une matrice 8*8 monocouleur utilisant le bus I2C.

Planning prévisionnel de l'avancement du projet

Semaine 1 : réalisation du programme correspondant au premier shield : ordonnanceur, conception de la carte

semaine 2 : fabrication du shield et prise de rendez-vous avec tuteur pour la suite du projet.

Avancement du Projet

Semaine 1

Discussion autour du projet, détailler le cahier des charges et préciser le but du projet.

Semaine 2

Recherches documentaires sur les bus SPI et I2C

Semaine 3

Ecriture des programmes pour faire fonctionner la matrice de LEDs I2C, l'afficheur de 7-segments SPI et la matrice RGB SPI.

Semaine 4

Tests des programmes sur le matériel.

Semaine5

Ecrire la bibliothèque pour le timer, celle pour le bus SPI ,celle pour bus I2C, celle pour le port série et celle pour les sémaphores. Commencer à réaliser l'ordonnanceur à partir de sources fournies.

Semaine6

Commencer la seconde partie du projet. Selon les règles que mehmet a défini des jeux, il faut réalisé les 4 jeux:

1- Le tape-taupe : une des six LED s’allumera pendant un certain temps pendant lequel il faudra appuyer sur le bouton correspondant. Un signal sonore indiquera si « le point a été marqué »

2-étape à réaliser:

  • Partie led : afin de allumer les leds par hasard, j’ai utilisé une fonction random() qui peux fabriquer des chiffres aléatoire entre 0 à 4 correspondant aux pins des différents leds. Pour augmenter les niveau de difficultés, les intervalles du temps entre les led diminuent chaque 20 fois .
  • Partie bouton: si le bouton est appuyé avant le prochain led s’allume, le variable right++.
  • Partie évaluation: selon le valeur de right, le jeu vas donner des résultats aux joueurs.

Semaine7

-le casse-tête : l’appuie sur un bouton changera l’état d’une ou plusieurs LED, l’objectif sera d’allumer toutes les LED

  • Partie bouton: si le bouton est appuyé, certains leds changent état ( éteint ->allumé , allumé ->éteint ), le jeu s’arrêt jusqu’à tous les leds s’allument.

-le piano : La programmation de ce dernier sera de lié à chaque bouton un son (fréquence, amplitude) qui sera joué par le haut-parleur.

  • Partie bouton: différents boutons sont appuyés, différentes notes sont créés par le haut-parleur. Ici, comme la libraire a déjà intégré dans l’IDE arduino, la fonction tone(pin, frequency, duration) peut être utilisé directement.

Semaine8

-répète après-moi : Il s’agira de programmer une séquence d’allumage de LED de plus en plus difficile à suivre. Le joueur essaiera de refaire la séquence. Deux bips sonores différents permettront de savoir si c’est un échec ou une réussite.

  • Partie led: la séquence d’allumage de LED est programmé par la fonction random (), il est de plus en plus difficile car la séquence est de plus en plus difficile. Une variable défini pour stocker la séquence.
  • Partie bouton: après les allumés des leds terminent, le joueur appuye les boutons correspondants, la séquence va stocker dans une autre variable.
  • Partie évaluation: si les deux variables sont mêmes, il va passer au niveau plus haut.

Semaine9

il existe des problèmes comme la instable de bouton, donc j'ai utilisé beaucoup de temps pour déboguer les programmes. enfin, ils tout fonctionnent, mais il faut encore des améliorations et simplifications.

Fichiers Rendus

Bibliothèque