Différences entre versions de « Hack-wipy-generalite »

De MCHobby - Wiki
Sauter à la navigation Sauter à la recherche
 
(14 versions intermédiaires par le même utilisateur non affichées)
Ligne 1 : Ligne 1 :
 
{{WIPY-NAV}}
 
{{WIPY-NAV}}
  
{{traduction}}
 
 
== Pas de support en virgule flottante ==
 
== 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.
 
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.
Ligne 41 : Ligne 40 :
  
 
== Système de fichier et accès FTP ==
 
== Système de fichier et accès FTP ==
 +
{{ambox-stop|text=Pouvoir accéder à votre WiPy en FTP permettra de configurer le WiPy pour qu'il se connecte sur votre réseau WiFi ([[Hack-wipy-wlan|voir ici pour plus de détails]])}}
 
Il y a un petit système de fichier interne sur le WiPy, un lecteur qui s'appelle {{fname|/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.
 
Il y a un petit système de fichier interne sur le WiPy, un lecteur qui s'appelle {{fname|/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.
  
Ligne 71 : Ligne 71 :
 
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.  
 
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 ''General'', vérifiez que l'encryption est fixée sur {{fname|Only use plain FTP (insecure)}} (''Connexion FTP simple (non sécurisée)''). 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.  
+
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)'').  
 +
 
 +
[[Fichier:Hack-wipy-FileZilla-00.jpg|480px]]
 +
 
 +
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.  
 +
 
 +
[[Fichier:Hack-wipy-FileZilla-01.jpg|480px]]
  
 
Les autres clients FTP doivent être configurés de façon similaire.
 
Les autres clients FTP doivent être configurés de façon similaire.
  
 
== Mise-à-jour du FirmWare ==
 
== Mise-à-jour du FirmWare ==
OTA (Over The Air) software updates can be performed through the FTP server.  
+
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.  
  
Upload the {{fname|mcuimg.bin}} file to: {{fname|/flash/sys/mcuimg.bin}} it will take around 6s. You won’t see the file being stored inside /flash/sys/ because it’s actually saved bypassing the user file system, so it ends up inside the internal hidden file system, but rest assured that it was successfully transferred, and it has been signed with a MD5 checksum to verify its integrity. Now, reset the WiPy by pressing the switch on the board, or by typing:
+
Téléversez le fichier {{fname|mcuimg.bin}} dans le répertoire {{fname|/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:
  
 
<syntaxhighlight lang="python">
 
<syntaxhighlight lang="python">
 
>>> import machine
 
>>> import machine
>>> machine.reset()</nowiki>
+
>>> machine.reset()
 
</syntaxhighlight>
 
</syntaxhighlight>
  
Software updates can be found in: [https://github.com/wipy/wipy/releases https://github.com/wipy/wipy/releases] ('''Binaries.zip'''). It’s always recommended to update to the latest software, but make sure to read the release notes before.
+
Les mises à jour logicielle peuvent être trouvée sur [https://github.com/wipy/wipy/releases 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.
  
{{ambox|text=The '''bootloader.bin''' found inside Binaries.zip is there only for reference, it’s not needed for the Over The Air update.}}
+
{{ambox|text=Le fichier '''bootloader.bin''' trouvé à l'intérieur de l'archive Binaries.zip est uniquement là a titre de référence, ce fichier n'est pas nécessaire pour réaliser une mise-à-jour Over The Air.}}
  
In order to check your software version, do:
+
Pour vérifier la version logicielle, faites:
  
 
<syntaxhighlight lang="python">
 
<syntaxhighlight lang="python">
 
>>> import os
 
>>> import os
>>> os.uname().release</nowiki>
+
>>> os.uname().release
 
</syntaxhighlight>
 
</syntaxhighlight>
  
If the version number is lower than the latest release found in the [https://github.com/wipy/wipy/releases releases], go ahead and update your WiPy!
+
Si le numéro de version est inférieur à celui de la dernière ''release'' trouvé sur [https://github.com/wipy/wipy/releases releases] alors vous pouvez réaliser une mise-à-jour de votre WiPy!
  
 
== Boot Modes et Safe boot ==
 
== Boot Modes et Safe boot ==
If you power up normally, or press the reset button, the WiPy will boot into standard mode; the {{fname|boot.py}} file will be executed first, then {{fname|main.py}} will run.
+
Si vous alimentez votre WiPy normalement (ou pressez le bouton ''Reset'') alors le WiPy démarre en mode Standard; le fichier {{fname|boot.py}} est exécuté en premier puis le fichier {{fname|main.py}} sera exécuté.
  
You can override this boot sequence by pulling {{fname|GP28}} up (connect it to the 3v3 output pin) during reset. This procedure also allows going back in time to old firmware versions. The WiPy can hold up to 3 different firmware versions, which are: the factory firmware plus 2 user updates.
+
Vous pouvez altérer cette séquence de démarrage en plaçant la broche {{fname|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.
  
After reset, if {{fname|GP28}} is held high, the heartbeat LED will start flashing slowly, if after 3 seconds the pin is still being held high, the LED will start blinking a bit faster and the WiPy will select the previous user update to boot. If the previous user update is the desired firmware image, {{fname|GP28}} must be released before 3 more seconds elapse. If 3 seconds later the pin is still high, the factory firmware will be selected, the LED will flash quickly for 1.5 seconds and the WiPy will proceed to boot. The firmware selection mechanism is as follows:
+
Si la broche {{fname|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 {{fname|GP28}} avec les 3 secondes qui suivent. Si 3 secondes plus tard la broche {{fname|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).  
  
Safe Boot Pin {{fname|GP28}} realeased during:
+
Le mécaniste de sélection du Firmware est le suivant:
* '''1st 3 secs window''' -  Safe boot, ''latest'' firmware is selected
 
* '''2nd 3 secs window''' - Safe boot, ''previous'' user update selected
 
* '''Final 1.5 secs window''' - Safe boot, the ''factory'' firmware is selected
 
  
On all of the above 3 scenarios, safe boot mode is entered, meaning that the execution of both {{fname|boot.py}} and {{fname|main.py}} is skipped. This is useful to recover from crash situations caused by the user scripts. The selection made during safe boot is not persistent, therefore after the next normal reset the latest firmware will run again.
+
La broche Safe Boot {{fname|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 {{underline|n'exécute pas le contenu des fichiers}} {{fname|boot.py}} et {{fname|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 ==
 
== La LED heartbeat ==
  
By default the heartbeat LED flashes once every 4s to signal that the system is alive. This can be overridden through the {{fname|wipy}} module:
+
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 {{fname|wipy}}:
  
 
<syntaxhighlight lang="python">
 
<syntaxhighlight lang="python">
Ligne 121 : Ligne 133 :
 
</syntaxhighlight>
 
</syntaxhighlight>
  
There are currently 2 kinds of errors that you might see:
+
Il y a 2 types d'erreurs que vous pouvez rencontrer:
 
+
# Si la LED heartbeat clignote rapidement alors il y a une erreur dans le script Python (ex: {{fname|main.py}}). Utilisez REPL pour le déboguer.<br />Si vous venez de modifier votre fichier boot.py, l'erreur peut aussi provenir de ce dernier.
# If the heartbeat LED flashes quickly, then a Python script (eg {{fname|main.py}}) has an error. Use the REPL to debug it.
+
# 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.
# If the heartbeat LED stays on, then there was a hard fault, you cannot recover from this, the only way out is to press the reset switch.
 
  
  
 
Détails sur les modes de mise en veille (''sleep''):
 
Détails sur les modes de mise en veille (''sleep''):
* {{fname|machine.idle()}} : Power consumption: ~12mA (in WLAN STA mode). Wake sources: any hardware interrupt (including systick with period of 1ms), no special configuration required.
+
* {{fname|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 {{fname|systick}} avec une période de 1ms), pas besoin de configuration spécifique/spéciale.
* {{fname|machine.sleep()}} : 950uA (in WLAN STA mode). Wake sources are Pin, RTC and WLAN
+
* {{fname|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
* {{fname|machine.deepsleep()}} : ~5uA. Wake sources are Pin and RTC.
+
* {{fname|machine.deepsleep()}} : la consommation est réduite à environ ~5µA. Source de réveil sont Les Broches et RTC (l'horloge temps réel).
  
 
{{WIPY-TRAILER}}
 
{{WIPY-TRAILER}}

Version actuelle datée du 9 janvier 2017 à 15:46


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.