Pages

dimanche 22 mars 2020

Utiliser une batterie 16xxx avec dispositif de charge

De nombreux montages électroniques doivent être alimentés de façon autonome car bien souvent, ce sont des systèmes embarqués sans source d'alimentation comme le secteur. Bien entendu, dans certains cas, on peut ajouter un panneau solaire mais il y a toujours (ou presque) une batterie.

L'arrivée massive des batteries 16xxx, comme la 18650 ou la 18340, a fait exploser les possibilités de fabriquer des montages autonomes. Mais quid de la recharge ? Souvent, il faut démonter, placer la batterie dans un chargeur et remonter.

Ici, je vais présenter le bien connu (des bidouilleurs)  TP4056 monté sur une carte HX-107 (c'est la dénomination commerciale que je possède).

Afin de simplifier au mieux cet article, je ne vais pas décrire le TP4056, ce n'est pas le but.

Remarque importante : cet article montre l'alimentation pour un montage fonctionnant sous 3.7V. Pour travailler sous 5V, il faut ajouter un module que je présenterai dans un autre article.

Je vais juste montrer l'usage du module de charge :


Sur mon module, une LED rouge indique la charge et une bleue indique que la charge est finie.

 Le câblage :

Exemple de montage :


 Et à l'usage :




Et voilà ! Parfait pour un projet !

Rappel : le dispositif ne doit pas être utilisé pendant la charge !




samedi 21 mars 2020

Afficher la température sur un écran Oled avec un ATtiny85 et un 18b20

Cet article va montrer comment afficher une température sur un écran Oled (SSD1306) à partir d'un capteur 18b20 et le tout géré par un ATtiny85.

Le câblage :

On peut constater que c'est assez minimaliste, si tout cela se trouvait sur un circuit imprimé, il pourrait ressembler à ça (ici, le microcontrôleur est un ATtiny45, c'est le même boîtier que le 85 mais je ne l'ai pas sur Target3001 ;-)) :

(Il est préconisé de mettre un condensateur de 0.1uF aux bornes de l’alimentation du microcontrôleur mais je ne l'ai pas mis pour faire plus simple)

Le programme :

J'ai utilisé la librairie Tiny4kOLED disponible dans le gestionnaire de l'IDE Arduino ou alors vous pouvez aller ici : https://github.com/datacute/Tiny4kOLED
Je l'avoue, je me suis aussi aidé de cette page : https://www.studiopieters.nl/attiny85-oled-i2c/


Initialisation :
Setup :
Loop :

Résultat :

Et voilà !

Attention, ce programme complet occupe 88% de la mémoire (il y a 4 librairies à utiliser, c'est normal). On va l'adapter dans un prochain article....



dimanche 15 mars 2020

Utiliser TinkerCad en conception 3D

Après les premiers articles sur TinkerCad Circuit, je présente la partie Conception 3d. Il existe une multitude de tutos sur ce module mais voilà, j'en produit un aussi ;-).

Tinkercad C3d ne doit absolument pas être comparé à SolidWorks, Fusion 360 ou Freecad..... !
Il ne faut pas dire "il est nul, il n'est pas complet, il n'est pas assez puissant !". En effet, il n'est pas conçu pour remplacer les poids-lourds mais pour réaliser des conceptions simples et rapides.

Vous avez déjà vu sur ce blog comment s'inscrire et ouvrir un circuit électrique, je ne reviens pas dessus.

Passons directement à la démonstration (désolé pour la voix un peu malade...) :

Le b.a.-ba :





Un mini-mini-mini-projet :





Et l'export vers Cura :



 Résultats :




 Pas mal ? Non ? ;-)
Et sans trucages !!!!



Prochain article : la règle et une conception plus élaborée...

lundi 9 mars 2020

Utiliser un port série avec un ATtiny 85

Utiliser une carte Arduino (Uno, Mega...) pour développer un projet est idéal. C'est ce qui a fait son succès. Cependant, parfois, l'utilisation du microcontrôleur seul suffit. Or, si on veut utiliser, par exemple, l'Atmega328, le microcontrôleur de la Uno, il faut penser oscillateur, alimentation, et encombrement.
Une autre possibilité s'offre à nous si on a besoin d'un système minimal : la gamme ATtiny. Des microcontrôleurs optimisés pour un usage "portable", entre autre.

Nous allons utiliser ici un Attiny 85 (image : http://www.atomsindustries.com/p1005):


Cet article va vous montrer comment utiliser un port série avec ce microcontrôleur alors qu'il n'en est pas équipé (pas un UART comme une carte Arduino "classique").

Au préalable, il faut installer dans le gestionnaire de cartes de l'IDE ceci :
http://drazzy.com/package_drazzy.com_index.json

C'est le lien correspondant au gestionnaire de la librairie développée par Spence Konde (https://github.com/SpenceKonde/ATTinyCore).

Aller dans Fichier puis préférences et cliquer au niveau de la flêche :
 Coller le lien ci-dessus ici :
Ceci fait, vous pouvez accéder à cela (juste choisir ATtiny85 et RIEN d'autre, tout par défaut) :

 Par contre, avant de pouvoir utiliser notre MC, il faut lui téléverser le bootloader correspondant aux librairies.

L'idéal est d'utiliser un programmateur comme ceci (Tiny Programmer de SparkFun, photos SparkFun) :

Une fois que le MC est sur le support (attention au sens), connecter le programmateur à un port USB (reconnu automatiquement sous W10).
Vérifier que vous avez bien le bon programmateur dans l'IDE :
 Maintenant, cliquer sur "Graver la séquence d'initialisation" (cela prend quelques secondes) et c'est bon, le MC est paré !

Saisir ce petit programme :

 Le même sous Visual Studio Code :

et le téléverser dans le MC avec le même programmateur.
Après quelques clignotements de la DEL, le programme est bien envoyé !

Vérification du fonctionnement :

J'ai câblé mon MC ainsi avec juste un convertisseur UART-TTL USB :

Le +5v sur la broche 8
le GND sur la broche 4
Le RXD du convertisseur sur la broche 5

ET ??????


Franchement, cela ouvre bien des perspectives, surtout en projet.....

Bientôt une suite....;-)


samedi 29 février 2020

Utilisation basique de Folium sous Python

Folium est une librairie (ou module) Python permettant de travailler en cartographie, à partir de OpenStreetMap. On peut ainsi, avec juste quelques lignes de code, afficher dans une page Web une carte avec des options.

Par exemple, ces trois lignes :

Donnent cela :

Vous ne le voyez pas, mais on est centré sur la Tour Eiffel ! Si Si !!!

Détails sur ce script :
  • ligne 1 : On importe le module folium (à condition qu'il soit déjà installé, bien sur, sinon, voir partie correspondante ci-dessous...)
  • ligne 2 : on crée la carte sous une variable en instanciant un objet et en incluant les coordonnées GPS en degrés décimaux
  • ligne 3 : on demande à folium d'enregistrer la carte "sous". Ici, c'est ma clef USB f: et dans le répertoire SNT à la racine. Pour ouvrir la carte, on clique dessus comme un raccourci Web, cela ouvre votre navigateur par défaut.
Note : Si vous utilisez Edupython, folium est déjà intégré.
 Si Folium n'est pas sur le système, voici comment faire avec Thonny (C'est la méthode PIP mais simplifiée dans Thonny)  :

Aller dans "Outils" et "Gérer les plugins" :
Cette fenêtre apparaît : En théorie, folium n'est pas dans la liste à gauche :
Saisir folium puis cliquer sur le bouton :

C'est bien ce que l'on cherche ! On clique sur "Installer" :
Et voilà ! folium est installé, on peut fermer la fenêtre !

 Il est possible de changer le zoom de la carte en ajoutant un argument lors de la création :
L'argument saisi donne un certain zoom, bien sûr, on peut le changer...


Alors, j'avais pas raison ???? C'est bien la Tour Eiffel !

Pour le montrer à la Terre entière, on va ajouter un marqueur. Cela est on ne peut plus facile !

On veut ceci :
 on saisi la ligne 3 entre la 2 et la 4 :
On a bien les mêmes coordonnées mais là, c'est pour le marqueur.
Bien sûr, on peut autant de marqueurs que l'on veut...

On peut aussi ajouter une légende au marqueur :
 Il a juste fallu changer la ligne 3 avec :


Folium permet également de tracer des itinéraires :
 Le script correspondant :


Il est possible également d'automatiser l'ouverture de la carte à l'excution du script en insérant juste deux lignes :

  •  en ligne 2, on importe le module webbrowser qui gère la navigation Web
  •  en ligne 13, on demande au module d'ouvrir le fichier HTML, avec le navigateur par défaut,  correspondant à la carte, c'est tout !
 A vous de jouer !

jeudi 27 février 2020

Utiliser simplement une jauge de masse et un HX711

Cet article présente, le plus simplement possible, l'utilisation d'une jauge de masse et d'un module HX711.
Ce module est un pont de Wheatstone (non présenté dans cet article) couplé à un convertisseur analogique-numérique de 24 bits.

Aspect physique :

En règle générale, les produits "asiatiques" sont comme ceci (image Banggood) :
Le fabricant Sparkfun propose ce modèle :
 Et DFROBOT celui-ci :

Le montage de test de cet article :

Et pour faire joli (et pour mettre en conditions réelles), j'ai imprimé des pièces à partir de ce modèle :

Mon montage :




La librairie que j'ai utilisée est ici : https://github.com/bogde/HX711
 
Le programme ci-dessous est la version très édulcorée du fichier full_example.ino disponible avec la librairie.
 
 

Ce fichier est téléchargeable ici

Le programme est assez simple et le commentaires sont suffisants pour comprendre le principe.
Cependant, des explications sont nécessaires pour la ligne 16 :

La valeur "895" n'a pas été trouvée par hazard, celle-ci est déterminée par tests succéssifs.
Au départ, on lance le programme, balance à vide (juste avec son montage imprimé) et on lit la valeur en console. Celle-ci peut sembler aberante mais c'est normal, la balance n'est pas tarée. Il faut utiliser des objets, au préalable, pesés. Ainsi, on en connait les masses.
Il suffit de poser un objet sur la balance, et de lire la valeur en console. Ensuite, on change la valeur de la ligne 16, en plus, ou en moins, par tâtonnement (attention, il faut téléverser à chaque fois (et penser à retirer l'objet à chaque téléversement)).
Une fois que la masse affichée est au plus prêt de la masse de l'objet connue, le réglage est terminé. On peut obtenir facilement une précision de +/- 1g.

Vous trouverez sur Internet d'autres possibilités : utiliser la console série et entrer des valeurs à la volée ou utiliser +- pour augmenter ou diminuer le coefficient. Il y a aussi le montage avec un potentiomètre qui tare en temps réel en utilisant une entrée analogique (à venir) .

Exemples :