Logo Mon Club Elec

Le RaspberryPi

Le RaspberryPi est une carte informatique de petite taille qui a révolutionné le monde de l’informatique. Cette carte est très populaire auprès des développeurs, des étudiants et des amateurs de technologie. Elle est capable de faire des choses incroyables et peut être utilisée pour créer des projets innovants et intéressants. Dans cet article, nous allons examiner de plus près le RaspberryPi et voir comment il peut être utilisé pour créer des projets intéressants et innovants.

Le RaspberryPi

Le RaspberryPi

Synthèse des caractéristiques


  • CPU : ARMv6@700MHz – Broadcom 2835
  • RAM : 256Mo (version A) / 512 Mo (version B)
  • Supp. Masse : Carte SD standard (->32Go)
  • GPU : OpenGL ES 2.0,
  • Système compatible : Raspbian (portage ARM de Debian Wheezy)

  • Son : HDMI, out : jack 3,5mm, in : —
  • vidéo : HDMI, RCA

  • Réseau : Eth 10/100/1000
  • USB : 2 ports USB

  • GPIO : 8 E/S en 3.3V (jusqu’à 17…) – Connecteur non compatible Arduino
  • Entrées Analogiques : NON
  • Sorties analogiques : 1 x PWM hardware (!)
  • Comm. Sérielles : I2C, SPI, UART

  • Alim. : micro USB en 5V@400mA (Alim 5V@1A conseillée)

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é !


A découvrir : Pyduino

Le RaspberryPi

la librairie qui vous permet de programmer votre miniPC comme une carte Arduino… et bien plus encore !
Vous en avez rêvé ? www.mon-club-elec.fr l’a fait !


1.  Pour commencer

Le RaspberryPi

L’essentiel :

Pour approfondir :

Raspberry-Pi, Raspbian et matériels :

  • Liste de périphériques USB fonctionnant « out of the box » avec le RaspberryPi sous Raspbian
  • Tests et trucs techniques en vrac

2.  Avant d’aller plus loin, pour ceux qui ne connaissent pas Gnu/Linux…

Le RaspberryPi

Notions générales sur le système Gnu/Linux

Tester / Installer un système Gnu/Linux

Utiliser un système Gnu/Linux

Et aussi : Notion de logiciels et licences libres

  • Les principes du logiciel libre
  • Les licences libres

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 !

Le RaspberryPi

Procédures utiles pour utiliser le RaspberryPi en mode « embarqué »

Développement et programmation avec le Raspberry-Pi

Procédures avancées

Matériel

Archive :

4.  Programmer le RaspberryPi

Programmer le RaspberryPi aussi facilement qu’Arduino, çà vous tente ? Suivez le guide !

Intro

  • Quel langage choisir pour programmer le RaspberryPi? PDF
  • S’installer pour programmer le RaspberryPi en Python et intro au langage Python PDF

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


Le RaspberryPi

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 Pyduino

Le RaspberryPi
Le RaspberryPi

6.1  Programmes utilisant les fonctionnalités E/S

Le RaspberryPi

Utiliser 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.
La bonne nouvelle : un code Arduino contrôlant les broches E/S sera utilisable quasiment à l’identique avec Pyduino !

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 :
Sorties Numériques  » de puissance »

  • Adaptation simple en tension et en intensité de 8 broches E/S numériques d’un mini-PC à l’aide d’un ULN2803
  • Contrôler un ruban à LEDs RGB à l’aide d’un miniPC
  • Isoler totalement une broche E/S numérique du mini-PC en sortie et le circuit contrôlé à l’aide d’un opto-coupleur
  • Contrôler un moteur CC à l’aide d’une interface de puissance
  • Contrôler 2 moteurs CC à l’aide d’une interface de puissance

6.2  Programmes utilisant les fonctionnalités système seules

Le RaspberryPi

La 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 !
Dans cette rubrique quelques exemples d’utilisation des fonctions du système à partir d’un code Pyduino : utilisation de périphériques d’entrée, des fichiers, du réseau (serveur HTML, Javascript et même Ajax !), de la webcam, de la synthèse vocale, de la reconnaissance vocale… Histoire de prendre en main la programmation du système avec Pyduino : amusez-vous bien !

Y avez-vous pensé ?
Les codes Pyduino de cette rubrique sont exécutables sur n’importe quel mini-PC ou poste fixe tournant sous Gnu/Linux, puisqu’aucune fonction E/S n’est utilisée. Vous pouvez donc transformer votre PC en serveur graphique, le contrôler à la voix ou autre très simplement !

Périphériques d’entrée
Simple :

Multimédia :

Ligne de commande

Fichiers
Répertoires :

Texte :

Image :

Audio :

Video :

  • Capturer une vidéo avec son à partir de la webcam

Reseau
Intro :

Serveur TCP/Http :

Serveur TCP/Http/HTML:

Serveur TCP/Http/HTML + Javascript
Non graphique

  • Afficher le contenu d’un fichier dans une zone texte à partir du code Javascript *

Graphique sans librairie graphique

Avec la librairie graphique RGraph

Avec la librairie graphique Dygraphs

Serveur TCP/Http/HTML + Javascript + Ajax
Non graphique

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 seules

Le RaspberryPi

La 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 !
Dans cette rubrique quelques exemples d’utilisation des fonctions Multimédia à partir d’un code Pyduino : utilisation du son, de la webcam, de la synthèse vocale, de la reconnaissance vocale… Histoire de prendre en main la programmation du système avec Pyduino : amusez-vous bien !

Y avez-vous pensé ?
Les codes Pyduino de cette rubrique sont exécutables sur n’importe quel mini-PC ou poste fixe tournant sous Gnu/Linux, puisqu’aucune fonction E/S n’est utilisée. Vous pouvez donc transformer votre PC en serveur graphique, le contrôler à la voix ou autre très simplement !

Audio
En sortie :

En entrée :

Voix
Synthèse vocale :

Reconnaissance vocale :

Image

Video
En sortie :

En entrée :

  • Capturer une vidéo avec son à partir de la webcam

6.4  Programmes utilisant les fonctionnalités système et E/S couplées

Le RaspberryPi

Nous 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 !
Il devient alors possible, soit de déclencher des fonctions systèmes à partir d’un évènement sur une broche E/S ( par exemple : capturer une image par appui sur un bouton poussoir), ou de contrôler les broches E/S à partir des fonctions système (par exemple : contrôler les broches numériques en sortie à la voix !)…
Ma librairie Pyduino vous simplifie la vie pour faire tout çà : à vous de jouer !

Y avez-vous pensé ?
Il est possible d’exécuter simultanément plusieurs codes Pyduino sur votre miniPC : la même carte pourra donc simultanément être un serveur TCP opérationnel avec un premier code tout en contrôlant localement les broches E/S avec un second code et tout en permettant l’édition simultanée d’un nouveau code ! Impossible à réaliser avec Arduino et un shield Ethernet par exemple… Au final, un miniPC avec Pyduino peut potentiellement jouer le rôle de plusieurs ensembles « cartes Arduino + shields », et en tout cas vous permet simultanément d’exécuter un ou plusieurs codes opérationnels tout en continuant à développer !

==== Broches E/S ====

Sorties numériques
Simples

Multimédia

Entrées numériques
Système

Fichier

Réseau

Audio

Voix

Image

Video

Entrées analogiques
Voix :

Fichier :

Reseau :

Reseau : HTML + Javascript

Reseau : HTML + Javascript + Ajax

Sorties analogiques

==== Système ====

Périphériques d’entrée USB
Numpad :

GPS :

  • Afficher la position du lieu

Souris :

  • Détecter appui sur bouton souris

Joystick :

  • Détecter position et appui sur bouton de Joystick

Ligne de commande

Fichiers
Texte :

Image :

Audio :

  • Enregistrer un fichier son lors appui sur un bouton poussoir

Video :

  • Enregistrer un fichier vidéo avec son lors appui sur un bouton poussoir

Reseau
Intro :

Serveur TCP/Http :

Serveur TCP/Http/HTML:

Serveur TCP/Http/HTML + Javascript

Serveur TCP/Http/HTML + Javascript + Ajax
Sans librairie Graphique

Avec librairie RGraph

Avec librairie Dygraphs

Mail:

==== Multimédia ====

Audio
En sortie :

En entrée :

  • Enregistrer un fichier son lors appui sur un bouton poussoir

Voix
Synthèse vocale :

Reconnaissance vocale :

Image

Vidéo
En sortie :

En entrée :

  • Enregistrer un fichier vidéo avec son lors appui sur un bouton poussoir

7.  Codes Pyduino + PyQt (interface graphique)

Le RaspberryPi Le RaspberryPi

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

Le RaspberryPi Le RaspberryPi

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

Le RaspberryPi
Le RaspberryPi
Le RaspberryPi

Entrées numériques

Le RaspberryPi

Entrées analogiques
Affichages numériques

Le RaspberryPi
Le RaspberryPi
Le RaspberryPi

Affichages analogiques

Le RaspberryPi
Le RaspberryPi

Affichages sous forme de courbe
Monovoie :

Multivoies :

  • Oscilloscope basse fréquence 6 voies sur 1 graphique
  • Oscilloscope basse fréquence 6 voies sur 1 graphique avec widget de sélection des courbes à afficher
  • Oscilloscope basse fréquence 6 voies sur 6 graphiques

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.

Le RaspberryPi
Le RaspberryPi

Sorties analogiques

Le RaspberryPi

7.2  Programmes utilisant les fonctionnalités système seules à partir d’une interface graphique PyQt

Le RaspberryPi

Voir les rubriques PyQt du site :

Le RaspberryPi

Tutos Python+Qt (PyQt)

Grâce aux nombreux tutos détaillés proposés (légèrement payants), apprenez à créer de vraies petites interfaces graphiques opérationnelles. De l’utilisation d’un simple bouton à l’utilisation d’un graphique scientifique avancé ou bien l’utilisation de la reconnaissance visuelle ou encore la création d’un terminal série ou réseau, découvrez à votre rythme les étonnantes et très nombreuse possibilités de PyQt.

Le RaspberryPi

Le PyQt Lab’

Je rassemble dans cette rubrique la plupart des codes Python + Qt que j’ai écrit sous forme « as is », bruts de décoffrage. C’est un peu ma « boite à codes » PyQt où je rassemble tests, idées et tout ce qui me passe par la tête, en vrac. Les codes les plus pertinents sont détaillés et repris dans la rubrique Ateliers Python + Qt et les codes d’interfaces opérationnelles utilisables en pratique sont disponibles dans la rubrique PyQt Apps.

Quelques Programmes essentiels


Périphériques d’entrée

  • Clavier numérique graphique (utilisable avec un tablette graphique…)

Systeme

Fichiers

  • Visualisateur fichier de données sous forme de courbe avec timeline

Reseau

Audio/Voix

  • Interface de test de la synthèse vocale

Image

  • Capturer une image par clic sur un bouton graphique (appareil photo)
  • Détection de visage avec la librairie OpenCV

7.3  Programmes utilisant les fonctionnalités système et E/S couplées depuis une interface graphique PyQt

Le RaspberryPi

S’installer

Sorties numériques

  • Interface de contrôle à 5 boutons pour contrôle d’un robot mobile avec retour vidéo

Entrées numériques

Entrées analogiques

  • Serveur graphique de données analogiques

Sorties analogiques

Périphériques d’entrée

  • Utiliser un keypad en tant que télécommande
  • Allumer des LEDs à l’aide d’un Joystick
  • Application « pompe à essence »

Systeme

Fichiers

  • ..

Reseau

  • Contrôler les broches E/S à partir d’une interface web javascript + Ajax
  • Serveur graphique de données analogiques

Audio/Voix

  • ..

Image

  • Capturer une image webcam et la visualiser par appui sur un bouton poussoir
  • Application photomaton

8.  Exemples d’utilisation du RaspberryPi seul

8.1  Réseau

  • Le RaspberryPi en serveur web

8.2  Vidéo

8.3  Audio

  • Lecture de fichier son
  • Synthèse vocale

8.4  Fichiers

  • Copier/coller des fichiers vers et depuis le RaspberryPi, sans fil.

9.  Exemples d’utilisation du RaspberryPi avec Arduino

Certains 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

  • Traqueur solaire temps réel avec visualisation 3D de la position courante du soleil sur l’Horizon (Arduino + RPi )

11.  Liens utiles

Noter cet article

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Archive Mon Club Elec

Articles populaires

Newsletter

Inscrivez-vous maintenant et bénéficiez d'un soutien continu pour réaliser vos travaux électriques en toute sécurité.