22
uporaba mikrokrmilnikov pri meritvah poglavje tehnološke meritve

poglavje uporaba mikrokrmilnikov pri meritvahlab.fs.uni-lj.si/lat/uploads/metrologija/mikrokrmilniki_2014.pdf · . Title: PowerPoint Presentation Author: andrej Created Date: 1/5/2015

Embed Size (px)

Citation preview

Page 1: poglavje uporaba mikrokrmilnikov pri meritvahlab.fs.uni-lj.si/lat/uploads/metrologija/mikrokrmilniki_2014.pdf · . Title: PowerPoint Presentation Author: andrej Created Date: 1/5/2015

uporaba mikrokrmilnikov pri meritvah

poglavje

tehnološke meritve

Page 2: poglavje uporaba mikrokrmilnikov pri meritvahlab.fs.uni-lj.si/lat/uploads/metrologija/mikrokrmilniki_2014.pdf · . Title: PowerPoint Presentation Author: andrej Created Date: 1/5/2015

• laboratorijski dnevnik • osebni računalnik • mikrokontroler

''It's hard to make predictions, especially about the future.''

Niels Bohr.

Meritev je z napredkom tehnologije vedno več, več je tudi podatkov in komunikacije med napravami.

Page 3: poglavje uporaba mikrokrmilnikov pri meritvahlab.fs.uni-lj.si/lat/uploads/metrologija/mikrokrmilniki_2014.pdf · . Title: PowerPoint Presentation Author: andrej Created Date: 1/5/2015
Page 4: poglavje uporaba mikrokrmilnikov pri meritvahlab.fs.uni-lj.si/lat/uploads/metrologija/mikrokrmilniki_2014.pdf · . Title: PowerPoint Presentation Author: andrej Created Date: 1/5/2015

... This appliance also contains a scanner that can read RFID chips which helps in providing information about cooking, times and temperatures and even recipe suggestions. The sleek design of the stainless steel and glass appliance will surely be liked by advanced and gadget friendly audience. ... http://www.tuvie.com/small-kitchen-no-worries-vesta-cooktop-concept-can-handle-it

Page 5: poglavje uporaba mikrokrmilnikov pri meritvahlab.fs.uni-lj.si/lat/uploads/metrologija/mikrokrmilniki_2014.pdf · . Title: PowerPoint Presentation Author: andrej Created Date: 1/5/2015

automaton built in London circa 1800 by a Swiss mechanician, Henri Maillardet.

http://en.wikipedia.org/wiki/Maillardet%27s_automaton

Page 6: poglavje uporaba mikrokrmilnikov pri meritvahlab.fs.uni-lj.si/lat/uploads/metrologija/mikrokrmilniki_2014.pdf · . Title: PowerPoint Presentation Author: andrej Created Date: 1/5/2015

l. 1801

http://en.wikipedia.org/wiki/Jacquard_loom

Page 7: poglavje uporaba mikrokrmilnikov pri meritvahlab.fs.uni-lj.si/lat/uploads/metrologija/mikrokrmilniki_2014.pdf · . Title: PowerPoint Presentation Author: andrej Created Date: 1/5/2015
Page 8: poglavje uporaba mikrokrmilnikov pri meritvahlab.fs.uni-lj.si/lat/uploads/metrologija/mikrokrmilniki_2014.pdf · . Title: PowerPoint Presentation Author: andrej Created Date: 1/5/2015

John von Neumann (1945)

podatki in program so ločeni operacije so podane z ukazi naprava ima ločeni I/O enoti [http://en.wikipedia.org/wiki/Charles_Babbage]

Harvard architecture realizacija ~1944

ENIAC

MARK 1

Page 9: poglavje uporaba mikrokrmilnikov pri meritvahlab.fs.uni-lj.si/lat/uploads/metrologija/mikrokrmilniki_2014.pdf · . Title: PowerPoint Presentation Author: andrej Created Date: 1/5/2015

1971: prvi mikroprocesor Intel 4004 1976: prvi mikrokontroler Intel 8048 1978: Intel 8086, Motorola 68000, Z80,

na osnovi mikroprocesorja delujoč računalnik

Page 10: poglavje uporaba mikrokrmilnikov pri meritvahlab.fs.uni-lj.si/lat/uploads/metrologija/mikrokrmilniki_2014.pdf · . Title: PowerPoint Presentation Author: andrej Created Date: 1/5/2015
Page 11: poglavje uporaba mikrokrmilnikov pri meritvahlab.fs.uni-lj.si/lat/uploads/metrologija/mikrokrmilniki_2014.pdf · . Title: PowerPoint Presentation Author: andrej Created Date: 1/5/2015

[http://www.mikroe.com/chapters/view/64/chapter-1-introduction-to-microcontrollers/]

Page 12: poglavje uporaba mikrokrmilnikov pri meritvahlab.fs.uni-lj.si/lat/uploads/metrologija/mikrokrmilniki_2014.pdf · . Title: PowerPoint Presentation Author: andrej Created Date: 1/5/2015

mikrokontrolerje z EPROM pomnilnikom se programira električno, spomin pa se pobriše optično z UV svetlobo (Erasable Program Memory) ali pa imajo le PROM (Programmable Read-Only Memory) (se ne da izbrisati)

Page 13: poglavje uporaba mikrokrmilnikov pri meritvahlab.fs.uni-lj.si/lat/uploads/metrologija/mikrokrmilniki_2014.pdf · . Title: PowerPoint Presentation Author: andrej Created Date: 1/5/2015
Page 14: poglavje uporaba mikrokrmilnikov pri meritvahlab.fs.uni-lj.si/lat/uploads/metrologija/mikrokrmilniki_2014.pdf · . Title: PowerPoint Presentation Author: andrej Created Date: 1/5/2015
Page 15: poglavje uporaba mikrokrmilnikov pri meritvahlab.fs.uni-lj.si/lat/uploads/metrologija/mikrokrmilniki_2014.pdf · . Title: PowerPoint Presentation Author: andrej Created Date: 1/5/2015
Page 16: poglavje uporaba mikrokrmilnikov pri meritvahlab.fs.uni-lj.si/lat/uploads/metrologija/mikrokrmilniki_2014.pdf · . Title: PowerPoint Presentation Author: andrej Created Date: 1/5/2015

The Tactilus Free Form® sensor system is designed to allow the user to collect pressure, magnitude and distribution data from selected locations across the human body. The Free Form® philosophy is to empower the user to select the precise location where they require data collection rather than the constrained “matrix” inherent in traditional fixed tactile surface sensors. The Data is then assimilated through a powerful yet userfriendly Windwos® based tool kit.

Page 17: poglavje uporaba mikrokrmilnikov pri meritvahlab.fs.uni-lj.si/lat/uploads/metrologija/mikrokrmilniki_2014.pdf · . Title: PowerPoint Presentation Author: andrej Created Date: 1/5/2015
Page 18: poglavje uporaba mikrokrmilnikov pri meritvahlab.fs.uni-lj.si/lat/uploads/metrologija/mikrokrmilniki_2014.pdf · . Title: PowerPoint Presentation Author: andrej Created Date: 1/5/2015
Page 19: poglavje uporaba mikrokrmilnikov pri meritvahlab.fs.uni-lj.si/lat/uploads/metrologija/mikrokrmilniki_2014.pdf · . Title: PowerPoint Presentation Author: andrej Created Date: 1/5/2015

n = 12; a = 1; b = 1.1; rob = 0.03

for i = 1:n

if mod(i,2)==0

x(i) = a;

else

x(i) = b;

end

end

p = zeros(n,1); p(1) = x(1);

disp([x(1),p(1)])

figure(1); clf

plot(1,x(i),'r*'); hold on

plot(1,p(1),'go'); grid on

axis([0 n a-rob b+rob])

for i = 2:length(x)

p(i) = p(i-1) + 1/(i-1)*(x(i)-p(i-1));

disp([x(i),p(i)])

end

plot(1:n,x,'r*');

plot(1:n,p,'g.-') 0 2 4 6 8 10 12

0.98

1

1.02

1.04

1.06

1.08

1.1

1.12

0 20 40 60 80 100 120

0.98

1

1.02

1.04

1.06

1.08

1.1

1.12

Page 20: poglavje uporaba mikrokrmilnikov pri meritvahlab.fs.uni-lj.si/lat/uploads/metrologija/mikrokrmilniki_2014.pdf · . Title: PowerPoint Presentation Author: andrej Created Date: 1/5/2015

/* program: latlogR2.ino info: [email protected] datum: 6.maj.2013 */ #include "Wire.h" #include "SD.h" #define DS1307_I2C_ADDRESS 0x68 String ver = "latlogR2.ino"; // ime programa - verzija // naslednjo vrstico spreminjaj le če si zamenjal baterijo String menjava_baterije = "modulE,2013,4,26"; // leto(0:99) mesec(1:12) dan(1:31) const int chipSelect = 8; // obvezno za SD kartico const int delta = 333; //delta je čas ko hitra zanka povpreči A0 const String d = " , "; // delimiter za tekstovni filet byte second, minute, hour, dayOfWeek, dayOfMonth, month, year; byte secondA, minuteA, hourA, dayOfWeekA, dayOfMonthA, monthA, yearA; byte secondB, minuteB, hourB, dayOfWeekB, dayOfMonthB, monthB, yearB; String vrst; File filet; int j=0, k=0, r; float rms,nrms; float Mn, Mk, Qk; float mrms, Mrms, avg_rms ; boolean A = false; byte af = 0; // af ... activity flag long sek; unsigned long T0; byte ii; float zg_mejni_rms, sp_mejni_rms; void setup(){ byte ii = 0; Wire.begin(); Serial.begin(9600); Serial.println(">"); getDateDs1307(&second, &minute, &hour, &dayOfWeek, &dayOfMonth, &month, &year); vrst = "*** Start "+ver+": " +String(year)+"-"+String(month)+"-"+String(dayOfMonth)+" , "+String(hour)+":"+String(minute)+":"+String(second)," *** "; Serial.println(vrst); avg_rms = analogRead(A0); Serial.print("Inicializacija SD kartice ..."); pinMode(10, OUTPUT); // pin 10 mora biti vedno nastavljen kot izhod, tudi če ga ne uporabljamo if (!SD.begin(chipSelect)) { // preveri, če je kartica na voljo in se jo da inicializirati Serial.println("... kartica ni na voljo!"); return; } Serial.println("... kartica inicializirana."); if (!SD.exists("modulE.txt")){ // Ime datoteke s podatki. Črka X mora biti identična oznaki modula. X = A, B, C ... vrst = menjava_baterije; vpis(vrst); } }

void loop () { T0 = millis(); // sprožimo štoparico k = 0; // reset števca zajemov k... Qk = 0; while ((millis() - T0) < delta) { //dokler je pretečeni čas <delta ponavljaj // * r = analogRead(A0); // beri A0 k++; Mn = Mk + (r-Mk)/k; // sumacija vrednosti Qk = Qk + (k-1)*(r-Mk)*(r-Mk)/k; // sumacija kvadratov zajetih vrednosti Mk = Mn; } nrms = sqrt( Qk / (k-1)); // novi_rmsI // to ni povprečni ampak malo poglajeni trenutno povprečni tok avg_rms = (avg_rms + nrms) / 2; zg_mejni_rms = 1.2 * avg_rms; sp_mejni_rms = 0.8 * avg_rms; if (nrms > zg_mejni_rms | A == true){// če zadnji izmerek kaže na aktivnost, prej pa je ni bilo if (A == false) { A = true; // A je true toliko časa dokler traja aktivnost af = 1; // af je 1 le da zapišemo prvo vrstico aktivnosti } // če prej ni bilo aktivnosti, dvigni zastavico za aktivnost */ zapis(round(Mk), round(nrms)); } if (nrms < sp_mejni_rms | A == false){ // recimo, da je do tega trenutka bila aktivnost if (A == true) { A = false; } } }

Page 21: poglavje uporaba mikrokrmilnikov pri meritvahlab.fs.uni-lj.si/lat/uploads/metrologija/mikrokrmilniki_2014.pdf · . Title: PowerPoint Presentation Author: andrej Created Date: 1/5/2015

#include "Wire.h" #define DS1307_I2C_ADDRESS 0x68 byte second, minute, hour, dayOfWeek, dayOfMonth, month, year; int i; String vrst; byte decToBcd(byte val) { return ( (val/10*16) + (val%10) ); } // Convert binary coded decimal to normal decimal numbers byte bcdToDec(byte val) { return ( (val/16*10) + (val%16) ); } void setDateDs1307(byte second, byte minute, byte hour, byte dayOfWeek, byte dayOfMonth, byte month, byte year) { Wire.beginTransmission(DS1307_I2C_ADDRESS); Wire.write(0); Wire.write(decToBcd(second)); // 0 to bit 7 starts the clock Wire.write(decToBcd(minute)); Wire.write(decToBcd(hour)); // If you want 12 hour am/pm you need to set // bit 6 (also need to change readDateDs1307) Wire.write(decToBcd(dayOfWeek)); Wire.write(decToBcd(dayOfMonth)); Wire.write(decToBcd(month)); Wire.write(decToBcd(year)); Wire.endTransmission();} // Gets the date and time from the ds1307 void getDateDs1307(byte *second, byte *minute, byte *hour, byte *dayOfWeek, byte *dayOfMonth, byte *month, byte *year) {Wire.beginTransmission(DS1307_I2C_ADDRESS); //Reset the register pointer Wire.write(0); Wire.endTransmission(); Wire.requestFrom(DS1307_I2C_ADDRESS, 7); // A few of these need masks because certain bits are control bits *second = bcdToDec(Wire.read() & 0x7f); *minute = bcdToDec(Wire.read()); *hour = bcdToDec(Wire.read() & 0x3f); // Need to change this if 12 hour am/pm *dayOfWeek = bcdToDec(Wire.read()); *dayOfMonth = bcdToDec(Wire.read()); *month = bcdToDec(Wire.read()); *year = bcdToDec(Wire.read());}

void setup(){ Serial.println("*** START ***"); Wire.begin(); Serial.begin(9600); // nastavitev časa // nastavimo enkrat, nato zakomentiramo klic (setDateDs1307) second = 0; minute = 29; hour = 11; dayOfWeek = 5; dayOfMonth = 26; month = 4; year = 13; setDateDs1307(second, minute, hour, dayOfWeek, dayOfMonth, month, year); } void loop () { for (i=0; i<12; i++){ getDateDs1307(&second, &minute, &hour, &dayOfWeek, &dayOfMonth, &month, &year); vrst = " " + String(year) + " , " + String(month) + " , " + String(dayOfMonth) + " , "; vrst += String(hour) + " , " + String(minute) + " , " + String(second) + " ; "; Serial.println(vrst); } while(1){ } }

Page 22: poglavje uporaba mikrokrmilnikov pri meritvahlab.fs.uni-lj.si/lat/uploads/metrologija/mikrokrmilniki_2014.pdf · . Title: PowerPoint Presentation Author: andrej Created Date: 1/5/2015

http://www.sensorprod.com/ http://www.circuitstoday.com/basics-of-microcontrollers