2022-2023/1NSI/02_Programmation_Python_et_microbit/exercises.tex
Bertrand Benjamin f8337b40ab
All checks were successful
continuous-integration/drone/push Build is passing
Feat: ajoute des exercices pour microbit
2022-09-15 11:00:20 +02:00

149 lines
7.4 KiB
TeX

\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.
Par exemple faire déplacer un point sur la matrice.
\begin{center}
\begin{minipage}{0.5\linewidth}
\lstinputlisting{./scripts/04_for_led.py}
\end{minipage}
\end{center}
\begin{enumerate}
\item Faire parcourir au point toute la matrice led.
\item Faire clignoter 5 fois chaque led de la première colonne de la matrice.
\item (*) Faire 5 relevés de température à une seconde d'intervalle, ajouter ces 5 valeurs, puis afficher la température moyenne sur les 5 secondes écoulées.
\end{enumerate}
On peut aussi faire une boucle sur des éléments d'une liste
\begin{center}
\begin{minipage}{0.5\linewidth}
\lstinputlisting{./scripts/04_for_list.py}
\end{minipage}
\end{center}
\begin{enumerate}
\item Changer les images affichées.
\item Afficher une flèche qui fait le tour autour du centre de la matrice.
\end{enumerate}
\end{exercise}
\begin{exercise}[subtitle={Capteurs}, step={5}, origin={Ma tête}, topics={ Programmation Python et microbit }, tags={ Python, Programmation, Architecture }]
Il est aussi possible d'utiliser les deux boutons à côté de la matrice led.
\begin{center}
\begin{minipage}{0.5\linewidth}
\lstinputlisting{./scripts/05_boutons.py}
\end{minipage}
\end{center}
\begin{enumerate}
\item Modifier le programme pour qu'il affiche la température si le bouton a est préssé et la direction de la boussole sinon.
\item (*) Écrire un programme qui montre un visage content sauf quand on secoue le microbit où le visage devient triste.
\item (*) Écrire une programme qui permet de faire circuler des images dans une liste avec les boutons a et b.
\end{enumerate}
\end{exercise}
% ---- Miniprojets