Pokaż wiadomości

Ta sekcja pozwala Ci zobaczyć wszystkie wiadomości wysłane przez tego użytkownika. Zwróć uwagę, że możesz widzieć tylko wiadomości wysłane w działach do których masz aktualnie dostęp.


Wiadomości - Maciej_ZG

Strony: [1]
1
U mnie nie ma różnicy czy to sceneria doświadczalna czy inna, także rzeczywiście może być problem z komunikacją.
Co do samego ruchu wskazówek - wszystko zależy jaką dostaniemy "deltę" pomiędzy obecnie ustawioną wartością manometru a odebraną z Maszyny.
I tak jak zauważyłem wcześniej - modyfikacja tablicy akceleracji ma tu duże znaczenie.

Obecnie korzystam z takich wartości :
static unsigned short defaultAccelTable[][2] = {
  {   20, 2000 },
  {   40, 1600 },
  {   80, 1200 },
  {  100, 600 },
  {  150, 400 },
};

i ruch jest dużo płynniejszy.

Myślę że do każdego z manometrów przydałaby się osobna tablica a dane do niej trzeba by obliczyć na podstawie największej możliwej zmiany wartości w ciągu 1 sekundy.

2
A jak odbierasz dane ? przez UART czy jakoś inaczej ?

Ja mam całe rozwiązanie oparte na proxy z UART na I2C (https://github.com/maciejszymanskizg/custom_desktop_control), więc dane odbieram z interrupt handlera dla przychodzących danych I2C.

3
Ja też korzystam w swoim pulpicie od EU07 z tych samych silniczków i mam podobne problemy.
Funkcja update (https://github.com/clearwater/SwitecX25/blob/master/SwitecX12.cpp#L147) wykonuje ruch (advance) co określony czas (microDelay), który pochodzi z tabeli defaultAccelTable. Można pobawić się z wartościami w tej tabeli, bo mają one wpływ na płynność ruchu, ale chyba najważniejszym jest odpowiednie skorelowanie odbioru danych z funkcją ruchu. Jeśli dane przychodzą np. z I2C poprzez kod wykonywany z przerwania - można pokusić się o użycie właśnie advance zamiast update (a przynajmniej ja mam taki plan).

Jest jeszcze "blokująca" funkcja stepTo() ze stałym delayem pomiędzy krokami.

Duży wpływ na płynność mają też dane z samego symulatora. Jako że dostajemy je co pewien interwał czasowy, poszczególne dane mają również swój "skok", który może powodować widoczne szarpanie zamiast płynnej zmiany wartości.
Aktualnie walcze z tym problemem u siebie, jak będę miał coś wystarczająco satysfakcjonującego - podziele się rozwiązaniem.


Strony: [1]