Przeszukaj forum
Pokazywanie wyników dla tagów 'linefollower'.
Znaleziono 6 wyników
-
Cześć wszystkim, zabieram się do budowy linefollowera z turbiną, zatrzymałem się jednak przy wyborze sterownika do silników: Mam do wyboru 3: TB6612, DRV8833 lub DRV8871, po przeszukaniu uznałem że tb6612 jak i drv8833 prądowo są do siebie bardzo zbliżone, ale ze względu na popularność TB i ilości projektów z nim zdecydowałem że mamy teraz TB6612 lub DRV8871. Drv może przepuścić znacznie większy prąd choć przy łączeniu kanałów w tb6612 i używaniu silnikow 10:1 od Pololu nie ma to większego znaczenia. Nie mam doświadczenia ani z jednym ani z drugim sterownikiem silników, czytając starsze artykuły - dokładniej to projekt linefollowera Cukiereczek na forbocie, autor napisał tam że TB wymagał stosowania pewnych opóźnień. Chciałem więc was zapytać jakie jest wasze doświadczenie z tymi sterownikami, wiem już że najpopularniejszy będzie tu TB choć sam zastanawiałem się czy na dzisiejsze czasy nie ma już „lepszych” technologii jakkolwiek to nie zabrzmi. Co myślicie o tych dwóch sterownikach? Używał ktoś już DRV8871? Co będzie lepsze dla lf’a z turbiną? Z góry dzięki za pomoc
-
- linefollower
- sterowniki siln
- (i 2 więcej)
-
Cześć wszystkim Zauważyłem że ostatnio nie pojawia się zbyt dużo nowych konstrukcji jeśli chodzi o linefollowery, dlatego chciałbym opisać swoją Nie jest to raczej nic odkrywczego – podobne projekty pojawiały się w przeszłości na tym forum, jednak mimo to podzielę się swoim i może zachęcę osoby które chciałby wykonać podobną konstrukcję i zacząć swoją przygodę z elektroniką, programowaniem bądź robotyką. Cały projekt udostępniłem publicznie na GitHubie, więc jeśli ktoś jest zainteresowany, zachęcam do zapoznania się z nim. Nie przedłużając, Linefollower Kwark jest moją drugą konstrukcją. Pierwszą, jakiś czas temu (sam nie pamiętam 6-7lat?) wykonałem jeszcze na 8bitowcu - Atmega32. Obecny projekt jest dosyć świeży, w zasadzie kilkanaście dni temu robot zaczął poruszać się po linii. Pracę nad nim zacząłem końcem sierpnia tego roku i wszystko znajduję się w fazie testów. Linefollower jeszcze nie brał udziału w żadnych zawodach. Krótki filmik pokazowy, wraz z przejazdem udostępniłem na YouTubie. KONSTRUKCJA MECHANICZNA Podwozie Podwozie robota składa się z dwóch płytek PCB połączonych za pomocą dwóch wąskich listew węglowych oraz taśmy FFC. Na końcu głównej płytki zamontowana jest metalowa blaszka, wygięta w sposób zapobiegający podnoszeniu się robota podczas gwałtownego przyspieszania. Jako ślizgacze zastosowałem materiał przypominający filc, choć nie jest to rozwiązanie idealne, materiał odkleja się podczas jazdy oraz wprowadza dodatkowy opór. Planuję zastąpić go czymś twardszym, np. przymocować lub wlutować rezystory THT. Akumulator litowo-polimerowy 2S 7.4V (o pojemnościach od 120 mAh do 220 mAh) montowany jest do płytki PCB za pomocą gumek recepturek - nie miałem jeszcze problemów z takim rozwiązaniem. Najczęściej używam akumulatora 220 mAh podczas testów, a pozostałe akumulatory służą głównie jako zapas podczas ładowania. Do tej pory nie sprawdziłem, czy masa akumulatora wpływa na czas przejazdu robota, nie chciałem zajmować się tym na obecnym etapie projektu. Napęd Napęd robota stanowią dwa szczotkowe silniki HPCB 10:1 z obustronnym wałem, do montażu wykorzystałem mocowania Pololu wydrukowane na drukarce 3d. Do wałów silników zamontowałem magnesy neodymowe (⌀6 mm, wysokość 2,5 mm), namagnesowane wzdłuż średnicy. Zostały one przymocowane za pomocą uchwytów również wydrukowanych na drukarce 3D. Koła wykonano z poliamidu, a opony pochodzą z modelu Mini-Z. Opony są jednak mocno zużyte (pozostałość po wcześniejszej konstrukcji), co negatywnie wpływa na trzymanie trasy. Planuję zakup nowych opon, prawdopodobnie również z modelu Mini-Z. ELEKTRONIKA Komponenty Poniżej załączam ogólny schemat blokowy, opisujący sposób komunikacji poszczególnych elementów robota: Mikrokontroler STM32F722 Wybrałem mikrokontroler STM32 oparty na rdzeniu ARM Cortex M7, taktowany zegarem 216 MHz. Jest wystarczająco wydajny, aby obsługiwać wszystkie obliczenia w rozsądnym czasie. W wyborze procesora nie ma się co ograniczać, projekt budujemy zazwyczaj w maksymalnie kilku sztukach więc cena nie gra tutaj roli. W przyszłości planuję zwiększyć częstotliwość wykonywanych pomiarów. Cortex-M7 umożliwia wykorzystanie pamięci cache oraz pamięci o niskiej latencji, ITCM i DTCM, co zapewnia spory zapas wydajności. 12 x Transoptory KTIR0711S Chyba najbardziej popularna i sprawdzona opcja. Czujniki są rozmieszczone w szeregu, tworząc delikatny łuk. Wyjścia podłączono bezpośrednio do przetwornika ADC mikrokontrolera. Każdemu czujnikowi odpowiada przypisana dioda LED. 2 x Enkodery AMS AS5040 Enkodery magnetyczne pozwalają na precyzyjne pomiary prędkości silników. Informacje te są wykorzystywane w algorytmie PID, zapewniając zamkniętą pętlę sterowania. Dokonują pomiaru kąta z rozdzielczością 10 bitową. Do pomiaru impulsów wykorzystałem wyjście kwadraturowe. 2 x Mostek H Pololu TB6612FNG Jeden mostek odpowiedzialny jest za sterowanie jednym silnikiem. Kanały mostka zostały scalone w celu zapewnienia większej wydajności prądowej. Zastosowałem je w poprzedniej konstrukcji i nie miałem z nimi problemu. Moduł Bluetooth JDY-31 Tutaj mógłby być w zasadzie każdy moduł, który komunikuje się za pomocą magistrali UART. Moduł JDY-31 miałem pod ręką, ale mógłby być również popularny HC-05. PCB Wszystkie płytki PCB zaprojektowałem w programie KiCad w wersji 8. Mogę polecić ten program początkującym – sam nie jestem ekspertem w projektowaniu PCB, a mimo to udało się stworzyć płytki w stosunkowo prosty sposób. Podczas projektowania popełniłem dwa błędy. Pierwszym było błędne przypisanie sygnału z enkodera do pinu mikrokontrolera, co udało się naprawić za pomocą wlutowanego kynara. Drugi błąd to nieprawidłowa kolejności pinów w złączu Bluetooth - sposób naprawy jest widoczny na zdjęciach wyżej . PCB zamawiałem w JLCPCB i byłem zaskoczony szybkością realizacji oraz wysyłki do Polski. Główna płytka jest czterowarstwowa. Początkowo płytka z sensorami również była czterowarstwowa. Podczas sprawdzania cen różnica między płytkami dwu- i czterowarstwowymi wydawała się niewielka. Niestety, przy składaniu zamówienia okazało się, że dla płytek przekraczających 10 cm różnica w cenie jest większa. W rezultacie zdecydowałem się przerobić płytkę z sensorami na dwuwarstwową, natomiast główną płytkę pozostawiłem w wersji czterowarstwowej. Druga i trzecia warstwa głównej płytki stanowią masę, pierwsza to warstwa sygnałowa, a czwarta służy do sygnałów i zasilania. Jeśli chodzi o elementy pasywne, zdecydowałem się na rozmiar 0603 – są stosunkowo łatwe do lutowania i nie zajmują zbyt wiele miejsca na płytce. Sensory ułożone są w delikatny łuk, kształt płytki skopiowałem z poprzedniego robota. Dopełnieniem są dwie małe płytki, na których wlutowany jest sensor AMS AS5040. OPROGRAMOWANIE Kod na mikrokontroler został napisany w całości w języku C. Standardowo, do konfiguracji driverów użyłem programu STM32CubeMX. Do debuggowania kodu korzystałem z programu SEGGER Ozone. Oprócz standardowej aplikacji, przygotowałem projekt bootloadera oraz aplikację na PC, która została napisana w QT. Główny algorytm Sposób działania głównego kodu opiera się na sterowanej zdarzeniami maszynie stanów (ang. event driven state machine). Przetwarzanie zabranych danych oraz aktualizacja sygnału wyjściowego następuje w przypadku zakończenia konwersji ADC. Na ten moment jest to co 5ms. Oprócz standardowego algorytmu PID, dodałem między innymi wykrywanie kątów prostych, zwalnianie w przypadku niestabilności sensorów. Do zapisu danych kalibracyjnych wykorzystałem jedną stronę pamięci FLASH, wszystkie istotne parametry można modyfikować za pomocą aplikacji. Dane są zabezpieczone za pomocą CRC, a w przypadku błędnej sumy kontrolnej wczytywane są dane domyślne. Całość kodu starałem się ładnie podzielić na moduły, których opis jest dostępny tutaj. Bootloader Dzięki bootloaderowi nie musimy nawet podpinać programatora, gdy jest potrzeba aby coś szybko zaktualizować. Przesyłanie aplikacji następuje przez Bluetooth z wykorzystaniem mojego protokołu SCP. Do bootloadera możemy wejść dwiema metodami: 1. Poprzez wysłanie odpowiedniej komendy. 2. Poprzez backdoor tj. wysłanie odpowiedniej komendy podczas włączenia zasilania. Dzięki temu możemy zawsze zaktualizować oprogramowanie (możliwość wejścia do bootloadera, nawet jeżeli w aplikacji jest błąd przez który jednostka cały czas się resetuje). Organizację pamięci FLASH przedstawiłem na zdjęciu poniżej: Aplikacja QT (C++) Aplikacja dostarcza graficzny interfejs, umożliwiający sterowanie, konfigurację oraz monitorowanie linefollowera. Główne funkcjonalności to: Panel połączenia: Kontrola komunikacji przez Bluetooth. Panel sterowania: Funkcje uruchamiania, zatrzymywania, resetowania i kalibracji robota. Oraz opcje takie jak: włączenie trybu debugowania, odczyt/zapis NVM, wyświetlanie danych w czasie rzeczywistym. Panel sensorów: Aktualne wartości, wartości kalibracyjne oraz wagi przypisane do poszczególnych sensorów. Panel konfiguracji: Ustawienie pozostałych parametrów znajdujących się w pamięci nieulotnej mikrkontrolera. Wykresy prezentujące prędkości silników, błędy z sensorów. Bootloader: Obsługa aktualizacji oprogramowania. Logi PODSUMOWANIE Zbudowanie robota zajęło mi około 3 miesiące wykorzystując głównie wieczory po swojej pracy zawodowej. Aby zwiększyć docelową prędkość poruszania się linefollowera wciąż potrzebne jest jeszcze sporo testów i być może zmian w algorytmie. Mam nadzieję tylko że motywacji nie zabraknie
-
- 14
-
-
- Line follower
- linefollower
-
(i 2 więcej)
Tagi:
-
Dzień dobry. Mam problem z silnikami DC w moim linefollowerze - a mianowicie taki, że się psują. Parametry mojego robota to: - masa: 207 g - wymiary: długość 200 mm, szerokość od koła do koła 187 mm - zasilanie: 2 x Li - Po (w pełni naładowane łącznie 8,4 V) https://botland.com.pl/akumulatory-li-pol-1s-37v/15618-akumulator-li-pol-akyga-1100mah-1s-37v-zlacze-jst-bec-gniazdo-55x32x62mm-5904422343613.html - sterownik silników: DRV8835 (ciągły prąd 1.2 A, chwilowy 1.5 A, zakres napięć 2 - 11 V) https://botland.com.pl/sterowniki-silnikow-dc/851-drv8835-dwukanalowy-sterownik-silnikow-11v12a-pololu-2135-5904422367220.html Zdjęcia robota: Jak widać, robot ma dwa tylnie koła, a z przodu "ślizga" się na tej małej kulce (ona się nie obraca jak ball caster, robot się po prostu ślizga) Dotychczas robot był napędzany tymi silnikami: https://botland.com.pl/silniki-micro-n20-seria-mp-medium-power/12555-silnik-n20-bt16-micro-101-2000rpm-9v-5904422306564.html Maksymalne napięcie zasilania to 8.4 V, a realne napięcie wystawiane przez sterownik silników przy największej prędkości to 6.8 V (mierzone multimetrem). Niestety mimo że te napięcia zawierają się w zakresie napięć tego modelu silnika (3 - 9 V) to silnik się psuje - wał silnika bardzo ciężko obrócić i nie chce startować. Dlatego proszę o pomoc w dobraniu odpowiednich parametrów silnika DC do mojego robota, lub (jeszcze lepiej) konkretnego modelu silnika. Najlepiej jakby miał takie same wymiary co dotychczas, żebym nie musiał zmieniać podwozia robota. Jeśli pominąłem coś ważnego to odpowiem na dalsze pytania, z góry dziękuję za wszelką pomoc.
- 3 odpowiedzi
-
- linefollower
- robot
-
(i 1 więcej)
Tagi:
-
Hej, jeśli komuś chciałoby się rzucić okiem na schemat mojego LF'a i sprawdzić czy wszystko jest jak należy, to bardzo proszę: Będę wdzięczny za wszelkie uwagi. Przede wszystkim chciałbym się upewnić, czy sterownie diodami IR jest na pewno ok. Pozdrawiam!
-
Nazwa RoChN - Robot o Chwytliwej Nazwie obejmuje trzy wersje robota (V1 - V3), które zbudowaliśmy z kolegą paor na początku w ramach eksperymentu, a następnie już jako pełnoprawna szkolna drużyna robotyczna KRÓL. Jest to jedna z ostatnich tego typu (procesor, brak enkoderów) konstrukcji na dużych zawodach w Polsce. Pomimo tego osiąga całkiem przyzwoite wyniki, zdarzyło mu się też powalczyć o podium, którego jednak nigdy nie zdobył. Opiszę po kolei wszystkie wersje, ponieważ nie różnią się na tyle, aby można było je uznać za osobne konstrukcje. Elektronika: Zastosowaliśmy mikrokontroler ATmega324 taktowany 16MHz kwarcem, 12 czujników linii KTIR0711s podłączone do trzech poczwórnych komparatorów LM339 i mostek H - TB6612FNG. Do komunikacji wykorzystaliśmy HC-05. Sekcja zasilania od wersji trzeciej składa się z dwóch stabilizatorów na 5V - osobnych dla czujników i logiki. Silniki są zasilane bezpośrednio z akumulatora 2s. Z akumulatorem 150mAh waży około 70g. Mechanika: Zastosowane silniki to Pololu HP 10:1. Sprawdziły się dobrze, chociaż za względu na dość znaczny przebieg szczotki są mocno zużyte. Robot składa się z dwóch dwustronnych płytek drukowanych połączonych aluminiowymi listewkami i taśmą ffc. Z tyłu znajduje się dodatkowa podpórka wykonana z kawałka drutu, która zapobiega odwracaniu się robota przy starcie z dużą prędkością. Przednia płytka posiada ślizgacze wykonane z rezystorów THT - sprawują się lepiej, niż stosowane do tego przedtem LEDy. Oprogramowanie: Program do robota został napisany w języku C. Realizuje on regulator PD, z którym było sporo problemów ze względu na brak wiedzy teoretycznej oraz doświadczenia w strojeniu. Powstał też program na komputer ułatwiający komunikację z robotem poprzez bluetooth i umożliwiający zmiany w konfiguracji, ręczne sterowanie i trochę innych "bajerów". Krótki opis zmian w kolejnych wersjach: -V1 Pierwsze podejście do zbudowania linefollowera na zawody. Wykonana domowymi metodami płytka okazała się być bardzo wadliwa i ostatecznie robot ten nigdy nie ruszył z miejsca - przód nie został nawet wyczyszczony z tonera. Większość elementów z płytki głównej została później wylutowana. Wyciągnęliśmy z tej porażki wiele wniosków, w końcu człowiek najlepiej uczy się na błędach. -V2 W przeciwieństwie do poprzednika robot posiada płytkę drukowaną wykonaną na zamówienie. Problemy spowodowały części projektu, które nie zostały przetestowanie przy okazji wersji pierwszej - stabilizator napięcia przegrzewał się i trzeba było dodać mu radiator w postaci kawałka drutu. Już na zawodach okazało się, że robot jest za szeroki, w wyniku czego miewał problemy z ciasnymi zakrętami. Pojawiły się też kłopoty z modułem bluetooth - legendarnym HC-05, który po jakimś czasie odmówił współpracy i trzeba było go wymienić. W międzyczasie zmieniliśmy też kształt przedniej płytki, jak się później okazało z kiepskiego na jeszcze gorszy. Wyciągnęliśmy z tej konstrukcji dużo wniosków, które wpłynęły na wersję trzecią. Na zdjęciach widać, że część elementów została wylutowana do ponownego użycia. -V3 Prawdopodobnie ostatnia wersja z tej serii, praktycznie pozbawiona błędów projektowych. Węższa i lżejsza. Oddzieliliśmy zasilanie czujników linii od reszty, a do połączenie przedniej płytki z tylną zastosowaliśmy taśmę o rasterze 0.5 mm. Również ta konstrukcja miała kilka przodów w ramach eksperymentów z ułożeniem czujników. Przez jakiś czas używaliśmy opon odlewanych z silikonu, jednak okazały się mniej przyczepne niż mini-z - może to kwestia braku doświadczenia w doborze proporcji. Podczas początkowych testów udało nam się dwa razy spalić mikrokontroler i zepsuć rezonator kwarcowy, który niezbyt umiejętnie wymieniłem - wydać to na zdjęciach. Osiągnięcia: 6. miejsce Robotic Arena 2019 4. miejsce Robomaicon 2019 Zdjęcia i filmy z zawodów: Wersja 2 na starcie lf drag na BBR 2018
-
Witam wszystkich. Mamy w szkole kilka zestawów Lego Mindstorms EV3, z którymi byliśmy już na kilku zawodach w kategoriach sumo i linefollower. Moją uwagę zwróciły jednak roboty starszej generacji Lego RCX, które w konkurencji linefollower biją nowsze wersje czyli np. EV3 na głowę. I tu moje pytanie, czy ktoś mógłby wyjaśnić z czego to wynika ten fenomen, że starsze generacje są lepsze od nowszych? Zacząłem się zastanawiać, czy nie kupić z jednego, czy dwóch zestawów RCX, ale wolałbym najpierw wiedzieć w czym tkwi sekret?
-
- rcx
- linefollower
-
(i 1 więcej)
Tagi:
