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

Szukaj wyników w...

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


Data utworzenia

  • Rozpocznij

    Koniec


Ostatnia aktualizacja

  • Rozpocznij

    Koniec


Filtruj po ilości...

Data dołączenia

  • Rozpocznij

    Koniec


Grupa


Znaleziono 142 wyników

  1. RoChN 4 to robot typu linefollower, kolejny z serii Robotów o Chwytliwych Nazwach. Jest to konstrukcja w dużej mierze eksperymentalna, stworzona w celu przetestowania nowych pomysłów i komponentów. Wyniki nie były priorytetem, ale robot radzi sobie całkiem nieźle. Prawdopodobnie należy do kilku najlepszych, startujących na zawodach, linefollowerów w Polsce. Rozwijamy go razem z Pojemnikiem od ponad roku, w czasie wolnym między "przygotowaniami" do matury i jesteśmy zadowoleni z osiągniętych efektów. Historia powstania: Po zajęciu kolejnego czwartego miejsca RoChNem 3 uznaliśmy, że osiągnął on już szczyt swoich możliwości i trzeba zbudować coś nowego, aby wreszcie wskoczyć na podium. Początkowa “lista życzeń” wyglądała następująco: STM32 enkodery IMU Chcieliśmy też lepiej zaprojektować sekcję zasilania, żeby uniknąć losowych resetów procesora które zdarzały się poprzednikowi. W ciągu kilku tygodni stworzyliśmy projekt mocno inspirowany Fuzzym. Już wysyłaliśmy zamówienie, gdy odkryliśmy w projekcie poważny błąd. Jego naprawienie wymagałoby zaprojektowania całej płytki od nowa, więc schemat poszedł do kosza. W tym samym czasie na forum pojawił się opis Cukiereczka, który okazał się kopalnią wiedzy o linefollowerach. Uznaliśmy wtedy, że trzeba się inspirować najlepszymi i od tego czasu pomysł na RoChNa 4 był już inny. Postanowiliśmy w jednym robocie zamontować możliwie dużo “wodotrysków” i sprawdzić, które z nich dają tak dużą przewagę podczas zawodów. Dla upamiętnienia niedokończonego poprzednika oficjalny numer umieszczony na płytce ukończonego robota to 4.1. Jako, że jest to konstrukcja eksperymentalna, postawiliśmy na modułowość. Sterowniki silników, enkodery i moduł bluetooth umieszczone zostały na dodatkowych płytkach przylutowanych w pionie do głównego PCB. Dzięki temu rozwiązaniu byliśmy w stanie wygodnie wymieniać i przeprojektowywać peryferia, co bardzo się przydało podczas usuwania błędów konstrukcyjnych. MECHANIKA Kolory: Jak wiadomo ładne roboty szybciej jeżdżą[potrzebny przypis]. Dlatego od początku planowaliśmy jak będzie wyglądał nasz linefollower. Postanowiliśmy wzorować się na bolidach Formuły 1, w końcu są one dosyć szybkie. Mieliśmy już zamówione pionowe płytki w zielonym kolorze, więc ilość bolidów zawęziła się do malowania Force India z 2011 roku. Zdjęcie Cukiereczka jako robota, na którym się wzorowaliśmy, przemalowaliśmy w Paint-cie, żeby zobaczyć, jak będzie wyglądać. Na (nie)szczęście zielone płytki okazały się grubości 2mm, co dyskwalifikowało je z wykorzystania w robocie, więc mając wolny wybór zdecydowaliśmy się na żółto-czarną kolorystykę Renault. Ostatecznie jesteśmy całkiem zadowoleni z tego jak prezentuje się nasz robot. Podwozie: Robot składa się z dwóch płytek PCB połączonych taśmą FFC (raster 0,5mm, 24 piny) oraz dwiema listewkami. Próbowaliśmy je zrobić z włókna węglowego, ale okazało się, że nie umiemy wywiercić w nim otworów domowymi sposobami. Zamówiliśmy też listewki plastikowe, ale były tak miękkie, że na zakręcie przednia płytka mogłaby uderzać o tylną. Gdybyśmy kupili je z twardszego materiału, może zaoszczędzilibyśmy kilka gram na masie robota, ale aktualnie jesteśmy zadowoleni z aluminiowych. Z tyłu nie mogło zabraknąć listewki ochraniającej robota przed obróceniem podczas ruszania. Całkowita masa wynosi 62 gramy (73 z akumulatorem). Taśma FFC poza obsługą 14 czujników koloru i 3 żył z zasilaniem, posiada 7 żył, na których zależnie od użytych czujników odległości można wyprowadzić 2xI2C, SPI, jeden pin ADC, lub po prostu użyć ich jako GPIO. Napęd: Dwa standardowe silniki Pololu 10:1 z obustronnym wałem i węglowymi szczotkami jak zawsze spisują się bardzo dobrze, choć słychać już powoli ich zużycie (to już drugi komplet). Powoli osiągamy koniec ich możliwości, więc kolejna konstrukcja będzie pewnie używać czegoś innego. Zastosowaliśmy przedłużone mocowania, aby szerokość płytki nie przekraczała 10 cm i zamontowaliśmy od dołu zaślepki osłaniające przekładnie przed kurzem, który czasem w nie wpadał. Koła i opony: Początkowo robot jeździł na felgach toczonych w aluminium. Teraz ma dwa razy lżejsze wydrukowane na drukarce 3D, ale za to lekko bijące (musieliśmy rozwiercić otwór na wał, co nie wyszło idealnie). Kiedyś próbowaliśmy odlewania oponek z silikonu - miały podobną przyczepność, ale zużywały się dużo szybciej od Mini-Z, więc używamy tych drugich. ELEKTRONIKA PCB: Zdecydowaliśmy się na czterowarstwową płytkę, bo już podczas projektowania poprzedniego linefollowera mieliśmy problemy z optymalnym doprowadzeniem zasilania. Na głównej płytce jedna warstwa to wyłącznie masa, jedna zajmuje się zasilaniem, a dwie zewnętrzne wszystkimi sygnałami. Przednia płytka z czujnikami również jest czterowarstwowa, tam sygnały schowaliśmy do środka, aby zmniejszyć szumy na sygnałach analogowych. Mniejsze, żółte płytki są dwuwarstwowe. Zdecydowaliśmy się na elementy pasywne w obudowach 0402 - najmniejszych, które można wygodnie ręcznie polutować. W poprzedniej konstrukcji elementy w 0805 zajmowały dużo miejsca dlatego wybraliśmy mniejszy standard. Mikrokontroler: Pierwsza, porzucona wersja RoChNa 4 wykorzystywała STM32F1. Ostatecznie po przeanalizowaniu opisu Cukiereczka zdecydowaliśmy się na serię F7. W robocie zastosowaliśmy STM32F745VET6 w obudowie LQFP-100. Stu-pinowa obudowa okazała się niezbędna przy tylu elementach zastosowanych w robocie - tylko 5 pinów pozostało wolnych. Układ taktowany jest rezonatorem kwarcowym 8MHz, którego sygnał umożliwia stabilną pracę procesora na 216 MHz. Do programowania korzystamy z interfejsu SWD i odłamanego programatora ST-LINK z płytki Nucleo. Nie planowaliśmy programowania przez USB, choć gdyby udało się je uruchomić, to prawdopodobnie byśmy spróbowali. Zapas mocy obliczeniowej okazał się bardzo przydatny przy testowaniu najdziwniejszych rozwiązań. Czujniki linii: Użyliśmy standardowych elementów KTIR0711S. Rozmieszczone są w dość wąski (8,5 cm szerokości) łuk. Ponieważ nasz STM miał 16 pinów z ADC, a chcieliśmy także mierzyć stan baterii i mieć możliwość zamontowania analogowego czujnika odległości do wykrywania przeszkód, zdecydowaliśmy się na 14 sztuk. Odpowiedni dystans od podłoża zapewniają cztery rezystory w obudowach ¼ watta. Sterowniki silników: Po rozmowach z autorem Cukiereczka doszliśmy do wniosku, że sterowniki TB6612 mogą nie wytrzymać nagłych szarpnięć silnikami, więc wybraliśmy mostek H VNH7013 (40A prądu stałego) oraz układ DRV8703 sterujący takim mostkiem. Zestaw mógł sterować tylko jednym silnikiem, więc musieliśmy zamontować takie dwa w robocie. Jednak intuicja podpowiedziała nam, że coś może nie zadziałać, więc zamontowaliśmy je na osobnych, żółtych, pionowych płytkach, abyśmy mogli ewentualnie wymienić je na TB6612. Podczas testów udało nam się raz zakręcić silnikiem i dwa razy spalić mostek, więc ostatecznie robot jeździ na 4 starych sterownikach. Daje to 4,8A ciągłego poboru prądu przez silnik (12,8 w piku (♠)). Nie stosujemy żadnych opóźnień w celu oszczędzania tych układów i nie zostały one jeszcze uszkodzone (a przeżyły już wiele dziwnych manewrów), więc rozwiązanie choć mało profesjonalne okazało się skuteczne. Enkodery: Wybraliśmy enkodery magnetyczne AS5134 z uwagi na dużą szybkość kolejnych odczytów położenia magnesu, możliwość komunikacji po SPI do 6MHz i łatwą dostępność. Początkowo błędnie zasilaliśmy je napięciem 3,3V (układ potrzebuje co najmniej 4,5V), więc musieliśmy przeprojektować ich płytki (tu znowu pomogła nam modułowość projektu). Na prawej płytce umieściliśmy jedyny w robocie stabilizator na 5V i przewodem doprowadziliśmy zasilanie do lewej. Napięcia sygnałów z enkodera do STM-a (5V->3,3V) są dzielone dwoma rezystorami, a w drugą stronę (3,3V->5V) wzmacniane układem MOSFET-a i dwóch rezystorów. Chcieliśmy zastosować 6-biegunowe magnesy firmy Pololu, jednak enkoder zadziałał dopiero gdy użyliśmy pierścieniowe magnesy neodymowe namagnesowane po średnicy. Ustawienie magnesu i czujnika Halla w idealnej osi znacznie zwiększyło dokładność odczytów. Pomiary wykonujemy z częstotliwością 2 kHz. Zmiana kąta między odczytami wynosi zwykle 20-80 stopni, więc niedokładność pomiarów ±2 stopnie nie wpływa za bardzo na stabilność algorytmu sterującego silnikami. Bluetooth: Tu bez żadnych szaleństw. HC-05 spełnia swoją funkcję zadowalająco. Rozglądaliśmy się za czymś innym, ale nie znaleźliśmy rozsądnej alternatywy. Brakowało nam miejsca na głównej płytce robota, dlatego został on umieszczony na osobnej pionowej. Planowaliśmy wpinanie go na złączach goldpin, aby była możliwość wyjmowania go na przejazdy finałowe (mniejsza masa itd). Mieliśmy problemy z tym złączem. Wstrząsy podczas jazdy powodowały krótkie utraty zasilania podczas jazdy, co skutkowało zerwaniem połączenia i uniemożliwiało zatrzymania robota. Przylutowanie dwóch przewodów rozwiązało problem. Zasilanie: Dalej stosujemy akumulatory li-po Dualsky 2S, 150-250 mAh, te same co w Rochnie 3. Montujemy je do robota na rzep i przytrzymujemy kawałkiem drutu, aby się nie kołysały na boki. Mamy 7 akumulatorów oraz jedną ładowarkę na dwa linefollowery, więc podczas zawodów ledwo nadążamy z ich ładowaniem. Robot pożera naprawdę dużo prądu, dlatego wiele układów usypiamy lub odłączamy od zasilania (usypiając stabilizatory) kiedy robot akurat nie jedzie (patrz tabelka, nie uwzględniono prądu pobieranego przez silniki). IMU: Czujnik przestrzeni miał docelowo pomagać w zapamiętywaniu trasy i niwelowaniu poślizgu podczas pokonywaniu zakrętów. Użyliśmy układu LSM6DSM i przylutowaliśmy go bezpośrednio do głównej płytki. Pomimo tego, że podczas testów statycznych układ działa bez zarzutu (1g pojawia się w odpowiednim kierunku), to podczas jazdy wyłapywane są wszystkie wstrząsy i drgania, co uniemożliwia wykorzystanie danych w jakimkolwiek celu nawet po przefiltrowaniu. Czyszczenie kółek podczas jazdy: Przetestowaliśmy system umożliwiający czyszczenie kółek w trakcie przejazdu w celu minimalizacji wpływu przyklejającego się brudu. Rolkę do zbierania kurzu przymocowaliśmy do stelarzu wydrukowanego na drukarce 3D. System działał, ale stawiał bardzo duży opór, co znacząco zmniejszało osiągi robota, utrudniając nawet ruszenie z miejsca. Niewykorzystane bajery: Karta SD - Docelowo miała być użyta jako magazyn danych na temat trasy oraz aktualnej konfiguracji robota. Niestety nie udało nam się jej uruchomić poza odczytaniem informacji o danej karcie. Ostatecznie jako magazyn danych użyta została część niewykorzystanej pamięci FLASH. USB - Miało służyć do szybkiego wymieniania dużych ilości informacji pomiędzy robotem, a komputerem. Z nieznanych nam przyczyn nie udało nam się skłonić go do działania. Dane z robota wysyłamy albo przez Bluetooth albo zczytujemy całą pamięć FLASH programatorem. EEPROM - Został dodany na osobnej płytce, aby łatwiej zapisywać dane konfiguracyjne. Okazał się jednak nie być niezbędny, i zapisujemy te dane na kilku ostatnich bajtach pamięci. SOFTWARE Program został napisany w C z użyciem bibliotek HAL. Nigdy nie robiliśmy żadnego większego projektu na STM32, więc trzeba było nauczyć się wielu rzeczy. Algorytm podążania za linią składa się z głównego regulatora, który na podstawie odczytów z czujników linii zadaje prędkość obrotową dwóm regulatorom PD, które sterują prędkością kół. Dużą część programu zajmuje kod obsługujący komunikację przez bluetooth. Praktycznie wszystkie istotne zmienne można zmieniać zdalnie, istnieje także możliwość podglądu odczytów z czujników linii i innych danych w czasie rzeczywistym. Robot zapamiętuje cześć swojej konfiguracji w pamięci FLASH. Na potrzeby kalibracji i sprawdzania różnych rzeczy powstało kilka mniejszych programów na komputer. Głównie generują wykresy na podstawie danych z robota. Zapamiętywanie trasy: Od początku planowaliśmy zapamiętywać trasę przejazdu. Po kilku tygodniach prób i błędów udało się zrobić program, który działał na krótkich trasach. Niestety na długich się gubił. Uznaliśmy, że bez doświadczenia, wiedzy teoretycznej i pewnie dokładniejszych czujników nie będziemy w stanie zrobić lepszego algorytmu. Poniżej screenshot z programu wizualizującego zapamiętaną trasę. Usprawnienia sterowania: Robot ma kilka różnych sposobów aktywacji dodatkowego hamowania na zakrętach aby z nich nie wypadać. Uwzględnia też podczas pokonywania trasy różnego rodzaju przypadki szczególne np. kąty ostre ("teoretycznie" niemożliwe) i skrzyżowania. Na każdych zawodach sprawdzamy, jaka kombinacja ustawień zadziała najlepiej, choć mamy kilka optymalnych ustawień. PODSUMOWANIE Robot w pełni spełnił swoje zadanie, czyli przetestowanie nowej rodziny procesorów, enkoderów, IMU i zapamiętywania trasy, a wyniki są lepsze niż się spodziewaliśmy. Niestety z powodu epidemii ilość zawodów, w których mógł wystartować została mocno ograniczona. Projekt dalej jest rozwijany i wdrażamy kolejne ciekawe rozwiązania, które opiszemy, jeżeli sprawdzą się na zawodach. Osiągnięcia: III miejsce Robocomp 2019 IV miejsce Sumo Challenge 2019 II miejsce Robotic Arena 2020 Filmy z zawodów:
  2. 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:
  3. Poproszę o sprawdzenie schematu i płytki PCB. Schemat i płytka narysowana w KiCad 5.1. Listwa ma 12 czujników. Zasilanie diód IR +5V, zasilanie tranzystorów +3V3. Diody pogrupowane po 4 szt. Zdecydowałem się nie wstawiać rezystorów do zasilania diód. Mam problem z footprintem gniazda tasiemki sygnałowej FFC. W projekcie użyłem standardowego gniazda z KiCada (Connector_FFC-FPC:TE_1-1734839-6_1x16-1MP_P0.5mm_Horizontal). Jakie gniazdo stosujecie/proponujecie? (może link do produktu)? Może ktoś mógłby podzielić się footprintem do takiego gniazda w formacie KiCad , które można kupić w Polsce? Nie wiem jakie powinienem zamieścić pliki i w jakim formacie, żeby łatwo i wygodnie można było sprawdzić schemat i płytkę. Te załączone to jpg. Proszę o wskazówki.
  4. Poniższe pytanie zostało wydzielone z następującego tematu: --- Dziękuję. A jakie obecnie są najlepsze komponenty do LF? diody: silniki: encodery: sterowniki do silników: stabilizator napięcia 5v: stabilizator napięcia 3,3v: bateria (zasilanie): Czy zalecane jest np użycie drv8833 do jednego silnika? Czy powinno się podnieść napięcie z baterii 2S 7,4v do sterowania silnikiem? Czy stabilizować napięcie sterowania silnikami? Procesor znalazłem taki STM32h750 Ma tylko 128MB pamięci. Czy to wystarczy?
  5. Cześć, zabieramy się z kolegą do zrobienia line followera na arduino nano, chcielibyśmy się zapytać, czy jest on przygotowany poprawnie. Wszystko będzie zasilane przez Li-Pol 7.4 V. Poniżej wrzucam schematy naszego układu
  6. Cześć, Najpierw co o mnie: skończyłem studia na kierunku Automatyka i Robotyka, ale pracuje jako programista w C++. Przymierzam się do zbudowania mojego trzeciego line followera. Tym razem chciałem zrobić robota mapującego trasę. Pierwsze testy na sucho wykazały, że sam enkoder umieszczony przy kołach napędowych albo na dodatkowych kołach tocznych nie zadziała dobrze przy dużych prędkościach. Pomyślałem, że mogę wykorzystać sensory optyczne z myszek gamingowych + enkodery na kołach napędowych + czujnik 9DOF + czujniki linii. Kolejnym krokiem, będzie zbudowanie prototypowego urządzenia zawierającego 2 czujniki ze zwykłych myszek oraz próba określenia jego pozycji. Jeżeli to wypali dla małych prędkości, to przymierze się do jakiś lepszych czujników i przeprowadzę dalsze testy. Czy ktoś wie dlaczego to może się nie udać? Patrząc na parametry niektórych myszek gamingowych, powinny sprostać wyzwaniu. Ponieważ projekt jest duży, a ja bardzo lubię programować, ale nie lubię tworzyć schematów elektrycznych/dobierać komponentów, to szukam wspólnika. Ogłoszenie: jeżeli zbudowałeś już wcześniej linefollowera, lubisz projektować roboty, masz aspirację zbudować najszybszego robota w Polsce, to odezwij się w tym temacie lub w prywatnej wiadomości.
  7. Cześć, potrzebuję pomocy z zasilaniem robota. Robot to linefollower oparty na arduino. -podwozie https://abc-rc.pl/product-pol-7655-Podwozie-robota-2WD-RT-4-140mm-2-silniki-z-enkoderami-platforma-mobilna.html -sterownik silników DC https://abc-rc.pl/product-pol-6196-Modul-sterownika-L298N-do-silnikow-DC-i-krokowych-Arduino.html. Najpierw myślałem o zwykłym koszyku na baterie AA ale po czasie odszedłem od tego bo w póżniejszych projektach i tak predzej czy poziej bym musiał przejść na akumulatorki które można ładować. Myślałem nad 2 celami Li-ion tylko nie wiem jak zaprojektować te zasilanie. Na pewno trzeba będzie obniżyć napięcie całego koszyka z celami i kontrolowac napiecie cel by nie spadło do poziomu gdy już będą nie do odratowania. O czymś jeszcze trzeba pomyśleć? Proszę o pomoc w zaprojektowaniu tego zasilania.
  8. 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.
  9. 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.
  10. 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!
  11. 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
  12. 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
  13. 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.
  14. 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
  15. 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
  16. 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
  17. 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ę!
  18. 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
  19. 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
  20. 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:
  21. 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.
  22. 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"
  23. 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
  24. 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ęć.
  25. 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
×
×
  • Utwórz nowe...