\begin{exercise}[subtitle={Découverte du Microbit}, step={1}, origin={Ma tête}, topics={ Informatique embarqué et objets connectés }, tags={ Python, Microbit }]
    Ci-dessous, vous avez une image représentant la carte Micro:bit.
    \begin{center}
        \includegraphics[scale=0.6]{./fig/micro-bit}
    \end{center}
    \begin{enumerate}
        \item Classer les éléments suivants dans les trois catégories (capteurs, actionneurs et transmetteurs)
            \begin{multicols}{2}
                \begin{itemize}
                    \item Capteurs de lumière
                    \item Broches de connexion (pin ou GPIO)
                    \item Capteurs de température
                    \item Une boussole
                    \item Capteurs de mouvements (accéléromètre et boussole)
                    \item Interface USB
                    \item 25 LEDs programmables individuellement
                    \item 2 boutons A et B
                    \item Communication sans fil, via Radio et Bluetooth
                \end{itemize}
            \end{multicols}
        \item Repérer sur la carte le éléments précédemment listé.
        \item Imaginer 3 utilisations possibles de cette carte pour faire des objets connectés.
    \end{enumerate}
\end{exercise}


\begin{exercise}[subtitle={Matrice Led}, step={2}, origin={Ma tête}, topics={  Informatique embarqué et objets connectés }, tags={ Python, Programmation, Architecture }]
    Dans cet exercice, vous apprendrez à utiliser la matrice de led.

    Page de la documentation officiel traitant des images :
    \begin{center}
        \url{https://microbit-micropython.readthedocs.io/fr/latest/tutorials/images.html}
    \end{center}

    La documentation nous invite à essayer ce premier programme

    \begin{center}
        \begin{minipage}{0.5\linewidth}
            \inputminted[bgcolor=base3,linenos]{python}{./scripts/02_image.py}
        \end{minipage}
    \end{center}

    \begin{enumerate}
        \item Écrire le programme proposé et le déposer sur la carte pour voir le dessin affiché.
        \item Affichage d'images pré-dessinées
            \begin{enumerate}
                \item En vous basant sur la documentation, modifier le programme précédent pour afficher un visage de colère.
                \item Pour afficher plusieurs images les unes à la suite des autres, il faut faire une pause entre.
                    \begin{center}
                        \begin{minipage}{0.5\linewidth}
                            \inputminted[bgcolor=base3,linenos]{python}{./scripts/02_image_time.py}
                        \end{minipage}
                    \end{center}
                    Modifier le programme précédent pour faire tourner une aiguille comme une montre.
            \end{enumerate}

        \item Affichage d'images personnelles
            \begin{enumerate}
                \item Lire la suite de la documentation pour afficher des images personnelles.
                \item Choisir deux images de cette banque et les afficher sur la matrice de led.
                    \begin{center}
                        \includegraphics[scale=0.8, angle=90]{./fig/5x5}
                    \end{center}
            \end{enumerate}

        \item Affichage de texte: La méthode \texttt{display.scroll(....)} permet de faire défilé du texte.

        Faire défiler votre nom sur la matrice.
    \end{enumerate}
\end{exercise}

\begin{exercise}[subtitle={Animations}, step={3}, origin={Ma tête}, topics={  Informatique embarqué et objets connectés }, tags={ Python, Programmation, Architecture }]
    Dans cet exercice, on propose de faire des animations sur la matrice de leds.

    Par exemple faire déplacer un point sur la matrice.

    \begin{center}
        \begin{minipage}{0.7\linewidth}
            \inputminted[bgcolor=base3,linenos]{python}{./scripts/04_for_led.py}
        \end{minipage}
    \end{center}

    Modifier le programme précédent pour faire les animations suivantes:
    \begin{enumerate}
        \item Éteindre la led allumée avant d'activer la suivante pour donner l'impression que c'est un point qui bouge.
        \item Faire clignoter deux fois chaque led de la première ligne avant de passer à la suivante.
        \item Faire parcourir au point toute la matrice led.
    \end{enumerate}
\end{exercise}

\begin{exercise}[subtitle={Utiliser les capteurs}, step={3}, origin={Ma tête}, topics={  Informatique embarqué et objets connectés }, tags={ Python, Programmation, Architecture }]
    Dans le premier exercice, nous avons vu que la carte micro-bit contenait plusieurs capteurs. Voici un programme simple qui affiche la température.

    \begin{center}
        \begin{minipage}{0.7\linewidth}
            \inputminted[bgcolor=base3,linenos]{python}{./scripts/05_temperature.py}
        \end{minipage}
    \end{center}

    \begin{enumerate}
        \item Programmer la carte avec le code ci-dessus et vérifier qu'il fonctionne.
        \item Expliquer ce que fait chaque ligne du programme. À quoi peut service la ligne \mintinline{python}{while True:}?
    \end{enumerate}
\end{exercise}

\begin{exercise}[subtitle={Utiliser les boutons}, step={3}, origin={Ma tête}, topics={  Informatique embarqué et objets connectés }, tags={ Python, Programmation, Architecture }]
    Ci-dessous un exemple de programme utilisant les boutons.
    \begin{center}
        \begin{minipage}{0.7\linewidth}
            \inputminted[bgcolor=base3,linenos]{python}{./scripts/05_boutons.py}
        \end{minipage}
    \end{center}
    \begin{enumerate}
        \item Programmer la carte avec le code ci-dessus et vérifier qu'il fonctionne. Que fait ce programme ?
        \item Transformer ce programme pour qu'il affiche la température quand le bouton A est pressé.
        \item Écrire un programme qui allume la led centrale, qui la fait se déplacer à droite quand le B est pressé et vers la droite si c'est le bouton A.
    \end{enumerate}
\end{exercise}

\begin{exercise}[subtitle={Jeu final - Pierre Feuille Ciseau}, step={3}, origin={Ma tête}, topics={  Informatique embarqué et objets connectés }, tags={ Python, Programmation, Architecture }]
    On souhaite créer un jeu de pierre feuille ciseau sur micro-bit pour jouer contre l'ordinateur.

    \begin{enumerate}
        \item Dessiner 3 icônes pierre, feuille et ciseaux puis les afficher les unes à la suite des autres sur l'écran du micro-bit.
        \item Le programme ci-dessous permet de choisir au hasard entre \mintinline{python}{"P"} (pour pierre), \mintinline{python}{"F"} (pour feuille) et \mintinline{python}{"C"} (pour ciseau)
            \begin{center}
                \begin{minipage}{0.7\linewidth}
                    \inputminted[bgcolor=base3,linenos]{python}{./scripts/05_PFC.py}
                \end{minipage}
            \end{center}
            Adapter le programme pour qu'il affiche vos icônes à la place du nom du choix.
        \item Ajouter un décompte (de 3 à 1) au début du programme (après le \mintinline{python}{while True}).
        \item Avant de faire faire un choix au hasard au microbit, donner la possibilité à l'utilisateur de faire sélectionner sont choix :
            \begin{itemize}
                \item Quand bouton A est pressé, c'est Ciseau
                \item Quand bouton B est pressé, c'est Pierre
                \item Quand bouton A et B sont pressés, c'est Feuille
            \end{itemize}
            Si aucun choix n'a été fait, le joueur perd.

            Afficher le choix de l'utilisateur puis celui de l'ordi.
        \item Après que le choix de l'utilisateur et celui du microbit sont affichés, afficher une icône pour savoir si on a gagné ou perdu.
        \item Faire évoluer son programme pour que le décompte se fasse sur 5 secondes et est représenté avec les led de la première ligne qui s'éteignent une par une.
        \item Compter les points et afficher le score du joueur à chaque début de parties (avant le décompte).
        \item Bonus: adapter ce jeu pour que deux personnes sur micro-bit puissent s'affronter.

    \end{enumerate}
\end{exercise}
