Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 25 kwi 2024, o 22:10


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
Autor Wiadomość
PostNapisane: 4 sie 2017, o 11:43 
Offline
Nowy

Dołączył(a): 04 sie 2016
Posty: 14
Pomógł: 0

Hej wszystkim,

Chciałbym wyciągać dane z żyroskopu po SPI z wykorzystaniem bufora FIFO. Komunikacja z żyroskopem jest, odczytuje poszczególne osie i poprawną wartość ID żyroskopu. Przy odczytywaniu danych bez używania bufora otrzymuje co pewien moment wartości z poza zakresu zmiennej. Po niżej zobrazowanie problemu. Ponadto kiedy żyroskop jest w bezruchu, też otrzymuje zmiany wartości poszczególnych osi. Umieszczam poniżej całą konfiguracje układu i program. Może znajdziecie babola który popełniam. :lol: ;)

Obrazek

Konfiguracja SPI:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Inicjalizacja żyroskopu:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Odczytanie pojedynczej osi:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Funkcje realizujące wysyłanie i odbieranie danych po SPI:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


I tak nadmienię, bo pewnie padnie pytanie, tak mam włączone taktowania poszczególnych portów, SPI i nie korzystam z gotowego modułu, tylko mam układ zmontowany zgodnie z dtr-ką na robocie :lol: ;) Odczytywanie danych z żyroskopu na chwile obecną realizuje w głównej pętli programu.

Po dodaniu konfiguracji bufora FIFIO dane zmieniają się o parę jednostek, lecz jakby zamarły w miejscu. Jestem pewien, ze coś pomijam w konfiguracji. Po niżej zobrazowanie problemu.

Obrazek

Jeżeli potrzeba jeszcze jakiś informacji to piszcie. Dzięki z góry za pomoc. ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 sie 2017, o 06:27 
Offline
Nowy

Dołączył(a): 04 sie 2016
Posty: 14
Pomógł: 0

Jakieś pomysły na rozwiązanie problemu? ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 5 sie 2017, o 19:36 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

wiec tak ...
podczas bezruchu żyra to normalne że otrzymujesz jakby przypadkowe wartości
spowodowane jest to tym ze ziemia nie pozostaje w bezruchu i zachodzące w niej zmiany i ruchy wpływają na drobne szpilki w polu magnetycznym
które jest jednym z czynników potrzebnych do działania żyro , magnetometrów , i wielu innych czujników położenia ....,
musiałbyś sprawdzić w jakim miejscu na ziemi był układ kalibrowany i tam pojechać to uzyskasz w bezruchu 0.0.0

a tak trzeba zrobić kalibrację (uśrednienie parametrów położenia zerowego )

no ale skoro kolega robił wszystko zgodnie z notą , toteż pewnie znalazł wzór i procedurę kalibracji :)
wiec zasadniczo nic tu nie wniosłem ....

bo bez kalibracji to ci fifo też nie pomoże

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 sie 2017, o 07:25 
Offline
Nowy

Dołączył(a): 04 sie 2016
Posty: 14
Pomógł: 0

Aha dzięki wielkie za informację, pierwszy raz korzystam z tego typu czujników ;) Hmmm z tym wzorem i kalibracją to jakaś magia chyba jest, wszyscy go szukają a znaleźdz nie można :lol: ;)



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 sie 2017, o 15:43 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2011
Posty: 8583
Pomógł: 337

nie do końca magia :) układ po zasileniu pobiera automatycznie dane kalibracyjne - ale wypada zrobić recalibrating żeby ustabilizować
odczyty w miejsc uzytkowania (choć mozna to olac i tyle) i usredniać wyniki pomiaru , wpoisanie danych odbywa się poprzez użycie odpowiedniego rejestru , niemniej odchylenia (piki) zawsze jakieś będą występować -- wiec w twoim wypadku wystarczy
podanie wartości min i max dla której masz położenie 0,00 dla każdej osi i odpowiednio dokonać kalibracji programu

to wszystko

wzór kalibracji jest w którymś dokumencie ST

_________________
[b]San Escobar! Patria mia! Tu eres como la salud.[/b]



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO