Znaleziono 4 wyniki

autor: czarobest
08 paź 2021, 13:02
Forum: Ender
Temat: aaannndowe początki z enderem
Odpowiedzi: 103
Odsłony: 46269

Re: aaannndowe początki z enderem

aaannnd pisze:Posprawdzałem wczoraj, wprowadzenie zmiennej do podążania nie ma zbytniego wpływu, działa tak samo.
Jedno co jeszcze mogę sprawdzić, to wykorzystując różnicę między zadaną a pokazywaną prędkością, dołożyć zmienną, która będzie odpowiadać za prędkość ruchów serwa. Im większa różnica między zadaną a pokazywaną, tym większa prędkość serwa, a im mniejsza różnica tym mniejsza prędkość. Prędkość serwa ustala się w zakresie 1-255, czyli np dla różnicy 8km/h -> prędkość serwa 80, przy szybkim zatrzymaniu szybko wraca na zero; a dla różnicy 10km/h -> prędkość serwa 10 i wskazówka pływa sobie powolutku. Potem tylko eksperymentalnie dobrać zakres mapowania.
Zakładam, że zaadaptowałeś kod od @dziobu do pętli głównej? Jeśli dobrze strzelam, to przez to wtedy wzrastanie wykonuje się po prostu bardzo szybko (bo procesor jest szybki :)), trzeba by dodać pewnie odpowiednie opóźnienie, w tym przypadku najlepiej oparte na millis(), bo niestety wątków nie ma :).
Czyli coś takiego:

Kod: Zaznacz cały

unsigned long last_change = 0;
void loop()
{
	if(millis() - last_change >= 20) //założyłem 20 ale opóźnienie możesz dobrać eksperymentalnie
	{
		//kod od @dziobu
		last_change = millis();
	}
}
Oczywiście jeśli dobrze zakładam i masz to w pętli głównej, bez żadnych opóźnień.
Jarewa pisze:A nie prosciej zrobić średnia rosnąca lub opadająca??
Chciałem wspomnieć o średniej, bo tak znowu wygładzam dane z GPS, ale tutaj zastanaia mnie czy jakby zmienna częstotliwość próbkowania nie wpłynie negatywnie na działanie. Bo mając cały czas dane np. jak w GPS 10Hz to wygładzanie średnią będzie okej, a tutaj jak jedzie szybciej będzie inaczej, jak się zatrzyma będzie inaczej- ale tak sobie tylko myślę, być może się mylę. No i to chyba nie prostsze :P.
autor: czarobest
07 paź 2021, 15:43
Forum: Ender
Temat: aaannndowe początki z enderem
Odpowiedzi: 103
Odsłony: 46269

Re: aaannndowe początki z enderem

Ja miałem na myśli dokładnie to samo co pokazał @dziobu :). Zresztą chyba słownie opisałem ten kod te parę postów wcześniej, myślę że w takim prostym projekcie nic więcej nie potrzeba, bo będzie działać to bardzo ładnie - już jest fajnie, ale z tym kodem od @dziobu będzie dużo lepiej, uwierz mi :).

Dla przykładu, tutaj w podobny sposób jest przyśpieszanie i zwalnianie. Co prawda tu regulowałem w ten sposób nie pozycję, a prędkość przesuwania, ale zasada jest identyczna - stąd też zaproponowałem takie podejście.
https://cezaryhanczak.github.io/First3DGame/
Na dowód fragment kodu :):

Kod: Zaznacz cały

if(act_speed_x > speed_x)
{
	setTimeout(() => {  act_speed_x -= 1; }, 0.01);
}
autor: czarobest
04 paź 2021, 15:18
Forum: Ender
Temat: aaannndowe początki z enderem
Odpowiedzi: 103
Odsłony: 46269

Re: aaannndowe początki z enderem

No to spoko, wybacz, że nie dałem kodu, ale sam lubię robić sam więc nie chciałem psuć zabawy - no i każdy ma troszkę inne podejście do problemu :). Myślę, że dokładność serwa nie będzie problemem - na licznik spokojnie starczy, szczególnie "wygładzając" ruchy tak jak opisałem lub w inny sposób. Zresztą sam mam w planach zrobić hamownie do silniczków modelarskich z obrotomierzem i wskaźnikiem temperatury właśnie na serwach.

I znów według mnie przy prędkościach, które widać na liczniku to nawet ten kontaktron pewnie by wystarczył, aczkolwiek hall będzie na pewno lepszy i pewnie trwalszy.
Odnośnie Cobry, to spokojnie - nie chodzi o jakieś szczegóły, chciałem się raczej dowiedzieć z czego/jak to zrobiłeś - bo widziałem, że to chyba "składak" :).
autor: czarobest
02 paź 2021, 20:26
Forum: Ender
Temat: aaannndowe początki z enderem
Odpowiedzi: 103
Odsłony: 46269

Re: aaannndowe początki z enderem

Hej, fajna Cobra, muszę się o nią podpytać, jak będę miał odblokowane PW :D. Zresztą projekt Jeepa też ciekawy :).

Mam takie moje luźne przemyślenia odnośnie tego licznika, może coś Ci to pomoże/wskaże drogę.
Zakłócenia są w przypadku przycisków normalne, pewnie zlicza Ci "wciśnięcia", bo przycisk nie jest idealny i przy puszczaniu/wciskaniu potrafi się kilkukrotnie zewrzeć przez drgania, co jest zliczane przez kontroler. Ta sama sytuacja jest przy kontaktronie. Wyjścia są dwa albo filtr sprzętowy z użyciem kondensatora i rezystora - czyli filtr RC. Albo filtrować to programowo, nie zliczając po prostu kilków szybszych niż to możliwe :).
Tu jest więcej - https://forbot.pl/blog/czym-jest-filtr- ... ec-id40448

Druga rzecz to upłynnienie tego licznika. Ja bym to na przykład zrobił tak, że jest dodatkowa zmienna, która jest faktyczną prędkością i zmienna aktualnie pokazywanej prędkości. I ta pokazywana "dąży" do tej realnej z niewielkim skokiem co ileś tam czasu - do dobrania eksperymentalnie. Wtedy zegary byłyby płynniejsze i moim zdaniem po prostu milsze dla oka :).

Wróć do „aaannndowe początki z enderem”