Mesure de capacité avec la méthode de la constante de temps # La méthode de la constante de temps est une technique courante pour mesurer la capacité d’un
condensateur. Elle repose sur le principe de charge et de décharge du condensateur dans un
circuit RC (résistance-condensateur).
Principe de la méthode # Charger le condensateur: On connecte le condensateur à une source de tension constante U0 pendant un temps suffisamment long pour qu’il se charge complètement. La tension à ses bornes atteint alors U0. Décharger le condensateur: On déconnecte la source de tension et on relie le condensateur à une résistance R. Le condensateur se décharge alors graduellement à travers la résistance. Mesure de la tension: On mesure la tension aux bornes du condensateur en fonction du temps pendant la décharge. La tension aux bornes du condensateur suit une loi exponentielle décroissante décrite
Un nouveau mode d’utilisation des librairies a été mis en place dans la version 5.0.1 de PlatformIO.
Lorsque vous développez un projet et que vous avez besoin d’une librairie, vous pouvez procéder de la manière suivante :
Allez dans le menu principale et sélectionner l’onglet verticale Librairies
Puis recherchez votre librairie, par exemple horloge DS3231
Une fois que vous avez trouvé la librairie qui vous intéresse, cliquez dessus et vous y verrez ces caractéristiques :
Les machines qui doivent enregistrer des informations avec précision se doivent d’avoir une source (ou mieux : plusieurs) sources de temps.
Dans un domaine que je connais particulièrement bien, il y a les carrefours à feux. L’horloge interne est pilotée par des sources de temps, qui sont étagées de la plus à la moins précise :
La centrale de trafic Le GPS L’horloge radio DCF Le quartz du CPU Le 50 Hz du secteur Si la source de temps ne délivre pas son signal, on se rabat sur la source inférieure. C’est certes un cas extrême.
Dans les entrés sorties, les boutons, switchs et autres commutateurs doivent être traités en entrée par logiciel. Il y a plusieurs besoins : traiter le sens de la lecture, des rebonds, et de la répétition. Et on peut y ajouter : le rafraichissement de la scrutation (scan) pour maintenir à jour l’état du bouton.
Dans cet article, on examine une proposition de définitions étagées, et la création d’un objet simple qui permet d’obtenir un code élégant et performant. Le code présenté est prévu pour Arduino ; mais transposable pour d’autres cibles.
Introduction LED (image: Adafruit) Quelles peuvent être les niveaux de complexité d’un système (ou d’une combinaison de systèmes) permettant de faire clignoter, ou commuter une LED ? Voici un petit aperçu de ce que l’on pourrait voir comme une progression se pliant aux besoins (voir les devançant…) de l’utilisateur.
Niveau 0 Montage NE555 – exemple Une LED clignote avec une électronique : un chip 555, associé à 2 résistances et un condo pour la base de temps du clignotement.
Préambule Grâce au montage basé sur un Arduino Yun, je peux monitorer en quasi temps réel par un échantillonnage toute les 10 minutes, l’état du volume de l’eau chaude sanitaire (ECS). Ces données sont enregistrées : un fichier par mois, comprenant une ligne par mesure. On a, séparé par TAB pour un copier-coller facile dans Excel:
Date, année/mois/jour Temps, heure : minute :seconde Marche de la pompe des panneaux solaires, en pourcent Température de retour des panneaux solaires Température du volume d’eau solaire (ES) Température du volume d’eau chaude sanitaire Le système est décrit ici : https://microclub.ch/2014/10/11/yun-monitoring-de-leau-solaire/
Dans les publications d’Elektor, je me suis laissé tenter par la proposition de deux ouvrages:
C programming with Arduino, de Warwick A. Smith, 343 pages Embedded Linux Control Center, de Hans Henrik Skovgaard, 450 pages Les deux sont dans la catégorie « learn » (il y a « design » et « share » ). Et vous l’aurez compris, ils sont en anglais. Petite revue et opinion.
1 – C programming with Arduino # Avec Arduino, vraiment? # ‘est la question qu’on peut se poser avec le premier livre; mais le préambule du titre est « AVR Microcontrollers and ATMEL Studio for… »; et c’est bien le cas. Juste pour voir si je vais apprendre des ficelles, des trucs et des astuces pour programmer en C des Arduino, je l’ouvre au milieu, et je tombe sur (p. 174) les spécification du format pour la fonction printf(), et la largeur des champs comme printf(« %5d\n », 123); // padded with 0
Dans cet article, on va examiner les moyens d’obtenir une base de temps sur la plateforme Arduino (Diduino, Seeeduino Stalker et Arduino Yun). Bien sûr, c’est transposable sur d’autres systèmes, qui tous ont besoin de références de temps. Que ce soit la date/heure exacte pour horodater un événement, ou attendre une certaine durée, qu’elle soit courte ou longue. Parfois, un timer local doit être synchronisé sur une horloge de précision : il y a plusieurs techniques pour ce faire.
J’ai développé un logiciel avec l’environnement Arduino.
Je désire mettre ce logiciel dans un hardware personnalisé donc pas sur une carte Arduino.
Comment trouver l’emplacement où se trouve le fichier hex compilé ?
Voici la marche à suivre :
1 Ouvrir l’environnement Arduino, sous l’onglet « fichier » sélectionner l’option « Préférences » :
2 Cocher l’option « compilation » :
3 Compiler le logiciel. Dans la fenêtre de sortie, repérer le répertoire du fichier hex :
Idée… # A l’heure actuelle, il n’y a à ma connaissance aucun robot qui code du LPC. Idée… pourquoi ne pas en faire un? Une recherche sur le WEB montre qu’il y a bien des mains préfabriquées. En bois, en PLA, en métal. Même certaines peuvent être imprimées en 3D, dans la même matière que les LEGOs (réf. 1, 2, 3). Aucune ne peut écarter l’index des autres doigts ; souvent le pouce est seulement opposable. En définitive, il me faut construire une main simple, mais suffisante pour coder.
A quoi ressemble un système d’ECS écologique ? # L’eau chaude sanitaire (ECS) de mon logis est une combinaison écologique : le gaz, qui sert aussi au chauffage de l’immeuble produit l’énergie pour chauffer l’eau. Un système avec capteurs solaires sur le toit permet de limiter l’usage du gaz. Le stockage de l’eau chaude est en 2 volumes de 200 litres : un premier pour le circuit solaire, le second pour l’ECS.
Le champ d’application # Dans un article précédent, je montrais le besoin d’activer une DHCP pour utiliser pleinement un Arduino Yun.
Le présent article répond à quelques questions légitimes de l’utilisation et des possibilités de cette plateforme bi-processeur. Voici rapidement les caractéristiques du Yun. C’est un hardware similaire au Leonardo, équipé du CPU Atmel ATmega32U4, mais il comprend – c’est ici l’essentiel – un second CPU Atheros AR9331, qui tourne un Linux. OpenWrt est adapté pour le Yun, appelé Linino. L’OS est sur une flash de 16 Mb ; il en utilise 9 Mb. Il a des connexions Ethernet ; Wifi et USB-A supplémentaires ; un port pour mini carte SD. L’alimentation se fait en 5V, pas de régulateur. Soit par la mini USB, soit par les pins 5V et VCC. La partie Arduino communique avec le Linux via le serial1.
Pourquoi un DHCP ? # Avec le développement sur l’Arduino Yun, me voici quelque peu ennuyé ; tout ne fonctionne pas comme dans le tuto. Les détails de cette expérience feront l’objet d’un article distinct ! Dans l’immédiat, j’ai besoin de le mettre sur le réseau câblé, avec une adresse connue. Pour cela j’ai besoin d’un programme DHCP. Qu’est-ce que le DHCP ? Selon Wikipédia : Dynamic Host Configuration Protocol (DHCP) est un protocole réseau dont le rôle est d’assurer la configuration automatique des paramètres IP d’une station, notamment en lui affectant automatiquement une adresse IP et un masque de sous-réseau. DHCP peut aussi configurer l’adresse de la passerelle par défaut, des serveurs de noms DNS et des serveurs de noms NBNS (connus sous le nom de serveurs WINS sur les réseaux de la société Microsoft).
Suite à la conférence donnée au microclub le 22.02.2013, vous pouvez trouver toute la documentation ainsi que les exemples de programmes sur le site FraniDuino.
Vous y trouverez une documentation simplifiée du langage C pour Arduino, une théorie sur les diagrammes états/événements.
Il y a aussi le code source de tous les projets de feux de trafic ! ainsi que des diagrammes états/événements.
Bonne programmation sur Arduino et compatibles !
Chargeur de vélo électrique # Un vélo électrique se meut par le pédalage de l’utilisateur et lui offre une assistance importante, jusqu’à 250%. Autant dire que les montées deviennent dérisoire, avec ce réglage… Puis, de retour @home, on branche la batterie sur un chargeur. Les expériences décrites ici sont basées sur un ensemble Bosch, livré avec un vélo de marque Cresta. La batterie lithium-ion est donnée à 36 V et 10Ah; le moteur a une puissance de 250 W. Théoriquement, on peut rouler à pleine puissance 360/250 = 1H et 26 minutes. Ce qui n’arrive jamais. A 25 km/H, on parcourrait 36 km; Bosch indique qu’au plat et conduite économe(?), ce devrait être 145 km. La vérité est entre-deux…
Introductions aux difficultés(!) # Dans un article précédent (http://microclub.ch/2012/02/19/arduino-un-succes-embarque/), j’avais mis en lumière les facilités offertes par le concept Arduino: hard+soft défini, bon marché, secondes sources et dérivés de plusieurs fabricants de « shield » (soit les extension de la plaque de base Arduino).
Afin d’explorer rapidement les possibilités de mettre au point un prototype, j’ai décidé de mettre l’accent sur du matériel très complet et facile à mettre en œuvre, sans me focaliser sur le prix.
Qu’est ce qu’est Arduino? # Une plateforme de développement hard et soft, souple, bon marché, aux sources multiples, facile à mettre en oeuvre, bien documentée, bref l’environnement idéal pour débuter dans le domaine de l’embarqué (embedded in english). Vous désirez utiliser de l’électronique et de la microprogrammation? Piloter un moteur, activer un buzzer? afficher des informations, lire une température, une pression? C’est de prime abord passablement difficile.