PiRDF #2 : Préparation du matériel

PiRDF #2 : Préparation du matériel

Cet article permet de lister tous les éléments nécessaires à la préparation du Raspberry Pi pour l’application PiRDF que sous avons préciser l’article de présentation générale.
Nous allons voir point par point comment réaliser l’installation de toutes les dépendances nécessaires.

Préparation du système d’exploitation

Dans il est nécessaire d’installer un système Raspbian sur une carte SD. On ne le répétera jamais assez, il est très important que votre carte SD soit de qualité et ait des propriétés de vitesses importantes. J’utilise personnellement ce modèle des SanDisk classe 10 comme celle-ci :

On notera que 16GB est suffisant dans ce cas particulier.

Pour installer le système d’exploitation, vous devez télécharger la dernière image de Raspbian, ici celle du 09-10-2018 ce qui m’a permis de tester la dernière version.

Pour la copier, sur la carte, il suffit d’effectuer une copie sur la carte de l’img iso après l’avoir formatée. La copie s’effectue à l’aide de l’instruction dd selon le formalisme suivant :

dd bs=4M if=2018-10-09-raspbian-stretch.img of=/dev/sdb conv=fsync

l’argument if est utilisé pour les données d’entrée (ici l’image) et of pour la destination ici, /dev/sdb.

NB : l’installation les instructions ici sont celle d’un système Linux. Si vous effectuez l’installation depuis un système Windows (pratique que je déconseille), reportez-vous à rubrique d’aide spécifique du site officiel de Rapberry Pi’ c’est à dire :

Après avoir réaliser ces opérations de copie de l’image, il ne vous reste plus qu’à placer la carte SD dans le Raspberry Pi et de le démarrer.

Enfin, pour finir votre installation, il faut faudra configurer :

  • la langage du système
  • la timezone
  • le tytpe de clavier
  • le WIFI

Toutes ces informations vous seront demandées par le biais d’un assistant au premier démarrage. C’est une des nouveautés de la nouvelle version de Raspbian.

Après cela, il est temps de passer à l’installation des éléments liés à python.

La stack python

Outils de développement

Raspbian arrive avec des versions de python installer : la version de python 2.7.XX (je sais plus trop et j’en moque, je l’explique dans quelques lignes) et la version 3.5.3.
Je ne reviendrais par sur les raisons qui ont poussé la communauté de développeurs de maintenir pendant de trop nombreuses années 2 versions de python, mais le fait est que Python ne sera plus maintenu à partir de 2020 (voir le python countdown) et les librairies feront de même rapidement. Certaines librairies comme sci-kit-learn (que nous allons utiliser) l’ont déjà annoncé.
Pour ces raisons évidentes, je ne développe que du code compatible Python 3 et je n’assure aucune compatibilité pour Python!

A Python 3, j’ajoute deux outils de développements dont je considère qu’ils améliorent ma productivité :

  • ipython
  • ipdb

ipython

Ipython est environnement permettant d’exécuter du code de manière interactif, ce qui permet en d’autres choses d’accéder aux valeurs des différentes variables après exécutions, d’exécuter des commandes(dont certaines commandes consoles) directement et d’avoir accès à la coloration syntaxique et l’autocomplétion.

Pour l’installer, il suffit d’exécuter la ligne suivant :

pip3 install ipython

ipdb

Ipdb est un débugger un peu plus évolué que pdb (le débugger officiel). Il est surtout plus ergonomique que celui-ci. Pour installer, il faut également passer par pip :

pip3 install ipdb

Librairie scientifique

Pour réaliser les tâches de caractérisations des images et de prises de décisions automatiques, nous aurons besoin d’utiliser un certain nombre de librairies qu’on qualifie souvent de scientifique.

scipy et numpy

scipy et numpy sont inséparables, ce sont les deux librairies qui permet de réaliser tout ce qui est lié au calcul scientifique dont le calcul matriciel et l’algèbre linéaire.
Il ne faut pas envisager de les installer via pip car le risque de swap est très important et l’installation risquerait de ne pas aboutir.
Il faut mieux passer par le gestionnaire de paquet apt. Pour cela il faut saisir les commandes suivantes :

sudo apt-get install python3-scipy

sudo apt-get install python3-numpy

sci-kit-image

Sci-kit-image est la librairie qui permet d’accéder à un grand nombre de méthodes de traitement d’images disponible dans la littérature scientifique. Cette librairie possède également une couche IO (entrée/sortie) qui permet d’ouvrir de nombreux format d’images et de stocker les données dans des matrices de type numpy. De la même manière sci-kit-image permet un enregistrement de données brut en de nombreux formats d’images (png, jpeg, bmp…).
Pour l’installation, ça se passe pas apt :

sudo apt-get install python3-skimage

sci-kit-learn

Sci-kit-learn est une librairie spécifique d’outils d’intelligence artificielle. Nous utiliserons pour les phases d’apprentissage et de décision automatique. Pour l’installation, on passe encore une fois par apt :

sudo apt-get install python3-sklearn

Interfaçage de la caméra et éléments graphiques

Il ne nous reste plus qu’à installer les deux librairies permettant d’une part l’accès à la camera et à ses données grâce à picamera et la librairie pygame qui nous permettra de sans trop développement d’afficher le flux vidéo dans une interface graphique.

Pour l’installation, on passe cette fois par pip:

pip3 install picamera

et

pip3 install pygame

NB : On notera que dans la dernière version de Raspbian, ces deux librairies sont déjà installées

Et le hardware là-dedans

Après, le software, il nous est nécessaire de préparer le hardware. Il n’est pas nécessaire de préparer le hardware final pour ce qui est des switches. J’ai préféré passer par une phase de prototypage avec des microswitches, une « plaque lab » et quelques fils.

Pour aller un peu plus loin

Les autres articles du projet PiRDF :

Le matériel utilisé (liens affiliés — si vous commandez via ce lien, j’ai quelques % en commission pour payer l’hébergement de ce site l!):