Main

Référence : Fonctions Pyduino

Référence et documentation officielle des fonctions Pyduino : les mot-clés, instructions et fonctions de base


Suivez le guide : Ateliers Pyduino
des tutos PDF pour apprendre à programmer un mini-PC comme une carte Arduino et bien plus encore !

Plusieurs centaines de pages de supports PDF en ligne !


Les fonctions Pyduino, qui reprennent la plupart des instructions Arduino, sont basées sur le langage Python et supportent donc toutes les constructions standards du langage Python. Le langage Python est un langage interprété (à la différence du langage C qui est un langage compilé) et repose sur l'utilisation d'un interpréteur Python qui exécute une à une les instructions. Ceci permet notamment de tester des instructions ou un bout de code dans l'interpréteur Python directement. Le langage Python, sur lequel est basée la librairie Pyduino, est par ailleurs un langage très puissant dans ses possibilités, plus simple à utiliser en ce qui concerne la gestion des types de variables, et qui permet d'interagir avec le système (fichier, réseau, vidéo, sons, etc....). Au final, la librairie Pyduino permet dans un même code d'accèder aux broches E/S du mini-PC, aux fonctionnalités "système" (fichier, réseau) ou encore multimédia (webcam, sons, voix) !

Si vous connaissez Arduino, il n'est pas nécessaire de connaître Python pour utiliser Pyduino !
Avec 5 règles simples de "conversion" à connaître, vous pouvez utiliser Pyduino en connaissant Arduino !


Les quelques instructions Arduino qui ne sont pas disponibles avec Pyduino sont barrées
Les instructions Arduino qui ne sont pas (encore) implémentées dans Pyduino sont en gris.
Les fonctions Pyduino supplémentaires qui n'existent pas en langage Arduino sont en vert.
Seule l'instruction map() a été rebaptisée rescale(). Toutes les autres fonctions Pyduino sont identiques aux fonctions Arduino !

Structure

Fonctions de base

  • def : déclaration d'une fonction

Ces deux fonctions sont obligatoires dans tout programme utilisant les fonctions Pyduino :

Syntaxe de base

Structures de contrôle

Opérateurs arithmétiques

  • = (égalité)
  • + (addition)
  • - (soustraction)
  • * (multiplication)
  • / (division)
  • % (modulo)

Opérateurs de comparaison

  • == (égal à)
  • != (différent de)
  • < (inférieur à)
  • > (supérieur à)
  • <= (inférieur ou égal à)
  • >= (supérieur ou égal à)
  • in

Opérateurs booléens

  • and (ET booléen)
  • or (OU booléen)
  • not (NON booléen)

Opérateurs bit à bit

Opérateurs composés

Pointeurs

Pas de pointeurs en langage Python.

  • * pointeur
  • & pointeur

Variables, constantes, objets

Les variables sont des expressions que vous pouvez utilisez dans les programmes pour stocker des valeurs, telles que la tension de sortie d'un capteur présente sur une broche analogique.

Constantes prédéfinies

Les constantes prédéfinies du langage Arduino sont des valeurs particulières ayant une signification spécifique.

A ajouter : constantes décimales prédéfinies

Expressions numériques

Types des données

Les variables peuvent être de type variés qui sont décrits ci-dessous.

Synthèse des types de données Pyduino

Variables numériques

  • None
  • bool
  • int (32 bits)
  • long (64 bits)
  • float (nombres à virgules)
  • complex (nombres complexes)
  • char
  • byte
  • unsigned int
  • unsigned long
  • double (nombres à virgules)


Séquences
_____

_____

_____

_____

Conversion des types de données

Portée des variables et qualificateurs

Utilitaires

  • type
  • sizeof|sizeof()

Référence

Fonctions Broches E/S

Entrées/Sorties Numériques


  • digitalWriteMulti(listBroches, listValeurs)
  • pinModeMulti(listBroches, listMode)
  • digitalReadMulti(listBroches) --> listState

Entrées analogiques

Sorties "analogiques" (génération d'impulsion)

Entrées/Sorties Avancées

Sons

Emission sérielle

  • shiftOut(broche, BrocheHorloge, OrdreBit, valeur)

Mesure largeur impulsion

  • pulseIn(broche, valeur) --> long

Interruptions Externes

  • attachInterrupt(interruption, fonction, mode)
  • detachInterrupt(interruption)

Interruptions

  • interrupts()
  • noInterrupts()

Fonctions Utilitaires

Temps

Math

Trigonométrie

Nombres randomisés (hasard)

____

  • Pour davantage de fonctions mathématiques, voir aussi le module math : log, log10, asin, atan, acos, etc... directement utilisables avec Pyduino !
  • Pour des fonctions mathématiques avancées sur tableaux voir le module Numpy et le module Scipy

Bits et Octets

Fonctions natives Python utiles

Toutes les fonctions natives du langage Python sont directement utilisables au sein d'un code Pyduino ! En voici quelques-unes intéressantes à connaître.

Commentaires utilisateurs

Le langage Arduino, véritable "méta-langage" orienté pour la programmation microcontrôleur, offre des fonctions de syntaxe très simples mais très puissantes, comme par exemple les fonctions analogRead ou map (rebaptisée rescale ) . La librairie Pyduino reprend la plupart des fonctions Arduino natives, inchangées dans leur syntaxe, tout en ajoutant de nouvelles fonctions utiles et en les intégrant dans un espace de développement beaucoup plus puissant, le langage Python. Ainsi, dans un même code, il sera très facile de combiner les E/S et les fonctions systèmes (fichiers, vidéo, sons, etc..)



Suivez le guide : Ateliers Pyduino
des tutos PDF pour apprendre à programmer un mini-PC comme une carte Arduino et bien plus encore !

Plusieurs centaines de pages de supports PDF en ligne !


Référence et documentation officielle des fonctions Pyduino : Fonctions par Thème


Système

Console système

Emulation Serial

Fonctions Python

Ligne de commande système

Temps réel (RTC)

Le temps réel est basé sur l'heure système, actualisée par le réseau si la carte ne dispose pas de RTC intégrée.

La date

L'heure

Formatage de l'heure

Répertoires et Fichiers

Gestion des chemins utilisés

Les fonctions suivantes ont pour but de rendre les codes Pyduino facilement portables.

Accès fichiers et répertoires

Chemins

Opérations sur répertoire

Opérations sur fichier

Fichiers de données texte

Fonctions de base

Fonctions utilitaires

Réseau

L'implémentation de la librairie Ethernet est sensiblement différente dans Pyduino avec pour résultat une nette simplification du code final !

Ethernet

Le constructeur de la classe Ethernet est implicite

  • localIP()
  • begin() - inutile
  • maintain() - inutile

Adresse IP

  • IPAddress - inutile

Serveur TCP

Voir également la rubrique webapps

Client TCP

Le client TCP est géré par la classe EthernetServer : le code est nettement plus simple qu'avec la librairie Arduino Ethernet !

EthernetClient() | EthernetClient) | connected() | connect() | write() | print() | println() | available() | read() | flush() | stop()

Fonctions utilitaires TCP

Serveur Mail

Communications Sérielles

UART

Les fonctions UART permettent la communication série sur le port série du système.

Exemple avec pcduino et Arduino

Affichages

Afficheur LCD standard (LiquidCrystal)

Cette classe est l'implémentation pour Pyduino de la librairie Arduino LiquidCrystal pour afficheur LCD alpha-numérique standard (en mode 4 bits en utilisant 6 broches E/S). Les afficheurs supportés sont tous les afficheurs LCD alpha-numériques standard de 1x16 à 4x20 caractères.

Le constructeur de classe

Fonctions d'initialisation

Fonctions d'écriture

Fonctions de gestion de l'écran

Fonctions modifiant l'aspect du curseur

Fonctions de positionnement du curseur

Fonctions de contrôle du comportement du curseur

Fonctions d'effets visuels

Fonction de création de caractère personnalisé

  • lcdcreateChar| createChar() - à venir

Dispositifs d'entrée

Clavier matriciel

  • Utiliser un Numpad USB !

Numpad USB

Moteurs

Servomoteurs standards

Les servomoteurs standards permettent de positionner l'axe à différents angles, habituellement entre 0 et 180 degrés.


Multimédia

Les fonctions multimédia nécessitent l'installation de paquets supplémentaires sur le système : voir la rubrique d'installation
NOUVEAU : L'installation des dépendances multimédia est automatiquement effectuée en 1 fois par l'installation du paquet *.deb PyduinoMultimedia

Images et webcam

Capture

Visualisation

Fichiers

Opérations sur image

Voir également : ma librairie Pyqtcv compatible avec Pyduino !

Audio

Lecture audio

Enregistrement audio

Detection Audio

Voix

Synthèse vocale

Reconnaissance vocale

Video

Lecture video

Enregistrement video

  • recordVideo()
  • recordAudioVideo()

Communications Sérielles (suite)

SPI

  • begin()
  • end()
  • setBitOrder()
  • setClockDivider()
  • setDataMode()
  • transfer()

I2C

Fonctions d'initialisation

  • begin() : initialise communication avec Arduino "maître"
  • begin(adresse) : initialise communication avec Arduino "esclave"

Fonctions "mode maître"

  • requestFrom(adresse, quantite)
  • beginTransmission(adresse)
  • endTransmission()
  • write()
  • available()
  • read()

Fonctions "mode esclave"

  • write()
  • available()
  • read()
  • onReceive(fonction)
  • onRequest(fonction)

Réseau (suite)

UDP

A venir

  • Constructeur EthernetUDP
  • begin()
  • read()
  • write()
  • beginPacket()
  • endPacket()
  • parsePacket()
  • available()
  • remoteIP()
  • remotePort()

Contrôle de moteurs

Moteurs CC

Servomoteurs à Rotation Continue

Moteurs pas à pas

  • Stepper(nombre_pas, broche1, broche2)
  • Stepper(nombre_pas, broche1, broche2, broche3, broche4)
  • setSpeed(vitesse)
  • step(nombre_pas)

Science

Nombres complexes

Tableaux numériques

Résolution d'équation

Astronomie

  • setLongitude()
  • longitude()
  • setLatitude()
  • latitude()
  • Azimut Soleil
  • Elevation Solaire

Constantes physiques

  • Vitesse de la lumière dans le vide
  • Constante de Planck
  • Constante de boltzman

Diverses ressources utiles

Pour plus de détails concernant le langage Python, voir :


Page d'accueil de la référence Pyduino en français

Corrections, suggestions et nouvelle documentation peuvent être postées à l'adresse suivante : support_at_mon-club-elec_point_fr

Cette page a été réalisée par Xavier HINAULT (2013) (www.mon-club-elec.fr) et est sous licence Creative Commons Attribution-ShareAlike 3.0.