Skocz do zawartości

Przeszukaj forum

Pokazywanie wyników dla tagów 'Line follower'.

  • Szukaj wg tagów

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

Typ zawartości


Kategorie forum

  • Elektronika i programowanie
    • Elektronika
    • Arduino, 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 136 wyników

  1. Witam wszystkich Od jakiegoś czasu interesuję się robotyką, a z racji, że jestem teraz na wypowiedzeniu chciałbym stworzyć fajnego line followera. Mam już wizję tego jak to zrobić ale potrzebowałbym kilku sprostowań lub delikatnych wskazówek. Schemat sprowadzałby się do czegoś takiego: Transoptory -> komparatory -> mikrokontroler -> sterownik silników Mechanicznie na pewno chcę, aby robot posiadał silniki Pololu 30:1 lub 10:1, do tego mocowania i kompatybilne koła, które będą sterowane mostkiem H. Co do wyboru mostka też nie jestem przekonany czy L293D więc może polecacie coś innego. Sercem chcę, aby była Atmega 328, oprócz tego planuję zakupić moduł Bluetooth do sterowania telefonem. 8 komparatorów, Zestaw kondensatorów, rezystorów, taśma i złącze łączące listwę czujników z "bazą" musowo. Chcę skorzystać z 8 transoptorów KTIRO771S i tutaj rodzi się już pierwsze pytanie. Jeśli chodzi o zasilanie myślałem tu albo o koszyku baterii albo o akumulatorku. Pytanie czy silniki i procek może być zasilany z jednego źródła? Czy warto kupić gotową listwę z czujnikami, czy jednak bawić się w lutowanie transoptorów, rezystorów i kondensatorów? Na Botlandzie znalazłem takie listwy: https://botland.com.pl/pl/czujniki-odbiciowe/152-listwa-z-czujnikami-odbiciowymi-qtr-8a-analogowa.html https://botland.com.pl/pl/czujniki-odbiciowe/20-listwa-z-czujnikami-odbiciowymi-qtr-8rc-cyfrowa.html Jeśli chodzi o ramę/obudowę myślałem o laminacie. Nie mam pojęcia jednak nic o trawieniu. W sytuacji kiedy zamówię wytrawioną płytkę, konkretne ścieżki są już wypełnione miedzią i lutuję konkretne elementy do danej ścieżki? Gdybym zdecydował się na lutowanie ręczne transoptorów czy powinienem je umieszczać w delikatnym łuku czy w linii prostej będzie wystarczająco ok? Jakiś konkretny programator AVR polecacie czy każdy podejdzie do Atmegi 328? Dużo pytań, większość pewnie głupia ale tak jak pisałem na początku nie chcę wskazania gotowej drogi tylko proszę o kilka wskazówek bardziej doświadczonych użytkowników. Docelowo chciałbym, aby lf zapamiętywał przejechaną trasę odczytując co pewien czas dane z napięć na każdym silniku.
  2. Witam, umieszczam schemat mojego pierwszego Line Followera opartego na mikroprocesorze. Zdecydowałem się na rozwiązania najczęściej wykorzystywane w innych konstrukcjach tego typu przez początkujących: - ATmega328 - Pakiet LiPol 2S 7,4V - TB6612 (po jednym na każdy silnik) - Zasilanie silników bezpośrednio z pakietu - Stabilizator LM1117 dla logiki - 7 czujników KTIR0711S Schemat płytki głównej: Schemat płytki z czujnikami: Byłbym wdzięczny za przejrzenie schematu, czy nie popełniłem jakiegoś błędu przy połączeniach.
  3. Cześć! Zakładam, że skoro czytasz ten wpis to zapewne interesuje Ciebie elektronika/robotyka/majsterkowanie i zastanawiasz się jak skonstruować swojego robota. A może szukasz inspiracji? Motywacji do dalszego działania? Jeżeli odpowiedź brzmi tak, to zapraszam Ciebie do przeczytania mojego wpisu. Traktuje on o moim pierwszym elektronicznym projekcie - linefollowerze o wdzięcznym imieniu Ianush88. Wpis podzieliłem na poszczególne fragmenty tak, abyś łatwo trafił do sekcji które Ciebie interesują najbardziej. Początek każdego z nich będzie oznaczony pogrubionym tekstem. To tyle jeżeli chodzi o wstęp, zapraszam do lektury! Ważna uwaga: Ze względu na fakt, że jest to mój pierwszy projekt i ma dla mnie głównie charakter edukacyjny w wielu przypadkach zdecydowałem się na wybór prostych rozwiązań, które o wiele łatwiej zaimplementować i ewentualnie naprawić. Nad optymalizacją konstrukcji postanowiłem się skupić w ewentualnej przyszłej ewolucji tego projektu. Konstrukcja & mechanika Ianush88 to klasyczny przedstawiciel rodziny linefollower - składa się z dwóch płytek PCB połączonych ze sobą dwoma kątownikami z tworzywa sztucznego. Do głównej (większej) płytki PCB przymocowane są silniki prądu stałego Pololu HP z przekładnią 10:1 - standardowy wybór zdecydowanej większości konstruktorów linefollowerów ze względu na optymalny balans między maksymalną prędkością obrotową (3000 obr/min) a generowanym momentem (0,22 kg*cm). Do wałów silników zamocowane są koła Solarbotics RW2 - wybrałem je głównie ze względu na ich bezproblemową dostępność i łatwość w połączeniu z całą konstrukcją. Muszę przyznać, że odpowiednio wyczyszczone generują całkiem sporo przyczepności. Niestety nie mam porównania z oponami mini-z czy odlewanymi z silikonu, ale jestem z nich zadowolony. Przednia płytka PCB zawierająca czujniki linii opiera się na podłożu przy pomocy dwóch tranzystorów THT w obudowie TO-92. Ich nóżki przylutowałem do płytki a obudowy przetarłem lekko papierem ściernym tak, by swoimi krawędziami nie zahaczały o nierówności trasy. Elektronika Robot zasilany jest z akumulatora 2S 7.4V (korzystam z trzech o różnych wartościach pojemności: 150mAh, 250mAh i 800mAh). Napięcie z akumulatora jest stabilizowane i obniżane do 5V przez stabilizator napięcia LM1117. Mózgiem całej konstrukcji jest Atmega16A - wybrana przeze mnie ze względu na moją znajomość tej rodziny mikrokontrolerów. Taktowana jest przez sygnał z kwarcu o częstotliwości 16MHz. Posiada istotne ze względu na projekt peryferia: ośmiokanałowy, 10 - bitowy przetwornik ADC, UART do komunikacji z zewnętrznym urządzeniem oraz trzy timery. Każdy z ośmiu kanałów przetwornika został wykorzystany do pomiarów napięcia z kolektorów czujników odbiciowych KTIR0711S. Znajdują się one na wysuniętej z przodu płytce PCB, umiejscowione symetrycznie po obu stronach. Sygnały między płytkami przekazywane są przy pomocy taśmy i złącz FFC. Timer 1 wykorzystałem do generowania dwóch sygnałów PWM sterujących prędkością każdego z silników. Doprowadzone są one do sterownika silników TB6612FNG, który jest układem z dwoma klasycznymi mostkami H. Do wejść UARTu mikrokontrolera poprowadzone są ścieżki ze złącza goldpin, do którego podłączony jest moduł bluetooth HC-05. Wraz z UART wykorzystuje go do komunikacji między robotem a telefonem lub komputerem. Na głównej płytce znajduje się także 6 - pinowe złącze ISP służące do programowania mikrokontrolera oraz przycisk który można dowolnie zaprogramować (ja używam go do ręcznego startowania/zatrzymywania robota). Dodatkowo na głównej płytce PCB umieściłem 8 LEDów prezentujących wskazania poszczególnych czujników odbiciowych. Całość została zaprojektowana przy użyciu oprogramowania Altium Designer. Obie płytki PCB są jednostronne i rozstawienie wszystkich elementów wraz z ich połączeniem było ogromnym wyzwaniem, co jednak udało się osiągnąć (ostatecznie skorzystałem z tylko jednej "przelotki"). Na płytce z czujnikami widoczne są przeróbki w postaci dolutowanych przewodów - jest to efekt złego zaprojektowania płytki i pośpiechu w przygotowaniach do zawodów... Program Do sterowania robotem zaimplementowałem regulator PD. Wartością zadaną jest w tym przypadku położenie czarnej linii względem robota, a sterowaniem wartości wypełnienia sygnału PWM dla poszczególnych silników. Uchyb wyliczany jest na podstawie pomiarów napięcia na kolektorach poszczególnych czujników odbiciowych. Gdy napięcie przekroczy pewną wartość graniczną, przy której uznajemy, że pod czujnikiem znajduje się już czarna linia do uchybu dodawana jest konkretna wartość błędu. Każdy czujnik ma przypisaną swoją "wagę" i przy każdej iteracji regulatora wyznaczany jest średni błąd, a następnie uchyb i sterowanie. Do regulatora PD dorzuciłem pewne wyjątki, które obsługują takie przypadki jak np. zgubienie linii tak, by robot potrafił na nią z powrotem trafić. Mogę tutaj polecić artykuł "Algorytm linefollowera w C – dla początkujących i nie tylko" , który całkiem dobrze opisuje jak zaimplementować regulator pd do robota typu linefollower. Do zmiany ustawień robota, w tym nastaw regulatora przygotowałem aplikację przy pomocy narzędzia MIT App Inventor. Dobrze jego obsługę prezentuje artykuł: "Tworzenie aplikacji Android". Do komunikacji przygotowałem swój własny protokół o określonej ramce danych. Wprowadzanie danych i naciśnięcie odpowiedniego przycisku powoduje wysłanie wiadomości o konkretnej budowie i zawartości do mikrokontrolera, który ją przetwarza i zmienia wartości odpowiednich parametrów. Przemyślenia Już zaprojektowałem nową płytkę czujników, tym razem mam nadzieję że poprawnie. Teraz będą ustawione zdecydowanie bliżej siebie, ponieważ chcę żeby robot szybciej mógł reagować na zmiany trasy. W przyszłym projekcie na pewno skorzystam już z płytek dwustronnych, co pozwoli na gęstsze upakowanie elektroniki, a co za tym idzie zmniejszenie gabarytów i masy robota. A mniejsza masa = lepsze osiągi. Plus brak problemów z połączeniem wszystkich komponentów. Dostrzegłem także, że kluczową sprawą jest przyczepność mechaniczna - nawet gdy silniki mają duży moment i prędkość obrotową bez przyczepności nie przekłada się to na lepsze wyniki. Dlatego planuję w przyszłości wykorzystanie opon mini-z lub odlewanych z silikonu. Na pewno dojdzie także wykorzystanie enkoderów do pomiarów prędkości obrotowych silników i implementacja regualtorów PID dla silników. Pozwoli to na płynną regulację prędkościami i w konsekwencji mniejszą ilością uślizgów kół. Myślę także o ulepszeniu regulatora dla całego robota, sprawdzeniu kilku ciekawych rozwiązań. To już koniec! Jeżeli masz pytania lub zainteresował Ciebie jakiś temat poruszony w tym wpisie to daj mi znać w komentarzu! Powodzenia przy tworzeniu nowych konstrukcji!
  4. Przyszła pora na zbudowanie czegoś jeżdżącego a, że jakiś czas temu trochę spodobały mi się linefollowery to stwierdziłem, że i ja takiego zbuduję. Prezentowany robot to w sumie jego druga wersja, pierwsza była trochę niedoskonała i nie wyszła z fazy alfa, za to od niej wzięła się nazwa tego robota czyli „Grzmot” (po prostu tamten był jeszcze większy i cięższy a przede wszystkim brzydszy). Mechanika Całość oparta jest na dużej płytce uniwersalnej o wymiarach 150x90 na której znajdują się wszystkie elementy mechaniczne oraz elektroniczne. Napęd stanowią dwa silniki Pololu z przekładnią 30:1, koła to również firma Pololu, 32x7, do tego plastikowe mocowania silników. Przednie ślizgacze są zrobione z tego co akurat było pod ręką, kilka warstw kartonu przyklejonych na kropelkę. Działa zadziwiająco dobrze i jeszcze się nie urwało. Elektronika Mózgiem robota jest arduino pro mini, sterownik silników to L293D (wiem, dinozaur ale to nie jest konstrukcja na zawody tylko do nauki, wystarcza w zupełności). Czujniki linii to 5x pojedynczy moduł z czujnikiem ktir0711s, które są przylutowane za duży, metalizowany otwór do podłużnych padów na krawędzi płytki uniwersalnej (odczytywane analogowo). Do tego z przodu znajduje się cyfrowy czujnik odległości sharp, planowo miał służyć do wykrywania przeszkód jednak stanęło na tym, że używam go do startowania i stopowania robota (czasem nawet jak wpadnie na przeszkodę to też się zatrzyma :P). Sekcja zasilania zaczyna się od gniazda na akumulator, tutaj t-deans, dalej włącznik zasilania, dioda zabezpieczająca i stabilizator 7805 do elektroniki oraz przetwornica lm2596 (trochę nie spełniła oczekiwań) do zasilania silników. Do tego na płytce znajdują się trzy diody led (czerwona wskazuje zasilanie, dwie są podłączone do mikrokontrolera) oraz microswitch, akurat nie wykorzystywany. Jedno co na mi przeszkadza w tej części to gniazdo zasilania, którego ni jak nie dało się wlutować bezpośrednio w płytkę i musiałem to robić przez krótkie odcinki przewodów i odrobinę kleju na gorąco. Na szczęście nie psuje się, nie łamie a działa bardzo dobrze. Ogólnie to jak ktoś chce coś takiego zbudować ale nie chcę za bardzo w to inwestować to polecam taki sposób budowy, tzn na płytce uniwersalnej. Dzięki temu jest dużo szybciej niż z projektowaniem i wykonaniem pcb a ewentualne poprawki i przeróbki też są łatwe do wykonania. Wiadomo, że jak chcesz budować bolid na zawody no to czegoś takiego nie użyjesz ale do prototypowania jest super. Całość zasilana z dwu celowego akumulatora litowo polimerowego o pojemności 500mAh. Schemat jako taki nigdy nie powstał, całość była robiona na bieżąco, pinologię można wyczytać ze źródeł programu (w załączniku). Oprogramowanie Algorytm sterowania to PD oparte w dużej części na artykule batona z forum z tym, że dostosowany do arduino. W obecnej wersji samą część regulatora oparłem o bibliotekę pid, uruchomienie jest proste i efekty są widoczne dosyć szybko. Oczywiście polecam najpierw przyjąć trochę teorii o tym regulatorze a dopiero potem siadać do programowania. Osobiście nie jestem wielkim fanem matematyki więc po prostu wolę uruchomić bibliotekę i poświęcić więcej czasu na inne elementy programu. Poza tym mamy fragmenty do liczenia błędu, odczytywania ADC, sterowania silnikami i włączania/wyłączania robota (taki bezpiecznik, odczytuje napięcie akumulatora i stan czujnika sharp). Z rzeczy, które mi brakuje to na pewno kalibracja, jakiś interfejs z użytkownikiem, np. moduł bluetooth i odczyt telemetrii w czasie rzeczywistym. Przemyślenia W pierwszej rewizji tego robota silniki były zasilane bezpośrednio z akumulatora przez co strojenie regulatora było dosyć kłopotliwe bo parametry jezdne się dosyć dynamicznie zmieniały. W ramach późniejszej modyfikacji dodałem moduł przetwornicy (dlatego tak średnio pasuje i przechodzą pod nią przewody) i myślałem, że wyeliminuje to do pewnego poziomu problem zmiennej dynamiki. Niestety rzeczywistość mnie trochę zaskoczyła, napięcie na wyjściu to około 6V gdy akumulator ma jeszcze 7.5-8V to robot już wyraźnie traci werwę (napięcie się nie zmienia). Na szczęście mam dwa akumulatorki więc jak jeden jeździ to drugi się ładuje i tak się zmieniają co kilkanaście minut testów (nie ciągłej jazdy). Drugi problem to złe rozłożenie masy. Zdarza się, że koła tracą przyczepność i zaczynają buksować i robot się zatrzymuje. Położenie rolki taśmy izolacyjnej na wysokości silników rozwiązuje ten problem. Do tego jeszcze ciekawostka, wydaje mi się, że robot lepiej radzi sobie na samym regulatorze P (przynajmniej na mojej, domowej trasie). Owszem, oscyluje ale i tak wydaje się, że jedzie średnio szybciej niż po dłuższej chwili strojenia metodą z artykułu. Postaram się to pokazać na filmach, liczę, że bardziej doświadczeni coś podpowiedzą (chciałbym tutaj jeszcze poeksperymentować). Jeżeli macie jakieś pytania albo czegoś nie napisałem/napisałem niezrozumiale to proszę o zwrócenie uwagi, odpowiem i uzupełnię opis. Grzmot2.0.zip
  5. Cześć, od kiedy opisałem swojego robota Pika na forum, minęło już troszkę. W tym czasie zdążyło powstać kilka kolejnych konstrukcji, zarówno bez turbiny jak i z turbiną. W tym poście chciałbym przybliżyć Wam moją najnowszą konstrukcję - robota klasy Linefollower Turbo o nazwie Spark. Głównym założeniem, jakie przyświecało mi podczas projektowania była chęć nauczenia się wektorowego sterowania silnikami BLDC oraz wykorzystanie właśnie takich silników jako napęd bezpośredni w robocie. Podczas opisu założeń konstrukcyjnych posłużę się modelem 3D robota. Jak można zauważyć na powyższym zdjęciu, ogólna konstrukcja nie różni się od znanego wszystkim standardu. Na przedzie delikatna i lekka listewka z 14 czujnikami linii KTIR0711S. Centralnie umieszczona turbina QX-Motor 14000 kv o średnicy 30 mm. Dwa silniki hexTronik 1300KV umieszczone w tylnej części w taki sposób, aby możliwe było uniesienie przodu celem wjazdu na pochylnię/rampę w kategorii Linefollower Enchanced. Sercem robota jest mikrokontroler STM32H743VIT6. Jest on oparty na rdzeniu Cortex M7 oraz taktowany z prędkością 400 MHz. Wybór tak potężnej jednostki sterującej podyktowany był chęcią wydajnego obliczania komutacji sterowania wektorowego dla każdego z silników jezdnych oraz realizacji algorytmu jazdy przy pomocy tylko jednej jednostki. Dodatkowo tak szybki mikrokontroler pozwolił na zatuszowanie moich niedoskonałości w optymalizacji kodu Głównym elementem konstrukcyjnym jest 4-warstwowy obwód drukowany. W trakcie projektowania falowników do sterowania silnikami powstały dwa prototypy, w których miałem problem z przegrzewającymi się tranzystorami dlatego w docelowym PCB zastosowałem aż 4 warstwy. Dodatkową zaletą takiego obwodu jest jego większa odporność na zakłócenia elektromagnetyczne. Podświetlony obszar to miedź na wszystkich czterech warstwach połączonych setkami przelotek chłodząca tranzystory. Do sterowania każdym z silników wykorzystałem 6 tranzystorów w układzie pełnego mostka 3-fazowego. Posłużyły mi do tego półmostkowe układy BSG0813NDI za których udostępnienie serdecznie dziękuję firmie Infineon (oraz za tranzystory i drivery, które spaliłem w prototypach - ok 60 sztuk, nie od razu Rzym zbudowano ) Ostatecznie jako drivery wykorzystane zostały układy MIC4607-2 ze względu na możliwość sterowania całym mostkiem przy pomocy tylko jednego układu. Do odczytywania pozycji wirnika służy enkoder magnetyczny AMS5045B. Całość zasila akumulator Li-Po Tattu 450mAh 7.4V 75C. Za komunikację bezprzewodową odpowiada stary dobry moduł HC05. W celu zapewnienia pod robotem podciśnienia wywoływanego turbiną, zwiększającego nacisk kół na podłoże obrys uszczelniony został wydrukowaną w 3D ścianą. Do usztywnienia konstrukcji tak, aby opierała się ona o podłoże tylko kołami i ślizgaczami z przodu, posłużyły wałki węglowe o średnicy 4 mm. Do połączenia ze sobą poszczególnych elementów konstrukcyjnych wykorzystane zostały aluminiowe mocowania wykonane w technologii WEDM. Poniżej kilka fotek. Prototyp 1: Ratowanie prototypu 1 (rezystory bramkowe? A na co to potrzebne ) : Prototyp 2: Elementy konstrukcyjne: Pierwsze ruchy silnika: Poszukiwanie granic: Opona wykonana z poliuretanu 20': Aluminiowa felga wciśnięta na wirnik (Pololki dla skali): Zamontowana felga wraz z oponami (Mini-Z 20'): Turbina po dezintegracji (podczas jazdy eksplodowała): Przejazd w konkurencji Linefollower Drag podczas Bałtyckich Bitw Robotów 2018: Próby podczas RobotChallenge 2018 w Pekinie: Wnioski: Konstrukcja waży 250 g. To zdecydowanie za dużo, gdyż opony nie są w stanie zapewnić wystarczającej przyczepności na zakrętach i robot wpada w poślizg na zakrętach przez co osiągnięcie prędkości średniej na krętej trasie powyżej 3 m/s jest bardzo trudne. Zastosowanie silników BLDC jako direct-drive umożliwia rozpędzenie robota do ogromnych prędkości liniowych (15 m/s+) lecz aby posiadały one zadowalający moment przy niskich obrotach konieczny do gwałtownych zwrotów muszą być duże i ciężkie. Lepiej zastosować małe silniki z przekładnią. Nowa konstrukcja już się tworzy! Dziękuję za przejrzenie albumu, który utworzyłem i zapraszam do zadawania pytań w komentarzach
  6. Cześć! Powoli zauważam, że roboty tego typu zaczynają wymierać i odchodząc na lf-ową "emeryturkę" chciałbym zostawić jakiś ślad po swoim projekcie. Choć na zawodach nigdy nie szczędzę informacji na temat swojego robota i chętnie dzielę się wiedzą oraz doświadczeniem w temacie, to mam wrażenie, że ilość lepszych robotów w konkurencji nie zwiększa się, a nawet spada. Na zawodach starzy bywalce ścigają się między sobą, a młodzi pewnie zniechęcają się do konkurencji, ze względu na wysoki próg wejścia do walki o nagrody. Cukiereczek - LineFollower bez turbiny (Nazwa nawiązuje do mojej poprzedniej konstrukcji - Candy). Jest to robot, którego zbudowałem w ramach pracy przejściowej magisterskiej między styczniem a marcem 2018r. Debiutował na zawodach Robomaticon 2018 w Warszawie, gdzie zajął 3 miejsce, zaraz za Candy (zabrakło czasu na napisanie sensownego programu). Później rozwijane było oprogramowanie, które zostało tematem pracy dyplomowej. Wydaje mi się, że jest to obecnie najszybszy robot w swojej kategorii w Polsce, aczkolwiek scena LF od 2018r. mocno się uszczupliła - być może o potencjalnie szybszą konstrukcję. Główne cechy: 12 czujników linii Mikrokontroler STM32 F7 IMU: żyroskop + akcelerometr RGB Lidar ToF USB karta µSD Bluetooth 4.2 Własny mostek H Enkodery magnetyczne 1. Konstrukcja mechaniczna Wydaje mi się, że kształtem przypomina robota Fuzzy, którym swego czasu mocno się inspirowałem przy robocie Candy. Mam nadzieję, że nikt tutaj nie uzna robota za bezpośrednią kopię - kształt jest zdecydowanie inny, podyktowany konkretnymi założeniami i doświadczeniami z poprzednich konstrukcji. Podwozie stanowią 2 moduły PCB: płytki głównej oraz płytki z czujnikami linii, połączone ze sobą taśmą FFC i usztywnione węglową listewką modelarską. Ślizg przedniej listewki zapewniają 2 ścięte łby nylonowych śrubek, z doklejoną podkładką teflonową. Z tyłu robota doklejony jest wheelie bar, w postaci kawałka listewki węglowej ze śrubką oraz teflonem. Wielokrotnie przerobiony temat - gdyby nie podpórka, robot wywracałby się do góry dołem oraz podskakiwał na każdym zakręcie. Napęd: 2 silniki szczotkowe Pololu HPCB 10:1 z obustronnym wałem, na który nałożono magnes 6x2.5 do enkodera magnetycznego. Koła to felgi wydrukowane na drukarce 3D z oponami Mini- Z. Nie dają takiej przyczepności jak poliuretan, ale nie udało mi się dobrać lepszych kół przy samodzielnym odlewaniu. Silniki zostały odrobinę podniesione podkładkami z PCB o grubości 1mm oraz kauczukiem tłumiącym wibracje. Do ich montażu wykorzystałem standardowe, plastikowe mocowania Pololu. Waga konstrukcji to 55.5g (66g z akumulatorem). Nie była priorytetem. 2. Elektronika Wszystkie płytki PCB zostały wykonane w firmie Techno Service z Gdańska. Płytka główna oraz płytka z czujnikami to płytki 4-warstwowe, pozostałe: płytki enkoderów oraz płytka IMU, 2-warstwowe. Schemat oraz layout stworzyłem w programie Altium Designer. Robot może być zasilany z akumulatora li-po 2-4S (6-17V) lub bezpośrednio z USB (bez możliwości uruchomienia silników). Oprócz pomiaru napięcia wejściowego, dodatkowo wstawiono układ pomiaru prądu pobieranego przez robota. Robot startuje obecnie z akumulatorami 2S, 180mAh, 50C. Sekcję zasilania (oprócz sekcji silnikowej) stanowi przetwornica 5V 1A, oraz układy LDO na napięcie 3.3V (osobne dla MCU, sekcji analogowej oraz czujnika IMU). Na płytce czujników znalazło się 12 transoptorów KTIR0711S. Są gęsto ułożone w jednakowych odstępach tworząc delikatny łuk. Zdecydowano się na proste rozwiązanie hardware'owe, dające równomierne odczyty z trasy. Przekombinowany układ czujników mógłby powodować dodatkowe komplikacje (różne odczyty na odsuniętych czujnikach, wpływ nierówności trasy - odległości sensorów od podłoża), więc wszelkie wykrywania dziwnych elementów na trasie realizowane są software'owo. Moduł IMU został zamocowany na padzie kauczukowym tłumiącym wibracje. Użyto sensora Invensense ICM-20602. Jak widać na zdj. poniżej, bardzo poważnie potraktowałem kwestię wibracji, które mają spory wpływ na odczyty. Wykorzystany czujnik posiada wysoką czułość i jest wrażliwy na wibracje i naprężenia. Sensor posiada dedykowaną linię zasilania z oddzielnego LDO o wysokim PSRR. Mostki H zbudowano na układach przekształtnikowych TI DRV8703 oraz tranzystorach N-FET: Toshiba TPWR8503NL. Taki układ mimo, że skonstruowany mocno na wyrost, pozwala na dowolne wysterowanie silnika, w tym zmianę kierunku obrotu bez żadnych dodatkowych opóźnień. Poprzednio stosowane mostki, popularne TB6612 wymagały łączenia kanałów i stosowania opóźnień. Wydajność takiego mostka szacuję na ok. 10A ciągłego prądu (z prądem chwilowym sięgającym +100A), sensownie byłoby lepiej dopasować mostek do wykorzystanych silników, jednak ze względu brak czasu na testowanie i chęć zamknięcia projektu w jednej rewizji PCB, postawiłem na "zero kompromisów". Dodatkowym założeniem była chęć ewentualnej zmiany silników na mocniejsze. Enkodery to AS5047P zamontowane na pionowych płytkach PCB. Podłączone zostały magistralą SPI. Dokonują pomiaru kąta absolutnego, z rozdzielczością 14 bitów. Uwzględniając przekładnię mechaniczną, można uzyskać ponad 160 tysięcy jednostek na obrót koła. Mikrokontroler zastosowany w projekcie to STM32F722 w LQFP64. MCU taktowany jest z częstotliwością 216MHz. Wszystkie piny procesora zostały wykorzystane. Posiada bardzo duży zasób obliczeniowy, znacznie większy od F1, dzięki czemu algorytmy sterujące mogą być skomplikowane i nie trzeba rezygnować z obliczeń na floatach. Karta µSD podłączona została pod SDMMC, na 4-bitowej szynie SDIO. Czujnik odległości to ST VL53L1X, laserowy czujnik Time of Flight, podłączony pod magistralę I2C. Został umieszczony na mocowaniu silnika, w celu uniknięcia dodatkowej bezwładności na listewce robota. Posiada spory zasięg, więc utrata długości z listewki nie jest problemem. Niestety czujnik domyślnie posiada spory field of view, który można odrobinę zmniejszyć tracąc również na zasięgu. Mam z tym czujnikiem sporo problemów. Na zawodach w Rzeszowie wyłapywał patyczki znaków drogowych postawionych przy trasie (inni zawodnicy nie mieli z nimi problemu) oraz bardzo często zdarza mi się, że silnik potrafi zawiesić czujnik podczas przejazdu. Rozwiązania w tej formie nie polecam. 3. Oprogramowanie Przy prowadzeniu projektu wspomagałem się programem CubeMX, a kod pisany był w środowisku Atollic TrueStudio. Poza bibliotekami CubeHAL, z których korzystam, całość własnego kodu została napisana w języku C++. Kod został podzielony na klasy, często wykorzystując przy tym mechanizm dziedziczenia. Użycie C++ pozwoliło wygodnie operować kodem, którego fragmenty wykorzystuję również w innych swoich projektach. Zrezygnowano z wykorzystania RTOSa (FreeRTOS w tym przypadku), ze względu na spory koszt samego OS przy pętlach rzędu 10kHz. STM serii F7 posiada wystarczająco dużo timerów, aby poszczególne zadania podzielić w niezależne pętle z własnym priorytetem. Do obsługi czujników linii, wykorzystano "tylko" 1 przetwornik ADC. Łączenie kilku przetworników w celu uzyskania szybszych pomiarów uznałem za bezcelowe, gdyż prawdopodobnie i tak musiałbym wyzwalać pomiary timerem, aby nadążyć z przetwarzaniem pomiarów. Obecnie pomiary wykonują się z częstotliwością ok. 56kHz i każda próbka brana jest pod uwagę podczas przejazdu. Pozycja linii wyznaczana jest w prosty sposób, przy pomocy średniej z wag przypisanych do każdego czujnika. Wagi czujników są u mnie odrobinę nieliniowe. Osobno rozpatrywane są "przypadki specjalne", gdy pod czujnikami brakuje linii itp. Osobny przetwornik wykorzystano do pomiaru napięcia i prądu. Liczona jest także zużyta pojemność baterii. Pętla sterowania silnikami z regulatorami PID wykonuje się z częstotliwością 8kHz. Nastawy zostały dobrane po części w Matlabie, później dostrojone empirycznie. Pętla żyroskopu również wykonuje się z częstotliwością 8kHz, taktowana jest przerwaniem dataready czujnika. Żyroskop wykorzystuję obecnie do omijania przeszkód oraz w odometrii. Główna pętla - podążania za linią wykonuje się z częstotliwością 400Hz. Sterowanie odbywa się poprzez typowy regulator PD, którego nastawy dobrane zostały metodą prób i błędów, bazując również na poprzedniej konstrukcji - przyspieszony proces. 4. Dodatki Sygnalizacja RGB - Zamiast niezależnych diod LED, wykorzystałem 4 diody WS2812B, które mogłem podłączyć do 1 pinu mikrokontrolera (a zużyłem wszystkie). Na diodach sygnalizowany są stany poszczególnych elementów robota, np. kalibracji żyroskopu, stanu baterii, stanu załączenia silników czy błędu regulatora linii. Interfejs USB - Jedyne złącze użytkowe w robocie. Jako, że interfejs SWD programowania wyprowadziłem w postaci padów do lutowania, "codzienne" programowanie robota odbywało się przez interfejs USB w trybie DFU. Napisany został kod umożliwiający przejście mikrokontrolera do wewnętrznego bootloadera, a następnie wgranie nowego programu. USB służył także do debugowania poprzez port COM. Karta µSD do logowania danych podczas przejazdu. Logowanie odbywa się w tle, w czasie wolnym procesora. Dane zbieram z częstotliwością ~1kHz i zapisuję binarnie w pliku (system FAT32). Logi dostarczyły mi sporo informacji "ukrytych" w robocie i przydały się w pracy magisterskiej. Poniżej przykładowe wykresy dla poboru energii, sterowania, czy utworzonej mapy trasy z uwzględnieniem omijania przeszkody. Aplikacja na smartfon pod moduł BT 4.2. Stosując moduł inny niż HC-05, zmuszony byłem stworzyć własną aplikację smartfonową do zmiany nastaw robota oraz zdalnego startu. 5. Osiągnięcia: 1 miejsce, LineFollower bez turbiny, Robomaticon 2019 w Warszawie , 9 marca 2019 1 miejsce, LineFollower Standard, XI Robotic Arena – Wrocław, 12 stycznia 2019 1 miejsce, LineFollower Enhanc3D, XI Robotic Arena – Wrocław, 12 stycznia 2019 1 miejsce, LineFollower Standard, Bałtyckie Bitwy Robotów w Gdańsku, 26-27 maja 2018 3 miejsce, LineFollower 3D, Bałtyckie Bitwy Robotów w Gdańsku, 26-27 maja 2018 1 miejsce, LineFollower Standard, Zawody ROBO~motion w Rzeszowie, 19 maja 2018 3 miejsce, LineFollower bez turbiny, Robomaticon 2018 w Warszawie, 3 marca 2018 Poniżej kilka filmów:
  7. Wstęp Niedawno miałem okazję prowadzić zajęcia feryjne dla dzieci. Tematem, który wybrałem była robotyka. Jako, że jest to gałąź techniki, która w naszych czasach bardzo prężnie się rozwija i można powiedzieć, że rewolucjonizuje nasz świat chciałem w młodych umysłach zaszczepić do niej pasję i być może przyczynić się do rozwoju kolejnego pokolenia inżynierów. Poza tym roboty są po prostu fajne, a dzieci lubią fajne rzeczy. Potrzebna więc była konstrukcja z którą dzieciaki będą mogły wejść w jakąś interakcję, była prosta, szybka i możliwa do zbudowania z tego co miałem pod ręką . Wybór padł na line followera. Założenia projektu Zbudowanie Line Followera z części jakie miałem pod ręką w swoim warsztacie (ograniczony a właściwie zerowy budżet) Maksymalne uproszczenie programu i zasady działania robota, by być w stanie objaśnić go młodszym Możliwość szybkiego złożenia robota Konstrukcja Układ elektroniczny jest banalny (nie znajdziemy tu żadnych enkoderów czy innych rzeczy znanych z konstrukcji startujących w zawodach). Głównym elementem robota jest Arduino Leonardo (aczkolwiek pod gabaryty robota lepiej sprawdziłoby się Nano, którego niestety nie miałem) do którego przyłączono dwie sekcje układu robota: napęd oraz sensor. Pod napęd wykorzystałem dwa silniczki DC Dagu z przekładnią(Mogą być np. takie). Ich sterowaniem zajął się układ L293D. W line followerach jako czujnik najczęściej wykorzystuje się transoptory odbiciowe czy własny moduł złożony z LEDów IR i fototranzystora. Ja jednak z powodu chęci maksymalnego uproszczenia całości (oraz "wizualizacji działania czujnika") wykorzystałem zwykłe białe LEDy oraz fotorezystor. Schemat zamieszczam poniżej. Dodam, że pierwotnie robot miał być zasilany przez ogniwo Li-Po z odpowiednim układem (zabezpieczenia + boost do 5V), jednak nie naładowałem żadnego ogniwa a do pokazu było coraz bliżej, więc zasiliłem Arduino z power banka. Mechanika robota jest jeszcze prostsza niż elektronika. Podwozie zostało wydrukowane na drukarce 3D i dostosowane pod Line Followera (wziąłem je z innego projektu). Koła już miałem osadzone na wale przekładni (silniczki, przekładnia jak i koła pochodzą z demontażu mojej starej konstrukcji). Zostały one wycięte z sklejki 5mm przy pomocy otwornicy a następnie nakleiłem na nie trochę gumy dla lepszej przyczepności. Program jest również bardzo prosty. Robot ma za zadanie ciągle skręcać w lewo, jeśli jednak natrafi na linię ma odbić w drugą stronę (W sumie to nie powinien być line follower a line avoider ). int enableChannel1 = 9; int channel1A = 0; int channel1B = 1; int enableChannel2 = 10; int channel2A = 2; int channel2B = 3; int motorPower = 255; int sensor; void setup() { //Serial.begin(9600); //Serial.println("Init"); pinMode(enableChannel1, OUTPUT); pinMode(channel1A, OUTPUT); pinMode(channel1B, OUTPUT); pinMode(enableChannel2, OUTPUT); pinMode(channel2A, OUTPUT); pinMode(channel2B, OUTPUT); } void loop() { sensor = analogRead(A0); //Serial.println(sensor); if(sensor < 200) //Wartość tą należy znaleźć samemu i dopasować ją pod swój fotorezystor i warunki oświetleniowe { forwardRight(); } else { forwardLeft(); } } void forwardRight() { //Right analogWrite(enableChannel2, motorPower); digitalWrite(channel2A, HIGH); digitalWrite(channel2B, LOW); //Left analogWrite(enableChannel1, motorPower); digitalWrite(channel1A, LOW); digitalWrite(channel1B, LOW); } void forwardLeft() { //Right analogWrite(enableChannel2, motorPower); digitalWrite(channel2A, LOW); digitalWrite(channel2B, LOW); //Left analogWrite(enableChannel1, motorPower); digitalWrite(channel1A, HIGH); digitalWrite(channel1B, LOW); } Kwestie do poprawy gdy czas pozwoli Udoskonalić program i dodać możliwość kalibracji czujnika bez modyfikowania programu Dodać zintegrowane zasilanie (akumulator Li-Po z układem zabezpieczającym i boostem do 5V) Jakoś przymocować to Arduino aby tak nie latało luzem Na koniec załączam parę zdjęć konstrukcji. Powiem szczerze był to pierwszy LF jakiego zbudowałem, bo do tej pory jakoś z tym zwlekałem (uznawałem, że mam ciekawsze projekty ). Jednak ten nieskomplikowany projekcik pokazał, że to fajna zabawa i gdy czas pozwoli zbuduję line followera z prawdziwego zdarzenia.
  8. Witam wszystkich. Po paru latach od mojej rejestracji na tym forum, mam w końcu przyjemność przedstawić Wam mojego pierwszego poważnego robota - linefollower'a. Na początek trochę o nim: Projekt został w całości sfinansowany przez moją szkołę, ma służyć jako pokaz na dni otwarte, ale planujemy także wybrać się z nim na parę konkursów. 2 płytki, główna i ta z czujnikami zostały zaprojektowane i wykonane przeze mnie. Ścieżki rysowałem 2 pisakami PCB: Edding 1mm i 0,3mm. Z racji, iż jest to moja pierwsza tego typu konstrukcja, to odpuściłem sobie projektowanie całości układu - nie czułem się na siłach żeby zrobić taką skomplikowaną jak dla mnie płytkę - zdecydowałem, że skorzystam ze wszelakich możliwych gotowych modułów, a tylna płytka będzie tylko łączyła poszczególne moduły. Zdaję sobie sprawę, że zyskałem przez to dużo wagi, a także straciłem aerodynamikę, ale tak jak mówiłem: nie liczę na pierwsze miejsca, ta konstrukcja miała mnie przede wszystkim nauczyć trochę o linefollower'ach, pokazać mi pułapki, które mogą gdzieś być. I spełniła tą funkcję. Ze względu na swój przepiękny wygląd płytek domowej roboty, linefollowera nazwałem RetroBot Budowa: Robot został złożony z następujących części: 2 * Silnik Pololu HP 10:1 2 * Pololu TB9051FTG - jednokanałowy sterownik silników 28V/2,6A 2 * Mocowania do micro silników Pololu 2 * Koło Solarbotics RW2 - mocowanie zewnętrzne Moduł STM32F103C8T6 ARM Cortex-M3 Moduł zasilający 3,3V / 5V z gniazdem DC Moduł Bluetooth 2.1 XM-15B 3,3V/5V 9 * Czujnik transoptor odbiciowy KTIR0711S Do budowy użyłem też laminatu, markerów PCB, lakieru izolacyjnego PVB 16, wytrawiacza, listewki węglowej 1 x 5mm, Taśmy i 2 złącz IDC 14, goldpinów, wtyków JST, rezystorów i reszty drobnicy takiej jak np. śrubki 2mm. Rezystory do czujników KTIR zostały dobrane eksperymentalnie, na wartości 560ohm do diody i 10K do kolektora. Ślizgacze natomiast zrobiłem z 2 spiłowanych kulek BB. Masa robota z pakietem wynosi 152g, a bez pakietu 140g. Efekt końcowy: Program, który miałby podążać za linią nie jest jeszcze gotowy, ale robota przetestowałem na programie, dzięki któremu działał jako auto RC. Najlepsze wrażenia były, gdy koła już oblepiły się kurzem - robot ślizgał się ze 2 sekundy zanim ruszył, a driftowanie nim po szkolnym korytarzu to bajka Już nie wspomnę o zainteresowaniu wszystkich, którzy go zauważyli - to chyba niecodzienny widok w szkole Dobry efekt tworzył się również wtedy, kiedy jedno koło kręciło się do przodu a drugie do tyłu, robot wyglądał wówczas jak jakiś wirujący krąg światełek Nie mam niestety filmu z tych wyczynów, ponieważ mój telefon służył do sterowania robotem przez BT, jednak postaram się je nagrać w najbliższym czasie. Myślałem też, żeby zrobić drugą wersję przedniej płytki: taką, na której byłby tylko jeden ballcaster i krótsza listewka węglowa, wówczas mógłbym szaleć robotem bez obawy, że zepsuję płytkę z czujnikami Podziękowania: Chciałem również serdecznie podziękować kolegom z tego forum, którzy pomogli mi w budowie tego robota, a więc: @marek1707, za pomoc w temacie https://forbot.pl/forum/topic/12264-podlaczenie-czujnikow-ktir0711s-do-line-followera/, a także starszym: https://forbot.pl/forum/topic/11090-jakie-czujniki-do-linefollowera-pomoc-w-wyborze/?page=1 @Treker, za pomoc w temacie https://forbot.pl/forum/topic/12239-kola-do-line-followera/, a także: https://forbot.pl/forum/topic/12264-podlaczenie-czujnikow-ktir0711s-do-line-followera/ @Nawyk, za pomoc w temacie https://forbot.pl/forum/topic/12264-podlaczenie-czujnikow-ktir0711s-do-line-followera/ Galeria: Czyli to, na co pewnie każdy czekał Pierwsze kilka zdjęć to te z budowy przedniej płytki, potem już niestety nie pamiętałem i zrobiłem zdjęcia tylko ostatecznego wyniku PS: Koniecznie dajcie znać w komentarzach, co myślicie o tej konstrukcji i co można by poprawić w kolejnej wersji
  9. Witam! Mając więcej wolnego czasu, postanowiłem opisać swojego robota – linefollowera Orzeł. Pomysł zrodził się w sierpniu, w październiku skończyłem konstrukcję mechaniczną, później trwała zabawa z kodem, strojenie, dostosowywanie wag czujników itd. Robot miał wystartować na zawodach Cyberbot w Poznaniu w maju br., które jednak się nie odbyły . Mechanika Podstawę robota stanowią dwie dwustronne płytki PCB o grubości 1,5mm – główna i z czujnikami. Są połączone za pomocą listewki węglowej o szerokości 4mm – trochę za mało, ponieważ elementy zostały połączone śrubkami M2. Masa robota wynosi około 90g bez akumulatorka, najwięcej ważą silniki (znane Pololu 10:1 HP z przedłużonym wałem). Z akumulatorem mój linefollower ma masę około 105g, z czego jestem zadowolony. Wymiary: 170mm szerokości, 215mm długości, 29mm wysokości (bez akumulatora). Elektronika Sercem robota jest microkontroler Atmega328P. Sterownik silników to moduł TB6612. Jako czujników użyłem popularnych KTIR0711S w liczbie dziewięciu. Cześć z nich jest podłączona bezpośrednio do Atmegi, część jest podłączona do komparatora LM339L. Płytki PCB robiłem samodzielnie (projektowane w Eagle, wykonane metodą termotransferu), jestem z nich zadowolony, w niektórych miejscach grubość ścieżek wynosi 0,4mm. Zasilanie Do zasilania konstrukcji używam pakietów Li-pol Dualsky 7,4V o pojemności 220mAh i 250mAh. Elektronika zasilana jest przez stabilizator, napięcie na silniki idzie bezpośrednio z akumulatora. Program Program został napisany w środowisku Arduino IDE. Nie jest on skomplikowany, regulator P z dodatkami (których nie chciałbym zdradzać ). Osiągnięcia Robot osiąga prędkość ponad 1m/s, ale zachowuje się wówczas bardzo nerwowo. Na pierwszym filmie jego prędkość wynosi około 0,7m/s, na drugim – około 0,9m/s. Podsumowanie Ogólnie jestem zadowolony z prac. Nabrałem trochę doświadczenia z tego typu konstrukcjami, poćwiczyłem robienie płytek dwustronnych i lutowanie w SMD. Wnioski: - silniki powinny być także zasilane przez stabilizatory; - listewka węglowa musi być szersza; - ciągłe podłączanie robota do komputera i zmiany w kodzie są uciążliwe, w następnej konstrukcji zmiany prędkości, wag czujników itp. będą dokonywane poprzez moduł bluetooth; Zachęcam do komentowania i zadawania pytań . Schematu i kodu nie umieszczam. Pozdrawiam, karol2003
  10. Przedstawiam mojego najnowszego robota klasy LineFollower Standard "Fuzzy". Z opisywaną konstrukcją pojawiam się na większości zawodów jakie organizowane są w ostatnim czasie. W porównaniu do moich poprzednich robotów Fuzzy nie został wyposażony w napęd tunelowy. Powodem tej decyzji była chęć testowania nowych algorytmów. Efekty mojej pracy łatwiej zauważyć na robocie bez docisku, ponieważ jest on trudniejszy to wysterowania przy większych prędkościach. Konstrukcja mechaniczna Robot standardowo wyposażony został w dwa silniki Pololu 10:1 HP z obustronnym wałem, na którym zamocowane zostały magnesy od enkoderów. Podwozie stanowi płytka PCB wykonana w Satlandzie. Czujniki wysunięte zostały do przodu na węglowej listewce. Koła wytoczone zostały na zamówienie. Całość, zależnie od dobranego akumulatora waży 70-100g. Elektronika Prezentowana konstrukcja to czwarty prototyp robota. Głównymi elementami części elektronicznej są: mikrokontroler STMF103RBT6, enkodery AS5040 oraz mostek TB6612. Konstrukcja może obsługiwać do 16 czujników KTIR. Po przeprowadzonych testach pozostałem jednak przy 8 transoptorach. Pozostałe połączenia z czujnikami pozwalają na wizualizację ich stanów poprzez diody LED. Schemat prototypu Prototyp W poprzedniej konstrukcji do komunikacji z otoczeniem wykorzystywałem złącza typu Goldpin o rastrze 0.5mm. Częste podpinanie i odpinanie dodatkowego osprzętu sprawiło, że złącza te szybko uległy uszkodzeniu wprowadzałem spore problemów. Dlatego w nowej wersji zastosowałem złącza firmy HARTING Flexicon, które rozwiązały mój problem. Szczerze mogę je polecić, nie miałem żadnych problemów od kiedy je stosuję. Ostateczna wersja elektroniki ze złączami HARTING Flexicon Oprogramowanie Program napisany został w języku C z wykorzystaniem biblioteki dostarczanej przed producenta STMów. Kod w głównej mierze składa się z dwóch części. Pierwsza odpowiedzialna jest za komunikację z otoczeniem, druga za podążanie za linią. Kontroler robota Robot może komunikować się z komputerem lub specjalnym kontrolerem za pomocą interfejsu USART. Możliwa jest również komunikacja przez moduły Bleutooth. Całość obsługiwana jest przez własny, prosty protokół do komunikacji. Algorytm pakuje wszystkie dane w ramki oraz oblicza sumę kontrolną. Rozwiązanie takie pozwoliło na bezbłędne przesyłanie wymaganych danych. Prototyp z modułem BlueTooth Podążanie za linią wykonane zostało w oparciu o 3 regulatory: PD - podążanie za linią, sprzężenie zwrotne od czujników 2x PID - sterowanie faktyczną prędkością silników, sprzężenie zwrotne od enkoderów magnetycznych Efekty Szczególną wagę przykładałem do precyzji przejazdu, która moim zdaniem jest zadowalająca - szczególnie na kątach prostych. Robot wygrał wszystkie zawody w kategorii LineFollower Standard w jakich brał udział. Zdarzyło mu się przegonić również niejednego robota z turbiną. W optymalnych, domowych warunkach średnia prędkość robota, to ponad 2m/s. Poniżej filmik z zawodów RoboMotion z prędkością około 1,4 m/s - nie był to najszybszy przejazd. Ostateczny wygląd robota W chwili obecnej konstrukcja różni się od powyższej jedynie kolorem opon i długością listewki od czujników. Później postaram dodać więcej zdjęć - szczególnie jeśli będzie z Waszej strony zainteresowanie czymś konkretnym. Podziękowania W tym momencie chciałbym podziękować firmom HARTING oraz TME, które wspierały pracy przy tym projekcie. Zachęcam do zadawania pytań, odpowiem praktycznie na każde
  11. Witam, niedawno zacząłem interesować się robotyką i nagle zaszła potrzeba poprawy ocen w szkole Robotem tym zaliczyłem na 6 z techniki, oraz na 4 z fizyki (niestety musiałem go oddać Pani od fizyki). Zrobiłem go według Przepisu na robota. Napęd to dwa przerobione serwa eco-16, podwozie z plecówki, dwa tylne kółka modelarskie i przednie obrotowe z obi, z przodu czarny zderzak z listewki. Poniżej zdjęcia i filmik. Jeździ wolno bo służy do celów pokazowych Wszystkim którzy mi pomogli przy jego budowie Serdecznie Dziękuję!
  12. Witam! Na wstępie chciałbym podziękować użytkownikowi Hudyvolt, który zaraził mnie zamiłowaniem do robotyki oraz "za rękę" przeprowadził przez budowę pierwszej konstrukcji - Dziękuję! Chciałbym Wam przedstawić Pikę - mojego trzeciego i zarazem najmłodszego robota kategorii LF standard. Jest to udoskonalona wersja mojego poprzedniego flagowca - Dzidy, z którą udało mi się odnieść pierwsze zwycięstwo na zawodach. Konstrukcja mechaniczna Na budowę robota składają się standardowo 2 płytki PCB (homemade) - płyta główna stanowiąca jednocześnie podwozie robota oraz listewka z czujnikami. Spójność robota zapewnia pojedyncza listewka z włókna węglowego. Aluminiowe felgi zostały wykonane przeze mnie w technologii WEDM, opony natomiast zostały odlane z poliuretanu 30'. Jako ślizgacz zapobiegający unoszeniu się przodu robota podczas nagłych przyspieszeń zastosowałem kondensator ceramiczny - znakomita odporność na ścieranie! Z kolei przód opiera się na 2 spiłowanych koralikach, które znalazłem gdzieś w domu. Napęd 2x Silnik Pololu HP 10:1 - spisują się rewelacyjnie. Elektronika Za realizację programu odpowiada uC ATmega128, do której za pośrednictwem komparatorów analogowych podłączonych jest 14 czujników KTIR. Stan każdego z czujników wyświetlany jest na dedykowanej do tego diodzie LED. Pozwala mi to na błyskawiczną diagnozę poprawności odczytów - kilka razy uratowało mnie to przed żmudnym poszukiwaniem przyczyny dziwnego zachowania robota. Zdarzało się, że czujniki ulegały delikatnemu uszkodzeniu, mianowicie podawały fałszywy stan jedynie w przypadku delikatnego uderzenia co powodowało zamruganie diody wskazującej na wadliwy czujnik. Sterowanie silnikami odbywa się przy pomocy pojedynczego, dwukanałowego mostka H - Toshiba TB6612FNG. Na pokładzie znajduje się również moduł Bluetooh HC-05, który komunikuje się z uC poprzez interfejs UART. Do wysyłania i odbierania danych używam prostego a zarazem sprytnego terminala na androida - "Bluetooth spp pro". Zasilanie Energię, zależnie od charakteru trasy, dostarczają pakiety Li-Pol 7.4V firmy Dualsky o pojemnościach: 220mAh, 300mAh oraz 550mAh. Najczęściej stosuję akumulator o pojemności 300mAh - mam wrażenie, że robot jeździ na nim nieco szybciej, taki złoty środek pomiędzy masą a wydajnością. Stan naładowania pakietu jest ciągle wyświetlany na 3 diodach LED. Lekkiej modyfikacji poddałem również gniazdo zasilania w robocie - wiszące na oryginalnych przewodach często powodowało mi zwarcia przy samej PCB - przewody od ciągłych zmian pakietów ulegały przełamaniu. Wykorzystałem fabryczne gniazdo, które po delikatnym przycięciu wkleiłem na 2 delikatnie odchudzone goldpiny. Z tym rozwiązaniem nie miałem jeszcze żadnych problemów. Do zasilania części cyfrowej Piki zastosowałem tradycyjny stabilizator 5V, który przy tej ilości diod wyraźnie się grzeje, lecz jeszcze w granicach rozsądku Program Algorytm napisany został w języku C. Opiera się na regulatorze PD z kilkoma pomniejszymi modyfikacjami. Nowa regulacja obliczana jest z interwałami ok. 8ms. Do wprowadzania nastaw, jak już wcześniej wspominałem służy moduł Bluetooth - szalenie wygodne rozwiązanie. Osiągnięcia -I miejsce na zawodach CYBERBOT 2015 w kategorii LineFollower Standard -I miejsce na zawodach ROBO~motion 2015 w kategorii LineFollower Standard (Vmax= 2.70m/s, Vśr = 1.90 m/s) -I miejsce na zawodach Copernicus Robots Tournament 2015 w kategorii Linefollower -I miejsce na zawodach "Opolski Festiwal Robotów" w kategorii Balluf LineFollower -I miejsce na zawodach "Trójmiejski Turniej Robotów 2015" w kategorii Linefollower Standard -IV miejsce w turnieju ROBOXY 2015 w kategorii LineFollower
  13. Robota chciałem opisać już od dłuższego czasu, jednak dopiero moje osiągnięcia na Robocompie 2014, pierwszych zawodach na jakich z nim byłem zmobilizowały mnie do stworzenia opisu. Osiągnięcia 1. Linefollower Light Robocomp 2014 3. Linefollower Standard Robocomp 2014 2. Robotic Tournament 2015 Konstrukcja mechaniczna Podwozie stanowi kawałek cienkiego laminatu, do którego przykręcone są silniki Pololu 30:1 wraz z enkoderami. Felgi od Solarbotics + odlane opony. Listwa czujników to Pololu QTR-8RC wysunięta na węglowej listewce. Elektronika Za zasilanie odpowiada pakiet Dualsky 7.4V, 150mAh. Jest on w zupełności wystarczający do robota bez turbiny. Sterownik silników to standardowo TB6612. Całość obsługiwana jest przez Arduino mini, czyli ATmega 328p. Do obniżenia napięć do wymaganych 5V służy stabilizator 7805. Napięcie silników nie jest w żaden sposób stabilizowane, więc obniża się wraz z rozładowywaniem pakietu. Dlatego trzeba go często doładowywać, żeby nastawy się nie rozjeżdżały. Oprogramowanie Program napisany w Arduino z użyciem biblioteki IRremote i QTR. Przed przejazdem odbywa się kalibracja czujników. Pilot służy tylko do załączania i wyłączania mostka. Podążanie za linią oparte jest na regulatorze PD. Zastosowanie takich, a nie innych podzespołów spowodowane było chęcią zrobienia w miarę lekkiego robota, z małą bezwładnością. Aktualnie jego waga to 97g. Filmik z jazd testowych
  14. Witajcie! Bolt to robot klasy Linefollower Standard. Został zaprojektowany, zbudowany oraz zaprogramowany przez kolegę Hubert.M oraz mnie. Jest on naszą najnowszą konstrukcją. Konstrukcja mechaniczna. Robot składa się z 2 płytek PCB, wykonanych przez firmę SATLAND Prototype. Płytki połączone są dwiema węglowymi listewkami, a z tyłu robota znajduje się aluminiowa podpórka zabezpieczająca przed przewróceniem się robota. Podpórkami listwy czujników są tranzystory w obudowie TO92. Silniki użyte w robocie to popularne Pololu HP 10:1. Koła wykonał dla nas hungrydevil. Masa robota z baterią wynosi 69 gramów. Elektronika. Zdecydowaliśmy się na mikrokontroler STM32F103C8T6. Silniki sterowane są układem TB6612. Zastosowane czujniki linii to KTIR0711. Czujników na chwilę obecną jest 9. Zastosowaliśmy moduł bluetooth HC-05. Zastosowanie modułu znacznie ułatwiło strojenie robota. Ponadto stan każdego czujnika jest odzwierciedlony diodą LED. Robot zasilany jest pakietem Li-pol o pojemności 150mAh. Część logiczna robota zasilana jest napięciem 3.3V. Program. Algorytm robota jest napisany w języku C. Zastosowano regulator PD. Dzięki modułowi BT wszystkie nastawy regulatora mogą być ustawiane bez ponownego programowania robota. Ponadto, program pozwala na np. zdalne sterowanie robota po połączeniu z komputerem. Do zażądania robotem napisaliśmy 2 aplikacje – na telefony z systemem android, aplikacja pozwala na wystartowanie robota, a także na jego zatrzymanie. Z Kolei aplikacja na PC oprócz podstawowej funkcjonalności pozwala na dobieranie nastaw robota. Ponadto można za jej pomocą rysować wykresy uchybu i pochodnej z uchybu. Bolt ma brata bliźniaka, o nazwie Bez Nazwy. Jest on nieco szybszy od Bolta (bo czerwony). Osiągnięcia i plany na przyszłość. - 2 miejsce na Konkursie robotów SEP Gdańsk 2015 - 4 miejsce na SUMO Challenge 2015 W robocie planujemy jeszcze bardziej poprawić jakość sterowania, oraz rozważamy wykonanie węższej listwy czujników z czujnikiem odległości, aby móc startować w kategorii LF Enhanced. Film z przejazdu:
  15. Nie mogłem się zdecydować do jakiej kategorii go zaklasyfikować, czy to jest "line follower"? Z tekstu powinno wyniknąć. Opis projektu Zakres pracy: Projekt, wykonanie i instalacja systemu sterującego robotem dystrybuującym paszę dla zwierząt (krowy w oborze). Zadania robota: Robot porusza się po zadanych torach, wytyczonych przez linie indukcyjne. Z punktów dystrybucyjnych robot pobiera paszę w zadanych proporcjach a następnie rozkłada ją (rozsypuje) w punktach karmienia zwierząt. Punkty te noszą nazwę grup. Grupy gromadzą krowy o podobnych wymogach żywieniowych. Grupy mogą mieć postać odcinków obejmujących wiele krów lub mogą być zredukowane do punktów, w których znajduje się jedna krowa. Przed rozłożeniem świeżej paszy, robot szczotkami usuwa pozostałości starej karmy. Sterownik umożliwia zaprogramowanie o jakiej porze, jaka pasza i do których grup zostanie dostarczona. Cechy części mechanicznej: Jednorazowo można załadować do 1000kg paszy. Robot został zaprojektowany do pracy ciągłej 24/7. Moc silnika napędu: 20KM. Robocza prędkość jazdy: 0.3m/s Dokładność pozycjonowania +/-1cm na odcinku 200m. Masa urządzenia: ok.1000kg Konstrukcja mechaniczna robota: Robot jest wyposażony w silnik spalinowy napędzający alternator i pompę hydrauliczną. Start ilnika zapewnia akumulator i rozrusznik elektryczny. Pompa hydrauliczna wytwarza cisnienie robocze dla elementów wykonawczych (silniki i siłowniki). Elementy wykonawcze są uruchamiane przy pomocy bloku zaworów sterowanych elektrycznie. Część zaworów w bloku sterowana jest proporcjonalnie a część dwustanowo. Konstrukcja sterownika: Należy mówić raczej o całym systemie obejmującym część mobilną zainstalowaną na robocie oraz infrastrukturę w której robot się porusza. Cześć mobilna składa się z dotykowego panelu sterowania i diagnostyki, szafki sterowniczej z wbudowaną jednostką centralną, joysticka, anten naprowadzających, czujników (temperatura, ciśnienie, indukcyjne), wyłączników krańcowych , wyłączników bezpieczeństwa. Część stacjonarna to: generator sygnału indukcyjnego, sieć odbiorników radiowych umożliwiających odbiór poleceń z robota oraz sieć ścieżek indukcyjnych. Procesory: Atmega128, Atmega32 Wejścia analogowe: 10 Wejscia cyfrowe: 10 Wyjscia analogowe PWM: 4 Wyjscia cyfrowe: 9 Serial Port przez Bluetooth: 2 Zadania systemu sterowania: 1. Praca robota w trybie automatycznym, półautomatycznym i ręcznym. 2. Wyswietlanie stanu robota. 3. Definiowanie paszy, punktów dystrybucji, grup, linii, czasów karmienia. 4. Dystrybucja paszy według składu oraz ilości i czasu zadanego przez użytkownika – pobranie z punktu/punktów dystrybucyjnych i wysypanie w zadanym punkcie lub odcinku grupy. 5. Komunikacja radiowa z urządzeniami stacjonarnymi. 6. Sterowanie urządzeń na hali – mixer (otwarcie,zamknięcie) , bramy (otwarcie, zamknięcie), generator sygnału dla linii indukcyjnej (wybór drogi jazdy) 7. Pomiar ilości paszy w zbiorniku z analizą zakłóceń odczytu oraz adaptywnym ich filtrowaniem. 8. Planowanie sposobu optymalnego i równego rozkładania paszy. 9. Ruszanie, zatrzymanie, zmiana kierunku jazdy: do przodu/do tyłu i utrzymanie zadanej prędkości jazdy (PID). 10. Utrzymanie zadanej trasy jazdy (PID). 11. Włączanie / wyłączanie wyładunku paszy i szczotkowania (czyszczenia) według programu użytkownika. 12. Unikanie kolizji z obiektami na hali (przedmioty, zwierzeta i ludzie). 13. Dodatkowe, rozwojowe, które w tym projekcie nie miały zastosowania: 1. Sterowanie wieloma robotami w tym samym czasie 2. Wyznaczanie tymczasowych punktów lub odcinków wyładowania bez konieczności zmian w programie użytkownika przy pomocy fizycznych znaczników początku i końca (RFID, lub optyczne) 3. Prawidłowe prowadzenie kierunku ruchu robota przez skrzyżowania dwóch lub więcej linii indukcyjnych Ciekawsze aspekty projektu (niektórzy nazywają to wyzwaniami - to tygrysy lubią najbardziej): Cały system jest moim pomysłem i moją konstrukcją. Jest układ modułowy, dwuprocesorowy z wymianą danych po szynie I2C. W pracy wykorzystałem płytki developerskie dla układów z montażem SMT aby uniknąć dość niewdzięcznych czynności związanych z lutowaniem i uruchamianiem miniaturowych obwodów. Skupiłem się na głównych zadaniach prowadzących do powstania konstrukcji działającej i spełniającej oczekiwania uzytkownika. W trakcie projektu sterowania okazało się, że konstrukcja robota nigdy nie była projektowana jako urządzenie automatyczne. Jest to wózek z napędem hydraulicznym do pracy pod nadzorem operatora. W późniejszym czasie elektronika sterująca została dodana. Ten pierwotny system sterowania został źle zaprojektowany i był bardzo awaryjny. Ostatecznie nastąpiło jego nieodwracalne elektryczne uszkodzenie. Naprawa okazała się nieopłacalna. W tym momencie zaczął się mój projekt. Trudnym do spełnienia warunkiem było załozenie braku modyfikacji istniejącej konstrukcji mechanicznej. Efektem jest: niewystarczająca ilość czujników (szczególnie trudno jest sterować i stabilizować prędkość jazdy a jest to konieczność ponieważ obciążenie robota się zmienia a trasa nie jest pozioma – pierwszy odczyt prędkości pojawia się po ok.2s. od załączenia silnika, a gdzie czas na utrzymanie stałej prędkości? A co jeśli po tych 2s. odczytu nie będzie , bo właśnie zwierzęta urwały kabel od czujnika?) , awaryjny, bardzo niedokładny system wyładunku (a wymagania do dokładności wyładunku to +/- 2kg), niedokładnie, nierówno położona linia indukcyjna wyznaczająca trasy, obecność dużych przedmiotów stalowych zniekształcających sygnał linii indukcyjnej. W trakcie prac usunąłem uszkodzenia oraz wykonałem regulację w samym pojeździe, takie jak: system paliwowy silnika, centralka zapłonowa, odpowietrzenie instalacji hydraulicznej i wymiana oleju, wymiana uszkodzonego zaworu, zmiana położenia anten. Robot pracuje w dynamicznie zmieniającym się środowisku. Powietrze jest mocno zapylone i wilgotne. Wszystkie powyższe trudności przezwyciężyłem! Dało to ogromną satysfakcję i nowe doświadczenia. Dodatkowo zadowolenie uzytkownika oraz utrzymanie konstrukcji mechanicznej w pierwotnym stanie bez dodatkowego wkładu finansowego na modernizację. Pracę podzieliłem mniej więcej tak: 1. Poznanie własności mechanicznych konstrukcji: a) Sterowanie silnikiem spalinowym b) Własności i specyfika pracy hydrauliki: starzenie instalacji, wycieki, niedobór oleju, praca w szerokim zakresie temperatur, niewystarcząca wydajność pompy hydraulicznej, niepodziewane skoki ciśnienia c) Powstawanie luzów mechanicznych i ich wpływ na sterowność. d) Własności napędu i ich zmiana wraz ze zmianą parametrów oleju hydraulicznego. e) Własności systemu skrętów i ich zmiana wraz ze zmianą parametrów oleju hydraulicznego. f) Dynamika jazdy robota. g) Waga elektroniczna: zachowanie w czasie postoju, ładowania, rozładowania, dryft czasowy i temperaturowy, h) System wyładunku: zależność pracy od rodzaju paszy, zakres przypadkowości działania, wpływ wilgotności i temperatury na szybkość wyładunku. i) Awaryjna konstrukcja czujnika wykrywającego znacznik początku trasy i możliwości kompensacji błędów w oprogramowaniu. j) Niedokładności czujnika pozycji linii i mozliwość ich kompensacji w oprogramowaniu. 2. Zapoznanie z rozchodzeniem fal radiowych w środowisku pracy i dobranie odpowiedniego rozwiązania zapewniającego pewne , odporne na zakłócenia i zaniki połaczenia radiowego sterowanie. 3. Zaprojektowanie i wykonanie prototypowej wersji elektroniki mobilnej, generatora i odbiorników. 4. Zaprogramowanie podstawowych funkcji sterowania („klocków”): jazda, skręty, odczyt czujników, analiza wagi, sterowanie prostymi funkcjami przez serial port i panel dotykowy itp. 5. Budowa symulatora obiektu. Większość prac programistycznych można wykonać „na biurku” zamiast w terenie. W terenie następuje w większości jedynie weryfikacja założeń i składanie oprogramowania z gotowych „klocków”. Jest to o tyle istotne, że robot jest w ruchu oraz należy analizować wiele parametrów w tym samym momencie. 6. Stacja monitorowania w czasie jazdy – połączenie przez bluetooth. Symulacja obiektu przy pomocy zewnętrznego układu nie odpowie na ważne pytanie: jak zachowuje się pasza , często niejednorodna , o różnej gęstości i wilgotności, w trakcie załączania i wyłączania elementów mechanizmu wyładunku. Wszystkie obserwowane parametry można zapisywać do późniejszej analizy. 7. Zapewnienie bezpieczeństwa developera. Zbudowałem bezprzewodowy, radiowy system zatrzymywania robota w razie niespodziewanych reakcji programu (np. ustawienie maksymalnej prędkości jazdy, niekontrolowany zjazd z trasy), które mogłyby spowodować „ucieczkę” maszyny lub zniszczenia w okolicznych obiektach. To urządzenie jest niezależne od głównego systemu procesorowego i reaguje na zanik transmisji z „pilotem”. Transmisja jest dwukierunkowa. Najdłuższy czas reakcji to 5ms. Można korzystać z dwóch trybów „stopu”: chwilowego i trwałego. Przerywane są kluczowe obwody robota powodujące wyłączenie silnika, spadek ciśnienia roboczego, zamknięcie zaworów itp. 8. Praca nad softwarem. To etap zajmujący najwięcej czasu: poprawki i rozbudowa oprogramowania, który w zasadzie nadal trwa. Użytkownik po początkowym zachłyśnięciu się możliwościami robota, przywykł już do dużej oszczędności czasu w pracy i teraz proponuje kolejne dodatkowe funkcje. 9. Dla usprawnienia poszukiwania błędów programowych w stacjonarnej części radiowej systemu, zaprojektowałem i wykonałem urządzenie monitorujące jednocześnie transmisje kablową RS485 oraz radiową w paśmie 433MHz z możliwością zapisywania wyników do późniejszej analizy. 10. Zapewnienie bezpieczeństwa uzytkownika. Osiągnąłem 100% poziom bezpieczeństwa sterownika w trakcie 12 miesięcznej ciągłej pracy urządzenia, tzn. system zawsze poradził sobie z sytuacją awaryjną. System prawidłowo reaguje na: „zawieszenie” sterownika (rzadkie zupełne wyłączenie-najczęściej prawidłowa kontynuacja po samoresecie procesorów), brak sygnału linii indukcyjnej, blokowanie (zakleszczanie) zaworów hydraulicznych, stop awaryjny z przycisków operatora, przetarcie lub zerwanie kabli, sygnał ze zderzaków mechanicznych. Dotyczy to zdarzeń symulowanych i rzeczywistych. Oczywiście ten bardzo optymistyczny wynik nie przesądza o instalacji niezależnego, fabrycznego systemu bezpieczeństwa. Ale to już kolejny projekt.
  16. Witam serdecznie, jestem stałym czytelnikiem Forbota i zdecydowałem się opisać swoją konkstrukcję - linefollower'a "Maniek 2". Jest to mój drugi robot tego typu - "Maniek 1" umiał jeździć tylko po elipsie i w dodatku bardzo wolno, związku z czym został rozebrany i wykorzystany do tej właśnie konstrukcji. Robota drukowałem przez kilka tygodni, część nośną zaprojektowałem w programie SketchUp i wydrukowałem. Nie jest to może najszybsza konstrukcja, ale jestem z niej bardzo zadowolony, gdyż dużo się przy nim nauczyłem, spełniając główne założenie, jakim była estetyka - chciałem użyć jak najmniej hot-glue. Konstrukcja nośna: Robot składa się z dwóch elementów, które zaprojektowałem w Google SketchUp, a następnie wydrukowałem, połączonych prętem gwintowanym M5. Zapewnił on wprawdzie sztywność, ale znacząco przesunął środek ciężkości do przodu. Kółko podporowe to zwykłe kółko kupione w Leroy Merlin. Elektronika: W robocie znajdują się dwie płytki uniwersalne, jedna z czujnikami, druga główna. Mikrokontroler to Arduino Pro Mini Atmega328 5V @ 16 MHz. Zdecydowałem się na gotowy moduł zamiast mikrokontlorera w obudowie DIP ze względu na oszczędność miejsca, wyprowadzone piny programowania oraz niezbędne elementy bierne. Na płytce znalazło się również miejsce na 2 przyciski (plus 1 do resetu podczas programowania) oraz wyświetlacz. Program został napisany w C++ w Arduino IDE i opiera się na instrukcja warunkowych, ale może kiedyś spróbuję swoich sił w regulatorze PD. Ponadto umieściłem tam woltomierz, który mówi mi o stanie naładowania akumulatora. Silniki: Są to podróbki silników Dagu o przełożeniu 1:48 w cenie 12 PLN za jeden silnik z kołem. Rolę mostka H pełni L298N. Zasilanie: Jako zasilania użyłem akumulatora Ni-Cd 9,6V 600mAh - akurat taki miałem pod ręką. Ma jedną zasadniczą wadę - żeby nie wystąpił efekt pamięci, muszę naładować go do pełna, a następnie całkowicie rozładować. Stabilizatorem jest moduł oparty na L7805. Czujniki: Zastosowałem 5x TCRT5000 - głównie ze względu na dostępność i cenę. Jedyne, co musiałem do nich dodać do dodatkowe osłonki, żeby wzajemnie się nie oświetlały. Płytkę z mikrokontlorerem łączy 7-żyłowa taśma. Wymiary: Robot nie mieści się na kartce A4 - jego wymiary to 20 cm x 30 cm x 10 cm. Całość jest stosunkowo ciężka i waży około 400 g. Zdjęcia: Filmy: Jeżeli teraz miałbym budować LF-a, to zdecydowanie wybrałbym sterownik silnika o mniejszych rozmiarach, listewkę węglową i czujniki KITR oraz regulator PD. Chciałbym także nauczyć się trawić płytki PCB (B327 jest już w drodze ). PS Schematu nie umieszczę, bo nie mam - elementy rozmieszczałem "na bieżąco"
  17. Chciałbym przywitać wszystkich w moim pierwszym poście, a jednocześnie przedstawić swojego pierwszego robota. Geneza powstania robota: Jest bardzo prosta. Trzeba było wybrać/ wymyśleć temat pracy inżynierskiej. Co prawda mój kierunek nie jest związany bezpośrednio z robotyką czy informatyką, to zafascynowany nabytym nie dużo wcześniej Arduino wpadłem na pomysł że jej elementem mógłby być robot. A że jest on jest jednak związany bezpośrednio z inżynierią produkcji zatem postanowiłem że to będzie model robota AGV, czyli mówiąc w dużym skrócie przemysłowy wujek wszystkich line followerów. W praktyce różni się tym że zatrzymuje się na stacjach załadunkowych (tutaj poprzeczna linia), nie wjeżdża w znajdujące się przed nim przeszkody i nie jest tutaj celem nadrzędnym prędkość z jaką porusza się on po trasie. Starałem się, oprócz Arduino nie korzystać z gotowych płytek. Wykorzystałem: -wykonane na zamówienie podwozie z pleksi - Arduino UNO - sterownik silników zbudowany w oparciu o dwa mostki L293D i ekspander MCP23017- dzięki temu możliwe jest podłączenie za pomocą 2 przewodów (SDA i SCL) zarówno wszystkich portów mostków jak i wyjść komparatorów z listwy czujników linii. Poza tym takie rozwiązanie nie eleminowało użycia Arduino UNO - listwę czujników zbudowaną z komparatorów (lm393), diod IR i fototranzystorów (teraz już wiem że używanie diod i fototranzystorów było przesadą, one są przede wszystkim za duże w porównaniu z gotowymi czujnikami) - czujnik ultradźwiękowy HCR SR-04 - Serwo które obraca czujnik (SG-90) - osobny moduł ze stabilizatorem AMS1117 dla serwa - 4 chińskie silniczki DC z kołami - ogniwa li- ion Samsunga 18650 o pojemności 2600mAh Płytka sterująca silnikami - robotem można też sterować ręcznie, w tym celu wykorzystano tani i popularny moduł 433 mhz oraz Arduino Pro mini w pilocie (tutaj Arduino może i mozna by było sobie darować ale jest ono w temacie pracy więc już niech całość będzie "Arduinowa") Program nie jest niczym odkrywczym, napisany głównie na ifach, wykorzystałem też dostępne na githubie biblioteki do obsługi mcp23017, jak i samej szyny I2C. Najpierw robot sprawdza czy nie znajduje się na stacji załadunkowej, jeśli tak to czeka 5 sekund (na załadunek). Następnie jedzie dalej. Gdy zbliża się przeszkoda zwalnia, a gdy jest na prawdę blisko (40cm) zatrzymuje Tutaj filmik z przejazdu robota: Na tym podłożu trochę się ślizga. Niestety też zabrakło już czasu na prace nad kodem. Zdecydowanie przydałby mi się bardziej zaawansowany algorytm, ponieważ jak widac ruch tego robota nie jest zbyt płynny. Oczywiście prawdziwy AGV ma możliwość podczepienia wózka z przenoszonym obiektem lub załadowanie go na "plecy" robota, jednak w związku z tym że jest to wyłącznie model darowałem sobie umożliwiające to elementy. Pozdrawiam
  18. Cześć tu drużyna "Robotyka KSP" . Zrobiliśmy mały upgrade naszego poprzedniego LF'a (Cristal T1000 ) nowa nazwa to Chomik T1000 Pomysł na przerobienie starego lf przyszedł nam około 2 tygodnie przed zawodami Robotic Arena więc była to walka z czasem. Lf'a udało stworzyć się na dzień przed zawodami z powodu problemów z płytką ktir. Właściwie problemy rozwiązaliśmy dopiero na zawodach. Silniki: Popularne 2x Silnik Pololu HP 10:1 Koła: Felgi wycięte z walka poylamidowego o średnicy 20mm. Wraz z oponami 30mm Opony: Odlane z sylikonu formierskiego o twardości 20sh Mocowania: Dystans do płytki czujników oraz mocowania silników zostały wydrukowane na drukarce 3D Elektronika Za zasilanie odpowiada pakiet li-po 220mAh Sterownik silników to L298N - w obudowie MULTIWATT15. Procesor atmega8 z kwarcem 16mhz. Do obniżenia napięć i stabilizacji napięcia służy 7805. Silniki zasilane bezpośrednio z li-po 6 czujników KTIR0711s podłączonych do adc. Waga: 120gram wraz z Li-Po 220mAh Oprogramowanie Program napisany w c++. Nie sprawdzany przed zawodami z powodu problemów z KTIR. Sprawdzony został dopiero na Robotic Arena pod koniec eliminacji przez co nie mieliśmy czasu na jego poprawę do wyższych prędkości. Płytki: Płytka główna została z naszego poprzedniego robota Cristal T1000. Płytkę z czujnikami zrobiliśmy nową. Płytki wykonane termo transferem. Projektując płytkę czujników pomyliliśmy dwa wyjścia KTIR w specyfikacji było inaczej niż w bibliotece Eagle. Przez co robiliśmy płytkę dwa razy. Dwa przejazdy na Robotic Arena 2015 (Nie najszybsze) : Zapraszamy na Fan page ! https://www.facebook.com/robotykaksp/ __________ Komentarz dodany przez: Treker Proszę dostosować wpis do regulaminu: Pierwsze 500 znaków opisu, powinno zawierać zwięzły opis robota oraz nie może zawierać żadnych zdjęć.
  19. The way I see it, if you're gonna build a line follower, why not do it with some style? W ten oto wyjątkowy dzień OCT 21 2015, chciałbym zaprezentować swoją najnowszą konstrukcję, na początek jednak please excuse the crudity of this model. I didn't have time to build it to scale or paint it - a tak na poważnie brak czasu i masa obowiązków a zostało trochę rzeczy do dopieszczenia m.in wydruki 3d. Tak więc dokumentacja, porządne zdjęcia, i filmy pokazujące pełne możliwości tej konstrukcji zostaną opublikowane w późniejszym terminie - a robot na bank pojawi się na Robotic Arenie we Wrocławiu (możliwe że gdzieś wcześniej). ELEKTRONIKA Projekt składa się z czterech płytek PCB zaprojektowanych w CadSoft EAGLE. Płyta główna - grubość 1mm, pokrycie HASL bezołowiowy (plated gold), grubość miedzi 35um. Sercem robota jest 32 bitowy PIC32MX270F512H, do jego dyspozycji jest również osobny 1mb pamięci NVSRAM z podtrzymaniem bateryjnym Microchip 23LCV1024 (np. zapamiętanie trasy w trakcie zmiany głównej baterii). Napięcie 5.9V zapewnia przetwornica ST1S10PHR, natomiast za 3.3V odpowiada Microchip MCP1826S. Do sterowania silnikami - Toshiba 6612FNG. Na płytce znajdują się również trzy rejestry przesuwne NXP 74HC595 do sterowania efektami świetlnymi. 3 przyciski w tym dwa maleństwa do obsługi tablicy. Możliwość odbioru IR przez Vishay TSOP34836. P-MOSFET IRLML6401 do ochrony wejścia przed odwrotną polaryzacją. Większość drobnicy w obudowach 0603 Płytka czujników - grubość 0.8mm, pokrycie HASL bezołowiowy (plated gold), grubość miedzi 35um. KTIR0711S oraz miejsce pod SHARP GP2Y0D340K. Płytka enkodera i płytka silnika - grubość 0.8mm, pokrycie HASL bezołowiowy (plated gold), grubość miedzi 35um. Płytka przeznaczona do podłączenia enkoderów AS5040 - z prawie lustrzanym odbiciem z obu stron w celu obsługi dwóch kół robota z wykorzystaniem jednego wykonania PCB dla obydwóch stron. Razem z płytką silników imituje "kominy" filmowego De Loreana. FLUX CAPACITOR - 12 białych diod LED (wlutowanych do góry padami) odpowiada za efekt pracy kondensatora strumienia. RADIATION METER - dzielnik rezystorowy + ADC -> pomarańczowa dioda 0603 zaczyna migać w momencie spadku napięcia baterii. TIME CIRCUITS - tablica z niezależnym podświetleniem każdej daty - dwoma przyciskami ustawiamy na niej przed jazdą tryb w jakim ma robot pracować. NEONY - 3 wytrawione na głównej płytce + cztery 3mm diody do podświetlenia rurek wychodzących od płyty głównej do płytki enkoderów. OUTATIME - element obowiązkowy MR FUSION - na spodzie - bateria, góra skrywa w sobie malutki włącznik. ŚWIATŁA niezależne sterowanie światłami: przednimi (osobno wewnętrzne osobno zewnętrzne) oraz tylnymi (stopy, migacze, wsteczny). LICZNIK - when this baby hits 88cm/s you gona see some serious shit - wskazuje prędkość, przy 88cm/s odpalają się neony. MECHANIKA CDN... __________ Komentarz dodany przez: Treker Ale kolega punktów w regulaminie działu złamał... Ciężko wyliczyć wszystkie... Jednak w związku z oryginalnością konstrukcji poprawiłem niezbędne minimum i opublikowałem
  20. Witam! Chciałbym przedstawić swoje „dzieło” - robota klasy linefollower. W końcu siadłem i opisałem go. Bocik zwie się Typhoon, pomimo że nie rozwija jakichś zabójczych prędkości, choć na początku wydawało mi się, że jeździ w miarę szybko . Głównym założeniem było to, że robot miał działać i wykonywać swoje zadanie w miarę możliwości bezawaryjnie – udało się to spełnić Innym założeniem było to, aby wystąpić z robotem na zawodach Roboxy 2013. Od pomysłu do pierwszej jazdy minęło trochę ponad 20 dni. Uważam ten czas za błyskawiczny, jak na moje standardy Konstrukcje, które mnie zainspirowały przy tworzeniu to: Tsubame użytkownika Sabre Silver Shaft użytkownika Naelektryzowany Konstrukcja Dość standardowa, składa się z dwóch płytek – płytki głównej i płytki z czujnikami. Obie dwustronne, wykonane metodą termotransferu. Przód robota opiera się na dwóch małych kawałkach drewna przyklejonych do płytki z czujnikami. Robot jest napędzany dwoma silnikami Pololu HP z przekładnią 30:1, które są przymocowane za pomocą mocowań samoróbek, wykonanych z laminatu. Koła zostały wytoczone z ternamidu, oponki zostały wykonane z silikonu formierskiego. Koła z oponami mają średnicę 30mm, a ich szerokość to 18mm Wymiary: Długość - 11cm Szerokość - 10cm Masa z akumulatorem - 140g Masa bez akumulatora - 100g Elektronika Większość elementów jest montowana powierzchniowo. Mózgiem robota jest mikrokontroler ATmega16A, taktowany zewnętrznym kwarcem 16MHz. Posiada 8 czujników linii Ktir0711s oraz 1 czujnik przeszkód Sharp GP2Y0D810Z0F, o zasięgu 10cm. Silniki są sterowane za pomocą mostka H tb6612fng. Do komunikacji z użytkownikiem robot posiada 2 przyciski i 4 diody LED. Posiada również odbiornik podczerwieni TSOP, który dodałem podczas projektowania jako „może się przyda”, jednak nie wykorzystałem go do tej pory. Zasilanie Robot wozi na sobie akumulator Li-Pol Redox 500mAh 7,4V. Starcza on na dość długo. Silniki są zasilane z przetwornicy ST1S10PHR, ustawionej na 6V, zaś część logiczna zasilana jest ze stabilizatora 5V. Program Został napisany w języku C. Jest to prosty algorytm PD. Jeździ w miarę sensownie do wypełnienia PWM 180/255. Zdjęcia: Czujniki Mocowanie silników Całość Filmiki: Omijanie przeszkód. Stary algorytm, trochę wypada na zakrętach. Sukcesy? Typhoon na swoich debiutanckich zawodach – Roboxy 2013 zajął 3 miejsce. Należy tu jednak wspomnieć, że wszystkich robotów było 4 Nie mniej jednak i tak byłem zadowolony, że nie zajął ostatniego miejsca Podsumowując Robot sprawił mi wiele radości z projektowania, składania, programowania. Trochę się przy nim nauczyłem.
  21. Witam wszystkich , po raz trzeci, pragne przedstawić kolejnego robota. Wlasciwie to moja perelka, ktora miala sprawic, ze zbuduje robota swiezszego, odmienionego, szybszego i niekonwencjonalnego. Tak zrodzila sie kobieta wsrod moich linefollowerow- ognista i drapiezna Le'Mua. Ze wzgledu, ze kazda konstrukcje buduje dla kogos, tym razem dedykuje go mojej super dziewczynie . «Zalozenia projektowe» Jak skonczylaby sie praca, gyby nie ten wazny wyznacznik. Uprzednio zbudowalem juz kilka konstrukcji, tym razem chcialem zrobic cos innego od moich poprzednich dzieciaczkow . Nie bede sie rozpisywal w tym podpunkcie, po prostu ponizej podam zalozenia, ktore chcialem osiagnac. •Lekka stabilna, konstrukcja, pozbawiona, zbednych "bajerow"; •Jak najmniejsza bezwladnosc(silniki jak najblizej srodka, lekka listwa); •Wykorzystanie wlokna weglowego podczas budowy; •Korpus robota, wydrukowany w oparciu o technologie druku 3D; •Felgi i opony charakteryzujace sie dobrymi wlasciwosciami trakcyjnymi; •Ulepszony model pilota START/STOP; «Modeluj, modeluj, trac godziny, a potem zamiast naprawiania, poswiedz czas dla rodziny...- Projekt w Inventorze.» Rzadko mi sie zdarza, aby projekt, ktory tworze, nie zostal rozpoczety w srodowisku do projektowania i wizualizacji w 3D. Tradycyjnie, w moim przypadku jest to AutoCAD Inventor, dzieki ktoremu jestem w stanie zaoszczedzic czas, na dopasowanie i polaczenie ze soba wszystkich elementow w calosc. Tym razem takie projektowanie bylo takze podyktowane takze tym, ze korpus robota mial zostac w pozniejszym czasie wydrukowany na drukarce 3D. Do tego zalezalo mi na dobrym dopasowaniu ze soba elementow(lozysko-wal-silnik). Ponizej zrzut z programu. Zrzut ekranu z programu AutoCAD Inventor. «Czujniki zwesza wszystko» Tym razem mala zmiana! Chcac uzyskac jak najlzejsza wage, musialem zdecydowac sie na ograniczona liczbe czujnikow. Zdecydowalem sie uzyc 8 czujnikow. Dlazego tak? Liczba 8 symbolizuje trwalosc i wykonanie powierzonego zadania , a tak powaznie, to wykorzystujac mikrokontroler ATmega328, jestem swiadomy, ze najszybciej beda wykonywane operacje wlasnie na jednym bajcie, zatem takie czujniki moge zdeklarowac w jednym rejestrze. Co do elementow, nowosci tutaj nie ma, znane i lubiane KTIR, ktore cechuja sie bardzo duzym "podobiestwiem" produkcyjnym, tj. parametry kazdego z sensorow, sa niemal identyczne. Tutaj niestety mala chlapa, bowiem prototyp stworzylem na laminacie w domowym zaciszu, wiec sama linijka z czujnikami wazy duzo za duzo, ale znalazlem pomysl na szybkie odchudzenie, szlifujac warstwe laminatu(plytka jest jednostronna). Solder maska wykonana z markera wodoodpornego. Ponizej zrzut. Linijka czujnikow. «Plyta glowna.» Poczatkowo, zaprojektowalem plytke sam, lecz niestety wewnetrzne pull'upy procesora podlaczaone do kolektorow czujnikow posiadaja zbyt duzo wartosc i sensory nie dzialaly tak jak powinny. Zdecydowalem uzyc sie mini plytki Orangutan Baby, w sklad ktorej wchodzil mostek H, TB6612, ATmega328, kwarc 20Mhz i "dorobic" do niej plytke z rezystorami pull'up, zlaczem ffc, padami do komunikacji z odbiornikiem RF. Projekt plytki w programie Eagle. «Opony i Felgi.» Aby robot byl wstanie osiagnac wysokie predkosci, nieodzownym elementem sa odpowiednie opony. Tutaj odrazu moge powiedziec jak diametralna roznica jest miedzy kolami pololu, a np oponkami Mini-z. Za przyklad podam, ze moj robot z turbina zwiekszyl swoja predkosc o 20%. Felgi wydrukowalem na drukarce 3D, jej wymiary to 21x11(srednica, szerokosc), na felge ciasno wchodzi opono od Mini-z, o trwalosci 20°. Tutaj zamieszcze "palenie, gumy/drift". Felgi x2. «Korpus.» Chcialem, aby konstrukcja byla dosc zwarta, wydrukowalem ja na drukarce 3D, dzieki czemu 'szaszi' robota mialo bardzo mala wage. Aby robot byl szybki zwrotny, postanowilem silniki skupic w centrum robota. Klopotem moglo okazac sie przeniesienie napedu na kola, rozwiazalem to, poprzez przedluzenie walu silnika pretem z wlukna weglowego(pret i tulejka). Minusem takiego rozwiazania bylo zwiekszenie bezwadnosci rotora silnika, lecz w porownaniu ze zmniejszeniem bezwaldnosci calego robota nie ma o czym mowic. Robot zyskal dynamike, dzieki temu rozwiazaniu. Korpus robota. «Akumulator.» Waga, waga, i jeszcze raz waga, szukalem jak najlzejszego pakietu Li-Po 2S, udalo sie wyszukac takie o pojemnosci 150mAh,napieciu znamionowym 7.4v, wydajnosci 20C i wadze 7g. Pakiet jest przyklejony na rzep techniczny do tylniej sciany robota. «Ahmed odpalaj- modul zdalnego startu» Kazdy zna to uczucie, kiedy robot wypada z toru, a my nie jestesmy w stanie go wylaczyc i powstrzymac od urazow . Dlatego ulepszylem wczesniejsze rozwiazanie, pilot-nadajnik RF317Mhz, Atmega8, USART. Calosc dziala tak, ze po wscisnieciu przycisku w pilocie, nadajnik wysyla parenascie razy komende startu- '3'. Robot aby wystartowal potrzebuje zebrac 10 takich komend w przeciagu ~200ms, jesli sie uda-START, jesli nie czeka na kolejny raz. Po wcisnieciu przycisku na pilocie powtornie, nadajnik wysyla sygnal Stop-'1'(jeden przycisk, takie TOGGLE BIT) i calosc dziala adekwatnie do startu. Obudowa pilota zostala zbudowana z laminatu fr3 oraz plexi . Pilot zdalnego startu. Film z Zawodow w Wideniu na RObot Challenge 2015 WIeden nie okazal sie udany , mialem problemy z silnikami, dlatego robot jezdzil znacznie wolniej niz normalnie Serdecznie przepraszam, za brak polskich znakow, niestety jest to podyktowane anglojezyczna wersja systemu Linux. Zachecam do glosowania , Pozdrawiam, MacGyver
  22. Cześć, chciałbym wam przedstawić jednego robota, którego udało mi się stworzyć. Jest to robot wykonany przede wszystkim w celu artystycznym. Robot startował na większych imprezach w Polsce. Słowo o projekcie Tutaj pozwolę sobie użyć opisu, który otrzymałem od pomysłodawców całego projektu: Specyfikacja Masa: 123 g (z akumulatorem 500 mA) Średnica: 120 mm Silnik: Pololu 30:1 HP Elektronika: Atmega32 TB6612 7 czujników KTIR 18 diod LED dwa rejestry przesuwne do sterowania diodami LED Moduł BTM-222 Oprogramowanie Program napisany w C, oraz aplikacja do sterowania robotem w C#. Linefollower sterowany algorytmem PID lub PD w zależności od przeznaczenia w jakim jest wykorzystywany. Komunikacja polega na wysyłaniu komend AT. Widok panelu Jak widać robot przesyła do robota wszystkie potrzebne informacje, takie jak napięcie, ustawienia regulatora itd. Wszystkie dane przechowywane są po stronie robota w pamięci EEPROM, dzięki czemu zawsze wiemy jakie są ustawione. Aplikacja jest w fazie rozwoju i jak widać ma kilka(naście) niedociągnięć. Galeria Film z testowych przejazdów (porusza się na stałych wartościach dla czujników). link PS. Treker jak możesz to prosiłbym o osadzenie filmu. Zdjęcia z wernisażu w łódzkim Lokalu Obecnie robot porusza się już całkiem przyzwoicie, aczkolwiek myślę, że może jeszcze dużo więcej. Mam nadzieje, że robot się wam spodobał. Zachęcam do zadawania pytań.
  23. Cześć tu drużyna "Robotyka KSP" . Lfa stworzyliśmy w szkole za własne pieniądze. W większości wszystko zaplanował lider czyli ja jest to mój drugi lf, poprzedni był czysto z poradnika. Reszta grupy (5 osób) jak na razie była podwykonawcami i dała kaske oraz lutowała elementy Jeden z nich pomógł z programem.W planach mamy minisumo i kolejnego lfa (Dostaliśmy dofinansowanie 500zł) ,więc coś ich muszę ich poduczyć z zakresu elektroniki chociaż sam dużo nie wiem. W szkole niestety nie ma zainteresowania tematem ze strony nauczycieli. (Technikum) Strona o tym jak powstawał lf i będą powstawać kolejne projekty (prosimy o LIKE ) :RobotykaKSP Osiągnięcia 18 miejsce na 26 - Robotic Area 2014 Konstrukcja mechaniczna: Silniki: to Tamiya 70168 Na przekładni 38:1 320obr, Silniki jako takie. Za 50zł nic lepszego chyba nie ma z takimi obrotami. Wadą jest to że są na 3v lecz u mnie pracowały na 6-7v. Nic się z nimi nie działo jeżdżą do tej pory. Koła: Tamiya 70111 Zdecydowanie nie polecam. Koła nie mają w ogóle przyczepności, lf latał jak szalony mimo sporej wagi ( Pół kilo ? ). Brak przyczepności ujawnił się dopiero na zawodach. By zwiększyć przyczepność dociążyliśmy lf'a dodatkowym pakietem baterii (3sztuki) i założyliśmy balony z WABCO Poprawiły sporo. Przejazd bez balonów i obciążenia na jednym z torów wynosił 27,5sec , z poprawami osiągnęliśmy 25,5sec Płytki Są to moje pierwsze zrobione metodą termotransferu. Nawet fajnie mi to wyszło bez większych problemów Ramie trzymające płytkę czujników oraz koszyczek: Blaszki z aluminium i kupę śrubek, nakrętek, podkładek.Ciężko było wyregulować dobrą wysokość płytki ponieważ dostałem z electroparku różne cny70 . Koszyczek przymocowany opaską z forbot.pl którą otrzymaliśmy na RA Elektronika Za zasilanie odpowiada pakiet akumulatorków/bateri 5szt . (MASAKRA) Sterownik silników to L298N - w obudowie MULTIWATT15. Procesor atmega8 z kwarcem 16mhz. Do obniżenia napięć i stabilizacji napięcia służy 7805. Silniki zasilane bezpośrednio z koszyczka . 5 czujników cny70 podłączonych do adc. Oprogramowanie Program napisany w c. Jest bardzo prosty. Pisany na podstawie innego kodu. Nie ma żadnego członu PID. Program napisany prawie w całości na Robotic Area . W załączniku spakowane schematy i kod . Stary wygląd: Cristal T1000.rar
  24. Witam! Photon Interceptor to mój pierwszy robot z którym pojawiłem się ostatnio na Robotic Arena 2014. Nie jest to demon prędkości a konstrukcja została stworzona z myślą o poszerzeniu wiedzy i umiejętności z zakresu programowania mikro klocków oraz zabawy z różnymi peryferiami. ELEKTRONIKA Projekt składa się z 3 płytek PCB zaprojektowanych w CadSoft EAGLE: Płyta główna - konstrukcja oparta jest na 8 bitowym mikroprocesorze Microchip PIC16F887 taktowanym zegarem o częstotliwości 20MHz. Za starowanie silnikami odpowiadają 2 mostki Texas Instruments L293DNE z połączonymi kanałami - 1 układ na jeden silnik, zasilane ze stabilistora ST L7806CV-DG - 1.5A. Wejścia EN są podłączone do pinów CCP mikroprocesora i sterowane poprzez PWM. Napięcie 5V dla logiki zapewnia stabilizator Texas Instruments LM2940 CT5.0. Z przodu płytki jest złącze dla ultradźwiękowego czujnika odległości HC-SR04, pod spodem zostało wyprowadzonych 8 wejść ADC mikroprocesora. W tylnej części znajduje się ekran LCD Raystar Optronics RC0802A-TIY-CSV 2x8 znaków podłączony do PICa poprzez 4 bitowy interface oraz złącze ICSP do podłączenia PICkita. Na płytce znalazły się również 2 przyciski - jeden został użyty do wykonywania kalibracji czujników przed przejazdem, drugi służy jako przycisk start. Po bokach procesora występują 2 złącza (podłączenie płytki komunikacyjno-wizualnej): na jednym zostało wyprowadzone SPI, EUSART oraz pozostałe 2 wolne piny, na drugim wyprowadzone jest GND i 5V. PCB - grubość 1.6mm, pokrycie HASL bezołowiowy (plated gold), grubość miedzi 35um. Płytka komunikacyjno-wizualna - część wizualna składa się z 8 diod LED RGB podłączonych do 3 rejestrów przesuwnych NXP 74HC595D które komunikują się z procesorem poprzez SPI. W części wizualnej znajdziemy moduł bluetooth Microchip RN4020 podłączony do EUSARTa poprzez konwerter poziomów oparty na tranzystorach BSS138 i zasilany ze stabilizatora 3.3V Microchip MCP1825S-3302E/DB. Dodatkowo w projekcie jest możliwość odbioru sygnałów z pilotów podczerwieni 36kHz poprzez odbiornik Vishay TSOP34836. PCB - grubość 1.2mm, pokrycie ENIG, grubość miedzi 35um. Płytka czujników - mamy tu możliwość podłączenia 13 czujników na 7 liniach - Knightbright KTIS0711S, niestety popełniłem mały błąd tworząc bibliotekę do KTIRa i mam źle umiejscowione pady :/ więc była zabawa z lutowaniem i nie testowałem innego rozmieszczenia czujników niż linia prosta. PCB - grubość 0.8mm, pokrycie HASL, grubość miedzi 35um. MECHANIKA Napęd robota składa się z silników Pololu 50:1 MP podłączonych do kół Solarbotics. W przedniej części znajduje się ballcaster Pololu 1/2". Rama robota została zaprojektowana w AutoCAD 2014 i wydrukowana na drukarce 3d w czarnym PLA. Użyta bateria LiPol to Redox 500mA. OPROGRAMOWANIE Program do mikroprocesora został napisany w języku C w środowisku MPLABX z wykorzystaniem kompilatora XC8. Filmik prezentujący przejazd robota w strefie serwisowej Robotic Arena 2014 - KLIKNIJ Pliki źródłowe, schematy itp udostępnię dopiero po świętach - mam jeszcze trochę kodu do napisania (bluetooth, podczerwień) i muszę poprawić algorytm jazdy LFa gdyż był klepany w nocy przed RA i w trakcie zawodów.
  25. Korzystając z wolnej chwili, nadszedł czas na opisanie robota Thunderstorm na łamach portalu Forbot. Konstruktorami tego robota jestem ja oraz mój kolega Adam Fleszar. Na początku marca robot ten będzie obchodził swoje pierwsze urodziny. Zapraszamy do zapoznania się z jego opisem. Mechanika Konstrukcja robota Thunderstorm opiera się na korpusie wydrukowanym w technologii 3D z tworzywa ABS. Projekt tego elementu powstał w programie Autodesk Inventor 2012, kształt tej części jest zaprojektowany zgodnie z naszą intuicją i nie był optymalizowany pod żadnym kątem. Do korpusu przykręcony jest biały przód wykonany w tej samej technologii, do którego przymocowana jest płytka z 19-nastoma czujnikami rozmieszczonymi po łuku. Płytki PCB przymocowane są do wydrukowanych na korpusie kominków. Jako napęd zastosowaliśmy modelarskie silniki DC. Koła zębate użyte w przekładni pochodzą z serw TowerPro. Mocowania przekładni w postaci płaskowników aluminiowych zostały wykonane na mojej obrabiarce CNC. Oś koła stanowi pręt o średnicy 3mm wymontowany z napędów CD/DVD, nagwintowany na jednym z końców gdzie osadzona jest zębatka napędzająca koło. Na osi znajduję się również tarcza enkodera wymontowana z myszki kulkowej. Koła zastosowane w robocie pochodzą z modeli RC. Thunderstorm wyposażony został w turbinę, która przysysa robota do trasy. Napędzana jest ona silnikiem BLDC o mocy 200W sterowanym za pomocą regulatora 3F Jeti Advance 18 Pro. Jako ślizgacze zostały użyte trzy plastikowe kulki z ASG o średnicy 6mm. Elektronika Projektowana elektronika została podzielona na dwa współpracujące ze sobą systemy. Pierwszym z nich jest moduł mostka H sterujący silnikami napędowymi. W robocie znajdują się dwa takie układy, pracujące przy każdym kole niezależnie od siebie. Ich zadaniem jest dokładne kontrolowanie prędkości obrotowej kół na podstawie sygnałów z enkoderów zamocowanych na osi każdego koła. Drugim modułem jest układ, którego głównym celem jest odczyt linii i wygenerowanie odpowiedniego sterowania niezależnie dla lewego i prawego koła w robocie. Ponadto układ ten umożliwia komunikację z pilotem stosując gotowe moduły transmisji radiowej TLX905 oraz ma możliwość generowania sygnału o zmiennym wypełnieniu, koniecznym przy sterowaniu regulatorem prędkości obrotowej turbiny. Płytka z czujnikami znajduje się w przedniej części robota, a sygnały, które z niej wychodzą są podpięte do płytki kontrolującej linię przy pomocy dwóch tasiemek 12-żyłowych każda. Płytki PCB zostały wykonane w firmie Satland Prototype. Moduł sterownika silnika DC wyposażony jest w mikrokontroler ATmega88PA pracujący z częstotliwością 20MHz. Sam mostek H zbudowany jest z czterech tranzystorów IRF6668 w obudowach DirectFET sterowanych dwoma układami IR2104S. Częstotliwość sygnału PWM sterującego silnikiem wynosi 19,5kHz. Sterownik ten otrzymuje sygnał kroku i kierunku z kontrolera linii. Jedno zbocze narastające sygnału kroku odpowiada za obrót osi koła o jedną jednostkę enkodera w stronę wyznaczoną przez sygnał kierunku obrotu. Kontroler linii zbudowany jest w oparciu o mikrokontroler ATmega128A @ 16MHz. Sygnał z czujników linii KTIR0711S podawany jest na komparatory LM339 a następnie w postaci sygnału logicznego na wejścia mikrokontrolera. Moduł sterownika linii generuje dwa sygnały o zmiennej częstotliwości sterujące prędkością obrotową lewego i prawego koła jednocześnie. Do zasilania tego modułu jest wykorzystana przetwornica impulsowa zbudowana na układzie MAX5035, ale ze względu na zastosowanie regulatora 3F, który posiada wbudowany układ BEC nie jest ona wykorzystywana podczas jazdy, część cyfrowa jest wtedy zasilana bezpośrednio z regulatora 3F. Programy Programy na mikrokontrolery użyte w obu modułach napisane są w języku C. W mostkach sterujących silnikami DC działa algorytm PID, zaś w jednostce kontrolującej linię algorytm PD. Zasilanie Do zasilania robota stasowane są zamiennie akumulatory Turnigy nano-tech 850mAh 3S 25~40C lub 350mAh 3S 65~130C Lipo Pack. Osiągnięcia :arrow:1. miejsce – Robotic Tournament 2012 w Rybniku – Linefollower :arrow:3. miejsce – Trójmiejski Turniej Robotów 2012 w Gdańsku – Linefollower :arrow:3. miejsce – Trójmiejski Turniej Robotów 2012 w Gdańsku – Linefollower PRO :arrow:2. miejsce – Festiwal Robotyki CybAirBot 2012 w Poznaniu - Linefollower :arrow:1. miejsce – Roboxy 2012 w Gdańsku - Linefollower :arrow:1. miejsce – Robocomp 2012 w Krakowie – Linefollower :arrow:2. miejsce – Robocomp 2012 w Krakowie – Linefollower Enhanced :arrow:1. miejsce – ASTOR Robot Challenge 2012 w Sosnowcu – Linefollower :arrow:1. miejsce – ASTOR Robot Challenge 2012 w Sosnowcu – Linefollower Enhanced :arrow:1. miejsce – Sumo Challenge 2012 w Łodzi – Linefollower :arrow:3. miejsce –Robotic Arena 2012 we Wrocławiu – Linefollower Filmy z testów i zawodów Nowy film z ostatnich zawodów!
×
×
  • Utwórz nowe...