Devoir 4 - Système d'alarme Micro:bit

Informations générales

Date limite: 24 Mai, 23:55
Points: 2 point de la note finale
Téléchargement du devoir: Github

Connaissances évaluées

  • Le contrôle des périphériques du Micro:bit.
  • Le stockage de donnes sur Micro:bit
  • Le calcul du temps sur Micro:bit

Règles

  1. Le devoir doit contenir un fichier nommé Readme avec des explications concernant la manière choisie pour résoudre le devoir (-0.1p)
  2. Le devoir doit être implémenté en MicroPython.
  3. Un devoir qui est implémenté seulement pour passer les teste, va être déclasse.
  4. Il doit être possible que le devoir sera fonctionne sur Micro:bit

Copiage

Le devoir est individuel. Toute tentative de copier entraînera 0p pour les devoirs. On utilisera un système automatisé pour détecter le copiage. Si on a des doutes, on va vous adresser des questions supplémentaires concernant le devoir.

Questions

Si vous avez des questions concernant le devoir, posez-les en publiant un issue sur le github repository avec le format [alarm] <le titre de votre question>

NE PUBLIEZ PAS DE CODE SOURCE. Cela est considéré comme copiage et vous aller recevoir 0p pour le devoir.

Si vous voulez recevoir un e-mail lorsque des problèmes sont signalés ou lorsqu'il y a de nouveaux messages, accédez au site github repository et cliquez sur Watch.

Le système d'alarme

Le système d'alarme va avoir le compotament suivant:

  • il peut être configuré par des commandes introduites de l'interface série (le teminal);
  • il peut être arme en appuyant une séquence des boutons;
  • il peut être désarmé en appuyant une séquence des boutons;
  • il peut être configuré pour un désarmement automatique, apres un certain interval de temps;
  • il va stocker un son si le système sera déplace pour 2 secondes;
  • il va stocker les logs en ce qui concerne armement et désarmement;

La devoir va être teste manuellement basé sur une liste de comportements attendus

La configuration du système

Le système sera configuré à l'aide du terminal. Pour initier la connexion au terminal, il suffit d'appuyer sur n'importe quelle touche (hint: uart), après quoi le système affichera une invite sous la forme “alarm cmd>” qui permet l'introduction de commandes de configuration du système. Lorsque le système reçoit des commandes dans le terminal, il ne sera pas en état de fonctionnement (il ne fera rien d'autre que d'exécuter des commandes).

La connexion au terminal est fermée à l'aide de la commande exit.

Nous détaillerons le reste des commandes ci-dessous.

Profils d'utilisateurs

Le système peut sauvegarder 3 profile différentes des utilisateurs. Pour chaque utilisateur on va sauvegarder les informations suivantes:

  • name - le nom d'utilisateur;
  • pin - un code de 4 chiffres utilisé pour armement et désarmement.

Pour configure les profile des utilisateurs seront utilisées les commandes suivantes:

  • profile add name pin - ajoute un nouveau profil; si le profil a ete ajoute avec succès le message Profile added va être affiche; s’il existe déjà un profil avec le mème nom, le pin va être modifie; s'il est essaye d'ajouter un quatrième profile, le message suivant va être affiche: Could not save profile. Limit exceeded.; si le pin n'a pas 4 chiffres le message suivant va être affiche: Could not save profile. Invalid pin.
  • profile delete name - efface le profil identifie par le nom; si la suppression a été effectuée avec succès le texte suivant va être affiché:Profile deleted; si la suppression n'a pas pu être effectue parce qu’il n'existe pas le profil, le suivant message sera affiche: Could not delete profile. Profile name does not exist.

Le système peut être armé et désarmé par n'importe lequel des utilisateurs enregistrés dans le système.

Temps pour l'armement

Le système permettre la configuration du temps pour l'armement. Il est mesuré en minutes et représente la durée pendant laquelle un système reste armé. Par exemple, si le temps d'armement est de 30, 30 minutes après l'armement, l'alarme se désarme automatiquement.

S'il n'est pas modifié, le temps d'armement par défaut est de 1.

Pour mettre le temps d'armement, on va utilise la commande arm time val .

Armement

Pour armer le système d'alarme, appuyez sur les boutons A et B en même temps, à quel point le réseau de LED entrera en mode d'entrée de broche.

Si la broche est insérée correctement, l'armement sera signalée en affichant un visage souriant, et si la broche n'est pas correcte, un visage triste sera affiché.

Après avoir signalé l'armature, jusqu'au désarmement, le système allumera toute la matrice de LED.

Insérer le code pin

Lorsque le système entre en mode d' insérer le code pin, il commence par afficher la valeur 0 à l'aide du tableau de LED et permet d'incrémenter les valeurs à l'aide des boutons A et B. En appuyant sur le bouton A, vous pouvez incrémenter les valeurs et en appuyant sur le bouton B, vous pouvez diminuer les valeurs. Si l'incrément atteint la valeur maximale (9), il continuera avec 0,1,2, etc. Le comportement est similaire si le décrément atteint 0.

Pour sélectionner une valeur, on doit appuyer sur le logo du Micro: bit.

Le système support que les codes PIN à 4 chiffres. Après avoir entré un chiffre, il passera au chiffre suivant, si c'est le cas. Si le quatrième chiffre a été entré, il passera en mode armé / désarmé / erreur.

Désarmement

En mode armé, le système peut être désarmé en appuyant simultanément sur les boutons A et B, après le système entrera en mode d' insérer le code pin. Si le code pin est insérée correctement, le désarmement sera signalé en affichant un visage souriant pendant 3 secondes. Si la broche n'est pas correcte, un visage triste sera affiché pendant 3 secondes et l'alarme continuera à être armée.

Désarmement automatique

Si le temps d'armement est écoulé, le système se désarme automatiquement. Il affichera une fille souriante pendant 3 secondes pour le signaler, après quoi la matrice de LED s'éteindra complètement.

Activation de l'alarme

Si le système est armé, l'alarme sera activée en secouant l'appareil pendant 2 secondes. Dans ce cas, la matrice de LED clignotera entièrement et émettra un son. Il ne s'arrêtera pas tant que le système n'aura pas été désarmé manuellement.

Stockage d'informations

L'alarme contiendra un fichier avec une entrée pour les événements suivants:

  • armement
  • désarmement manuel
  • désarmement automatique
  • activation de l'alarme

Lorsqu'un de ces événements se produit, une ligne <time> <event> sera ajoutée, où time correspond à l'heure et à la minute auxquelles l'événement a ete produit et event est l'un des textes décrits ci-dessous .

Pour calculer l'heure, on considérera que 00:00 correspond à la première fois quand le système a ete chargé, après quoi l'heure sera enregistrée dans l'appareil une fois par minute. Si le système est débranché et rechargé, l'heure actuelle sera la dernière fois enregistrée sur l'appareil.

Messages d'information

Pour stocker des événements sur le dispositif, les messages suivants seront stockés:

  • User armed the system. - pour armer le système, où user est l'utilisateur qui a armé le système;
  • User disarmed the system. - pour le désarmement manuel du système, où user est l'utilisateur qui a désarmé le système;
  • Automatic disarmed system. - pour le désarmement automatique du système;
  • Alarm activated. - pour déclencher l'alarme.

Afficher les informations de l'alarme

Pour lire et supprimer des informations du système d'alarme, les commandes suivantes seront utilisées dans le terminal:

  • log print - affiche toutes les informations;
  • log delete - efface toutes les informations et affiche le message Logs deleted.

Exemple

alarm cmd> log print
02:12 Diana armed the system.
03:15 Ioana disarmed the system.
03:20 Ioana armed the system.
03:50 Automatic disarmed system.
alarm cmd> log delete
Logs deleted.
alarm cmd>

Tester le devoir

Le devoir sera testé manuellement sur un appareil Micro: bit en utilisant les tests publiés.

Envoyer le devoir

Le devoir sera chargé sur github.

sde2/teme/tema_fr_4_microbit.txt · Last modified: 2021/05/18 17:57 by ioana_maria.culic
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0