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 €

Programmer le pcDuino : Python simple : Le code minimum

Électroniquemis à jour le 23 avril 2023

Le pcDuino est un système informatique open source qui offre aux développeurs une plateforme puissante et flexible pour créer des applications et des programmes. Avec le pcDuino, les développeurs peuvent programmer en Python, un langage de programmation simple et facile à apprendre. Dans cet article, nous allons examiner le code minimum nécessaire pour programmer le pcDuino en Python et découvrir comment le pcDuino peut être utilisé pour créer des applications et des programmes.

Programmer le pcDuino : Python simple : Le code minimum

Ce que l’on va faire ici

  • Ce code est le code Python minimum « Arduino-like » s’exécutant sur le pcDuino.

Pré-requis

  • un mini-PC (pcDuino conseillé) avec système Lubuntu opérationnel. Voir si besoin la page d’accueil du pcDuino
  • Langage Python (2.7) et l’IDE Pyduino ou l’éditeur Geany installés. Voir si besoin : Logiciel pour développer avec Pyduino
  • ma librairie pyDuino installée : voir si besoin : Télécharger et installer Pyduino sur le pcDuino

Matériel nécessaire

Aucun

Le montage à réaliser

Aucun

Le fichier *.yno

Copier/coller ce code dans l’IDE Pyduino

# entete declarative

#— setup —
def setup():
        return # si vide

# — fin setup —

# — loop —
def loop():
        return # si vide

# — fin loop —
 

Le fichier *.py

Copier/coller ce code dans l’éditeur Geany

#!/usr/bin/python
# -*- coding: utf-8 -*-

# exemple pyDuino – par X. HINAULT – www.mon-club-elec.fr
# Juin 2013 – Tous droits réservés – GPLv3
# voir : https://github.com/sensor56/pyDuino

# code minimal

from arduino import * # importe les fonctions Arduino pour Python

# entete declarative

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

#— setup —
def setup():
        return # si vide

# — fin setup —

# — loop —
def loop():
        return # si vide

# — fin loop —

#— obligatoire pour lancement du code —
if __name__==« __main__ »: # pour rendre le code executable
        setup() # appelle la fonction setup
        while(1): loop() # appelle fonction loop sans fin
 

Ce code est également disponible ici : https://raw.github.com/sensor56/pyDuino/master/pcduino/exemples/1.Basics/BareMinimum.py

Utilisation

  • Appuyer sur le bouton exécuter dans Geany
  • Une fenêtre de Terminal vide doit apparaître sans message d’erreur.

Discussion technique

  • L’inconvénient majeur d’un appel de la fonction loop() automatique à la façon Arduino, c’est un usage élevé de la CPU… : 100% en fait, alors que la tâche exécutée par loop() n’est pas très conséquente.
  • Il est donc beaucoup plus judicieux d’auto-appeler loop() à l’aide de la fonction Pyduino timer() qui permet d’appeler une fonction après un intervalle voulu en millisecondes, sans mobiliser la CPU durant le temps d’attente. Du coup, l’usage CPU chute fortement, à quelques %. Cette solution sera donc à préférer et à privilégier en pratique.
  • Voici un exemple :
#!/usr/bin/python
# -*- coding: utf-8 -*-

# exemple pyDuino – par X. HINAULT – www.mon-club-elec.fr
# Juin 2013 – Tous droits réservés – GPLv3
# voir : https://github.com/sensor56/pyDuino

# code minimal avec Timer (décharge CPU)

from pyduino import * # importe les fonctions Arduino pour Python

# entete declarative
noLoop=True # bloque loop automatique

#— setup —
def setup():

        # instructions setup ici

        loop() # premier appel de la fonction loop

# — fin setup —

# — loop —
def loop(): # la fonction loop s’auto-appelle a intervalles reguliers

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

        # instructions loop ici

        timer(100, loop) # appelle fonction loop apres intervalle en ms

        # resultats sur pcduino avec htop :
        # en mode loop auto permanent : usage CPU = 100%
        # 100 ms ~10 appels par seconde = 5% usage CPU
        # 10 ms ~ 100 appels par seconde = 20% usage CPU
        # 5 ms ~ 200 appels par seconde = 30% usage CPU => bon compromis
        # 1 ms ~ 1000 appels par seconde = 60% usage CPU
        # 0.5ms ~ 2000 appels par seconde = 75% usage CPU
        # 0.1ms ~ 10 000 appels par seconde = 95% usage CPU

# — fin loop —

#— obligatoire pour lancement du code —
if __name__==« __main__ »: # pour rendre le code executable
        setup() # appelle la fonction main
        while not noLoop: loop() # appelle fonction loop sans fin

 

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

http://web.archive.org/web/20210804223007/https://www.mon-club-elec.fr/pmwiki_mon_club_elec/pmwiki.php?n=MAIN.ArduinoExpertCapteursComplexesDS18B20
Électronique

Le code Gray

Le code Gray est un concept qui a été développé pour aider les professionnels de la santé à aborder les…

Portrait de Inès DameronInès Dameron · 21 Avr 2023

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