Objectifs pédagogiques
- Prendre en main le Raspberry Pi pour installer une distribution standard (Rasbian Buster).
- Ajuster et configurer le système en fonction de ses besoins spécifiques.
- Communiquer en utilisant les interfaces d’entrées-sorties comme RS-232, SPI, I²C, GPIO, etc.
- Développer des applications personnalisées pour Linux embarqué.
- Recompiler le noyau du système et ajouter des drivers supplémentaires.
Travaux pratiques
Mise en pratique sur un kit Raspberry Pi 3
Prise en main du Raspberry Pi
- Introduction : présentation du Raspberry Pi, des systems-on-chip BCM2835/2836/2837 et du processeur Arm 1176.
- Distribution Linux pour Raspberry Pi : téléchargement, installation, test.
- Découverte de la distribution : paramètres essentiels, outils standard.
- Utilisation de base : configuration système, utilisateurs, interface graphique.
- Utilisation de Linux sur Raspberry Pi : avantages et inconvénient d’un système sur carte SD.
Travaux pratiques
Installation et test d’une distribution standard sur Raspberry Pi.
Configuration et personnalisation
- Réseau : configuration du réseau (Ethernet+WiFi), Internet, connexion distante.
- Services réseau : démarrage des services, choix adapté à un système embarqué : configuration des services DHCP et de partage de fichiers SAMBA
- Mise à jour : installation de paquets, mise à jour.
- Serveurs : configuration d’un serveur Web sur le Raspberry Pi.
- Contrôle à distance : déport d’affichage et prise de contrôle à distance.
Travaux pratiques
Configuration optimale du système, du réseau et des services.
Entrées-sorties et interfaces de communication
- Contrôleur UART : communication entre Raspberry Pi et PC. Traces de boot.
- Entrées-sorties GPIO : utilisation depuis le Shell, dans un programme Python ou C.
- Interruptions et GPIO : détection des changements d’état d’une GPIO.
- SPI : dialogue en SPI avec un microcontrôleur (Arduino Uno).
- I²C : interrogation en I²C d’un capteur de température (MCP9808).
- Bluetooth : identification, connexion, communication.
Travaux pratiques
Communication sur différentes interfaces d’entrées-sorties.
Programmation applicative sur Raspberry Pi
- Programmation en C/C++ : compilation native ou compilation croisée, débogage, exemples.
- Programmation Python : interpréteur Python et modules. Applications graphiques.
- Scripts Shell : exemples de scripts pour initialisation du système ou lancement d’applications.
Travaux pratiques
Exemples de programmation dans différents langages.
Personnalisation avancée
- Recompilation du noyau : intérêts de la recompilation, configuration ajustée.
- Drivers supplémentaires : compilation et d’installation de drivers externes.
- Configuration « from scratch » : mise en œuvre d’un système entièrement personnalisé avec Buildroot.
Travaux pratiques
Ajout de drivers supplémentaires (extension des GPIO).