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

Miernik Długości

mirley 03 Lip 2009 22:03 11634 27
  • Miernik Długości

    Witam Wszystkich, tym razem przedstawiam urządzenie do pomiaru odległośći. Zbudowane jest w oparciu o mikrokontroler ATMEGA8, a w roli czujnika obrotów pracują dwa fototranzystory, tworząc transoptor szczelinowy. Projekt opracowałem zainspirowany pomysłem jednego z użytkowników mojej strony. pomiar długości odbywa się poprzez zliczanie impulsów generowanych przez szczeliny na kole o określonym promieniu. Dokładność pomiaru nie jest porażająca i zależy od średnicy koła za pomocą którego zostaje mierzona odległość i ilości dziur jakie się w nim znajdują. Dokładnie jest to odcinek powstały z podzielenia obwodu koła przez ilość dziur (szczelin). Pomiar uwzględnia kierunek ruchu koła, więc jest możliwość zmierzenia "ujemnych metrów". Urządzenie dobrze się sprawdza przy pomiarze dużych odległości i było projektowane z myślą o mierzeniu odcinków przewodów w instalacji elektrycznej. Dlatego zostało wyposażone w pamięć nieulotną mierzonych odcinków z możliwością ich wczytywania i kontynuowania pomiaru (można zapisać do 20 odcinków). Sterowanie miernikiem dokonujemy z poziomu klawiatury na urządzeniu (zapis, odczyt danych), oraz za pomocą przycisków "mierz" i "+2R"(dodaje dwa promienie koła do wyniku długości gdy np mierzymy od rogu do rogu pomieszczenia) które znajdują się w rączce urządzenia.

    Miernik Długości

    Sercem układu jest mikrokontroler U1 (ATMEGA8) wraz z rezonatorem kwarcowym X1 (16MHz) i kondensatorami C1 (22pF) i C2 (22pF). Złącze Prog (goldpin) służy do podłączenia programatora, łącznie z pojedynczym pinem resetu Res i zasilania VCC. Do złącza Zas podłączamy baterię 9V. Odcinanie zasilania następuje za pośrednictwem przełącznika S0 (wyłącznik kołyskowy). Stabilizator U2 (7805) wraz z kondensatorami C3 (220uF), C4 (47uF) i C5 (100nF) dostarcza napięcia zasilania 5V dla mikrokontrolera U1. Potencjometr P1 (10k) pozwala ustawić kontrast na wyświetlaczu W1 (LCD 16x2). Za pomocą tranzystora T1 (BC556) i rezystorów R1 (47R) i R2 (3,3k) możliwe jest programowe włączenie podświetlania wyświetlacza W1. W wersji podstawowej zastosowano wyświetlacz bez podświetlania, więc okazało się to niepotrzebne. Klawiaturę urządzenia stanowią przyciski S1 - S6 (uSwitch). Klawisze S1 oraz S4 podłączone są przez dekodery zbudowane na diodach D2 - D5 (1N4148), gdyż przewidziano tylko 4 piny na klawiaturę, a wciskanie wielu przycisków naraz czasami jest kłopotliwe. Dodatkowe złącze Sw (goldpin) pozwala wyprowadzić wszystkie przyciski za pomocą przewodu na rączkę urządzenia, gdyby obsługa z poziomu obudowy urządzenia okazała się mało wygodna. Na rączce na pewno musi się znaleźć przycisk "mierz" (zwierający do masy) podłączony do pinu PD.0 mikrokontrolera (pin numer 2 w złączu Sw), gdyż nie jest wyprowadzony na obudowie. Klawisz dodający dwa promienie okręgu do wyniku pomiaru("+2R"), został wymyślony później więc jego realizacja odbywa się poprzez jednoczesna wciśnięcie klawiszy S5 i S6. Lub za pomocą takich samych dwóch diod jak np. dla klawisza S4.

    Najważniejszą częścią układu jest transoptor szczelinowy zbudowany z fototranzystorów T2 (L-932P3BT) i T3 (L-932P3BT) wraz z rezystorami R3 (10k) i R4 (10k) oraz diody świecącej na podczerwień D1, wraz z jej rezystorem ograniczającym prąd R5 (180R). Dioda nadawcza D1 świeci na fototranzystory T2 i T3 przez dziury w kole pomiarowym. Kierunek obrotu wykrywany jest na podstawie przesunięcia względem siebie przebiegów prostokątnych z fototranzystorów T2 i T3 na takiej samej zasadzie jak rolka w myszce komputerowej.

    Miernik Długości

    Miernik Długości


    Proszę o wyrażenie opinii :)

    pozdrawiam
    Mirley (mirley.firlej.org)


    Fajne!
  • Arrow Multisolution Day
  • #2 04 Lip 2009 01:56
    yego666
    Specjalista PLD

    Fajne urzadzenie i ladnie wykonane, ale posiada jedna zasadnicza wade.
    Byc moze pomyslales o tym, ale na zdjeciu nie widac.
    Chodzi mianowicie o to, ze jesli bedziesz jechal kolkiem po upackanej powierzchni - n.p. tam gdzie jakis psiak sobie ulzyl, to bedzie sporo czyszczenia transoptora ;)
    Moze lepiej byloby dac jakis lancuch z duzego kolka na kolko tachometru zabezpieczajac je w ten sposob przed zanieczyszczeniem.
    Duze kolko powinno byc wtedy latwo demontowalne w celu oczyszczenia.

  • Arrow Multisolution Day
  • #3 04 Lip 2009 05:31
    251mz
    Poziom 18  

    a może lepiej było dać czujnik indukcyjny , lub pojemnościowy...

  • #4 04 Lip 2009 06:48
    karol1010
    Poziom 21  

    A co będzie jak pojedzie po gęstej wysokiej trawie... Łodygi trawy spowodują fałszywe odczyty przesłaniając transoptor. Najlepszy by był enkoder inkrementalny taki stosowany w automatyce i zamontowany na osi (gdyby ona się kręciła :) )

    Ale mimo wszystko projekt i wykonanie mi się bardzo podoba.

  • #5 04 Lip 2009 07:19
    naelektryzowany
    Poziom 17  

    Autor nie będzie może używał tego w trawie. Każdy wypowiada się inaczej bo by inaczej projekt zastosował. karol1010 jak będziesz swój "zarośnięty" trawnik mierzył można w układzie umieścić kontaktron (albo czujnik halla) a w dziury magnesy. trawa na pewno nie będzie przeszkadzała w odczycie.

  • #6 04 Lip 2009 07:27
    mirley
    Poziom 17  

    Myślę że nie będzie problemu z zanieczyszczeniami bo układ ma służyć do pomiaru odcinków przewodów w instalacji elektrycznej (podczas jej układania) :) . Chociaż myślę że w trawie też sobie da radę, bo szczelina między kołem a obudową jest niewielka.

  • #8 04 Lip 2009 17:40
    mirley
    Poziom 17  

    Dokładność zależy od odległości miedzy dziurami a w zasadzie od długości wycinka kołowego miedzy dziurami na kole. Nie trzeba tu nic kalibrować, po prostu obwód koła podzielony przez ilość dziur daje najmniejszy odcinek drogi jak można zmierzyć.

  • #9 04 Lip 2009 18:54
    Moulder
    Poziom 23  

    karol1010 napisał:
    A co będzie jak pojedzie po gęstej wysokiej trawie... Łodygi trawy spowodują fałszywe odczyty przesłaniając transoptor. Najlepszy by był enkoder inkrementalny taki stosowany w automatyce i zamontowany na osi (gdyby ona się kręciła :) )

    Ale mimo wszystko projekt i wykonanie mi się bardzo podoba.


    Od razu falownik + Simatic S7 i LCD dotykowy do obsługi :D
    Przecież można tarczę impulsową łącznie z transoptorem włożyć w obudowę i po kłopocie.
    W cenie enkodera o którym piszesz można pewnie kupić dalmierz laserowy.

  • #10 04 Lip 2009 23:09
    LiMuBai
    Poziom 14  

    Hmmm dodanie lancucha znacznie zwiekszy wage urzadzenia a to raczej nie jest lubiane, czujnik indukcyjny - zwieksza koszty, zauwazcie koledzy ze to miernik dlugosci do pomiarow instalacyjnych (instalacji elektrycznych) tak ze nie wymaga dokladnosci 0,01mm ani 1000% odpornosci na zqanieczyszczenia.
    Projekt jak dla mnie na 5+, choc ja bym dodal obsluge rs232 skoro to ma byc do instalacji - czeste pomiary i przepisywanie tego ? jestem leniwy :P ja bym wolal miec mozliwosc copy to np. excel :D

    P.S. choc przyznam ze dodanie enkodera tarczowego ustabilizowaloby pomiar.

  • #11 04 Lip 2009 23:16
    mirley
    Poziom 17  

    Witam

    Muszę przyznać że zapomniałem o porcie Rs232 w tym przypadku. Byłby przydatny.... można ewentualnie dodać w programie jego obsługę ale wypadało by przekonfigurować nieco użyte piny tak aby zwolnić Pd0 i PD1.

  • #12 04 Lip 2009 23:25
    LiMuBai
    Poziom 14  

    Milo mi ze do czegos sie przydaly moje uwagi :)
    Tak czy inaczej - rs232 bylby tu bardzo przydatny a juz nieoceniony bylby w RT - podlaczony do laptopa - mierzenie i w tym samym czasie pokazywanei wynikow na ekranie (juz troszke z wiekszym rozmachem - bo mam tu na mysli mierzenie dlugosci przylacza - od slupa/skrzynki do samego objektu), choc w takim wypadku caly projekt wymaga wiekszej uwagi - tyle ze takie cudo nadawaloby sie na produkt komercyjny :)

  • #13 05 Lip 2009 15:01
    tape
    Poziom 11  

    Pozwolę sobie dorzucić kilka uwag do przedstawionego projektu, gdyż kilka lat temu popełniłem podobny.
    Najważniejszym elementem całego układu, na ktory trzeba zwrocić szczegolną uwagę jest koło pomiarowe.
    Musi ono spełniać szereg warunkow m.in.:

    - jego obwod powinien stanowić wielokrotność najmniejszej cyfry znaczącej, ktorą może być np. 1cm, 10 cm, 1m. W przypadku zastosowania procesora możliwe są także inne rozwiązania, tak jak np. jest to robione w licznikach rowerowych; ale nam przy tego typu rozwiązaniach raczej zależy, aby stan licznika zwiększał się o 1 a nie jakąś inną liczbę,
    - powinno posiadać pełną, twardą oponę oraz w miarę solidne ułożyskowanie,
    - średnica powinna być dostosowana do mierzonych odległości oraz warunkow terenowych.

    Nie jest łatwo znaleźć takie koło. Mnie udało się zaadaptować koło oryginalnie przeznaczone do dziecinnego rowerka. Jego obwod idealnie dzielił się bez reszty przez 10 cm (krok pomiaru jaki przyjąłem). Wymagało jedynie poprawy łożyskowania.
    Sposob zbierania impulsow jest w zasadzie dowolny. Ja zastosowałem kontaktron i magnesy na obwodzie koła. Dalej zwykły licznik na TTL, bo tych u mnie nie brakuje. Dzisiaj pewnie zrobiłbym inny licznik. Przynajmnie z wyświetlaczem LCD.
    Mimo bardzo starannego wykonania koła pomiarowego uzyskana dokładność wynosi około 5%. Dla moich zastosowań okazało się to trochę za mało, bo przy wielkościach jakie chciałem mierzyć (5-100 m) dawało to dość znaczny błąd.
    Wydaje mi się, że przedstawiona konstrukcja daje znacznie większy błąd, bo na zdjęciu wyraźnie widać, że otwory nawiercone są w nierownych odległościach od siebie. Ważne jest, że spełnia przyjęte założenia autora.

    Pozdrawiam
    Tape

  • #14 05 Lip 2009 15:24
    satanistik
    Poziom 27  

    Ja proponował bym małą tarczkę z myszki kulowej sprzęgnąć paskiem zębatym z drukarki atramentowej/skanera z kołem pomiarowym - mamy fabryczną dokładność wykonania i niski koszt no i całość będzie odporna na zanieczyszczenia. Sam układ można by dać trochę wyżej w małym pudełeczku ale jak urządzenie nie musi pracować w terenie - hoc nigdy nie wiadomo kiedy człowiekowi przyjdzie do głowy zmierzyć trawnik ;-).

  • #15 05 Lip 2009 16:28
    mirley
    Poziom 17  

    Witam

    Urządzenie które zrobiłem jest mikroprocesorowe, po minięciu jednej dziury na kole mój licznik nie zwiększa się o jeden ale dokładnie o 229, odpowiada to 22,9mm, bo obwód mam 458mm i 20 dziur po obwodzie.

    To że dziury są wywiercone nierówno nie ma żadnego znaczenia dla pomiarów odcinków klikunastu metrów(i wiekszych), ponieważ po minięciu wszystkich 20 dziur odcinek który przejechaliśmy to 458mm i kropka. Dla małych odcinków drogi wskazanie związane z nierównym rozłożeniem dziur będzie się różniło o tyle co te dziury.

    Dokładnośc całości wyznaczona jest zatem precyzją pomiaru obwodu, bo to jest to co sumuje się przy każdym obrocie, jeśli np moje koło miało by faktycznie 459mm to popełniał bym błąd 1mm na każde 459mm przejechanej drogi + oczywiście odcinek między dziurami


    Odnośnie zastosowania kółka myszki i pasków z drukarki to jest to całkiem dobry pomysł i faktycznie da odporność na zanieczyszczenia, a przynajmniej znacznie ją zwiększy

    Pozdrawiam

  • #16 05 Lip 2009 16:37
    tape
    Poziom 11  

    Zastosowanie układu z myszki w żaden sposob nie zwiększy dokładności.

    Urządzenie które zrobiłem jest mikroprocesorowe, po minięciu jednej dziury na kole mój licznik nie zwiększa się o jeden ale dokładnie o 229, odpowiada to 22,9mm, bo obwód mam 458mm i 20 dziur po obwodzie.
    Ale normalnie działający miernik powinien właśnie dodawać 1 lub wielokrotność a nie 229, ale wymaga to precyzyjnego układu mechanicznego.

    Pozdrawiam
    Tape

  • #17 05 Lip 2009 17:46
    mirley
    Poziom 17  

    Witam

    229 to wielokrotność 1 więc nie ma problemu. Nie rozumiem po co miałbym sobie utrudniać życie i szukać koła o dokładnym wymiarze. Program jest dla sprzętu a nie sprzęt dla programu.

    A tak na marginesie to kto ustalił ze jeden impuls z koła ma odpowiadać np 1cm, przecież to bez sensu.

  • #18 05 Lip 2009 18:18
    tape
    Poziom 11  

    Przyglądnij się jak jest zbudowana taśma miernicza. Zaczyna się od zera, poźniej jest 1 cm, 2, 3 itd. I tak powinien mierzyć taki miernik. Krok pomiaru może być większy np. 10 cm a nie 1 cm, ale powinien być zgodny z jednostkami SI. A u Ciebie jest tak : 0, 229, 458, .... To nawet nie jest w calach. Oprogramowanie procesora nic tutaj nie wnosi. Owszem poprawnie dodaje kolejne odległości pomiędzy dziurami w tarczy, ale zastanow się jak funkcjonowałby np. woltomierz zbudowany wg. Twoich założeń.
    Poza tym uważam, że odległości pomiędzy otworami powinny być równe, ponieważ skala takiego przyrządu będzie wtedy liniowa.

    Pozdrawiam
    Tape

  • #19 05 Lip 2009 18:57
    mirley
    Poziom 17  

    Nie wiem o czym mówisz i chyba się nie rozumiemy. jak to nie jest w jednostkach SI. Mój układ podaje odległość w [cm]. Co mnie to obchodzi jak mój mierzony odcinek jest podzielone, czym są mniejsze odcinki tym lepiej. Nie porównuj tutaj tego układu do taśmy mierniczej bo to całkowicie inny przyrząd. Miernik długości podaje jaka jest długość danego obiektu, np długość kabla , płotu, drogi itp. Zaczynam mierzyć na początku, jadę do końca obiektu i dowiaduję się że ma on długość np 1543cm i tyle. Jakie odcinki przyrząd mierzy nie ma najmniejszego znaczenia bo i tak wskazanie które widzisz na wyświetlaczu jest zaokrąglone do całych centymetrów.

    Jeśli dalej nie rozumiesz o czym mówię to przyjmij że mój przyrząd jest wyskalowany w mirleyach, gdzie [1my] = [22,9mm] = [2,29cm] i po sprawie

  • #20 05 Lip 2009 19:14
    LiMuBai
    Poziom 14  

    Mirley'e - dobre! :D

    Mirley - ale tape ma nieco racji - jakby bylo wyskalowane w skali jednostkowej (1,10,100...) wtedy masz wieksza dokladnosc i ulatwia wszelkie operacje (obliczenia np w procku).
    Wiadomo ze nie jest obligatoryjne - ale ulatwia zycie.

    @tape - nie mow ze dodanie kolka szczelinowego z myszki nie zwiekszy dokladnosci - bo np jeden obrot kola to 1000 obrotow - rzecz jasna robi sie przekladnie - bez niej to bez sensu, po czym masz dokladnosc 0,01mm (hipotetycznie).

  • #21 05 Lip 2009 19:22
    mirley
    Poziom 17  

    To że łatwiej się liczy w procesorze to prawda, jednak uważam że nie warto kombinować z kołem zamiast dopisać 2 linijki w programie :) ale to moje zdanie. Poprostu jeśli umieszczam na stronie jakiś układ to chcę aby ktoś mógł go jeszcze wykonać oprócz mnie, a jeśli użyję koła z jakiegoś wózka unikalnego to jest po sprawie bo trzeba będzie wszystko przerabiać lub odmierzać odpowiednią liczbę dziur co określony kąt. W moim układzie podaje się tylko parametr proporcjonalny do stosunku obwodu do ilości dziur, więc program będzie działał z każdym kołem

    Jeżeli zbytnio zwiększymy ilość impulsów na obrót to potem może sie okazać że uC gubi te impulsy bo podczas jechania zbyt duża częstotliwość się generuje. Poprostu nie można przegiąć w tym kierunku

  • #22 05 Lip 2009 19:39
    LiMuBai
    Poziom 14  

    Nie przesadzajmy - uP z zegarkiem 24MHz, a na wejsciu moze byc preskaler jakby jednak gubil - z reszta - tak sie w razie czego dobiera przekladnie zeby nie gubil ;)

    Co do 2 linjek to bym polemizowal :P
    Co do kolka - ja bym pokusil sie o poszukanie na jakies stronie hurtowni czesci mechanicznych - do wozkow platformowych czy czesci to CNC - cos co jest w stalej sprzedazy i jest standardem.
    Nie zmienia to faktu ze Twoj projekt DZIALA i to jest najwazniejsze - choc przyznam ze ja bym nie zrobil takiego co mam nierowny skok :]

    Co z RS232 ? dorobiles juz cos ??

  • #23 05 Lip 2009 20:10
    tape
    Poziom 11  

    Zastosowanie części od myszki i przekładni zapewne zwiększy rozdzielczość przyrządu, ale nie poprawi dokładności. Dokładność nawet ulegnie pogorszeniu na skutek pojawienia się dodatkowych elementow mechanicznych takich jak przekładnia. Co z tego, że będziesz mogł odczytać wynik z rozdzielczością do 0,1 mm skoro cały pomiar będzie wykonany z błędem 10 %.

    Tape

  • #24 06 Lip 2009 09:46
    piotrva
    Moderator na urlopie...

    tak.
    Ja uważam że zawsze należy tylko tak komplikować sobie sprawę, na ile jest to konieczne ze strony mechanicznej.
    Raz robiłem model windy do szkoły i zatrzymywała się jadąc do góry o 0,5 cm za nisko, a w dół o 0,3 cm za wysoko.
    Ale na skalę demonstracji w szkole, gdzie na ludziach wrażenie robi klawiatura podpięta do procka nie ma sensu pisać kilkadziesiąt linijek kodu żeby skompensować ten błąd

  • #25 06 Lip 2009 12:30
    Paweł Es.
    Pomocny dla użytkowników

    Ja nie wiem, czy ten błąd na dużych odcinkach to nie jest spowodowany raczej poślizgiem na kółku pomiarowym, przy założeniu, że m-psor nie gubi otworów ?

  • #26 06 Lip 2009 17:40
    mirley
    Poziom 17  

    Oczywiście poślizg ma tu duże znaczenie ale jeśli nie będzie znany dokładny obwód koła to ten błąd będzie się sumował na dłuższych odcinkach.

  • #27 06 Lip 2009 18:33
    Paweł Es.
    Pomocny dla użytkowników

    Obwód koła to można policzyć znając jego średnicę a tę można dość dokładnie pomierzyć ;) ilość otworów jest stała, więc i przyrost długości można policzyć.

    $$dl=\frac{\Pi*D}{N}$$

    dl = przyrost długości
    D - średnica koła pomiarowego.
    N - ilość otworów impulsatora

    Przyrosty oczywiście dodajemy z uwzględnieniem ułamka (liczby rzeczywiste) względnie przeliczamy na liczbę całkowitą (np. mnożąc przyrost jednostkowy przez 10 czy 100 tysięcy) i używając arytmetyki liczb całkowitych, na końcu dzielimy wynik przez tę stałą, by uzyskać wynik w ludzkich jednostkach (zaokrąglamy wynik dopiero na końcu).

    Nierównomierność rozłożenia otworów gra rolę przy pomiarze w zakresie obrotu koła pomiarowego. Przykładowo przy kole o obwodzie 40 cm i 4 otworach, przy równomiernym przyroście będzie dl=10cm, przy nierównomiernym np:

    dl1=9cm
    dl2=11 cm
    dl3=12cm
    dl4=8cm

    ale suma będzie też 40 cm na obrót. Błąd nie będzie się sumował a tylko będzie miał wpływ na dokładność na ostatniej cyfrze długości.

    Czy ten błąd 5% to był stały na dowolnym odcinku czy też to był błąd maksymalny na tych 100 metrach ?
    Czy ten miernik zaniżał czy zawyżał wyniki ?

    Możliwe też, że ta "opona" koła była zbyt miękka i się odkształcała (zmieniając lekko obwód) przy nierównomiernej sile nacisku.

    Czy impulsy z fotoczujników zliczałeś w przerwaniach, bo bez tego procesor będzie gubił impulsy ?

    Poza tym ważne jest jeszcze ich ukształtowanie, by procesor nie liczył kilka razy tego samego impulsu (z powodu stanów nieustalonych).

    Czy sam fotoczujnik jest odporny na światło poboczne (np. że mógł być oślepiany i niezliczać na jakichś odcinkach pomiarowych) ?

  • #28 06 Lip 2009 18:49
    mirley
    Poziom 17  

    To co piszesz jest oczywiste i nie ma co tłumaczyć, poprostu mi było łatwiej zmierzyć obwód bo suwmiarka jest za mała aby moje koło objąć a tak z boku mierzyć to nigdy nie mozna być pewnym czy mierzysz cięciwę czy średnicę :) nieważne.....


    Jeśli chodzi o operację na liczbach całkowitych to tak właśnie zrobiłem, w swoim programie, wynik jest pamiętany z większą dokładnością niż pokazuje to wyświetlacz (operacje są na liczbach całkowitych), a odnośnie nierównomierności rozłożenia dziur to mam takie same zdanie :)

    ---------

    Impulsy są zliczane w przerwaniach, czujniki są osłonięte od bocznego światła ale nawet gdy nie były to i tak działało be zarzutu. Ruch i jego kierunek wykrywam na podstawie tego w którą stronę jeden przebieg jest przesunięty w fazie względem drugiego, nie stwierdziłem żadnych efektów ubocznych. Jeśli na skraju szczeliny w kole są jakieś zawachania to impuls zostanie doliczony, odliczony, doliczony...... itd. tak że jego wartość jest poprawna po dalszym jechaniu