Résolu sur le forum : Borne Wallbox Pulsar Plus 7,4 kW sur abonnement 6 kVA : quel délestage avant accord copro (urgent)Ma panne diagnostiquée — réponse sous 48 h29 €

Le RaspberryPi

Électroniquemis à jour le 24 avril 2023

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

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

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

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…

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 !

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

  • Programmer les broches numériques E/S en sortie PDF
    • Technique : Utiliser les broches numériques E/S en sortie de « puissance »
  • Programmer les broches numériques E/S en entrée]] PDF
  • Programmer les entrées analogiques PDF
  • Programmer les sorties analogiques (PWM)
  • Programmer les communications sérielles du pcDuino en Python
    • I2C
    • SPI
    • UART
  • Liens utiles : La librairie Pyduino : pour programmer un mini-PC aussi facilement qu’une carte Arduino… et bien plus encore !

Pour approfondir le langage Python

Développer des interfaces graphiques sur le pcDuino

  • Python+Qt : Premiers pas : Comment développez ses propres interfaces graphiques sur le RaspberryPi ? PDF
  • Voir également : Les rubriques Python du site www.mon-club-elec.fr

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

  • le code minimum « Arduino-like »
  • Faire clignoter une LED
  • Faire varier la luminosité d’une LED (PWM)
  • L’appui sur un bouton graphique ON/OFF allume/éteint une LED


6.  Codes Pyduino


6.1  Programmes utilisant les fonctionnalités E/S

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

  • Installer l’IDE Pyduino et la librairie Pyduino sur le mini-PC

Bases

  • le code minimum « Arduino-like »

Sorties Numériques

  • Faire clignoter une LED
  • Faire clignoter une LED sans delay() avec millis()
  • Faire clignoter une LED avec un Timer

Sorties analogiques

  • Faire varier la luminosité d’une LED (PWM)
  • Faire varier la luminosité d’une LED (PWM) à l’aide d’une résistance variable
  • Contrôler une LED RGB

Entrées Numériques

  • Détecter l’appui sur un bouton poussoir
  • L’appui sur un bouton poussoir allume une LED

Entrées analogiques

  • Afficher la mesure d’une broche analogique dans la console

Console

  • Afficher des messages dans la console (Emulation du Terminal Série)

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

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 :

  • Afficher une valeur numérique saisie sur un numpad
  • Tester un code secret saisi sur un numpad

Multimédia :

  • Synthèse vocale d’une valeur saisie sur un Numpad (clavier numérique USB)
  • Testeur de code secret à synthèse vocale

Ligne de commande

  • Lancer une application en ligne de commande depuis le code Pyduino

Fichiers
Répertoires :

  • Afficher les fichiers contenus dans un répertoire

Texte :

  • Ecrire une ligne dans un fichier à intervalle régulier.
  • Créer un fichier de données horodatées de test.
  • Créer un fichier de 24H de données horodatées de test.
  • Créer un fichier de 24H de données horodatées de test : courbe élévation solaire?
  • Créer un fichier de 24H de 6 séries données horodatées de test.
  • Ecrire une ligne de données horodatées dans un fichier à intervalle régulier pendant une durée voulue
  • Ecrire une ligne de données horodatées dans un fichier à intervalle régulier pendant 1 minute avec « journalisation » automatique du fichier par minute. (pour test)
  • Ecrire une ligne de données horodatées dans un fichier à intervalle régulier pendant 1 minute avec « journalisation » automatique du fichier par minute. (pour test)? v2 – plus simple
  • Ecrire une ligne de données horodatées dans un fichier à intervalle régulier pendant 24H avec journalisation automatique du fichier par jour.?

Image :

  • Enregistrer une image webcam à intervalle régulier

Audio :

  • Enregistrer un fichier son

Video :

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

Reseau
Intro :

  • Afficher l’adresse IP du système
  • Annoncer l’adresse IP du système en synthèse vocale

Serveur TCP/Http :

  • Créer un serveur TCP simple

Serveur TCP/Http/HTML:

  • Serveur HTML affichant une page HTML simple
  • Serveur HTML affichant une page HTML simple avec fonction fournissant la page HTML
  • Page HTML simple affichant le contenu d’un fichier de données texte *
  • Serveur HTML affichant un formulaire HTML simple
  • Serveur HTML renvoyant une liste déroulante affichant la liste des fichiers d’un répertoire sur le système

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

  • Affichage d’une page HTML avec code Javascript simple
  • Affichage d’un canvas simple
  • Affichage d’un widget graphique codé en Javascript
  • Affichage d’une courbe progressive dans un canva

Avec la librairie graphique RGraph

  • Affichage d’un widget graphique fourni par une librairie Javascript
  • Affichage de 6 widgets graphiques fournis par une librairie Javascript

Avec la librairie graphique Dygraphs

  • Données générées :
    • Afficher une courbe de 1000 valeurs au format texte générées par une boucle for
  • Tableau Numpy :
    • Afficher une courbe de 1000 valeurs aléatoires à partir d’un tableau numpy (avec timeline)
    • Afficher plusieurs courbes (x6) de 1000 valeurs aléatoires à partir d’un tableau numpy
    • Afficher 1 courbe de 24H de données horodatées (1440) avec timeline à partir d’un tableau numpy
    • Afficher 1 courbe de 24H de données horodatées (1440) avec timeline à + courbe de l’élévation solaire, partir d’un tableau numpy? *
    • Afficher 6 courbes de 24H de données horodatées (1440) avec timeline à partir d’un tableau numpy
  • Fichier de données texte :
    • Afficher une courbe à partir d’un fichier de données
    • Afficher 6 courbes à partir d’un fichier de 6 séries de données
    • Afficher n courbes à partir d’un fichier de n séries de données – nombre de mesures indifférent TOP !

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

  • Afficher le contenu d’un fichier sélectionné à partir d’une liste déroulante listant le contenu d’un répertoire

Graphique ans librairie graphique

  • Afficher une valeur dans une page HTML par requête Ajax vers le serveur
  • Afficher dans le navigateur client dans un canva sous forme de courbe une valeur reçue par requête Ajax vers le serveur Pyduino

Avec la librairie graphique RGRaph

  • Actualisation d’un widget graphique par requête Ajax à intervalle régulier
  • Actualisation de 6 widgets graphiques par requête Ajax à intervalle régulier

Avec la librairie graphique Dygraph

  • Actualisation d’une courbe par requête Ajax à intervalle régulier avec défilement vers la droite
  • Actualisation d’une courbe entière par requête Ajax à intervalle régulier à partir d’un tableau numpy de 1000 valeurs aléatoires
  • Optimisation : envoi d’une seule valeur en réponse Ajax et gestion du défilement côté client.
  • Actualisation d’une courbe entière par requête Ajax de données horodatées à partir d’un tableau numpy
  • Actualisation d’une courbe entière par requête Ajax à partir d’un fichier de données horodatées
  • Mettre à jour une courbe à partir d’un fichier de données sélectionné à partir d’une liste déroulante listant le contenu d’un répertoire TOP !
  • Mettre à jour une courbe à partir d’un fichier de données sélectionné à partir d’une liste déroulante listant le contenu d’un répertoire pour 1 à n séries de données
  • Actualisation des n dernières valeurs d’une courbe par requête Ajax à partir d’un fichier de données horodatées
  • Double graphique actualisé par requête Ajax : affichage « live » à intervalle rapide de la valeur courante et affichage à intervalle lent du contenu fichier de données

Voir également : Installer des librairies Javascript locales

ÉlectroniqueChamp électrique : les notions fondamentales expliquées simplement

Mail:

  • Envoyer un mail
  • Envoi d’un mail avec une image en pièce jointe

6.3  Programmes utilisant les fonctionnalités multimédia seules

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 :

  • Lire un son

En entrée :

  • Enregistrer un fichier son
  • Détecter un bruit
  • Capturer une image si détection d’un bruit

Voix
Synthèse vocale :

  • Tester la synthèse vocale… dans la langue de Molière !
  • Synthèse vocale d’une valeur saisie sur un Numpad (clavier numérique USB)
  • Testeur de code secret à synthèse vocale

Reconnaissance vocale :

  • Tester la reconnaissance vocale
  • Lancer une application par reconnaissance vocale
  • Capturer une image par commande vocale

Image

  • Enregistrer une image webcam à intervalle régulier
  • Capturer une image par commande vocale

Video
En sortie :

  • Lire une vidéo en plein écran

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

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

  • Allumer/éteindre 8 sorties numériques à l’aide d’un numpad (clavier numérique)
  • Saisir la durée d’allumage d’une LED sur Numpad (un « minuteur » à clavier numérique)

Multimédia

  • Reconnaissance vocale en mode connecté avec LED de signalisation écoute
  • Allumer/éteindre des sorties numériques par reconnaissance vocale TOP !
  • Contrôler 2 moteurs CC par commande vocale (base pour robot à commande vocale)

Entrées numériques
Système

  • Déclencher l’exécution d’une commande système à partir d’un bouton poussoir

Fichier

  • Enregistrer un message dans un fichier lors appui sur un bouton poussoir

Réseau

  • L’appui sur le bouton poussoir annonce en synthèse vocale l’adresse IP du système.
  • Un appui sur le bouton poussoir déclenche l’envoi d’un mail TOP !

Audio

  • Un appui sur le bouton poussoir déclenche la lecture d’un fichier son

Voix

  • Un appui sur le bouton poussoir déclenche un message en synthèse vocale

Image

  • Capturer une image webcam sur appui bouton poussoir (appareil photo numérique)

Video

  • Un appui sur le bouton poussoir déclenche la lecture d’une video

Entrées analogiques
Voix :

  • L’appui sur un bouton poussoir déclenche l’annonce vocale d’un résultat de mesure analogique

Fichier :

  • Enregistrer la mesure d’une broche analogique à intervalle régulier dans un fichier
  • Enregistrer la mesure d’une broche analogique à intervalle régulier dans un fichier – compatible Dygraphs
  • Enregistrer la mesure d’une broche analogique à intervalle régulier dans un fichier avec journalisation automatique du fichier
  • Enregistrer la mesure d’une broche analogique à intervalle régulier dans un fichier en moyennant les mesures intermédiaires
  • Enregistrer la mesure d’une broche analogique à intervalle régulier dans un fichier en moyennant les mesures intermédiaires et avec journalisation automatique du fichier

Reseau :

  • Serveur TCP simple renvoyant la valeur d’une mesure analogique

Reseau : HTML + Javascript

  • Affichage à l’aide d’un widget graphique d’une valeur analogique (auto-rafraîchissement).

Reseau : HTML + Javascript + Ajax

  • Actualiser la valeur d’une broche analogique sur la page web par requête Ajax
  • RGraph :Actualiser un widget graphique par requête Ajax à intervalle régulier à partir de la mesure d’une broche analogique
  • RGraph : Actualiser 6 widgets graphiques par requête Ajax à intervalle régulier à partir de la mesure de 6 broches analogiques
  • Dygraphs : Serveur Javascritp+Ajax affichant la valeur d’une mesure analogique sous forme de courbe

Sorties analogiques

  • Générer l’impulsion en largeur modulée (PWM) voulue par saisie d’une valeur sur Numpad
  • Fixer la vitesse de rotation d’un moteur à l’aide d’un Numpad

==== Système ====

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

  • Allume/éteint sorties numériques à l’aide d’un numpad (clavier numérique)
  • Générer l’impulsion en largeur modulée (PWM) voulue par saisie d’une valeur sur Numpad
  • Saisir la durée d’allumage d’une LED sur Numpad (un « minuteur » à clavier numérique)

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

  • Déclencher l’exécution d’une commande système à partir d’un bouton poussoir

Fichiers
Texte :

  • Enregistrer un message dans un fichier lors appui sur un bouton poussoir
  • Enregistrer la mesure d’une broche analogique à intervalle régulier dans un fichier

Image :

  • Capturer une image webcam sur appui bouton poussoir (appareil photo numérique)

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 :

  • L’appui sur le bouton poussoir annonce en synthèse vocale l’adresse IP du système.

Serveur TCP/Http :

  • Serveur TCP simple renvoyant la valeur d’une mesure analogique

Serveur TCP/Http/HTML:

  • Serveur HTML affichant les valeurs des 6 voies analogiques dans un tableau
  • Contrôler une broche E/S en sortie à l’aide d’un formulaire HTML (cas à cocher)

Serveur TCP/Http/HTML + Javascript

  • Affichage à l’aide d’un widget graphique d’une valeur analogique (auto-rafraîchissement).

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

  • Actualiser la valeur d’une broche analogique sur la page web par requête Ajax
  • Affichage d’une mesure analogique sous forme de courbe dans un canvas avec actualisation par requête Ajax

Avec librairie RGraph

  • Actualiser un widget graphique par requête Ajax à intervalle régulier à partir de la mesure d’une broche analogique
  • Actualiser 6 widgets graphiques par requête Ajax à intervalle régulier à partir de la mesure de 6 broches analogiques

Avec librairie Dygraphs

  • Serveur Javascritp+Ajax affichant la valeur d’une mesure analogique sous forme de courbe

Mail:

  • Un appui sur le bouton poussoir déclenche l’envoi d’un mail TOP !
  • Un appui sur le bouton poussoir déclenche la capture d’une image et l’envoi d’un mail avec l’image en pièce jointe

==== Multimédia ====

ÉlectroniqueBien chauffer son atelier d’électronique : confort, sécurité et continuité de travail

Audio
En sortie :

  • Un appui sur le bouton poussoir déclenche un message en synthèse vocale
  • L’appui sur le bouton poussoir annonce en synthèse vocale l’adresse IP du système.
  • Sélectionner un fichier son à lire avec le numpad

En entrée :

  • Enregistrer un fichier son lors appui sur un bouton poussoir

Voix
Synthèse vocale :

  • Un appui sur le bouton poussoir déclenche un message en synthèse vocale

Reconnaissance vocale :

  • Reconnaissance vocale en mode connecté avec LED de signalisation écoute
  • Allumer/éteindre des sorties numériques par reconnaissance vocale TOP !

Image

  • Capturer une image webcam sur appui bouton poussoir (appareil photo numérique)
  • Capturer une image par commande vocale avec Led de visualisation

Vidéo
En sortie :

  • Un appui sur le bouton poussoir déclenche la lecture d’une video
  • Choisir et lancer une vidéo à la voix

En entrée :

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

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

  • L’appui sur un bouton graphique ON/OFF allume/éteint une LED
  • Contrôler une LED à l’aide d’une interface minuteur « micro-onde like »
  • Interface graphique de contrôle de 8 sorties numériques
  • Interface de contrôle à 5 boutons graphiques pour contrôle d’un robot mobile à 2 moteurs

Entrées numériques

  • L’appui sur un bouton fait défiler un compteur (pompe a essence)

Entrées analogiques
Affichages numériques

  • Afficher une mesure analogique dans un widget afficheur LCD
  • Afficher une mesure analogique dans un widget afficheur LCD avec champs de conversion en unité
  • Thermomètre numérique à LM 35
  • Afficher les mesures numériques brutes dans 6 widgets afficheur LCD
  • Afficher les mesures numériques dans 6 widgets afficheur LCD avec champs de conversion d’unité

Affichages analogiques

  • Afficher une mesure analogique dans un widget à aiguille
  • Afficher une mesure analogique dans un widget à aiguille avec champs de conversion en unités
  • Afficher 6 mesures analogiques dans 6 widgets à aiguille
  • Afficher 6 mesures analogiques dans 6 widgets à aiguille avec champs de conversion en unités
  • Afficher une mesure analogique dans un widget « bargraph »
  • Afficher une mesure analogique dans un widget « bargraph » avec champs de conversion en unités
  • Afficher 6 mesures analogiques dans 6 widgets « bargraph »
  • Afficher 6 mesures analogiques dans 6 widgets « bargraph » avec champs de conversion en unités

Affichages sous forme de courbe
Monovoie :

  • Oscilloscope basse fréquence monovoie
  • Oscilloscope basse fréquence monovoie avec widgets de réglage, bouton de stop, widget LCD valeur, croix de lignes de sélection TOP !
  • Interface de datalogging « lent » sur 24H avec widget de réglages, croix de sélection

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.

Sorties analogiques

  • Faire varier la luminosité d’une LED à l’aide d’un slider

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

Voir les rubriques PyQt du site :

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

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

Donnez votre avis

Soyez le 1er à noter cet article
ou bien laissez un avis détaillé


Partagez cet article maintenant !


Ça ne règle pas votre cas ?

Décrivez la panne sur le forum, avec une photo si vous pouvez : les membres qui ont eu la même répondent, et le sujet reste pour les suivants.

Avatar photoAvatar photoAvatar photoAvatar photoAvatar photoRejoindre les 54 membres — gratuit, 44 pannes résolues

Dans le même tiroir

Réagissez à cet article

La lettre du club

Une lettre par mois, accrochée au panneau

Les sujets du forum résolus dans le mois, un guide, un chiffre qu’on peut vérifier chez soi. Rien d’autre, jamais plus souvent — et on se désabonne d’un clic.

Ce qu’il y a dedans

Votre adresse

Une lettre par mois. Désabonnement en un clic.

Partagez votre réaction