Strona 9 z 11

Re: aaannndowe początki z enderem

: 07 paź 2021, 15:43
autor: czarobest
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);
}

Re: aaannndowe początki z enderem

: 08 paź 2021, 09:10
autor: aaannnd
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.

Re: aaannndowe początki z enderem

: 08 paź 2021, 10:21
autor: Jarewa
A nie prosciej zrobić średnia rosnąca lub opadająca??

Re: aaannndowe początki z enderem

: 08 paź 2021, 13:02
autor: czarobest
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.

Re: aaannndowe początki z enderem

: 08 paź 2021, 13:42
autor: aaannnd
To co napisałeś z opóźnieniem wpływa na czas pomiędzy kolejnymi krokami serwa, czyli co 2stopnie na skali (przełożenie z serwa na trybkach 2:1), nie upłynni tylko uskoczni :D czyli dalej bez zmian.

Pokombinuje z prędkością serwa jednak.

Re: aaannndowe początki z enderem

: 08 paź 2021, 14:16
autor: dziobu
aaannnd pisze:Posprawdzałem wczoraj, wprowadzenie zmiennej do podążania nie ma zbytniego wpływu, działa tak samo.
Czyli podąża za szybko. Spowolnij pętle.

Re: aaannndowe początki z enderem

: 08 paź 2021, 20:33
autor: aaannnd
Połowiczny sukces, spowolnienie pętli pomogło, w górę idzie płynnie. W dół bez zmian czyli akceptowanie dobrze. Ogólnie to przerost formy nad treścią :D w końcu to tylko zabawka dla dziecka. W ramach nauki dołożyłem różnicowanie prędkości na powrocie do zera, duża różnica wraca szybciej, mała wolniej. Na razie pass, bo trzeba jeszcze obudowę skończyć rysować i coś wydrukować.
Dzięki za pomoc w nauce.

Re: aaannndowe początki z enderem

: 13 paź 2021, 20:36
autor: aaannnd
Pierwszy kawałek obudowy wydrukowany :good:
DSCN4592.JPG
DSCN4591.JPG
DSCN4593.JPG
PETG olivkowa zieleń DD
środek z białego silka DD, bardzo fajnie przepuszcza światło, to i jakis ledzik w środku na ciemność zaradzi.

Re: aaannndowe początki z enderem

: 15 paź 2021, 21:41
autor: aaannnd
Obudowa zamknięta. Szybka wycięta z pudełka na CD. Teraz tylko przełożyć bebechy na białe, polutować nano i bedzie.
Jeszcze muszę powalczyć z drukowaniem nakrętki, bo o ile zewnętrzny gwint wyszedł ładnie to wewnętrzny nie wyszedł, przy cięciu jakaś sieczka, plus oozing z przejazdów :? chyba że jeszcze z jakiegoś PLA albo ASA spróbuje.
I jak to sie czasem zdarza wpisałem na odwrót wysokość warstw i wysokość pierwszej warstwy i zamiast 0.2 pierwsza i reszta 0.12, to poszło na opak.
DSCN4595.JPG
DSCN4599.JPG
DSCN4600.JPG

Re: aaannndowe początki z enderem

: 17 paź 2021, 21:30
autor: aaannnd
No to przerzucone na nano i poskładane.
Niby bebechów w środku mało ale pajęczynę i tak ciężko upchnąć.
DSCN4602.JPG
DSCN4603.JPG
DSCN4605.JPG
DSCN4607.JPG
DSCN4609.JPG
20211017_202319.jpg
Wsadziłem zielone diody, bo takie 3mm znalazłem :) Czarny toner z drukarki trochę prześwituje.

Po kablu USB dziła bez problemu. Niestety z zasilania docelowego nie idzie jak należy, zapewne LM7805, taki akurat miałem, to za mało i się gubi. próbowałem różnych konfiguracji zasilania, przez VIN, przez 5V, serwo tu i tam, dołożyłem kondensator elktrolityczny, ale nie pomogło.
No nic trzeba się w końcu na zakupy wybrać ;)