mardi 14 mars 2023

Récupération d'eau de pluie : nouvelle installation


 

Récupération d'eau de pluie

nouvelle installation


Il y a 18 mois j'avais présenté un projet de surpresseur DIY, destiné à alimenter en eau de pluie diverses choses, en particulier l'arrosage et le lave-linge. Ce système a été utilisé avec bonheur depuis cette date.

Pour rappel, le schéma de principe du surpresseur est le suivant : 

On peut bien entendu utiliser un surpresseur du commerce, mais il faut y mettre le prix. Comme je le disais dans l'article cité plus haut :

Les surpresseur de qualité sont chers, et ils ne sont pas toujours fiables ni réparables. Lorsque l'on lit les commentaires d'acheteurs sur certains sites de matériel de bricolage on constate que beaucoup ont des problèmes de durée de vie : corps de pompe cassé, ballon tampon percé, baisses de pression, pressostat en panne, etc.

1. Pourquoi une nouvelle installation ?

En fin d'année 2022, j'ai changé d'habitation, pour plusieurs raisons :

  • disposer de plus de terrain afin de pouvoir héberger des animaux, moutons, chèvres, poules
  • adopter un chien

Il a fallu réinstaller le système d'alimentation en eau de pluie dans la nouvelle habitation, et en profiter pour corriger certains petits défauts.

Tout d'abord, la configuration change assez radicalement :

  • j'ai choisi pour le stockage le sous-sol d'un hangar situé à 30 mètres de l'habitation, afin de ne pas monopoliser un espace trop important dans le sous-sol de la maison. La toiture de ce hangar de 200m² est faite de bacs acier, et une descente de chéneaux passe à proximité de l'endroit prévu pour les fûts.
  • le circuit d'alimentation en eau de l'habitation comporte un circuit secondaire alimentant : 
    • au sous-sol :
      • le lave-linge 
      • une douche
      • des toilettes
    • au rez de chaussée :
      • des toilettes
    • à l'étage :
      • un cabinet de toilettes avec lavabo et WC

Le fait de disposer d'un seul circuit d'alimentation séparé pour tous ces postes est une chance inespérée.

Comme je vais donc pouvoir alimenter trois WC, la consommation d'eau risque de fortement augmenter, je vais donc passer de 1500 litres à 3000 litres.

Le hangar est à 30 mètres de l'habitation, mais par chance, celui-ci est alimenté en eau et électricité. Une bergerie est présente en sous-sol, et elle est pourvue d'un abreuvoir automatique.

Le départ de l'alimentation en eau du hangar est situé près du compteur. L'arrivée est située dans le local où les fûts seront installés.

Afin d'alimenter la maison en eau de pluie je n'ai en fait qu'à utiliser l'alimentation en eau du hangar dans l'autre sens, sans avoir à creuser de tranchée pour ajouter un tuyau supplémentaire. Ne pas disposer de l'eau du réseau dans le hangar ne pose pas de problème.

On se rend compte immédiatement que les travaux nécessaires seront réduits à leur strict minimum.

2. Les photos

Plutôt qu'un long discours, je vous propose une série de photos.

2.1. Stockage

Le grand local de stockage accueille maintenant 6 fûts. Ils proviennent de chez Truffaut, et leur prix est de 60€ pièce.

L'endroit est clos, et se trouve en sous-sol, il est donc frais, ce qui évitera à l'eau de croupir en été.

Il est évident que des fûts ronds occupent plus de place que des cuves rectangulaires. Si l'on désire que le stockage occupe le minimum d'espace, on peut adopter des cuves IBC 1000 litres (environ 180€) : 

Sinon, il reste une alternative : une cuve enterrée. Un modèle 300 litres coûterait environ 1300€, travaux de terrassement non compris. Certaines habitation n'ont pas la possibilité d'héberger autant de volume d'eau en surface, dans ce cas une cuve enterrée est la seule solution. Dans les constructions récentes cela se fait de plus en plus, mais je comprends que l'on puisse hésiter.

Comme précédemment les fûts sont reliés entre eux, par le haut, par des tubes d'arrosage de surface Ø13mm pourvus de raccords en T. Cette solution est moins onéreuse que les tubes de jonction située au bas des fûts, qui nécessitent un perçage, et le risque de fuite est inexistant. Bien entendu, chaque tube de jonction doit être amorcé manuellement, en évitant d'introduire des bulles d'air.

2.2. Surpresseur

Le vase d'expansion a été changé. L'ancien ballon rouge, prévu pour une chaudière est remplacé par un modèle blanc prévu pour le sanitaire. Il n'y a qu'à voir la couleur rouille des filtres pour constater que ce changement était nécessaire, car l'oxydation du ballon encrasse fortement les filtres. Ceux-ci devront être changés également sous peu.

Le prix d'un tel ballon de 18 litres est de 80€.

Si l'on n'envisage pas de laver du linge ou se doucher à l'eau de pluie, un ballon de chauffage, moins cher (30€), peut être utilisé, sans filtres.

2.3. Arrivée d'eau

Si l'on a pas besoin d'installer de vanne d'arrêt motorisée on aura intérêt à réaliser l'arrivée d'eau intégralement en PVC Ø40mm ou Ø32mm. Il faut cependant disposer d'une évacuation à l'égout en cas de trop-plein.

On peut éventuellement installer une vanne manuelle PVC :

Pour ma part, comme aucune évacuation à l'égout n'est possible pour le trop-plein, j'ai opté pour une vanne motorisée.

L'arrivée d'eau en provenance de la descente de chéneaux située de l'autre côté du mur est réalisée en PVC Ø40mm, suivie d'un réducteur Ø40mm / Ø32mm. Le raccordement à la vanne motorisée se fait par un adaptateur Ø25mm / 15/21 trouvé sur manomano.fr :

Le diamètre de 25mm ne correspond pas tout à fait au diamètre intérieur d'un tube PVC de 32mm. Il a fallu combler avec quelques tours d'adhésif toilé et de la colle PVC.

La vanne motorisée, prévue pour être commandée par le Contrôle de Niveau d'Eau Connecté est suivie d'une vanne manuelle, par sécurité. 

Au final, la vanne manuelle est suivie d'un tube cuivre Ø14mm dont l'extrémité arrive au dessus du premier fût. On peut bien entendu adopter un diamètre supérieur, par exemple si l'on habite une région où les pluies sont abondantes, mais courtes et rares. Dans mon cas, étant donné la surface de toiture importante du hangar, deux nuits légèrement pluvieuses en continu ont suffit à récolter les 3000 litres d'eau. Un Ø14mm suffit amplement.

2.4. Sortie d'eau

Pour finir, un tube PER relie la sortie des filtres au tuyau polyéthylène Ø25mm reliant le hangar et l'habitation. Un raccord en T est utilisé (raccord Ø25mm / 20/27 suivi d'un raccord 20/27 / PER Ø16mm) afin de conserver l'alimentation en eau de pluie des différents postes du hangar : robinets d'arrosage et abreuvoir.

Il est à noter que le collecteur du surpresseur est équipé d'une vanne d'arrosage, en amont des filtres. Le jardin peut se contenter d'eau non filtrée.

2.4. Dans l'habitation

Passons du côté habitation. Voici une vue de la fosse où est situé le compteur d'eau. Le tuyau polyéthylène Ø25mm alimentant le hangar a été coupé, et un raccord Ø25mm / 15/21, ainsi qu'un raccord 15/21 / PER Ø16mm permettent d'adapter les diamètres. Le tube PER bleu amène l'eau de pluie dans le sous-sol de la maison.

Heureusement, le tuyau polyéthylène Ø25mm était déjà pourvu d'un robinet d'arrêt, qui restera fermé bien entendu.

Il ne reste plus qu'à raccorder ce tube PER au circuit secondaire du sous-sol :

Le tube cuivre est coupé, en aval d'un robinet d'arrêt déjà présent. Un raccord olive Ø14 / 15/21 est utilisé, suivi d'un raccord 15/21 / PER Ø16mm. Quelques coudes PER Ø16mm ont été nécessaire pour suivre les murs.

3. Prix de l'installation

Le prix d'une telle installation peut varier fortement en fonction de la quantité d'eau stockée. Comme je l'ai expliqué dans l'article précédent, mon surpresseur a été réalisé en grande partie à l'aide d'éléments de récupération. Mais on peut tout de même détailler un peu plus. Les prix sont donnés pour une installation de 3000 litres :

  • surpresseur
    • surpresseur du commerce : entre 150€ et 500€
    • ou
    • surpresseur maison
      • raccords, manomètre, pressostat : 100€
      • pompe de surface : 100€ ou pompe immergée : 50€
      • filtres (optionnels) : 40€
      • ballon de chauffage (rouge) : 30€ ou ballon sanitaire (blanc) : 80€
  • cuves de stockage
    • 6 cuves rondes 500L : 360 € ou 3 cuves IBC 1000L : 540€
  • arrivée d'eau de pluie
    • 4m tube PVC Ø40 : 10€
    • adaptateur Ø25mm / 15/21 : 1€
    • vanne d'arrêt 15/21 : 8€
  • alimentation
    • raccords polyétylène + tube PER : 50€

Je laisse à chacun le soin d'estimer ses besoins.

Pour ma part, avec une pompe de récupération, l'installation a coûté environ 650€. Il faut bien entendu tenir compte de la consommation et du prix du m3 d'eau pour avoir une idée de la rentabilité.

Egalement, tout dépend de l'utilisation que l'on fait de cette eau de pluie. Depuis que je suis passé en double alimentation ma consommation moyenne d'eau du réseau est tombée à 50 litres / jour, alors qu'auparavant elle était plutôt de 150 litres / jour, ce qui équivaut à une baisse de 36m3 par an. Avec une moyenne de 4€/m3, cela représente une économie de 144€ par an. Le système devrait être amorti au bout de 4 ans et demi.

Pour rappel, mes consommations se répartissent ainsi : 

Eau du réseau : 

  • cuisine
  • vaisselle à la main
  • salle de bains, lavabo uniquement

Eau de pluie :

  • toilettes
  • douche
  • lave-linge
  • arrosage

4. Conclusion

Cette nouvelle installation a nécessité une grosse journée de travail. Elle devrait permettre de réaliser d'importantes économies d'eau.

Certains d'entre vous sont peut-être intéressés par une telle réalisation. Pour cela, il vous faut avant tout bien étudier le circuit d'alimentation en eau de l'habitation.

Dans les habitations assez récentes il est courant de rencontrer des collecteurs de distribution eau froide, eau chaude, souvent situés en sous-sol, ou en vide sanitaire. Il est alors facile de modifier le circuit et d'ajouter un collecteur supplémentaire pour le circuit d'eau de pluie, surtout quand on a affaire à des tubes PER ou multicouche :

J'avoue que j'ai eu la chance d'acquérir une maison qui disposait d'un circuit secondaire particulièrement adapté, de robinets d'arrêt bien placés, et j'ai pu réaliser cette alimentation sans grosses modifications, et à peu de frais.

Il ne me reste plus qu'à coller des étiquettes près des points d'eau alimentés en eau de pluie :

Rappelons-le : l'eau de pluie est impropre à la consommation humaine, malgré la présence de 3 filtres. Elle peut contenir des bactéries, mais également, elle ne contient aucun des minéraux nécessaires à notre organisme.

Pour finir, résumons les avantages d'une telle installation : 

  • économies d'eau
  • absence de dépôt calcaire dans les toilettes et le lave-linge
  • économie de lessive car l'eau douce ne diminue pas l'efficacité des détergents
  • absence de chlore et de calcaire dans l'eau d'arrosage, ce qui ne déplaira pas aux plantes

Cordialement

Henri


samedi 25 février 2023

Piloter une charge inductive


Piloter une charge inductive


Nous allons dans cet article revenir sur un aspect assez méconnu des débutants en électronique : la charge inductive, et les parasites qu'elle est susceptible d'engendrer. Ces dernières années je ne compte plus les interventions que j'ai pu effectuer, sur le forum ARDUINO, afin de résoudre ce genre de problème.

Malgré que j'aie déjà évoqué ce sujet à plusieurs reprises, il m'a semblé utile de rassembler dans un seul article les connaissances que j'ai pu accumuler sur les protections contre les surtensions.

Commençons par ma première expérience. Il y a trois ans j'avais présenté un projet de Micro-irrigation Automatisée.

Ce fut le premier projet sur lequel j'ai été confronté à des problèmes liés aux parasites générés par la commutation d'une charge inductive. La charge en question était une électrovanne motorisée 230V : 

Le moteur de l'électrovanne possède 3 fils :

  • neutre
  • fil d'ouverture
  • fil de fermeture

Il est piloté par un classique module à double relais :

De manière aléatoire, l'afficheur 4 lignes du montage affichait des caractères incompréhensibles, juste après une ouverture ou une fermeture de la vanne.

Après de longues recherches sur le WEB, j'avais appris que les parasites générés par la coupure d'un moteur 230V pouvaient perturber l'alimentation de l'ARDUINO. Dans mon cas, cette alimentation est pourtant est de qualité supérieure, une MEANWELL IRM-05-5.

Et j'avais résolu le problème en adoptant un snubber : 

Nous allons examiner les différents cas qui peuvent être potentiellement problématiques.

1. Quel type de charge ?

Tout d'abord, qu'est ce qu'une charge inductive ? Il s'agit de tout type de charge comportant une inductance (un bobinage) :

  • un moteur
  • une électrovanne
  • un électroaimant ou solénoïde
  • un relais ou un contacteur
  • un distributeur pneumatique
  • etc.
Lors de la coupure du courant dans l'inductance, une surtension apparaît aux bornes de celle-ci et peut être véhiculée à travers une alimentation et perturber la tension de sortie de celle-ci, allant jusqu'à planter un microcontrôleur alimenté par celle-ci.

2. Oscillogrammes

J'ai déjà publié ces oscillogrammes dans cet article

On voit ici la surtension de 100V produite sur le collecteur du transistor de commande d'un relais 5V lors de la coupure.

On voit également des perturbations énormes sur la ligne d'alimentation 5V : jusqu'à 1.5V aussi bien en positif qu'en négatif pendant 100µs.

Ces perturbations pourraient facilement provoquer le plantage d'un microcontrôleur ou d'un module.

Avec une diode de roue libre ces surtensions disparaissent :

Tension sur le collecteur

Tension d'alimentation 5V

3. En courant continu

Lorsque l'on a affaire à une charge inductive fonctionnant en courant continu, la diode de roue libre est la solution.

3.1. Pilotage à l'aide d'un transistor

Ici elle est mise en place, cathode au +5V, donc en inverse, aux bornes de la bobine d'un relais. On choisit de préférence une diode rapide du type 1N4148.

Pour un moteur, une électrovanne, etc. le câblage est identique : 

Le transistor peut être un MOSFET : 

Remarque : tous les modules relais du commerce sont équipés de cette diode :

Si l'on adopte un relais nu, on devra ajouter cette diode, comme sur le schéma ci-dessus.

3.2. Pilotage à l'aide d'un relais

Qu'en est-il si l'on pilote un moteur ou une électrovanne à l'aide d'un relais nu ? La solution ne diffère pas, chacun est équipée de sa diode de roue libre :

3.3. Pilotage à l'aide d'un pont en H

Un transistor ou un relais n'est pas le seul moyen de piloter un moteur continu. Un moteur continu peut également être piloté à l'aide d'un pont en H, permettant de le faire tourner dans les deux sens.

Là encore, la majeure partie des ponts en H sont équipés de diodes de roue libre : 

Ci-dessus le schéma simplifié de l'électronique interne d'un L293D montre 4 diodes. Mais encore faut-l ne pas se tromper de modèle, car un L293 (sans le D) n'en possède pas.

Lire la datasheet d'un circuit de pont en H est indispensable.

4. En courant alternatif

Il est arrivé sur un de mes projets que la coupure d'un réfrigérateur fasse planter un montage à base de STM32. Le montage est alimenté par une alimentation 5V USB, branché sur une prise 230V proche de celle du réfrigérateur. Le simple fait de changer de prise 230V a fait disparaître le problème. Cette deuxième prise 230V est située de l'autre côté de la pièce, et est alimentée par une ligne 230V séparée de la première. Les deux lignes partent pourtant du même disjoncteur dans le tableau principal. On peut en déduire deux choses :

  • la longueur des fils 230V semble avoir un effet positif sur les parasites
  • comme le réfrigérateur est à l'origine du problème, on peut douter de la qualité de ses circuits antiparasites. Il faudrait ajouter un circuit supplémentaire sur le moteur.

En courant alternatif, une diode de roue libre ne va pas être utilisable, car elle serait détruite instantanément par les alternances négatives. Il faut utiliser un snubber.

4.1. Relais

Ici on voit un relais 5V continus, équipé de sa diode de roue libre, et un moteur 230V et son snubber.

Le snubber est constitué d'un condensateur (C2) et d'une résistance (R10) en série, autrement dit un couple RC. Il va absorber la surtension lors de la coupure du moteur. Le condensateur est en général du type X2 (auto-cicatrisant) :



Une varistance 275V peut être utilisée en lieu et place du couple RC :


Des modules tout faits, combinant les deux solutions (couple RC + varistance), existent :

4.2. Où placer le snubber

A noter : on pourrait penser que le snubber peut être placé directement en parallèle sur le contact du relais, plutôt qu'en parallèle sur la charge : 

Théoriquement, oui, mais il y a un effet secondaire : un courant de fuite de quelques mA va circuler dans la charge, à travers le snubber, et cela peut être gênant.

Schéma de gauche : si le contact est ouvert aucun courant ne circule.

Schéma de droite : si le contact est ouvert un léger courant circule à travers le snubber et le moteur.

On peut facilement le calculer. Calculons l'impédance du condensateur :

X = 1 / (2 * Pi * F * C) = 1 / (2 * 3.14 * 50 * 0.0000001) = 31847Ω

En ajoutant la résistance de 100Ω : 31947Ω

Imaginons que la charge soit la bobine d'un contacteur. La résistance de celle-ci peut avoir une valeur similaire, une 30aine de KΩ. 

Ce qui donne un courant de 230V / 60KΩ = 3.8mA

Ce courant peut être suffisant pour activer le contacteur s'il est très sensible. On l'a déjà vu, par exemple ici :

https://forum.arduino.cc/t/commande-pompe-piscine-via-arduino-et-relais/959401/42

Si la charge est un petit moteur, ce courant peut être suffisant pour entraîner sa rotation.

Il vaut donc mieux placer le snubber en parallèle sur la charge.

4.3. Contacteur

Un contacteur est aussi une charge inductive. Si l'on utilise un contacteur pour piloter un moteur, chacun d'eux devra être équipé d'un snubber :

Ici il s'agit d'un contacteur à bobine 230V. Il possède son propre snubber, le moteur également. Si le contacteur est un modèle à bobine 24V ou 48V cela ne change rien au problème, le snubber est indispensable.

Remarque : certains contacteurs sont équipés d'origine d'une varistance en parallèle sur la bobine, par exemple ce modèle de chez Finder :

Il est à noter que la plupart des contacteurs sont bipolaires, ce qui permet de couper phase et neutre, apportant ainsi une sécurité supplémentaire. Il sont de plus beaucoup plus robustes qu'un petit relais chinois, et peuvent piloter de gros moteurs.

5. Conclusion

J'espère que ce petit article vous aura persuadé que les surtensions provoquées par des solénoïdes sont maîtrisables, et que vos chères alimentations, même si elles sont bien régulées et de qualité ne sont pas des protections suffisantes.


Cordialement

Henri


jeudi 19 janvier 2023

Audio : Caisson de Basses 38cm (version table basse)

 


Audio : Caisson de Basses 38cm

(version table basse)


Bonjour. Aujourd'hui nous allons laisser de côté les ARDUINOs et autres ESP32 et STM32 pour une petite évasion vers ce qui reste ma passion principale : la musique et l'audio.

J'avais présenté il y a un peu plus de deux ans deux caissons de basses passifs équipés l'un d'un haut-parleur de 38cm, l'autre d'un 31cm :

Audio : Caisson de Basses 38cm

Audio : Caisson de basses ONKEN

Suite à un déménagement récent, il s'avère que ces caissons sont plutôt encombrants pour mon nouveau séjour. Le caisson ONKEN étant destiné à une future salle dédiée musique, j'envisage de reprendre le caisson de 38cm pour en faire une table basse de salon.

Certains fabricants proposent des caissons pouvant servir de table basse de salon, comme l'ancien 3A TR800 : 

Pourquoi ne pas en faire autant ?

Comme il s'agit ici de reprendre le haut-parleur BEYMA 15MC500 du projet précédent, la table basse risque d'être volumineuse :

Le caisson précédent avait un volume de 176 litres. Ce volume est idéal pour ce haut-parleur en bass-reflex, il n'y a aucune raison d'en changer.

La feuille de calcul précédente a été reprise : 

https://bitbucket.org/henri_bachetti/bass-reflex-cabinet

La nouvelle feuille se nomme Calcul_Bass-Reflex-BEYMA-15MC500-table-basse.ods

1. Calculs

Si l'on veut réaliser une table basse d'une hauteur assez conventionnelle, il est assez difficile d'envisager plus de 50cm de hauteur. Avec une largeur et une longueur de 80cm, cela conduit à une hauteur de caisson de 33cm. Si l'on ajoute des pieds de 17cm, la hauteur totale est de 50cm.

La feuille de calcul citée précédemment permet de jouer avec les dimensions, afin d'adapter au mieux la géométrie de la table aux besoins de chacun.

Le BEYMA 15MC500 a une hauteur de 156.5mm. Il ne s'agit pas de fabriquer une table dont la hauteur interne serait inférieure à cette cote. D'autre part il va falloir caser les évents bass-reflex dans cet espace restreint.

Le calcul donne une longueur d'évent de 23.1cm. Le matériau que j'ai choisi est du MDF 28mm d'épaisseur. Sur 33cm de hauteur, il reste peu d'espace entre l'extrémité des évents et le fond du caisson : 

E = 330mm - 231mm + 28mm = 127mm

C'est assez peu par rapport au diamètre des évents : 100mm. C'est pour cette raison que j'ai choisi d'opter pour des évents coudés.

2. Réalisation

Comme dit plus haut, le matériau choisi est du médium de 28mm. Les cotes des panneaux sont les suivantes : 

  • faces dessus et desssous : 80cm x 80cm
  • côtés : 80cm x 33cm
  • côtés : 85.6cm x 33cm

Encore une fois, la feuille de calcul citée précédemment permet d'adapter le projet à ses propres besoins, de choisir une épaisseur de matériau, une largeur et une longueur différentes.

D'autres matériaux peuvent être choisis, du contreplaqué multi-plis de bouleau pas exemple, qui paraît-il est ce qui se fait de mieux pour ce genre d'application.

Les panneaux sont collés et vissés à l'aide de vis de 5mm x 70mm. Cette longueur peut sembler trop importante mais le MDF est un matériau assez fragile et il vaut mieux avoir une longueur de vissage importante. Si l'on utilise une visseuse, il faut faire très attention en fin de vissage, ne pas forcer exagérément afin de ne pas provoquer de rupture du matériau. Il est également conseillé de faire des avant-trous. L'article précédent donne des conseils utiles.

3. Photos

Voici quelques photos de la réalisation : 

Une ouverture de 35cm est pratiquée dans la face inférieure pour loger le haut-parleur.

Chaque évent est constitué d'un petit morceau de PVC de diamètre 100mm, de 80mm de longueur, et d'un coude à 90° de 100mm, assemblés à la colle PVC. La longueur totale doit être de 231mm, mesurée dans l'axe de l'évent. Il est impossible bien entendu de mesurer physiquement cette longueur. On peut l'obtenir simplement en faisant la moyenne de la longueur externe (le grand virage) de l'évent et de la longueur interne (le petit virage).

L'assemblage du tube et du coude que j'ai utilisé a une longueur interne de 20cm, et une longueur externe de 33cm, ce qui donne une longueur médiane de :

L = (33 + 20) / 2 = 26.5cm

Il faut donc recouper le coude :

l = 265 - 231 = 34mm

Cette recoupe n'est pas encore réalisée sur la photo.

Les pieds de la table sont constitués de 4 morceaux de madrier de section 10cm x 10cm de 17cm de longueur, fixés par l'intérieur à l'aide de vis de 5mm x 70mm.

Les évents sont mis en place, puis la plaquette support pour le bornier : 


Pour terminer, le BEYMA 15MC500 est relié au bornier par un câble de section 4mm², et fixé au caisson à l'aide des 8 vis fournies.

La table basse est prête pour l'apéritif :

L'amplificateur utilisé est le modèle 2.1 décrit ici :

Audio : Amplificateur TPA3116 classe D 2.1

Les enceintes sont celles-ci :

Audio : Enceinte Supravox 215 RTF64

Et quoi de mieux pour tester l'ensemble que d'écouter EXODUS de Bob Marley ?

4. Conclusion

Le résultat est à la hauteur du précédent caisson. Il ne reste plus qu'à démonter celui-ci pour la finition. Je pense à de la laque, et à une plaque de verre de 6mm d'épaisseur, posée sur des petits patins de silicone, pour couvrir la table.

Pour le côté audio, il reste bien entendu à faire certains réglages, comme d'habitude, à l'aide du logiciel REW, car on ne remplace pas un caisson par un autre, surtout dans une salle d'écoute différente, sans un minimum de mesures : 

REW : Faire des Mesures en Audio

Un dernier détail : le caisson complet pèse 55Kg. Si vous envisagez ce genre de réalisation il faudra vous faire aider pour le déplacer de votre atelier à votre salon.


Cordialement

Henri


jeudi 29 décembre 2022

STM32 BLUE PILL vs ARDUINO NANO

 


STM32 BLUE PILL vs ARDUINO NANO


Bonjour, aujourd'hui nous allons examiner de plus près la carte BLUE PILL, équipée d'un microcontrôleur STM32F103C8T6.

J'avais déjà parlé de cette carte ici :

STM32 et ARDUINO

A mon sens, la BLUE PILL est une carte très avantageuse par rapport à l'ARDUINO NANO.

Ce tableau décrit les possibilités du STM32F103C8T6 48 pins. D'autres modèles plus puissants intègrent plus de mémoire FLASH, plus de périphériques, etc.

FonctionARDUINO NANOBLUE PILL
Broches3040
Processeur8 bits32 bits
Alimentation du microcontrôleur5V2V - 3.6V
Horloge16MHz72MHz
Mémoire FLASH32Ko64Ko
Mémoire RAM2Ko20Ko
Mémoire EEPROM1Ko4Ko (1)
GPIOs22 (6 PWM)32 (15 PWM) (2)
UARTs13
I2C12
SPI12
CAN01
USB01
JTAG01
ADC1 ADC 10 bits2 ADC 12 bits

(1) l'EEPROM est émulée en mémoire FLASH, comme sur un ESP32.

(2) les GPIOs sont tolérantes au 5V, il n'y a donc pas lieu d'ajouter des protections particulières.

Les 20Ko de RAM sont un avantage certain. Lorsque je développe du logiciel sur une NANO, je suis plus souvent confronté à un manque d'espace en RAM (données) qu'à un manque d'espace en FLASH (programme).

Egalement, la présence de 3 UARTs dispense d'utiliser des objets du genre SoftwareSerial, peu performants, lorsque l'on désire intégrer des périphériques du genre modem, BlueTooth, DfPlayer.

Le prix de la BLUE PILL est sensiblement équivalent à celui de l'ARDUINO NANO sur AliExpress. C'est dire si j'envisage sérieusement de l'utiliser en lieu et place de l'ARDUINO NANO dans mes projets.

Nous allons tout d'abord étudier la carte, et surtout sa mise en oeuvre.

1. La librairie STM32DUINO

Si l'on veut travailler avec la même facilité qu'avec l'ARDUINO, il faut installer un gestionnaire de cartes supplémentaire, comme pour un ESP32. Pour cela, dans l'IDE ARDUINO, il faut ouvrir les préférences (menu Fichiers / Préférences) et ajouter l'URL suivante (URL de gestionnaire de cartes supplémentaires).

https://github.com/stm32duino/BoardManagerFiles/raw/master/package_stmicroelectronics_index.json

Si ce champ comporte déjà une ou plusieurs URLs, il faudra utiliser un séparateur, qui est la virgule.

2. Les connecteurs

2.1. Le connecteur USB

Ce connecteur est bien relié aux GPIOs PA11 et PA12, comme prévu dans la datasheet. On pourrait penser que l'on peut l'utiliser comme le port USB de l'ARDUINO NANO (chargement du code, moniteur série), mais il n'en est rien.

En effet, pour que l'USB soit utilisable pour le chargement du code, il faudrait qu'il soit initialisé par un bootloader. Or il n'y a pas de bootloader prévu pour cette carte. Le chargement est bien réalisé par un bootloader mais il est interne au microcontrôleur, et utilise l'UART1 (PA9 & PA10).

Certains ont cependant écrit un bootloader : https://how2electronics.com/stm32-bootloader-programming-usb/

2.2. UART1 : PA9 et PA10

Ces deux broches permettent le chargement du code. Il faut sélectionner les bonnes options dans le menu Outils :
  • Type de carte : Generic STM32F1 series
  • Board part number : BluePill F103C8
  • Upload Method : STM32CubeProgrammer (Serial)

Ensuite le raccordement de la carte est simple. Il requiert un convertisseur USB / Série : 

Il faut bien entendu utiliser un modèle de convertisseur adapté au 3.3V, comme celui-ci, qui est équipé d'un cavalier permettant de choisir entre 5V et 3.3V :

FT232RL 5V/3.3V

Remarque : si la carte est alimentée par le connecteur USB ou la broche 5V, le fil rouge est inutile.

Avant le chargement il faut déplacer le cavalier boot0 de la carte BLUE PILL sur 1. Avant chaque chargement du code il faudra appuyer sur le bouton RESET.

Si l'on veut que la carte démarre directement l'application, il faudra replacer le cavalier boot0 sur 0.

2.3. Le connecteur SWD

Le connecteur à 4 broches en bout de carte peut être relié à un boîtier ST-LINK, afin de charger le code : 




Le câblage se fait avec 4 fils seulement : 3.3V, GND, SWDIO, SWDCLK.

La vitesse de chargement est supérieure à celle de la liaison série, et il n'y a pas besoin d'appuyer sur le bouton RESET.

Il faut sélectionner les bonnes options dans le menu Outils :
  • Type de carte : Generic STM32F1 series
  • Board part number : BluePill F103C8
  • Upload Method : STM32CubeProgrammer (SWD)

Le boîtier ST-LINK a un autre avantage : il peut permettre de deboguer son application à l'aide d'un debugger, GDB par exemple.

2.3. Moniteur série

Que l'on utilise l'une ou l'autre méthode de chargement, le moniteur série (Serial) utilise l'UART1, donc PA9 et PA10. L'utilisation d'un boîtier ST-LINK ne dispense donc pas de l'achat d'un convertisseur USB / Série si l'on veut afficher des informations sur le moniteur série.

2.4. Alimentation

La carte peut être alimentée de plusieurs manières : 

  • par le connecteur USB, en 5V. La broche 5V, dans ce cas, fournira cette même tension
  • par la broche 5V de la carte
  • par la broche 3.3V de la carte
  • par le convertisseur USB / série. On connectera la broche VCC à la broche 3.3V de la carte
  • par le boîtier ST-LINK. On connectera la broche VCC à la broche 3.3V de la carte

Si la carte est alimentée par l'USB ou la broche 5V, le 3.3V nécessaire au STM32 est fourni par un régulateur RICHTEK RT9193, un bon régulateur LDO, capable de fournie 300mA. Son courant de repos est de 90µA.

Contrairement à une carte ARDUINO il n'y a aucune protection par diode entre le 5V USB et la broche 5V. Cela veut dire que si l'on alimente la carte par la broche 5V, et que l'USB est branché, le 5V de la carte est directement relié au 5V USB. Il peut y avoir danger si les deux tensions sont vraiment différentes.

3. L'ADC

Par rapport à l'ADC de l'ARDUINO, celui de la BLUE-PILL est assez différent :

  • la tension de référence est de 3.3V, la tension d'alimentation du microcontrôleur
  • la résolution est supérieure : 12 bits, donc 4096 points, au lieu de 1024
  • le temps d'échantillonnage est nettement inférieur
  • la broche AREF n'existe pas, sauf sur de plus grosses cartes

3.1. Résolution

La résolution d'un ATMEGA328P est de 10 bits, contre 12 bits pour le STM32, ce qui produira des mesures 4 fois plus précises.

3.2. Temps d'échantillonnage

Le temps d'échantillonnage du STM32 est largement inférieur à celui d'un ATMEGA328P :
  • 740000 samples/s au maximum pour le STM32F401, assez proche du STM32F103C8T6
  • 38470 samples/s pour l'ATMEGA 328P en poussant l'horloge de l'ADC au maximum
On constate aisément que la vitesse d'acquisition sera nettement supérieure avec un STM32.

4. Exercice

Je propose de construire un petit voltmètre, équipé d'un afficheur 4 digits à 7 segments du genre TM1637.

4.1. Schéma

Le schéma est réalisé à l'aide de KICAD :

Le montage est alimenté par le connecteur USB, car le TM1637 a besoin de 5V pour pouvoir fonctionner.

Le chargement du code peut se faire via le connecteur SERIAL ou par le connecteur SWD en bout de carte.

L'entrée à mesurer peut recevoir une tension variable entre 0V et 3.3V (un simple potentiomètre suffit).

Si l'on désire mesurer des tensions plus importantes, il suffit d'utiliser un pont diviseur à résistances :

U2 = U * R2 / (R2+R1)

4.2. L'IDE ARDUINO

Il faut bien entendu installer le package STM32DUINO, si ce n'est pas déjà fait.

Ensuite il faudra installer la librairie suivante :

TM1637 : https://github.com/RobTillaart/TM1637_RT

Celle-ci est installable depuis l'IDE ARDUINO.

Pour récupérer le projet voir plus bas :  4.3. Téléchargements.

4.3. Le code

Le code ressemble beaucoup à ce que l'on pourrait écrire si la carte était une NANO, aux définitions des GPIOs près : 

bluepill-voltmeter.ino

Le croquis utilise 21332 octets (32%) de l'espace de stockage de programmes. Le maximum est de 65536 octets.

Les variables globales utilisent 852 octets (4%) de mémoire dynamique, ce qui laisse 19628 octets pour les variables locales. Le maximum est de 20480 octets.

Comme on peut le constater, le code occupe un espace bien supérieur au même code compilé pour l'ARDUINO NANO : 

Le croquis utilise 4896 octets (15%) de l'espace de stockage de programmes. Le maximum est de 30720 octets.

Les variables globales utilisent 331 octets (16%) de mémoire dynamique, ce qui laisse 1717 octets pour les variables locales. Le maximum est de 2048 octets.

Ceci est dû au fait que le STM32F103C8T6 est un microcontrôleur 32 bits, mais probablement aussi à la librairie STM32DUINO.

Mais, qu'il s'agisse de mémoire FLASH ou RAM, la quantité restante est supérieure à celle qu'offre la NANO : 

  • FLASH : 44204 octets
  • RAM : 19628 octets
Nous serons donc beaucoup plus à l'aise pour développer de grosses applications, ou utiliser des librairies de taille conséquente.

4.4. Téléchargements

Pour télécharger le projet : https://bitbucket.org/henri_bachetti/bluepill-voltmeter

Cette page donne toutes les informations nécessaires :

https://riton-duino.blogspot.com/p/migration-sous-bitbucket.html

5. Photos


En haut : le convertisseur USB / Série.

A gauche : la BLUE PILL.

A droite : L'afficheur TM1637.

Au milieu : le petit potentiomètre bleu permettant d'ajuster la tension à mesurer.

Le multimètre affiche 3.034V, alors que le montage affiche 3.014V.

Ceci est dû au fait que je n'ai pas mesuré la tension de 3.3V produite par la carte. Or elle vaut 3.33V, contre 3.31V dans le code. En corrigeant cette petite erreur, tout rentre dans l'ordre.

A ce sujet, il faut rappeler que le STM32F103C8T6 possède bien une broche AVDD, permettant de fixer la tension de référence analogique. Mais sur la BLUE PILL, cette broche est reliée au 3.3V. Pour faire des mesures précises, il convient donc de mesurer cette tension avec un multimètre suffisamment précis.

6. Conclusion

Ces cartes, une fois bien prises en main, ont un potentiel comparable à celui de l'ARDUINO NANO, et même largement supérieur si l'on veut profiter des possibilités supplémentaires : 

  • grande quantité de mémoire
  • plusieurs liaisons série
  • double bus I2C, SPI
  • etc.


Cordialement

Henri