Le RaspberryPiPar X. HINAULT - Octobre 2012
Le RaspberyPi est une carte électronique tout juste un peu plus grande qu'une carte de crédit, d'un poids de 45g, et qui intègre un véritable PC miniature (base ARM), alimentable en 5V / 400mA, intégrant une carte son, une carte graphique, un port éthernet, deux ports USB 2.0.... le tout pour un coût avoisinant les 30€ seulement ! L'intérêt majeur du RaspberryPi est l'utilisation en embarqué, couplé notamment avec une carte Arduino. En quelques minutes, sur un petit robot ou tout autre projet, il devient possible d'ajouter la lecture de fichier sons, la synthèse vocale, le retour vidéo, la programmation à distance d'Arduino ! Voici comment utiliser la "bête" en toute simplicité ! On this page... (hide)
A découvrir : Pyduino la librairie qui vous permet de programmer votre miniPC comme une carte Arduino... et bien plus encore ! 1. Pour commencer
2. Avant d'aller plus loin, pour ceux qui ne connaissent pas Gnu/Linux...
3. Transformer et utiliser le RaspberryPi en tant que système embarqué accessible sans fil à distance, et utilisable avec Arduino !L'intérêt majeur du RaspberryPi, c'est sa petite taille... et il est dommage de perdre cet atout en utilisant les nombreux périphériques d'un PC...! D'où l'idée de rendre le RaspberryPi utilisable à distance via le réseau filaire ou wifi et de le contrôler, y accéder depuis un poste fixe de contrôle ou une tablette. Suivez le guide ! 4. Programmer le RaspberryPiProgrammer le RaspberryPi aussi facilement qu'Arduino, çà vous tente ? Suivez le guide ! Intro
Programmer les broches E/S du pcDuino en Python tout en utilisant les instructions Arduino
Pour approfondir le langage Python
Développer des interfaces graphiques sur le pcDuino
![]() J'utilise préférentiellement le pcDuino que je trouve très bien (fluide d'usage grâce à sa mémoire NAND, 1G de RAM, 6 entrées analogiques intégrées dont 4 en 12 bits, 6 voies PWM, 18 E/S dispo, brochage simple à utiliser, SPI/I2C/UART, etc...). Pourtant régulièrement je me dis : "y'à plein de monde qui utilise le Raspberry Pi... faut que je mette des exemples Pyduino en ligne pour le RPi... Mais, je n'arrive pas à me convaincre : le RPi est moins cher (40€ contre 59€), certes... mais faut acheter une carte SD de classe 10 si on veut que çà dépote (compter 10€ si c'est pas 15€...), côté système, c'est plus lent d'usage, faut compiler la voix pico, le pavucontrol ne marche pas... côté GPIO, c'est "tordu" sur le RPi et moins fourni et surtout pas de broches analogiques, ce qui sert très souvent en pratique... donc faut une Arduino minimale en plus (compter 5 voire 10€)... Bref, j'arrive pas à me convaincre... Tous les exemples Pyduino proposés pour le pcDUino seront faciles à transposer... et si ils ne sont pas, çà vous montrera ce que le pcDuino permet de faire et que ne permet pas le RPi ! C'est pourquoi, je vous propose ici les exemples Pyduino tournant sur le pcDuino et qui seront adaptables au Raspberry Pi dans la majorité des cas... 5. Quelques exemples d'adaptation de codes Pyduino au RaspberryPi
6. Codes Pyduino6.1 Programmes utilisant les fonctionnalités E/SUtiliser un minipc pour simplement contrôler des broches E/S est quelque peu démesuré si l'on ne souhaite faire que çà... Le but de cette rubrique est de montrer que l'on pourra faire avec la librairie Pyduino ce que l'on fait avec Arduino... L'objectif final est cependant de coupler le contrôle des broches E/S avec les fonctions avancées du système (fichiers, capture d'image, synthèse vocale, etc... ) comme cela est décrit dans les sections qui suivent. S'installer Bases Sorties Numériques
Sorties analogiques
Entrées Numériques Entrées analogiques Console Vous trouverez également dans la rubrique Arduino Initiation de nombreux programmes de test faciles à transposer. A VENIR :
6.2 Programmes utilisant les fonctionnalités système seulesLa très grande force d'un miniPC : de nombreuses fonctions dites de "haut-niveau" sont immédiatement disponibles (périphériques d'entrée, fichiers, réseau, sons, vidéo, webcam, synthèse vocale, reconnaissance vocale...), le tout SANS AUCUN SHIELD supplémentaire ! C'est ce qui fait toute la différence avec Arduino et sa pile de shields nécessaires pour arriver à un résultat même pas équivalent... D'autre part, le langage Python offre plusieurs facilités de codage qui simplifie grandement les choses ! Y avez-vous pensé ? Périphériques d'entrée Multimédia :
Ligne de commande Fichiers Texte :
Image : Audio : Video :
Reseau Serveur TCP/Http : Serveur TCP/Http/HTML:
Serveur TCP/Http/HTML + Javascript
Graphique sans librairie graphique
Avec la librairie graphique RGraph
Avec la librairie graphique Dygraphs
Serveur TCP/Http/HTML + Javascript + Ajax Graphique ans librairie graphique
Avec la librairie graphique RGRaph
Avec la librairie graphique Dygraph
Voir également : Installer des librairies Javascript locales Mail:
6.3 Programmes utilisant les fonctionnalités multimédia seulesLa très grande force d'un miniPC : de nombreuses fonctions dites de "haut-niveau" sont immédiatement disponibles (périphériques d'entrée, fichiers, réseau, sons, vidéo, webcam, synthèse vocale, reconnaissance vocale...), le tout SANS AUCUN SHIELD supplémentaire ! C'est ce qui fait toute la différence avec Arduino et sa pile de shields nécessaires pour arriver à un résultat même pas équivalent... D'autre part, le langage Python offre plusieurs facilités de codage qui simplifie grandement les choses ! Y avez-vous pensé ? Audio En entrée :
Voix
Reconnaissance vocale :
Image Video En entrée :
6.4 Programmes utilisant les fonctionnalités système et E/S coupléesNous voilà au coeur du sujet : coupler ensemble les fonctions du système (fichier, réseau, son, voix, ...) et les broches E/S (capteurs, dispositifs, etc...) ! Les possibilités deviennent alors très très intéressantes et n'ont pour limite que l'imagination, LE TOUT AVEC UNE SEULE ET MEME CARTE, sans shield supplémentaire nécessaire ! Y avez-vous pensé ? ==== Broches E/S ==== Sorties numériques
Multimédia
Entrées numériques Fichier Réseau
Audio Voix Image Video Entrées analogiques Fichier :
Reseau : Reseau : HTML + Javascript Reseau : HTML + Javascript + Ajax
Sorties analogiques
==== Système ==== Périphériques d'entrée USB
GPS :
Souris :
Joystick :
Ligne de commande Fichiers
Image : Audio :
Video :
Reseau Serveur TCP/Http : Serveur TCP/Http/HTML:
Serveur TCP/Http/HTML + Javascript Serveur TCP/Http/HTML + Javascript + Ajax
Avec librairie RGraph
Avec librairie Dygraphs Mail:
==== Multimédia ==== Audio
En entrée :
Voix Reconnaissance vocale :
Image
Vidéo
En entrée :
7. Codes Pyduino + PyQt (interface graphique)![]() ![]() Sur un miniPC embarqué auquel on accède par accès distant VNC, l'utilisation de l'environnement graphique Processing pour créer des interfaces montre vite ses limites, aussi bien en ce qui concerne les ressources utilisées (lancer un programme Java met la CPU à 100% pendant plusieurs secondes...) que des possibilités graphiques elle-même (avec Processing, l'aspect des GUI est basique...) . Or il est indispensable de pouvoir exécuter des interfaces graphiques fluides et rapides pour contrôler le miniPC à partir d'une tablette tactile ou d'un poste fixe. Une solution élégante et relativement simple passe par l'utilisation du logiciel QtDesigner pour créer des interfaces graphiques utilisant la librairie Qt et programmables en Python, avec PyQt. Suivez le guide ! 7.1 Programmes utilisant les fonctionnalités E/S seules à partir d'une interface graphique PyQt![]() ![]() Dans cette rubrique, apprenez à créer des interfaces graphiques pour contrôler et interagir avec les broches E/S : une fois l'interface graphique lancée, vous pourrez simplement l'afficher sur un écran HDMI de votre choix, mais surtout, vous pourrez contrôler le pcduino à partir d'un poste fixe ou d'une tablette tactile par accès distant via le réseau ethernet filaire ou wifi ! S'installer
Sorties numériques
Entrées numériques
Entrées analogiques
Affichages analogiques
Affichages sous forme de courbe
Multivoies :
A savoir : toutes les interfaces graphiques affichant les courbes proposées ici, basées sur la librairie pyqtgraph, permettent le zoom sur le graphique, l'export par simple clic droit, au format vectoriel *.svg, image *.png, data texte *.csv et même le copier/coller dans le presse-papier ! Une réutilisation maximale des graphiques obtenus est ainsi possible.
Sorties analogiques
7.2 Programmes utilisant les fonctionnalités système seules à partir d'une interface graphique PyQt![]() Voir les rubriques PyQt du site :
Quelques Programmes essentiels Périphériques d'entrée
Systeme
Fichiers
Reseau
Audio/Voix
Image
7.3 Programmes utilisant les fonctionnalités système et E/S couplées depuis une interface graphique PyQt![]() S'installer
Sorties numériques
Entrées numériques
Entrées analogiques
Sorties analogiques
Périphériques d'entrée
Systeme Fichiers
Reseau
Audio/Voix
Image
8. Exemples d'utilisation du RaspberryPi seul8.1 Réseau
8.2 Vidéo
8.3 Audio
8.4 Fichiers
9. Exemples d'utilisation du RaspberryPi avec ArduinoCertains voudraient opposer RaspberryPi et Arduino... Moi, je vois au contraire la possibilité d'une alliance, et même une symbiose entre les 2 cartes, chacune apportant sa spécificité : Arduino pour une gestion facilitée des aspects de bas niveau et le contrôle de dispositifs (moteurs, LCD, etc...), RaspberryPi pour les fonctions avancées telle que la lecture de fichier son, la synthèse vocale, etc... En faisant communiquer les 2 cartes au sein d'un même système embarqué, on obtient une solution polyvalente, programmable à distance et sans fil. Suivez le guide ! Juin 2016 : l'arrivée du pcDuino vient changer la donne : un miniPC avec une connectique Arduino intégrée ! 10. Applications complètes basées sur le RaspberryPi
11. Liens utiles
|