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

KURS HOME ASSISTANT

Chcesz zautomatyzować swój dom bez skomplikowanego kodowania?
Zastanawiasz się nad wyborem sprzętu, oprogramowania i aplikacji?
Od czego zacząć przygodę z HA? Co będzie najlepsze na start?

Nasz kurs Home Assistant nauczy Cię krok po kroku, jak łatwo zautomatyzować swój dom i oszczędzić na rachunkach za prąd i ogrzewanie. Bez chmur, bez zbędnych abonamentów. Twoja przygoda z Home Assistant zaczyna się tutaj!

↓↓↓

    Szanujemy Twoją prywatność. Możesz wypisać się w dowolnym momencie.




    Teraz jest 12 cze 2025, o 22:29


    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 ] [ Zaznacz wszystko ]
    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

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

    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

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    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

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

    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

    _________________
    Zbuduj swój system [url=https://helion.pl/ksiazki/w-labiryncie-iot-budowanie-urzadzen-z-wykorzystaniem-ukladow-esp8266-i-esp32-andrzej-gromczynski,wlablo.htm#format/d]IOT[/url]



    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 0 gości


    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:  
    cron
    Sitemap
    Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
    phpBB SEO