Nisam se baš toliko duboko uvalio kao ti.
Koristio sam primjere i gotove sketcheve koje sam samo nadoštukljao i onda "potrimao" da radi.
Cilj je bio vidjeti da li tlak raste ili pada. Točan tlak nisam uspio dobiti iako sam koristio primjer koji izračunava na osnovu temperaturne kompenzacije i umjernih konstanti koje su memorirane u chipu. To ipak ne radi dobro, vjerojatno te konstante nisu dobre. Ipak je ta pločica 2$.
I ja koristim gotove sketcheve, ali se trudim razumjeti što koja komponenta radi. Recimo, ovaj barometar, ima više načina pristupanja, no na kraju se sve svodi na pravilan redosljed čitanja podataka - prvo se MORA očitati temperatura, da bi senzor bio oslobođen te varijable, a zatim izračunao i ostatk.
Da bi vidio dali tlak raste i pada, a da ne moraš pamtiti, na tvom LCD-u vidim da si malo pomaknuo oznake (hPa, °C, %RH) udesno, a mogao bi to vratiti za dva polja ulijevo i nadodati matematiku (pošto imaš RTC clock, ja za sada nemam) tako da ti izračunava i izbaci gotovu cifru promjene tlaka recimo u jednom satu (ili što god već poželiš, po minuti ako treba). Isto i za temperaturu i za vlažnost, iako je svima nama ovaj tlak dosta bitan.
Može se uzeti kompenzacija za razliku visine između npr. Griča i Velike Gorice, III kat ali to nije dovoljno, jer je to sve skupa nelinearno.
Znam da je nelinearno, tlak se po visini mijenja p^1.5... ne znam točnu cifru ni matematiku (za sada, ali sam vidio). No kao i svaka nelinearnost, u manjem rasponu mjerenja postoji dosta linearan dio. Ovo za 3. kat... a odokativno, po google maps-u pogledaš što oni kažu za tvoju lokaciju, pa onda na to + nekih 10-tak metara. Recimo, za moju lokaciju je 82 metra, a ovjdje kod mene je 84 (2 metra višlje). Ima razlike, ne prevelike, ali ima. U samom sketch-u (ovisi od koga si uzeo), postoji varijabla koja se ubaci u jednostavnu matematiku, a algoritam preračuna ostalo. Nisam siguran, ali mislim da sam senzor odrađuje taj dio, samo mu moraš reći na kojoj si visini.
Imam mogućnosti vrlo točnog generiranja apsolutnog tlaka (pomoću tlačne vage točnosti 5ppm) pa bi mogao izmjeriti u recimo 20 ili više točaka i provući interpolacijski polinom, što bi poboljšalo točnost (za to bi mi trebalo 5 dana), ali bi ipak ostao utjecaj temperature.
Moja namjera nije natjecanje u točnosti sa ostalim meteorološkim stanicama. Uostalom, nemam pojma gdje je morska razina... i taj podatak treba, jer plime/oseke... jer tada ni moja nadmorska visina od 82 metra nikada nije točna, pošto se razina mora stalno mijenja. Meni je isto tako bitan apsolutni tlak, da bi znao preračunati mjerenje visine pomoću tlakomjera. No ono što je ovdje bitno je to da je sam senzor... takav kakav jeste - jeftino kinesko... ima i skupljih, samo.. uvijek muka s tim novcima.
Ne znam više točno koji je senzor, neki BMP je. Za temperaturu je onaj bijeli rešetkasti DH nešto. Imam pločicu sa SD card utorom i RTC-om, na koju je stavljen BMP i DH. Sve na I2C.
BMP085 ili BMP180, svejedno - obadva rade dobro svoj posao, iako sa malo 'grbavosti' ako se ne pegla. Za vlagu i temperaturu, DHT11 ili DHT22. Ovaj drugi je 4 puta precizniji, za samo dvostruko novaca.
Pločica ispod LCD-a je samo razvod nožica sa shield-a na LCD i namještanje osvjetljenja. Pločica sa dugačkim pinovima je baterija sa punjačem i nekakva WiFi veza koju nisam koristio.
Negdje sam vidio odličnu stvar sa kombinacijom WiFi-ja i MCU-a. Podatke možeš očitavati lokalno, na nekom recimo LCD-u, a može se onda i pristupiti putem web browsera, nešto kao "
http://123.123.23.23/moj_senzor_1.html" ili /main.html, gdje onda napraviš cijeli preglednik za sve postojeće senzore. Prednost ovoga je štu unutar dometa kompjutera samo klikneš na spremljeni bookmark i imaš sve kao na dlanu. Mana je što se moraš malo patiti sa PHP i Java, kao i ostalim glavolomkama,... nisam još stigao do tog dijela. Može se teoretski otvoriti kanal prema internetu i djeliti podatke, no tu se ne bi za sada upuštao, jer bi mi isto tako neko mogau ući po istom kanalu.
Moj loger radi tako da očitava RTC cijelo vrijeme i ispisuje na LCD, a senzore očitava svaku sekundu. Slijedeći je zadatak koristiti 1S square puls sa RTC-a koji bi preko interapta pokretao potprogram za očitavanje senzora. To bi bilo "čišće". Zapis na SD radi ali je za sada onemogućen. Planiram još napraviti web server, i povezati sa PC-jem na kojem ću preko matlaba ili nečeg sličnog napraviti prikaz podataka.
Obadvije ideje su super - i pohrana podataka (log) i web server. Iako bi možda bilo bolje podatke slati na neki HUB (ne, ne na pornhub
), pa čitati odakle god želiš.
Toliko o logeru.
Sad malo o žiroskopima, akcelerometrima i sl. Osim očigledne činjenice da ardupilot ima sve što ti treba, arduino je kompatibilan, open source, itd. ima i drugih zanimljivih pločica. Odeš na e-bay i potražiš "ahrs" ili "10DOF" ili "9DOF" pa češ naći upravo ono što ti treba, osim GPS-a. Ima i gotovih libraryja sa filtriranjem i preračunavanjem u koji već pozicioni sustav želiš (najpopularniji su kvaternioni). Za par dolara. Dobro, ahrs je oko 30$, ali on ima kontroler na sebi, sa već ubačenim softwaretom koji preko serijskog porta šalje već obrađene podatke.
Ma lijepo je to sa gotovim žiroskopima i ostalim. Ja želim znati kako sve to radi, i kako međusobno koordinirati podatke, te vidjeti što mi od toga treba, kada i gdje. Zato i radim ovako pojedinačno - koje je naravno u konačnici skuplje. Ali to je mala cijena koja se plati za upoznavanje pojedinih komponenti. Naravno, ima ljudi koje to ne zanima. Recimo, za odmor koristim ovaj moj mali Eachine H8 - samo napuniš bateriju, spojiš i letiš. Prava uživancija. Nema kompas, GPS, plan leta.. ništa, samo gyro/acc i to je sve što mu treba. A samo 100 kuna. Naravno da taj mali ne može nikakvu kameru (može, ali su te mikro-minijaturne preskupe).
Eto to je mudrost koju sam uspio skupiti, plus par desetaka megabajta kojekakvih primjera. Ali nisam išao u dubinu kako što radi, samo toliko da profunkcionira. Sad više nemam vremena za taj dio zanimacija, više sam orjentiran vanjskim aktivnostima...
[/qute]
Ne idem ni ja u neku dubinu ako nije nužno. Uglavnom uzmem gotove sketcheve, preopravim, doradim. Za prikaz koristim ono što za sada imam pri ruci: ovaj mali Nokia 5110 LCD ili serisku vezu, pa vizualiziram preko Processing (može i mathlab, no nisam familijaran s njim) na PC. Tek sam počeo sa arduinom. Prije sam se patio sa PIC-em, odlična stvar, samo sam pokušavao raditi u strojnom kodu... pa sam odustao ili odgodio zbog glavobolje - da bi išta smisleno dobio, moraš biti guru u manipulaciji podacima, poznavati arhitekturu samog MCU-a, parametre... hrpa stvari. Ovo je super kod arduina - bez obzira imao najmanji ili najveći, sve je isto - jedino se mora paziti na količinu memorije. Milina.
Pozdrav
Davor
LP,
milan
---