Quelques choses à savoir sur Linux pour la programmation sur Raspberry Pi
Avril 2016
Introduction
Les cartes Raspberry Pi fonctionnent sous linux. Les quelques notions et commandes décrites dans ce document peuvent être utiles pour écrire et exécuter un programme en Python.
1 Terminal, commandes et paramètres
Dans un système linux, on peut utiliser soit l’interface graphique (explorateur de fichiers, bloc-notes, dans des fenêtres), soit les lignes de commande dans un terminal (aussi appelé console ou encore invite de commande).
Exemple : la commande ls permet d’afficher les fichiers présents dans le répértoire courant.
La plupart des commandes acceptent des paramètres (ou arguments). Pour préciser des arguments, on les écrit à la suite de la commande.
Exemple : la commande ls monDossier permet d’afficher les fichiers présents dans le répertoire
"monDossier".
Enfin, on peut préciser des options modifiant le comportement de la commande. Ceux-ci sont intro- duits par un tiret ’-’ suivi d’une lettre (ou par deux tirets ’–’ suivis d’un mot).
Exemple : la commandels -a permet d’affichertous les fichiers présents dans le répértoire courant, c’est-à-dire qu’elle affiche également les fichiers cachés.
On peut préciser à la fois des options et des arguments.
Exemple : la commande ls -a monDossier permet d’afficher tous les fichiers présents dans le ré- pértoire "monDossier", c’est-à-dire qu’elle affiche également les fichiers cachés.
On peut préciser plusieurs options à la fois.
Exemple : la commande ls -al monDossier permet d’affichertous les fichiers présents dans le ré- pértoire "monDossier", et sous forme de liste détaillée.
1
2 Naviguer dans les répertoires et créer des dossiers
2.1 Chemins relatif et absolu
Sous Linux, le dossier / est au sommet de l’arborescence : tous les fichiers et dossiers sont dans / ou dans un sous-dossier de /. Ce dossier / est appelé "racine". On peut donner le chemin d’un fichier de deux manières. De manière absolue en partant de / ou de manière relative en partant du répertoire courant. Le symbole / sert également de séparateur dans les chemins entre dossier, sous-dossier, fichier.
Exemple : Je suis dans le répertoire /home/pi, c’est-à-dire dans le sous-répertoire pi du répertoire home, lui-même situé à la racine /. La figure 1 montre les dossiers et fichiers contenus dans /home/pi.
Le fichier programme.py est accessible par son chemin relatif : dossier1/programme.pyou par son chemin absolu :/home/pi/dossier1/programme.py.
Figure 1 – Le dossier pi contient 1 fichier et 2 sous-dossiers, dont dossier1 qui contient le fichier programme.py
La commandepwd affiche le chemin absolu du répertoire courant.
2.2 Se déplacer dans les dossiers avec cd
La commande cd permet de changer le dossier courant. Elle prend en argument le chemin (relatif ou absolu) du dossier où on veut se placer.
Exemple : cd /home/pi/dossier2permet de se placer dans /home/pi/dossier2.
Tous les répertoires contiennent deux dossiers cachés appelés .. et . qui sont en fait des liens vers le répertoire parent et vers le répertoire courant (respectivement).
Exemple : Je suis dans le répertoire /home/pi. La commande cd .. amène au répertoire /home.
Avec la commande cd .on reste dans /home/pi.
2.3 Créer un dossier
On peut créer un dossier grâce à la commande mkdir. Elle prend en argument le nom du dossier à créer. Le dossier sera créé comme sous-dossier du répertoire courant.
Exemple : Je suis dans le répertoire /home/pi. La commande mkdir dossier3 crée le dossier /home/pi/dossier3.
2
3 Copier, déplacer et renommer des fichiers
On peut copier des fichiers avec la commande cp. Elle prend en argument le nom du fichier source puis celui de la destination.
On peut déplacer des fichiers avec la commandemv. Elle prend en argument le nom du fichier source puis celui de la destination.
Pour renommer un fichier, il suffit de le déplacer au même endroit en changeant son nom : mv ancienNom.py nouveauNom.py.
4 Trouver des informations dans la documentation
Il existe un manuel pour chaque commande. Pour y accéder il faut taper man suivi du nom de la commande.
Exemple : man ls affiche la documentation de la commande ls.
Remarque : "man" étant une commande, on peut accéder à sa documentation en tapantman man.
On trouve dans les pages de manuel la syntaxe de la commande, sa description et les options qu’elle accepte.
5 Créer, éditer un script Python
N’importe quel éditeur de texte permet de créer et éditer un script python. Ceux-ci sont des fichiers dont l’extension est .py et dont la première ligne est :
#!/usr/bin/python3
On utilise l’éditeur geany pour écrire les scripts. Celui-ci gère la coloration syntaxique du code python. Pour ouvrir un script dans geany, on peut taper dans un terminal la commande geany programme.py. Si le fichier existe déjà, on pourra le modifier. Sinon celui-ci sera créé au moment de la sauvegarde.
6 Exécuter un script Python
Pour pouvoir exécuter un script python, il faut le rendre exécutable, ce qui n’est pas le cas par défaut. Plus précisément il faut donner à l’utilisateur le droit d’exécuter le fichier.
Une fois qu’un fichier est exécutable, on peut le lancer soit en cliquant dessus dans l’explorateur de fichier ; soit en ligne de commande en se plaçant dans son répertoire et en tapant./programme.py.
6.1 Droits de lecture, d’écriture et d’exécution des fichiers
Pour chaque fichier, l’utilisateur peut avoir ou non les droits de lecture, d’écriture et d’execution.
On peut connaître les droits grâce à la commande ls -l, voir figure 2. On s’intéresse à la colonne de gauche : le premier tiret indique qu’il s’agit d’un fichier (pour un dossier on aurait eu un ’d’). Les 3 caractères suivants indique les droits de l’utilisateur pour ce fichier. Nous ne nous intéresserons pas aux autres caractères. Ces trois caractères indique dans l’ordre les droits de lecture (r), écriture (w) et exécution (x). Un tiret indique que l’utilisateur n’a pas le droit en question. Pour pouvoir
3
exécuter le programme il faut donc que le 4e caractère soit un x.
Figure 2 – La colonne de gauche indique les droits pour chaque fichier Pour donner le droit d’exécution à un fichier, on utilise la commande
chmod u+x programme.py
Pour enlever le droit d’exécution à un fichier, on utilise la commande chmod u-x programme.py
Annexe : documentations utiles pour Python et Raspberry Pi
Se déplacer dans les fichiers sur linux :
https://openclassrooms.com/courses/reprenez-le-controle-a-l-aide-de-linux/la-structure-des-dossiers-et-fichiers
Gérer les droits sur linux :
https://openclassrooms.com/courses/reprenez-le-controle-a-l-aide-de-linux/les-utilisateurs-et-les-droits
Python : (on utilise en particulier les modules time et io)
https://docs.python.org/3/library/index.htmlBibliothèque standard https://docs.python.org/3/reference/index.html Synthaxe du langage
Numpy : gestion, création, manipulation des tableaux (ndarray) à plusieurs dimensions (matrices des images)
http://docs.scipy.org/doc/numpy/reference/
scipy.misc : ouverture d’image sous forme de tableau numpy (ndarray), enregistrement en fichier image, affichage d’image.
http://docs.scipy.org/doc/scipy/reference/misc.html
scipy.ndimage : filtrage, convolution, mesures (moyennes, histogrammes, etc. . . ) http://docs.scipy.org/doc/scipy/reference/ndimage.html
python3-picamera : Utiliser la caméra de Raspberry Pi dans un script Python
https://www.raspberrypi.org/documentation/usage/camera/python/README.mdMini doc https://picamera.readthedocs.org/en/release-1.10/Doc générale
http://picamera.readthedocs.org/en/release-1.0/api.htmlFonctions de la classe PiCamera
http://picamera.readthedocs.org/en/release-1.10/api_camera.html#module-picamera.cameraFixer balance des blancs
http://picamera.readthedocs.org/en/release-1.0/recipes2.html Captures formats bruts (rgb ou yuv)
RPi.GPIO : Pour utiliser les broches (et controler des LEDs, des moteurs, récupérer un signal d’une pho- todiode. . . )
http://deusyss.developpez.com/tutoriels/RaspberryPi/PythonEtLeGpio/Tuto
4