data logger homemade?
#31
Postat 02 November 2005 - 07:25 PM
In rest ... platesti mai mult daca ai pretentii mai mari de la ele ...sau mai putin daca esti mai modest.
La o adica se poate construi chiar si fara nici un microprocesor sau microcontroler ... sa bage direct in memorie rezultatul conversiei ... pe masura ce acesta e disponibil... urmind ca ulterior sa prelucrezi datele.
Banuiesc ca nu e cazul construirii doar a unui datalogger ... ci se intentioneaza realizarea unui proiect care sa fie disponibil si relativ usor de realizat de catre oricine are nevoie de asa ceva. Pentru cazuri particulare se pot folosi componente care se gasesc .. si ma refer la unii care au acces pe la facultati la unele catedre care detin asemenea convertoare si de unde pot obtine cite o bucata.
#32
Postat 02 November 2005 - 09:03 PM
sebip, la 2 Nov 2005, 11:00, a spus:
Citeaza
Nu au nici un fel de probleme, pt 1 sec merge orice convertor (cu orice tehnica de conversie)
Citeaza
asta complica putin lucrurile in sensul ca e nevoie si de alimentare cu tensiune negativa a citorva circuite (convertorul analog digita, multiplexor de semnale, eventuale amplificatoare ...)
Memoria:
- pentru 4 semnale analogice pe 12 biti = 4 x 2 (pentru memorii cu datele pe 8biti) = 8 octeti
- deci la o rata de 1 secunda e nevoie de 8 octeti de date
- 1 minut = 8 x 60 = 480 octeti
- 1 ora = 480 x 60 = 28 800 octeti
- 5 ore = 28800 x 5 = 144 000 octeti = 140,625 Kbyte
da, in plus asa cum discutam si cu marius exista problema pierderii unui bit deoarece trebuie sa-l folosesti sa stochezi semnul valorii inregistrate.
de aceea noile planuri includ 0-5 Volti. (voi face un offset) de 5 Volti si diminuat range-ul la 2.5 Volti.
Procurarea pieselor nu este o problema.
sistemul montat la bordul capsulei/probei nu va face nici un fel de prelucrare de date. sistemul respectiv doar va inregistra datele cu rezolutia de timp fixata pe pamant. prelucrarea datelor se va face dupa zbor, dupa downloadul lor din memorie intr-un PC. problema proiectului (adica scopul) nu este construirea data logger-ului ci determinarea atitudinii si pozitiei probei cu sistemul inertial respectiv.
intrebare: cum se poate baga rezultatul conversiei analog-digitale direct in memorie fara microprocesor/microcontroller?
MIG-29
Aceasta postare a fost editata de MIG-29: 02 November 2005 - 09:08 PM
#33
Postat 03 November 2005 - 12:17 AM
Compresia de care vorbesc, in cazul in care sirul de date este absolut incompresibil (datele difera mereu) nu are un overhead mai mare de 2% spatiu necesar. Sau un bit suplimentar la 48 de biti.
Poti sa testezi loggeru pe un aeromodel planor, zmeu sau sa-l plimbi cu bicicleta (ceva fara vibratii de la motor), apoi sa vezi cat de util e algoritmu pe sirul de date. Daca obtii o compresie semnificativa probabil merita folosit si pe balon, care calatoreste mult mai linistit.
Legat de BasicStamp vs. PIC vs. Atmel - nu conteaza ce folosesti atata timp cat e mai comod si nu te limiteaza. Daca nu ai restrictii de viteza poti merge linistit cu BasicStamp, altfel as recomanda atmelu pt. ca gasesti un compilator de BASIC, care e relativ ieftin si usor de folosit dar si mult mai rapid decat BasicStamp-ul.
Fara procesor deloc nu stiu daca s-o putea.
Poate merita sa te gandesti si la varianta cu transmisia.. La baloanele astea oricum tre sa le pui un radio+modem care sustin cel putin 1200 baud. Daca citesti senzorii de 10 ori pe secunda obtii 480 biti in secunda respectiva, adica un pachet de 60 octeti - transmisia continua ar folosi mai putin de jumate din capacitatea legaturii de 1200 baud.
cezar
#34
Postat 03 November 2005 - 01:11 AM
D3xt3r_Jr., la 31 Oct 2005, 19:30, a spus:
Salutare.
Mai dexterel nu mai imi aminti de alea, din doua am ramas cu unul, ca fratelel lui geaman a fost shutit de un curios la tib de sub nasul profului.
Mig-ule stii la fel de bine ca si mine: vb lunga saracia omului.
Eu zic sa folosesti convertoare pe 16 biti si meorie flash pe SPI, se gasesc f ieftine cu capacitati de 16Mb. Apropo de semn ce tot va incurcati translatati domeniul -5g +5g in 0-5V cu 2.5V pt 0g si gata.
Eu din experienta mea iti sugerez sa implementezi un mic filtru de mediere migule acolo. Nu lua un sample la 1 sec ci mult mai des 10.. 100sample/sec. Algoritmul e banal: stochezi o val intr-un reg (r1), la o noua conv il muti in alt reg (r2) si in locul lui scrii noua valoare (adica in r1). Aduni valorile si pe urma faci un shift right (impartire cu doi) rezultatul il bagi in locul celui mai nou eshantion (r1) si tot asa.. tot ce trebuie e sa reglezi durata de "mediere" care o poti pune cat vrei 0.1s 1h. Si pt a face medierea pt un nou interval, primul eshantion il copii de doua ori iar media va fi prorpia lui vlaore.
Algoritmul nu este impecabil (e sensibil la zgomote de tip impuls mai ales daca au loc spre sfarsitul intervalului de mediere) insa la mine a dat rezultate super bune eliminat zgomotul de pe ultimii biti care mai aparea.
Principalul avantaj al filtrarii asteia este ca rezultatul final va tine cont de eventualele variatii rapide de acceleratie. Chestia asta m-a ajutat enorm sa obtin date precise in datalogerul de care zicea Dexterel pt ca acolo aveam variatii super rapide de acceleratie 1-10g in 0.2s iar rata de stocare adatelor era de 0.1sec insa perioada de converie era de 0.005sec
Acum hai sa vedem ce memorie iti trebuie: 2octeti pe secunda timp de 5h * 4 canale =144kocteti = 1.152Mb
Spor la treaba!
PS nu am avut timp sa citesct toate postariel asa ca daca cumva am repetat ce au zis si altii scuze...
Aceasta postare a fost editata de MrSpace: 03 November 2005 - 01:18 AM
#35
Postat 03 November 2005 - 01:24 AM
MrSpace, la 3 Nov 2005, 01:11, a spus:
D3xt3r_Jr., la 31 Oct 2005, 19:30, a spus:
Salutare.
Mai dexterel nu mai imi aminti de alea, din doua am ramas cu unul, ca fratelel lui geaman a fost shutit de un curios la tib de sub nasul profului.
Mig-ule stii la fel de bine ca si mine: vb lunga saracia omului.
Eu zic sa folosesti convertoare pe 16 biti si meorie flash pe SPI, se gasesc f ieftine cu capacitati de 16Mb. Apropo de semn ce tot va incurcati translatati domeniul -5g +5g in 0-5V cu 2.5V pt 0g si gata.
Eu din experienta mea iti sugerez sa implementezi un mic filtru de mediere migule acolo. Nu lua un sample la 1 sec ci mult mai des 10.. 100sample/sec. Algoritmul e banal: stochezi o val intr-un reg (r1), la o noua conv il muti in alt reg (r2) si in locul lui scrii noua valoare (adica in r1). Aduni valorile si pe urma faci un shift right (impartire cu doi) rezultatul il bagi in locul celui mai nou eshantion (r1) si tot asa.. tot ce trebuie e sa reglezi durata de "mediere" care o poti pune cat vrei 0.1s 1h. Si pt a face medierea pt un nou interval, primul eshantion il copii de doua ori iar media va fi prorpia lui vlaore.
Algoritmul nu este impecabil (e sensibil la zgomote de tip impuls mai ales daca au loc spre sfarsitul intervalului de mediere) insa la mine a dat rezultate super bune eliminat zgomotul de pe ultimii biti care mai aparea.
Acum hai sa vedem ce memorie iti trebuie: 2octeti pe secunda timp de 5h * 4 canale =144kocteti = 1.152Mb
Spor la treaba
PS nu am avut timp sa citesct toate postariel asa ca daca cumva am repetat ce au zis si altii scuze...
Salutari!
Pai deja decizia cu 0-5 Volti este luata si implementata. A durat fix 20 de minute sa "ajustez" lucrurile.
Medierea este o metoda in cazul existentei zgomotului "random" (adica probabilitatea de gresire in sus este egala cu probabilitatea de gresire in jos). algoritmul este folosit si in astronomie la preluarea imaginilor cu sistemele CCD. Cresti numarul de poze ale aceluiasi obiect astronomic si S/N (semnal/zgomot) scade cu radical din N unde n este numarul de preluari de date.
Propriu zis preluand de mai multe ori aceeasi stea, cresti nr de fotoni utili si scazi zgomotul (zgomotul variaza cu egala probabilitate in sus si in jos si astfel per total nivelul de zgomot scade).
Asta se aplica pe durate de timp (durata de medie) mai mici decat durata medie de variatie a parametrului de inregistrat. Cu alte cuvinte daca am variatii semnificative ale acceleratiei pe intervale de 0.5 secunde atunci nu pot face medierea pe 1 secunda ci pe durate mai mici decat 0.5 secunde (practic se foloseste 0.25 secunde).
Deocamdata eu nu voi incerca sa fac medierea ci doar voi inregistra semnalele cu rezolutie de 1 secunda. Chiar si la rezolutie de 0.2 secunde, nu exista probleme cu memoria deoarece cantitatea de memorie necesara este sub 16 Mb. Probabil voi merge pe flash-uri de memorie de la Atmel de 16 Mb si probabil pe microcontroller Atmel... am inteles din discutiile de aici ca e mai usor de interfatat memorie flash atmel pe microcontroller atmel decat memorie flash atmel pe basic stamp...
Nu numai ca am inteles asta dar am vazut pe propria piele ce inseamna sa interfatezi (sa incerci sa interfatezi) memorie flash cu basic stamp...
Inca sunt deschis sugestiilor. Problema telemetriei deocamdata ramane in afara discutiei deoarece ar complica proiectul fara sa aduca nimic nou din punctul de vedere al obiectivului de atins si anume determinarea atitudinii si pozitiei fara folosirea giroscoapelor.
MIG-29
#36
Postat 03 November 2005 - 02:05 AM
Te-am intrebat ce model de acc vrei sa folosesti ! Inca nu mi-ai spus.
Zici ca ai nevoie de 4 canale. 1 acc, 2 alt, 3 si 4 ???
Daca vrei sa folosesti AD pe 16 biti mariusc ti-a indicat un convertor foarte bun : LTC1684. Este usoe de folosit si merge bine.
Daca vrei sa folosesti PIC cu AD pe 12 biti....spune. In domeniul PIC pot sa-ti dau o mina de ajutor. Pt Atmel...good luck ! :)
Dragul meu, te contrazici si nu esti hotarit ! Spui :
QUOTE "doresc sa determin acceleratiile pana la nivelele cele mai mici"
In interval de 1 sec trec MULTEEE acceleratii pe linga tine !!!!!!
Deci pina la urma care este precizia dorita ?
MrSpace ti-a dat o solutie : esantionezi mai des si faci media. Poti sa faci media la mai multe esantioane ( decit doua ) si obtii date mai exacte.
La accelerometre problema este ca daca folosesti sensibilitate mare ai zgomot mare. Deci alege calea cea mai buna in asa fel incit la timpul de esantionare propus sa ai cele mai bune rezultate.
Ti-am spus : pt acc poti folosii un model cu iesire PWM si SCAPI de AD !
Atentie : pt senzorii de presiune, care se folosesc la altimetre, trebuie sa faci filtru si amplificator. In acest fel o sa ai o buna liniaritate a datelor. In general, fara, ai nivel mare de zgomot !
Deci, da-ne date mai exacte si nu-ti fie frica sa folosesti AD-uri pe 16 biti daca ai nevoie. Al de jos :D nu este asa de negru ! Totul se face si se rezolva
Si, by the way : datele in memorie, fara procesor, pot fi bagate doar...cu CIOCANU si DALTA :D ...vorba unui coleg de-al nostru care mai spune ca daca nu merge...ia un ciocan mai MARE !
Multa bafta and be COOL
#37
Postat 03 November 2005 - 02:26 AM
Charly, la 3 Nov 2005, 02:05, a spus:
Te-am intrebat ce model de acc vrei sa folosesti ! Inca nu mi-ai spus.
Zici ca ai nevoie de 4 canale. 1 acc, 2 alt, 3 si 4 ???
Daca vrei sa folosesti AD pe 16 biti mariusc ti-a indicat un convertor foarte bun : LTC1684. Este usoe de folosit si merge bine.
Daca vrei sa folosesti PIC cu AD pe 12 biti....spune. In domeniul PIC pot sa-ti dau o mina de ajutor. Pt Atmel...good luck ! :)
Dragul meu, te contrazici si nu esti hotarit ! Spui :
QUOTE "doresc sa determin acceleratiile pana la nivelele cele mai mici"
In interval de 1 sec trec MULTEEE acceleratii pe linga tine !!!!!!
Deci pina la urma care este precizia dorita ?
MrSpace ti-a dat o solutie : esantionezi mai des si faci media. Poti sa faci media la mai multe esantioane ( decit doua ) si obtii date mai exacte.
La accelerometre problema este ca daca folosesti sensibilitate mare ai zgomot mare. Deci alege calea cea mai buna in asa fel incit la timpul de esantionare propus sa ai cele mai bune rezultate.
Ti-am spus : pt acc poti folosii un model cu iesire PWM si SCAPI de AD !
Atentie : pt senzorii de presiune, care se folosesc la altimetre, trebuie sa faci filtru si amplificator. In acest fel o sa ai o buna liniaritate a datelor. In general, fara, ai nivel mare de zgomot !
Deci, da-ne date mai exacte si nu-ti fie frica sa folosesti AD-uri pe 16 biti daca ai nevoie. Al de jos :D nu este asa de negru ! Totul se face si se rezolva
Si, by the way : datele in memorie, fara procesor, pot fi bagate doar...cu CIOCANU si DALTA  :D ...vorba unui coleg de-al nostru care mai spune ca daca nu merge...ia un ciocan mai MARE !
Multa bafta and be COOL
Salutari!
clarificari si precizari:
Pai am spus de la inceput ca e vorba de 4 accelerometre Entran; am spus ca e vorba de 4 accelerometre deci 4 canale.
Nu am spus modelul deoarece pana astazi nu am ajuns in laborator si dintre cele tzshpe mii de modele available voi folosi Entran EGCS311/312- custom made fara electronica integrata pe ele.
Cand spuneam nivelele cele mai mici ma refeream la faptul ca vreau sa determin cat mai precis posibil deci rezolutie de timp cat mai mare posibila dar fara a avea nevoie de un sistem electronic ridicol de complicat. De exemplu daca pentru 0.5secunde am nevoie de un sistem electronic ce necesita 80 de ore de munca si pentru 0.3 secunde am nevoie de un sistem electronic ce necesita 850 de ore de munca atunci fii sigur ca cel mai mic nivel va fi "0.5 secunde". Precizia de determinare a acceleratiei (precizia dorita) este de 700 micro-g (si asta am spus de la inceput si oricum precizia asta o stabilesc din plaja de voltaj relativ la cei 16 biti folositi.
Deocamdata ma uit la varianta 16 biti, cu microcontroller Atmel si flash memory 16 Mbit tot de la Atmel. Care ar fi dezavantajele dezvoltarii modului in jurul unui PIC cu memorie Atmel? Deja am programator de PIC-uri...
Asa cum am mai spus pe portiunea analogica folosesc 4 filtre active de ordinul 2 Butterworth (investighez daca cebyshev ar face treaba mai buna deoarece in banda de trecere Butterworth introduce mici oscilatii). De asemenea exista si 4 amplificatoare cu gain reglabil.
Inca astept (bineinteles daca-i publicabila) solutia de a inregistra datele fara microprocesor/microcontroller.
MIG-29
Aceasta postare a fost editata de MIG-29: 03 November 2005 - 02:39 AM
#38
Postat 03 November 2005 - 10:07 AM
Daca se folosesc memorii SPI sau I2C ... atunci e necesara utilizarea unui microcontroler sau microprocesor, de asemenea daca se doreste realizarea unor medii sau alte prelucrari care se fac direct in datalogger iar e nevoie de un microcontroler.
Compilatoare de Basic sunt aproape pentru toate microcontrolerele uzuale: 8051, AVR, PIC, ATmega ...
#39
Postat 03 November 2005 - 11:10 AM
---------------
Cred ca schema cu adresarea memoriei cu numaratoare si circuite cu logica de comanda pentru scriere direct de la A/D e mai complicata decat uC + memorie SPI sau I2C. Osciloscoapele or avea nevoie de viteza de o fac asa.
----------------
Legat de mediere - daca de ex.esantionezi de 10 ori pe sec, deci citesti o data la 100 ms - citirea respectiva poate dura mult mai putin, de ex 0.1ms. In cele de 99,9 ms dintre doua citiri acceleratia se poate modifica de f. multe ori. La asta se refera charly cand zice ca "trec multe acceleratii pe langa tine". De aia e bine, daca viteza uC iti permite, ca pe intervalu respectiv de 100ms sa citesti cat poti de des (de ex la fiecare 2ms) si sa scrii in memorie o medie a celor 50 de citiri ca valoare a esantionului respectiv de 100ms.
Daca de ex. ai un impuls foarte mare dar care dureaza numai 10 ms. valoarea sa va influenta corespunzator media acceleratiei pe 100 ms, deci va fi luat in calcul, pe cand daca citesti fara mediere pe fiecare esantion ai sanse mari sa-l pierzi.
Na ca sfaturi ai vrut, noi te-am cocosat.
cezar
#40
Postat 03 November 2005 - 01:36 PM
Sebip,
Sigur ca daca folosesti numaratoare poti sa faci adresele pt mem. Dar ce facem ? Megem inapoi ? Pai atunci sa facem pe tranzistoare :D !!!
De ce sa faci o Unitate de Calcul discreta cin ai la indemina un proc mic si destept. In plus nu o sa mai ai accesare seriala ( tip SPI etc ) ci paralela. Adica MULTE fire si trasee !
Mig,
Ia accelerometre cu PWM. SCAPI DE AD si alte filtre !!! Rezulta un montaj mic si bun. Sti ca fiabilitate descreste cu nr de componente folosite ! :D. Poti sa faci cu PIC si ORCE memorie...in general.
Inca nu am apucat sa ma uit pe datasheet-ul de la accelerometrul tau. Net-ul este cazut pe legaturi internationale :((
Cum vad...dau de stire
Deci SIMPLIFICA la max montajul ca la rezolutia ta nu ai nevoie de mare lucru :
Deic acc cu PWM, PIC sau ATMEL si mem cu SPI si GATAAAAAA. Atentie, poti sa folosesti mai multe memorii !!!
Daca am timp iti desenez eu schema. Programul poate sa fie gata in citeva zile !
Pune "osu" la treaba si da-i bataie ca-ti pleaca racheta! :D
Bafta
#41
Postat 03 November 2005 - 02:29 PM
Charly te cred ca accelerometre cu iesire PWM ar fi facut munca mai usoara. Oricum nici cu "situatia" prezenta nu cred sa se complice mult lucrurile. La urma urmei portiunea care poate pune probleme e legata de interfatarea convertoarelor cu microcontrollerul. Sper sa pot gasi un exemplu de schema pentru aceasta interfatare astfel incat sa scap de probleme :D
Experimentul e planuit pentru vara viitoare (undeva prin Iunie) deci este suficient timp...
MIG-29
#42
Postat 03 November 2005 - 04:18 PM
As sugera utilizarea unor carduri de memorie (de ex smartmedia care e de fapt doar o memorie fara alte circuite ... cum are de ex. CF) si se pot utiliza carduri de memorie destul de mari si foarte ieftine fata de flash-uri luate separate (cred :D ).
Acuma urmeaza o intrebare referitoare la alimentarea montajului: din ce acmulatoare se face alimentarea ... consumul este important, de ex PIC-urile pot functia si cu oscilatorul intern sau cu cuart de 32KHz in mod LowPower, si Atmelurile au ceva moduri asemanatoare ... oricum ... cu cuart de 32KHz e mai valabil ... datorita stabilitatii mai mari la variatiile de temperatura fata de oscilatorul intern.
Ca sa functioneze 5 ore (sau mai mult) este necesara luarea in calcul si a acestei probleme.
#43
Postat 03 November 2005 - 05:12 PM
sebip, la 3 Nov 2005, 16:18, a spus:
As sugera utilizarea unor carduri de memorie (de ex smartmedia care e de fapt doar o memorie fara alte circuite ... cum are de ex. CF) si se pot utiliza carduri de memorie destul de mari si foarte ieftine fata de flash-uri luate separate (cred :D ).
Acuma urmeaza o intrebare referitoare la alimentarea montajului: din ce acmulatoare se face alimentarea ... consumul este important, de ex PIC-urile pot functia si cu oscilatorul intern sau cu cuart de 32KHz in mod LowPower, si Atmelurile au ceva moduri asemanatoare ... oricum ... cu cuart de 32KHz e mai valabil ... datorita stabilitatii mai mari la variatiile de temperatura fata de oscilatorul intern.
Ca sa functioneze 5 ore (sau mai mult) este necesara luarea in calcul si a acestei probleme.
nu cred ca respinge nimeni ideea numaratoarelor doar ca pentru proiectul in discutie esentiala este preluarea datelor. Am spus de la inceput ca focus-ul proiectului nu este reprezentat de catre modul in care se face preluarea datelor.
Totodata subiectul va fi citit de mai multa lume si practic este foarte bine sa existe mai multe solutii expuse. Poate cineva are nevoie de preluarea datelor si stocarea lor in memorie fara microcontroller! atunci stie la cine sa apeleze!
deci by all means, scrieti aici solutiile la care va ganditi ca nu se stie cui ii vor folosi! :D
eu voi posta la final schema electronica, valorile componentelor, lectiile invatate etc... ca atunci cand cineva vrea sa faca acelasi lucru sau ceva similar sa nu faca aceleasi greseli.
MIG-29
P.S.: voi folosi o baterie Lithiu-polymer... am acumulatori de capacitati diferite.. de la 500 mAh la 3000 mAh... consider ca mai mult de 1000mAh nu ar fi nevoie pentru acest circuit... cu cei de 3000 mAh as fi cam la limita greutatii acceptate pe o proba de mare altitudine fara waiver de la FAA. Daca insa trebuie mai mult de 3000 mAh (musai!) atunci pornesc procedurile pentru obtinerea waiver-ului FAA... cu siguranta insa nu va fi necesar peste 1000 mAh... sunt totusi circuite electronice de putere mica...
#44
Postat 03 November 2005 - 06:50 PM
Deci ai 4 acc. Cum or sa fie dispuse ? Se dubleaza pe vre-o axa? Intreb asta din cauza ca poti sa procuri macar acc cu xy in one chip.
2xbuc si gata !
Spui ca "nu se complca mult lucrurile ? Pai, daca folosesti PWM scapi de filtru+amplificator+referinta pe proc. Nu crezi ca este sufic.? :D
Am pe masa un acc xy legat la un PIC 16F877 + LCD. Pot sa-ti spun ca este foarte sensibil si ca sa pot sa citesc pr LCD am facut o intarziere MAREEE la preluarea de date.
Filtrezi si stabilizezi tensiunea pe acc si asta este TOT. In rest conectezi la proc si gata. Rezulta un montaj mic si fiabil. Scuze, plus memoria sau memoriile. Vrei date = subrutina pe controler cu buton de actionare plus un TC232 ( sau ech. ; port serial ) si ai facut si seriala. In tehnologie smd iese super mic si super fiabil.
Ce poti sa-ti doresti mai simplu si mai bun ?
Eu fac ceva similar si putem continua chat-ul si pe mail. Da-mi MI daca doresti.
Oricum, pina la vara ai tot timpul ! :D
Bafta
#45
Postat 03 November 2005 - 07:23 PM
MIG-29, la 3 Nov 2005, 14:29, a spus:
Charly te cred ca accelerometre cu iesire PWM ar fi facut munca mai usoara. Oricum nici cu "situatia" prezenta nu cred sa se complice mult lucrurile. La urma urmei portiunea care poate pune probleme e legata de interfatarea convertoarelor cu microcontrollerul. Sper sa pot gasi un exemplu de schema pentru aceasta interfatare astfel incat sa scap de probleme :D
Experimentul e planuit pentru vara viitoare (undeva prin Iunie) deci este suficient timp...
Daca ai timp poate vei gasi o schema simpla care sa converteasca semnalu de la accelerometru in pulsuri de latime variabila, in f. de tensiunea aplicata la intrare.
Am inteles ca unele integrate de emitatoare de telecomanda RC ordinare (fara soft) cu 4 canale chiar asta fac: pot primi ca intrare mai multe tensiuni variabile si scot un tren de pulsuri cu latimi intre 1 si 2 ms pentru fiecare canal. Practic poti citi toate cele 4 valori pe un singura intrare digitala din uC, cu o rata de 50 de ori pe secunda.
Pe Atmel (cred ca) poti masura pulsuri cu rezolutie de un ciclu de tact, deci cu un cristal de 16 mhz o variatie de o milisecunda in latimea pulsului "analog" (intre 1 si 2ms) poate fi discretizata in 16000 de valori, adica 14 biti de 50 de ori pe sec de la fiecare canal.
-----------------------
Cu bateriile nu mi-as face probleme. Un microcontroler poate consuma in f. de modu de lucru si viteza de tact de la sub 1mA pana pe la max 50 mA. Tre sa adaugi senzorii + convertorii A/D + memoria la consum, dar presupun ca n-o sa sari de 100mA cu totul. E suficient sa masori curentu cand o fi montaju gata ca sa vezi daca poti folosi cel mai mic acumulator.
-----------------------
Ai cumva niste link-uri despre cum se presupune ca tre sa functioneze o unitate inertiala din asta, cu 4 accelerometre? Am inteles ca trebuie plasate in colturile unui tetraedru, dar cum trebuie orientate?
-----------------------
@charly - nu cred ca poate folosi 2 accelerometre xy la proiectu lui. E nevoie de 4 accelerometre cu o axa fiecare, plasate in varfurile unui tetraedru. In f. de valorile in timp pe fiecare or sa calculeze si rotirile si deplasarea in spatiu a sistemului. Adica o unitate inertiala completa.
Deocamdata inteleg ca vor sa faca socoteala traseului parcurs de vehicul off-line, pe baza inregistrarilor din log.
Sanatate,
cezar
Aceasta postare a fost editata de ctotth: 03 November 2005 - 07:29 PM
#46
Postat 04 November 2005 - 03:03 AM
Sincer nici nu prea imi faceam probleme vizavi de furnizarea energiei electrice in cantitate suficienta pentru experiment... totusi e un montaj electronic care nu trebuie sa functioneze in conditii de putere mare ci de prelucrare de semnal. Asa cum ai spus si tu ma astept la 100-200 mA (maxim) consum pe unitatea electronica. Am sa va tin la curent vizavi de cifrele astea.
Nu am din pacate link-uri despre unitatile inertiale fara giroscoape. Se folosesc de obicei pe rachete de mici dimensiuni sau pentru determinarea dinamicii proiectilelor neghidate. Aberdeen Proving Ground Laboratory din Maryland (laborator al Armatei Statelor Unite) a "condus" cateva experimente in domeniu. Este un colonel (parca) acolo care a publicate cateva articole in domeniu.
Eventual poti cauta pe google.com si sa vezi ce gasesti. Documentatia care am folosit-o in prima faza provenea de pe niste microfilme din biblioteca de aici de la facultate - exista departament care indexeaza toate documentele guvernamentale, NASA etc. pe microfilme. Ce pot spune e ca au o arhiva imensa ce acopera cam orice domeniu si contine cam orice raport tehnic (bineinteles probabil exista si unele nepublicate pe microfilme sau pentru care microfilmele nu sunt publice :D ).
MIG-29
P.S.:accelerometrele cu mai mult de o axa nu ar fi utile cel putin intr-o prima faza. principiul sistemului este ca fiecare punct dintr-un solid rigid are 6 acceleratii: 3 de translatie si 3 de rotatie. La randul lor cele de rotatie sunt: tangentiale si centrifugale. Masurand in patru puncte acceleratiile (bineinteles ca obtii rezultanta translatie+rotatie) pe directii predefenite (de ex. de-a lungul laturilor unei figuri geometrice regulate) poti obtine detalii despre atitudinea si pozitie obiectului respectiv (bineinteles dupa integrarea numerica a acceleratiilor separate din acceleratiile totale). Totul se bazeaza pe fizica solidelor rigide si nu reprezinta o noutate din punct de vedere stiintific. Implementarea insa este probabil sa fie mai dificila din cauza propagarii erorilor in sistemul matematic folosit pentru extragerea informatiei.
P.S.2.: asa deodata ma pot gandi ca cineva ar putea folosi accelerometre pe doua axe pentru a construi doua figuri geometrice si pentru a compensa erorile dar la fel de bine poti folosi accelerometre cu o singura axa... dar nu 4 ci 8 si atunci obtii doua determinari independente ale atitudinii si pozitiei.
In orice caz avantajele nefolosirii unor giroscoape cred ca sunt evidente.
P.S.3: asa cum am mai spus, prelucrarea datelor se va face dupa zbor, dupa downloadarea datelor de pe memoria respectiva. Este deocamdata varianta cea mai potrivita. Nu ma ajuta cu nimic sa stiu pozitia probei in timp real ba mai mult ar complica lucrurile fara sa aduca nimic in directia proiectului.
Aceasta postare a fost editata de SILVIU66: 04 November 2005 - 05:10 AM
#47
Postat 04 November 2005 - 03:05 AM
Aha, vezi, nu stiam modul de amplasare.
Pai atunci pune patru. Are analog-ul tot felul de modele.
Oricum este clar ca este mai usor cu PWM. Daca ai nevoie de date cit mai precise si prelevate foarte rapid atunci da, faci cu AD. Altfel...
bafta
#48
Postat 04 November 2005 - 03:13 AM
Acum citeai ce-ai spus. Interesant.
Eu lucrez la o unitate IMU pentru un UAV. Este ceva similar numai ca folosesc un accelerometru x,y,z pentru determinare miscarilor de translatie si doua gyro pentru rotatie.
#49
Postat 04 November 2005 - 04:25 AM
Si sistemele fara giroscoape au (deocamdata) mari probleme cu acumularea erorilor si driftul cu timpul.
MIG-29
Aceasta postare a fost editata de SILVIU66: 04 November 2005 - 05:11 AM
#50
Postat 04 November 2005 - 09:11 AM
Poti folosi un microcontroler cu convertorul analog digital integrat. Acesta are mai multe intrari analogice(pana la 10) ce pot fi citite pe rand. Se pot citi lejer 4*8 valori pe secunda mai ales la un clock de 20MHz.
Pentru majoritatea microcontrolerelor PIC de la Microchip :
- trebuie deplasata plaja de masurat de la -5V...+5V in 0...5V in circuitului de amplificare( vezi cu un Instrumentation Amplifier ).
- majoritatea PIC-urilor au iesirea ADC numai pe 10biti :-(
Poate cei de la Atmel te scapa de aceste 2 probleme; nu stiu; stie cineva?; cauta...
Bafta!
#51
Postat 09 November 2005 - 10:17 AM
In plus are si o gramada de pini disponibili pentru alte chestii ... :D
#53
Postat 09 November 2005 - 08:53 PM
Scuze ... am uitat sa scriu chiar ce era mai important : ADUC 812 de la Analog Device
http://www.mcjournal...v099/rev099.htm e o scurta prezentare s lui iar daca pare tentant se gasesc pe site la Analog si specificatiile detaliate ale microcontrolerului.
#54
Postat 09 November 2005 - 08:59 PM
Ideea e ca acesta se poate gasi si in Romania, este destul de scumput fata de altele dar corespunde, cred, majoritatii parametrilor ceruti.
Am vazut si placa de dezvoltare realizata in regim de homemade deci se poate utiliza de catre oricine are rabdare ... in varianta smd lipit fara statie cu aer cald !!! ... aviz amatorilor
Daca e cineva interesat de mai multe detalii ... am un prieten care a realizat placuta: se interfateaza cu un modul fpga, merge si de sine statatoare, pot sa pun citeva poze cu ea. Placuta nu e realizata in ideea "inghesuirii" ei in modele .. dar la asta se poate lucra.
#55
Postat 10 November 2005 - 01:01 AM
o intrebare pentru charly, mig29 si ceilalti - aveti idee cat timp se poate mentine directia cu un giroscop din asta? Mai precis vreau sa stiu ce-mi trebuie ca sa pot sa mentine un vehicul cu nasu pe o directie predefinita timp de 5-10 minute, cu o abatere de max. +/- 5 grade de la directia initiala.
Mersi.
cezar
#56
Postat 10 November 2005 - 01:39 AM
ctotth, la 10 Nov 2005, 01:01, a spus:
o intrebare pentru charly, mig29 si ceilalti - aveti idee cat timp se poate mentine directia cu un giroscop din asta? Mai precis vreau sa stiu ce-mi trebuie ca sa pot sa mentine un vehicul cu nasu pe o directie predefinita timp de 5-10 minute, cu o abatere de max. +/- 5 grade de la directia initiala.
Mersi.
cezar
mai poti face o jmekerie. Iei un giroscop cu drift mic si incerci pentru un timp de 5 minute sa zicem sa vezi cam cat este deviatia. Teoretic ar trebui sa poti sa compensezi... bineinteles driftul nu este linear, adica driftul dupa 10 minute nu este mai mare decat cel dupa 5 minute de fix 2 ori... dar poti incerca metoda compensarii artificiale pe intervale mici de timp, cunoscute dinainte.
Ce tip de giroscop folosesti?
MIG-29
#57
Postat 10 November 2005 - 01:44 AM
In principiu giro se "impotriveste" sch. de directie. Daca se face lent si sensibilitatea este mica, nu o sa simta si apare driftul. Ca sa ai abatere cit mai mica in comanda se foloseste un PID hard sau soft. Depinde ce vrei sa faci !
Vin-o cu mai mult amanunte.
Bafta
#58
Postat 10 November 2005 - 06:13 AM
Am tot ezitat sa ma bag in discutie, dar subiectul mi se pare foarte incitant, asa ca dupa ce am recitit toate postarile, as vrea sa-mi dau si eu cu parerea. Sper sa nu supar pe nimeni...
Asa cum mai spunea cineva, eu cred ca trebuie pornit de la caracteristicile acceleratiei privita ca semnal esantionat. Chiar daca e vorba numai de estimari, in primul rand m-as uita la banda de frecvente ocupata de acceleratie sau altfel spus cat de rapide pot fi acceleratiile. Din cele descrise pana acum am impresia ca 10Hz este o valoare rezonabila. Indiferent cat de rapide se fac esantionarile, medierea (care este in esenta o filtrare trece jos) nu trebuie sa aiba o frecventa de taiere mai joasa de 10Hz. In caz contrar se pierde informatie. Si ca veni vorba de filtrare, cred ca media alunecatoare, desi simplu de implementat, nu e cea mai fericita alegere. Caracteristica de frecventa a filtrului de tip medie alunecatoare contine nuluri si lobi secundari in apropierea benzii de trecere. Nu mai zic de caracteristica de faza. Nu o cunosc, dar nu cred ca e prea liniara. Nici codarea diferentei nu cred ca e o alegere fericita. Captura corecta a tranzitiilor rapide (frecventa mari) atunci cand se codeaza numai diferenta, se face prin marirea tzapana a ratei de esantionare (ca la CD de ex) sau se mai face si cu cuantizare variabila. Este cunoscuta modulatie delta adaptiva, dar cred ca se complica lucrurile si ne indepartam de scopul discutiei.
Cred ca interfatarea cu un accelerometru care ofera semnal PWM este foarte comoda si recomandabila. Daca atat accelerometrul cat si procesorul sunt alimentate de la aceeasi sursa, conectarea este directa, fara filtre analogice si alte artificii. Filtrarea se poate face ulterior prin soft. Este foarte usor. Va pot da o mana de ajutor si chiar pot posta o simulare in Excel pentru filtrare digitala, asta asa ca exemplu. Daca softuletzul este scris in C sau alt limbaj de nivel inalt, filtrarea e f usor de facut si se pot implementa caracteristici de trecere mult mai "curate".
Cate ceva despre rezolutia necesara. De exemplu, un accelerometru ADXL202 are o tensiune de zgomot echivalenta cu 200ug/(radical(Hz)). Asta inseamna ca daca banda semnalului este limitata la 10Hz, zgomotul va fi de 200*(radical(10))=632ug. Orice rezolutie mai buna de ~600ug este inutila. Desigur, se poate mari rezolutia pe seama reducerii benzii semnalului achizitionat. Reducerea benzii va scade zgomotul, dar va scade sensibilitatea la acceleratii rapide (frecvente mari).
ADXL202 are gama de masura de +/-2g. Nr. maxim de cuante limitat de zgomot ar fi de (2-(-2))/632ug=6329 6329<8192=2^13. Deci nu sunt necesari mai mult de 13 biti.
Pe de alta parte, frecventa minima de esantionare (adica frecventa PWM-ului) a lui ADXL202 este de 100Hz (perioada de 10ms). Asta insemana ca avem o supraesantionare de 5X fata de banda de 10Hz a acceleratiei si asta ne convine. Daca asta intra intr-un procesor care masoara perioada cu ajutorul unui timer care e fugarit la 1MHz, inseamana ca putem masura intervale de 10ms cu un etalon de 1us. Gama dinamica este de 10ms/1us=10000, adica mai mult decat cei 13 biti de care avem nevoie. Intamplarea face ca eu sunt familiar cu PICurile si chiar am realizat ceva asemanator cu ADXL210 si PIC, dar cred ca si alte procesoare pot face treaba cu brio. La pic am folosit facilitatea "interrupt on change", iar masurarea am facut-o cu un timer hardware, deci dpdv soft, procesorul nu are prea mult de muncit.
Cat despre stocare, 100 esantioane/secunda * 2 octeti * 4canale * 3600s/ora * 5ore= 14.4Mocteti. Un compact flash de 32/64M ar fi OK. Nu stiu daca exista cipane seriale de asa o capacitate. Dar daca cei 13 biti sunt aranjati in asa fel incat restul de 3 sa fie alocati urmatorilor 13 biti, se mai poate ciuguli un pic de spatiu. Mai exact ar insemna 14.4M*13/16=11.7Mocteti. Nu e mare scofala, dar e o idee de explorat daca spatiul devine o problema.
Consumul e infim. ADXL trage 0.6mA. Picul trage pana in 5mA la 4MHz. Nu stiu cat vrea flasul. Atentie la LiPo la temperaturi scazute. Cica nu mai munceste prea bine. Probabil ca e bine sa fie consultate specificatiile fabricantului.
E posibil s-o fi luat-o prin papusoi, dar eu asa as aborda proiectul, cum am aratat mai sus.
Stima,
Cirip
Aceasta postare a fost editata de Cirip: 10 November 2005 - 07:53 AM
Practica este cand toate merg, dar nu stii de ce.
Montajele mele imbina teoria cu practica: nu merge nimic si nu stiu de ce.
#59
Postat 10 November 2005 - 12:58 PM
mig29, la charly, a spus:
Uf, pai eu am intrebat primu! ce tip de giro imi trebuie? Sau poate aveti informatii despre giro pe care le-ati folosit, cat de stabile sunt. Sau ce giro sunt mai performante intr-un pret rezonabil.
@charly - ce-i aia PID ?
@cirip - Daca PWM e de100 hz el mediaza/insumeaza cate 10 si nu salveaza mai mult de 10 valori pe secunda. Deci spatiul de memorie e de 10 ori mai mic. Eu cred si ca poate sa-l comprime de cateva ori, la o frecventa asa mare si un zbor cu multe portiuni lente pot fi multe secunde in care nu se modifica valorile. Multa redundanta ca sa zic asa.
Mersi,
cezar
#60
Postat 10 November 2005 - 05:56 PM
Da, numai ca daca din 100 de esantioane pe secunda reduce la 10, asta se cheama ca a scazut rata de esantionare la 10 Hz si in consecinta, frecventa maxima din spectrul acceleratiei care poate fi recuperata va fi de 5Hz (Nyquist). Ca sa mentina citirea acceleratiilor de pana la 10 Hz, frecventa minima de esantionare trebuie sa fie de 20Hz. Asta presupune ca filtrele de reconstructie sa aiba panta infinita, deci e o speculatie pur teoretica. De aceea se prefera o usoara supra-esantionare, ca sa usureze sarcina filtrelor de reconstructie. Cu cat supraesantionarea e mai mare, cu atat mai usoara va fi sarcina filtrelor.
Eu cred ca 30Hz (esantioane pe secunda) este un minim necesar ptr a "citi" 10 Hz in semnalul acceleratiei, desi exista pericolul aparitiei aliasurilor (in esenta distorsiuni). De aceea am sugerat impingerea ratei de esantionare la 100Hz; in plus se pupa si cu frecv minima a ADXL-ului. Evaluarea facuta este mai degraba o verifiacre daca rata minima de esantionare oferita de ADXL este acoperitoare ptr scopul proiectului.
Cred ca PID vine de la Proportional Integral Derivativ. E un tip de regulator in sistemele cu bucla de reactie negativa.
Stima,
Cirip
Aceasta postare a fost editata de Cirip: 10 November 2005 - 06:02 PM
Practica este cand toate merg, dar nu stii de ce.
Montajele mele imbina teoria cu practica: nu merge nimic si nu stiu de ce.