\begin{exercise}[subtitle={Découverte de la carte Micro:bit}, step={1}, origin={Ma tête}, topics={ Programmation Python et microbit }, tags={ Python, Programmation, Architecture }]
    \begin{enumerate}
        \item Observer la carte micro:bit puis identifier les éléments présents en les reportant sur le schéma ci-dessous
            \begin{center}
                \includegraphics[scale=0.5]{./fig/micro-bit}
            \end{center}
        \item Classer ces éléments dans l'une des trois catégories suivantes: capteur, actionneur, autre. Imaginer une utilité possible de ces éléments.
        \item Trouver la documentation officielle (en français) de la programmation de cette carte en python (micropython ici).
    \end{enumerate}
\end{exercise}

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

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

    La documentation nous invite à essayer ce premier programme

    \begin{center}
        \begin{minipage}{0.5\linewidth}
            \lstinputlisting{./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 faire afficher d'autres images.
                \item Pour afficher plusieurs image les unes à la suite des autres, il faut faire une pause entre.
                    \begin{center}
                        \begin{minipage}{0.5\linewidth}
                            \lstinputlisting{./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 Reproduire quelques caractères du tableau suivant
                    \begin{center}
                        \includegraphics[scale=0.8]{./fig/5x5-charmap}
                    \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={Quelques capteurs}, step={2}, origin={Ma tête}, topics={ Programmation Python et microbit }, tags={ Python, Programmation, Architecture }]
    Comme sur dans le premier exercice, la carte micro:bit est composé de quelques capteurs.
    \begin{enumerate}
        \item Pour accéder au capteur de température, il faut utiliser la commande \texttt{temperature()}.

                Écrire un programme qui fait défiler la température.
        \item Pour accéder au capteur de la boussole, il faut utiliser la commande \texttt{compass.heading()}.

            Écrire une programme qui fait défiler la direction de la boussole.

        \item Écrire un programme qui affiche une image, puis la température et enfin la direction de la boussole.

        \item Critiquer les deux qui viennent d'être écrits. Pourquoi ne sont-ils pas satisfaisants?
    \end{enumerate}
\end{exercise}

\begin{exercise}[subtitle={Boucles infinies}, step={3}, origin={Ma tête}, topics={ Programmation Python et microbit }, tags={ Python, Programmation, Architecture }]
    Pour mettre à jour de façon continue une valeur, il faut utiliser une \textbf{boucle infinie} pour mesurer la valeur puis éventuellement l'afficher.
    \begin{center}
        \begin{minipage}{0.5\linewidth}
            \lstinputlisting{./scripts/03_temperature_infinie.py}
        \end{minipage}
    \end{center}
    \begin{enumerate}
        \item Décrire ce que fait chaque ligne du programme.
        \item Écrire un programme qui indique la direction dans laquelle pointe la carte à tout moment.

            \textit{Pour calibrer la boussole, vous pouvez utiliser \texttt{compass.calibrate()} avant la boucle infinie.}
        \item Dessiner deux coeurs, un petit et un gros, puis faire apparaitre un coeur qui bat sur la matrice.
        \item Le planeur est le plus petit vaisseau qui peut apparaitre dans le Jeu de la vie de Conway. Faire défiler un planeur sur la matrice.
    \end{enumerate}
\end{exercise}

\begin{exercise}[subtitle={Boucles finies avec condition}, step={3}, origin={Ma tête}, topics={ Programmation Python et microbit }, tags={ Python, Programmation, Architecture }]
    La boucle \texttt{while} vue dans l'exercice précédent peut aussi s'arrêter à une certain condition.
    \begin{center}
        \begin{minipage}{0.5\linewidth}
            \lstinputlisting{./scripts/03_while_condition.py}
        \end{minipage}
    \end{center}
    \begin{enumerate}
        \item Décrire ce que fait chaque ligne.
        \item Écrire un programme qui fait un décompte en partant de 5 puis qui affiche un coeur.
    \end{enumerate}
\end{exercise}


\begin{exercise}[subtitle={Boucle finie}, step={4}, origin={Ma tête}, topics={ Programmation Python et microbit }, tags={ Python, Programmation, Architecture }]
    Il est possible aussi de faire des boucles sur des ensembles définis à l'avance.
\end{exercise}
