Operácie

MEMS cvičenie 2: Rozdiel medzi revíziami

Z SensorWiki

(Úlohy)
(16 medziľahlých úprav od rovnakého používateľa nie je zobrazených.)
Riadok 1: Riadok 1:
 
+
<!--
 
Poznamky 2020:  https://www.qsl.net/om3cph/sw/pot.html  https://electronics.stackexchange.com/questions/231522/improving-the-linearity-of-a-potentiometer-after-loading
 
Poznamky 2020:  https://www.qsl.net/om3cph/sw/pot.html  https://electronics.stackexchange.com/questions/231522/improving-the-linearity-of-a-potentiometer-after-loading
 
http://www.geofex.com/article_folders/potsecrets/potscret.htm
 
http://www.geofex.com/article_folders/potsecrets/potscret.htm
 +
-->
 +
 +
Na tomto cvičení je cieľom pripojiť odporový senzor k Arduinu a zobraziť jeho zlinearizovanú hodnotu na nejakom miestnom displeji (LED, LCD a pod.) prípadne ju
 +
odoslať po sériovej linke do PC (v simulátore TinkerCAD).
  
  
 
== Potenciometrické snímače ==
 
== Potenciometrické snímače ==
  
# Poskladajte si odporový senzor polohy so stupnicou.  
+
# Poskladajte si odporový senzor polohy so stupnicou (ak nemáte, použite senzor v TinkerCADe).  
# Zmerajte prevodovú charakteristiku odporového senzora polohy pomocou ohmmetra.
+
# Zmerajte prevodovú charakteristiku odporového senzora polohy pomocou ohmmetra (cvičenie 1).
 
# Senzor pripojte k A/D prevodníku mikropočítača a pomocou programu nižšie zmerajte prevodovú charakteristiku celého meracieho člena.  
 
# Senzor pripojte k A/D prevodníku mikropočítača a pomocou programu nižšie zmerajte prevodovú charakteristiku celého meracieho člena.  
 
# Prevodovú charakteristiku zlinearizujte a doložte úspešnosť porovnaním metrologických parametrov.  
 
# Prevodovú charakteristiku zlinearizujte a doložte úspešnosť porovnaním metrologických parametrov.  
  
  
 +
[[Súbor:MEMS02-SchemaZapojenia21.png|300px|thumb|center|Schéma zapojenia]]
  
[[Súbor:MEMS02-SchemaZapojenia.png|300px|thumb|center|Schéma zapojenia]]
+
<!-- [[Súbor:MEMS02-SchemaZapojenia.png|300px|thumb|center|Schéma zapojenia]] -->
 
 
  
 
* Príklad na pripojenie analógového senzora: http://senzor.robotika.sk/sensorwiki/index.php/Acrob007
 
* Príklad na pripojenie analógového senzora: http://senzor.robotika.sk/sensorwiki/index.php/Acrob007
* Riadiaca doska Acrob http://senzor.robotika.sk/sensorwiki/index.php/Acrob
 
* Technická dokumentácia http://senzor.robotika.sk/sensorwiki/index.php/Acrob_technical_description
 
 
* Arduino homepage https://www.arduino.cc/
 
* Arduino homepage https://www.arduino.cc/
 +
 +
Na pridanie do TinkerCAD triedy (classroom) použite [https://www.tinkercad.com/joinclass/1R5VXPBESZZT tento link]. Ak od vás program pýta vstupný kód, je to 1R5VXPBESZZT
 +
 +
 +
 +
<html>
 +
<iframe width="725" height="453" src="https://www.tinkercad.com/embed/6Pg8q4b7Kst?editbtn=1" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
 +
</html>
 +
 +
Ak sa vám nezobrazuje vložený simulátor správne, použite prosím, [https://www.tinkercad.com/things/6Pg8q4b7Kst-misa-basicdemo/editel?sharecode=skOOqybTv7dIz26TpdC7Eigv5BGxx1k0V5tL7xRWX7k tento link].
 +
<!-- Note to self: generovane linky z TinkerCADu expiruju po 336 hodinach - 14 dni -->
 +
  
 
<source lang="cpp">
 
<source lang="cpp">
  
#define positionSensor 5       // define your pin here
+
#define positionSensor 0       // define your pin here 0
  
 
int adcValue;
 
int adcValue;
Riadok 51: Riadok 65:
  
  
 +
== Pripojenie LCD a LED displeja a lokálne zobrazenie meranej veličiny ==
  
 
 
  
== Pripojenie LED a LCD displeja a lokálne zobrazenie meranej veličiny ==
 
  
 +
V tejto časti cvičenia zobrazíme meranú veličinu na miestnom LED alebo LCD displeji mikropočítača. Z tejto časti vám nevyplýva žiadna úloha, len si pozrite príklady
 +
aby ste ich vedeli prípadne implementovať na svojom vlastnom reálnom Arduine s nejakým displejom.
 +
 +
 +
 +
=== Sedemsegmentový zobrazovač ===
 +
 +
<html>
 +
<iframe width="725" height="453" src="https://www.tinkercad.com/embed/7X46oojlMjd?editbtn=1" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
 +
</html>
 +
<BR>
 +
Ak sa vám príklad nezobrazí správne priamo tu, použite [https://www.tinkercad.com/things/7X46oojlMjd-misa-7-segment-4-digit-led-display/editel?sharecode=4ygjI4gH8xhMVXSfDyxGeZS8eGEbDSuEEmrfXKvw_to tento odkaz].
 +
<BR>
 +
<BR>
 +
 +
 +
<html>
 +
<iframe width="725" height="453" src="https://www.tinkercad.com/embed/gjGgeC1wSPg?editbtn=1" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
 +
</html>
  
V tejto časti cvičenia zobrazíme meranú veličinu na miestnom LCD displeji mikropočítača.  
+
Ak sa vám príklad nezobrazí správne priamo tu, použite [https://www.tinkercad.com/things/gjGgeC1wSPg-misa-lcddemo/editel?sharecode=In_RCwIxVqMhXSORfP1HGFq724LNdf4-8hn1Yr6oN0g tento odkaz].
  
 
== Programovateľný LCD displej ==
 
== Programovateľný LCD displej ==
Riadok 64: Riadok 96:
 
* LCD zobrazovač. Klávesnica. <BR>[http://ap.urpi.fei.stuba.sk/mmp/prednaska02.pdf Obšírnejšie informácie o displejoch] (prednáška z predmetu MMP)
 
* LCD zobrazovač. Klávesnica. <BR>[http://ap.urpi.fei.stuba.sk/mmp/prednaska02.pdf Obšírnejšie informácie o displejoch] (prednáška z predmetu MMP)
  
 +
 +
<!--
  
 
=== LCD Modul ===
 
=== LCD Modul ===
Riadok 199: Riadok 233:
  
 
[[Obrázok:LCD_App_Mod_Schematic.png|center|450px]]
 
[[Obrázok:LCD_App_Mod_Schematic.png|center|450px]]
 +
 +
 +
 +
  
 
== Sedemsegmentový 4-miestny LED  displej ==
 
== Sedemsegmentový 4-miestny LED  displej ==
Riadok 290: Riadok 328:
  
  
 
+
-->
== Grafické priebehy na PC --Serial Plotter ===
 
 
 
[[Súbor:IconSerialPlotter.png|left]] Serial Plotter je trocha sofistikovanejší program ako Terminal, jeho úlohou je zakresliť graficky všetky prijaté informácie. Najjednoduchšie je posielať mu čísla, pričom ich môže byť aj viac, oddelených čiarkami. Každá jedna n-tica hodnôt musí končíť znakom pre nový riadok. V knižnici Serial použite bloky Serial Write Number pre čísla, Serial Write String pre čiarky a Serial Write Line pre ukončenie riadka. Neposielajte hodnoty príliš často, aby sa nepreplnil vstupný buffer.
 
* [https://hackaday.io/project/5334-serialplot-realtime-plotting-software Domovská stránka programu]
 
* [http://senzor.robotika.sk/zp/serialplot.zip Lokálna kópia]
 
 
 
<BR><BR>
 
 
 
[[Súbor:SerialPlotter01.png]]
 
 
 
<BR>
 
<BR>
 
 
 
 
 
* Graphics in Arduino IDE: http://www.idogendel.com/en/archives/489
 
* https://rheingoldheavy.com/new-arduino-serial-plotter/
 
 
 
Trocha zlozitejsie:
 
 
 
* http://arduino.stackexchange.com/questions/1180/serial-data-plotting-programs
 
* https://github.com/nprasan/ardugraph
 
 
 
 
 
 
 
 
 
[[MEMS inteligentné senzory a aktuátory#Cvi.C4.8Denia|Návrat na zoznam cvičení...]]
 
 
 
[[Category:MEMS]]
 
 
 
  
  
Riadok 371: Riadok 380:
 
* https://www.gnu.org/software/gsl/manual/html_node/Example-programs-for-Nonlinear-Least_002dSquares-Fitting.html
 
* https://www.gnu.org/software/gsl/manual/html_node/Example-programs-for-Nonlinear-Least_002dSquares-Fitting.html
 
* https://www.gnu.org/software/octave/doc/interpreter/One_002ddimensional-Interpolation.html#One_002ddimensional-Interpolation
 
* https://www.gnu.org/software/octave/doc/interpreter/One_002ddimensional-Interpolation.html#One_002ddimensional-Interpolation
 +
  
  
Riadok 391: Riadok 401:
 
[[Súbor:Example2-1.png|500px]]
 
[[Súbor:Example2-1.png|500px]]
  
Hodnotenie: 3 body
+
Hodnotenie: 5 bodov
  
Deadline: <FONT COlor="red">'''27. 2. 2018 '''</font>
+
Deadline: <FONT COlor="red">'''1. 3. 2021 '''</font>
  
  

Verzia zo dňa a času 13:54, 23. február 2021


Na tomto cvičení je cieľom pripojiť odporový senzor k Arduinu a zobraziť jeho zlinearizovanú hodnotu na nejakom miestnom displeji (LED, LCD a pod.) prípadne ju odoslať po sériovej linke do PC (v simulátore TinkerCAD).


Potenciometrické snímače

  1. Poskladajte si odporový senzor polohy so stupnicou (ak nemáte, použite senzor v TinkerCADe).
  2. Zmerajte prevodovú charakteristiku odporového senzora polohy pomocou ohmmetra (cvičenie 1).
  3. Senzor pripojte k A/D prevodníku mikropočítača a pomocou programu nižšie zmerajte prevodovú charakteristiku celého meracieho člena.
  4. Prevodovú charakteristiku zlinearizujte a doložte úspešnosť porovnaním metrologických parametrov.


Schéma zapojenia


Na pridanie do TinkerCAD triedy (classroom) použite tento link. Ak od vás program pýta vstupný kód, je to 1R5VXPBESZZT


Ak sa vám nezobrazuje vložený simulátor správne, použite prosím, tento link.


#define positionSensor 0       // define your pin here 0

int adcValue;
float outputValue;

void setup()
{
 Serial.begin(9600);           // typical values are 9600 or 115200
}
 
void loop()
{
 adcValue = analogRead(positionSensor); // read ADC value

 /*  =======  replace this section with your code ===== */

 outputValue = adcValue;       

 /*  ================================================== */

 Serial.println( outputValue );  // prints value over serial

 delay(100);                     // delay in milliseconds

}


Pripojenie LCD a LED displeja a lokálne zobrazenie meranej veličiny

V tejto časti cvičenia zobrazíme meranú veličinu na miestnom LED alebo LCD displeji mikropočítača. Z tejto časti vám nevyplýva žiadna úloha, len si pozrite príklady aby ste ich vedeli prípadne implementovať na svojom vlastnom reálnom Arduine s nejakým displejom.


Sedemsegmentový zobrazovač


Ak sa vám príklad nezobrazí správne priamo tu, použite tento odkaz.


Ak sa vám príklad nezobrazí správne priamo tu, použite tento odkaz.

Programovateľný LCD displej



Linearizácia prevodovej charakteristiky

1. Look-up table

 #include <avr/pgmspace.h>

 const PROGMEM int table[] = {11,12,15,...};
 
 return( table[adcValue] );

Viac info tu: https://www.arduino.cc/en/Reference/PROGMEM

2. Po častiach lineárna náhrada

  /* segment 1 */
 if (adcValue > x0) && (adcValue <= x1)
   y = k1 * adcValue + q1;

  /* segment 2 */
if (adcValue > x1) && (adcValue <= x2)
   y = k2 * adcValue + q2;

 return(y)

Dá sa použiť aj funkcia map v Arduine - https://www.arduino.cc/reference/en/language/functions/math/map/

3. Aproximácia funkcie

   y = a2 * adcValue^2 + a1 * adcValue + a0;
   return(y);




Úlohy

Úlohy, ktoré treba odovzdať:

  • Graf 1: prevodové charakteristiky
  • Chyby podľa EN 60 770
    • Nepresnosť
    • Meraná chyba
    • Nelinearita
    • Hysteréza
    • Neopakovateľnosť
  • Graf 2: chybové krivky (viď obr.)
  • Program pre mikroprocesor na linearizáciu

Example2-1.png

Hodnotenie: 5 bodov

Deadline: 1. 3. 2021


Návrat na zoznam cvičení...