IMA4 2018/2019 EC5 : Différence entre versions
(→Description du projet) |
|||
Ligne 12 : | Ligne 12 : | ||
Vous devez utiliser une plateforme <code>stm32f4-discovery</code>. Les tâches à accomplir sur cette plateforme sont : | Vous devez utiliser une plateforme <code>stm32f4-discovery</code>. Les tâches à accomplir sur cette plateforme sont : | ||
− | * mettre à jour la plateforme pour vérifier que la programmation via système de fichiers | + | * mettre à jour la plateforme pour vérifier que le dispositif ST-LINK intégré permet la programmation via système de fichiers, en cas contraire établir une liste des différentes versions de ST-LINK disponibles sur les différentes plateformes avec leurs fonctionnalités principales ; |
* installer micro-python sur la plateforme ; | * installer micro-python sur la plateforme ; | ||
* écrire un programme python <code>main.py</code> pour : | * écrire un programme python <code>main.py</code> pour : | ||
− | ** implanter SLIP sur la plateforme ; | + | ** implanter [https://en.wikipedia.org/wiki/Serial_Line_Internet_Protocol SLIP] sur la plateforme ; |
+ | ** répondre aux paquets ICMP demande d'écho ; | ||
** gérer les 4 LEDs programmables sur réception de datagrammes UDP ; | ** gérer les 4 LEDs programmables sur réception de datagrammes UDP ; | ||
− | ** gérer le bouton programmable et envoyer des datagrammes UDP sur changement d'état de ce bouton | + | ** gérer le bouton programmable et envoyer des datagrammes UDP sur changement d'état de ce bouton. |
− | |||
Comme adresse de destination des paquets de changement d'état des paquets vous utiliserez l'adresse source du dernier datagramme de gestion des LEDs. En cas d'absence de paquets UDP reçus vous pouvez utiliser <code>255.255.255.255</code> comme adresse destination. | Comme adresse de destination des paquets de changement d'état des paquets vous utiliserez l'adresse source du dernier datagramme de gestion des LEDs. En cas d'absence de paquets UDP reçus vous pouvez utiliser <code>255.255.255.255</code> comme adresse destination. | ||
− | Dans le code <code>main.py</code> vous devrez créer l'objet connexion série/USB avec ces quelques lignes : | + | Vous écrirez le programme Python dans le fichier <code>main.py</code> du périphérique clef USB implanté sur le processeur principal et accessible par le connecteur micro-USB. Trouvez le périphérique bloc correspondant par la commande <code>lsblk</code>. Le nom du périphérique est facile à trouver, c'est le seul d'une taille d'environ 100kB. Vous pouvez monter le périphérique par la commande <code>mount /dev/sdb1 /mnt</code>. Le fichier se trouve alors dans le répertoire <code>/mnt</code>. Avant de déconnecter la plateforme taper la commande <code>umount /mnt</code>. |
+ | |||
+ | D'un point de vue pratique, vous pouvez lancer <code>minicom -D /dev/ttyACM0</code> dans un terminal pour tester votre programme et <code>nano /mnt/main.py</code> (ou équivalent) dans un autre terminal pour modifier le programme. Tapez simplement CTRL-D dans l'interpréteur micro-python pour recharger le programme <code>main.py</code>. Vous pouvez aussi vous passer du câble mini-USB en connectant les broches <code>PA9</code> et <code>5V</code> sur le connecteur <code>P2</code> | ||
+ | |||
+ | Il est a priori possible d'implanter SLIP Dans le code <code>main.py</code> vous devrez créer l'objet connexion série/USB avec ces quelques lignes : | ||
import pyb | import pyb |
Version du 22 février 2019 à 10:47
Sommaire
Présentation du projet
Contexte
L'élève continue son semestre S8 à l'école.
Objectif
L'objectif de l'épreuve complémentaire est de programmer un dispositif de type système embarqué en micro-python pour utilisation dans des travaux pratiques en GIS3.
Description du projet
Vous devez utiliser une plateforme stm32f4-discovery
. Les tâches à accomplir sur cette plateforme sont :
- mettre à jour la plateforme pour vérifier que le dispositif ST-LINK intégré permet la programmation via système de fichiers, en cas contraire établir une liste des différentes versions de ST-LINK disponibles sur les différentes plateformes avec leurs fonctionnalités principales ;
- installer micro-python sur la plateforme ;
- écrire un programme python
main.py
pour :- implanter SLIP sur la plateforme ;
- répondre aux paquets ICMP demande d'écho ;
- gérer les 4 LEDs programmables sur réception de datagrammes UDP ;
- gérer le bouton programmable et envoyer des datagrammes UDP sur changement d'état de ce bouton.
Comme adresse de destination des paquets de changement d'état des paquets vous utiliserez l'adresse source du dernier datagramme de gestion des LEDs. En cas d'absence de paquets UDP reçus vous pouvez utiliser 255.255.255.255
comme adresse destination.
Vous écrirez le programme Python dans le fichier main.py
du périphérique clef USB implanté sur le processeur principal et accessible par le connecteur micro-USB. Trouvez le périphérique bloc correspondant par la commande lsblk
. Le nom du périphérique est facile à trouver, c'est le seul d'une taille d'environ 100kB. Vous pouvez monter le périphérique par la commande mount /dev/sdb1 /mnt
. Le fichier se trouve alors dans le répertoire /mnt
. Avant de déconnecter la plateforme taper la commande umount /mnt
.
D'un point de vue pratique, vous pouvez lancer minicom -D /dev/ttyACM0
dans un terminal pour tester votre programme et nano /mnt/main.py
(ou équivalent) dans un autre terminal pour modifier le programme. Tapez simplement CTRL-D dans l'interpréteur micro-python pour recharger le programme main.py
. Vous pouvez aussi vous passer du câble mini-USB en connectant les broches PA9
et 5V
sur le connecteur P2
Il est a priori possible d'implanter SLIP Dans le code main.py
vous devrez créer l'objet connexion série/USB avec ces quelques lignes :
import pyb usb=pyb.USB_VCP()
Une difficulté pour implanter SLIP en micro-python est d'arriver à détourner l'interruption du CTRL-C. Le plus simple est d'utiliser la méthode setinterrupt
de pyb.USB_VCP
avec l'argument -1
.
Matériel nécessaire
Description | Fabricant | Référence Fabricant | Fournisseur | Quantité | Lien fournisseur |
---|