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.

[Line Follower] Nimbus2000

petter0 23 Cze 2012 00:28 10900 29
  • [Line Follower] Nimbus2000

    Witam!
    Chciałbym przedstawić mojego pierwszego robota klasy linefollower. Co prawda daleko mu do konstrukcji Botland Teamu, ale myślę, że wyszedł całkiem nieźle.
    Jego konstrukcja i użyte elementy są dość standardowe jak dla tego typu robotów, dlatego tylko pokrótce opisze najważniejsze z nich.

    Elektronika
    Sercem robota jest mikrokontroler ATmega 8 taktowany wewnętrznym oscylatorem 8MHz. Za wykrywanie linii odpowiedzialne są czujniki CNY70, które podłączone są do komparatorów LM339. Sterowanie silnikami odbywa się sygnałem PWM poprzez dwukanałowy mostek L298. Dodatkowo na płytce znajduje się 7 diod LED wskazujących stan czujników, oraz bramki NOT i NAND o których powiem później. Do zasilania użyty został akumulatorek LiPol 11.1V 800mAh, co wystarcza średnio na 10 minut ciągłej jazdy przy średnim wypełnieniu PWM. Napięcie jest stabilizowane przez układ LM7805 i filtrowane przez kilka kondensatorów.

    Mechanika
    Podstawą konstrukcji robota jest dwustronna płytka wykonana metodą termotransferu. Z tyłu znajdują się dwa koła napędzane mikrosilnikami Pololu o przełożeniu 30:1. Z przodu - tradycyjnie ball caster 3/8 cala. Do odprowadzania ciepła z mostka i stabilizatora służy radiator wycięty z kawałka aluminium.

    Program
    Cały napisany został w C. Do programowania służy gniazdo znajdujące się obok mikrokontrolera. Program miał już miliard wersji i nadal pozostawia wiele do życzenia. Chodzi mi głównie o to, by móc wykorzystać w pełni moc silników, a nie jak dotąd maksymalnie 50%. Przy wyższych współczynnikach robot po prostu nie nadąża 'ogarniać' trasy.

    Sterowanie
    Początkowo robot miał działać w ten sposób, że gdy środkowy czujnik wykrywa linię to układ znajduje się w stanie równowagi. Natomiast kiedy inny czujnik wykryje linie układ wychodzi z tego stanu dając poprzez bramkę NAND przerwanie zewnętrzne do mikrokontrolera. Ten sprawdza który z czujników wykrywa linię i podejmuje odpowiednią akcję regulując wartość PWM silniczków. Dzieje się to do chwili kiedy układ znów znajdzie się w położeniu równowagi. Pomysł takiego sterowania powstał z chęci uchronienia mikrokontrolera przed ciągłym 'multipleksowaniem' czujników. Został on jednak porzucony ze względu na to, że robot przez 80% czasu i tak znajduje się w położeniu gdzie musi korygować obroty silników (poza prostymi :) ). Przerwanie zewnętrzne przychodziło więc praktycznie cały czas, a to nie miało najmniejszego sensu. Aktualny program jest standardowy. Ciągle odpytuje czujniki i ustala odpowiadające im wartości PWM.





    Podsumowanie
    Robot działa, a to najważniejsze. Osiąga nawet przyzwoite czasy. Była to moja pierwsza konstrukcja tego typu i można ją uznać za doświadczalną. Następna będzie lepsza o doświadczenia zdobyte przy budowie Nimbusa. Zmieniłbym liczbę czujników, algorytm sterowania na PID, elementy SMD, a w przyszłości kto wie - może turbinka :) .

    Poniżej kilka zdjęć i filmik

    [Line Follower] Nimbus2000 [Line Follower] Nimbus2000 [Line Follower] Nimbus2000 [Line Follower] Nimbus2000 [Line Follower] Nimbus2000 [Line Follower] Nimbus2000

    Filmik:



    Schemat układu


    Fajne!
  • #2 23 Cze 2012 09:12
    AzaZeL_B
    Poziom 11  

    bardzo fajna konstrukcja.
    Jedyne co mi się nie podoba to marnotrawstwo energii :(.
    Zasilanie bateryjne i stabilizator liniowy z 11V na 5V.
    Aż się prosi zastosować chociażby ST1S10 i przejść najlepiej na 3.3V jeżeli się da.
    podejrzewam że wydłużyło by to zabawę co najmniej dwukrotnie.

  • #3 23 Cze 2012 09:27
    Komar91
    Poziom 18  

    A jakie wymiary ma ta konstrukcja? co to są za uchwyty przy kołach jakieś specjalne?

  • #4 23 Cze 2012 09:27
    Razonek
    Poziom 10  

    Muszę przyznać że fajna płytka Ci wyszła, ale ten mostek nie wygląda zbyt dobrze, a dodatkowy kaloryfer trochę jednak waży. Nie napisałeś jak zasilasz silniki, no chyba że nie widzę. Jeśli bezpośrednio z akku, to przy wypełnieniu 50% i spadku napięcia na mostku masz max 5V, uwierz mi, przy tych silnikach i takim zasilaniu można wycisnąć więcej ( nie pokazałeś na razie przejazdów)
    Kolego AzaZeL_B niby po co? Jedynym sensem takiego rozwiązanie jest zastosowanie STM32, ale jaki jest sens przy takiej konstrukcji...

    PS. Filtracja zasilania jest kiepska. Masz miejsce, mogłeś dać większe kondki.

  • #5 23 Cze 2012 09:46
    AzaZeL_B
    Poziom 11  

    kolego Razonek co niby poco?
    chyba napisałem że czas zabawy wydłużyłby się co najmniej 2 razy.

  • #6 23 Cze 2012 09:50
    Razonek
    Poziom 10  

    Na jakiej podstawie tak twierdzisz? Poza tym przejazd trwa maksymalnie 15sekund na zawodach, a nie 3 godziny

  • #7 23 Cze 2012 09:56
    eXcLiFe
    Poziom 14  

    Witam bardzo fajna konstrukcja :) Co do na "ogarnięcia" trasy mam nadzieje że nie używasz nigdzie żadnych opóźnień które nic więcej nie robią? Widzę że używasz L298 I mam do Ciebie takie pytanie czy też spotkałeś się z czymś takim że gdy każesz jechać robotowi prosto to on nie pracuje na pełnej mocy, a gdy dasz mu w prawo i prosto to oba silniki pracują tak jak powinny?

    @Razonek Odpowiedź jest bardzo prosta, zastąpienie stabilizatora liniowego impulsowym zwiększy jego sprawność z max 30% do 80%... a więc faktycznie 2x więcej zabawy. A czas ten jest potrzebny np przy testach na większych trasach.

  • #8 23 Cze 2012 10:03
    AzaZeL_B
    Poziom 11  

    Razonek napisał:
    Na jakiej podstawie tak twierdzisz?


    czas wydłużyłby się co najmniej dwukrotnie?

    ustaw zasilanie 3,3V
    weź kalkulator w rączkę i policz.

    Razonek napisał:
    Poza tym przejazd trwa maksymalnie 15sekund na zawodach, a nie 3 godziny


    idąc twoim tokiem myślenia to w takim razie akumulator jest przewymiarowany 10 razy, a idąc moim 20 razy.

    Ja zaproponowałem ulepszenie a kolega chyba to źle odebrał. :D

  • #9 23 Cze 2012 10:09
    Razonek
    Poziom 10  

    Kalkulator? Kolego, uC bierze tutaj wraz z czujnikami maksymalnie 100-150mA, gdzie silniki na biegu jałowym pobierają po 160mA sztuka, weź pod uwagę że tutaj robot nie jeździ na biegu jałowym. Więc twoje 2x dłużej nijak ma się do tego co jest na prawdę.

  • #10 23 Cze 2012 10:25
    treker
    Poziom 25  

    Ile waży cała konstrukcja? Wygląda trochę ciężko. Przy kolejnej pamiętaj, aby ograniczyć jak najbardziej masę na ramieniu, to wprowadza tylko niepotrzebną bezwładność.

  • #11 23 Cze 2012 10:26
    AzaZeL_B
    Poziom 11  

    Razonek napisał:
    Kalkulator? Kolego, uC bierze tutaj wraz z czujnikami maksymalnie 100-150mA, gdzie silniki na biegu jałowym pobierają po 160mA sztuka, weź pod uwagę że tutaj robot nie jeździ na biegu jałowym. Więc twoje 2x dłużej nijak ma się do tego co jest na prawdę.


    Kolega chyba nie rozumie że ponad połowa energii wytracana jest na ciepło, prąd i owszem około 300mA ale napięcie 6V na stabilizatorze 5V na elektronice? zastosowanie chociażby st1s10 która ma typowo 90% sprawności daje właśnie to ponad dwa razy dłuższe działanie, a uwzględniając fakt że akumulatory wykazują większą pojemność przy mniejszym poborze prądu oczywiście dłuższy czas pracy.

  • #12 23 Cze 2012 10:30
    treker
    Poziom 25  

    AzaZeL_B napisał:
    zastosowanie chociażby st1s10 która ma typowo 90% sprawności daje właśnie to ponad dwa razy dłuższe działanie, a uwzględniając fakt że akumulatory wykazują większą pojemność przy mniejszym poborze prądu oczywiście dłuższy czas pracy.


    Właśnie akumulator jest tutaj również zbędną masą. W innych konstrukcjach tego typu używa się zdecydowanie mniejszych akumulatorów oraz tak jak kolega właśnie napisał przetwornice ST1S10.

  • #13 23 Cze 2012 10:33
    Razonek
    Poziom 10  

    To prawda że dużo mocy wytrąca się na stabilizatorze, ale kto powiedział że akku ma być 3 celowy.

  • #14 23 Cze 2012 10:42
    treker
    Poziom 25  

    Komar91 napisał:
    co to są za uchwyty przy kołach jakieś specjalne?


    Są to specjalnie uchwyty do tych silników dostępne bez problemu do kupienia (np.: tu).

  • #15 23 Cze 2012 12:30
    Propaganja12
    Poziom 9  

    Czym wycinałeś laminat?
    Bardzo ładnie Ci to wyszło.

  • #16 23 Cze 2012 14:47
    Modecom601
    Poziom 13  

    Rewelacja projekt, czekam na filmik. Jak dobrze, że w moim sklepie są CNY70 :), sam dwie diody nadawczą i fototranzystor pod odpowiednik kątem naginałem, by działało, ale na dłuższą metę to nie sprawdzało się :)

    Nie rozumiem zasady działania komparatora tutaj, czy zamiast niego mógłym po prostu użyć ULN2803?

    Czekamy na filmik :):)

  • #17 23 Cze 2012 14:49
    treker
    Poziom 25  

    Modecom601 napisał:
    Nie rozumiem zasady działania komparatora tutaj


    Odczyt czujników jest analogowy, a do mikrokontorolera dostarczany jest sygnał w formie cyfrowej. Autor użył komparatorów zapewne właśnie w tym celu ;)

  • #18 23 Cze 2012 16:30
    petter0
    Poziom 9  

    Przyznam, że kusiło mnie żeby użyć przetwornicy zamiast stabilizatora ale brak doświadczenia w ich stosowaniu spowodował że wybrałem 7805. Przy okazji jeżeli można zapytać to polecacie do konstrukcji amatorskich właśnie przetwornicę DC/DC ST1S10?

    Komar91 napisał:
    A jakie wymiary ma ta konstrukcja? co to są za uchwyty przy kołach jakieś specjalne?

    Robot ma wymiary 180 x 130 mm. Uchwyty są specjalne dla tych silników. Oczywiście równie dobrze mógłby to być kawałek wygiętej blaszki, ale skoro można było kupić tak drogie silniczki to można tez dać parę zł na porządne uchwyty.

    Razonek napisał:
    [...] Nie napisałeś jak zasilasz silniki, no chyba że nie widzę. Jeśli bezpośrednio z akku, to przy wypełnieniu 50% i spadku napięcia na mostku masz max 5V, uwierz mi, przy tych silnikach i takim zasilaniu można wycisnąć więcej ( nie pokazałeś na razie przejazdów)
    [...]
    PS. Filtracja zasilania jest kiepska. Masz miejsce, mogłeś dać większe kondki.

    Kondensatorki myślę że są ok. Gdyby były większe to zwiększy się masa. Trzeba znaleźć złoty środek.
    Silniki zasilane są z mostka L298. Masz rację, da się z nich wycisnąć o wiele więcej. Są naprawdę dobre. Kwestia dopracowania programu.

    eXcLiFe napisał:
    [...] Co do na "ogarnięcia" trasy mam nadzieje że nie używasz nigdzie żadnych opóźnień które nic więcej nie robią? Widzę że używasz L298 I mam do Ciebie takie pytanie czy też spotkałeś się z czymś takim że gdy karzesz jechać robotowi prosto to on nie pracuje na pełnej mocy a gdy dasz mu w prawo i prosto to oba silniki pracują tak jak powinny? [...]

    Nie, nie używam zbędnych opóźnień. Nie spotkałem się też z takim problemem. Może wynika on z za małej wydajności prądowej akumulatorka?

    AzaZeL_B napisał:
    [...] idąc twoim tokiem myślenia to w takim razie akumulator jest przewymiarowany 10 razy, a idąc moim 20 razy. [...]

    treker napisał:
    Ile waży cała konstrukcja? Wygląda trochę ciężko. Przy kolejnej pamiętaj, aby ograniczyć jak najbardziej masę na ramieniu, to wprowadza tylko niepotrzebną bezwładność.

    Fakt, akumulatorek mógłby być trochę mniejszy - robot lekki nie jest. Dobrze, że umieszczony jest na linii osi - przynajmniej zwiększa przyczepność xD. Zapewne komparatorki znajdujące się na ramieniu wprowadzają niechcianą bezwładność, ale po prostu nie było dla nich miejsca z tyłu. W wersji smd nie będzie tego problemu.

    Propaganja12 napisał:
    Czym wycinałeś laminat?[...]

    Zwykła szlifierka kątowa + pilnik + duuużo wolnego czasu :)

    treker napisał:
    Modecom601 napisał:
    Nie rozumiem zasady działania komparatora tutaj


    Odczyt czujników jest analogowy, a do mikrokontorolera dostarczany jest sygnał w formie cyfrowej. Autor użył komparatorów zapewne właśnie w tym celu ;)

    Dokładnie. Podłączony jest do nich sygnał z dzielnika napięcia. Komparator porównuje to napięcie z napięciem na czujniku. Jeżeli napięcie na czujniku jest mniejsze wtedy na wyjściu ustawia '0', kiedy większe '1'. Dzięki temu, że w skład dzielnika napięcia wchodzi potencjometr mogę regulować moment w którym sygnał wyjściowy przełącza się. Czyli mogę jakby regulować czułość czujników. Przydaję to się np. podczas, gdy robot jeździ w bardziej rozświetlonym / przyciemnionym pomieszczeniu.

    Filmik powinien być późnym wieczorem (cierpliwości). Niestety nie mam go na komputerze.

  • #19 23 Cze 2012 18:18
    Razonek
    Poziom 10  

    Piszesz że większych kondensatorów nie chcesz dać bo zwiększają masę. W takim razie wytłumacz mi czy ten kawał alu który robi jako kaloryfer jest lekki? To samo ma się przy akku. Lepiej mieć 2 lub więcej LiPoli 2 celowych o pojemności np. 450 mAh.
    Sam ball caster na przodzie waży więcej niż reszta tego kawałka.
    Przetwornica jest ogólnie dobra. Ma wyższą sprawność, niż tradycyjny liniowiec, ale potrzebuje więcej części do swojego działania. Ja jakoś nie używam przetwornicy do stabilizowania napięcia dla logiki ale dla silników, czego u Ciebie brakuje. Przy takim rozwiązaniu jak u Ciebie, PID rozjeżdża się w trakcie rozładowania akku, co jest negatywne.

  • #20 23 Cze 2012 18:44
    petter0
    Poziom 9  

    Większych kondensatorów nie chcę dać, bo te są dobre. Ten kawałek aluminium jest naprawdę leciutki. Niestety musi być bo stabilizator grzeje dość mocno. Następnym razem zastosuję przetwornice.
    Przy zakupie trudno było mi ocenić nie mając w rękach silniczków ani akumulatorka jak długo to będzie działać. Musiałem kupić trochę 'na zapas'. Jak się okazało jest dużo 'na zapas'. Trzeba nabrać wyczucia. Niestety nie mogłem sobie pozwolić na zakup kolejnego akumulatorka, dlatego został ten.

    Razonek - to nie jest tak zaawansowana konstrukcja jak Wolverine lub Turbinowiec. Chodziło o zapoznanie się z tematem line follower'ów.

  • #21 23 Cze 2012 20:11
    dan1112
    Poziom 12  

    Ile wyniósł Cię koszt (w przybliżeniu) tej konstrukcji i jaką planujesz następną ?

    W następnej konstrukcji możesz:

    Razonek napisał:
    mieć 2 lub więcej LiPoli 2 celowych o pojemności np. 450 mAh.

    AzaZeL_B napisał:
    zastosowanie chociażby st1s10

    lub
    Razonek napisał:
    zastosowanie STM32

    Razonek napisał:
    dać większe kondki


    Pozdrawiam

    P.S. Nie miej mojej wypowiedzi jako jakiś rozkaz ;)

  • #23 24 Cze 2012 13:02
    satanistik
    Poziom 27  

    W dziale DIY był projekt stabilizatora impulsowego 5V na małej płytce w miejsce 7805. Może to było by rozwiązanie?

  • #24 24 Cze 2012 13:06
    Razonek
    Poziom 10  

    ahmed10 napisał:
    Moim skromnym zdaniem użycie takiego potężnego mostka L298 jest przerostem formy nad treścią, spokojnie wystarczył by L293.


    Moim zdaniem najlepszym mostkiem jest obojętnie jaki byle nie na tranzystorach bipolarnych a na mosfetach. Ja preferuję TB6612FNG. Nigdy mnie nie zawiódł.
    Każdy mostek na mosfetach będzie o niebo lepszy od tego na tranzystorach bipolarnych.

  • #25 24 Cze 2012 13:12
    ahmed10
    Poziom 11  

    Cytat:
    Moim zdaniem najlepszym mostkiem jest obojętnie jaki byle nie na tranzystorach bipolarnych a na mosfetach. Ja preferuję TB6612FNG. Nigdy mnie nie zawiódł.

    Tak masz rację! Zgodzę się z tobą, jednakże w tym konkretnym przypadku chodziło mi o to że L298 jest większy i cięższy od L293 co ma niestety wpływ na zwrotność LF-a (bezwładność) dodatkowo mostek ten jest w trochę niefortunnym miejscu bo nie w jakimkolwiek środku symetrii LF-a:)

  • #26 24 Cze 2012 13:24
    Razonek
    Poziom 10  

    Tak również masz racje, ale nadal nie ma filmiku więc tego nie wiemy. Jeśli on szybko nie jeździ to z powodzeniem można to skorygować w kodzie.

  • #27 25 Cze 2012 02:02
    petter0
    Poziom 9  

    dan1112 napisał:
    Ile wyniósł Cię koszt (w przybliżeniu) tej konstrukcji i jaką planujesz następną ? [...]

    Koszt to +- 300 zł (wliczając w to koszty przesyłek). Następna konstrukcja będzie o wiele poważniejsza. Otrzymałem wiele cennych uwag, które na pewno wykorzystam.

    ahmed10 napisał:
    Moim skromnym zdaniem użycie takiego potężnego mostka L298 jest przerostem formy nad treścią, spokojnie wystarczył by L293. Reszta konstrukcji wyszła Ci bardzo fajnie:)!

    Początkowo korzystałem z mostka L293D. Jest on mniejszy i ma wbudowane diody zabezpieczające. Wyczytałem jednak, że maksymalny prąd chwilowy na jeden kanał dla L293 to 1.2A, a dla L298 to 3.0A. Natomiast maksymalny prąd chwilowy dla silnika to 1.6A, dlatego wybrałem L298. Jak się później okazało - rzeczywiście niepotrzebnie, bo i tak nie wykorzystuję ich pełnej mocy. Chodzi tutaj głównie o zbędną masę, która pewnie swoją bezwładnością wpływa na niestabilną jazdę (jak widać na filmiku). Cały czas pracuję nad kodem, bo tak jak powiedział kolega Razonek - da się to skorgować.

  • #28 25 Cze 2012 22:10
    Juffre
    Poziom 12  

    Gratuluję udanego robota. W jakim programie zaprojektowałeś płytkę?

  • #30 26 Cze 2012 02:58
    petter0
    Poziom 9  

    Płytkę i schemat wykonałem w programie Eagle. Podobieństwo do Battlecruisera jest absolutnie przypadkowe ;D