Sur cette seconde capture, nous pouvons y voir les prémisse de la réalisation où l'on peut y voir un moteur de Citroen ZX (non, vous ne rêvez pas!)
En 2026, je trouve intéressant que quelqu'un puisse encore s'intéresser à un tel sujet... je me suis donc laisser aller à un peu de curiosité et j'y ai découvert un sujet fort intéressant pour un Maker (surtout dans la 2ieme vidéo).
Vidéo 1: véhicule à vapeur - mise en route et essais routier
J'ai commencé ma découverte en commençant par la fin, avec un moteur déjà en état de fonctionner. Cette vidéo se concentre donc plus sur la réalisation du véhicule en lui même.
Vidéo 2: transformer un moteur de voiture en moteur à vapeur
Si vous avez trouvé le sujet ci-dessus intéressant alors, comme moi, il est probable qu'une plongée dans la transformation du moteur ZX pour l'adapter à la vapeur sera tout aussi intéressant.
Un moteur à vapeur fonctionne en 2 temps (sans cycle de compression) là ou un moteur 4 temps fait intervenir un cycle de compression et de détente. Il a donc été nécessaire d'adapter le moteur, une immersion vraiment très intéressante (et surprenante) dans le monde de la mécanique.
Non seulement ce moteur peut fonctionner à la vapeur mais il peut aussi être testé à l'air comprimé!
Voici notre deuxième article relatif à la fin de notre "Business Model". La première partie "Et l’Intelligence Artificielle tua le vulgarisateur" faisait aussi état d'autres paramètres ayant impacté notre fonctionnement.
What Was Wrong...
Voilà une petite carte mentale reprenant les éléments que nous avons identifié dans notre parcours d’embûches de ces deux dernières années (2024-2025).
Eléments que nous avons identifié:
Impact de l'IA sur notre "business model"
La guerre numérique
Liquidation sur le marché RPi
L'Amazon de l'électronique
Les marges et gammes de produits
Les actes anti-compétitifs
Que des modifications sensibles des conditions du marché qui, au cours du temps, se sont dangereusement accumulées. Fallait-il encore pouvoir anticiper l'impact cumulé?
Le marché répond à des règles primales où tout semble parfois permis... Etre passionné n'est pas suffisant et la probité jouera toujours contre vous.
Impact de l'IA
Les recherches utilisateurs
Les réponses de l'IA intégrée en première réponse des moteurs de recherches ont rendu notre documentation en ligne totalement caduque! En effet, pourquoi le commun des mortel irait-il rechercher une réponse technique dans nos pages si l'IA la fournit déjà en résumé... et donc... nous n'existons plus (y compris notre webshop).
Cela est est vrai quelque-soit l'IA: Gemini, ChatGPT, Claude Code, ...
Durant leur entraînement, les IA naviguent sur le WEB pour collecter des données qui leur seront nécessaires. Un peu comme les robots indéxeurs des moteurs de recherches.
A la différence des moteurs de recherche, les IAs on fait leur entraînement de façon quasi malveillante.
Peu importe le moteur IA, quand il est tombé sur nos site (Wiki, WebShop, Forums), il s'est toujours comporté comme un bandit, multipliant les sessions de captures simultanées. La charge des IAs atteignant un point tel que nos sites devenaient quasi inaccessibles pour nos propres clients.
Nous ne parlons pas en terme d'heures d'inaccessibilités et ralentissement mais en jours et semaines!
Pour finir, il a été nécessaire d'écrire des règles spécifiques pour interdire l'accès aux IA... sans oublier les coûts que cela a entraîner.
Si vous naviguez sur les sites d'informations ou regardez le journal télévisé, vous n'aurez pas raté les différentes attaquent informatiques en cette années 2025.
Le président Américain Donald Trump et ses Trumpitudes auront réussit à créer des vagues mettant à mal la stabilité mondiale. Les grandes nations réagissent aussi bien de façon visible que dans l'ombre du Net.
Déstabiliser l'économie numérique d'un pays est devenu important car cela permet d'appauvrir une nation en réduisant le prélèvement des impôts... ce qui finalement réduit son pouvoir politique. Sur le plan microscopique, cela à peu d'impact sur l'économique d'un pays (a part votre éventuelle faillite)... mais sur un plan macroscopique, il est possible d'impacter les finances d'une nation. C'est pour cette raison que des états nations enrôlent des groupes de hackers.
Internet est devenu une jingle numérique et ce n'est pas peu dire.
Notre propre site est resté sous attaque DDOS de façon quasi permanente sur de très longues périodes (on parle en mois). Il a même été nécessaire de mettre hors-ligne l'un ou l'autre site. Un site de vente peu réactif n'encourage pas les achats... je peux vous confirmer
Parmi les nombreuses attaques, nous en avons découverte une qui était particulièrement insidieuse car elle ne visait pas le serveur web mais plutôt la stabilité de la base de données.
Ainsi, le site de vente répond normalement mais bizarrement, il n'y a pas d'achat effectué par les clients!
C'est que les pages du WebShop dispose d'un cache et pour autant qu'il n'y a pas d'attaque DDoS frontale, le site répond rapidement.
Par contre, dès que l'on met un article dans le panier, ou si on se connecte sur son compte client, les actions deviennent terriblement lentes... prennent parfois plus d'une minute. C'est parce que ces actions font appel à la base de donnée et que le moteur DB est surchargé.
Après investigation, de nombreux comptes fantômes passaient leur temps à manipuler des paniers et ralentissent progressivement le moteur DB mais pas le serveur WEB. Au final, le serveur DB s'est retrouvé en PLS (Out-Of-Memory) alors qu'il disposait de 64 Go de RAM!
Pourrir le référencement
Notre abondante documentation de qualité nous valait un excellent référencement naturel. Nous apparaissions très haut dans les moteurs de recherches sans avoir besoin d'acheter des mots clés.
Plutôt que de faire aussi bien que nous, la concurrence trouve généralement plus intéressant de vous pousser la tête sous l'eau.
C'est ainsi que nous avons retrouvé des copies de nos images et intitulés de produits recopié sur des centaines de sites en mélangeant le tout et répertoriant ceux-ci sous des thèmes inappropriés.
Résultat, il faut désavouer un par un ces liens/références inappropriées. Quel perte de temps et d'énergie. A noter qu'il existe aussi des outils pour vous aider dans cette tâche... mais cela à un coût.
Qu'il est beau le monde du commerce... vous ne trouvez pas?
Pas de brèche
Juste pour rassurer nos clients. A ce jour, aucune brèche et aucune fuite de données.
Le coût
Tout cela entraîne des coût et surcoûts bien réel, parmi:
de perte de vente,
de coût en support technique (contre mesure et ou filtrage),
de moral et d'énergie
En effet, il vient bien l'envie de tout balancer par la fenêtre... surtout face à la démesure des attaques. Cela consomme une énergie folle que l'on investit pas dans le développement de son propre business.
Cela revient, au final, à se battre contre des moulins à vent... juste pour pouvoir vivre une passion. Est-ce que cela fait encore sens?
Le ralentissement économique persistant
Cette guerre continue et l'incertitude politique aura quand même eu un impact important sur l'économie en générale. Nous somme fin 2025, début 2026, le ralentissement économique général perdure.
Nous échangeons avec des commerçants actifs dans d'autres domaines d'activités et nous sommes tous impactés par ce ralentissement persistant.
Liquidation sur le marché RPi
Une grande partie des ventes de notre société est articulé autour du nano-ordinateur Raspberry-Pi. Nous sommes en 2024, la fin de la pénurie des composants, s'est prolongée dans le monde Maker (naturellement moins approvisionné que l'industrie).
La demande de Raspberry-Pi 4 est au plus fort sur le marché autant pour les maker que pour les industriels ayant besoin de produire leurs propres solutions articulées autour du Pi.
Les commandes fournisseurs sont enfin honorées et débarquent en masse sur le marché.
Tous les distributeurs sont certes actif dans le monde électronique. Certains sont parfois des entreprises de taille internationale (donc avec de gros stocks).
Les liquidations d'urgences
Une grosse entreprise allemande en très grande difficulté (résultat de la pénurie) se retrouve en tête d'un stock titanesque qu'il doit écouler rapidement.
C'est ainsi que l'on retrouve sur le marché des Pi 4 vendu à prix distributeur (voir moins)!
Invasion du marché par la chine
C'est aussi à cette période que l'on a retrouvé des Raspberry Pi 4 et 8 Go à des prix défiant toute concurrence possible. Des Raspberry-Pi en vente sur les plateformes chinoises.
Ils sont malins nos petits chinois, ils ont achetés des Raspberry-Pi 4 1 Go & 2 Go de RAM en masse pour remplacer la mémoire par des versions en 8 et 4 Go, soit une plus value possible de +30 Eur par unité transformée.
Inutile de dire que cela est vite devenu la guerre des prix... avec des revendeurs officiels ayant leurs ventes en chute libre puisqu'ils ne peuvent pas suivre la chute des prix.
Certes, il y eu des contre-mesures mais après 6 mois, le mal était fait!
Amazon de l'électronique
D...K.. n'est pas mon ami
En 10 ans de travail, nous avons eu l'occasion de découvrir, documenter et distribuer des marques Maker comme Adafruit, Pololu, DFRobot, M5Stack, etc.
Un marché de distribution qu'il a fallut travailler avec une documentation abondante en Français. Pendant des années les marges furent suffisantes pour en vivre.
Mais avec le temps, un acteur agressif nommé D...K.. initialement destiné au marché professionnel à décidé d'étendre ses parts de marché en investissant le marché DIY.
Ainsi, là où D...K.. devient distributeur, nos marges baisses subitement chez le fabriquant. De façon surprenante, il arrive toujours a se placer face à la concurrence.
Pour ces grandes marques populaires, il est évidemment intéressant de disposer d'un Distributeur Global mais cela se fait aussi au détriment de leur propre réseau de distribution construit pendant des années.
L'exemple le plus criant fût M5Stack où la marge distribution a baissé à 5% avec des prix d'achat fournisseur supérieur au prix final client proposé par D...K..! C'est à tomber par terre.
En proposant des expéditions gratuites depuis les USA à partir de 50 EUR d'achat (puis, plus tard, à partir de 75 EUR d'achat), il arrive à s'imposer facilement sur tous les marchés... ils veulent devenir l'Amazon de l'électronique.
C'est simple, quand une des marques que nous avons travaillé commence sa distribution chez D...K.., notre volume de vente s'effondre dans la foulée (disons de 100% à 10-20%).
Il faut avouer qu'ils ne nous ont pas toujours bien traité (nous y reviendrons dans les "actes anti-concurrentiel").
Ceci étant, il n'est pas le seul à se comporter de la sorte.
Temu, AliExpress et consorts
Juste une petite parenthèse complémentaire.
Ces sites proposent de l'électronique à prix cassé et souvent de mauvaise qualité. Les prix incroyablement attractifs détourne facilement nombre de clients potentiels et renforce cette espoir de faire une bonne affaire.
Je pense que le pire dans cette situation, c'est notre gouvernement acceptant l'installation de dépôt de distribution dans notre pays. C'est un long sujet de discussion... mais je doute que l'intérêt premier fût celui du peuple ou de notre économie.
Marges et gamme de produits trop larges
Une chose est certaine, plus le temps passe et plus la marges diminues.
30% est une marge fournisseur permettant la survie et la progression d'une entreprise. Cependant, dans le monde électronique (comme informatique), c'est loin d'être la norme.
Bon, on est jamais obligé de débuter la distribution d'un produit à faible marge. Si on le fait c'est en connaissance de cause sachant qu'il faut aussi s'aligner sur les prix du marché. Disons, en hypothèse, qu'une faible marge est inférieure à 15%.
Quand on vous propose un tel deal, c'est avec l'idée d'avoir un produit d'appel et d'améliorer les marges avec des accessoires.
Pour autant que les produits d'appels soient peu nombreux et accessibles en quantité raisonnables (100 à 200 pièces), ce schéma de distribution est parfaitement viable. C'est par ailleurs souvent le cas des gammes informatiques.
Pendant tout un temps, les bénéfices de gamme plus rentables
(électronique DIY) permettaient d'injecter des liquidités dans les
stocks des produits d'appels.
Cependant, si le nombre de produits d'appel s'en retrouve multipliés (de 1 à 9 produits) tout ainsi que leurs prix (entre x2 et x4)... alors le stock minimum des déclinaisons mobilise une quantité ahurissante de liquidités.
Quand les ventes de matériel DIY ont chuté, les stocks utilisés pour les livraisons rapide sont devenu un poids mort. Les stocks de produits d'appel ne peuvent plus être financé et la trésorerie est vite devenu un problème critique. Outch!
Parlons de quelques exemples du passé:
Odroid
Fabriqué par HardKernel, ce sont des nano-ordinateurs d'une très grande qualité et très performant. Nous avons distribué ces plateformes pendant tout un temps mais nos chemins se sont séparé lorsqu'ils ont voulu imposer le prix de vente.
Déjà que c'est une pratique interdite, se faire dire que l'on perd les 2% de marge si on ne plie pas aux exigences. C'était un peu lunaire => fin de la distribution!
PicoCalc
Plus récemment, je me suis penché sur PicoCalc de clockworkPi que je trouve absolument génial.
Cela aurait été une belle aventure... mais plus question de se lancer avec une marge distributeur trop faible pour survivre.
Actes anti-concurrentiels
C'est probablement ce qui nous aura le plus miné moralement et certainement celui qui consume le plus d'énergie.
Dès que D...K.. a su que nous avions un WebShop et que certains composants y étaient disponibles à la vente pour les Maker, nous sommes rentrer dans la catégorie "concurrent".
Ainsi, durant la rupture des composants, impossible de se faire livrer 10x MCP23017 (un simple GPIO expander au format DIP) alors qu'il en avaient plus de 500 pièces en stock! Rien a faire, il annulait les commandes! Pas très fair-play face à notre petite boîte de 3 personnes. Résultat: nous avons été obliger de nous adresser au fabriquant pour acheter une quantité bien plus grande que nos besoins. Nous en avons toujours d'ailleurs encore en stock!
Le plus dingue c'est qu'ils sont fournissent des grandes sociétés comme Adafruit (cfr vidéo) qui à les mêmes pratiques commerciales que nous!
Plus tard, et hors du contexte de la rupture des composants, D...K.. refusa encore de nous vendre les NE555 (des horloges monostables) que nous avions besoin pour fabriquer nos PowerBank-Foolish. Unne nouvelle fois, il nous fallait trouver un nouvel approvisionnement.
M..... est également à pointer du doigt. Il refusa de nous vendre un seul Raspberry-Pi 5 8Go (alors qu'il y en a des centaines en stock) pour que nous puissions achever l'assemblage d'une solution HMI pour un client. C'est vrai que dans un contexte économique difficile, il était préférable que nous passions une commande pour une boîte complète à plus +15000 EUR! (c'est de l'ironie bien sûr).
L'atteinte morale
Ces actes, aussi anodins soient-ils, visent clairement à empêcher l'autre de survivre...
Vu notre taille "moucheron" face à ces mastodontes de la distribution,
ces refus, en plus d'entamer notre capacité de production, furent d'admettre ce type de comportement déloyal.
Vouloir se battre contre ces pratiques, vu notre taille, est totalement illusoire.
A quelque-chose malheur est bon
Etre poussé dans ces retranchement n'est pas forcement une mauvaise chose.
A force de chercher des solutions d'approvisionnement, nous nous sommes tournés de plus en plus vers les composants CMS (Composants Montés en Surface) beaucoup plus populaire.
C'est ainsi que nous délaissons maintenant D...K.. pour nous fournir en composants au quart du prix (mais qualité égale).
Conclusion
Il est temps de conclure cet article.
En cours de rédaction, j'ai réalisé qu'il y avait encore quelques-points qui auraient eu le mérite d'être développés. Je pense par exemple a charge Administrative qui s'accroît d'année en année (règles plus complexes, déclarations complémentaires à réaliser, ...).
Il serait également opportun d'écrire un article sur les acteurs qui, au delà du business, ont eu l'occasion de nous aider dans cette aventure... parce que "oui", il y en a eu.
Tout récemment, je voulais utiliser un module RFM69 sur un Compute Module 5 (autrement dit l'équivalent d'un Raspberry-Pi 5) faisant fonctionner un logiciel écrit Python.
Une API MicroPython sous Python
Ecrivant de nombreux pilotes pour MicroPython (Python pour MicroContrôleur), je me suis dit qu'il devait être possible de réutiliser le code MicroPython du RFM69 sous Python sans devoir réécrire tout-ou-une-partie du code pour qu'il fonctionne sur Raspberry-Pi.
Le problème, c'est que Python n'a aucune idée de ce qu'est l'API MicroPython (celle utilisée par MicroPython pour accéder directement à la couche matérielle).
Il existe cependant des moyens d'accéder au matériel depuis Python mais c'est sans aucun rapport avec l'API exposée MicroPython.
L'idée c'est de recréer l'API MicroPython sous Python pour permettre l'utilisation du RFM69 depuis Python:
Ajouter les déclarations d'encodage (nécessaire à Python)
L'image ci-dessous se présente le module RFM69HCW 433MHz . Ce module permet de transmettre des données sur un réseau numérique utilisant le ondes-radios comme medium de transfert. C'est un peu le protocole internet appliqué à la radio.
Comme le Pilote est développé sous le précepte "Plateform Agnostic Driver" de sorte à pouvoir fonctionner indépendamment de la plateforme MicroPython cible.
Les connexions suivantes sont établies entre le module RFM69 et le GPIO Raspberry-Pi.
La broche CS (chip select) est branchée sur le GPIO 25 alors qu'il existe les broches CE0 (GPIO8) et CE1 (GPIO7).
Le problème ici est que CE0 et CE1 sont automatiquement gérés par le système d'exploitation alors que sous MicroPython, c'est le code utilisateur qui gère l'état du signal CS.
Dans le cas présent, la gestion automatique de CE0 et CE1 empêche l'utilisation du burst_read sur le module RFM69 raison pour laquelle le GPIO25 est utilisé comme signal CS (ce signal étant contrôlé par le code utilisateur).
Récupérer l'exemple test_config.py utilisé pour tester la communication avec le module RFM69. Nous y ajoutons également l'information d'encodage dans le fichier.
Couche de compatibilité Python --> MicroPython
Création des fichiers machine.py et micropython.py pour accueillir les classes Pin & SPI ainsi que la déclaration de la fonction const()
Le script le plus intéressant est hack_time.py car celui-ci permet d'ajouter les fonctions MicroPython (ticks_ms, ticks_diff, sleep_ms, etc) manquantes dans Python.
Il ne reste plus qu'a adapter le script d'exemple pour créer l'instance du bus SPI (sur le RPi) et passer le tout à la bibliothèque MicroPython originale.
#!/usr/bin/python
# -*- coding: utf-8 -*-
from machine import SPI, Pin
import hack_time
from rfm69 import RFM69
# Machine.py for Raspberry-Pi 5
spi = SPI( 0 )
nss = Pin( 25, Pin.OUT, value=True ) # Do not use the RPI CE0/CE1, it is not compatible with the Burst_Read of RFM69
rst = Pin( 18, Pin.OUT, value=False )
rfm = RFM69( spi=spi, nss=nss, reset=rst )
rfm.frequency_mhz = 433.1
....
Le bus SPI est rattaché au bus matériel SPI0 & CE0.
Une broche Enabled (nss) alternative est utilisé avec le GPIO25 pour contrôler les transactions du bus SPI. La broche CE0 du GPIO est donc ignorée.
Enfin, le GPIO 10 est utilisé pour réinitialisé le module RFM69.
Au final, la création de l'instance RFM69 et le restant du code (y compris la bibliothèque RFM69) est identique entre MicroPython et Python (sur RPi5).
L'exécution de l'exemple sur le Raspberry-Pi 5 produit le résultat attendu (identique lorsqu'il est exécuté sur un Pico).
test_config.py : exécution de la bibliothèque MicroPython RFM69 sur Raspberry-Pi 5
Ressources
MicroPython-API-for-Python experiment is published on GitHub.
Par le passé, Internet a bouleversé de nombreux métiers qui n'y ont pas résisté. S'il ne fallait en citer qu'un seul ce serait la vente en boutique spécialisée ! Mais bien d'autres en ont souffert.
Aujourd'hui, l'IA bouleverse à nouveau ces métiers qui ont survécu... mais il impacte aussi les métiers créés par Internet.
Source image: www.bbschool.fr
Voici notre retour d'expérience sur le sujet. Comment une option de recherche et les LLMs ont finalement eux raisons de nous malgré notre enthousiasme.
Il ne reste plus qu'a se ré-inventer...
2015 – Naissance du métier
Il y a une décennie à peine, le monde des Makers devenait populaire. L’idée de hacker des appareils existants pour les améliorer ou corriger des manquements manifestes commençait à faire son chemin. Notre monde était déjà fort numérisé, peuplé d’appareils électroniques et de microcontrôleurs. L’obsolescence programmée et le droit à réparer occupaient le devant de la scène.
S’il existait nombre d’électroniciens, il y avait relativement peu de ressources et de matériel pour l’apprenti Maker. Certes Arduino et son écosystème était omniprésent, mais il manquait surtout de ressources en Français. Des ressources pour faciliter l’intégration des nouveaux venus dans le monde des Makers.
Ainsi est né le "Business Model" de MCHobby en commençant par la traduction du Kit d’exploration ARDX pour Arduino. Ainsi, il existait pour la première fois un kit d’apprentissage avec une documentation en Français accessible et en Open-Source (disponible gratuitement sur le wiki).
Une popularité grandissante
Durant des années, MCHobby a alimenté un WebShop avec des produits électroniques pour maker correctement traduit en Français et souvent accompagnés de fiches tutoriels en Français. Ces créations, vulgarisation et traductions furent également l’occasion d’un apprentissage continu pour nous.
Les traductions Google dans les domaines pointus étaient, à l’époque, trop imprécises ou parfois totalement incompréhensibles.
Le business model
L’idée est simple. Les utilisateurs font des recherches dans les domaines Makers. Pour ce qui est du hacking électronique et des projets associés, les moteurs de recherche font ressortir le WebShop ou le Wiki ou le Blog de MCHobby. L'abondante documentation étant le point d'entrée dans le moteur de recherche offrant par ailleurs un excellent référencement naturel. Le WebShop, le Wiki et le Blog étant liés ensembles, l’un permet inévitablement de découvrir les autres. Ainsi, la documentation entretenue et agrandie pendant des années a été l’élément fondamental assurant le fonctionnement de l’entreprise.
La nécessité d’un stock
Grâce à Amazon et consort, les clients ont pris l’habitude d’être livrés du jour au lendemain. Il est donc hors de question d’accepter des commandes tout en retardant la livraison d'une semaine à 15 jours (le temps de l'approvisionnement).
Même dans un domaine plus spécialisé comme l’électronique DIY, le client passe sont chemin si le produit n’est pas en stock et livrable immédiatement.
Le stock est donc devenu un élément stratégique et il s’agrandit avec l’ajout hebdomadaire de nouvelles références au catalogue.
2023 - 2024 – Maturité de l’intelligence artificielle
En fin 2023 et début 2024, le WebShop était très sollicité, trop sollicité. Au milieu des attaques quasi incessantes, nous retrouvions aussi des robots indexeurs qui travaillent de manière brutales sans considération pour le système hôte (faire sauter un moteur DB qui dispose de 64 Go de RAM, c'est pas se comporter avec bien bienveillance !).
Notre modèle économique est sur le point de basculer mais nous ne le savions pas encore.
C’est que le monde du Net est devenu une véritable jungle et la chute importante des ventes a d'abord été mise sur le compte des attaques DDoS que nous subissions en continu pendant des semaines... et qui rendaient le WebShop plus difficilement accessible.
2025 –la fin du "business model"
Les ventes ont continué de dégringoler, pour en revenir au niveau des premières années. Mais avec des frais et des contraintes de fonctionnement ayant fortement augmenté du fait de l'agrandissement de l'équipe, du stock...
Les moteurs de recherches offrent maintenant une réponse personnalisée grâce à l’IA.
Nos pages de documentation sont maintenant inutile puisqu’elles ne sont plus proposées en bon classement pour les différentes recherches. C'est que notre documentation, maintenant moins pertinente, est reléguée après la réponse personnalisée et les liens sponsorisés.
L'ironie que l'IA s'est entraînée sur nos pages (et nombreuses autres du même acabit) en créant au passage des surcharges et désagréments importants sur nos serveurs pendant des mois.
Encore mieux, la tranche la plus jeune de notre population, friands de nouvelles technologies, demande aux LLMs de concevoir leur projet. C’est qu'il est aujourd'hui possible de demander à une IA de créer un projet avec sélection du matériel, câblage, code (erreurs comprises). Je dois l'admettre, le résultat est de grande qualité... c'est bluffant.
Notre "business model" tel que nous le connaissions est donc devenu caduque. Il est toujours possible d’utiliser l’IA pour créer rapidement du contenu, l’adapter/le corriger et le republier mais quel intérêt pour nous? Surtout que la marque de fabrique de MCHobby a toujours été de fournir un contenu d'une valeur ajoutée importante. Publier des contenus auto-générés serait donc un crève-coeur en plus d'une imposture vis-à-vis de nos lecteurs.
L'autre option, pour maintenir le shop, serait de se battre contre quelques concurrents à coup de pub et de prix cassés (déjà qu'il est difficile de survivre dans le monde de l'électronique), ce n'est pas forcement ce à quoi nous nous destinions dans MC Hobby...
Conséquences
La chute des ventes implique une chute tout aussi dramatique des revenus. Sur de nombreux mois, cela a fini par avoir des conséquences sur l’emploi et il a fallu licencier et nous séparer de 2 excellents collaborateurs. Aujourd'hui, c'est la survie même de l’entreprise qui est en jeu.
Même si largement responsable du basculement de notre Business Model, l’IA n’est pas le seul responsable. Il faudra aussi parler de pratiques anticoncurrentielles mais cela sera pour un prochain article.
Ce stock qui était précédemment essentiel à notre survie (pour livrer rapidement les clients) est aujourd’hui disproportionné par rapport à la demande. Les fournisseurs exigent des commandes de plus en plus importantes et un engagement sur des volumes qui ne sont plus réalistes par rapport aux demandes. Sa valeur marchande ne justifie plus non plus son existence puisque son public ne sait même plus qu'il existe.
Conclusion
Le monde et les technologies évoluent rapidement et rien n'est jamais
vraiment acquis. Dans le monde du commerce, tout peut toujours basculer d'un
jour à l'autre.
Je pense que 10 ans de développements dans notre domaine d’activité, c’était déjà une belle chance en soi. Une niche --ce qu’était notre "Business Model"-- ne reste jamais longtemps une vraie niche.
Un petit message pour partager un projet digne d'intérêt... une imprimante braille réalisée à l'aide de quelques impressions 3D et de belle dose d'ingéniosité.
OpenBraille est une imprimante capable de gaufrer du papier avec l'alphabet braille. Hormis les lettres de l'alphabet, une telle imprimante permet aussi de créer des représentations graphiques et des plans.
J'aime beaucoup ce projet pour de nombreuses raison. La première étant de proposer une imprimante braille assez facile à mettre en oeuvre (mécaniquement).
Ce projet permet aussi de réutiliser un mécanisme d'avance papier récupérer sur une imprimante. Je n'avais pas encore jamais vu cela!
La réalisation des embosseurs est d'une grande ingéniosité tout en restant d'une grande simplicité. C'est la meilleure approche à ce jour.
Les éléments utilisés (moteur/step-stick) pourraient aussi être commandés directement par un firmware personnalisé (pourquoi pas en MicroPython ?). Cela éviterait le passage par G-Code et permettrait d'implémenter une solution d'impression plus directe (voir même un support PCL). Une solution sans informatique serait donc possible (donc sur microcontrôleur uniquement).
L'usage d'un servo-moteur pour commander la roue codée est un point faible. En effet, celui-ci utilise un potentiomètre interne qui finira par s'user ou présentera de faux contacts (plus tôt... que tard).
Dans la veine des découvertes autour des machines Siemens (voir les quelques précédents articles), je suis tombé sur la vidéo "39C3 - Hacking washing machines" du Chaos Communication Congress.
Constituer son kit de hacking
Cette vidéo est incroyablement intéressante et j'étais loin de m'imaginer que ces machines fonctionnaient avec processeur 65C02 (même si ce n'est pas forcement évident de les reconnaîtres).
La première partie sur Siemens est absolument incroyable. Je dois encore me pencher sur la partie concernant les machines Bosch.
Bref, si vous êtes un Maker avec une âme de hackeur... cette vidéo est pour vous!
Comme déjà mentionné, un séchoir à condensation utilise un bloc froid (comme un frigo) pour assécher le linge.
Comment ça marche ?
C'est le principe dans la salle de bain!
Quand vous prenez une douche bien chaude, il y a de la buée qui s'accumule sur le miroir (et les murs). Il arrive même parfois que cela coule.
En fait, l'air est bien chaud, il est donc capable d'emporter une grande quantité d'eau.
Quand il approche du mur, cet air refroidit subitement (c'est connu, les murs sont généralement plus froid). Comme l'air froid ne peut pas contenir autant d'eau que l'air chaud (qui est saturé en humidité)... et bien l'air se débarrasse de son humidité excédentaire. C'est le phénomène de condensation.
C'est exactement le même dans le séchoir a condensation... on refroidit subitement l'air qui provient du tambour pour condenser l'eau qu'il contient (pour asséché l'air).
Petit rappel sur le frigo
Puisque l'on parle de cycle du froid, il est opportun de se pencher sur le fonctionnement d'un frigo.
L'intérieure du Frigo est la source froide dont on extrait de la chaleur que l'on transfert à l'extérieur.
Le "radiateur" à l'intérieur du frigo (appelé "évaporateur") est généralement assez petite et froid.
Le "radiateur" à l'extérieur du frigo (appelé "condenseur") est généralement assez grande et chauffe.
Il y a donc un élément qui refroidit tandis que l'autre élément chauffe.
Cycle de l'air du sèche linge
Il est possible de distinguer deux éléments distinct:
Un petit radiateur : donc qui refroidit l'air en provenance du tambour = condense l'eau sous forme de liquide.
Un grand radiateur : donc qui réchauffe l'air (maintenant sec) avant de le renvoyer à l'arrière du tambour.
Voici le schéma complet du circuit de refroidissement.
Circuit de refroidissement du séchoir. Notez l'emplacement des lettres A,B,C,D
Dont voici le cycle de Carnot -- identique à celui d'un frigo.
Cycle de Carnot (simplifié) d'un frigo. Pression x Volume
Parcourons ensemble ce cycle de Carnot avec le bloc froid de notre sèche linge.
A --> B
Compression du gaz sans changement de volume (ou presque).
Il existe une relation entre pression et température d'un gaz. Si un gaz qui est chauffé dans un volume constant voit sa pression augmenter (loi de Gay-Lussac).
Loi de Gay-Lussac pour les gaz
Donc, si le gaz est comprimé dans un volume constant (ou presque) alors sa température augmente.
Le gaz est donc chaud au point B à l'entrée du condenseur.
B-->C
Le gaz chaud va progressivement céder sa chaleur à l'air et en augmenter la température.
Comme il n'y a pas de dispositif pour modifier la pression du gaz alors nous sommes face à une transformation à pression constante.
Un gaz dans un volume libre tend à voir son volume augmenter lorsque sa température augmente (c'est parce que les atomes du gaz sont plus excitées et se déplace plus facilement dans l'espace). Donc, si la température du gaz diminue (à pression constante) alors son volume va diminuer (puisque l'agitation des atome va diminuer avec la T°).
C-->D
La gaz passe dans un tube capillaire (un long fil très fin). Ce dispositif est utilisé pour faire chuter la pression du gaz. Dans l'idéal, cette transformation se fait à volume constant (donc le point D devrait être en dessous de C). Comme rien n'est parfait dans la vie, cette transformation provoquera également une modeste augmentation du volume.
En reprenant la loi de Gay-Lussac, la température devrait donc diminuer modérément puisque le volume augmente.
D-->A
Retour vers le compresseur en passant par l'évaporateur. Cette fois, nous sommes face à la détente d'un gaz (en basse pression) dans un grand volume. C'est un peu le principe de l'aérosol/déodorant vaporisé... tout le monde sais que cela refroidit.
L'échangeur à donc la possibilité d'absorber de la chaleur en provenance de l'air... et donc de refroidir cet air ==> comme l'air est chargé en humidité, cela provoque la condensation de l'eau qu'il contient.
Comme la température du gaz à la possibilité de se maintenir grâce à des échanges de chaleur via l'échangeur, la transformation se déroule donc à pression constante (cfr Gay-Lussac).
Voila, ce que j'en ai compris et déduis. J'espère ne pas avoir introduit d'erreur dans mes réflexions... sinon n'hésitez pas à partager vos remarques et commentaires.
A la suite du précédent article "Séchoir Siemens IQ800 - Code E:90 (partie 1)", j'ai décidé d'entièrement démonter le sèche-linge pour en apprendre plus sur son fonctionnement.
A ma grande surprise, ce sèche-linge est entièrement démontable, ce qui est loin d'être le cas de nombreuses machine présentent sur le marché.
Démontage
Panneau supérieur et côté droit
Le panneau supérieur et droit sont certainement les plus simples à enlever.
Panneau avant
Il est ensuite possible de s'attaquer à la face avant. Il faut des tournevis torques.
Sur l'image ci-dessous, on peut constater le retrait du réservoir d'eau, du panneau de contrôle, du hublot et de la face avant.
Retrait de la face avant.
Il est également possible de voir le conduit gris qui conduit l'air du filtre vers la bas du séchoir.
Panneau gauche
Une fois le panneau avant enlevé, il est possible d'enlever le panneau gauche. L'image ci-dessous permet enfin de voir une partie du circuit d'eau.
Côté gauche avec circuit d'eau
Le bloc en bas de la machine permet de récupérer l'eau. Je m'attends à y trouver un "bloc froid" car refroidir l'air fera précipiter l'eau qu'il restera alors a collecter.
Le solénoïde en dessous du réservoir d'eau permet de faire descendre de l'eau depuis le réservoir sur l'avant du "bloc froid" (pour laver les poussières qui pourraient s'accumuler).
A l'arrière, nous retrouvons un tuyaux noir qui remonte la collecte d'eau (du bloc froid) vers le réservoir d'eau. L'élément juste au dessus du bloc froid est une électrovanne qui permet de diriger l'eau vers le réservoir ou vers un tuyau d'évacuation (à l'arrière). La pompe de refoulement se trouve à l'arrière du séchoir. Enfin le tuyau gris qui redescend du réservoir permet de récupérer le trop plein du réservoir supérieur.
Panneau arrière
Il est maintenant possible de démonter le panneau arrière. On peut y voir la pompe de refoulement ainsi que le trajet de l'air qui est poussé dans le tambour par l'arrière.
La roue de ventilation (en bas à gauche) est montée directement sur le moteur qui fait également tourner le tambour.
En inspectant le centre du panneau, on peut voir l'axe du tambour est monté sur une pièce en laiton (pour limiter les frottement). Il n'y a pas de roulement à billes mais au moins, c'est facile à démonter.
Une fois l'axe libéré, il est possible de retirer la panneau arrière.
L'image ci-dessous montre l'autre face du panneau où l'on peu voir que le rebord du tambour (voir flèche) frotte sur une sorte de joint en cuir présent à l'arrière du panneau (voir seconde flèche en bas). C'est ainsi qu'est formé le joint d'étanchéité à l'air.
Joint d'étanchéité du tambour (à l'arrière).
Voici une présentation du mouvement d'air vers l'intérieur du tambour.
Support avant
En revenant à l'avant de la machine, il est maintenant possible de démonter le support du tambour.
L'image ci-dessous présente le déplacement de l'air du tambour vers le bloc froid.
Sur l'image ci-dessous, la face avant dispose également d'un joint d'étanchéité "en cuir". Les flèches en vert indiquent les galets rotatifs sur lesquels repose le tambour.
Le mouvement de l'air est également représenté au travers du bloc froid de l'avant du tambour vers l'arrière de celui-ci. Le bloc contient une tranche creuse permettant de déplacer l'air de l'arrière du bloc froid jusqu'à la roue de ventilation.
Enfin, le compresseur et le moteur d’entraînement du tambour sont clairement visible à l'avant de l'image.
Détecteur d'humidité
Je me suis arrêté sur le détecteur d'humidité situé à l'intérieur du tambour. Il s'agit en fait de deux simple électrodes... l'humidité du linge est déterminée en appliquant une tension et en mesurant le courant qui y passe.
Je m'attendais à quelque-chose d'un peu plus sophistiqué. A l'occasion j'irais inspecter la carte de commande où est raccordé ce capteur.
Le bloc froid
Enfin en tout dernier élément ouvert est le bloc froid qui se trouve tout en bas de la machine. S'il n'est pas facile d'accès, il faut reconnaître qu'il reste possible de l'ouvrir :-)
Bloc froid du Siemens IQ800
Je parle souvent du "bloc froid", je m'expliquerai dans la partie 3 de l'article.
Il y a deux choses intéressantes sur cette image:
La corrosion: entouré d'un rond rouge, un beau début de corrosion. C'est souvent le début de la fin car dès que la tuyauterie est percée, le gaz s'échappe et il n'y a plus de cycle du froid.
Echangeur bouché: le smiley fâché et sa flèche indique l'entrée du second échangeur (appelé le condenseur). Les ailettes de celui-ci sont entièrement bouchées par une fine couche de poussière compacte. L'air peu difficilement y circuler et le séchage est donc peu efficace!
Le séchage était médiocre puisque l'air ne pouvait pas traverser facilement l'échangeur. Par conséquent, le séchoir a commencé à prendre de plus en plus de temps pour effectuer un cycle de séchage (la proportion de temps supplémentaire pouvant devenir énorme!). Il était donc normal d'avoir rencontré un échauffement de contact sur l'un des relais.
Dans ces conditions, il est préférable de la machine ne redémarre pas. Et investir 400 Eur dans une nouvelle carte de commande aurait été en pure perte (à court terme).
Il y a un moment, j'ai eu l'occasion de m'intéresser à un sèche linge à condensation Siemens IQ800.
Ce dernier présentait un code d'erreur E:90 et bien que la machine ait déjà 10 ans, il fallait débourser 400 Eur pour remplacer la carte de commande.
Code Erreur Siemens IQ800 - Code 90
C'est un code renvoyé lorsque la carte contrôleur présente un défaut. Elle se trouve sur l'image ci-dessous (en haut a droite, en fond d'image).
Boitier de contrôle
A l'inspection du boîtier, il y a bien un problème avec l'un des relais.
Relais de contrôle (9V)
Malheureusement, après son remplacement, le code d'erreur reste présent. J'ai donc étudié la carte en profondeur, testé de nombreux composants de la carte.
J'ai donc commencé à documenter la carte de contrôle, ce qui m'a permis de tester séparement moteurs, solénoïdes et autres éléments du circuit de puissance.
Aperçu des fonctionnalités de la carte
Malgré les nombreux efforts, il n'y a rien à faire.
Comme il s'agit malheureusement de matériel Siemens, il n'y a --visiblement-- pas d'opération manuelle pour réinitialiser le code d'erreur.
Cela existe sur le même modèle sous d'autres marques mais pour chez Siemens, il faut absolument appeler un technicien (qui branche un ordinateur sur la carte)... bref engager des frais!
Vu le prix de remplacement de la carte étant trop onéreux, le séchoir a simplement été déclassé.
Personnellement, j'étais tenté de crier haut et fort au droit à réparer et l'obsolescence programmée (puisqu'il y a blocage volontaire du fabriquant sans possibilité de le contourner).
Depuis, j'ai entièrement démonté la machine (je suis un grand curieux) et mon avis est maintenant plus nuancé concernant ce blocage.
J'ai eu l'occasion, de récupérer une ancienne tablette Galaxy Tab 6 (2019) et son clavier Bluetooth. Un système Android malheureusement plus tenu à jour en 2025 donc à l'utilisation déconseillée.
Clavier Galaxy Tab S6 (Bluetooth)
Contre toute attente, il m'a été impossible d'appairer ce clavier avec un autre système. Ceci dit, cela n'est pas très étonnant d'être confronté à un système fermé.
A contre-courant de l'obsolescence
Si je n'ai pas encore trouvé comment reconvertir la tablette (n'hésitez pas à commenter), je me suis lancé dans la reconversion du clavier pour une future application MicroPython.
Cela commence forcement par l'ouverture du clavier qui n'est pas bien difficile (il y a 4 vis sous chacun des anti-dérapant.
Clavier Galaxy Tab S6
On y retrouve un clavier à membranes connecté sur un connecteur 26 broches, un accu Lipo de faible puissance, un touchpad I2C et un microcontroleur bluetooth (non visible de ce côté de la carte).
Clavier Galaxy Tab S6
Loin moi l'idée de reprogrammer le microcontrôleur Bt de la carte (ses protections matérielles sont certainement active), je me suis dit qu'il serait plus facile de réutiliser directement la membrane avec un Pico.
C'est que l'on imagine cette membrane comme un clavier de KeyPad dont le fonctionnement est sommaire.
Avec un peu d'analyse, j'ai rapidement repéré des résistances pull-down de 35 KΩ sur chacune des lignes (excepté les 5 premières). D'autres lignes marquée sont elles équipées d'un composant spécifique (voir les points blancs sur l'image ci-dessous).
Je pensais avoir repéré les colonnes, les autres signaux étant alors les lignes.
Malheureusement, les choses ne furent pas si simples!
Un peu de hacking
Je commence donc par souder des fils vernis 0.2mm sur le connecteur en vue de réaliser des tests. Les fils sont maintenus bien en place à l'aide de colle chaude (pour éviter de casser les fragiles soudures des fils).
Quelques fils soudés sur le connecteur (pin 1 à droite).
J'ai procédé de même avec les 26 contacts ensuite reporté sur une plaque de prototypage (bien dans l'ordre).
report des connexions sur une plaque de prototypage offrant un accès via connecteur 2.54mm
Connexion au Pico
J'ai utilisé 2x MCP23017 (GPIO expander 16 bits) pouvant être contrôlé via bus I2C, donc avec seulement deux lignes connectés sur le Pico.
Matrice clavier branché sur des MCP23017
Brochage du MCP23017
L'intérêt des MCP23017 est d'avoir les broches 1 à 26 du connecteur clavier branchés scrupuleusement dans l'ordre croissant des GPIOs des MCP23017. Pas de mathématiques complexes, il y a une relation 1-à-1 entre les MCP et la matrice clavier.
Correspondance broche clavier (1..26) vers MCP (0..15) + MCP (0..9)
Enfin, j'ai aussi remarqué que l'usage de résistance pull-down sur les 5 premières lignes améliorait la stabilité de la détection. Ces pull-down manquantes sur le connecteur clavier était probablement activée sur le microcontroleur bluetooth.
Décoder la matrice clavier
Après un premier échec sur l'identification des colonnes et des lignes de la matrice, un second script a été écrit pour tester une à une chaque ligne comme une colonne considérant alors les 25 autres lignes pour détecter une touche.
Le script tester2.py publié sur le dépôt agit comme suit:
Presser une touche du clavier
Au démarrage, toutes les broches sont configurées en entrée. Elles présentent toutes une haute impédance.
Ensuite le script sélectionne une ligne -- dite driver pin--, la configure en sortie et la place au niveau haut. Cette broche présente donc une faible impédance et est capable de fournir du courant.
Ensuite, les 25 autres broches --read pin-- sont interrogés une par une pour y détecter un niveau haut. Note: la touche pressée doit permettre au courant de circuler vers une des broches en lecture.
S'il N'Y A PAS de détection de niveau haut ALORS * le script repasse la driver pin au niveau bas * PUIS reconfigure celle-ci en entrée. * ENFIN, le script passe la driver pin sur la broche suivante * et recommence le cycle de détection au point 3.
S'il Y A détection d'un niveau haut ALORS le script a détecté un couple (driver_pin, read_pin) permettant de détecter la touche enfoncée.
La feuille de calcul reprend les couples drive_pin,read_pin dans la 2ieme colonne.
Puisque le contact électrique se fait dans les deux sens entre drive_pin--et--read_pin alors il est possible d'écrire la relation de détection de F12 comme 7,13 ou 13,7 (d'ailleurs, les deux options sont indiquées par tester2.py ).
Par souci de simplicité, la relation est écrite avec le plus petit numéro de broche d'abord (donc 7,13 pour la touche F12).
Compilation des broches
Maintenant que nous disposons d'une description de la matrice, il serait opportun d'identifier les driver_pin et les read_pin utilisés dans la matrice.... cela revient à identifier les lignes et les colonnes du keypad présenté plus haut dans l'article.
Il y a un recouvrement des broches driver_pin et read_pin. Suivant les circonstances, une broche de la matrice clavier agit tantôt comme broche driver_pin tantôt comme broche de read_pin (de lecture).
Lecture optimisée
Sur base des informations obtenue, le script tester3.py disponible dans le dépôt effectue une détection optimisée des touches du clavier. La détection s'étend aux combinaisons de touches avec Shift,Ctrl,Alt.
Il reste encore un peu de travail mais le plus gros est fait :-)
Cela faisait longtemps que nous n'avions pas eu l'occasion de porter un nouveau pilote sous MicroPython.
Renesas FS3000
Cette fois, nous nous sommes penchés sur le capteur FS3000 de Renesas qui mesure la vélocité de l'air. Capteur que l'on retrouve sur les breakout FS3000 de SparkFun.
Capteur FS3000 de SparkFun
Ce type de capteur est principalement utilisé dans des systèmes de refroidissement ou de conditionnement d'air. Comme il dispose d'une interface I2C, il est très facile de l'exploiter avec de nombreux microcontrôleur.
Les cartes breakout existent en deux versions:
FS3000-1015 mesurant des flux jusqu'à 15m/s (54 Km/H).
FS3000-1005 mesurant des flux jusqu'à 7ms/s (25 km/H).
Pilote MicroPython
Bien que SparkFun propose un pilote MicroPython --ce que je salue-- celui-ci est construit sur une surcouche d'abstraction permettant permettant d'utiliser le capteur avec CircuitPython et MicroPython.
Etant un fan inconditionnel de MicroPython, je pense qu'il est préférable de disposer d'un code qui va droit au but... avec le moins de détour possible! C'est ainsi que l'on maintient une efficacité optimale d'exécution.
J'ai décidé de recréer un pilote à partir du code Arduino. En effet, il à été plus facile de travailler à partir du code Arduino que de suivre la couche d'abstraction CircuitPython/MicroPython.
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.
Aujourd'hui, nous avons l'occasion de nous pencher sur le microcontrôleur MicroPython le plus rapide à ce jour.
RT1010-Py
IMXRT1010RM de NXP qui équipe la carte RT1010-Py d'Olimex, une carte de développement Cortex M7 fonctionnant à 500 MHz. soit 4 fois plus rapide que le RP2040 avec MicroPython pré-installé.
Avec un Cortex M7 et un support DSP, ce microcontrôleur sera surtout
intéressant pour les applications en besoin de réactivité et de
puissance de calcul (unité de calcul en virgule flottante à double
précision).
Nous avons travaillé/collaboré sur le manuel utilisateur et la documentation afin de rendre la carte de développement et son DevKit plus accessibles. Vous savez... dès qu'il s'agit de MicroPython, on ne se tient plus!
Nous avons apporté quelques ressources graphiques mais également étayé la documentation avec des exemples et des ressources utiles autour pour MicroPython. Nos apports les plus significatifs restant l'exemple I2S, le support WS2812/NeoPixel et la gestion du PMIC (gestion d'alimentation intégrée au RT1010) qui permet, par exemple, de maintenir la RTC à l'heure alors que le MCU est arrêté.
MIMXRT1011DAE5A running at 500Mhz
128KB de RAM RAM
2MB de FLASH SPI
3x UARTs
2x bus SPI matériel
2x bus I2C matériel
1x bus I2S (il y en a un second mais pas encore testé)
4 contrôleurs PWM (avec sorties complémentaires pour créer des circuits push-pull)
USB 2.0 OTG
Connecteur Micro SD
RTC avec cristal 32.768 kHz
Bouton RESET
Bouton BOOT (pouvant servir de bouton utilisateur)
Connecteur fUEXT (flat ribbon) avec 3.3V, GND, I2C, SPI, UART
Connecteur GPIO breadboard friendly
Dimensions: 53.34 x 25.4 mm
Cette plateforme existe depuis un moment mais le support MicroPython est maintenant mature.
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.
Nous poursuivons les travaux sur Kit CANSATversion 2, l'occasion de s'intéresser à des extensions utiles. Pour rappel, notre kit utilise un Raspberry-Pi Pico et du code Python sur microcontrôleur (MicroPython).
CanSat est
un concours visant a stimuler l'apprentissage des sciences dans le
domaine de l'AéroSpatial en réalisant un mini-satellite (la CanSat) pas
plus grande qu'une boîte de Soda. Ce satellite est envoyé et éjecté à
3000m d'altitude à l'aide d'une roquette. C'est à partir de ce moment
que votre projet capture les données et les envois au sol.
Etant donné que ce module est supposé se retrouver sur le dessus de la CanSat (pour exposer l'antenne vers le ciel), le point de connexion est reporté sous la carte.
Un simple câble Grove permettra de raccorder le GPS sur l'entrée UART de la CANSAT en deux clicks.
La carte expose également les deux signaux supplémentaires:
1pps : Pulsation à très précisément 1 Hertz (1 pulsation par seconde)
nRest : Reset du module GPS. Placer cette broche au niveau bas réinitialise le module GPS.
A propos du module GPS Ultime
C'est que le breakout GPS/GNSS produit par AdaFruit dispose d'une excellente module GPS/GNSS disposant d'une grande sensibilité et d'une antenne intégrée (dite Patch Antenna).
Même avec son antenne Patch, le démarrage à froid de ce module permet d'obtenir un fix GPS/GNSS relativement rapidement (de l'ordre de la minute). Tandis que s'il est utilisé avec un pile CR2032, le démarrage à chaud permet de réduire drastiquement le temps du fix GPS/GNSS.
Le GPS-Ultime est capable d'offrir un rafraîchissement des données jusqu'à 10 fois par secondes (10 Hz).
Il est possible de visualiser les coordonnées dans google maps en saisissant les coordonnées "50.69063 , 4.400778" (lattitude , longitude) dans la zone de recherche.
ROMFS: une nouvelle fonctionnalité fait son apparition dans MicroPython.
ROMFS qui est en développement depuis plusieurs années permet de stocker
des utilitaires (scripts pré-compilé),
des fichiers de données (fonts)
des programmes pre-compilés
Au sein même d'une partition dans la Mémoire Flash (sous forme d'un système de fichiers en lecture seule).
Le but de ROMFS est d'optimiser l'accès et la rapidité d'exécution de ressources SANS DEVOIR RECOMPILER MicroPython à chaque fois.
Jusqu'à maintenant, seule l'inclusion -au sein du firmware- de scripts pré-compilés avec mpy-cross permettait d'atteindre les performances nécessaires à l'exécution de code "time sensitive".
Certes, mpy-cross permet de compiler un script en byte-code (des fichiers .mpy) mais l'accès reste encore conditionné par le système de fichiers pour le chargement (ou chargements multiples). Les fichiers .mpy, bien que pré-compilé, nécessite malgré tout des vérifications de routine et du chargement d'information en RAM.
Avec ROMFS, une partition dans la mémoire Flash permet d'être accédée directement par la VirtualMachine MicroPython. Les ressources sont directement accessibles par le noyaux MicroPython qui peut aussi lancer l'exécution directement en Flash (In-Place execution)... et cela en s'évitant la lourdeur du système de fichiers, les phases de compilations et allocations de RAM. Les routines de vérifications sont elles aussi réduites au stricte nécessaire puisque celles-ci sont opérées majoritairement au moment de l'assemblage/compilation de la ROMFS.
Implémentation restreinte
Au moment de l'écriture de ces ligne (MicroPython v1.25), ROMFS n'est disponible nativement que sur certaines plateformes: PYBD-SFx (Pyboard D), ALIF-Ports, ESP8266_Generic, STM32 boards.
Sinon, il est possible de compiler le firmware en activant la flash_romfs (voir FLASH_2M_ROMFS).
build: pour créer une image romfs sur l'ordinateur
deploy: pour déployer l'image sur la romfs dans la mémoire flash du microcontroleur.
A noter que la compilation/build d'une image romfs require l'utilitaire mpy-cross .
romfs query
La capture suivante indique le contenu de la romfs sur le microcontroleur.
mpremote romfs query
Comme l'indique le réponse de l'utilitaire, la partition n'est pas encore initialisée. La partition fait 131 Kio (32 blocks de 4 Kio chacun).
romfs build
Prenons l'exemple d'un répertoire "utilities" qui contient les sources. Celui-ci ne contient qu'un script nommé "scan_i2c.py".
L'image de la partition romfs est créé avec la commande suivante:
mpremote romfs -o utilities.img build utilities
Le nom de l'image à créer est spécifié par le paramètre '-o'. Le contenu du répertoire à compiler est précisé après le paramètre 'build'.
romfs deploy
Une fois l'image prête sur l'ordinateur, l'option deploy permet de copier celle-ci sur le microcontroleur.
mpremote romfs deploy utilities.img
Une fois l'image déployée, il est possible de vérifier une nouvelle fois l'état de la ROMFS avec romfs query . Cette fois, la partition est initialisée.
Exploiter la ROMFS
Une fois romfs initialisé, il est très facile d'utiliser son contenu. Utiliser Thonny IDE permet d'inspecter le système de fichiers MicroPython.
La partition romfs est montée dans le système de fichiers MicroPython sous le répertoire 'rom'. Il est donc possible d'en inspecter le contenu.
Comme le démontre le shell interactif, il est possible de charger et d'exécuter le contenu de scan_i2c.py (compilé en .mpy) en executant un simple "import" sous Python.
ROMFS est un système de fichiers
L'appel de mount() sans paramètre affiche les systèmes de fichiers déjà monté dans MicroPython.
Ainsi les lignes suivantes indique la présence de romfs:
Nous poursuivons les travaux sur Kit CANSATversion 2, l'occasion de poursuivre nos essais de communication Radio (voir article précédent). Pour rappel, notre kit utilise un Raspberry-Pi Pico et du code Python sur microcontrôleur (MicroPython).
CanSat est
un concours visant a stimuler l'apprentissage des sciences dans le
domaine de l'AéroSpatial en réalisant un mini-satellite (la CanSat) pas
plus grande qu'une boîte de Soda. Ce satellite est envoyé et éjecté à
3000m d'altitude à l'aide d'une roquette. C'est à partir de ce moment
que votre projet capture les données et les envois au sol.
L'antenne GroundPlane permet de créer un plan de masse, ce qui est fort utile pour un périphérique suspendu au bout d'un parachute.
Antenne Ground-Plane 2
Cette première antenne, même si elle est efficace, reste cependant très artisanale... un peu trop artisanale pour être expédiée dans une CanSat.
Constitution du Ground-Plane 2
Ground Plane 3
Pour cette troisième itération, je voudrais créer un GroundPlane exploitant un mètre ruban métallique pour fabriquer le plan de masse.
Ce type de ruban est magique, il se tend automatiquement dès qu'on le lâche... pratique pour le déploiement d'une antenne :-)
Je voudrais aussi utiliser un élément émetteur souple suspendu sous le parachute. J'ai donc l'intention d'utiliser des œillets.
L'élément principal est le support réalisé à partir d'une pièce de cuivre de 31 x 36mm qui servira à fixer les rubans métalliques et l'antenne (élément radiant) aussi solidement que possible.
Plaquette de cuivre
Les dimensions de 31 x 36mm ne sont pas le résultat du hasard. Les plaques de cuivre ne sont pas monnaies courantes. Il est par contre beaucoup plus facile de trouver du tube de cuivre (utilisé en plomberie).
Si le tube fait 10mm de diamètre, le périmètre du tube est de 2*Pi*R = 31.4 mm. C'est la dimension contraignante!
L'autre dimension de 36mm est exclusivement guidée par la nécessité d'avoir des angles de 120° entre les 3 branches du plan de masse.
Ouverture du tube à la fraiseuse
Une fois aplatit nous avons une plaquette.
Seulement, la plaquette fait de 36mm x 28mm!!!
Pour commencer, la ligne de découpe à enlevé un peu de matière... même si cela est moins d'un millimètre, c'est quand même de la matière.
Ensuite, le diamètre interne est plus petit que le diamètre externe... donc en étendant le cuivre, il y a un phénomène de rétraction qui intervient.
Correctif: une séance de martelage permet d'élargir la plaquette, même si cela l'aminci par la même occasion.
Plaquette après martelage
Un recuit de détente peut-être le bienvenu pour faciliter le travail sur la plaque de cuivre (voir recherche "traitement thermique du cuivre" pour plus d'information).
Découpe
Pour faciliter la découpe de la pièce, le plus simple est encore d'imprimer la pièce finale à l'échelle 1:1 puis coller la feuille de papier sur la pièce de cuivre.
Il ne reste plus qu'à se lancer dans le perçage et le découpage.
Aidan partage son savoir faire en expliquant comment il réalise des objets en carton compressé dans un moule imprimé en 3D.
Outre les exemples proposés par Aidan, je me dis que ce procédé peut être utilisé pour réaliser des structures de plateformes robotiques/mobiles écologique (filière recyclage) et recyclable.
Une belle façon de faire du bricolage écologique que l'on peut ensuite lier à de la mécanique et/ou électronique.
Voici quelques notes manuscrites. Bonne lecture et bon visionnage.
Caractéristiques mécaniques du carton compressé
Le matériau obtenu se situe entre le plastique et le bois léger.
C'est un matériau relativement solide qui peut résister au coup de marteau. Il ne brûle pas (difficile d'y bouter le feu).
Formes triangulaire
Il peut-être travaillé de nombreuses façons:
ponçage
perçage (plutôt propre)
Coupe (scie a chantourner)
Collage
Au rang des inconvénients, il y a une légère rétraction au séchage mais surtout un intolérance à l'eau. Plongé dans l'eau, l'objet se dissous en quelques minutes.
Mais bon, dans la vie, peu d'objets sont destinés à être exposé directement à l'eau.
Le moule de mise en forme
La mise en forme se fait par pressage de pulpe de carton dans un moule. Le moule est constitué en 3 parties, tous imprimés en 3D. Il faut que le moule soit bien solide (parois épaisses avec bon remplissage).
Moule de pressage - en 3 pièces
Le fond amovible permettra de retirer la pièce du moule après la mise sous presse de 24H.
Retrait de partie supérieure
Retrait de la partie inférieure et glisser la pièce hors du moule.
Partie inférieure du moule
La rétraction sur les bords du moule indique que la pièce est prête à l'extraction.
Pousser hors du moule doucement
Poursuivre le séchage a l'air libre (sur une surface plane).
La hauteur du moule
Le moule doit être haut dans le sens du pressage car la pulpe fortement compressé ne fera plus que quelques mm de haut.
Remplissage du moule
Avant de placer la partie supérieure du moule, celui-ci doit être bien rempli de pulpe de carton.
Remplir le moule presque jusqu'en haut
Mise sous presse
Pas besoin d'un appareillage complexe pour presser le moule. Un établi amovible peut très bien faire l'affaire.
Maintenir sous presse pendant 24H.
Mise sous presse
Rétraction et expansion
Il se produit une rétraction dans le plan perpendiculaire à la pression au fur et à mesure que la pulpe perd son eau.
Par contre, il y a une légère expansion en opposition à la mise sous pression.
Phénomène de rétraction
Préparation de la pulpe de carton
Pour préparer la pulpe de carton, il faut du carton/papier/carton à œufs coupés en tout petit morceau. Pas de papier glacé ou plastifié.
Il faut aussi un liant (options décrites plus loin).
Superposer des couches de carton et liant dans un Blender. Ajouter juste assez d'eau pour mouiller le carton (il est préférable de mouiller en plusieurs fois).
Pulpe de carton: carton, pâte de riz et eau
Le but est d'obtenir une pâte bien homogène et uniforme mais pas trop liquide.
Texture parfaite de pulpe de carton. Hum... dégoûtant!
Après le mixage, il est convient d'éliminer une partie de l'eau en utilisant un filet.
Extraction d'une partie de l'eau
Pas besoin que sec mais inutile que la pulpe dégouline d'eau.
Plus la pulpe de carton est humide et plus le temps de séchage sera long.
Le liant
Tout liant/colle soluble dans l'eau et séchant à l'air fera l'affaire.
Selon Aidan, voici trois options intéressantes.
Colle PVA
Les colles Poly-acétate de Vinyle (wikipedia) sont très répandue. Elles sont généralement utilisées comme colle à bois ou multi-usages.
La colle PVA offre les résultats les plus solides mais pas écologique.
Fécule de Maïs
Cette fine farine de maïs est de l'amidon. Egalement connue sous le nom "Maïzena", cette farine peut être ajoutée directement avec les morceau de carton.
La fécule de maïs servira de liant et produira un produit biodégradable.
Pâte de riz
Cette pâte peut être réaliser en faisant sur-cuire du riz avec un peu d'eau (pendant environ 30min). Cette pâte pourra être ajoutée avec le carton dans le Blender.
Créer de la pâte de riz
La pâte de riz est le produit biodégradable par excellence.
Le modèle IPV5001 est aujourd'hui déclassé et je n'ai pas résisté à y jeter un petit coup d'oeil.
TVBox IPV5001 de Belgacom
TVBox IPV5001 de Belgacom
Pour l'ouvrir, il faut retirer les deux vis à l'arrière puis déclipser les 4 points à l'avant afin de faire glisser le couvercle.
TVBox IPV5001 de Belgacom
Comme on peut s'y attendre c'est assez empoussiéré.
TVBox IPV5001 de Belgacom
Une fois dépoussiérée la carte est maintenant beaucoup plus intéressante à inspecter.
Cliquer pour agrandir. TVBox IPV5001 de Belgacom
Récupération
A ce point du démontage, il est déjà possible de récupérer les éléments suivants:
Le refroidisseur en aluminium
Le boîtier (qui est 100% réutilisable)
Des contrôleurs Step-Down (pour créer une tension de 8V)
Boîtier du TVBox IPV5001
Inspection
Je me suis penché sur la carte pour identifier les divers composants présents. Le processeur principal est un BCM7241 de Broadcom, un processeur simple coeur spécialisé dans l'IP TV (voir info plus bas) équipé de 1Go de RAM et 2 Go de stockage Flash.
La puissance de traitement est comparable à un Raspberry-Pi 2.
Cliquer pour agrandir
De façon surprenante, le circuit que j'ai trouvé le plus intéressant c'est encore le circuit radio CC2534 avec les télécommandes (celle-ci pouvant passer du mode infrarouge au mode radio).
Le CC253x est un SoC bâti autour d'un microcontrôleur 8051 (wikipedia) avec de nombreux périphériques annexes.
Block Diagram du CC2534. Cliquer pour agrandir
Le document swru191 de Texas Instrument est le guide utilisateur de ce composant. C'est une ressource vraiment intéressante à explorer.
Voici les autres informations collectées sur les divers composants.
== SoC ==========================================
BCM7241 from Broadcom 2017
Arch MIPS 1.3GHz, 1 core
3K DMIPS, HD IP/CATV STB, DDR3,
OGL 2.0 Graphics, USB, SATA, SDIO, 40nm
== U1501 ========================================
SK hynix H26M522081
eNAND Flash (Solid State Drive)
16 Gbit
== U1905 =========================================
MXIC MX25L3255
Macronix SECURE SERIAL FLASH
32 Mbit Mode 0 & Mode 3
2.7 to 3.6V
== U202/U203 =====================================
SK hynix H5TQ4G63CFR
4Gb DDR3 SDRAM (512 MByte)
== Q1801 =========================================
4435GM 95217E
4435GM from VBsemi.tw
P-Channel 30-V (D-S) MOSFET
SO-8 package
2.7W to 4.2W power dissipation (depending on external T°)
Vds = -3.0V
Vgs = +- 20V
Id = -9.0A to -5.6A (depending on external T°)
== U1802/U1803/U1903/U1901 ========================
RT7274 GSP6MA5N
RICHTEK RT7274
2A, 18V, 700kHz ACOTTM Synchronous Step-Down Converter
* 4.5V to 18V Input Voltage Range
* A Output Current
* High Efficient Internal N-MOSFET Optimized for
* Lower Duty Cycle Applications
* 105 mΩ Internal Low Side N-MOSFET
* Advanced Constant On-Time Control
* Allows Ceramic Output Capacitor
* 700kHz Switching Frequency
* Adjustable Output Voltage from 0.765V to 8V
* Adjustable and Pre-biased Soft-Start
* Cycle-by-Cycle Current Limit
* Input Under Voltage Lockout
* Thermal Shutdown
== U1801 ==========================================
RT7278 GSP5APoH
3A, 18V, 700kHz ACOT TM Synchronous Step-Down Converter
* 4.5V to 18V Input Voltage Range
* 3A Output Current
* 60 mΩ Internal Low Site N-MOSFET
* Advanced Constant On-Time Control
* Support All Ceramic Capacitors
* Up to 95% Efficiency
* 700kHz Switching Frequency
* Adjustable Output Voltage from 0.765V to 8V
* Adjustable Soft-Start
* Cycle-by-Cycle Current Limit
* Input Under Voltage Lockout
* Thermal Shutdown
== U1701 ==========================================
CC2534 TI865 P904
CC253x from Texas Instrument
CC253x System-on-Chip Solution for 2.4-GHz
IEEE 802.15.4 and ZigBee ® Applications
Clock at 32 MHz
document swru191f.pdf - CC253x/4x User's guid (Ref.F) is available online
== U404 ============================================
4710 connected to SCART output
AK4710 from AKM
AK4710 Low Power Single SCART Driver
Si le coeur vous en dit, voici de quoi occuper votre curiosité. Bonnes découvertes, Dominique
Nous poursuivons les travaux sur Kit CANSATversion 2, l'occasion de poursuivre nos essais de communication Radio (voir article précédent). Pour rappel, notre kit utilise un Raspberry-Pi Pico et du code Python sur microcontrôleur (MicroPython).
CanSat est
un concours visant a stimuler l'apprentissage des sciences dans le
domaine de l'AéroSpatial en réalisant un mini-satellite (la CanSat) pas
plus grande qu'une boîte de Soda. Ce satellite est envoyé et éjecté à
3000m d'altitude à l'aide d'une roquette. C'est à partir de ce moment
que votre projet capture les données et les envois au sol.
RFM69HCW 433MHz et communication longue distance (partie 2)
Cette fois, il a été nécessaire de trouver des distances supérieures à 2.2km avec vue dégagée en direction de l’émetteur.
Les altitudes respectives ont également été relevées pour identifier des points susceptibles d'offrir une vue dégagée sur l'émetteur.
Cansat Yagi Testing V2 - cliquer pour agrandir
Note: l'image ci-dessus reprend --en violet-- la position de l'émetteur et une partie du parcours réalisé durant la session 1.
Me Voici donc de sortie avec l'antenne Yagi pour tester les différents point.
Récepteur de test (messages affichés sur le LCD 2x16).
Comme la fois précédente, l'émetteur est positionné dans un arbre à plusieurs mètres du sol. Ce dernier émet un message différent toutes les 2 secondes (le message contient un compteur incrémenté à chaque émission).
CanSat V2 avec Antenne (émetteur)
Le premier arrêt au point E offre une vue dégagée vers l'émetteur (bien a l'arrière du bosquet visible) qui se trouve à la même profondeur que le lion de Waterloo. A cette distance de 3.5 Km, la récepteur accroche immédiatement le signal.
Réception a 3.5 Km (cliquer pour agrandir)
Ensuite, je me suis déplacé sur le point le plus éloigné (point F) et avant même de tester la réception je savais déjà qu'il n'y aurait pas de réception. En effet, le champ est en surplomb d'environ deux mètres... pas de vue dégagée = pas de signal!
4.175 Km, pas de vue dégagée = pas de signal!
Sur place, je me rend compte qu'a quelques centaines de mètre, il y a la possibilité de regagner un peu d'altitude... je me déplace jusqu'au point G à presque 4 Km mais avec une vue plus dégagée sur l'émetteur.
En montant sur le talus, la vue est suffisamment dégagée pour permettre la réception des messages. Encore une fois, le récepteur accroche immédiatement le signal de l'émetteur.
Réception à 4KM avec vue dégagée (ou presque sur l'émetteur)
Le dernier point G n'offre malheureusement pas de réception parce que:
il n'y a pas de vue dégagée, je suis au pied d'un bois
je suis orienté dans la mauvaise direction (ce que je n'ai constaté plus tard).
Par contre, nous avons une autre vue imprenable sur le bosquet visible au point G. Il est possible de constater que le terrain s'incurve vers une altitude inférieure.
Pas de réception : mauvaise direction et pas de vue dégagée
Conclusion
Le couple d'antennes et de modules RFM69HCW démontre une efficacité vraiment étonnante pour CanSat avec les 100mW disponibles (puissance hors cadre de réglementation Européenne).
Il faudrait néanmoins reconduire ces tests avec une puissance max de 10mW réglementaire pour un utilisation standard.
J'ai pris quelques photographies de la vue depuis la position de l'émetteur. J'ai repéré deux pylônes électriques en vue dégagée et situés à 5.20 Km (près du chemin de Wavre, le long de la N5)
Vue depuis l'émetteur
Il est encore possible de tester ce point... par la suite, il sera indispensable de se déplacer ailleurs ou d'envisager une mise dans les airs.
Ressources
Nous réapprovisionnons nos kits Cansat pour les tirs 2025. Contactez nous si vous désirez placer une commande.
Nous poursuivons les travaux sur Kit CANSATversion 2, l'occasion de faire le point sur la communication Radio. Pour rappel, notre kit utilise un Raspberry-Pi Pico et du code Python sur microcontrôleur (MicroPython).
CanSat est
un concours visant a stimuler l'apprentissage des sciences dans le
domaine de l'AéroSpatial en réalisant un mini-satellite (la CanSat) pas
plus grande qu'une boîte de Soda. Ce satellite est envoyé et éjecté à
3000m d'altitude à l'aide d'une roquette. C'est à partir de ce moment
que votre projet capture les données et les envois au sol.
Le module radio RFM69HCW 433MHz est utilisé pour envoyer les informations au sol. Ce dernier module dispose d'une puissance d'émission de 100mW (+20dBm), largement suffisant pour assurer l'envoi de données au delà du kilomètre.
Le succès d'une transmission longue distance réside exclusivement dans l'aptitude à créer les antennes adéquates. Raison pour laquelle il est si important de prendre contact avec des Radio Amateurs (voir liste UBA).
Selon le club radio amateur WTO de Braine-l'Alleud, à qui je remets mes
chaleureux remerciements pour leur support, 100mW est suffisant pour une communication
allant jusqu'à 4 ou 5Km.
Etre convaincu des aspects techniques c'est bien, le démontrer c'est mieux. Ainsi, je me suis lancés dans l'aventure avec pour objectif d'atteindre un minimum de 1000m pour commencer.
Après avoir remis jusqu'à 6 fois mon travail sur l'établit, j'étais fin prêt à réaliser mes premiers tests en situation.
L'émetteur du CanSat-V2-Kit est positionné à environ 8m de hauteur face à une vue dégagée (le champs de bataille de Waterloo).
Côté récepteur, j'ai utilisé le PICO-RFM69-433-BOOT sur-lequel j'ai branché un afficheur LCD pour y lire les messages réceptionnés (et le RSSI). Un petit PowerBank et l'antenne Yagi et c'est parti.