/2023-2024-4GP-TLILI-SISTEEDHUR

Projet capteur S8

Primary LanguageC++GNU General Public License v3.0GPL-3.0

Projet Capteur graphite

TLILI Maxime - SISTEEDHUR Lakshitaa

INSA Toulouse - département Génie Physique - 2024

Shield2

Introduction au projet

    Ce projet se construit dans le cadre de l'UF "Du capteur au banc de test" de la 4ème année du parcours Génie Physique à l'Institut National des Sciences Appliquées (INSA) de Toulouse. Il permet une approche novatrice et lowtech dans la mesure de contrainte en se basant sur les propriétés du graphite. Il s’appuie sur l’étude de capteurs de contrainte en graphite (système granulaire) dont la résistance varie suivant la déformation du capteur (Pencil Drawn Strain Gauges and Chemiresistors on Paper Cheng-Wei Lin*, Zhibo Zhao*, Jaemyung Kim & Jiaxing Huang Department of Materials Science and Engineering, Northwestern University 2220 Campus Drive, Evanston, IL, 60208, USA).

    Au cours de ce projet, nous avons réalisé un dispositif permettant de relever des mesures de contrainte à partir d'une feuille en papier sur laquelle était déposée du graphène. En déformant le capteur, sa résistance est modifiée.. Il est donc possible de réaliser un capteur de déformation low-tech, que nous appellerons par la suite "capteur graphite". Dans un premier temps, nous avons simulé le comportement du circuit analogique sur le logiciel LTSpice. Ce circuit a le double rôle d’amplifier (via un amplificateur transimpédance) et de filtrer le signal délivré par le capteur. Ensuite, un code Arduino permettant la mesure de résistance et le contrôle des différents éléments du circuit (écran OLED, module Bluetooth et potentiomètre digital) a été réalisé. Nous avons préalablement testé notre circuit et le code en montant les différents éléments sur une breadboard. Ensuite, nous avons designé un PCB grâce au logiciel KiCad constituant le shield qui se fixe sur une carte Arduino UNO.

Livrables

Les livrables du projet sont : - [] Le PCB du Shield Arduino - [] Le code Arduino permettant de faire la mesure de la résistance du capteur graphite - [] L'application Android pour un pilotage bluetooth du système - [] le banc de test du capteur - [] Le datasheet du capteur

Pour notre projet, nous avons opté pour ajouter un écran OLED servant de menu, du flex sensor commercial pour avoir un comparatif avec notre capteur, ainsi que d'un encodeur rotatoire pour différentes fonctionnalités.

Sommaire


Matériel nécéssaire

  • 1 Carte Arduino UNO
  • 1 Ecran OLED-01 128x64
  • 1 Amplificateur Opérationnel LTC1050
  • 1 Potentiomètre Digital MCP-41050
  • 1 Module Bluetooth HC-05
  • 1 Encodeur Rotatoire KY-040
  • 1 Capteur FLEXSENSOR
  • 5 Résistances (X2 100kOhm, X1 47kOhm, X1 10kOhm, X1 1kOhm)
  • 4 Condensateurs (X3 100nF, X1 1uF)
  • Crayons (HB, 2B,...)
  • Modèle papier du capteur graphite

1. Simulation électronique du capteur graphite sous LTSpice

    Sur le logiciel LTSpice, nous avons réalisé une simulation électrique du circuit par application du schéma suivant :

Circuit LTSpice

La résistance variable de notre capteur étant de l'ordre du GigaOhm, le courant généré est très faible (de l'ordre de quelques nA). Afin de délivrer une tension suffisante au niveau du convertisseur analogique-numérique d'une carte Arduino UNO, il est nécessaire d'amplifier le signal en amont de la mesure. On réalise donc un amplificateur opérationnel transimpédance. Nous avons choisi le circuit amplificateur LTC 1050 au vu de ses paramètres de tension d'offset faible. Celle-ci ne doit pas fausser les valeurs de tensions que reçoit l'Arduino. Il est aussi nécessaire de réaliser un traitement du bruit lié à l'environnement de la mesure. C'est le rôle des différents filtres qui atténuent les bruits du réseau électrique et des horloges des composants.

Cette simulation nous permet de savoir que l'Arduino UNO est capable de mesurer le signal du capteur.

2. PCB via KiCad

a. Création du PCB

    Cette partie concerne la conception du circuit transimpédance sur Kicad 8.0 avec l'ajout de divers composants :

  • La résistance R2 a été remplacé par le potentiomètre digital MPC-41050. Il permet d'ajuster le gain du montage en simulant une résistance variable entre 0 et 50kOhms
  • Un module bluetooth HC-05 a été ajouté pour rendre possible une communication avec une application mobile
  • Un écran OLED permet de faire l'interface homme-machine en affichant les informations
  • Un flexsensor a été ajouté en tant que capteur témoin
  • Un encodeur rotatoire ajoute des fonctionalités pour interagir avec les autres composants. ça permet de naviguer dans les menus de l'écran OLED et de lancer la mesure

A partir d'un template d'une carte Arduino UNO, il a fallu :

  • Concevoir le schématique du circuit en important et en créant les symbôles pour chaque composant
  • Corréler chaque composant à une empreinte réelle en fonction de ses caractéristiques physiques (nombre de pins, distance entre deux pins,...)
  • Placer les composants sur la partie schématique et réaliser le routage du circuit
  • Poser un plan de masse pour faire le référencement au GND Afin de s'assurer de la validité du PCB, nous avons été contraint à l'utilisation de deux vias.

Nous avons listé ci-dessous les symbôles et empreintes des composants, ainsi que le schématique et son PCB final

b. Symbôles et empreintes

  • amplificateur transimpédance
Amplificateur transimpédance Symbol
  • Capteur graphite
Capteur Graphite Symbol Capteur Graphite footprint
  • Amplificateur LTC1050
LTC 1050 Symbol LTC 1050 footprint
  • Flexsensor
Flexsensor Symbol Flexsensor footprint
  • Module bluetooth HC-05
Bluetooth HC-05 Symbol Bluetooth HC-05 footprint
  • Potentiomètre digital MPC41050
MPC41050 Symbol MCP41050 footprint
  • Encodeur rotatoire KY-040
KY-040 Symbol KY-040 footprint
  • Ecran OLED
OLED Screen Symbol OLED Screen footprint

c. Schématique et PCB final

  • Schéma complet

    Schematics
  • PCB

    PCB2 PCB1
  • Modèle 3D

Top view Angle view

3. Réalisation du Shield

    Une fois le schéma PCB réalisé, nous avons sorti le circuit sur un calque à l'échelle 1:1. Il a joué le rôle de masque dans la gravure chimique sur une plaquette d'époxy recouverte d'une couche de cuivre d'une épaisseur d'environ 60um. La plaquette a été couverte d'une résine positive, puis elle a été insolé aux UVs. Nous avons plongé la plaquette dans un révélateur et dans du perchlorure de fer pour s'affranchir de la partie de la résine non isolée et du cuivre non protégé. Cette opération s'est déroulée au sein du bâtiment du département du Génie Electrique et Informatique de l'INSA Toulouse.

    L'étape suivante a été le perçage mécanique des trous sur la plaquette, et la soudure des différents composants. Nous avons utilisés deux forets mécaniques : un de diamètre 1mm pour les broches de connexion avec la carte Arduino, et un de diamètre 0.8mm pour tout autre trou. Pour ce qui est de nos deux vias, nous avons soudé des fils sur la partie non visible du PCB.

Shield1

4. Code Arduino

    Pour faire la mesure de la résistance, nous avons créé un programme Arduino. Lorsqu'on maintient appuyé le bouton de l'encodeur rotatoire, la mesure de résistance se fait à un intervalle d'environ une seconde. La valeur nous est transmise par le biais de l'écran OLED.

    Nous avons fournis trois fichiers de code :

  • Capteur2024V1.0.1 : c'est la version qui fournit trois menus sur l'écran OLED permettant de choisir entre le mode Mesureflex, le mode MesureCG, et le mode calibration. Ce programme ne permet pas de faire de mesures. Dès lors que nous demandons de lire une mesure, l'écran OLED ne s'initialise plus et le programme plante
  • Capteur2024V2 : C'est la version qui marche. Elle décrit le protocole présenté au dessus.
  • Test Components : c'est un programme permettant de tester l'écran OLED.

Affichage_ecran_OLED

5. Application Android

    Nous avons réalisé une application android nommée FlexiGraphite.apk. Elle permet d'interagir par bluetooth avec le capteur graphite et de relever notamment la valeur de la résistance du capteur graphite.

Logo : FlexiGraphite

Menu de l'application : Menu FlexiGraphite

On retrouve 3 parties sur le menu :

  • La connexion bluetooth au dessus, avec la possibilité de voir l'état de la connexion et de se déconnecter de tout appareil.
  • L'onglet "Mesure" servant à y afficher les mesures de la résistance graphite.
  • L'onglet "Calibration" qui permet de piloter le lancement de la calibration du gain transimpédance.

6. Banc de test

    Afin de tester notre capteur, nous avons réalisé un banc de test. Le support est un ensemble de demi-cercles dont le rayon varie.

BancDeTest Formule

Pour les crayons B et HB, on calcule la déformation en fonction du rayon du banc de test et on fait la mesure de résistance. On reporte les valeurs dans un graphe pour tracer l'évolution de la variation de résistance en fonction de la déformation.

deformation en compression Déformation en tension Deformation flexsensor

Datasheet

Le datasheet de notre capteur se trouve ici.

Contact: