Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

CENTURIO - Linefollower

piotrek700 03 May 2010 18:05 13152 18
IGE-XAO
  • CENTURIO - Linefollower

    Witam. Chciał bym zaprezentować mój najnowszy projekt: Linefollower CENTURIO. Projekt został stworzony w celach edukacyjnych ale również z zamysłem wystawienia robota w zawodach odbywających się pod nazwą "Robocamp 2010" na AGH w Krakowie w dniu 5 czerwca 2010. Linefollower został wykonany technologii SMD - jest to prototyp z bardzo wczesną wersją oprogramowania. Zarówno płytka PCB jak i schemat jest moim własnym pomysłem. Oczywiście kilka rozwiązań zostało zaczerpniętych z innych projektów. Sercem robota jest mikro kontrolera AVR Atmega8 taktowany zewnętrznym kwarcem 12Mhz (wartość trochę przesadzona ale tylko taki miałem pod ręką). Sterowanie silnikami odbywa sie za pomocą kluczy bazujących na tranzystorach MOSFET. Każdy silnik jest obsługiwany za pomocą 2 kluczy po 2 tranzystory każdy co daje możliwość sterowania zarówno szybkością jak i kierunkiem obrotów silnika. Klucze są zaczerpnięte z noty katalogowej Atmel'a opisującej sterownik silników BDCM. Jako czujnik optyczny zostały zastosowane 4 czujniki refleksyjne CNY70. Czujniki podłączone są do komparatorów zbudowanych na podstawie układu LM339. Na PCB znajdują się 2 układy LM339 po 4 komparatory każdy. Wykorzystuję tylko 4 ale mam plan dodać więcej czujników aby w przyszłości spróbować zrobić robota typu MicroMouse. 2 potencjometry SMD służą jako dzielnik napięcia porównawczego dla komparatora. Na PCB znajduje się miejsce na odbiornik RRFQ1-XXX oraz miejsce na przylutowanie gniazda antenowego co jest kolejną alternatywa konstrukcji jako robot zdalnie sterowany. PCB zawiera gniazdo kompatybilne z większością programatorów AVR klasy STK XXX. Zasilanie stanowią 2 baterie wyciągnięte z telefonu. Napęd to 2 silniki z napędu CD-ROM które odpowiadają za wjazd/wyjazd tacki. Koła z klocków Lego przerobione na metalowe, niezależne osie napędzane są przez połączenie pasowe(gumka recepturka). Szkieletem konstrukcji jest płytka PCB .

    Wsad dla Atmegi został napisany w C w kompilatorze AVR Studio 4. Z powodu planów wystawienia robota w konkursie kod programu nie zostanie opublikowany. Oczywiści w razie jakiś pytań proszę pisać na PW, na forum lub na mojego e-maila, postaram się pomóc w miarę moich możliwości.

    Schemat obwodu, PCB- odbicie lustrzane, rozłożenie elementów (nie miąłem czasu rozmieścić oznaczeń i wartości ale myślę ze da sie rozczytać ), rendering płytki oraz kilka zdjęć zmontowanego autka zamieszczam poniżej.
    Wymiary robota:12x9cm

    CENTURIO - Linefollower CENTURIO - Linefollower CENTURIO - Linefollower CENTURIO - Linefollower CENTURIO - Linefollower CENTURIO - Linefollower


    Cool? Ranking DIY
    Can you write similar article? Send message to me and you will get SD card 64GB.
    About Author
    piotrek700
    Level 13  
    Offline 
    piotrek700 wrote 117 posts with rating 426, helped 0 times. Live in city Kraków. Been with us since 2008 year.
  • IGE-XAO
  • #2
    kambal
    Level 12  
    Witam, fajny robocik Ci wyszedł. Jeśli konstrukcja ma iść na konkurs to patrząc na trud włożony w smd, dolna płytka, z czujnikami, wygląda masakrycznie. Popraw ją na odpowiednio zaprojektowaną i nie będzie się do czego przyczepić.
    Pozdrawiam
  • IGE-XAO
  • #3
    User removed account
    User removed account  
  • #4
    WesołyKostek
    Level 9  
    Witam,
    Fajnie Ci to wyszło.
    Tylko jedno pytanie czy te czujniki "szurają" po linii ?
    Pozdrawiam
  • #5
    krzysiek_p
    Level 14  
    Po pierwsze- zmień ustawienia czujników, i daj 5 zamiast 4. Same czujniki te bym zmienił na ktiry. Po drugie, zmień podłączenie czujników do uC, bezpośrednio do adc. Po czwarte, zmień konstrukcję podwozia (znając życie na tyc zawodach w Krk będą płyty łączone - ślizgacz nie zda egzaminu, pooglądaj filmiki z zawodów), daj trzecie koło. Z takim robotem można bez skrupułów iść na zawody, z chętką na wysokie miejsca. Szczególnie, jeśli dodasz obsługę pid.
  • #6
    piotrek700
    Level 13  
    Płytka z czujnikami to po prostu prowizorka, testuje różne ustawienia na płytce uniwersalnej tak żeby osiągnąć jak najstabilniejszą jazdę przy jak największej prędkości. Co do czujników, nie ślizgają się bezpośrednio po ziemi. Na zdjęciu widać w linii czujników jest kawałek drutu wygięty w literę U i wlutowany do płytki, czujniki "wiszą" około 2 mm nad torem.
  • #7
    sobieraj_100
    Level 12  
    Mam pytanie. Jaką przewagę ma Twoja konstrukcja na procesorze od tych prostych na wzmacniaczach operacyjnych ?
  • #8
    piotrek700
    Level 13  
    Główną przewagą tego typu rozwiązania jest możliwość programowania skomplikowanych algorytmów optymalizujących tor jazdy.
  • #9
    krzysiek_p
    Level 14  
    Tylko najpierw trzeba pominąć komparatory : ] I dopiero wtedy możemy mieć naprawdę niezłego robota (dobry PID).
  • #11
    jacobs242
    Level 18  
    Moim zdaniem najsłabszym punktem tej konstrukcji są silniki - sam budowałem linefollowera na nich i przekładni pasowej i to one stwarzały najwięcej problemów przy próbie uzyskania większej prędkości. Robot nie nadążał wyhamowywać przed zakrętami po szybkich prostych i wypadał z trasy...
  • #12
    Sabre
    Level 18  
    Pomimo, że twój linefollower pokonuje bardzo płynnie tą trasę to niestety prędkością bardzo odstaje od aktualnie najszybszych robotów w Polsce. Dodatkowo na większości imprez są zakręty pod kątem prostym, skrzyżowania i pętle o małym promieniu skrętu. Jak twój robot poradzi sobie z taką trasą?
  • #13
    Leszko 92
    Level 11  
    Witam.
    Bardzo fajna konstrukcja.
    Jaki był koszt całkowity?
    Czym kolega wycinał laminat - czyżby piłka włosowa?
    Jaką prędkość osiąga pojazd?



    pozdrawiam.
  • #14
    konel83
    Level 15  
    Robot ładny, ale myślę że te siniki od cd-rom'u dobrze by było jednak wymienić albo przynajmniej podłączyć tak żeby się nie mogły ślizgać. Ja kiedyś wziąłem silniczek z wiatraka od opalarki to potrafił na drugie piętro kilogramowy ładunek wyciągnąć, tylko że początkowa przekładnia z kilku gumek się ślizgała a potem gumki się przepaliły, wymieniłem na ślimakową i 3x szybciej wciągał wiaderko z piaskiem. To koło z przodu to chyba też dobry pomysł (koło będzie stawiało mniejszy opór i pojazd powinien jechać szybciej). Mam tylko pytanie, bo program napisałeś w C, ja zaczynam się uczyć C++ i Pascala (takie proste aplikacje na PC, w stylu Symulacji LOTTO, rysowanie choinki na jednej pętli), czy w tych językach też da się programować mikro kontrolery?

    Powodzenia na konkursie ;D
  • #15
    kocur_90
    Level 12  
    Też się uczyłem c++ na kompa i powiem ci że nie zauważysz specjalnej różnicy jak zaczniesz programować uC. W pascalu też możesz programować jednak jest to język egzotyczny w elektronice.
  • #16
    piotrek700
    Level 13  
    Sabre wrote:
    Pomimo, że twój linefollower pokonuje bardzo płynnie tą trasę to niestety prędkością bardzo odstaje od aktualnie najszybszych robotów w Polsce. Dodatkowo na większości imprez są zakręty pod kątem prostym, skrzyżowania i pętle o małym promieniu skrętu. Jak twój robot poradzi sobie z taką trasą?


    Prędkość maksymalna robota jest o wiele większa tylko zmniejszyłem prędkość przy pomocy PWM. Skrzyżowania przejeżdża elegancko, co do zakrętów pod kątem prostym robi lekki łuk za zakrętem ale wraca z powrotem na trasę.

    Leszko 92 wrote:
    Witam.
    Bardzo fajna konstrukcja.
    Jaki był koszt całkowity?
    Czym kolega wycinał laminat - czyżby piłka włosowa?
    Jaką prędkość osiąga pojazd?

    Co do kosztu całkowitego to ciężko się wypowiedzieć bo wszystko prawie jest z odzysku:D ale myślę ze w 50zł dało by się wyrobić.
    Płytkę tam gdzie sie dało to wyciąłem brzeszczotem a miejsca na silniki wypiłowałem pilnikiem.

    Quote:
    Mam tylko pytanie, bo program napisałeś w C, ja zaczynam się uczyć C++ i Pascala (takie proste aplikacje na PC, w stylu Symulacji LOTTO, rysowanie choinki na jednej pętli), czy w tych językach też da się programować mikro kontrolery?


    Jeśli umiesz dobrze C++ to trzeba się oduczyć kilka jego zalet jak np: klasy i z C++ robi się zwykły C. Co do trudności to wielkiej filozofii nie ma, oczywiście jak robi się proste rzeczy. Problemy pojawiają się przy dobieraniu się do Timerów, Prexeli i tego typu rzeczy ale z pomocą internetu wszystko się da zrobić. A no i jeszcze system szesnastkowy i operatory bitowe w małym palcu to podstawa. Niby groźnie brzmi ale łatwo się przyswaja:D. Co do kompilatora C++ gdzieś mi się coś obiło o uszy ale osobiście nigdy się nie spotkałem.
  • #17
    mariusz19925
    Level 10  
    Mógłbyś podać wykaz elementów???
  • #18
    krzysiek_p
    Level 14  
    Przecież jest schemat, z zaznaczonymi wartościami elementów.Po prostu idź do sklepu z wydrukowanym schematem i wykreślaj rzeczy, które kupiłeś, jeśli ni chce ci się tego wypisywać :) Ja jak robiłem elebota (pierwszy 'pro' robot :>) to właśnie stosowałem taki sposób.
  • #19
    konel83
    Level 15  
    Dzięki za szybką odpowiedź. W sumie to jakąś podstawę na temat operatorów bitowych i systemu szesnastkowego to mam, ale niewiele. Może znacie jakieś dobre książki do nauki C(++) na uC? Na razie mam zamówioną "Symfonię C++" i chciałbym najpierw na PC to opanować. A co do robota to jaką ma maksymalną prędkość może osiągnąć (chodzi mi o taką bez ograniczeń) i jaki ma minimalny promień skrętu?