Aktywne Wpisy
drogba90 +496
Nie ma lepszego mema z nosaczem i nie zapraszam do dyskusji nawet #humorobrazkowy #heheszki #konkursnanajbardziejgownianymemznosaczem
Syn_Tracza +80
Wykres dla Lodzi. Tak się dzieje, że od 4 lat mieszkam w tym mieście (dobrowolnie xD). Poznałem to miasto, w sensie, jak szybko ubywa ludzi, jakie są zarobki ludzi, jakie są perspektywy, ilu jest dobrze płacących firm itd.
Otóż ceny mieszkań odskoczyły od realiów jeszcze bardziej niż w innych miastach. Sam zarabiam więcej niż 3 mediany i pewnie >95% ludzi w tym mieście jest ode mnie biedniejszych, a ceny nieruchomości w tym
Otóż ceny mieszkań odskoczyły od realiów jeszcze bardziej niż w innych miastach. Sam zarabiam więcej niż 3 mediany i pewnie >95% ludzi w tym mieście jest ode mnie biedniejszych, a ceny nieruchomości w tym
Otóż mam scalaka MPU-9150 z m.in 3-osiowym 16-bitowym akcelerometrem. Wynik pomiaru przyspieszenia zapisywany jest do dwóch rejestrów, w pierwszym są bity 15..8 a w drugim 7..0.
Odczyt za pomocą I2C i wysłanie na UART robię tak:
TWI_read_buf(MPU9150_ADDR, 0x3B, 2, read);
uart_putc(read[0]);
uart_putc(read[1]);
Następnie odbieram sobie dane w Javie i modyfikuję w taki sposób:
int byte1 = buffer[firstSampleIndex + 1];
int byte2 = buffer[firstSampleIndex + 2];
byte1 *= 256;
byte2 += 128;
Wartości byte1 i byte2 wyrzucam na wyjście, a po umieszczeniu w Excelu wygląda to tak:
http://i.imgur.com/UstOK2E.png
Niebieski wykres to najbardziej znaczące bity, zielony - mniej znaczące.
Jak mniej więcej widać, wartość najmniej znaczących bitów powinna się nałożyć w czasie tak, aby ich narastanie odbywało się w czasie pomiędzy skokami wynikającymi ze zmiany najbardziej znaczących bitów. A jest na wykresie - po złożeniu wygląda to bardzo dziwnie (poniższe zdjęcie jest dla innych danych, ale widać problem):
http://i.imgur.com/Rp1JCiZ.png
(ta czarna kreska przecinająca sygnał została dorysowana przeze mnie w Paincie)
Macie może pomysł, co z tym zrobić, jak to ugryźć? Z czego to może wynikać?
Zaczynam pewien projekt na koło naukowe i ugrzązłem na czymś takim.. :s
Link do arkuszu w Excelu jak by ktoś chciał:
https://www.dropbox.com/s/6haocp4if27wo26/Akcelerometr_1.xlsx?dl=0
Jak jest potrzeba, to mogę dostarczyć inne dane z akcelerometru. Proszę o pomoc :)
#elektronika #avr #mikrokontrolery #programowanie #sygnaly #teoriasygnalow #przetwarzaniesygnalow #czujniki
int byte1 = buffer[firstSampleIndex + 1];
int byte2 = buffer[firstSampleIndex + 2];
byte1
i tak jest, jak leży w miejscu to widać szum.
@andzej74:
To co widać na wykresie pojawia się jak obracam akcelerometrem tak aby jedna z osi (ta wyświetlana) pokryła się z kierunkiem przyspieszenia ziemskiego a później wracam do początku.
Analizowałem całe złożenie, ale kiepsko to wyglądało, więc wróciłem do poziomu dwóch bajtów i widzę tu problem.
W nocie katalogowej mam:
rejestr 1: ACCELXOUT[15:8]
rejestr
volatile uint8t x[6];
error=I2C1RecvBlock(&x, 6U, &snt); //do x zapisuje wsp. x y z po 2
@Visher: I dokładnie tak to masz interpretować, rej2 jest młodszym bajtem wartości, a rej1 starszym. Cała wartość ma postać ((uint16)rej1)*256 + rej2.
A ty dodajesz jakieś dzikie 128 do młodszego bajtu, czyli przesuwasz go na dzień dobry o połowę w górę. I dokładnie to widać na wykresie (to, co ci nie pasuje - przesunięcie).
Siadasz, czytasz, robisz, jeszcze raz czytasz, robisz, , DZIAŁA
@Visher: To, że odczytujesz bajt i umieszczasz go w zmiennej o typie "int" nie oznacza, że będzie ona miała wartość od -128 do 127. Będzie ona miała wartość dokładnie taką, jaką ma odczytany bajt, czyli z zakresu 0 .. 255.
fajnie że się wyżyliście.
Zapomniałem o jednej rzeczy, tu mój błąd. Zapomniałem dopisać, że przestawiłem akcelerometr na mniejszą czułość - większy zakres pomiarowy.
Bo problemu ze złożeniem przy podstawowym zakresie pomiarowym to nie miałem, może już nawet przez ten czas zapomniałem
@Visher: Na jaki dokładnie zakres czułości go ustawiłeś?
TWIwritebyte(MPU9150ADDR, 0x1c, 0b00011001);