Kręci się kręci

Pan Karol pracuje nad swoim pierwszym projektem – licznikiem rowerowym. Dopiero poznaje podstawy Arduino, więc wszystko jest nowe i ekscytujące!

Liczniki rowerowe to „oklepany” temat. Dużo ich na rynku i mają mnóstwo funkcji. Ale nawet te „profesjonalne” mają (czasami) marudne działanie, polegające na dużym czasie opóźnienia pomiędzy rozpoczęciem jazdy a określeniem prędkości. Wiemy o co chodzi: dojeżdżasz do skrzyżowania, stop, a na liczniku prędkość powoli maleje: 20 km/h.. 17 km/h… 12 km/h… 6 km/h… 0 ! W końcu, po ~3 sek? Ruszasz, i ponownie to samo: jesteś w połowie przejazdu a na liczniku ciągle zero. Dopiero potem licznik „żyje”.

Sposób określenia prędkości jest prosty: umieszczamy magnes na szprysze koła i zliczamy liczbę pojawień się magnesu przy czujce. Dla jednego magnesu gdy zliczymy, np. 10 wystąpień w czasie 1 min to prędkość obrotowa wynosi 60 RPM (Revolutions per minute = obroty na minutę). Mając liczbę zliczeń i znając średnicę koła wyliczamy prędkość liniową.

Wyniki można jednak poprawić dodając więcej magnesów, czyli zliczamy z większą dokładnością. Dla dwóch magnesów i ponownie 10 zliczeń w ciągu 1 min mamy oczywiście prędkość 2x mniejszą, czyli RPM = 30, a tym samym prędkość liniową 2x mniejszą.

Pojawiają się pytania:

  • Ile magnesów użyć?
  • Jak długo zliczać pojawienia się magnesów przy czujce pola, zanim poda się wartość prędkości?

Aby znaleźć odpowiedzi na w.w. pytania Pan Karol wykorzystał zestaw pomiary z zajęć z przedmiotu Programowanie Mikroprocesorów i przeprowadził swoje pierwsze, poważne badania 😉

Aby nie komplikować sobie życia i mieć układ pomiarowy pod ręką, najlepiej na biurku – wykorzystane zostały rozetki z różną liczbą ramion jako odpowiedniki różnej liczby magnesów. Aby nie kręcić korbą w rowerze wykorzystano silniczek DC i zasilanie akumulatorowe 6V (w ten sposób wiemy, że rowerzysta równo pedałuje, nie przyspiesza, nie zwalnia, nie zniechęca się…). Rozetki wydrukowano na wydziałowej drukarce 3D (pewnie można wykorzystać kartoniki, ale skoro mamy drukarki – to czemu nie).

Należało więc uruchamiać silniczek, rejestrować liczbę „klików” na czujce szczelinowej w określonym czasie (pół sekundy, sekunda, dwie). Najlepiej robić to wielokrotnie, aby posiadać większą statystykę i mieć dokładniejsze dane. Więc dla danego czasu zliczania 10-20 wyników. A potem należało zmienić rozetkę na inną i powtórzyć całą procedurę. Wyniki zbierano do arkusza:

Powyżej przykładowy wynik pomiarów – całkiem konkretny fragment badań Pana Karola! Widać tu wyniki RPM dla rozetki z 2-ma ramionami (kolumna D, a od D9-D28 mamy pojedyncze wyniki przekopiowane z portu szeregowego Arduino UNO). W D5 jest średnia, a w D4 dokładność pomiarów (czyli odchylenie standardowe) z pomiarów zawartych w D9-D28. Potem kolejna rozetka z 4-ma ramionami (kolumna E), kolejna z 8-ma (kolumna F) i jeszcze jedna z 16-toma ramionami (kolumna G). I to wszystko dla czasu pomiaru 300 ms (komórka B2).

Z tych pomiarów widać, że 4 ramiona nie zmieniają dokładności w stosunku do 2 ramiona. Polepszenie następuje dopiero przy zwiększeniu liczby ramion do 8 – ale nie ma co zwiększać więcej – 16 nie robi już różnicy (choć to jednak efekt tylko dla określonej prędkości obrotowej testowanego koła – pewnie dla większej prędkości pojawią się różnice pomiędzy 8 a 16 ramion).

Następnie wydłużamy czas pomiaru (do 800 ms) i powtarzamy badania (zabawę? jak kto woli).

Widać, że dokładność rośnie wraz gdy zwiększamy liczbę ramion rozetki (wiersz „Odchylenie standardowe” — wartości maleją, czyli właśnie rozrzut wokół wartości średniej maleje, tym samym zyskujemy dokładność). Włąśnie tego należało się spodziewać. W tym przypadku dochodzimy mamy już 2% dokładności przy 8-miu ramionach rozetki, a nawet mniej przy 16-tu. Kolejne pomiary dla innego czasu zliczania:

Ostatnia seria danych (dla t=2 sek) jest zaskakująca o tyle, że pojawia się tu dziwny problem – strata dokładności (wzrost odchylenia standardowego) dla 8-miu ramion rozetki. Jak to wytłumaczyć? Okazuje się, że tu koło się jakoś zblokowało i nie pracowało równo – coż, to taki tani chiński silniczek, nic profesjonalnego 😉

Ile ramion rozetki należy użyć, aby mieć szybki i dokładny pomiar prędkości roweru? Trzeba to przeliczyć na prędkość liniową i wykorzystać te wyniki do ostatecznego dobrania czasu zliczania i liczby ramion (czyli magnesów na obręczy/szprysze). CDN.

(c) K.G. 2024

Posted in FiBot and tagged , .