Outils pour utilisateurs

Outils du site


electronique:micro_controleurs:attiny85:i2c_wind_sensor

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
electronique:micro_controleurs:attiny85:i2c_wind_sensor [2016/09/14 09:05] florianelectronique:micro_controleurs:attiny85:i2c_wind_sensor [2025/01/14 11:19] (Version actuelle) – modification externe 127.0.0.1
Ligne 1: Ligne 1:
-**<font 26px/inherit;;inherit;;inherit>Capteur Girouette/Anémomètre Raymarine ST50 I2C</font>**+====== Raymarine ST50 I2C ====== 
 + 
 +Développement d'une carte I2C d'interface pour le capteur Girouette/Anémomètre Raymarine ST50
  
 ===== Objectif ===== ===== Objectif =====
  
 Transformer une girouette ST50 en capteur 5v compatible I2C fournissant les données vent : Transformer une girouette ST50 en capteur 5v compatible I2C fournissant les données vent :
 +
   * Direction (AWA)   * Direction (AWA)
   * Vitesse (AWS)   * Vitesse (AWS)
Ligne 13: Ligne 16:
 |{{  :electronique:micro_controleurs:attiny85:i2c_wind_sensor:st50_wind.jpg?nolink&400x266  }}|{{  :electronique:micro_controleurs:attiny85:i2c_wind_sensor:st50_eclate.jpg?direct&400x268  }}| |{{  :electronique:micro_controleurs:attiny85:i2c_wind_sensor:st50_wind.jpg?nolink&400x266  }}|{{  :electronique:micro_controleurs:attiny85:i2c_wind_sensor:st50_eclate.jpg?direct&400x268  }}|
  
-Je l'avais sorti de la poubelle et dépannée en changeant les capteurs à effet hall de la girouette, j'ai fais une bonne affaire ce jour là, au pris où on se les arrache aujourd'hui  +Je l'avais sorti de la poubelle et dépannée en changeant les capteurs à effet hall de la girouette, j'ai fait une bonne affaire ce jour là, au prix où cela s'arrache …\\ 
- +Du coup je me suis mis dans la tête de la transformer en capteur I2C. On va regarder qu'est ce que ça sort et ce qu'il y'a dedans.\\ 
-Du coup je me suis mis dans la tête de la transformer en capteur I2C. On va regarder qu'est ce que ça sort et ce qu'il y'a dedans. +A première vue, de la filasse et une alimentation qui ne colle pas vraiment avec nos microcontrolleurs préférés {{http://doku.floriantales.fr/lib/plugins/ckgedit/ckeditor/plugins/smiley/images/sad_smile.png?nolink&}}:
- +
-A première vue, de la filasse et une alimentation qui ne colle pas vraiment avec nos microcontrolleurs préférés {{http://floriantales.hd.free.fr/lib/plugins/ckgedit/ckeditor/plugins/smiley/images/sad_smile.png?nolink&}}: +
- +
-{{:electronique:micro_controleurs:attiny85:i2c_wind_sensor:st50_wire.png?nolink&600x153}}+
  
 +{{:electronique:micro_controleurs:attiny85:i2c_wind_sensor:st50_wire.png?nolink&600x153}}\\
 //Starboard = tribord - Port = babord// //Starboard = tribord - Port = babord//
  
Ligne 30: Ligne 30:
 D'après la datasheet des composants : D'après la datasheet des composants :
  
-  * la tension min des SS94A1 est de 6,6Vdc .. arf, d'où l'alim en 8v {{http://floriantales.hd.free.fr/lib/plugins/ckgedit/ckeditor/plugins/smiley/images/sad_smile.png?nolink&23x23}}.+  * la tension min des SS94A1 est de 6,6Vdc .. arf, d'où l'alim en 8v {{http://doku.floriantales.fr/lib/plugins/ckgedit/ckeditor/plugins/smiley/images/sad_smile.png?nolink&23x23}}.
   * Le SS41 quant à lui peut tourner en 4,5V min.   * Le SS41 quant à lui peut tourner en 4,5V min.
  
-On va pas se laisser abattre et on va tester tout ça sous 5v parce qu'on est des malades {{http://floriantales.hd.free.fr/lib/plugins/ckgedit/ckeditor/plugins/smiley/images/tongue_smile.png?nolink&23x23}}!+On va pas se laisser abattre et on va tester tout ça sous 5v parce qu'on est des malades {{http://doku.floriantales.fr/lib/plugins/ckgedit/ckeditor/plugins/smiley/images/tongue_smile.png?nolink&23x23}}! 
 + 
 +\\ 
  
 ===== Mesure du ST50 ===== ===== Mesure du ST50 =====
Ligne 48: Ligne 51:
 ^Blue|1,5|3,5|90°| ^Blue|1,5|3,5|90°|
  
-Et bien il marche très bien ce capteur en 5v !!! En tout cas on pourra en faire quelques chose même si ce n'est pas prévu comme ça.+Et bien il marche très bien ce capteur en 5v !!! En tout cas on pourra en faire quelques chose même si ce n'est pas prévu comme ça.\\ 
 +La capture en base de temps XY montre l'ellipse. La déduction du cap se fait par calcul de la [[https://fr.wikipedia.org/wiki/Régression_elliptique|régression elliptique]].\\ 
 +J'ai testé en 3,3v mais le signal se casse la figure sérieusement, il serait difficilement exploitable sans un traitement complémentaire (filtre/ampli).
  
-La capture en base de temps XY montre l'ellipse sur laquelle on va mathématiquement travailler pour déduire le cap de la girouette.+\\
  
-J'ai testé en 3,3v mais le signal se casse la figure sérieusement, il serait difficilement exploitable sans un traitement complémentaire (filtre/ampli). 
  
 ==== Anémomètre ==== ==== Anémomètre ====
  
-La sortie anémomètre est assurée par le SS41 à collecteur ouvert. +La sortie anémomètre est assurée par le SS41 à collecteur ouvert. \\ Ce composant va laisser passer le courant 2 fois par rotation complète de l'anémomètre.
- +
-Ce composant va laisser passer le courant 2 fois par rotation complète de l'anémomètre.+
  
 {{:electronique:micro_controleurs:attiny85:i2c_wind_sensor:collecteur_ouvert.png?nolink&150x143}} {{:electronique:micro_controleurs:attiny85:i2c_wind_sensor:collecteur_ouvert.png?nolink&150x143}}
  
-Un circuit complémentaire doit assurer la conversion aux niveaux logique TTL : 0 ou 5v. On peut utiliser une résistance en pull-up dans ce cas. +Un circuit complémentaire doit assurer la conversion aux niveaux logique TTL : 0 ou 5v. On peut utiliser une résistance en pull-up dans ce cas. \\ Sachant que le SS41 n'accepte que 20mA max une résistance de 100K fait l'affaire. \\ La mesure confirme le bon fonctionnement de l'anémo avec 2 front montants par rotation : \\ {{:electronique:micro_controleurs:attiny85:i2c_wind_sensor:sortie_anemo.png?direct&500x300}}
- +
-Sachant que le SS41 n'accepte que 20mA max une résistance de 100K fait l'affaire. +
- +
-La mesure confirme le bon fonctionnement de l'anémo avec 2 front montants par rotation : +
- +
-{{:electronique:micro_controleurs:attiny85:i2c_wind_sensor:sortie_anemo.png?direct&500x300}}+
  
 ===== Mise en forme des signaux ===== ===== Mise en forme des signaux =====
Ligne 84: Ligne 80:
 {{:electronique:micro_controleurs:attiny85:i2c_wind_sensor:selection_156.png?direct&550x219  }} {{:electronique:micro_controleurs:attiny85:i2c_wind_sensor:selection_156.png?direct&550x219  }}
  
-Le 1er lot de résistances assure un pont diviseur pour diminuer la tension. +Le 1er lot de résistances assure un pont diviseur pour diminuer la tension. \\ Le circuit 74HX4051 est un multiplexeur analogique. Le microcontrôleur peut choisir quelle capteur il veut mesurer. \\ On trouve ensuite une cascade de résistances pour assurer 2 références de tension (une par AOP qui suivent). \\ On passe ensuite dans un AOP IC5A monté en intégrateur différentiel puis dans un comparateur IC5b à hystérésis non inverseur. \\ La sortie ADC_INT rentre dans une entrée interruption d'un microcontrôleur Philips 80C51C de l'an 2000. \\ On est en face d'un convertisseur numérique analogique à intégrale assuré par les AOP et l'UC. \\ Pour dire : ce nanar n'avait pas d'entrée ADC alors que le attiny85 en à 3! {{http://doku.floriantales.fr/lib/plugins/ckgedit/ckeditor/plugins/smiley/images/teeth_smile.png?nolink&}}.
- +
-Le circuit 74HX4051 est un multiplexeur analogique. Le microcontrôleur peut choisir quelle capteur il veut mesurer. +
- +
-On trouve ensuite une cascade de résistances pour assurer 2 références de tension (une par AOP qui suivent) +
- +
-On passe ensuite dans un AOP IC5A monté en intégrateur différentiel puis dans un comparateur IC5b à hystérésis non inverseur. +
- +
-La sortie ADC_INT rentre dans une entrée interruption d'un microcontrôleur Philips 80C51C de l'an 2000. +
- +
-IOn est en face d'un convertisseur numérique analogique à intégrale assuré par les AOP et l'UC. +
- +
-Pour dire : ce nanar n'avait pas d'entrée ADC alors que le attiny85 en à 3! {{http://floriantales.hd.free.fr/lib/plugins/ckgedit/ckeditor/plugins/smiley/images/teeth_smile.png?nolink&}}.+
  
 === Adaptations pour l'attiny85 === === Adaptations pour l'attiny85 ===
  
-Suite à l'observation précédente, l'attiny assurera sans problème la conversion analogique/numérique des 2 capteurs sur 2 entrées ADC. +Suite à l'observation précédente, l'attiny assurera sans problème la conversion analogique/numérique des 2 capteurs sur 2 entrées ADC. \\ L'entrée analogique de l'attiny85 est convertie sur 10 bits (de 0 à Vcc) soit une résolution de 1024 pas de 4,9mv sous 5v. \\ Sachant que le signal mesure 2v crête-crête avec un offset de 1,5v, la lecture pleine échelle en 1024 bits ne peut être assurée en l'état.
- +
-L'entrée analogique de l'attiny85 est convertie sur 10 bits (de 0 à Vcc) soit une résolution de 1024 pas de 4,9mv sous 5v. +
- +
-Sachant que le signal mesure 2v crête-crête avec un offset de 1,5v, la lecture pleine échelle en 1024 bits ne peut être assurée en l'état.+
  
 Adaptations à prévoir : Adaptations à prévoir :
Ligne 116: Ligne 96:
   * Je ne peux pas utiliser la pin AREFque je garde pour l'I2C, il faudrait me contenter de la référence interne 2,56V.   * Je ne peux pas utiliser la pin AREFque je garde pour l'I2C, il faudrait me contenter de la référence interne 2,56V.
  
-A tout bien y réfléchir, l'attiny dispose encore d'une résolution de 408 pas pour un signal de 2Vcc pour Vref=5V. +A tout bien y réfléchir, l'attiny dispose encore d'une résolution de 408 pas pour un signal de 2Vcc pour Vref=5V. \\ La mesure du signal de 1,5 à 3,5V correspond à un mouvement de 180° de la girouette. On dispose donc d'une résolution supérieure à 0,5° sans trop batailler. \\ Je propose donc le montage suivant pour l'acquisition girouette : \\ {{:electronique:micro_controleurs:attiny85:i2c_wind_sensor:capture_girouette.png?direct&600x181}}
- +
-La mesure du signal de 1,5 à 3,5V correspond à un mouvement de 180° de la girouette. On dispose donc d'une résolution supérieure à 0,5° sans trop batailler. +
- +
-Je propose donc le montage suivant pour l'acquisition girouette : +
- +
-{{:electronique:micro_controleurs:attiny85:i2c_wind_sensor:capture_girouette.png?direct&600x181}}+
  
 ==== Anémomètre ==== ==== Anémomètre ====
Ligne 130: Ligne 104:
 {{:electronique:micro_controleurs:attiny85:i2c_wind_sensor:selection_154.png?direct&400x206  }} {{:electronique:micro_controleurs:attiny85:i2c_wind_sensor:selection_154.png?direct&400x206  }}
  
-La partie gauche du schéma ne nous concerne pas. Il s'agit de l'acquision du capteur de type rotavecta. +La partie gauche du schéma ne nous concerne pas. Il s'agit de l'acquision du capteur de type rotavecta.\\ 
- +Le signal anémo rentre directement dans un AOP IC4b monté en comparateur à hystérésis inverseur.\\
-Le signal anémo rentre directement dans un AOP IC4b monté en comparateur à hystérésis inverseur. +
 L'entrée - de l'AOP est polarisée : L'entrée - de l'AOP est polarisée :
  
Ligne 139: Ligne 111:
   * en +1,15v en sortie du pont diviseur formé par R6/R10/R13 quand il est passant.   * en +1,15v en sortie du pont diviseur formé par R6/R10/R13 quand il est passant.
  
-Ce montage assure une conversion TTL propre qui rentre dans l'UC sur une entrée interruption.+Ce montage assure une conversion TTL propre qui rentre dans l'UC sur une entrée interruption. \\ Pour mesurer la vitesse du vent on mesure la fréquence du signal anémo avec une entrée digitale.
  
-Pour mesurer la vitesse du vent on mesure la fréquence du signal anémo avec une entrée digitale d'un attiny85. 
  
 === Adapations pour l'attiny85 === === Adapations pour l'attiny85 ===
  
-Comme vu pendant la mesure, une simple résistance de pull up pourrait suffire pour notre utilisation. +Comme vu pendant la mesure, une simple résistance de pull up pourrait suffire pour notre utilisation. \\ Sachant que l'attiny85 dispose d'une résistance de pull-up sur ses I/O on peut même envisager de l'utiliser directement : \\ {{:electronique:micro_controleurs:attiny85:i2c_wind_sensor:selection_160.png?nolink&600x44}}
- +
-Sachant que l'attiny85 dispose d'une résistance de pull-up sur ses I/O on peut même envisager de l'utiliser directement : +
- +
-{{:electronique:micro_controleurs:attiny85:i2c_wind_sensor:selection_160.png?nolink&600x44}}+
  
 <WRAP important>Le niveau bas d'une entrée digitale est comprise entre -0,5 et 0,3v max sur attiny85. On remarque à la mesure avec une 100K que l'on est en dessous de 0,2v. C'est bon mais c'est limite.</WRAP> <WRAP important>Le niveau bas d'une entrée digitale est comprise entre -0,5 et 0,3v max sur attiny85. On remarque à la mesure avec une 100K que l'on est en dessous de 0,2v. C'est bon mais c'est limite.</WRAP>
Ligne 157: Ligne 124:
 ===== Code de l'acquisition uC ===== ===== Code de l'acquisition uC =====
  
-<WRAP todo> work in progress </WRAP>+<WRAP todo>\\ 
 +Avant d'écrire tous ça j'avais fait quelques tests pour valider le concept avec une arduino UNO : [[https://github.com/floriantales/st50_i2c|GitHub]]\\ 
 +Article à suivre \\ 
 +</WRAP>
  
-\\+===== Ressources ===== 
 +Wind Speed & Direction Sensor - Raymarine Rotavecta : {{:electronique:micro_controleurs:attiny85:i2c_wind_sensor:elektor_332_may_2004_wind_rotavecta.pdf|elektor_332_may_2004_wind_rotavecta.pdf}} 
 +~~socialite~~
  
  
electronique/micro_controleurs/attiny85/i2c_wind_sensor.1473840311.txt.gz · Dernière modification : 2025/01/14 11:19 (modification externe)