Skocz do zawartości

Tablica liderów


Popularna zawartość

Pokazuje zawartość z najwyższą reputacją od 26.04.2019 we wszystkich miejscach

  1. 4 punkty
    Z innych (dość nietypowych) oznaczeń wnioskuję, że płytka jest produkcji polskiej: US to układ scalony, "E" to elektrolit, MS to mostek prostowniczy a "TR" to zapewne triak. Idąc tym dropem DL to dlawik. Z resztą z układu widać, że strefa izolowana (za tym białym optotriakiem) ma obok głównego triaka specjalne, wysokonapięciowe kondensatory filtra przeciwzakłóceniowego. Tam dławik musiał się znaleźć obowiązkowo.
  2. 4 punkty
    Jestem zwolennikiem podejścia, w którym po zaobserwowaniu dużej liczby tematów na dany temat wyodrębnia się je do osobnej kategorii, aby utrzymać większy porządek. Tak stało się chociażby w przypadku Arduino. Pierwotnie tematy na temat tej platformy były w dziale Mikrokontrolery, a później powstała osobna kategoria tylko dla Arduino. Samo utworzenie kategorii na dany temat nie spowoduje raczej wysypu projektów i tematów dotyczących danego tematu. Przykładem są tutaj na przykład tematy związane z drukiem 3D. Przez ~2 lata na Forbocie były działy dotyczące drukarek 3D, skanerów, oprogramowanie itd. Panowały tam jednak pustki, ostatecznie całość została "zwinięta" do jednej kategorii "Druk 3D", która też nie jest zbyt popularna. Nie wiem czy jest sens tworzenia nowych kategorii tylko dlatego, aby były. Ktoś musiałby się takim działem zajmować, tworzyć poradniki związane z audio, opisywać własne projekty itd. Bez takiej osoby raczej będą tam pustki. Może lepiej na początku tworzyć takie tematy w dziale Elektronika i tagować je jako Audio? Dzięki temu będzie jasno widać jakie jest zainteresowanie taką tematyką
  3. 3 punkty
    To mój pierwszy post na tym forum ale od razu chciałbym przedstawić zbudowanego przeze mnie robota. Mimo że to pierwszy post to odwiedzałem to i inne fora wielokrotnie w poszukiwaniu przydatnych informacji i wykorzystując jedynie „magiczny” guzik szukaj udało mi się rozwiązać większość problemów z budową. To dla tych którzy nie chcą i nie lubią szukać… Wracając jednak do robota to został on nazwany X-walker i jest czteronożnym robotem kroczącym o symetrycznej konstrukcji. Został zaprojektowany jako robot którego zadaniem będzie przejście po nieznanym terenie przy jednoczesnym zachowaniu równowagi i odpowiednim położeniu korpusu. Prace nad robotem aktualnie się zakończyły, aczkolwiek temat jest obszerny i wiele można jeszcze ulepszyć albo dodać, więc w przyszłości robot zostanie poddany kolejnym modyfikacją. 1.Budowa mechaniczna Konstrukcja mechaniczna robota została zaprojektowana przy użyciu programu Autodesk Inventor 2010. Program ten umożliwił stworzenie wirtualnego modelu robota oraz przetestowanie zależności mechanicznych występujących pomiędzy jego elementami. Dzięki temu wybrano optymalne wymiary poszczególnych części. Poniżej na rysunku 1 zaprezentowano projekt robota z programu Inventor (bez elektroniki oraz okablowania): Na materiał konstrukcyjny wybrano aluminium jako, iż posiada odpowiednią wytrzymałość, jest przy tym lekkie i nadaje się do obróbki za pomocą prostych narzędzi. Zaprojektowane elementy wycięto przy pomocy lasera z 1.5mm i 2mm arkuszy aluminium. Poniżej przedstawiono wycięte elementy: Dalszy etap prac polegał na odpowiednim ukształtowaniu niektórych części. Proces ten odbywał się ręcznie przy udziale odpowiednich kopyt wykonanych z drewna bukowego i stali. Następnie dokonano montażu elementów przy pomocy różnego rodzaju łączników śrubowych o średnicach od 2 do 4mm. Dodano także inne elementy, takie jak tulejki dystansowe czy części składowe stóp ze zintegrowanymi czujnikami stykowymi. Na kolejnym rysunku przedstawiono złożonego robota: Poniżej przedstawiono szczegóły budowy stopy: Napęd robota stanowi 12 serwomechanizmów Power HD 1201 o parametrach przedstawionych poniżej (dane producenta): - moment 12.2/13.2 kg/cm - prędkość 0.16/0.14 sec/60° - napięcia 4.8/6.0 V - waga 60 g - wymiary 40.7 x 20.5 x 39.5 mm Niestety niektóre dane obiegają od wartości rzeczywistych, szczególnie wartość momentu, ale co ciekawe nawet wymiary nie są zgodne z rzeczywistymi. Podsumowując, konstrukcja mechaniczna robota posiada kilka charakterystycznych cech: - zwarta i solidna konstrukcja - podwójne łożyskowanie wszystkich stawów - zintegrowane czujniki stykowe w stopach - całkowita rozbieralność konstrukcji – tylko połączenia śrubowe - możliwie najmniejsze wymiary przy zastosowaniu danych elementów wyposażenia robota - liczne otwory odciążające konstrukcję 2. Elektronika Część elektroniczna robota posiada budowę modułową. Każdy moduł zawiera mikrokontroler AVR i pełni odpowiednie dla siebie funkcje. Każdy posiada także odpowiednio multipleksowane wyprowadzenie ISP, co pozwala programować moduły podczas ich działania. Moduły stanowią odrębne jednostki elektroniczne i można ich używać oddzielnie nie koniecznie w robocie X-walker. Do komunikacji między sobą wykorzystują SPI. Takie rozwiązanie nie ogranicza w dalszej rozbudowie robota i pozwala stale dodawać nowe elementy i funkcje. Poniżej scharakteryzowano poszczególne moduły. 2.1. Moduł sterujący „BRAIN” Jest głównym modułem w robocie, zawiaduje działaniem pozostałych. Został oparty na mikrokontrolerze ATmega 16A z kwarcem 16MHz. Posiada wyprowadzone piny z magistralą I2C i SPI, wyświetlacz LCD oraz 2 dodatkowe przyciski na potrzeby przyszłych funkcji. Poniżej krótka charakterystyka: - arbiter magistrali SPI - komunikacja z akcelerometrem i żyroskopem poprzez I2C - Realizacja filtru Kalmana w celu wyznaczenia aktualnego pochylenia robota - obsługa wyświetlacza LCD - nadzorowanie pracy innych modułów - formowanie odpowiednich ramek danych do komunikacji z PC 2.2. Moduły sterowników serw Robot posiada dwa takie same moduły sterowników serw, każdy obsługuje 6 serwomechanizmów, czyli 2 nogi robota. Moduły także oparte są o mikrokontroler ATmega 16A na kwarcu 16MHz. Najważniejszymi funkcjami tych modułów jest oczywiście generowanie odpowiedniego sygnału PWM dla serwomechanizmów, ale także obsługa czujników stykowych i pomiar napięć na potencjometrach serw (dodatkowy przewód wychodzący z każdego serwa). Ta ostatnia cecha służy sprawdzeniu czy serwomechanizm jest rzeczywiście wychylony od taką wartość jaką wyznacza sterowanie, co jest przydatne w pracy przy dużym obciążeniu. Należy dodać, że sygnały analogowe z potencjometrów przed dotarciem do tych modułów przechodzą przez filtr analogowy. 2.3 Moduł nadawczo odbiorczy „BT_RX_TX” Moduł ten jest odpowiedzialny za obsługę dwóch modułów bluetooth, jednego wysyłającego a drugiego obierającego dane z komputera. Dane przychodzące są odpowiednio filtrowane. W module zastosowano mikrokontroler ATmega 8A oraz kwarc 14.745MHz odpowiedni do transmisji szeregowej. Standardowo w module instaluje się dwa moduły bluetooth BTM-222. Poniżej zdjęcie przedstawiające moduł zamontowany w robocie: 2.4. Moduł zasilający "POWER" Robot jest zasilany dwoma zestawami akumulatorów. Pierwszy większy zestaw (2x LiPo 1850 mAh 7.4V) zasila serwomechanizmy, drugi mniejszy (LiPo 850 mAh 7.4V) zasila układy elektroniczne. Moduł zasilający monitoruje wartości napięć poszczególnych akumulatorów a także mierzy prąd jaki zużywają napędy robota. Zajmuje się także stabilizacją napięć – 5V dla elektroniki i poprzez stabilizator impulsowy (niewidoczny na zdjęciach) 5.3V lub 6V dla serwomechanizmów. Moduł zasilający posiada budowany układ dźwiękowy sygnalizujący niski stan napięcia w akumulatorach. Zajmuje się także monitorowaniem temperatury w istotnych miejscach robota za pomocą magistrali 1-wire oraz czujników DS18b20. Te miejsca to: stabilizator impulsowy dla serw, stabilizator liniowy dla elektroniki, temperatura w serwomechanizmie „udowym”, temperatura otoczenia. Zdjęcie użytego zasilacza impulsowego oraz zdjęcie robota po zamontowaniu modułu "POWER". Widoczny radiator stabilizatora liniowego elektroniki: 2.5 Pozostałe moduły Moduł żyroskopu Zawiera żyroskop cyfrowy L3G4200D oraz kilka elementów elektronicznych niezbędnych do jego działania . Na zdjęciu widać poprawiony błąd na PCB. Praktyczniej było to zrobić w ten sposób niż zmieniać całą płytkę bo wiązałoby się to z ponownym lutowaniem obudowy LGA żyroskopu. Moduł akcelerometru Zawiera akcelerometr (i magnetometr) cyfrowy LSM303DLH oraz tak jak moduł żyroskopu kilka elementów elektronicznych niezbędnych do jego działania. IMU - interial measurmet unit Moduł IMU czyli tzw. interial measurmet unit złożony i zamontowany w całości wraz z konwerterami napięć dla sygnałów magistrali I2C Moduł filtrów analogowych RC (2 sztuki) Filtruje napięcia na potencjometrach serw aby można było je prawidłowo zmierzyć poprzez wbudowane w mikrokontrolerach przetworniki ADC 3. Sterowanie X-walker jest sterowany za pomocą komputera PC i odpowiedniej aplikacji. Zastosowanie dwóch modułów Bluetooth pozwoliło na szybkie przekazywanie danych w obu kierunkach i uzyskanie kroku sterowania na poziomie 40ms. Czas ten nie jest niestety gwarantowany z racji zastosowania protokołu Bluetooth, aczkolwiek robot porusza się płynnie i reaguje błyskawicznie na zmiany sterowania. W jednym cyklu sterowania od robota odbierane są odpowiednie dane, wyliczane jest sterowanie i dane ponownie wysyłane są do robota. Na ekranie komputera możemy obserwować dane generowane przez wszystkie moduły robota jak również aktualne położenie środka ciężkości robota względem jego stóp z naniesionym wielokątem podparcia (obraz poniżej) Po wybraniu odpowiednich ustawień chodu robota oraz prędkości poruszania się następuję połączenie z robotem. O tej pory możemy nim sterować: chód przód, tył, na boki oraz obroty w lewo prawo. Wszystkie inne „akcje” związane z chodzeniem po trudnym terenie robot podejmuje sam. Na filmach poniżej można więc zaobserwować jak przekłada nogę w celu znalezienia odpowiedniego miejsca do położenia jej bądź też ratuje się przed wywrotką po obsunięciu się którejś z nóg. Innych elementów prawdopodobnie nie widać na filmach a mianowicie robot dba cały czas o odpowiednie usytuowanie środka ciężkości tym samym zapewniając sobie stabilność. Każdorazowo dobiera odpowiednie przemieszczenia nóg wzdłuż wszystkich osi oraz przemieszczenie korpusu. Korpus robota jest pozycjonowany automatycznie za sprawa sterowników PID które wyliczają sterowanie na podstawie danych z żyroskopu i akcelerometru przetworzonych przez filtr Kalmana. Wysokość korpusu nad ziemią także jest ustalana przez odpowiedni algorytm. Dodatkowo robot pilnuje aby każda noga która w danej fazie chodu ma spoczywać, w przypadku utraty podłoża „znalazła” nowe poprzez systematyczne obniżanie jej. Opis powyżej przedstawia pokrótce sposób w jaki sterowany jest robot, aczkolwiek nie zawiera wszystkich szczegółów. Zostały wymienione tylko główne funkcje algorytmów sterujących. Zdaje sobie sprawę że opis ten może być ciężki do zrozumienia, ale nigdy nie miałem talentu do opisywania tego co robie, więc śmiało można pytać i będę się starał rozwiewać wątpliwości oraz uzupełnić opis w miarę możliwości. Na koniec jeszcze kilka zdjęć i filmy: Kinematyka odwrotna: Kontrola przechyłu korpusu: Chodzenie po nierównym terenie: Chodzenie po ruchomej równoważni: I jeszcze coś w HD, łażenie po kamyczkach:
  4. 3 punkty
    Nie ma czegoś takiego jak zasilacz halogenowy. Co to ma na wyjściu? Prąd stały czy zmienny? Podasz jakieś konkretne parametry? Być może zasilacz musi być obciążony jakimś minimum, i wtedy metr paska to za mało i albo drugi zasilacz, albo sztuczne obciążenie może byc potrzebne. Ale tych byćmożów to jest mnóstwo wielce za dużo
  5. 3 punkty
    Zobaczmy: 100mm/s to jest 6000mm/minutę, przy 1000 obrotach na minutę i przełożeniu 30:1 musiałbyś mieć koła o obwodzie 180mm, czyli o promieniu mniej więcej 2.86cm. Przy masie 200g (100g to same dwa ogniwa 18650 ważą) i takich kołach, potrzebujesz moment obrotowy 0.2*2.86=0.572kg*cm żeby podjechać na przykład pod próg albo inną przeszkodę. Te silniki dają ci 0.6kg*cm każdy, więc wydaje się, że masz zapas. Powinno działać. Update: Oczywiście zapomniałem o przekładni. Te 0.6kg*cm po przełożeniu będzie 30 razy więcej, więc spokojnie powinno dać radę, chyba, że moment podają już za przkładnią...
  6. 3 punkty
    Klonujesz repo BMP, budujesz dla stlink, wgrywasz bootloader USB blackmagic_dfu.bin przez UART (lub SWD), podłączasz USB, wgrywasz firmware blackmagic.bin, sprawdzasz czy arm-none-eabi-gdb widzi GDB na porcie szeregowym.Tu jest gotowa instrukcja: https://medium.com/@paramaggarwal/converting-an-stm32f103-board-to-a-black-magic-probe-c013cf2cc38c Aha, firmware Black Magic Probe którego użyłem do niebieskich/czarnych płytek STM32F103 to build stlink. Więc oczywiście można go użyć do tych tanich gwizdków USB ST Link w metalowej obudowie, jeżeli komuś nie zależy na porcie szeregowym (PA9, PA10 nie są ładnie wyprowadzone na zewnątrz)
  7. 3 punkty
    Cześć, mam jedno pytanie: a nie boisz się, że zwierzakom w terrarium mogłoby się coś stać, gdyby w układzie wystąpił jakiś błąd (np. ustawienie zbyt wysokiej temperatury)? Szczerze mówiąc nie wiem, czy bym zaryzykował używanie własnego układu do obsługi terrarium, wolałbym chyba kupić profesjonalny termostat. Wiele lat temu miałem duże akwarium z ciekawymi okazami rybek (byłem wtedy w podstawówce) i wysiadł termostat sterujący grzałką. Gdy przyszedłem ze szkoły wszystkie rybki w tym akwarium były już ugotowane - uwierz mi to nie było przyjemne. Chodzi oto, że zbudowanie działającego niezawodnie urządzenia jest bardzo trudne (trudno przewidzieć wszystkie możliwe czynniki wpływające na pracę układu). Musiałbyś najpierw długo testować takie urządzenia, aby być pewnym, że w każdej sytuacji zadziała poprawnie. Komercyjne termostaty do terrarium mają takie testy za sobą (szczególnie gdy wyrób jest długo na rynku), więc ja wybrałbym sprawdzone urządzenie ze sklepu zoologicznego. Ale decyzja należy oczywiście do Ciebie. Pozdrawiam
  8. 3 punkty
    Generalnie to chyba rozpoczęcie transmisji się sygnalizuje stanem niskim na nóżce chip select — wtedy nie musisz szukać żadnych magicznych wartości.
  9. 3 punkty
    Jeszcze chce dodać, że napisał do mnie jeden kolega z Rosji, który jak okazało się, również produkuje w dokładnie taki sam sposób domowy filament na takiej samej maszynce. Przysłał do mnie zdjęcia przykładu swoich wyrobów z własnego filamentu. Pozwolił mnie na pokazanie tych swoich wyrobów z druku 3D. Bardzo mi się spodobało. Umieszczam te zdjęcia z pozwolenia ich właściciela. Teraz wymieniamy się zdobytym doświadczeniem. Powiedział mi, że już wypracował kilka kilogramów własnego filamentu, ponieważ tak jak i ja, zużywa sporo napojów i wody, tak że butelek nie brakuje. Swoją maszynkę zrobił sam na wzorzec z tego wideo: Na minucie 8:40 pokazuje jaki kawałek łańcucha z 4 ogniw wydrukował z takiego filamentu, wydrukowana od razu całość. Tak, że jeszcze raz udowadniam wszystkim przeciwnikom domowej produkcji filamentu z zużytych butelek, że jednak można robić własny filament i nadaje się on do druku 3D. A to, co piszecie, że nie warto w to się bawić, że to tylko marnowanie czasu, to już to sprawa każdego osobno. Jak człowiek ma chęć coś zrobić swoimi rękami i zobaczyć efekt swojej pracy, to jest jego sprawa osobista i nikt nie powinien mu tego zabraniać.
  10. 2 punkty
    Witam chciałem wam przedstawić wykonaną przeze mnie kierownicę do komputera PC. Kierownica nie jest jeszcze do końca wykonana tak jak bym chciał , ale jest skończona działa można ją będzie jeszcze rozbudować Budowa od strony elektronicznej: Do budowy kierownicy użyłem jako podstawę Arduino Leonardo. Opierałem się o podobny projekt który znalazłem na yt . Lecz ja zrobiłem to trochę ładniej niż tamten chociaż nie ma rewelacji mogło być lepiej , ale w przyszłości myślę zrobić jeszcze jedną lepszą Oprócz Arduino Leonardo , zamiast jakiś potencjometrów i kombinowania z przekładniami użyłem enkoder z drukarki Canon IP2700. Ogólnie to oprócz enkodera to jeszcze parę przycisków potencjometry do pedałów i jakieś diody na podświetlenie. Poniżej schemat jak to podłączone. Oprogramowanie gotowe znalazłem pod tym filmem z którego się wzorowałem, wystarczyło wgrać XLoaderem i to wszystko podłączyć jak na schemacie. Od strony mechanicznej wygląda to tak: Odbijanie i blokada zostały zrobione na sprężynie niestety nie mam zdjęć . Dodam link do filmu na którym jest pokazane jak to działa. Ręczny przerobiony ze starej kierownicy . Elementy skrzyni biegów wydrukował mi kolega w 3D. i wygląda to tak: Pedały ze starej kierownicy , dorobiony jeden sprzęgłowy z innej kierownicy: Ostatecznie wygląda to tak: Link do filmu jak to działa i jak zrobione niektóre rzeczy: To by było na tyle w planach zrobienie Force Feed Back , na silniku DC 12v i przekładniach Pozdrawiam Krzysiek
  11. 2 punkty
    Cześć, jednego kroku możesz nie zauważyć. Obuduj tą sekwencję zmiany stanów nieskończoną pętlą while lub for. Pozdrawiam
  12. 2 punkty
    I kolejna ważna rzecz: silnik BLDC musi być zasilany w fazie z położeniem wirnika, tj. komutacje w zewnętrznym falowniku muszą następować w ściśle określonych momentach/położeniach wału. To zupełnie inaczej niż w typowym silniku AC, gdzie na stojan dajesz jakąś częstotliwość np. 20 czy 40Hz, wał kręci się zawsze trochę wolniej niż wirujące pole a moment powstaje właśnie dzięki poślizgowi jednego względem drugiego, bo tylko to generuje prąd w klatce wirnika. Jeśli bardziej obciążysz taki silnik to falownik nic nie musi o tym wiedzieć, wirnik zwalnia, moment wzrasta i wszyscy są zadowoleni. Przykład: zasilanie wprost z sieci AC 50-Hz. Tam przecież częstotliwość się nie zmienia i pole stojana zawsze wiruje tak samo szybko. W silnikach BLDC jest co do zasady bardziej jak w krokowych: wirnik musi kręcić się albo tak szybko jak pole albo wcale. Odwracając przyczynę i skutek: to falownik musi tak sterować polem by zawsze trochę wyprzedzać obecne położenie wału. Tylko tak powstanie quasi-stały moment obrotowy z którego chcesz skorzystać na wyjściu. Dlatego nie da się sensownie sterować silnika BLDC z głupiego falownika generującego na ślepo jakieś sygnały faz. Tak można zrobić tylko w przypadku małych obciążeń, małych (lub prawie zerowych) obrotów i sporego "przewatowania" sterowania czyli wtedy gdy masz pewność, że bez sprawdzania jego położenia wirnik robi to co mu każesz. Przykład: gimbale do kamer.Przy tak niskich obrotach (lub w zatrzymaniu) do sterowania w zamkniętej pętli musiałbyś mieć silnik oczujnikowany, bo back-EMF ze stojących uzwojeń nie wyciągniesz.
  13. 2 punkty
    Do strony internetowej jeszcze wrócę. Napiszę tylko, że jestem zmuszony rozbudować mój system o monitoring poziomu paliwa w zasobniku pieca przy pomocy kursowego czujnika ultradźwiękowego, oraz uruchomić regulator pokojowy tegoż pieca na moim systemie. Regulator już działa... tak jak standardowy prosty regulator pokojowy, porównuje temperaturę zadaną z pokojową, bierze poprawkę na histetezę i steruje wejściem zwarciowym w sterowniku kotła, obniżając w razie potrzeby temperaturę wody w instalacji. Do czujnika poziomu paliwa i temperatur "około piecowych" zrobiona kabelkologia, zostało programowanie;). No i zrobiłem też sterowanie bramą wjazdową, plus krańcówkaz z powiadomieniem o otwarciu, plus Google Assistant.
  14. 2 punkty
    No i niestety będę musiał przeprojektować tego robota. Okazało się, że w wersji CircuitPythona której używałem żeby wszystko sprawdzić był błąd w module pulseio w tym jak wybierane był timery i ich kanały przy tworzeniu nowych obiektów PWMOut. Przez to niektóre z nich używały tego samego timera i kanału, dzięki czemu zawsze miały ten sam duty cycle, więc serwa poruszały się razem — nie zauważyłem tego, bo przy testach ustawiałem wszystkie serwa w tej samej pozycji — that było najłatwiej napisać program. W nowej wersji CircuitPythona błąd jest poprawiony i pulseio rzuca wyjątek jak się próbuje stworzyć PWMOut dla wielu pinów, a nie ma już wolnego kanału timera. No i oczywiście dostaję taki błąd teraz z moim robotem. Będę musiał usiąść i z naleźć taką kombinację nóżek, dla których da się utworzyć PWMOut jednocześnie, a to niestety oznacza przeprojektowanie płytki. Ale nie ma tego złego co by na dobre nie wyszło: przy okazji wyrzucę akcelerometr (okazał się bezużyteczny), dodam pamięć flash (miejsce w systemie plików się przyda), przeprojektuję układ ładowania baterii (żeby się ładowała przy wyłączonym robocie) i przeniosę wszystko na górę płytki (komponenty schowane pod pojemnikiem baterii wglądają fajnie, ale są strasznie uciążliwe do debugowania). Przy okazji też dorzucę wyłączniki krańcowe na końcach stóp. Jak nie znajdę działającego zestawu 12 pinów, to będę musiał zmienić mikrokontroler na większy.
  15. 2 punkty
    Mały update dla zainteresowanych, aktualnie jestem na takim etapie: Niestety kula okazała się dość gruba, i zakupione magnesy są w stanie ledwo utrzymać się na wzajem, więc do środka prawdopodobnie będę musiał dokupić jakieś większe(o ile nie zmienię w przyszłości sfery). Teraz mam pytanie, jakie sterowniki polecacie do silników 12V, 2A(pik 3.8A) z czujnikiem Halla? Oraz jeżeli zdecydowałbym się nie korzystać z czujników czy 2 sterowniki L298 z oddzielnymi źródłami zasilania to dobry pomysł? Ogólnie planuję mieć 1 lub 2 źródła zasilania na silniki i oddzielne na arduino z sensorami.
  16. 2 punkty
    Jak się nie znasz to po co takie głupoty pisać ? Gdzie w tym kodzie widzisz sprawdzanie jakiegoś PWMa ? Ale z pisaniem własnego programu masz 100% racje ! Powiedziałbym, że przechowuje znak ale mniejsza o to. Co ma wspólnego znak w zmiennej ze znakiem-operatorem porównania ? Co ma to wspólnego z problemem kolegi. I dla czego ta odpowiedź ma w ogóle reakcje pozytywną ? Nie chcę, żeby to wyglądało na jakieś mądrzenie się, atak na was, czy coś, ale nie mogę po przeczytaniu takich odpowiedzi nie zostawić komentarza. Bo przecież człowiek przyszedł po pomoc, a wy wprowadzacie go w jeszcze większe niezrozumienie, albo piszecie odpowiedzi, które nie mają nic wspólnego z pytaniem. Trzeba by się trochę zastanowić zanim coś się napisze w internecie.
  17. 2 punkty
    A ja bym proponował Autorowi wątku dwa razy się zastanowić, czy na pewno ma wiedzę i umiejętności niezbędne do wykonania takiego projektu. Niezależnie od przyczyny, awaria zarówno sprzętu, jak i oprogramowania może prowadzić zarówno do pożaru, jak i śmierci zwierząt (nawet jeśli to gadziny). A to jest w dzisiejszych czasach bywa nielegalne https://www.tvp.info/41702756/gilotynowal-karpie-bez-ogluszania-jest-wyrok
  18. 2 punkty
    Albo sprzedawać poza UNIE. Ja sprzedaje do Rosji, Białorusi, Ukrainy, Kazachstanu. Tam nie trzeba żadnych certyfikatów. A to CE również nić nie daje, to tylko znaczek. 90% to, co kupuje się w sklepach jest zrobiono w Chinach, a oni stawią znaczek CE tak po prostu. Kto to w Chinach ubiega się o certyfikację na CE??? Kompletny bezsens tak myśleć. Kupowałem tuby laserowe, zasilacze, wszędzie jest znaczek CE, tylko jak prosiłem o przesłanie kopii certyfikatu, to nić w odpowiedzi.
  19. 2 punkty
    Jaki jest sens zasilania termistora z 5V skoro masz 3.3V od procesora? Możesz oczywiście użyć dzielnika, ale to dodatkowe komponenty i niedokładności...
  20. 2 punkty
    Cześć, moje ostatnie próby z implementacją RISC-V (konkretnie projekt: BrieySoC) na płytce Mimas V.2 ze Spartanem 6 i pamięcią LPDDR na pokładzie skłoniły mnie ,aby lepiej poznać jak działa interfejs pamięci DDR dla FPGA Spartan 6. Tutaj linki do tej płytki : https://botland.com.pl/pl/moduly-i-zestawy-fpga/8603-mimas-v2-spartan-6-plytka-rozwojowa-fpga.html https://numato.com/product/mimas-v2-spartan-6-fpga-development-board-with-ddr-sdram Płytka ta ma "na pokładzie" układ FPGA Spartan XC6SLX9 ( CSG324 package), który to układ ma dwa sprzętowe kontrolery pamięci DDR oraz kostkę pamięci LPDDR o symbolu MT46H32M16LF. Jest to pamięć LPDDR (skrót od: Low Power DDR Memory) taktowana max. 166MHz, orgaznizacja 512Mb. W poście: https://forbot.pl/forum/topic/12529-licheetang-anlogic-eg4s20-fpga-board-risc-v/?page=4&tab=comments#comment-129692 opisuję moje zmagania z próbą uruchomienia architektury "RISC-V" - projekt "BrieySoC" na płytce Mimas V.2. Utknąłem z tym projektem właśnie z powodu nie-kompatybilnego z płytką MIMAS V.2 sterownika pamięci DDR. Postanowiłem więc poszukać w sieci tutoriala opisującego obsługę zewnętrznej pamięci DDR z poziomu układu FPGA Spartan6 i znalzłem ten link: https://hackaday.io/project/160637-learning-fpga-and-verilog-beginners-guide-part-6/details Przećwiczyłem ten tutorial i on rzeczywiście działa - składa się z dwóch części: 1) Generacja IP core do obsługi pamięci DDR z poziomu ISE 14.7 (dokładnie pakietu "Core generator") 2) Obsługa pamięci DDR z wykorzystaniem soft-procesora Microblaze i "Xilinx EDK" (Xilinx EDK jest płatnym narzędziem komercyjnym, ale można pobrać trial działający przez 30 dni) Stworzyłem ten post trochę dla siebie (aby był pod ręką w razie potrzeby), oraz dla innych użytkowników, którzy także będą mieli portrzebę obsługi pamięci DDR dla FPGA Spartan6. Przedtem ćwiczyłem dwa inne tutoriale dotyczące obsługi pamięci DDR z poziomu FPGA, ale tamte próby nie zakończyły się powodzeniem. Tutaj link do ogólnego opisu budowy pamięci SDRAM: https://www.electronics-notes.com/articles/electronic_components/semiconductor-ic-memory/sdram-synchronous-dram-what-is.php W załączniku spakowany projekt dla ISE 14.7 (Core Generator) z wygenerowanym sterownikiem pamięci DDR dla płytki Mimas V.2. Plik binarny projektu do konfiguracji FPGA znajduje się w katalogu; ..\DDRMemory01\ipcore_dir\s6_lpddr\example_design\par\example_top.bin , a cały projekt jest zbudowany według pierwszej wersji zamieszczonego tutoriala. DDRMemory01.zip Pozdrawiam
  21. 2 punkty
    Z tego co pamiętam założyłem że skoro projekt jest sprawdzony to wszystko powinno działać Na płytce DE1-SoC pamięć DDR działa na pewno, używałem jej jako pamięci dla wbudowanego Cortex-A9 do uruchamiania linuksa i problemów nie było. Miałem za to mnóstwo problemów z jtag-iem i kiedy się w końcu połączyłem właściwie odechciało mi się tym bawić.
  22. 2 punkty
    Cześć, jeśli dobrze zrozumiałem jest to kod odbierający dane od układu FPGA (na mikrokontrolerze Nucleo-F746ZG). Czy mógłbyś zamieścić kod wysyłający dane z układu FPGA? Nie wiem jak masz to zorganizowane po stronie FPGA, czy jest to twój własny kod w języku HDL (VHDL lub Verilog), czy jakiś IP-Core, lub kod na soft/hard/CPU? Kod, który przedstawiłeś ma warunek: if (rx_spi5[0] == trig) Obawiam, się że ten warunek będzie spełniony bardzo rzadko (lub nigdy) i wtedy cała zawartość pętli while się nie wykona. Powinieneś użyć jakiegoś bufora FIFO do wysyłania i odbioru danych. Pozdrawiam
  23. 2 punkty
    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!
  24. 2 punkty
    Witam wszystkich, od mojego ostatniego postu tutaj minęło sporo czasu ale wcale nie porzuciłem robotyki. Jak wszyscy wiemy życie po studiach zaczyna zjadać coraz więcej czasu. Prawie 4 lata temu wrzuciłem tutaj post z moją konstrukcją robota typu delta (Delta Robot). Mam wrażenie, że bardzo fajnie się przyjął i tamta konstrukcja (jak wspominałem 4 lata temu) była prototypem, na którym zaczynałem się uczyć. Cztery lata rozwoju nie tylko mnie ale też dostępnej technologii jak np. druk 3D i mocniejsze mikrokontrolery niż poczciwa Atmega pozwoliły mi rozwinąć skrzydła. Ale przechodząc do meritum, przedstawiam moją następną wersję robota typu delta: Robot składa się w tym momencie z: ramienia, taśmociągu, systemu wizyjnego. systemu generującego podciśnienie 1.Mechanika Do zrobienia tego robota wykorzystałem tyle części z poprzedniej konstrukcji ile się dało. Ale ze względu na postęp techniki i moje większe możliwości finansowe większość przeprojektowałem w SolidWorksie i wydrukowałem na własnej drukarce 3D. Ramiona zamontowane są na podwójnie łożyskowanym wale, który napędzany jest poprzez pasek zębaty, a ten z kolei przez silnik krokowy z zamontowanym 12bitowym enkoderem. Taśmociąg także sam zrobiłem z profilu aluminiowego z Allegro oraz silnika DC z przekładnią. Pas kupiłem z profesjonalnej firmy na zamówienie. Może to brzmi groźnie i drogo ale tak nie jest. Pas kosztował 110 zł brutto. robot posiada 4 osie, dokładnie tak jak poprzednia konstrukcja. 2. Elektronika Najważniejszym układem scalonym jest mikrokontroler TEENSY 3.6 (link) zajmuje się: sterowaniem silnikami krokowymi, obsługą enkoderów silników jak i taśmociągu, komunikacją z komputerem, zapisem programów, punktów oraz wszelkich ustawień na karcie SD Jest to kontroler kompatybilny z bibliotekami Arduino i szczerze dla całego projektu zbawienne było to, że miałem gotowe biblioteki dla wielu rzeczy i nie musiałem się uczyć tego procka wraz z wszystkimi rejestrami, algorytmami zapisu na kartę SD, protokołu SPI oraz obsługi wielu peryferii jak sterowniki silników krokowych (o tym za chwilę) oraz np. ekranu LCD. Mogłem się skupić na moim celu czyli aplikacji, która ma spełniać moje założenia. Dodatkowo w kontrolerze, a także w ramieniu znajdują się: Teensy 3.2 - obsługa ESTOP, IO (wejść/wyjść), obsługa LCD oraz pomost w komunikacji pomiędzy głównym prockiem, a Arduino w ramieniu, Arduino Nano - obsługa PID taśmociągu, sterowanie serwochwytakiem ( kontroler Pololu Maestro), sterowanie pompą podciśnienia oraz elektrozaworem, Arduino Nano - komunikacja z komputerem poprzez zTCP/IP Silniki wyposażone są w enkodery absolutne AMS AS5045, które dostałem za darmo. Robot wyposażony jest w 4 wejścia oraz 4 wyjścia 24V (standard przemysłowy). W celu testowania czy wszystko dobrze działa zrobiłem dodatkowo prosty panel z 4 diodami oraz 4 przyciskami do testowania czy wszystko dobrze działa. Silniki sterowane są poprzez sterownik silników krokowych AMIS-30543 (link), który pozwala na konfiguracje poprzez magistralę SPI, a także na sterowanie z mikrokrokiem x32, które to sterowanie tutaj wykorzystuję. Dodatkowo jak widać na zdjęciach zaprojektowałem oraz zmontowałem (po dostaniu od Satlandu) płytki, które pozwoliły wszystko spiąć ze sobą. Nie będę wrzucał schematu PCB, bo nie jest to nic interesującego. 3. System wizyjny Robot skalibrowany został z systemem wizyjnym OpenMV (link). Kamera została zaprogramowa w języku Python i jej zadaniem jest w zadanym czasie (komunikat wysłany po uart) zrobić zdjecie i zliczyć bloby o odpowiedniej wielkości. Kamera wurzyca po porcie uart dane do mikrokontrolera głównego w postaci NUMER/X/Y/KĄT/ już we współrzędnych robota. Po dostaniu danych do tablicy punktu dodawana jest aktualna pozycja taśmociągu. Dzięki temu robot jest w stanie trafić w detal podczas ruchu taśmy. 4. System sterowania Całość oparta jest na matematyce, mikrokontroler oblicza zadanie proste oraz odwrotne kinematyki (dla pozycji oraz prędkości). W przeciwieństwie do starej konstrukcji układ sterowania naprawdę bierze pod uwagę pozycję oraz prędkość, dzięki temu robot porusza się bardzo płynnie oraz może zachować określoną prędkość liniową punktu TCP (Tool Central Point). Algorytmy pozwalając na poruszanie się w trybach: JOINT - ruch obliczany jest tak, aby każda oś zakończyła pracę w tym samym czasie, LINEAR - ruch lionowy punktu TCP z określoną prędkością liniową, TOOL - ruch liniowy ale zgodny z układem współrzędnych narzędzia CONV - tryb ruchu liniowego z załączonym śledzeniem taśmy, Cały program posiada w tym momencie jakieś 6 tys linijek kodu i pozwala na pracę w trybie automatycznym jak i ręcznym robota. Całość jest napisana w języku C/C++. 5.Program na PC Program napisany w C# w środowisku VisualStudio. Pozwala na: załączenie silników (przekaźnik odcinający na linii 24V), Zwolnienie napędów (enable na sterowniku krokowców) ułatwia ręczne uczenie punktów, Resetowanie błędów, Sterowanie robotem w trybie ręcznym, Uczenie punktów, Edycję ręczną zapisanym punktów na robocie, ustawienie układu TOOL oraz pozycji domowej robota, pisanie prostych programów w skryptowym języku podobnym do BASICA (jestem w trakcie prac) uruchamianie programów w trybie automatycznym, deklarowanie konkretnych działań pod wejścia oraz wyjścia np. cykl start na wejściu 1 podgląd pozycji robota, podgląd IO robota, sterowanie taśmociągiem, zapisywanie oraz sczytywanie ustawień robota oraz punktów z/do pliku na PC po połączeniu z robotem automatyczne sczytanie ustawień oraz punktów z karty SD w kontrolerze. 6.Filmiki Wiem, że to tylko krótki post na temat tego robota i w temacie dla zainteresowanych jest znacznie więcej do opowiedzenia dlatego jak ktoś ma jakieś pytania to zapraszam do komentarzy oraz wiadomości
  25. 2 punkty
    Idąc za ciosem, tym razem chciałem przedstawić (najprawdopodobniej) pierwszego na tym forum robota klasy Ketchup House. W pracach nad jego stworzeniem brało udział 5 członków Koła Naukowego Robotyków. Nazwa Nazwa Pomidor wydaje się być dość zrozumiała z uwagi na nazwę konkurencji w której startuje, jednak numeracja już niekoniecznie Otóż bezpośrednim protoplastą tego robota jest robot Pomidor (1). Robot miał parę błędów konstrukcyjnych, które powodowały, że nie spisywał się najlepiej. W związku z tym podjęliśmy decyzję o zrobieniu dużo bardziej zaawansowanego robota – Pomidora 2. Jednak na jakiś czas przed zawodami stwierdziliśmy, że nie zdążymy wykonać go w wymarzonej przez nas formie, więc powstał robot będący hybrydą tych dwóch podejść – Pomidor 1.5. Konstrukcja okazała się na tyle udana, że na jej podstawie powstała kolejna generacja robota – Pomidor 1.6 (o której będzie zapewne w kolejnym poście). Zawody Ketchup House Ponieważ jest to dość egzotyczna kategoria (przynajmniej w Polsce), pozwolę sobie ją najpierw krótko opisać. Moim zdaniem, Ketchup House jest zdecydowanie najbardziej nieprzewidywalną i widowiskową konkurencją odbywającą się na zawodach konstruktorskich. W każdej, trwającej 3 minuty rozgrywce udział biorą 2 roboty. Polem ich zmagań jest biała, kwadratowa plansza o wymiarach min. 1,8x1,8m. Na planszy znajduje się 10 czarnych linii (5 poziomych i 5 pionowych) o szerokości 12mm, tworząc kwadrat o wymiarach 1,2x1,2m, podzielony na 16 mniejszych kwadratów o wymiarach 0,3x0,3m. Na skrzyżowaniach umieszczane są puszki z tytułowym keczupem. Są to typowe stalowe puszki o średnicy 53 mm, wysokości 74 mm i masie ok. 163 g. W każdej, trwającej 3 minuty potyczce biorą udział 2 roboty. Ich zadaniem jest przemieszczenie puszek na swoją linię „domową”. Na początku rozgrywki na planszy znajduje się 5 puszek. 2 z nich, zaznaczone na zielono, znajdują się w ustalonych pozycjach (skrzyżowania C2 oraz C4). Położenie 3 pozostałych puszek jest losowane tuż przed rozpoczęciem pojedynku. Aby zrównoważyć szanse robotów na zwycięstwo, każda z dolosowywanych puszek musi się znaleźć na innej z linii B, C, D. Na początku pojedynku roboty są umieszczane w pozycjach A3 oraz E3. Na znak sędziego roboty są uruchamiane. Od tej pory, aż do zakończenia pojedynku nie ma możliwości ingerencji w ich działanie. Jeżeli podczas rozgrywki robot poruszy jedną z puszek w wylosowanej pozycji, to na jej miejsce dostawiana jest kolejna. Dostawienie następuje po przejechaniu przez robota do następnego skrzyżowania. W trakcie jednego pojedynku na planszy może się pojawić łącznie do 12 puszek. Istnieje zupełna dowolność w sposobie przemieszczania i odstawiania puszek. Nie ma także ograniczeń co do sposobu poruszania się po planszy – roboty mogą poruszać się po wyznaczonych liniach, ale nie muszą. Przypadkowe zderzenia na ogół nie są karane, jednak niezgodne z zasadami jest zamierzone „dążenie do zderzenia” (np. wypychanie poza planszę). Roboty powinny wykrywać i omijać przeciwnika. Po upływie 3 minut następuje zakończenie potyczki. Roboty (jeżeli zachodzi taka potrzeba) są zatrzymywane. Za każdą puszkę dotykającą linii bazowej przyznawany jest 1 punkt. (Na rysunku poniżej przykładowa sytuacja na koniec pojedynku, zakończona wynikiem 5-4 na korzyść robota 2 (niebieskiego)). Mechanika Po tym dość przydługim wstępie, teraz parę słów o samej konstrukcji. Bazę robota stanowią dwie płyty laminatu szklano-epoksydowego. Obie płytki stanowią dwojaką rolę - po pierwsze są to bazowe komponenty, do których montowane są wszystkie pozostałe części, po drugie zaś - rozmieszczone są na nich wszystkie połączenia elektryczne. Obie płyty mają kształt prostokąta o wymiarach 200x190 mm, w którym wycięto V-kształtne wycięcie. Płyty są ze sobą skręcone za pomocą mosiężnych dystansów. Układ napędowy stanowią dwa silniki POLOLU z przekładnią 298:1. Wcześniej stosowaliśmy silniki o dużo mniejszym przełożeniu, jednak podczas naszych pierwszych zawodów okazało się, że jazda ze zbyt dużą prędkością jest nieopłacalna – podczas zderzeń sędzia zawsze uznawał, że to nasza wina, gdyż jechaliśmy z dużo wyższą prędkością (poza tym zastosowanie tak dużego przełożenia pozwoliło nam na uzyskanie większej dokładności enkoderów). Koła podporowe (Kastora) oraz koła napędowe także pochodzą od POLOLU – zostały wybrane głównie ze względu na odpowiedni rozmiar. Do unieruchamiania puszki wykorzystujemy ramkę napędzaną serwomechanizmem. Aby mieć możliwość dokładnego sterowania oraz monitoringu siły, zdecydowaliśmy się na Dynamixela AX-12A (duży wpływ na to miał także fakt, że akurat taki posiadaliśmy w schedzie po starszym projekcie ) Na zawodach zaobserwowaliśmy, że ze względu na wystające kółka czasami robotowi zdarza się zakleszczyć (np. o puszkę) aby uniknąć takich sytuacji wydrukowaliśmy osłonę okalającą całego robota. Elektronika Schemat ideowy całego układu elektronicznego można zobaczyć na rysunku poniżej: Mózgiem robota jest STM32F100RB, będący częścią zestawu STM32 Discovery VL. Zdecydowaliśmy się na takie rozwiązanie, aby móc podczas zawodów zmieniać szybko algorytm pomiędzy potyczkami i mieć możliwość jego szybkiego wymienienia w razie awarii. Jak można zaobserwować na rysunku robot jest wyposażony w dużą ilość czujników. Zdecydowanie najważniejszymi z punktu widzenia algorytmu sterowania są czujniki odbiciowe. Jest ich aż 17 (na dolnej płytce) ich rozmieszczenie można zaobserwować na rys. poniżej. Aby móc dopasowywać się do różnych plansz, układ wyposażono w komparatory oraz potencjometr, które pozwalają na ustawienie poziomu, od którego wykrywana jest czerń. KTiRy można przyporządkować do 3 grup. Czujniki oznaczone numerami 4-11, znajdujące się w przedniej części robota, są wykorzystywane w algorytmie jako źródło danych regulatora sterującego jazdą po prostych, a także (w mniejszym stopniu) do wspomagania obrotu. Czujniki w przednich rogach płytki (odpowiednio 11 i 12 oraz 13 i 14) były wykorzystywane przy dowożeniu puszek - do dokładnego pozycjonowania puszek na linii oraz jako czujniki awaryjne podczas jazdy po prostej. Transoptory po bokach (15, 16 i 17 oraz 18, 19 i 20) umożliwiają wykrycie dojazdu do skrzyżowania oraz są głównymi sensorami wykorzystywanymi w algorytmie obrotu. W toku testowania okazało się, że bardzo przydatne byłyby dodatkowe czujniki, które umożliwiłyby jazdę po linii do tyłu. Aby nie wytrawiać całej płytki od nowa, wykonano dodatkową tylną płytkę, na której znajdują się 3 czujniki (o numerach 1-3) Kolejnymi ważnymi czujnikami były enkodery. Na początku stosowaliśmy enkodery optoelektryczne, które do poprawnego działania wymagały zastosowania komparatorów oraz przejścia żmudnego procesu kalibracji (dla każdego z KTiRów z osobna dobieraliśmy nastawy potencjometru). Jednak gdy tylko pojawiły się enkodery magnetyczne dla silników POLOLU, nasze problemy odeszły do lamusa. (Dla porównania – sygnał z enkoderów optoelektrycznych oraz z magnetycznych) Poza tym stosowaliśmy czujniki odległości – do wykrywania puszki oraz do wykrywania przeciwników na planszy. Aby uniknąć cross-talku do jednego zadania wykorzystaliśmy analogowe czujniki SHARP (4-30) a do drugiego czujniki ultradźwiękowe. Aby ustawić odpowiedni kąt czujników ultradźwiękowych – tak, aby wykrywały jedynie przeciwnika, a nie puszkę, zaprojektowaliśmy specjalne mocowanie, umożliwiające modyfikację ich kąta nachylenia. Dla ciekawskich, poniżej są schematy: Na koniec, tradycyjnie, krótki filmik pokazujący działanie robota: [ Dodano: 28-03-2016, 22:01 ] Nie chcąc przedłużać i tak przydługiego już posta, o algorytmie będzie nieco więcej przy okazji opisu robota Pomidor 1.6.
Tablica liderów jest ustawiona na Warszawa/GMT+02:00
×