Hackable n°28 est déjà chez votre marchand de journaux

Nous avons mis les bouchées doubles pour que vous puissiez lire le dernier numéro de votre magazine préféré au pied du sapin et voici donc venir cette nouvelle édition de début d’année alors même que 2018 n’est pas terminé !

Au menu, de l’ESP8266 et en particulier une fonctionnalité peu connue et peu utilisée de cette famille de cartes qui sont programmables comme les classiques Arduino : le fait de pouvoir utiliser une partie de l’importante quantité de mémoire flash (non utilisée pour le code) comme espace de stockage pour vos fichiers.

Ainsi, grâce à la fonctionnalité SPIFFS, vous pouvez disposer de plusieurs Méga d’espace sur ESP8266 exactement comme s’il s’agissait d’un support comme une carte SD (ou une sorte de disque dur embarqué). Vous pouvez y créer des fichiers, lire des données et même transférer des fichiers directement depuis d’environnement de développement (IDE) Arduino. Et ce, sans ajouter le moindre élément ou module à votre montage…

L’article principal en couverture de ce numéro vous expliquera comment ajouter cette fonctionnalité à votre configuration et comment développer vos croquis de façon à utiliser cet espace de stockage, à la fois pour stocker vos données (collectes de mesures, par exemple) et lire son contenu (pour créer une interface web avec des fichiers HTML).

Mais ce n’est pas tout, ce numéro traite également de modélisation 3D, de mathématiques amusantes, de bidouille de souris USB, de compression d’images pour écran LCD, de VPN, d’opérations logiques, de bonnes pratiques, de Z80…

Au sommaire de ce numéro :

  • Ardu’n’co
    • p.08 : Combien faut-il taper de chiffres pour trouver un code à 4 chiffres ?
    • p.20 : Compresser des images en noir et blanc efficacement et simplement
  • En couverture
    • p.30 : Stockez des fichiers dans la flash de vos ESP8266
  • Embarqué & Informatique
    • p.44 : Recyclez votre vieille souris en capteur
  • Repère & Science
    • p.62 : Gérez et manipulez les bits comme un chef
    • p.70 : Modélisation 3D avec OpenSCAD
  • Démontage, hacks & récup
    • p.88 : Z80, une exécution pas-à-pas qui fonctionne

Ce numéro 28 de Hackable est d’ores et déjà disponible chez votre marchand de journaux et dans notre boutique en ligne. N’hésitez pas à vous abonner à la version papier ou PDF pour ne rater aucun numéro.

Vous pouvez également accéder à l’ensemble des numéros publiés via un abonnement à notre plateforme de lecture en ligne ConnectCe numéro, ainsi que tous les précédents, est d’ors et déjà lisible en ligne sur Connect.

Note (08/01/2019) : Une erreur s’est glissée dans le schéma de l’article p.97. Les signaux /M1 et DOWN sont inversés (merci à A. Boudou pour avoir relevé l’erreur). Le schéma en question, corrigé, est le suivant :

10 commentaires sur “Hackable n°28 est déjà chez votre marchand de journaux

  1. Tout d’abord, j’ai plutôt apprécié le fait de passer à une cadence de publication trimestrielle (il faut savoir laisser du temps aux lecteurs pour apprécier d’excellents articles : j’en relis 6 mois après leur publication dans HAckable).
    Je n’ai pas pu trouver de défauts dans cette version (une incohérence entre un schéma electronique et un schéma de cablage n’est pas grave: les gens qui câblent sur Veroboard utilisent le schéma théorique -et refont ce schéma théorique s’ils ont un problème).
    J’ai remarqué que la première page était … deux fois plus racoleuse que d’habitude:
    – la gestion des boutons d’un mulot est présentée comme spécifique au RPi (alors que dans la table des matières, ce n’est pas spécifié et que dans le corps du texte, il est bien clair que tout calculateur sous GNUlinux -ayant un port USB- est concerné). Il est assez amusant de voir que le RPi n’est plus qu’un instrument de racolage, relègué en couverture, dans cette édition
    – SPIFFS n’est pas très mystérieux : la première chose que j’ai faite, en étrennant sous W10 un EPS32, a été de constater qu’il avait autant de disquettes (mais plus petites) qu’un très vieux PC, et d’utiliser les exemples de démo: ce qui ù’a frappé, c’est la grande variabilité -un facteur deux, sur un esp neuf- des temps d’écriture (qui n’est pas un handicap pour stocker des pages ouaibe, mais qui peut être prohibitif pour de l’enregistrement en temps réel de données -pas l’objet de cet article…- -confirmé par la page github de spiffs https://github.com/pellepl/spiffs : son équilibrage d’usure -wikipédia wear levelling -, ses tests de cohérence et sa faible emprunte mémoire peuvent le ralentir, de façon difficile à prévoir -impossible pour moi- ).

    J’ai beaucoup admiré la mise au pas à pas du Z80 (cependant, vu le très grand nombre de soudures (> 2*8 /*data*/ + 2*16 /*adresses*/) el le fait que je n’ai plus les yeux pour vérifier mes horreurs (en plus du défaut que, selon Jupiter, je partage avec mes con citoyens de renâcler au moindre effort- , j’ai trouvé une librairie qui permet, sur un Arduino (un méga serait décent, et peut être moins cher qu’un vrai Z80 + RAM, ROM, decodeurs, perifériques- ), d’émuler un Z80 complet (ie, utilise la RAM arduino , préssoudée, les IN+OUT font appel aux composants qu’on veut…) -mais pas de connaître les temps d’éxecution d’un « vrai » Z80, et un jeu d’instructions restreint -60%- est implémenté -pour émulation- à ce jour dans un gigantesque switch -lignes 412 à 620 -https://github.com/MohammedRashad/ArduZ80/blob/master/ArduZ80.cpp.

    • Merci pour ces commentaires intéressants.

      En effet, l’article sur le hack de souris USB est parfaitement applicable à n’importe quelle plateforme GNU/Linux disposant d’un contrôleur USB, ceci incluant un PC ou un Mac. On peut en dire tout autant de presque n’importe quel article contenant des explications de configuration ou de programmation applicables sur un RPi : Broker MQTT, SDR, HDMI/Ethernet, mDNS, Grafana, gestion de paquets, etc). Le fait est que Hackable traite d’électronique numérique et de systèmes embarqués et que la SBC la plus utilisée dans le contexte hobbyiste est la Pi. D’où la mention en couverture plutôt que « pour n’importe quelle machine GNU/Linux ». L’idée est d’indiquer ce qui est applicable à une RPi et non ce qui n’est applicable QUE sur une Rpi.

      En effet, SPIFFS n’est pas réellement mystérieux (d’où les guillemets dans le titre), mais il faut bien avouer que le rapport entre les avantages offerts et la popularité de cette fonctionnalité en fait tout de même quelque chose que je trouve presque intimiste. En d’autres termes, c’est tellement génial et pratique qu’il est étonnant qu’on n’en parle pas davantage.

      Concernant l’émulation du Z80, je ne partage pas totalement votre enthousiasme. Ceci reste de l’émulation et n’est pas vraiment aussi « magique » que le vrai matériel. Ceci dit, en termes de simulation très intéressante, vous avez socz80-altera (https://github.com/slp/socz80-altera), un port pour FPGA Altera/Intel d’une machine complète (CPU, MMU, RAM, ROM, devices).

  2. Le sujet sur le réseau Mesh est très intéressant pour interconnecter les objets et aussi mailler un réseau local. Pour autant, il m’a été impossible de trouver la bibliothèque ESPAsyncTCP pour faire le test du code du 1er article.

    J’ai beau chercher pour trouver cette bibliothèque, je n’ai pas trouvé. Ne peut on pas avoir sous forme d’un ‘paquet’ l’ensemble des sources sur Github pour pratiquer un jeu d’essai ?

    Merci de m’avoir lu

    et continuer c’est parfait

  3. Merci pour le lien concernant ESPAsyncTCP. Pour autant, je rencontre toujours une erreur avec softAP qui emploi 5 arguments au lieu de 4 !! Je suis béotien et j’ai du mal à faire tourner l’exemple du magazine.
    Ci dessous le log issu de la console :
    ———————-
    Arduino : 1.8.5 (Windows 10), Carte : « NodeMCU 1.0 (ESP-12E Module), 80 MHz, 115200, 4M (3M SPIFFS) »

    C:\Users\fred\Documents\Arduino\libraries\Painless_Mesh\src\painlessMeshAP.cpp: In member function ‘void painlessMesh::apInit()’:

    C:\Users\fred\Documents\Arduino\libraries\Painless_Mesh\src\painlessMeshAP.cpp:23:98: error: no matching function for call to ‘ESP8266WiFiClass::softAP(const char*, const char*, uint8_t&, uint8_t&, uint8_t&)’

    WiFi.softAP(_meshSSID.c_str(), _meshPassword.c_str(), _meshChannel, _meshHidden, _meshMaxConn);

    ^

    C:\Users\fred\Documents\Arduino\libraries\Painless_Mesh\src\painlessMeshAP.cpp:23:98: note: candidate is:

    In file included from C:\Users\fred\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0-rc2\libraries\ESP8266WiFi\src/ESP8266WiFi.h:35:0,

    from C:\Users\fred\Documents\Arduino\libraries\Painless_Mesh\src\painlessMesh.h:20,

    from C:\Users\fred\Documents\Arduino\libraries\Painless_Mesh\src\painlessMeshAP.cpp:11:

    C:\Users\fred\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0-rc2\libraries\ESP8266WiFi\src/ESP8266WiFiAP.h:39:14: note: bool ESP8266WiFiAPClass::softAP(const char*, const char*, int, int)

    bool softAP(const char* ssid, const char* passphrase = NULL, int channel = 1, int ssid_hidden = 0);

    ^

    C:\Users\fred\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.3.0-rc2\libraries\ESP8266WiFi\src/ESP8266WiFiAP.h:39:14: note: candidate expects 4 arguments, 5 provided

    exit status 1
    Erreur de compilation pour la carte NodeMCU 1.0 (ESP-12E Module)

    Ce rapport pourrait être plus détaillé avec
    l’option « Afficher les résultats détaillés de la compilation »
    activée dans Fichier -> Préférences.

    ————–

    Merci

Laisser un commentaire