Hack-wipy-generalite

De MCHobby - Wiki
Révision datée du 9 janvier 2017 à 15:46 par Admin (discussion | contributions) (→‎Système de fichier et accès FTP)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Sauter à la navigation Sauter à la recherche


MCHobby investit du temps et de l'argent dans la réalisation de traduction et/ou documentation. C'est un travail long et fastidieux réalisé dans l'esprit Open-Source... donc gratuit et librement accessible.
SI vous aimez nos traductions et documentations ALORS aidez nous à en produire plus en achetant vos produits chez MCHobby.

Pas de support en virgule flottante

Pour des raisons d'espace mémoire, il n'y a pas de support pour les opérations en virgule flottante (floating point) ni de module math sur le WiPy.

Cela signifie qu'il n'est pas possible d'utiliser des nombres à virgule flottante dans le code. Toutes les divisions doivent dont être réalisée avec ‘//’ (division entière) à la place de ‘/’. Par exemple:

>>> r = 4 // 2  # fonctionnera parfaitement
>>> r = 4 / 2   # NE fonctionnera PAS

Avant de mettre sous tension

Config réseau (WLAN) par défaut

Lorsque le WiPy boot avec la configuration d'usine par défaut il est démarre en mode point d'accès (Access Point mode en anglais). Ce point d'accès dispose d'un ssid commençant avec wipy-wlan et la clé est www.wipy.io .

Connectez vous sur ce réseau et le WiPy est accessible à l'adresse 192.168.1.1 . Pour obtenir un accès à la ligne de commande interactive, ouvrez une session telnet sur cette adresse IP (utilisez 23 comme le port par défaut).

Le WiPy vous demandera de vous authentifier. Utilisez:

  • login: micro
  • Mot de passe: python

REPL Telnet

Le programme "telnet" disponible sur Linux fonctionnera comme un charme (aussi sous OSX) mais d'autres outils tels que putty fonctionnera également très bien.

Le authentification par défaut est:

  • Utilisateur: micro
  • Mot de passe: python

Voyez l'info sur network.server (micropython.org) pour obtenir plus d'information sur la façon de modifier cette configuration par défaut.

Par exemple, sur un shell Linux, vous pourriez utiliser la commande suivante (lorsque vous êtes connecté sur le WiPy en mode Access Point):

$ telnet 192.168.1.1

Système de fichier et accès FTP

Il y a un petit système de fichier interne sur le WiPy, un lecteur qui s'appelle /flash et qui est stocké dans la mémoire flash externe du WiPy. Si une carte microSD est raccordée et montée, elle sera également disponible.

Lorsque le WiPy démarre, il exécute toujours le fichier boot.py localisé dans le système de fichier /flash .

Le système de fichier est accessible par l'intermédiaire du serveur FTP natif fonctionnant sur le WiPy. Ouvrez le client FTP de votre choix et connectez vous sur:

Voyez network.server (micropython.org) pour plus d'information sur la façon de modifier ces valeurs par défaut.

Nous recommandons d'utiliser les clients FTP suivants:

  • Utilitaire FTP en ligne de commande (Linux, aussi disponible sur OSX)
  • Filezilla
  • FireFTP.

Par exemple, en ligne de commande Linux, vous pourriez utiliser:

$ ftp 192.168.1.1

Le serveur FTP de WiPy ne supporte pas le mode actif, il faut donc uniquement utiliser le mode passif (voyez l'article "FTP actif versus FTP Passif" sur le site de nicolargo). Si vous utilisez le client ftp sous linux, alors vous devez saisir la commande suivante juste après votre login ftp:

ftp> passive

Après cette commande, le serveur FTP acceptera uniquement une seule connexion à la fois. Vérifiez le paramétrage de FileZilla dans la section suivante pour plus d'information.

Configuration FileZilla

N'utilisez pas le bouton de "connexion rapide" (Quick Connect) de FileZilla. A la place, ouvrez le "Gestionnaire de sites" (site manager) et créez une nouvelle configuration.

Dans le volet Général, vérifiez que l'encryption est fixée sur Connexion FTP simple (non sécurisée) (Only use plain FTP (insecure)).

Hack-wipy-FileZilla-00.jpg

Dans le volet "Paramètres de transfert" (Transfer Settings) limitez le nombre de connexion simultanées à maximum 1 (sinon FileZilla essayera d'ouvrir une seconde connexion de commande pendant la réception et sauvegarde des fichiers). Pour simplifier le code (et la taille) sur WiPy, une seule connexion de commande et une seule connexion de donnée sont possibles.

Hack-wipy-FileZilla-01.jpg

Les autres clients FTP doivent être configurés de façon similaire.

Mise-à-jour du FirmWare

Il est possible de réaliser une mise-à-jour du Firmware "Over The Air" (OTA, mise-à-jour via une connexion WiFi) par l'intermédiaire du serveur FTP.

Téléversez le fichier mcuimg.bin dans le répertoire /flash/sys/mcuimg.bin (ce qui prendra environ 6 secondes). Vous ne verrez pas le fichier stocké à l'intérieur du répertoire /flash/sys/ parce que stockage bypass le système de fichier (il se comporte donc comme un système de fichier interne caché). Assurez-vous que le fichier soit correctement transféré et qu'il à bien été signé avec le checksum MD5 (pour vérifier son intégrité).

Maintenant, réinitialisez votre WiPy à l'aide du bouton Reset de la carte ou en tapant les commandes suivantes:

>>> import machine
>>> machine.reset()

Les mises à jour logicielle peuvent être trouvée sur https://github.com/wipy/wipy/releases (Binaries.zip). Il est toujours recommandé de faire une mise-à-jour à la dernière version logicielle, prenez néanmoins le temps de lire les "release notes" avant de procéder à la mise à jour.

Pour vérifier la version logicielle, faites:

>>> import os
>>> os.uname().release

Si le numéro de version est inférieur à celui de la dernière release trouvé sur releases alors vous pouvez réaliser une mise-à-jour de votre WiPy!

Boot Modes et Safe boot

Si vous alimentez votre WiPy normalement (ou pressez le bouton Reset) alors le WiPy démarre en mode Standard; le fichier boot.py est exécuté en premier puis le fichier main.py sera exécuté.

Vous pouvez altérer cette séquence de démarrage en plaçant la broche GP28 au niveau haut (connecter la broche sur celle mentionnant 3v3) durant la réinitialisation (Reset). Cette procédure permet également de revenir en arrière à l'ancienne version du FirmWare. Le WiPy embarque 3 versions différentes du Firmware qui sont le Firmware d'usine (factory firmware) plus 2 mise-à-jours utilisateur.

Si la broche GP28 est maintenue au niveau haut après la réinitialisation (Reset) alors la LED heartbeat commence à clignoter lentement. Si la broches est toujours au niveau haut après 3 secondes alors la LED commence à clignoter un peu plus vite et WiPy sélectionnera a mise-à-jour utilisateur précédente pour démarrer. Si c'est bien la mise-à-jour précédente du Firmware que vous désirez alors vous devez relâcher la broche GP28 avec les 3 secondes qui suivent. Si 3 secondes plus tard la broche GP28 est toujours au niveau haut alors le Firmware d'usine sera sélectionné pour démarrer le WiPy (la LED clignotera rapidement pendant 1.5 secondes puis le WiPy démarre/boot).

Le mécaniste de sélection du Firmware est le suivant:

La broche Safe Boot GP28 relâchée dans l'interval:

  • 1ière fenêtre de 3 secs - Safe boot, dernier firmware est sélectionné
  • 2ième fenêtre de 3 secs - Safe boot, précédent firmware utilisateur est sélectionné
  • Dernière fenêtre de 1.5 secs - Safe boot, le firmware d'usine est sélectionné

Dans les 3 scénario ci-dessus, lorsque le Safe Boot mode est activé, le système n'exécute pas le contenu des fichiers boot.py et main.py . Le Safe Boot est pratique pour se sortir d'une situation où le script utilisateur provoque un crash ou une situation bloquante.

La sélection effectuée durant la Safe Boot n'est pas persistant. Par conséquent le dernier firmware est de nouveau exécutée normalement à la réinitialisation/reset suivant.

La LED heartbeat

Par défaut, la LED heartbeat (littéralement battement de coeur) clignote une fois toutes les 4 secondes, ce qui signal que les système est toujours en vie. Il est possible de l'altérer en utilisant le module wipy:

>>> import wipy
>>> wipy.heartbeat(False)</nowiki>

Il y a 2 types d'erreurs que vous pouvez rencontrer:

  1. Si la LED heartbeat clignote rapidement alors il y a une erreur dans le script Python (ex: main.py). Utilisez REPL pour le déboguer.
    Si vous venez de modifier votre fichier boot.py, l'erreur peut aussi provenir de ce dernier.
  2. Si la LED heartbeat reste allumée alors il y a une erreur matérielle (hard fault). Il n'est pas possible que WiPy se remette de cette erreur, il faut alors presser le bouton Reset.


Détails sur les modes de mise en veille (sleep):

  • machine.idle() : La consommation est réduite à ~12mA (en mode WLAN STA). Sources de réveil (Wake) peuvent être n'importe quelle interruption matérielle (incluant systick avec une période de 1ms), pas besoin de configuration spécifique/spéciale.
  • machine.sleep() : la consommation est réduite à 950µA (en mode WLAN STA). Source de réveil sont les Broches, RTC (l'horloge temps réel) et WLAN
  • machine.deepsleep() : la consommation est réduite à environ ~5µA. Source de réveil sont Les Broches et RTC (l'horloge temps réel).

Tutoriel WiPy tutorials and examples & general information about WiPy sous copyright de Damien George et contributeurs en ce qui concerne MicroPython et/ou PyCom en ce qui concerne les informations relatives a WiPy et LoPy.

Tutoriel traduit par Meurisse D. pour MCHobby.be

Traduit avec l'autorisation de micropython.org - Translated with the authorisation of micropython.org également avec l'accord de Daniel Compara (créateur de WiPy).

Toute référence, mention ou extrait de cette traduction doit être explicitement accompagné du texte suivant : «  Traduction par MCHobby (www.MCHobby.be) - Vente de kit et composants » avec un lien vers la source (donc cette page) et ce quelque soit le média utilisé.

L'utilisation commercial de la traduction (texte) et/ou réalisation, même partielle, pourrait être soumis à redevance. Dans tous les cas de figures, vous devez également obtenir l'accord du(des) détenteur initial des droits. Celui de MC Hobby s'arrêtant au travail de traduction proprement dit.