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

Licznik rowerowy na bazie AVR

rhn 01 Wrz 2011 20:48 22527 32
  • Licznik rowerowy na bazie AVR

    Witam, mój pierwszy projekt elektroniczny na Elektrodzie i w ogóle :)

    Licznik rowerowy widoczny na poniższym zdjęciu.

    Pomysł zrodził się w zeszłym roku, właściwie bez żadnego powodu. Zaczęło się od zabawy układami AVR - przez diody i przyciski, potem ekran z telefonu. W końcu padła bateria w moim dotychczasowym liczniku i postanowiłem, że zrobię coś lepszego.

    Projekt tworzyłem od początku z zamiarem wypuszczenia go z kodem, więc ten temat jest właściwie drugorzędnym źródłem wiedzy na jego temat. Główna strona znajduje się na githubie, tam też znajduje się bardziej szczegółowa dokumentacja, kod źródłowy i schematy.

    Sama praca zajęła sumarycznie jakieś pół roku, chociaż pracowałem nad tym z przerwami od zeszłych wakacji. Najwięcej pracy włożyłem w niego w tym roku i już w te wakacje mogłem zamontować wszystko na rowerze.

    Zdecydowałem się go upublicznić akurat teraz, gdy dokumentacja jest mniej więcej gotowa, soft i płytka są przetestowane, a wszystko da się włożyć na rower. Nie wygląda to może najpiękniej, ale rozwój jeszcze się nie skończył :)

    Działanie
    W tym momencie licznik nie zawiera wszystkich popularnych funkcji, jak zegar itp, ale są w planach. Do tej pory udało mi się dodać:

    • Obecną prędkość
    • Obecną częstotliwość obrotów korby
    • Dystans podróży
    • Czas podróży
    • Średnią prędkość podróży
    • Maksymalną prędkość podróży
    • Podświetlenie ekranu
    • Wykres prędkości względem czasu
    • Wykres prędkości względem dystansu
    • Zmianę obwodu koła


      Po włączeniu urządzenia, widać taki oto ekran:

      Licznik rowerowy na bazie AVR

      To po lewej to obroty korby (razem z podziałką, która pokazuje 0 oraz optimum), po prawej widać obecną prędkość, poniżej listę modułów, a na samym dole obecny moduł (w tym przypadku dystans).

      Całość operuje na 2 przewodowych sensorach z kontaktronami, dorwanymi z serwisu rowerowego za półdarmo :), 3 lub 2 przyciskami i 2 bateriami AA 1,2V.

      Przyciski służą głównie do przewijania modułów i wybierania ich, ale to ogólnie zależy od modułu - np. wciśnięcie wyboru przy module dystansu zeruje go, wciśnięcie wyboru przy module obwodu koła pozwala go zmieniać.






      Sprzęt:
    • AtMega8
    • Ekran od Nokii 5110
    • Generator parzystości
    • Dowolne przyciski
    • Sensory oparte na kontaktronach


    Sercem urządzenia jest AtMega8 - tam znajduje się cała logika systemu. Układ zarządza ekranem i zbiera przerwania z przycisków i sensorów. Ponieważ AtMega8 ma tylko 2 przerwania zewnętrzne, w projekcie użyłem generatora parzystości, żeby z 2 zrobić więcej.

    Cała część sprzętowa jest jak najprostsza, ponieważ nie znam się na elektronice :) Tutaj ponownie, w planach mam przerobienie sprzętu tak, aby go uprościć i zwiększyć możliwości.

    Koszt wytworzenia jednego urządzenia szacuję na jakieś 120 zł, więc jeszce w granicach rozsądku.


    Oprogramowanie

    Projekt napisany jest w całości w C, z 6 liniami assembly. Starałem się używać C89, ale ostatecznie w paru miejscach stosuję rozszerzenia GNU99 i C99, przez co najpewniej da się go skompilować tylko z GCC.

    Bardzo zgrubnie ujmując, oprogramowanie podzieliłem na rdzeń, sensory i moduły. Sensory to sensory - zbierają dane. Moduły zajmują się wyświetlaniem danych, mają prostą budowę i w zasadzie każdy może je napisać (dokumentacja ma dla nich oddzielną sekcję). Rdzeń łączy to wszystko.

    Sam kod oparty jest zarówno na przerwaniach, jak i na pętli głównej. Przerwania odpowiadają za zbieranie i zapamiętywanie danych, pętla główna za wyświetlanie.

    Z ciekawostek technicznych, moduły są na tyle uniwersalne, że można w każdym z nich zrobić niezależną grę korzystającą z przycisków :)

    Montaż
    Pięta Achillesa projektu. Na temat projektowania mechaniki mam jeszcze mniejsze pojęcie, niż elektroniki, więc przy pierwszym podejściu kompletnie to zignorowałem. Z tego powodu ekran jest dolutowany na stałe, a sensory używają końcówek BLS-02 (czyli byle jakich).
    Metodą prób i błędów udało mi się zamontować ustrojstwo na rowerze z pomocą kawałka styropianu i takich śmiesznych zatrzasków:

    Licznik rowerowy na bazie AVR

    Na koniec zdjęcie samego licznika z bateriami, które mi osobiście podoba się najbardziej:

    Licznik rowerowy na bazie AVR

    PS. Do modów: rozumiem, że tematy postów mają opisać problem, ale czemu na DIY nie przechodzi "Licznik rowerowy"?


    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz pendrive 32GB.
  • #2 01 Wrz 2011 23:14
    szaleniec
    VIP Zasłużony dla elektroda

    Opisz, jeśli możesz w trzech zdaniach jak liczysz aktualną prędkość.

  • #3 01 Wrz 2011 23:30
    rafcio363
    Poziom 30  

    szaleniec napisał:
    Opisz, jeśli możesz w trzech zdaniach jak liczysz aktualną prędkość.

    Sensory oparte na kontaktronach

    Zapewne ilośc obrotów koła w czasie dobrane doświadczalnie z prawdziwym licznikiem rowerowym.

  • #4 01 Wrz 2011 23:38
    rhn
    Poziom 10  

    Ogólnie, prędkość jest liczona zwykłym dzieleniem:
    Kontaktron na kole co jakiś czas generuje przerwanie zewnętrzne, następnie oprogramowanie zapamiętuje czas jego wystąpienia. Domyślnie, pamiętane są 3 ostatnie impulsy. Odejmując czas pierwszego impulsu od czasu ostatniego impulsu, wiemy ile zajęły 2 ostatnie obroty koła.

    W momencie wyświetlenia wykonywane jest obliczenie: obroty koła * obwód koła / czas obrotów.

    Gdy impulsu nie ma przez dłuższy czas, prędkość spada stopniowo - da się obliczyć, jaka może być maksymalna prędkość, gdyby impuls nadszedł "teraz".
    Zatrzymanie koła jest wykrywane po 3 sekundach bez impulsów.

    Wszystko to jest oparte na zdarzeniach/przerwaniach, więc impuls jest zdarzeniem, zatrzymanie jest zdarzeniem, odrysowanie ekranu jest zdarzeniem itd.

    EDIT: jeśli chodzi o czas, jest używany w wielu miejscach w projekcie, więc kalibracja odbywa się niezależnie od prędkości. Definiuję stałą przy kompilacji, dobraną po części analitycznie, a w praktyce kalibrowałem porównując stoper licznika z upływem czasu na czasówce do jajek :] Dokładność pomiaru jest w granicach 1% od innego licznika, chociaż powinna być dużo gorsza z takim wzorcem czasu...

  • #5 01 Wrz 2011 23:39
    krru
    Poziom 32  

    Jak wygląda pobór prądu? Czy optymalizowałeś kod pod tym względem?

  • #6 01 Wrz 2011 23:49
    rhn
    Poziom 10  

    Poboru prądu nie potrafię zmierzyć, gdy próbowałem, ekran przestawał cokolwiek wyświetlać (i tak działa poniżej napięcia nominalnego). AtMega przez większość czasu nic nie robi nawet w czasie jazdy, wchodzi w tryb nieaktywny, a budzą go jedynie przerwania z sensorów, przycisków i timera.

    Podejrzewam, że największym prądożercą jest ekran, a potem rezystory pull-up, które wlutowałem bez potrzeby. Mimo wszystko, gdy nie jest używany, przetrzymuje przynajmniej 2 tygodnie - sprawdzone doświadczalnie.

    Myślałem nad wprowadzeniem jakiegoś czasu, po którym ekran się wygasza, a kontroler przechodzi w jakieś głębokie uśpienie, ale do tego drugiego musiałbym chyba mieć zewnętrzny timer.

  • #7 02 Wrz 2011 08:53
    Anonymous
    Użytkownik usunął konto  
  • #8 02 Wrz 2011 10:26
    Krzychu23
    Poziom 16  

    Ale byłby wypas jakbyś dołożył aktualne przełożenia :) A wtedy, obliczając jakiś stosunek prędkości roweru do obrotów korby sugerować zmiany przełożenia :)

  • #9 02 Wrz 2011 11:09
    gbd.reg
    Poziom 21  

    Co do aktualnego przełożenia to chyba byłyby potrzebne czujniki wykrywające którą przerzutkę mamy aktualnie. Najprostsze rozwiązanie to chyba czujnik dla każdego biegu przy manetkach, albo w przypadku manetek sekwencyjnych (na 2ch dźwigniach: jedna zwiększa o 1, druga zmniejsza) 2 czujniki wykrywające która z dźwigienek została pociągnięta i jak mocno (w wielu manetkach sekwencyjnych jest możliwość zmiany o 2-3 biegi jednym pociągnięciem)

  • #10 02 Wrz 2011 11:09
    tombus
    Poziom 15  

    Witam.
    Ja również zaprojektowałem i zbudowałem taki licznik rowerowy.
    Wzorowałem się na tym z załącznika. Dzięki uprzejmości autora wspomnianego urządzenia udało mi się napisać program praktycznie od nowa z wieloma dodatkowymi opcjami. Tego jest naprawdę sporo.

    W swoim projekcie wykorzystałem właśnie wyżej wspomnianą ATmegę z serii PicoPower w SMD. Do tego dołożyłem PCF8583 w SMD oraz DS18B20. Wyświetlacz pochodził od Nokii 3310. Wszystko upchałem na małej, dwustronnej płytce. Rezygnując z czujnika temperatury oraz PCFa projekt byłby naprawdę mały i ceną również by zachwycił.
    Niestety, z braku czasu i funduszy projekt porzuciłem, choć może niedługo pokuszę się o wskrzeszenie licznika.

    Mam kilka pytań.
    1. W jaki sposób poradziłeś sobie z pomiarem prędkości i kadencji. Czy pomiar kadencji również jest na przerwaniach i do tego inne timery?

    2. W pewnym momencie stwierdziłem, że przez LCD licznik jest tak duży (duża obudowa). Próbowałem nawet obrócić wyświetlacz o 90 stopni i zmodyfikować do prawidłowego wyświetlania. Czy testowałeś inne wyświetlacze LCD? Wykorzystujesz oryginalny LCD?

    3. Miałem problem z odpowiednim ustawieniem cyferek na LCD. Jakiej Ty używasz biblioteki do LCD?

    4. Czy licznik jest na jakiejś podstawce, aby móc wyciągać licznik?

    Jeśli chcesz, podzielę się doświadczeniem i spostrzeżeniami. Mogę również udostępnić program i pomóc w rozwijaniu projektu.

    Czy posiadasz pozwolenie od korporacji AVT do rozpowszechniania dokumentacji?
    Regulamin:
    3.1.1. (1) Zabronione jest jakiekolwiek udostępnianie za pomocą Forum materiałów uzyskanych nielegalnie, bądź w sposób sprzeczny z obowiązującym prawem.
    Załączniki skasowałem.
    [DJpopak;)]

  • #11 02 Wrz 2011 11:41
    WWektor
    Poziom 12  

    Zacny projekcik. Szkoda tylko, że płytka taka duża, ale myślę że to prototyp więc wszystko można jeszcze zminiaturyzować :)
    Jeśli chodzi o wyświetlanie sugerowanego optymalnego przełożenia to nie potrzeba do tego dodatkowych czujników. wystarczy jednorazowo skalibrować zależność obrotów korby od obrotów koła dla każdego przełożenia i możemy podawać optymalne biegi. Jeśli chodzi o pokazywanie faktycznego stanu przerzutek trzeba by tylko zastosować jakiś sprytny trik z wykrywaniem czy rower przypadkiem nie przyspiesza bardziej niż rozpędzamy go korbami (takie zjawiska jak najbardziej istnieją w rowerze :P ). Ale jakby się dobrze racjonalnie zastanowić to wydaje mi się jednak że to co kolega zastosował w projekcie (wskaźnik pokazujący optymalne obroty korby) jest w zupełności wystarczające i wyświetlanie na którym biegu aktualnie jedziemy jest kompletnie zbędne ;)

  • #12 02 Wrz 2011 14:12
    marek1846
    Poziom 14  

    Z tym przełożeniem to raczej "wodotrysk". Trochę jeżdżę i już sama kadencja jest w amatorskiej jeżdzie typowym gadżetem. Sam projekt fajny, tylko ten styropian. W swoim liczniku dodałem możliwość ręcznego zatrzymywania i ponownego uruchomiania pomiaru. Przy jeżdzie w mieście, ciągłe zwalnianie przed światłami a następnie ruszanie, znacznie zmniejsza średnią.

  • #13 02 Wrz 2011 15:21
    rhn
    Poziom 10  

    Krzychu23, gbd.reg: myślałem o wykrywaniu przełożenia i sugestiach zmiany biegów od początku. Da się to dość łatwo zrobić tak, jak napisał Krzychu i WWektor: badając stosunek obrotów koła do obrotów korby.

    W praktyce okazało się, że nie pedałuję cały czas z tą samą częstością - zwykle jest to 90rpm, ale wpływ ma prędkość (im, szybciej, tym częściej), wiatr (pod wiatr szybciej), rodzaj nawierzchni (tu różnie), nachylenie (pod górkę szybciej), zmęczenie itp, w związku z czym lepiej polegać na własnym wyczuciu.
    Co nie znaczy, że kiedyś z tym nie poeksperymentuję :)

    WWektor, Żabek - płytka jest wielka a styropian wielki i ohydny, to prawda. To było pierwsze podejście, więc na razie wystarczy, ale na pewno tak nie zostanie. Dopóki nie nauczę się lutować SMD, płytka jednak o wiele się nie zmniejszy, najwyżej schowa się pod moduł ekranu.

    Odpowiadając na pytania tombusa:
    1. Prędkość i kadencja są na przerwaniach. Tak, jak timery, przyciski i wszystko prócz wyświetlania. Może brzmi strasznie, ale starałem się, żeby dopisywanie funkcji nie sprawiało trudności mimo to.
    2. Racja, ekran ogranicza minimalne wymiary. Licznik jest podróbką Nokii 5110 (identyczny z Nokią 3310), przylutowany na płytkę z podświetleniem. Dorwałem to na ebay. W tym momencie inne wyświetlacze wymagałyby lekkich przeróbek kodu, ale jestem za.
    3. Bibliotekę do wyświetlania napisałem od 0. Cyfry są wyświetlane wektorowo, przez co czcionka jest jedna dla każdych rozmiarów.
    4. Podstawka to styropian :/ Sam mikrokontoler jest na podstawce DIP, więc można go wyjmować bez problemu.

    Chętnie połączę siły! Jeśli chcesz zajrzeć do kodu, jest tutaj, razem z bibliotekami graficznymi. Przydałaby mi się pomoc w dziedzinie sprzętowej i z zakresu Windowsa :).

  • #14 02 Wrz 2011 16:54
    123XmaX
    Poziom 12  

    Mógłby jeszcze mieć całkowity dystans i średnią prędkość na wycieczce/ogółem.
    Trochę duży :) Ile ten układ pobiera prądu, że zastosowałeś 2 "zwykłe" akumulatorki? Ogólnie projekt ciekawy, ale ja uważam, że nie ma sensu czegoś takiego robić skoro licznik rowerowy można kupić za 5zł. i będzie mniejszy i miał więcej opcji niż ten którego wykonałeś :P Ale fakt, nie ma jak to swoje urządzenie, które zbudowało się od podstaw.


    Pozdrawiam!

  • #15 02 Wrz 2011 18:47
    rhn
    Poziom 10  

    123XmaX - owszem, nie miałoby to sensu, gdybym robił wyłącznie dla siebie. W takim przypadku przez całe wakacje obijałbym się, a nie lutował :)

    Dociągnąłem go do tego miejsca nie dla zrobienia licznika, których jest pełno w każdym sklepie, a po to, żeby każdy zainteresowany mógł ściągnąć kod i miał platformę do eksperymentów z licznikami rowerowymi. Podobnego projektu nie znalazłem w internecie, a czułem się na siłach zapełnić tą lukę.

    W konsekwencji dostajesz projekt, który możesz złożyć, zrozumieć i dodać funkcje, o których piszesz w jeden wieczór :)

    Pozdrawiam!

  • #16 02 Wrz 2011 20:52
    bartolini1
    Poziom 12  

    Po wyliczeniu prędkości podaj ją jeszcze na filtr cyfrowy, będziesz miał wtedy gładki przebieg bez szpilek. Przy różniczkowaniu stosuje się filtry.

  • #17 02 Wrz 2011 21:03
    Anonymous
    Użytkownik usunął konto  
  • #18 02 Wrz 2011 22:01
    farrix
    Poziom 17  

    Zapytam tak:
    Jaką ty trudność w lutowaniu smd widzisz - albo może inaczej - jakim sprzętem do lutu dysponujesz.
    Dla mnie większym problemem ( przez lenistwo ) jest przylutowanie dipa bo muszę wiercić 1000 dziur i każdą nóżkę z osobna lutować, a smd za jednym razem (jeśli użyję hot-air to jest to bajka), albo szybciutko grotówką, dla mnie jakis czas temu dip przestał istnieć i od tego czasu smd na nic innego bym nie zamienił.
    Najtańszy hot-air kosztuje 140 zł (858d) a 2w1 którym polutujesz wszystko (no może poza bga bez prehetera) 200zł (898d), naprawdę nie warto zwlekać z hotem bo prędzej czy później go kupisz.

  • #19 02 Wrz 2011 22:26
    Tomekddd
    Poziom 23  

    Projekt ciekawy, masz może namiary na takie moduły LCD? kupiłem zwykły ale te styki mnie dobijają a tu widzę możliwość dolutowania tasiemki.

  • #20 02 Wrz 2011 22:59
    gadula88
    Poziom 15  

    Dodałbym jeszcze fajną opcję która była w Sigmach: porównanie aktualnej prędkości ze średnią za pomocą znaczków +,-,o :)

  • #21 02 Wrz 2011 23:20
    rhn
    Poziom 10  

    farrix - zanim zacznę biegać, uczę się chodzić. Płytki zamawiam, a przylutowanie DIP to dla mnie wystarczające wyzwanie :) Ale dzięki za info o hot air, kiedyś na pewno skorzystam.

    Tomekddd - poszukaj ofert "nokia 5110". Najtańsze znalazłem na ebay, ale trzeba na nie czekać miesiąc.

    gadula88: w mojej Sigmie tego nie było... Sama funkcja 20min roboty, zapraszam do kodu ;)

  • #22 02 Wrz 2011 23:48
    SPAWN17
    Poziom 16  

    ATmege8 w SMD mozna spokojnie przylutowac na za pomoca "grzalki" Made in China za 20zl. Nieco topnika i cyny i pieknie sie lutuje. Wykonalem kilka takich plytek wytrawionych za pomoca termotransferu i juz za pierwszym razem pieknie sie przylutowalo. To nie jest trudne.

    Sam projekt bardzo ciekawy. Gratulacje.

  • #23 03 Wrz 2011 09:20
    krru
    Poziom 32  

    marek1846 napisał:
    W swoim liczniku dodałem możliwość ręcznego zatrzymywania i ponownego uruchomiania pomiaru. Przy jeżdzie w mieście, ciągłe zwalnianie przed światłami a następnie ruszanie, znacznie zmniejsza średnią.


    Niektóre fabryczne liczniki stosują taką sztuczkę, że po wykryciu zatrzymania (na co potrzeba kilku sekund bez impulsów) odliczają te kilka sekund od czasu jazdy.

  • #24 03 Wrz 2011 10:33
    hoktaur
    Poziom 11  

    A co byś powiedział na to żeby teraz popracować nad ładowaniem tego ustrojstwa podczas jazdy (np. źródło prądu dynamo z odpowiednim sterowaniem) wiem że jazda pod górkę lub względnie w poziomie jest męcząca wiec pozostaje z górki która by nie wpływała na komfort jazdy - może jakaś metalowa kulka zamknięta w rurkowej obudowie z dwoma stykami ustawiona pod odpowiednim kątem który by wykrywała pozycje rowera do grawitacji?

  • #25 03 Wrz 2011 11:08
    rhn
    Poziom 10  

    krru napisał:
    marek1846 napisał:
    W swoim liczniku dodałem możliwość ręcznego zatrzymywania i ponownego uruchomiania pomiaru. Przy jeżdzie w mieście, ciągłe zwalnianie przed światłami a następnie ruszanie, znacznie zmniejsza średnią.


    Niektóre fabryczne liczniki stosują taką sztuczkę, że po wykryciu zatrzymania (na co potrzeba kilku sekund bez impulsów) odliczają te kilka sekund od czasu jazdy.


    W moim projekcie te kilka sekund nie ma wpływu na średnią prędkość, liczy się tylko czas między impulsami podczas jazdy.
    Co więcej, jeśli ktoś z samozaparciem miałby taką zachciankę, może odliczyć od średniej wszystkie impulsy poniżej pewnej prędkości albo kilka dodatkowych przed zatrzymaniem/po starcie.

    hoktaur - zakres projektu to tylko licznik, zasilanie celowo zależy od budującego, więc w teorii dałoby się. Ale mi wystarczą baterię i mam zacięcie do programowania, a nie do elektryczności, w związku z czym w tą stronę osobiście nie pójdę (jeśli ktoś inny chce, to proszę bardzo).

  • #26 03 Wrz 2011 15:50
    marek1846
    Poziom 14  

    rhn napisał

    Cytat:
    Niektóre fabryczne liczniki stosują taką sztuczkę, że po wykryciu zatrzymania (na co potrzeba kilku sekund bez impulsów) odliczają te kilka sekund od czasu jazdy.

    To teraz i dla mnie jest już oczywiste. Dzięki.
    Wbrew pozorom tu nie chodzi o parę sekund. Chodzi o częste zwalnianie przed zatrzymaniem się. Różnica w średniej prędkości jest duża.

  • #27 03 Wrz 2011 16:39
    janusz182
    Poziom 14  

    Według mnie to bardzo udana konstrukcja, jeszcze tylko obudowa wodoodporna (bo przecież zawsze może spotkać nas deszcz na drodze).

  • #28 03 Wrz 2011 22:11
    SunRiver
    Poziom 13  

    No nie powiem ciekawy projekcik , fakt można bardzo mocno zminiaturyzować
    do tego celu odpowiedni mógłby być np PIC16F688 jest maleńki i wystarczy :)

    Biorąc pod uwagę iz pierwszy projekt - duży plus się należy za twórcze podejście zwłaszcza w konstrukcji mocowania.


    Moduł wyświetlacza dostaniecie tutaj bez szukania po ebay-u


    http://www.sparkfun.com/products/10168

  • #29 04 Wrz 2011 19:19
    Siles
    Poziom 17  

    Projekt ciekawy - jako prototyp czy wersja 1 rozmiar nie jest tak ważny byle usunąć błędy i niedociągnięcia podczas testów. Wydaje mi się że można dodać też funkcję obliczania spalanych kalorii do tego projektu co oferuję autorowi aby ją wprowadzić. Za pewne margines dokładności nie będzie wynosił 100 czy 90% bo jednak trzeba by było uwzględnić ciężar osoby razem z rower i nachylenie go względem terenu. Jednak w przybliżeniu autor projektu może podawać symboliczny przedział spalonych kalorii podczas jazdy :).
    A co do miniaturyzacji warto zainteresować się nią od razu.

    Serdecznie Pozdrawiam i raz jeszcze powodzenia z projektem

  • #30 04 Wrz 2011 22:07
    farrix
    Poziom 17  

    Cytat:
    zanim zacznę biegać, uczę się chodzić. Płytki zamawiam, a przylutowanie DIP to dla mnie wystarczające wyzwanie :D

    Nie do końca :d i tak zaczniesz "biegać" a wtedy sprzęt będzie ci niezbędny, a lepiej naukę "biegania" rozpocząć od razu aby później nie było to wielkim wyzwaniem.

    Cytat:
    A co do miniaturyzacji warto zainteresować się nią od razu.

    Popieram, popieram :D