Modifications

Sauter à la navigation Sauter à la recherche
9 000 octets ajoutés ,  20 novembre 2016 à 12:51
Ligne 1 : Ligne 1 :  
{{MicroPython-Hack-Prepare-NAV}}
 
{{MicroPython-Hack-Prepare-NAV}}
   −
{{traduction}}
+
== Utiliser la carte PyBoard ==
 +
{{bloc-etroit|text=Lorsque nous branchons le Pyboard sur un port USB de notre ordinateur, la carte apparaît comme un disque. Vous pouvez éditer le fichier {{fname|main.py}} sur le disque, puis éjecter le disque, et finalement presser le bouton RST (''Reset'') pour réinitialiser la carte afin d'exécuter {{fname|main.py}}.
   −
== Introduction ==
+
Il existe cependant des façon plus interactive d'utiliser la pyboard comme le mode REPL (Read-Eval-Print Loop, boucle lecture-evaluation-affichage). Pour l'utiliser un programme de communication série (un ''Terminal'') pour vous connecter sur le périphérique /dev/ttyACM0 (sur Linux) ou /dev/tty.usbmodemXXXX (MacOS). Le programme ''screen'' sous Unix fonctionne bien mais l'auteur de ce tuto préfère utiliser [https://www.archlinux.org/packages/community/i686/minicom/ minicom] (lien ArchLinux, existe aussi sur de nombreuses distribution Linux).}}
{{bloc-etroit|text=Le contenu de cette section est une traduction de l'article MicroPython de Mr Boulanger sur CentaleSupélec. Traduit avec l'aimable autorisation de Mr Boulanger.}}
+
 
 +
== pyterm.py ==
 +
{{bloc-etroit|text=Le script suivant s’appelle {{fname|pyterm.py}}, il se connecter sur la PyBoard en utilisant le programme minicom: }}
 +
 
 +
<nowiki>#!/usr/bin/python
 +
import sys
 +
import os
 +
import fnmatch
 +
 +
"""
 +
Utilisation: pyterm [péripherique]
 +
Appelle minicom sur le "périphérique". Si le périphérique n'est pas mentionné, il
 +
recherche les pérhophériques /dev/ttyACM* (le nom de la pyboard sous Linux)
 +
ou les périphériques /dev/tty.usbmodem* (nom de la pyboard sous MacOS).
 +
"""
 +
def main():
 +
    if len(sys.argv) > 1:
 +
        ttymodems = [sys.argv[1]]
 +
    else:
 +
        ttymodems = fnmatch.filter(os.listdir('/dev'), 'ttyACM*')
 +
        if len(ttymodems) == 0:
 +
            ttymodems = fnmatch.filter(os.listdir('/dev'), 'tty.usbmodem*')
 +
        if len(ttymodems) == 0:
 +
            print('Error: no pyboard found.')
 +
            sys.exit(1)
 +
        ttymodems[0] = '/dev/' + ttymodems[0]
 +
    os.system('minicom -D '+ttymodems[0])
 +
 +
if __name__ == "__main__":
 +
    main()</nowiki>
 +
 
 +
Avec le script {{fname|pyterm.py}}, vous pouvez démarrer une session avec la commande {{fname|./pyterm.py /dev/ttyACM1}} ou /dev/ttyACM1 est le périphérique correspondant à votre pyboard.
 +
 
 +
Une fois connecté, vous pouvez saisir des commande et découvrir de nombreuses possibilités de la PyBoard. Par exemple:
 +
 
 +
<nowiki>led = pyb.LED(1)
 +
led.on()</nowiki>
 +
 
 +
qui allumera la led rouge sur la pyboard.
 +
 
 +
<nowiki>led = pyb.LED(1)
 +
def blink(timer):
 +
  led.toggle()
 +
tim = pyb.Timer(4, freq=2, callback=blink)</nowiki>
 +
 
 +
Fera clignoter la LED rouge a 1Hz (la LED change d'état allumé/éteind à 2Hz).
 +
 
 +
== Charger du code sur le PyBoard ==
 +
Pour l'écriture de code plus complexe, il y a deux possibilités:
 +
 
 +
# Editer le fichier sur la PyBoard puis le charger en mode REPL en utilisant la commande {{fname|import}}
 +
# Editer les fichiers sur votre ordinateur puis faire un copier/coller en mode REPL
 +
 
 +
La première solution fonctionne bien, c'est la seule façon de de travailler si vous avez un code réparti dans différents modules.
 +
 
 +
La seconde solution est peut être la plus simple mais vous ne pouvez pas envoyer trop de texte/code dans le mode REPL sans erreur. Vous aurrez besoin de passer en mode ''raw REPL'' (REPL brute) en pressant Ctrl-A, puis coller votre code, et finaliser le transfert en pressant Ctrl-D. Votre code sera exécuté sur la PyBoard. S'il ne se termine pas par lui même, vous pouvez stopper votre code en pressant Ctrl-C, puis pressez Ctrl-B pour sortir du mode ''raw REPL'' (afin de revenir au mode REPL utilisateur). Vous pouvez effectuer une réinitialisation logiciel de votre PyBoard en pressant Ctrl-D.
 +
 
 +
 
 +
{{underline|Note pour les utilisateurs de minicom:}} vous aurez besoin de presser Ctrl-A deux fois pour envoyer un Ctrl-A au REPL parce que, par défaut, Ctrl-A est aussi la touche d'échappement de minicom. Vous pouvez utiliser la commande "paste file" dans minicom pour envoyer un fichier vers REPL. Pour réaliser cela avec Minicom:
 +
 
 +
# Presser Ctrl-A deux fois pour entrer en mode ''raw REPL''
 +
# Presser Ctrl-A Y tpour exécuter la commande "paste file" dans minicom
 +
# Naviguer dans vos fichier apparaissant à l'écran et sélectionner le fichier à envoyer
 +
# Presser Ctrl-D pour terminer le transfert
 +
 
 +
Votre fichier est alors chargé. S'il ne contient que des définitions, pressez Ctrl-B pour sortir du mode ''raw REPL'' et utiliser les différentes définitions dans le mode REPL standard.
 +
 
 +
== pyboard.py ==
 +
 
 +
{{ambox|text=Une fois maîtrisé, PyBoard.py est un outil plus que pratique. Vivement recommandé par MCHobby.}}
 +
 
 +
Une autre façon d’exécuter du code sur votre pyboard est d'utiliser le script {{fname|pyboard.py}} disponible dans le répertoire ''tools'' du dépôt GIT MicroPython.
 +
 
 +
Plutôt que d'utiliser minicom pour transférer le contenu un fichier sur la PyBoard, vous pouvez utiliser directement le script {{fname|pyboard.py}}. Rien ne vous empêche, par la suite, de réutiliser un programme terminal (comme minicom) pour vous reconnecter à nouveau en mode REPL.
 +
 
 +
Vous pouvez modifier le script {{fname|pyboard.py}} pour rechercher automatiquement le périphérique "pyboard" en modifiant la fonction {{fname|main()}} comme suit:
 +
 
 +
<nowiki>def main():
 +
    import argparse
 +
    import os
 +
    import fnmatch
 +
    ttymodems = fnmatch.filter(os.listdir('/dev'), 'ttyACM*')
 +
    if len(ttymodems) == 0:
 +
        ttymodems = fnmatch.filter(os.listdir('/dev'), 'tty.usbmodem*')
 +
    if len(ttymodems) == 0:
 +
        print('Error: no pyboard found.')
 +
        sys.exit(1)
 +
    cmd_parser = argparse.ArgumentParser(description='Run scripts on the pyboard.')
 +
    cmd_parser.add_argument('--device', default='/dev/' + ttymodems[0], help='the serial device of the pyboard')</nowiki>
 +
 
 +
Si vous désirez utiliser le script original du script {{fname|pyboard.py}}, la commande à utiliser pour charger votre fichier "mon_fichier.py" sur ma pyboard est {{fname|1=./pyboard --device=/dev/ttyACM1 mon_fichier.py}} . /dev/ttyACM1 correspond à la connexion série associée à votre PyBoard.
 +
 
 +
== Ampy ==
 +
Ampy est un outil développé par Adafruit industrie alors que Tony Dicola produisait de la documentation pour le Feather ESP8266 Huzza.
 +
 
 +
Il permet de réaliser les différentes opérations décrites ci-dessus mais également {{underline|le transfert de fichier vers et depuis une carte MicroPython}} par l'intermédiaire '''d'une connexion série'''.
 +
 
 +
Il s'agit d'un outil pratique car il vous permet de conduire vos développements sur PC avec votre éditeur de texte favoris; puis transférer vos fichiers sur la carte MicroPython avant de les exécuter via une session REPL.
 +
 
 +
{{ttuto-begin}}
 +
 
 +
{{ttuto
 +
  |label=Téléverser & Exécuter
 +
  |descr=Téléverser des fichiers et exécuter du code avec '''Ampy'''. Un flux simple de développement.
 +
  |img=tlogo-feather-load-file.jpg
 +
  |link=FEATHER-CHARGER-FICHIER-MICROPYTHON
 +
}}
 +
 
 +
{{ttuto-end}}
 +
 
 +
== RShell ==
 +
Si [[FEATHER-CHARGER-FICHIER-MICROPYTHON|Ampy]] d'Adafruit est un outil pratique et simple, '''RShell''' est un outil nettement plus puissant.
 +
 
 +
Tout comme Ampy, '''RShell''' permet de transférer des fichiers vers (et depuis) une carte MicroPython par l'intermédiaire d'une simple connexion série. C'est donc un outil puissant et pratique.
 +
 
 +
Par contre, RShell, ne se présente pas comme une série de commande Linux mais comme {{underline|un vrai shell dédié à MicroPython}}. Il est par ailleurs capable de supporter plusieurs cartes MicroPython connectées en même temps.
 +
 
 +
Chez MCHobby nous avons un faible un RSheel mais il faut bien reconnaître qu'il nécessite un peu plus d'investissement que [[FEATHER-CHARGER-FICHIER-MICROPYTHON|Ampy]] mais le jeu en faut largement la chandelle. 
 +
 
 +
{{ttuto-begin}}
 +
 
 +
{{ttuto
 +
  |label=RSHell
 +
  |descr=Transférez des fichiers et contrôlez votre carte depuis une simple connexion série. ESP8266 compatible.
 +
  |img=tlogo-micropython-Debugger.jpg
 +
  |link=MicroPython-Hack-RShell
 +
}}
 +
 
 +
{{ttuto-end}}
 +
 
 +
== Element Fritzing ==
 +
Mr Boulanger utilise [http://fritzing.org/ Fritzing] pour dessiner ces montage. A cette fin, il a réalisé [http://wdi.supelec.fr/boulanger/downloads/MicroPython/pyboard.fzpz un composant PyBoard pour Fritzing]. Vous pouvez également obtenir le dessin SVG pour [http://wdi.supelec.fr/boulanger/downloads/MicroPython/pyboard_PCB.svg la carte], le [http://wdi.supelec.fr/boulanger/downloads/MicroPython/pyboard_schem.svg schéma] et l' [http://wdi.supelec.fr/boulanger/downloads/MicroPython/pyboard.svg icon].
 +
 
 +
Vous pouvez voir le résultat dans l'exemple Fritzing ci-dessous:
 +
 
 +
[[Fichier:MicroPython-Hack-Outil-01.png|320px]]<small><br />Source: [http://wdi.supelec.fr/boulanger/MicroPython/ Supelec.fr]</small>
 +
 
 +
== Codes d'exemples ==
 +
L'article de Mr Boulanger contient également quelques codes d'exemples, vous pourrez les [http://wdi.supelec.fr/boulanger/MicroPython/#Code trouver ici].
 +
 
 +
== Source et autorisation de traduction ==
 +
Le contenu de cette page est une traduction de l'article [http://wdi.supelec.fr/boulanger/MicroPython/ MicroPython de Mr Boulanger] sur [http://wdi.supelec.fr/boulanger/MicroPython/ CentaleSupélec]. Traduit avec l'aimable autorisation de Mr Boulanger.
 +
 
 +
Vous pouvez retrouver l'article original sur [http://wdi.supelec.fr/boulanger/MicroPython/ http://wdi.supelec.fr/boulanger/MicroPython/]
    
{{MicroPython-Hack-Prepare-TRAILER}}
 
{{MicroPython-Hack-Prepare-TRAILER}}
29 837

modifications

Menu de navigation