Skocz do zawartości

Przeszukaj forum

Pokazywanie wyników dla tagów 'Robot Mobilny'.

  • Szukaj wg tagów

    Wpisz tagi, oddzielając przecinkami.
  • Szukaj wg autora

Typ zawartości


Kategorie forum

  • Elektronika i programowanie
    • Elektronika
    • Arduino i ESP
    • Mikrokontrolery
    • Raspberry Pi
    • Inne komputery jednopłytkowe
    • Układy programowalne
    • Programowanie
    • Zasilanie
  • Artykuły, projekty, DIY
    • Artykuły redakcji (blog)
    • Artykuły użytkowników
    • Projekty - roboty
    • Projekty - DIY
    • Projekty - DIY (początkujący)
    • Projekty - w budowie (worklogi)
    • Wiadomości
  • Pozostałe
    • Oprogramowanie CAD
    • Druk 3D
    • Napędy
    • Mechanika
    • Zawody/Konkursy/Wydarzenia
    • Sprzedam/Kupię/Zamienię/Praca
    • Inne
  • Ogólne
    • Ogłoszenia organizacyjne
    • Dyskusje o FORBOT.pl
    • Na luzie
    • Kosz

Szukaj wyników w...

Znajdź wyniki, które zawierają...


Data utworzenia

  • Rozpocznij

    Koniec


Ostatnia aktualizacja

  • Rozpocznij

    Koniec


Filtruj po ilości...

Data dołączenia

  • Rozpocznij

    Koniec


Grupa


Znaleziono 3 wyniki

  1. Więc jestem zupełnie świeży w sprawach arduino jednak już mam kilka fajnych pomysłów jak mógłbym je wykorzystać. Zapoznałem się już jako tako z programowaniem ale dalej kuleje w kwestii sprzętu i urządzeń jakie można wykorzystać z arduino. Do mojego pierwszego większego projektu potrzebowałbym silnika o momencie obrotowym 9.5 lub 10. Przeszukując Bootland zdałem sobie sprawę że taki silnik nie jest polecany do budowy robotów oraz ma napięcie zasilające 12 lub 6V. Tutaj pojawia się moje pytanie. Czy istnieje silnik który spełni założenie dużego momentu obrotowego jednocześnie będąc kompatybilnym z arduino czy może istnieje jakiś sposób na sterowanie większym silnikiem ? Może można jakoś obejść napięcie zasilania ? Za każdą pomoc będę wdzięczny i mam nadzieję że znajdę na tym forum pomoc :).
  2. Robot unikający przeszkód z regulacją napędu silników prądu stałego Cześć! Ponad rok temu skonstruowałem w ramach przedmiotu na studiach robota unikającego przeszkody. Po czasie pomyślałem, że konstrukcją warto podzielić się na Forbocie. Zakres projektu Robot porusza się na dwóch kołach i omija przeszkody wykrywane za pomocą czujnika ultradźwiękowego. Dużo pracy włożono w sterowanie silnikami prądu stałego, które stanowią napęd robota. Mimo że zakres zachowań platformy nie jet zbyt szeroki, to wartość projektu leży w algorytmach teorii sterowania, które skonstruowano by zwiększyć precyzję ruchów. W zakres prac projektowych weszły: projekt platformy robota i jej wykonanie w technologii druku 3D (Fusion 360), projekt układu drukowanego z mikroprocesorem Atmega32u4, mostkiem H oraz paroma innymi peryferiami (Autodesk Eagle), oprogramowanie robota pozwalające na wykrywanie i omijanie przeszkód (biblioteki i bootlader Arduino), konstrukcja pętli sprzężenia zwrotnego dla silników oparta na użyciu enkoderów szczelinowych, algorytm regulatora PI do synchronizacji prędkości kół przy jeździe na wprost (poprawia utrzymanie kierunku jazdy), algorytm zagnieżdżonego regulatora obrotu platformy o zadany kąt (algorytm podobny jak ten stosowany w serwomechanizmach), prosta identyfikacja parametrów transmitancji użytych silników i trochę rozważań na temat możliwości strojenia regulatorów przy pomocy metody linii pierwiastkowych. W ramach zaliczenia projektu powstał dosyć długi raport, gdzie jest opisane jak zrealizowano poszczególne części projektu, dlatego nie ma chyba potrzeby przedstawiać w poście szczegółów po raz drugi. Gdyby ktoś szukał informacji o przenoszeniu swojego projektu z Arduino na własną płytkę PCB (z działającym USB na Atmedze32u4), konstrukcji systemów regulacji w praktyce, czy budowy własnych serwomechanizmów to można tam znaleźć działające przykłady. Kod projektu i dokumentację można znaleźć na GitHubie. Oczywiście projekt nie jest idealny, szczególnie że powstał już jakiś czas temu, a wraz ze zdobywaniem doświadczenia dostrzega się coraz więcej błędów. Na koniec dorzucam parę grafik i gifów, więcej można znaleźć w podlinkowanym raporcie i repozytorium. Ujęcia na robota z różnych stron Wierzchnia strona płytki PCB, spód oraz schemat elektryczny w raporcie Utrzymywanie kierunku jazdy Obrót o zadany kąt
  3. Witam serdecznie Chciałbym przedstawić Państwu robota mobilnego, o wdzięcznej nazwie "Drewniak". Praca ta została wykonana na potrzeby projektu "Roboty Mobilne" na Politechnice Opolskiej. Poniżej krótka prezentacja robota na filmie, w dalszej części szczegółowy opis. 1. Cel projektu. Celem projektu było stworzenie robota mobilnego zdolnego do pokonania labiryntu. Postawione wymagania przed realizacją projektu to: całkowita autonomiczność robota, brak możliwości wpływu na trajektorię podczas jazdy robota, pokonanie labiryntu w obie strony w czasie poniżej dwóch minut. Zakres prac koniecznych do wykonania w celu realizacji projektu obejmuje: zaprojektowanie konstrukcji mechanicznej oraz elektronicznej, budowa robota, stworzenie oprogramowania robota, wykonanie testów potwierdzających poprawność działania konstrukcji. Na poniższym rysunku przedstawiono zwymiarowany schemat labiryntu, który musi zostać pokonany przez projektowanego robota. 2. Budowa układu mechanicznego, napędy Do stworzenia platformy jezdnej robota zdecydowano się na użycie materiałów drewnianych. Podwozie wykonane zostało z płyty pilśniowej oraz przymocowanych do nich drewnianych listew. Rzeczywiste wymiary platformy jezdnej robota to: 18 cm długości, 12 cm szerokości, oraz 5,5 cm wysokości, mierząc od podłoża do platformy podwozia. Robot napędzamy jest dwoma silnikami DC o następujących parametrach: napięcie zasilania od 5 V do 7 V, pobór prądu w stanie „bez obciążenia” około 180 mA, prędkość obrotowa za przekładnią: ok. 80 obr/min, moment obrotowy za przekładnią: ok. 0,5 kg*cm (0,049 Nm). Dodatkowo, kompletny zespół napędowy wyposażony jest w przekładnię o przełożeniu 48:1, a także koła wykonane z materiałów sztucznych o średnicy 65 mm oraz szerokości 26 mm. Ostatnim elementem zestawu napędowego robota jest prototypowe koło samonastawne, stworzone z zestawu klocków „Lego”, zapewniające trzeci punkt podparcia robota. Na poniższych rysunkach ukazano podwozie robota wraz z przymocowanymi napędami. 3. Budowa układu elektronicznego 3.1. Układ zasilania Na układ zasilania konstrukcji robota składają się cztery ogniwa litowo-jonowe, pozyskane ze starej baterii laptopa. Pojemność jednego ogniwa wynosi 2200 mAh. Ogniwa połączono równolegle. Uzyskano w ten sposób źródło zasilania o napięciu równym od 3 do 4,2 V, w zależności od stanu naładowania ogniw, oraz pojemności ponad 8000 mAh. W celu zabezpieczenia ogniw przed nadmiernym rozładowaniem oraz możliwości ich ładowania, zastosowano układ ładowarki akumulatorów jedno-celowych z zabezpieczeniem o oznaczeniu TP4056. Napięcie ładowania ogniw wynosi 4,2 V, maksymalny prąd ładowania to 1000 mA. Zabezpieczenie przed rozładowaniem ogniw poniżej napięcia równego 2,5 V, oraz przed poborem prądu ponad 3 A. Zastosowane rozwiązanie pozwala na ciągłe pobieranie prądu równego 3 A przez niespełna 3 godziny, bez uwzględniania strat. Aby podnieść napięcie zasilania do poziomu napięcia równego 7 V (maksymalne napięcie zasilania zastosowanych silników), użyto regulowanej przetwornicy impulsowej Step-Up o oznaczeniu XL6009E1. Jej napięcie wejściowe wynosi od 3 do 30 V, natomiast możliwe do regulacji napięcie wyjściowe od 5 do 35 V. Maksymalny prąd wyjściowy równa się 3 A, a sprawność układu zawiera się na poziomie 80-94%. Napięcie wyjściowe z przetwornicy zostało doprowadzone do sterownika silników oraz układu z mikroprocesorem. 3.2. Sterownik silników W celu precyzyjnej kontroli prędkości oraz kierunku obrotu silników napędowych, zastosowano dwukanałowy sterownik silników prądu stałego o oznaczeniu L298N. Pozwala on na pobór prądu maksymalnego przez silniki do 2 A na kanał, przy maksymalnym napięciu zasilania równym 12 V. Sterownik posiada wbudowany regulator napięcia 5 V, do zasilania części logicznej. 3.3. Czujniki odległości Aby możliwe było określenie położenia robota mobilnego, zdecydowano się na wykorzystanie dwóch analogowych czujników odległości firmy Sharp. Pierwszy z nich, o oznaczeniu GP2Y0A41SK0F i zakresie pracy od 4 do 30 cm, został umieszczony na prawym boku platformy jezdnej, pozwalając tym samym na określenie jej odległości od prawej ściany. Drugi czujnik, o oznaczeniu GP2Y0A21YK0F i zakresie pracy od 10 do 80 cm, został umieszczony na przodzie platformy jezdnej. Jego zadaniem jest wykrywanie przeszkody w postaci ściany przez robotem w momencie, gdy tunel zakręca w lewo pod kątem większym bądź równym 90 stopni. Czujniki zasilane są napięciem z zakresu od 4,5 do 5,5 V, ich średni pobór prądu to 30 mA. Wyjściem jest sygnał analogowy, którego wartość zależna jest od odległości pomiędzy wykrytym obiektem a sensorem. Im obiekt znajduje się bliżej, tym napięcie na wyjściu jest wyższe. 3.4. Mikrokontroler sterujący Jako jednostkę sterującą układem wybrano mikrokontroler AVR Atmega328 w obudowie do montażu przewlekanego DIP. Jest to ośmiobitowy mikrokontroler, posiadający 23 programowalne układy wejścia-wyjścia. Oferuje on 32 KB programowalnej pamięci Flash, 1 KB pamięci EEPROM, a także 2 KB pamięci SRAM, natomiast maksymalna częstotliwość taktowania wynosi 20 MHz przy użyciu zewnętrznego rezonatora kwarcowego lub 8 MHz przy użyciu wbudowanego. Na potrzeby projektu stworzono płytkę PCB metoda termotransferu, zawierającą opisywany mikrokontroler, wraz z niezbędnymi do jego poprawnej pracy elementami, tj. stabilizator napięcia 5 V, kondensatory i rezystory filtrujące zasilanie, rezonator kwarcowy o częstotliwości 16 MHz, dwie kontrolne diody LED, złącza na moduł Bluetooth, złącza na czujniki odległości, złącza do wyprowadzeń sterownika silnika. 4. Oprogramowanie mikrokontrolera Program sterujący mikrokontrolerem napisany został w języku C++ z użyciem środowiska Arduino. Następnie, po jego skompilowaniu, wgrano wsad do pamięci mikroprocesora. Użycie środowiska Arduino pozwoliło na łatwiejsze zaprojektowanie oprogramowania z racji dostępności wielu bibliotek, które w łatwy sposób można zaimportować do projektu. Działanie programu można zobrazować za pomocą poniższego schematu blokowego. W kodzie programu, na samym początku zadeklarowano odpowiednie pliki nagłówkowe, zdefiniowano stałe oraz zmienne globalne, które wykorzystywane są podczas działania oprogramowania. Zadeklarowano również obiekt FastPID, odpowiedzialny za użycie biblioteki regulatora PID. W funkcji setup() znalazły się inicjalizacje kolejnych modułów mikrokontrolera, tj. modułu ADC, mierzącego analogowe napięcie, oraz modułu PWM, pozwalającego wygenerować sygnał o zmiennym wypełnieniu. Ustalono również stany na pinach wyjściowych oraz zainicjalizowano moduł obsługujący komunikację szeregową UART, w celu przesyłania podstawowych informacji o pracy mikrokontrolera. W funkcji loop(), czyli w głównej pętli programu, na samym początku algorytmu sprawdzany jest czas, w celu odmierzenia 25 milisekund, za pomocą wbudowanej funkcji millis(). Następnie, po jego upływie, dokonuje się odczyt wartości analogowej napięcia z czujników Sharp. Wyznaczana jest odległość w milimetrach dla czujnika umiejscowionego z prawej strony robota, za pomocą własnej funkcji. Kolejno obliczany jest uchyb, a następnie dane przekazywane są do funkcji regulatora PID. W kolejnej części funkcji loop() sprawdzane jest, czy przed robotem nie ma przeszkody w postaci ściany. Odległość z przodu robota nie została przeliczona na jednostki miary, a jedynie ustalono pewną stałą „granicę”, po której przekroczeniu platforma jezdna skręca maksymalnie w lewo. Jeśli „granica” nie została przekroczona, wykonuje się regulacja za pomocą PID. Dodatkowo zadeklarowano przesyłanie podstawowych informacji, m.in. wartości z obu modułów ADC, wyznaczonej odległości, uchybu, za pomocą interfejsu UART, w celu kontrolowania działania programu mikrokontrolera. Wlutowane w płytkę diody również sygnalizują w odpowiedni sposób o poprawnym działaniu programu. Program mikrokontrolera nie może się zakończyć. Działa nieprzerwanie, aż do zaniku zasilania. Dzięki takiemu rozwiązaniu, robot jest w pełni autonomiczny. 5. Wnioski Celem projektu było stworzenie robota mobilnego zdolnego do pokonania labiryntu bez ingerencji użytkownika w tor jazdy, podczas jego pokonywania. Cel ten został osiągnięty, jednak podczas pracy natknięto się na kilka problemów. Przede wszystkim użyte silniki napędowe okazały się być średniej jakości. Po ustawieniu identycznego wypełnienia dla sygnału PWM dla obu silników, ich prędkości obrotowe znacznie się różniły. Jednak zastosowanie regulatora PID pozwoliło na odpowiednie kontrolowanie toru jazdy platformy robota mobilnego. Parametry regulatora PID zostały dobrane podczas przeprowadzanych testów. Wzmocnienie członu proporcjonalnego ustalono na wartość 1.30, wzmocnienie członu różniczkującego na wartość 2.15, natomiast wzmocnienie członu całkującego na wartość 0. W konstrukcji tego typu, gdzie zachodzi potrzeba szybkiego działania regulatora, człon całkujący mógłby wprowadzić niechciane opóźnienie w układzie regulacji. Robot pokonuje labirynt w czasie niecałych 30 sekund, co jest bardzo dobrym wynikiem. Stworzenie własnej konstrukcji, układu elektronicznego oraz oprogramowania wymagało dużego nakładu pracy, jednak końcowy efekt daje wiele satysfakcji. Ostateczna forma robota mobilnego została przedstawiona na poniższym rysunku. Projekt i wykonanie: Jakub Kinder / Politechnika Opolska 2019. Wszelkie prawa zastrzeżone! Kopiowanie, powielanie i wykorzystywanie zdjęć bez pisemnej zgody autora zabronione!
×
×
  • Utwórz nowe...