
Przedstawiam kolejny krok ku "cyfryzacji" mojego motocykla, a mianowicie 10-cio funkcyjny licznik-komputer pokładowy.
Co do słówka "komputer" to może nieco na wyrost go użyłem, niemniej urządzenie oprócz mierzenia prędkości i przebytej drogi, pokazuje też jednak coś więcej - w sumie oblicza pewne dane i informuje o wyniku, więc ma cechy "compute"

No ale o tym napiszę nieco dalej.
Oryginalny licznik mechaniczny był napędzany linką od przekładni ślimakowej z koła przedniego i pokazywał prędkość oraz dystans całkowity i tzw. dzienny.
Był więc 3-funkcyjny i wyglądał tak:

Jego słabą stroną jest ów napęd linką, która czasem rwała się, pancerz pękał, przecierał itp.
Prezencja cyferblatu też nie była zachwycająca, chociaż to sprawa gustu, mnie się nie podobał.
Duża obudowa po usunięciu środka okazała się idealnym miejscem na umieszczenie tam elektronicznego
rozwiązania bez zbędnego głowienia się nad miniaturyzacją i gęstym montażem.
Nie chciałem bowiem robić nowej obudowy (co skończyło by się estetyczną porażką), a założyłem, że dobrze będzie pozostawić oryginalną formę licznika.
Główne okno po cyferblacie wypełnione zostało całkowicie przez podświetlany LCD 2,4" (128x64),
natomiast przez dolne okienko po liczniku przebiegu dziennego teraz pokazywana jest temperatura oleju
silnikowego na linijce 10xLED (trójkolorowa).
Wymiarami ta linijka wkomponowała się idealnie w to okienko i wygląda naprawdę "fabrycznie"
Po jej bokach znalazły miejsce dwa przyciski obsługi menu, pod które wywiercone zostały w obudowie otwory fi 5mm i są to dwa z trzech otworów jakie w ogóle zostały popełnione (ten trzeci na spodzie do przykręcenia najniższej PCB)
Pozostał otwór na lewym boku obudowy po pokrętle kasowania licznika dziennego, który wykorzystałem pod potencjometr regulujący jasność podświetlenia LCD.
To tyle tytułem mechaniki. Przejdę teraz do elektryki motocyklowej.
Największym wyzwaniem było dla mnie znalezienie sposobu na zastąpienie napędu linką na taki, który bez większych przeróbek będzie dostarczał impulsów z przedniego koła. Odpadał wariant z kontaktronem, magnesami czy innego podobnego typu rozwiązaniami "rowerowymi"
Po dłuższych przemyśleniach i poszukiwaniach wybór został taki - oryginalny czujnik prędkości od Forda Focusa, który posiada taki sam trzpień jak końcówka usuniętej linki i współgra idealnie z wyjściem przekładni ślimakowej przy kole.
Jedynie nie spasowały średnica i skok gwintów obu tych komponentów. Konieczne było dorobienie adaptera - nagwintowanej tulejki z aluminium. Tak to wygląda:

Czujnik od Focusa to halotron dający 8 impulsów na jeden obrót ośki.
Potrzebuje zasilania 12V. Używany kosztuje około 20-30 zł.
Koło na jeden swój obrót daje 3 obroty na wyjściu z przekładni ślimakowej.
Zatem całkowite przełożenie koło-impuls to 1:24. Super, jeśli chodzi o rozdzielczość pomiarów.
Przy kole przed:

...i po modyfikacjach:

Drugim nieco kłopotogennym elementem był czujnik temperatury oleju silnikowego. Zanim zdecydowałem się jakiego typu sensor mam użyć, musiałem przekonać się jak jest realna temperatura oleju w misce w pobliżu śruby spustowej podczas jazdy w różnych warunkach. Jeszcze w ubiegłym sezonie mając podpięty termometr z czujnikiem platynowym PT100 w śrubie spustowej przekonałem się, że temperatura oleju sięga maksymalnie do około +130 stopni C.
I znowu postanowiłem wykorzystać gotowy element - sensor temperatury wody, tym razem od Mercedesa W124/W210. Nowy kosztuje około 15 zł.
Jest to termistor NTC 2 kOhm z wyjściem na jenym konektorze, a drugi na stałe jest umasowiony na obudowę. Wymiarami gwintu M14/1,5 pasuje on bez żadnych przeróbek zamiast śruby spustowej oleju. Już zamontowany na motocyklu w misce i okablowany wygląda tak:

Pozostał przycisk do przełączania ekranów licznika. Zakupiłem w sklepie motoryzacyjnym za 20 zł wodoodporny i spasował fajnie pod miejsce tuż przy lewej manetce. Wygląda to tak:

Teraz sam licznik; na początku opiszę hasłowo w punktach jego funkcje i cechy.
Funkcje podstawowe:
1. prędkość chwilowa (max 199 km/h)
2. prędkość średnia (obliczana co 100 metrów)
3. prędkość maksymalna
4. czas rzeczywisty z podtrzymaniem bateryjnym
5. dystans całkowity (max 99 999 km)
6. dystans dzienny (max 999.9 km)
7. czas jazdy (max 99 h 59 m 59 s)
8. napięcie akumulatora (max 20.0 V)
9. temperatura otoczenia (0 ... +70 st. C)
10. temperatura oleju silnikowego na wielokolorowej linijce 10xLED (+40 ... +140 st. C)
Funkcje dodatkowe:
1. alarm wysokiego napięcia akumulatora (>16.0 V)
2. alarm niskiego napięcia akumulatora (ustawialny próg 10.0 ... 12.0 V)
3. informacja o dystansie do wymiany oleju
4. alarm o konieczności wymiany oleju z informacją o ile km przekroczony został ten moment
5. po minucie gdy prędkość chwilowa będzie równa 0 km/h - wygaszenie linijki LED i pulsująca co 1 sek.
niebieska LED oraz pokazanie na ekranie LCD tylko dużego zegara czasu rzeczywistego
6. automatyczne wyjście z trybu wygaszenia gdy prędkość chwilowa będzie większa od 0 km/h lub ręcznie gdy zostanie naciśnięty którykolwiek z przycisków
7. ostrzeżenie o uszkodzonym bądź odłączonym czujniku temperatury oleju - wygaszenie linijki LED i pulsująca co 1 sek. ostatnia czerwona LED
Ustawienia:
1. zmiana godzin i minut zegara czasu rzeczywistego
2. zmiana średnicy koła (40 ... 80 cm)
3. zmiana progu alarmu niskiego napięcia akumulatora (10.0 ... 12.0 V)
4. zmiana dystansu między wymianami oleju (3000 ... 12000 km)
5. kasowanie licznika dystansu do wymiany oleju po wykonaniu tej czynności
6. kasowanie statystyk jazdy (prędkość średnia i maksymalna, dystans dzienny, czas jazdy)
Ustawienia dokonywane są przy pomocy kombinacji dwóch przycisków astabilnych i możliwe są tylko wtedy gdy prędkość chwilowa wynosi 0 km/h
pkt. 1-5 poprzez menu ekranowe, pkt.6 poprzez przytrzymanie przycisku na czas dłuższy niż 3 sekundy
Licznik składa się z trzech płytek druku jednostronnego, zespolonych stabilnie pomiędzy sobą śrubami M2,5 na mosiężnych tulejkach dystansowych.
Kontakt między obwodami zapewniają konektory gold-pin.
- dolna PCB to układy zasilania, filtrowania i formowania sygnałów.
- środkowa to domena mikrokontrolerów - obróbka sygnałów
- górna to "interfejs użytkownika" - prezentacja wyników i obsługa menu.
Kilka zdjęć jak to wyglądało w motażu i jak prezentuje się gotowy:












Zarys działania tak ogólnie
Zasilanie to głównie układ przetwornicy DC/DC step-down, która obniża napięcie do około +7,5 V i dalej na dwie gałęzie stabilizatorów szeregowych +5V, gdzie jeden z nich zasila obwody niskoprądowe, w tym mikrokontroler zapisujący dane do wewnętrznej pamięci EEPROM.
Prędkościomierz - sygnał z Hall'a podawany przez optoizolator na kontroler generuje przerwanie i impulsy liczone są co 1 sekundę.
Zegar RTC bazuje na układzie DS3231 z baterią litową typu 2032 podtrzymującą czas przy braku zasilania głównego.
Pomiar temperatury otoczenia na DS18B20 z ograniczeniem programowym pomiaru do 0...+70 st.C
LCD to wyświetlacz o wysokim kontraście technologii COG, działa na sterowniku ST7565R z interfejsem SPI. Jest on produkcji europejskiej, nie chińskiej i stąd jest najdroższym elementem całości - kosztuje około 75 zł + podświetlenie bursztynowe około 20 zł.
Przy wyłączaniu zasilania głównego, kontroler dostaje przerwanie i uruchamia zapis danych do pamięci EEPROM kontrolera, w tym czasie specjalny obwód zapewnia jeszcze podtrzymanie zasilania na około 300 ms. Dane te to statystyki jazdy, jak dystans dzienny i całkowity, prędkość maksymalna i średnia, czas jazdy oraz pomocnicze wskaźniki do obliczeń cząstkowych tych statystyk (sekundy jazdy, impulsy obrotów koła)
Regulacja jasności podświetlenia LCD zrealizowana została sprzętowo na układzie 555 pracującym jako regulator PWM.
Program został napisany w Arduino (wersja IDE 1.8.1), zajmuje około 24 kB (77% pamięci)
Opisy są w języku angielskim to celowe, tak miało być z kilku powodów.
Pobór prądu przy zasilaniu 12.0 V:
- minimalny (LED wygaszone): 30 mA
- maksymalny (10 LED świeci): 80 mA
Schemat jak i filmik z jazdy dodam w przyszłym tygodniu.
Kodu źródłowego nie udostępniam.
Cool? Ranking DIY