GESTLAB est un logiciel programmé en Python 3 afin de faciliter la gestion des laboratoires de sciences physiques, dans les lycées d’enseignement général et technologique.

Avec GESTLAB, les stocks des produits chimiques, des matériels de chimie et de physique sont gérés par catégorie, lieux de stockage, fournisseurs…

 

Les préparations des solutions et du matériel pour les travaux pratiques sont facilitées par l’indication des quantités à peser, du lieu de stockage, de mises à jour automatiques des stocks.

 

Les bons de commandes des produits chimiques et du matériel en rupture de stock sont édités automatiquement.

 

Enfin, les documents scientifiques ajoutés à la base de données de GESTLAB sont facilement retrouvés grâce à son moteur de recherche.

 

GESTLAB est disponible sous 2 versions :

code source (nécessite un interpréteur Python)
version portable (archive zip contenant l’exécutable et les modules dépendants)

 

 

16. Module Line Tracker (Apprendre à utiliser un module suiveur de ligne – Catégorie: Capteurs)

L’objectif de cette activité est d’apprendre à utiliser un module suiveur de ligne KY-033.
Ce module détecte si une surface réfléchissant ou absorbant la lumière se trouve devant le capteur :

État 1 : le suiveur de ligne est au-dessus d’une ligne (surface non réfléchissante), la DEL du module est éteinte et la sortie du capteur est à un niveau haut.

État 2 : le suiveur de ligne est en dehors d’une ligne (surface réfléchissante), la LED sur le module est allumée et la sortie du capteur est à un niveau bas.

 

17. pH-Mètre (Mesurer le pH d’une solution aqueuse – Catégorie: Capteurs)

L’objectif de cette activité est de mesurer le pH d’une solution aqueuse à l’aide d’une sonde pH et de l’interface SEN0161 de DF ROBOT.

La sonde pH économique avec l’interface compatible Arduino est idéale pour une utilisation générale et permettant de mesurer un pH entre 0 et 14 à une température comprise entre 0 et +60 °C.

Cette sonde délivre une tension analogique en fonction du pH.

Ce module se raccorde sur une entrée analogique d’une carte compatible Arduino ou directement sur le shield d’expansion E/S via le cordon inclus.

 

18. Feu de circulation (Simulation du fonctionnement d’un feu de circulation à détection de présence – Catégorie: Capteurs)

L’objectif du montage est de simuler le fonctionnement d’un feu de circulation à détection de présence.
On utilise pour cela un montage détecteur de métaux à battement de fréquence, relié à une entrée analogique de l’Arduino Uno, qui en présence de métal (en l’occurrence, une voiture) permettra à l’Arduino d’allumer la DEL verte et d’éteindre la DEL rouge, puis l’inverse en absence de métal.

 

19. Chute d’une bille (Déterminer la durée de chute d’une bille – Catégorie: Mécanique)

L’objectif du montage est de mesurer la durée en ms de la chute d’une bille à l’aide d’un dispositif de détection constitué d’un laser et d’une photodiode associée à un circuit convertisseur courant – tension.

A t = 0, la bille initialement maintenue par l’électroaimant est libérée, un chronomètre est alors déclenché

Au cours de sa chute, la bille coupe le faisceau laser, provoquant une chute du potentiel mesuré sur la broche analogique A0 de l’Arduino Uno, car la photodiode n’est à ce moment plus éclairée

Quand la chute de potentiel est détectée, Le chronomètre est arrêté et la durée de la chute est affichée dans le moniteur série.

 

11. Capteur CO2 SEN0219 (Mesure de la concentration en C02 de l ‘air ambiant – Catégorie: Capteurs)

L’objectif de cette activité est de mesurer la concentration en CO2 de l’air ambiant à l’aide d’un capteur par absorption infrarouge Gravity SEN0219.

Le Module Gravity SEN0219 est composé d’un capteur de CO2 infrarouge et d’une carte d’interface analogique. Il mesure la concentration en CO2 avec une grande sensibilité et une excellente linéarité.

Ce module se raccorde sur une entrée analogique d’une carte compatible Arduino® ou directement sur le shield E/S Gravity via le cordon inclus.

 

12. Servo-moteur (faire tourner un servo-moteur de 0 à 180 ° – Catégorie: Moteurs)

L’objectif de cette activité est de faire tourner un servo-moteur de 0 à 180 ° à l’aide d’un potentiomètre.
Le servo-moteur a 3 fils de connexion :

– fil rouge : alimentation +5 V
– fil noir : la masse
– fil blanc : fil de contrôle du servo-moteur par l’Arduino

Pour éviter les chutes de tension, quand le servomoteur est en fonctionnement, on utilise deux condensateurs de 100 μF placés en parallèle avec le servo-moteur et le potentiomètre

 

13. Cordon DEL RVB (Gestion de l’éclairage d’un cordon de 30 DELs RVB – Catégorie: Divers)

L’objectif du montage est de contrôler un cordon lumineux de 30 DELs RVB Grove pour l’éclairage d’un aquarium :

– Par défaut, après un appui sur le premier bouton poussoir, les DELs RVB éclairent en blanc ou en rouge ou en vert ou en bleu (la première DEL rouge du montage est alors allumée),

– un maintien du premier bouton poussoir permet de régler l’intensité lumineuse des DELs (par défaut, celle-ci est au maximum),

– le deuxième bouton poussoir permet d’éclairer certaines DELs en bleu (la DEL bleue du montage est alors allumée),

– le troisième bouton poussoir permet d’éclairer certaines DELs en rouge (la deuxième DEL rouge du montage est alors allumée),

– le quatrième bouton poussoir permet d’éclairer certaines DELs en vert (la DEL verte du montage est alors allumée),

– le cinquième bouton poussoir lance un minuteur. Les DELs sont alors éteintes à la fin d’une durée défini par le programme, puis rallumées au bout d’une autre durée également définie,

– un second appui sur le premier bouton poussoir éteint le cordon lumineux.

 

14. Capteur de Force (Mesurer des forces à l’aide d’un capteur – Catégorie: Mécanique)

L’objectif de cette activité est de mesurer une force à l’aide d’un capteur FSR402 Grove puis d’afficher la valeur mesurée sur un écran LCD.
Le module capteur de force compatible Grove basé sur un FSR402 permet la mesure d’une pression de 0,2 à 20 N. Ce capteur communique avec un microcontrôleur type Arduino via une liaison analogique.

 

15. Temporisateur d’alimentation TPL5110  (Utiliser un temporisateur d’alimentation pour allumer une DEL – Catégorie: Divers)

L’objectif de cette activité est d’utiliser un temporisateur d’alimentation (TPL) pour allumer une DEL pendant 1 s avant que le microcontrôleur indique ensuite au TPL de couper son alimentation.

Le temporisateur d’alimentation Adafruit TPL5110 permet d’allumer et d’éteindre automatiquement un microcontrôleur en utilisant un timer intégré qui peut varier d’une fois tous les 100 ms à une fois toutes les deux heures.

En pratique, le TPL s’allumera périodiquement (la périodicité étant réglable par un potentiomètre intégré ou une résistance), et allumera alors l’alimentation du microcontrôleur. Il attendra ensuite qu’un signal soit reçu du montage pour indiquer au TPL qu’il peut désactiver en toute sécurité l’alimentation.

 

6. Ecran LCD (Afficher un chiffre sur un écran LCD – Catégorie: Divers)

L’objectif de cette activité est d’afficher un chiffre choisi au hasard sur un écran LCD après un appui sur un bouton poussoir.

L’écran à cristaux liquides utilisé comporte deux rangées de 16 caractères, d’où son nom de LCD 1602 et le potentiomètre du montage permet de régler sa luminosité.

 

7. Ecran LCD 2 (Incrémenter un compteur – Catégorie: Divers)

L’objectif de cette activité est d’incrémenter un compteur en appuyant sur un bouton poussoir puis d’afficher sa valeur sur un écran LCD. Un appui prolongé sur le bouton poussoir remet le compteur à zéro.

 

8. Générateur (Réalisation d’un générateur 0-5 V – Catégorie: Divers)

L’objectif de l’activité est de réaliser un générateur 0-5 V pour, par exemple, alimenter une DEL.

Le bouton poussoir permet d’allumer ou d’éteindre le générateur. La valeur de la tension délivrée entre la sortie 9 (sortie PWM) et la masse de l’Arduino Uno est réglée par le premier potentiomètre. La valeur de la tension est affichée sur un écran LCD.

L’écran à cristaux liquides utilisé comporte deux rangées de 16 caractères, d’où son nom de LCD 1602 et le deuxième potentiomètre du montage permet de régler sa luminosité.

 

9. ADXL335 Grove (Mesurer des accélérations sur les axes X/Y/Z – Catégorie: Mécanique)

L’objectif de cette activité est de mesurer des accélérations sur les axes X/Y/Z à l’aide d’un accéléromètre Grove ADXL335.

Basé sur le chip ADXL335, ce module va fournir trois tensions analogiques représentative des 3 axes X, Y et Z. Chaque sortie analogique délivre un signal entre 0 V et 3,3 V représentative d’une accélération de -3G à +3G.

 

10. Moteur DC – L293D (Gestion de la rotation d’un moteur à courant continu
dans les 2 sens et à vitesse variable – Catégorie: Moteurs)

L’objectif de cette activité est de faire tourner un moteur DC dans les deux sens à vitesse de rotation variable, à l’aide d’un pont en H, le CI L293D.

Voici quelques propositions de sketchs à ajouter à la base de données d’ArdPyLog.

1. TP_Vitesse_Son (Détermination de la vitesse du son dans l’air à l’aide
d’un capteur ultrasonique – Catégorie: Ondes ultrasonores)

Dans cette activité, nous allons déterminer expérimentalement la vitesse de propagation des ondes sonores en mesurant, à l’aide d’un capteur à ultrasons, le HC-SR04, la durée de propagation Dt de l’onde sonore entre l’émetteur et le récepteur situés à une distance d connue d’un obstacle.

Les mesures des durées de propagation Dt de l’onde sonore entre l’émetteur et le récepteur commencent après un appui sur le bouton poussoir et sont arrêtées en appuyant de nouveau sur celui-ci.

Il est donc possible d’acquérir des couples de données (Dt, d) afin de déterminer la vitesse du son dans l’air par le tracé et la modélisation de la caractéristique Dt=f(d).

 

2. CTN Shield datalogging GT1046 (Mesure de températures avec une thermistance CTN et enregistrement des données sur une carte SD – Catégorie: Température)

L’objectif de l’activité est de mesurer une température avec une thermistance CTN dont les grandeurs caractéristiques suivantes sont connues :
– La valeur de sa résistance R0 (résistance nominale en Ω) à la température de référence T0 = 25 °C (298,15 K),
– La valeur de β (en K).

On utilise un shield datalogging GT1046 pour enregistrer les données de température sur une carte SD, le shield étant équipé d’une horloge en temps réel pour connaître l’heure exacte de l’enregistrement.

 

3. Détecteur de niveau (Contrôle de l’alimentation électrique d’une électrovanne – Catégorie: Capteurs)

L’objectif du montage est de contrôler l’alimentation électrique d’une électrovanne alimentant en eau un dispositif de déionisations, par l’intermédiaire d’un relais en fonction du niveau d’eau détecté par deux électrodes dans une bonbonne d’eau désionisée en sortie du dispositif.

Après avoir appuyé sur le bouton-poussoir (DEL rouge reliée à la borne 13 allumée), si les électrodes ne sont pas en contact avec l’eau, le relais est actif, l’électrovanne est alimentée et est donc ouverte (DEL rouge reliée à la borne 7 allumée).

Quand les électrodes sont en contact avec l’eau, l’alimentation électrique de l’électrovanne est coupée, celle-ci est donc fermée (DEL rouge reliée à la borne 7 éteinte et DEL verte reliée à la borne 4 allumée).

Si la conductivité de l’eau en contact avec les électrodes est bonne, la DEL bleue reliée à la borne 12 s’allume, sinon la DEL rouge reliée à la borne 11 s’allume.

 

4. Capteur DHT 11 (Mesure de la température et du taux d’humidité – Catégorie: Température)

L’objectif de cette activité est de mesurer la température et le taux d’humidité ambiant à l’aide du module KY-015 composé d’un capteur numérique d’humidité et de température DHT11 et d’une résistance de 1 kΩ.

 

5. Capteur DHT 22 (Mesure de la température et du taux d’humidité – Catégorie: Température)

L’objectif de cette activité est de mesurer la température et le taux d’humidité ambiant à l’aide d’un capteur numérique d’humidité et de température DHT22.

 

ArdPyLog est un logiciel programmé en Python 3 afin de faciliter la gestion des sketchs pour les cartes Arduino UNO, dans les lycées d’enseignement général et technologique.

Les sketchs enregistrés dans la base de données d’ArdPyLog peuvent être téléversés dans la mémoire de l’Arduino Uno.

Il est possible d’associer, à chaque sketch, une image représentant le circuit électronique correspondant ainsi qu’un document descriptif au format « pdf »

Les sketchs peuvent être classés par catégories et une fonction de recherche est disponible pour retrouver rapidement vos codes…

Les données envoyées par l’Arduino, via la liaison série, comme les valeurs d’un capteur, sont enregistrables et exploitables. 

Enfin, ArdPylog dispose d’un mode « Acquisition » qui transforme l’Arduino Uno en centrale d’acquisition grâce à l’utilisation de ses entrées analogiques. Les tensions mesurées sur les entrées analogiques sélectionnées sont acquises pendant la durée et la période d’échantillonnage définies par l’utilisateur.

Cette fonction est particulièrement intéressante pour la détermination expérimentale de la constante de temps d’un dipôle RC, savoir-faire au programme de la spécialité « sciences-physiques » des terminales, par mesure en temps réel de la tension aux bornes du condensateur du dipôle.

Ainsi avec ArdPyLog, l’évolution temporelle de la tension aux bornes du condensateur, lors de sa charge ou sa décharge, est tracée en temps réel et peut ensuite être modélisée afin de déterminer la constante de temps:

 

Suivi de la charge du condensateur

Modélisation de la charge du condensateur

 


Les codes des programmes en Python des activités de mesures de température, de pression et de l’étude du dipôle RC avec un Arduino Uno ont été ajoutés:

Projet 5 – Températures : Mesurer & Exploiter

– Activité 1 : Mesure de températures avec un capteur TMP 36 ou LM 35
– Activité 2 : Alarme sonore par dépassement de température
– Activité 3 : Thermomètre à diodes électroluminescentes
– Activité 4 : Etalonnage d’une thermistance CTN
– Activité 5 : Mesure de températures avec une thermistance CTN

 

Projet 6 – Pression : Mesurer & Exploiter

– Activité 1 : Mesure d’une pression absolue avec un capteur MPX4250AP
– Activité 2 : Indicateur de pression
– Activité 3 : Vérification de la loi de Boyle-Mariotte
– Activité 4 : Principe fondamental de la statique des fluides

 

Projet 7 – Dipôles RC : Charge & Décharge

– Activité 1 : Etude de la charge d’un condensateur d’un dipôle RC
– Activité 2 : Etude de la décharge d’un condensateur d’un dipôle RC
– Activité 3 : Détermination de la capacité d’un condensateur par mesure d’une constante de temps

 



. La genèse

ArdPyLab a été conçu pendant la période de confinement en raison de la pandémie provoquée par le Covid-19. 

Symboliquement, ArdPyLab est officiellement en ligne depuis le 11 mai 2020, premier jour du déconfinement en France.

ArdPyLab regroupe tous les documents et programmes rédigés dans l’objectif de la formation des personnels de laboratoire des lycées d’enseignement général et technologique de l’académie de Rouen à l’utilisation des microcontrôleurs, dans le cadre des nouveaux programmes de l’année scolaire 2019/2020.

La formation aurait du avoir lieu en cette fin d’année scolaire, mais ce ne sera sûrement pas le cas en raison de la pandémie. C’est pour cette raison, que le site a été créé pour permettre une formation personnelle en ligne.

 

. Le contenu

ArdPyLab ne se veut pas exhaustif, mais présente les bases et ce qui est nécessaire pour appréhender le principe de fonctionnement des microcontrôleurs et la programmation en langage Arduino ou en Python afin de réaliser des activités avec un microcontrôleur qui répondent aux exigences des nouveaux programmes.

Il est aussi un moyen de distribution libre de quelques logiciels personnels programmés en Python en rapport avec les Arduino Uno ou les sciences physiques.

Chaque rubrique du site est téléchargeable au format PDF pour une étude hors ligne. Tous les codes des programmes présentés sont également disponibles au téléchargement.

Le contenu d’ArdPyLAb est une synthèse de mon travail personnel sur l’Arduino Uno et la programmation en Python, du travail de collègues ITRF (merci David!) et de nombreux documents provenant de diverses sources dont les principales sont:

https://www.arduino.cc/

http://www.mon-club-elec.fr/

http://eskimon.fr/

https://openclassrooms.com/

La plupart des codes en langage Arduino ou en Python des activités proposées sont personnels, mais certains sont inspirés de ces sources.
Je vous invite à parcourir ces sites Web pour approfondir vos connaissances sur l’Arduino et le langage de programmation Python.

Les schémas électroniques présentés dans ArdPyLAb ont été réalisés à la base avec Tinkercad ou Fritzing:

https://www.tinkercad.com

https://fritzing.org

mais ont souvent été retravaillés avec les logiciels Paint Shop Pro 4.14 ou Paint.Net:

http://www.oldversion.fr/windows/paint-shop-pro-4-14

https://paintnet.fr/

Débutants ou confirmés, j’espère que vous trouverez, dans le contenu d’ArdPylab, quelques éléments qui sauront retenir votre attention. N’hésitez pas à laisser un commentaire…

 

. Les mises à jour

Les mises à jour d’ArdPyLab feront l’objet de nouveaux articles et nouvelles pages.

Les prochaines mises à jour prévues concernent la programmation en Python des activités de mesures de température, de pression et de l’étude du dipôle RC avec un Arduino Uno.