Modifications

Sauter à la navigation Sauter à la recherche
10 696 octets ajoutés ,  9 janvier 2017 à 15:46
Ligne 1 : Ligne 1 :  
{{WIPY-NAV}}
 
{{WIPY-NAV}}
 +
 +
== 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:
 +
 +
<syntaxhighlight lang="python">
 +
>>> r = 4 // 2  # fonctionnera parfaitement
 +
>>> r = 4 / 2  # NE fonctionnera PAS
 +
</syntaxhighlight>
 +
 +
== Avant de mettre sous tension ==
 +
 +
{{ambox-stop|text=Les broches GPIO du WiPy ne sont PAS TOLERANTE à 5V. Les brancher sur une tension supérieure à 3.6V provoquera des dommages irréparables à la carte. Les broches ADC configurée en mode analogique ne peuvent pas résister à une tension supérieure à 1.8V.
 +
 +
Garder ces considérations à l'esprit lorsque vous réalisez vos branchements électroniques.}}
 +
 +
== 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 {{fname|ssid}} commençant avec {{fname|wipy-wlan}} et la clé est {{fname|www.wipy.io}} .
 +
 +
Connectez vous sur ce réseau et le WiPy est accessible à l'adresse {{fname|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 [https://micropython.org/resources/docs/en/latest/wipy/library/network.html#network-server 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):
 +
 +
<nowiki>$ telnet 192.168.1.1</nowiki>
 +
 +
== 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.
 +
 +
Lorsque le WiPy démarre, il exécute toujours le fichier {{fname|boot.py}} localisé dans le système de fichier {{fname|/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:
 +
 +
* Url: '''ftp://192.168.1.1'''
 +
* Utilisateur: '''micro'''
 +
* Mot de passe: '''python'''
 +
 +
Voyez [https://micropython.org/resources/docs/en/latest/wipy/library/network.html#network-server 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:
 +
 +
<nowiki>$ ftp 192.168.1.1</nowiki>
 +
 +
Le serveur FTP de WiPy ne supporte pas le mode actif, il faut donc uniquement utiliser le mode passif (voyez l'article "[http://blog.nicolargo.com/2008/04/ftp-actif-versus-ftp-passif.html 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:
 +
 +
<nowiki>ftp> passive</nowiki>
 +
 +
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)'').
 +
 +
[[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.
 +
 +
== 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 {{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">
 +
>>> import machine
 +
>>> machine.reset()
 +
</syntaxhighlight>
 +
 +
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=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.}}
 +
 +
Pour vérifier la version logicielle, faites:
 +
 +
<syntaxhighlight lang="python">
 +
>>> import os
 +
>>> os.uname().release
 +
</syntaxhighlight>
 +
 +
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 ==
 +
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é.
 +
 +
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.
 +
 +
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).
 +
 +
Le mécaniste de sélection du Firmware est le suivant:
 +
 +
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 ==
 +
 +
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">
 +
>>> import wipy
 +
>>> wipy.heartbeat(False)</nowiki>
 +
</syntaxhighlight>
 +
 +
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.
 +
# 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''):
 +
* {{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()}} : 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()}} : 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}}
29 917

modifications

Menu de navigation