Elektroda.pl
Elektroda.pl
X

Search our partners

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

Robot 3 kołowy, bluetooth, silniki krokowe.

richardsenior 15 Sep 2010 21:47 11649 16
  • Robot 3 kołowy, bluetooth, silniki krokowe.

    Chciałbym przedstawić projekt małego robota 3 kołowego. Napęd oparty jest na silnikach krokowych. Sterowanie odbywa się przez Bluetooth, moduł użyty do tego zadania to BTM222. Mózgiem robota jest mikroprocesor Atmega16, interpretuje i wykonuje on tylko polecenia z "wyższych funkcji mózgu" , za które odpowiada już PC. Za napęd robota odpowiadają 2 silniki krokowe wymontowane z drukarek LexmarkZ705. Drukarki te zdobyłem za przysłowiowego "piątaka". Sterowane są mikrokrokowo w trybie 1/8 dzięki scalonym sterownikom A3967 firmy Allegro. Do rozpoznania terenu użyłem dalekomierza Sharpa zamieszczonego na obrotowej wieży. Oprogramowanie pisane w programie AVR Studio w C (Atmega) i w bardzo funkcjonalnym Qt4 ( interfejs sterujący robotem).

    Poniżej zamieszczam zdjęcia i screeny:

    Robot 3 kołowy, bluetooth, silniki krokowe.

    Robot 3 kołowy, bluetooth, silniki krokowe.

    Robot 3 kołowy, bluetooth, silniki krokowe.

    Robot 3 kołowy, bluetooth, silniki krokowe.

    Filmy z pracy robota:


    Link



    Link



    Link


    zapraszam do komentowania.

    W najbliższym czasie przewiduję 2 wersję robota, już z asynchronicznym sterowaniem kół, kamerą i sterowaniem rozmytym.

    Cool! Ranking DIY
    Can you write similar article? Send message to me and you will get SD card 64GB.
    About Author
    richardsenior
    Level 12  
    Offline 
    zapraszam na moją stronę www.ewolucyjny.pl budowa robota mobilnego, sieci neuronowe, algorytmy ewolucyjne
    richardsenior wrote 26 posts with rating 394, helped 0 times. Been with us since 2009 year.
  • OptexOptex
  • OptexOptex
  • #3
    grala1
    VAG group specialist
  • #4
    SylwekK
    Level 31  
    A czy nie dałoby się, żeby bardziej płynnie zakręty robił ? Ten stop musi być taki długi ? Generalnie projekt świetny !
  • #5
    tymon_x
    Level 30  
    Przyczepie się od innej strony. Do umieszczonych zdjęć, można zmniejszyć objętość bez zbytecznego naruszenia jakości do kilkuset kB. Widać z jakiego aparatu korzystasz: SONY DSC-S700 (informacja EXIF), chyba że to zamierzone (; Oczywiście projekt na (+). A jaka przyjemność płynie z korzystania QT4? Pierwszy raz o nim słyszę, podzielisz się jakimiś refleksjami (;
  • #6
    gem58
    Level 15  
    Fantastyczny robocik, czekam na dalsze wieści o rozwoju projektu

    tymon_x wrote:
    A jaka przyjemność płynie z korzystania QT4?


    Pozwolę sobie w dwóch słowach opisać jakie moim zdaniem przyjemności płyną z uzywania Qt. Qt to wieloplatformowy, w pełni obiektowy framework dający świetne narzędzia do projektowania aplikacji, a to za sprawą:
    - gotowych do użycia implementacji wielu bibliotek
    - w tym bardzo rozbudowanych bibliotek interfejsu użytkownika
    - koncepcji sygnałów/slotów pozwalającej w łatwy sposób łączyć funkcjonalnie moduły aplikacji na zasadzie akcji i reakcji
    - znakomitej dokumetacji
    - licencji umożliwiającej bezpłatne korzystanie

    Jeśli jeszcze nie słyszałeś to polecam sie zainteresować, nawet do budowy jednej aplikacji potrafi bardzio się przydać.

    Pozdrawiam :)
  • #7
    tymon_x
    Level 30  
    No to czekam jeszcze na opinię autora i będę prawie zadowolony (; Ciekawi mnie jakby się spisał do systemów czasu rzeczywistego...

    Masz w planach jeżdżenie robocikiem po łuku, okręgu? Prosty wzór i implementacja tego:
    Code:
    pix_x = x_o+r*cos(alfa*PI/180);
    
    pix_y = y_o+r*sin(alfa*PI/180);
  • #8
    richardsenior
    Level 12  
    grala1 napisał
    Quote:
    Czym zasilasz robocika, jakie napięcie?


    Robot 3 kołowy, bluetooth, silniki krokowe.

    Robot zasilany jest z 10 akumulatorków Ni-MH Vigor o mocy 2700 mAh każdy. Kupiłem je za grosze (3 zł za sztukę) na znanym serwisie aukcyjnym. Planuje podwyższyć napięcie do 24 ze względu na większą moc silników krokowych przy takim napięciu i dodać zintegrowaną ładowarkę do baterii. Gdyby ktoś miał pomysł co do ładowarki będę wdzięczny ( tryb ładowania przebiegałby automatycznie robot wykrywając niski stan baterii podążał by do punktu ładowania )

    Parametry układu A3967 ( sterownik silnika krokowego )
    - maksymalny prąd ±750 mA,
    - maksymalne napięcie 30 V,
    - podział kroku 1/1, 1/2, 1/4, 1/8,
    - 3.0 V do 5.5 V - napięcie zasilania logiki,
    - tryb szybkiego, wolnego i mieszanego wygaszania prądu,
    - zabezpieczenie termiczne,
    - wyłączanie układu poniżej napięcia pracy.

    Czujnik odległości - patrz firma wobit

    SylwekK napisał
    Code:
    A czy nie dałoby się, żeby bardziej płynnie zakręty robił ? Ten stop musi być taki długi ?


    Tak napisany jest algorytm ruchu. Robot poruszał się tylko do przodu, do tyłu, i obracał się o zadany kąt. By zadać różne prędkości na obu silnikach krokowych, musiałem dopiero napisać coś jak mini system czasu rzeczywistego, okazało się że system niezbyt radził sobie z podawaniem impulsów rzędu 13 us co było wymagane by robot mógł jeżdzić przynajmniej do 1 m/s. Zrezygnowałem z wątków a zaprzągłem timery do pracy i aktualne robot może już robić dowolne łuki :) . Mówią że najprostsze rozwiązania są najlepsze :). Prawda. Jak jeździ pokaże już po zamocowaniu kamery i napisaniu w Qt jakiegoś prostego sterowania w oparciu o logikę rozmytą.

    tymon_x napisał
    Quote:
    No to czekam jeszcze na opinię autora i będę prawie zadowolony (; Ciekawi mnie jakby się spisał do systemów czasu rzeczywistego...

    Masz w planach jeżdżenie robocikiem po łuku, okręgu? Prosty wzór i implementacja tego:
    pix_x = x_o+r*cos(alfa*PI/180);
    pix_y = y_o+r*sin(alfa*PI/180);


    Po części odpowiedziałem. Co do wzoru dochodzi do niego czas przy sterowaniu silnikami krokowymi co znacznie komplikuje sterowanie. Chodzi o to by robot wyliczał gdzie dokładnie w danej chwili się znajduje co nie jest tak prostym zadaniem, przy silnikach krokowych w tej konfiguracji ( napęd jak w czołgu ). Jest to jednak możliwe, mam już kilka pomysłów ale jeszcze bardzo niedopracowanych. Dodam że głównym ograniczeniem jest Atmega i potrzeba różnej częstotliwości taktowania silników (np 10 µs i 16 µs)

    Aktualnie testuje bibliotekę OpenCV, dołączyłem do projektu w Qt4 i testuje dema :). Biblioteka ma niesamowite możliwości: stereowizja, rozpoznawanie obiektów, sieci neuronowe i wiele innych :D .
  • #9
    profesorek_96
    Level 16  
    Bardzo fajny robot. Czy użyłeś enkoderów do kół czy może inaczej zrobiłeś mapowanie? W czym program na kompa? W czym programowałeś procka?
  • #10
    piotrva
    VIP Meritorious for electroda.pl
    profesorek_96, wszystko masz wyżej, program w C, program na PC w Qt4...
    projekt bardzo fajny, na wysokim poziomie...
  • #11
    richardsenior
    Level 12  
    Bez enkoderów, projekt oparty na silnikach krokowych. Podajesz impuls i masz obrót o jakiś stały kąt co jest informacją zwrotną o położeniu. Znacznie upraszcza to konstrukcje robota pod każdym względem. Ważne tylko by używać sterownika mikrokrokowego np: podział 1/8 ze względu na mały pobór prądu porównując do sterowania 1/1.
  • #12
    _Arecki_
    Level 15  
    richardsenior wrzuciłeś tu "schemat" zasilania. Czy używasz wszystkich 4 napięć (12V, 7V, 5V, 3.3V)? Jeśli nie, to polecam do zasilania przetwornice (np. Traco Power, Recom i inne). Koszt ok 20zł a sprawność powyżej 70% (wyprowadzenia kompatybilne z 78XX, a wymiary minimalne: ok 7x11x10mm).
  • #13
    richardsenior
    Level 12  
    _Arecki_ wrote:
    richardsenior wrzuciłeś tu "schemat" zasilania. Czy używasz wszystkich 4 napięć (12V, 7V, 5V, 3.3V)? Jeśli nie, to polecam do zasilania przetwornice (np. Traco Power, Recom i inne). Koszt ok 20zł a sprawność powyżej 70% (wyprowadzenia kompatybilne z 78XX, a wymiary minimalne: ok 7x11x10mm).


    W następnej płytce pomyśle o tym. Najbardziej prądożerny jest moduł Bluetooth. Według datasheed to 114 mA ale to średnia a gdzieś wyczytałem że pobór dochodzi do 220 mA. Moduł ten działa na 3.3V. Atmega zasilana jest na 5V, dając ją na 3.3 oszczędzę trochę energii i nie będę potrzebował konwertera 3.3<->5 do Bluetooth.

    Dodam że komunikacja komputera z modułem przebiega z "przyzwoitą prędkością" 115200 (BAUD chyba tak to się pisze :) ) . Podobno da się podkręcić ponad 400000 ale jak to w windowsie obsłużyć ?
  • #14
    sztygar
    Level 14  
    A jakiś kosztorys kolega poda ?? :)
  • #15
    richardsenior
    Level 12  
    sztygar wrote:
    A jakiś kosztorys kolega poda ?? :)


    kosztorys, hmmm spróbuje te najdroższe wymienić , reszta to drobnica do 5 zł

    dalekomierz ok 50 zł
    BTM222 80 zł
    wyświetlacz 20 zł
    Atmega 16 10 zł
    3 x A3967 po 12 zł = 36 zł
    płyta plexi 10 zł
    płyta miedziana 20 zł
    10 x baterie po 3,6 zł = 36 zł
    drobnica ( laminat, bierne, stabilizatory i inne) = 40 zł
    złom 10 zł
    razem 312 zł
    Planuje dołączyć kamerkę dopinaną z S55, ma ona interfejs szeregowy rs, z prędkością transmisji do 112500, głowię się tylko jak ją podłączyć do atmegi, podłączenie jej do komputera wypadło pomyślnie, obraz sczytałem i był dobrej jakości. Aparat ten można kupić za 5 zł w wielu komisach z telefonami.
    http://pandatron.cz/?169&kamera_s_jpg_kompresi autor strony rozgryzł komunikację z aparatem.
  • #16
    blackrage
    Level 14  
    Mnie interesuje sprawa z kółkami i przeniesieniem napędu. Kolega napisał, że silniki są z drukarek, czy te silniki były razem tymi przekładniami - jak to jest "przytwierdzone" do kółek, czy kółka obracając się "nie biją" tj czy płaszczyzna koła jest w miare prostopadła do osi obrotu ?
  • #17
    richardsenior
    Level 12  
    blackrage wrote:
    Mnie interesuje sprawa z kółkami i przeniesieniem napędu. Kolega napisał, że silniki są z drukarek, czy te silniki były razem tymi przekładniami - jak to jest "przytwierdzone" do kółek, czy kółka obracając się "nie biją" tj czy płaszczyzna koła jest w miare prostopadła do osi obrotu ?


    Silnik razem z przekładnią pochodzi z drukarki. Koło połączone jest bezpośrednio z zębatką i zabezpieczone jest na wale pierścionkiem. Wymiary przekładni wrzuciłem do Inventora, na uczelni mam i tam ustawiałem współosiowość kół.

    Screeny z Inventora:
    Robot 3 kołowy, bluetooth, silniki krokowe. Robot 3 kołowy, bluetooth, silniki krokowe.

    Gotowe już mam oddzielne sterowanie prędkością obu kół. Filmik zamieszczę gdy znajdę trochę czasu.