Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Własny licznik do Orbitreka.

winluk 13 Wrz 2006 15:23 8774 13
  • Własny licznik do Orbitreka.

    Witam Was serdecznie...

    Kupiłem niedawno Orbitreka, ale od początku licznik nie przypadł mi do gustu:
    - lekki bieg, a tu prędkość 20-30 km/h,
    - po zrobieniu dwóch kroków (czyli pełnego okresu nogami), przebyty dystans zwiększał się o 6-8m...
    Po pomiarach, np. promienia koła 'zamachowego' obliczyłem, że prędkość jak i przebytą drogę pokazuje właśnie w oparciu o to koło czyli tak, jak bym jechał na rowerze. :/
    W pierwszej chwili układ miał być prototypowy, więc nie przykładałem się zbytnio do płytki, ale jak wszystko zadziałało po mojej myśli, to płytka już została - to urządzenie ma działać, a nie 'się podobać', zwłaszcza wewnątrz.

    Zacznijmy po kolei.
    W tej konstrukcji użyłem mikrokontrolera ATtiny2313. Do tego jeszcze LCD, zasilanie (7805)... i to właściwie już wszystko :) Reszta to już zwykła matematyka... Pisałem w C. Jeśli chodzi o AVR, PORTB bawi się wyświetlaczem, a INT0 (PD2) odbiera impulsy z Orbitreka (jest tam zwykły kontaktron, wiec wychodzą tylko 2 przewody - na jeden podaję GND, a drugi idzie do INT0 (wejście to jest sterowane poziomem niskim)). Schemat przedstawiony jest na poniższym rysunku.

    Własny licznik do Orbitreka.

    Z przeprowadzonych doświadczeń i obliczeń wyszło, że jeden obrót pedałami (ok. 1m) równa się mniej-więcej 9 obrotom koła (‘mniej-więcej’ dlatego, że obliczenia zaokrąglałem, by nie wprowadzać niepotrzebnych obliczeń na ułamkach). Nie miałem zamiaru robić z Orbitreka 'ultraprecyzyjnego zestawu kalibracyjnego z dokładnością do 1µm' :). Wracając do obliczeń... Wiemy, że jeden obrót pedałami = ok. 1m = 9 impulsów z kontaktronu. Zliczamy co 9 impuls i mamy przebieg w metrach. Jeśli chodzi o prędkość to wykonuję pomiar czasu między impulsami. W rzeczywistości co przepełnienie Timera0 zwiększam sobie zmienną, a co dziewiąty impuls obliczam prędkość na podstawie zliczonych przepełnień Timera przypadających na 1m (1 obrót pedałami = 1m = 9 obrotów koła). Reszta to już tylko obsługa LCD (2x16). W 'lewym górnym rogu' (od adresu 0x00) wyświetlam dwucyfrową prędkość + " kmh" (jeśli prędkość jest <10 to wyświetlam "0",prędkość, " kmh"). W 'prawym górnym rogu' (0x08) wyświetlam czas w postaci "hh:mm:ss". W 'lewym dolnym rogu' (0x40) wyświetlam całkowity przebieg urządzenia z dokładnością 100m, w formacie 0000.0 (km). Co 100m zwiększam zmienną km01 (zrobiłem podział na tysiące, setki, dziesiątki, jedności i dziesiąte części kilometrów) i jednocześnie zapisuję do eepromu w 2313 pod pierwszymi pięcioma adresami (0x00-tysiące km, ... 0x04-dziesiąte części km). Oczywiście są warunki, jeśli km01 (dziesiąte części km) będą > 10 to km1++; km01=0 (jedności km zwiększ o 1, km01 wyzeruj), itp. Każdy z bajtów w eepromie przechowuje w takim wypadku wartości z zakresu 0x00-0x09. Po włączeniu urządzenia, procesor odczytuje każdą (z 5) komórkę pamięci i daną wartość zapisuje do odpowiedniej zmiennej, wyświetla ją na LCD.
    Przycisk na obudowie to 'zwykły' reset mikrokontrolera. Po jego zresetowaniu mamy na LCD same 'zera' + całkowity przebieg.
    Program zajmuje 2038 z dostępnych 2048 bajtów flasha mikrokontrolera :)

    Obudowę starałem się tak zagospodarować, by wszystko było przymocowane do jej górnej części. Dolna część jest przykręcona do wygiętego płaskownika (w kształcie odwróconego 'U'), który jest przykręcony do Orbitreka. Z tyłu jest gniazdo do podłączenia 230V, z lewej strony znajduje się gniazdo mini jack mono, do którego wkładamy wtyczkę z czujnika obrotów. Na górze mamy LCD 2x16, wyłącznik sieciowy (dwusekcyjny, tak więc po wyłączeniu urządzenia mamy pewność, że żadne zabłąkane 'fazy' nam się nie kręcą po elektronice) :) oraz przycisk resetowania czasu i bieżącego przebiegu.

    Wszystko znajduje się na fotkach poniżej.

    Własny licznik do Orbitreka.

    Własny licznik do Orbitreka.

    Własny licznik do Orbitreka.

    Własny licznik do Orbitreka.

    Własny licznik do Orbitreka.

    Własny licznik do Orbitreka.

    Własny licznik do Orbitreka.

    Własny licznik do Orbitreka.

    Własny licznik do Orbitreka.

    Własny licznik do Orbitreka.


    Koszty (ceny zaokrąglałem wzwyż):
    - 3zł - ATtiny2313,
    -20zł - LCD 2x16,
    - 3zł - obudowa Z-5,
    - 7zł - trafo TS2/16,
    -17zł - gniazda, podstawka, potencjometr, kabel zasilający, 3 kondensatorki, 7805, radiator, mostek prostowniczy,
    - 0zł - DS1813 (nie było, wiec tymczasowo wlutowany jest kondensator).
    ------
    50zł - SUMA

    Dla pytających o kod źródłowy: udostępnię go, jak zrobię w nim porządek, bo obecnie panuje tam straszny 'bajzel' :)
    Korzystam też z własnych bibliotek, nagłówków itp., więc postaram się to upchnąć do jednego pliku.c .


    Pozdrawiam serdecznie,

    Łukasz

    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
    O autorze
    winluk
    Poziom 10  
    Offline 
    winluk napisał 12 postów o ocenie 0, pomógł 0 razy. Jest z nami od 2005 roku.
  • #2
    regrom
    Poziom 16  
    bravo! ladnie sie prezentuje, mam pytanie ; co to za bialy klej w srodku? nie wiem wlasnie czym przymocowac trafo. ;)
  • #3
    tomaszek1606
    Poziom 12  
    na oje oko to klej do pistoletu :) Tani zależnie od średnicy 1- 2 zł za "pałeczke :)
  • #4
    Arkadius3
    Poziom 16  
    ten biały klej to pewnie klej na gorąco ja na to mówie glutomat :D tanie i bardzo dostępne pistolet to koszt od 5 do 20zł zalezy od wielkości a pałeczki klejowe to groszowe sprawy
  • #5
    DJ MHz
    Poziom 24  
    lepiej kupić droższy model pistoletu bo te tanie po kilku rozgrzaniach się psują i wysadzają korki w domu :D
  • #6
    winluk
    Poziom 10  
    Dokładnie jak mówicie :) Jest to najzwyklejszy glutomat :)
  • #7
    przemo.t
    Poziom 27  
    DJ MHz napisał:
    lepiej kupić droższy model pistoletu bo te tanie po kilku rozgrzaniach się psują i wysadzają korki w domu :D


    To widac mam szczescie.... a moze nie mam korkow w domu ;) Kupilem chyba 3 lata temu taki za 12zl. Grzeje do dzis pomimo kilkukrotnego zostawienia pod pradem.

    Projekt calkiem fajny, srodek troche mi sie nie podoba, dlatego 5/6
    pozdrawiam
  • #8
    winluk
    Poziom 10  
    Wiem, mogłem bardziej się postarać, ale:
    - ta płytka miała być testowa,
    - LCD przykleiłem już 'na serio' (płytkę zawsze można zmienić, prawda?),
    - jak już zacząłem to upychać, by zobaczyć czy się zmieści... stwierdziłem, po co robić to samo, ale ładniejsze, skoro i tak tego nie będzie widać, więc tylko zalałem klejem i zamknąłem obudowę.
  • #9
    DJ MHz
    Poziom 24  
    przemo.t napisał:
    DJ MHz napisał:
    lepiej kupić droższy model pistoletu bo te tanie po kilku rozgrzaniach się psują i wysadzają korki w domu :D


    To widac mam szczescie.... a moze nie mam korkow w domu ;) Kupilem chyba 3 lata temu taki za 12zl. Grzeje do dzis pomimo kilkukrotnego zostawienia pod pradem.

    Projekt calkiem fajny, srodek troche mi sie nie podoba, dlatego 5/6
    pozdrawiam


    No ja kiedyś kupilem taki za 15. to po kilku razach jak był pod prądem :P wkońcu klej poszedł na kabelki w śrotku i zwarcie spowodował :/. A mam nową instalacje z bezpiecznikami w domu i tak wybiło :P
  • #10
    urqel1
    Poziom 10  
    Ile czasu zajęła Ci ta konstrukcja i czy były jakieś większe problemy podczas pisania programu?
  • #11
    winluk
    Poziom 10  
    Pierwszy dzień - wkurzam się na pomiary oryginalnego licznika, zaczynam myśleć, by zrobić własny...

    Drugi dzień - program i testowanie w AVT-992.

    Trzeci dzień - drobne poprawki w programie, schemat, płytka, wycieczka do sklepu elektronicznego, montaż 'wnętrza'. Świadomie zrezygnowałem ze złącza ISP:
    - wychodzę z założenia, że jak coś robię (np. program) to tak, by był w miarę najlepszy (nie zrobiłem tylko np. przebiegu, a 'resztę' dopiszę później),
    - program zajmuje i tak 99% pamięci, więc nie bardzo jest miejsce na dodatkowe funkcje w przyszłości... (nie jestem w stanie go bardziej zoptymalizować, już nawet zmieniałem niektóre zmienne z 'int' na 'char' by zajmowały mniej pamięci... w pierwszej wersji (przed optymalizacjami) było 107% flash-a)
    - mam AVT-992, więc wszelkie zmiany w programie mogę testować właśnie w nim,
    - dostęp do 2313 jest bardzo łatwy, więc nie ma problemu z wymianą.

    Czwarty dzień - wygięty, pomalowany, wyschnięty płaskownik przykręcam do Orbitreka, do płaskownika zaś licznik.

    Kolejne dni - z zadowoleniem używam Orbitreka :)


    Oczywiście nie były to pełne 4 dni. Najwięcej jednak zajął mi program i jego testowanie, poprawianie, sprawdzanie warunków.
    Podsumowując: hardware - ok. 6h, software+testy - 10h.

    Pozdrawiam,
    Łukasz
  • #12
    fayo
    Poziom 10  
    huf... fajny bajerek ... zrobiłem sobie zegar widmowy, co przy okazji liczy obroty... można sobie takie cudo zamontoać na orbitreku... hehe zaoszczędzisz na wyświetlaczu lcd, będziesz potrzebował tylko 8 diodek, a wyświetlisz niewiele mniej ;] nie wiem, czy mi się tylko tak wydaje, czy można to wszystko było znacznie prościej zrobić? fototranzystorek, i pomijając obsługe lcd to by było niewie... 100 linijek kodu... ze wszystkim...
  • #13
    winluk
    Poziom 10  
    Czy fototranzystor, czy kontaktron - daje to samo... i tak musze zliczać impulsy. Reszta to już matematyka.
    Owszem, mógłbym dać fototranzystor przy pedałach, wtedy odpadła by linijka "obrot=impulsy/9". Nic więcej :)

    Pozdr,
    Luk