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

Robot 3 kołowy, bluetooth, silniki krokowe.

richardsenior 15 Wrz 2010 21:47 11568 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.

    Fajne! Ranking DIY
    Potrafisz napisać podobny artykuł? Wyślij do mnie a otrzymasz kartę SD 64GB.
    O autorze
    richardsenior
    Poziom 11  
    Offline 
    zapraszam na moją stronę www.ewolucyjny.pl budowa robota mobilnego, sieci neuronowe, algorytmy ewolucyjne
    richardsenior napisał 26 postów o ocenie 394, pomógł 0 razy. Jest z nami od 2009 roku.
  • OptexOptex
  • #3
    grala1
    Specjalista grupy V.A.G.
  • OptexOptex
  • #4
    SylwekK
    Poziom 30  
    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
    Poziom 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
    Poziom 15  
    Fantastyczny robocik, czekam na dalsze wieści o rozwoju projektu

    tymon_x napisał:
    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
    Poziom 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
    Poziom 11  
    grala1 napisał
    Cytat:
    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ł
    Cytat:
    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
    Poziom 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
    Moderator na urlopie...
    profesorek_96, wszystko masz wyżej, program w C, program na PC w Qt4...
    projekt bardzo fajny, na wysokim poziomie...
  • #11
    richardsenior
    Poziom 11  
    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_
    Poziom 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
    Poziom 11  
    _Arecki_ napisał:
    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
    Poziom 14  
    A jakiś kosztorys kolega poda ?? :)
  • #15
    richardsenior
    Poziom 11  
    sztygar napisał:
    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
    Poziom 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
    Poziom 11  
    blackrage napisał:
    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.