Skocz do zawartości

mice.co

Użytkownicy
  • Zawartość

    21
  • Rejestracja

  • Ostatnio

  • Wygrane dni

    1

Posty napisane przez mice.co


  1. Dnia 10.03.2019 o 16:53, skibos napisał:

    według tego rozumowania przy Prescaler=5, Period=254 otrzymam częstotliwość PWM o wartości 31250Hz tak ? I w Pulse ustawiam wartość początkową z zakresu od 0 do 255 i w kodzie mogę zmieniać wartość _HAL_TIM_SET_COMPARE z zakresu od 0 do 255 ?

    Tak, zgadza się.

    Dnia 10.03.2019 o 16:53, skibos napisał:

    Poczytałem troszeczkę, zmieniłem ustawienie zegarów na 48 MHz. Podzieliłem częstotliwość zegara czyli 48000000 Hz przez częstotliwość którą chcę  otrzymać czyli 31250Hz i wyszło mi 1536 ( 1535+1) czyli wyszedł mi Prescaler ? Jeśli nie to prosiłbym o dokładne wytłumaczenie, jeśli tak to uważam że nadal nie wiem jak ustawić wartość Period i Pulse.

    Wyszedł Ci Period.

    Żeby maksymalnie uprościć, a jednocześnie nie wprowadzać zbyt dużej karykatury sprowadzając temat do "Arduinów"...
    Wzór FREQ = TIM_CLK/(ARR+1)(PSC+1)(CKD+1) na częstotliwość sygnału PWM jest dobry (dla standardowego trybu edge-alligned, który zapewne Cię interesuje).
    Zakładam, że ustaliłeś TIM_CLK na 48MHz.
    ARR, czyli Period będzie rozdzielczością sygnału PWM. PSC, czyli Prescaler pozwala przeskalować częstotliwość inkrementacji licznika (PSC=1 -> 48MHZ/2 = 24MHz). CKD pomijam.
    Dla 31250Hz dobrze Ci wyszło: 1536 ( 1535+1)  - teraz zauważ, że 1535 mieści się w zakresie rejestru 16-bitowego. Więc PSC możesz spokojnie zostawić na 0, a wartość 1535 wpisać do rejestru ARR - uzyskasz w ten sposób maksymalną rozdzielczość sygnału PWM.

    Makrem _HAL_TIM_SET_COMPARE ustawiasz rejestr CCRx, czyli Pulse dla danego kanału (z zakresu 0 do ARR).
    CCRx/ARR będzie wypełnieniem sygnału PWM. Pamiętaj, że gdy ustawisz CCR na wartość większa niż ARR, wypełnienie będzie wynosić 100%.

    Skoro do tej pory nie udało Ci się rozwiązać problemu, zakładam, że technika mikroprocesorowa, czy bardziej co się dzieje w środku mikrokontrolera, Cię nie interesuje i rozumiem - nie wszystko na raz. Jeśli to Twoje początku radzę więcej grzebać, próbować, testować i szukać. Jest pełno poradników, kursów i na pewno, jeśli pojawia się problem, to ktoś już się z tym spotkał. Dla podobnych problemów forum ST może być dobrą alternatywą dla forbota 🙂

    Jeśli chcesz popróbować z licznikami to warto pod sygnał PWM podłączyć diodę (z opornikiem oczywiście) i tak jak tutaj, wyliczyłeś ARR dla 31250Hz. Zmieniasz PSC z 0 na 31250-1 i patrzysz, czy dioda będzie zapalać się co 1 sekundę na długość ustawionego Pulse (_HAL_TIM_SET_COMPARE ). Łatwo wówczas wyłapać błędy, jeśli dioda zapala się co 0.5s, lub 2s, to znaczy, że np. TIM_CLK nie jest 48Mhz. 🙂

    • Lubię! 2

  2. 2 godziny temu, Mr_Wind napisał:

    Konstrukcja robi ogromne wrażenie, gratulacje! Mam pytanie dlaczego zdecydowałeś się na trzy oddzielne układy LDO 3.3V?

    Osobno wydzieliłem zasilanie części analogowej pod czujniki linii - ma wpływ na dokładność pomiarów adc. Podobnie z imu. Część cyfrową projektu mam bardzo rozbudowaną i na pewno pojawia się sporo zakłóceń. Izolacja zasilań częściowo eliminuje wpływ tych zakłóceń.

    Pod STM32 użyłem ldo spełniające kryterium zużycia prądu, układ 500mA. Pod analog oraz imu kryterium był poziom szumów i tłumienie zakłóceń. Czynnikiem była również przetwornica 5V, która pulsuje - ldo z wyższym pssr lepiej tłumi takie pulsacje (o ile przy 2MHz przetwornicy da się to zauważyć, każde może tłumic praktycznie tak samo)

    • Lubię! 2

  3. 17 godzin temu, Sabre napisał:

    (...)
    I tutaj dziękuję wszystkim, którzy ze mną rozmawiali, za cierpliwość 😃, wróciłem do domu z bólem gardła 😫. Gratuluję Mateuszowi zajęcia pierwszego i drugiego miejsca w linefollowerach, a Kornelii zwycięstwa w minisumo. Mam nadzieję, że następnym razem spotkamy się po tej samej stronie barierek, trochę mnie zmobilizowaliście do ukończenia dawno odkładanych nowych linefollowerów 😎.

    Dziękuję za gratulacje. Liczę że ruszysz w temacie, bo odstawiłeś do szuflady na prawdę ciekawe pomysły i zdecydowanie brakuje świeżego podejścia w konkurencji 😀

    Startując w konkurencji LF sam na początku musiałem chwilę poszukać odpowiedniej sali, ale było to ok. godz. 9. Później zauważyłem porozwieszane kartki kierujące zawodników/widzów we własciwe miejsce. Faktycznie z powodu przeniesienia konkurencji, odczułem mniejsze zainteresowanie konkurencją, ale z drugiej strony w poprzednich latach miałem problem poruszać się z salki technicznej na dół, a następnie przedzierać się przez tłumy widzów upchane pomiędzy barierkami - było ciasno.
    Samą konkurencję uważam za dobrze zorganizowaną. Wydaje mi się, że nie było opóźnień ze startem konkurencji i wszystko przebiegło dość gładko. Później ze względu na opóźnienia xsumo, finały lf i lf enhanced musiały troszkę zaczekać.
    Na duży plus zasługuje fakt, że trasy względem poprzednich lat zostały ~dwukrotnie powiększone. W ostatnich latach średni czas przejazdu szybkiego robota bez turbiny wynosił 6s, w tym roku trasa liczyła co najmniej 20m długości i czas przejazdu sięgał 11-18 sekund (w eliminacjach krótsze, finały trudniejsze-wolniejsze).
    Ekipa od LF spisała się bardzo dobrze, sędziowie trzymali się regulaminu, trasy były wyklejane bardzo sprawnie.

    Problem z komunikacją również mnie dotknął - przegapiłem rozdanie nagród w swojej konkurencji będąc w strefie technicznej - informację dostaliśmy od znajomych, którzy oglądali transmisję w TVPW 😅  Na szczęście nagrody nie przepadły i nawet daliśmy radę zrobić sobie zdjęcie pamiątkowe na podium 🙂

    Jeżeli chodzi o nagrody - subiektywnie zabrakło statuetki na pamiątkę (osobiście wolę statuetki od nagród materialnych).

    Ogólnie zawody pod wieloma względami uważam za lepiej zorganizowane niż rok wcześniej.

    • Lubię! 1

  4. Dzięki za pozytywny odzew!

    10 godzin temu, Treker napisał:

    Ode mnie trzy pytania:

    1. Płytka wielowarstwowa, bo miałeś taką możliwość, czy faktycznie była już niezbędna przy tym projekcie?
    2. Jak oceniasz teraz wykorzystanie żyroskopu? Dużo pomógł, czy tylko przysporzył więcej problemów?
    3. Robiłeś próby z mapowaniem trasy?

    Ad. 1. 4-warstwowa płytka ma swoje zalety. Możliwe, że dla płytki z czujnikami była troszkę przesadą, ale miałem wizję schować sygnały analogowe pomiędzy ekran (pomijając tasiemkę).
    Przede wszystkim znacznie wygodniej projektuje się taką płytkę, nie musiałem się martwić o nieoptymalnie poprowadzone zasilanie - w tym przypadku zasilania umieściłem na wewnętrznych warstwach i zadbałem, aby zbiegały się w odpowiednich miejscach. Obecnie zasilanie jest "czyściutkie" przy zastosowaniu po jednym 33uF na silnik. Przy 4 warstwach możliwe jest również pilnowanie impedancji dla sygnałów różnicowych USB, choć często przy takich długościach jak u mnie, można to olać. Na koniec wydaje mi się, że bez 4 warstw mógłbym nie zmieścić się w takich wymiarach pcb.

    Ad. 2. Miałem większy plan z tym  żyroskopem, jednak zdziwiony, że robot idealnie śmiga po linii bez niego, używam go w trakcie jazdy tylko do omijania przeszkód. Zabrakło czasu na dalszy rozwój. Był zamiar eliminowania wpływu poślizgu na zakrętach, a nawet oparcie całego poruszania robota na danych z odometrii i zastąpienie pełnego regulatora PD linii, jedynie członem proporcjonalnym.
    Dorzucam wykres, jak wygląda trasa wg. robota przy bezpośredniej zamianie kąta z enkoderów na kąt z żyroskopu.
    odometria.thumb.png.0697ef0e649b8737ea6206f3cfa143b0.png

    Ad. 3. Większość prób z mapowaniem wykonałem na logach w Matlabie. Wyszacowałem dość spory zysk z mapowania dla tras z dużą ilością prostych odcinków. Przygotowałem prosty algorytm, który nadawałby się do przejazdu z jedynie 1 przejazdem mapującym i faktycznie zdawało to egzamin w warunkach domowych, na małej trasie. Znowu, zabrakło czasu doimplementować interfejs, który wymagałby kilku przeróbek w programie i zmian w aplikacji na smartfon i cały czas odsuwam wykorzystanie mapowania na zawodach. Po każdym przejeździe zostają mi "suche" informacje na temat trasy o długości, zakrętach i odcinkach prostych. Być może na kolejnych ostatnich zawodach... 😆

    8 godzin temu, Alvedro napisał:

    Bardzo fajna konstrukcja. Kilka pytań:
    1. Dlaczego przełożenie w silniku 10:1, odcinki proste często są krótkie, więc chyba rzadko jesteś w stanie rozpędzić go do maksymalnej prędkości, nie lepiej mieć większe przyspieszenie kosztem niższej maksymalnej prędkości?
    2. I2C nie lubi za bardzo zmiennego pola magnetycznego, możliwe, że to powodowało problemy z VL53L1X. Jak przez BLDC przepuszczałem sygnały I2C to przewody zasilające silnik przepuszczałem kilkukrotnie przez koralik ferrytowy. 🙂
    3. Gdzie dorwałeś enkodery AS5047P? 😛 Ostatnio miałem problem, żeby dostać coś z enkoderów mangetycznych od AMS.
    4. Jak omijasz przeszkodę? Na sztywno, metodą prób i błędów w przypadku niepowodzenia, czy coś bardziej zaawansowanego?
    5. Wykorzystujesz zapamiętaną trasę? Co dokładnie zapisujesz? Obliczasz np. maksymalne prędkości, które pozwolą nie pokonanie zakrętu bez uślizgu itp.?

    6. Myślałeś o czujniku optycznym z myszki? Może to zniwelować ewentualne poślizgi kół, tylko pytanie czy aż taka dokładność jest potrzebna.
    7. Dlaczego nie ułożyłeś KTIR'ów jeszcze bliżej, tak by stykały się nawet obudowami obracając je o 90 stopni.

    Ad. 1. Przekładnię w Pololu uważam za idealnie dobraną, kolejna z szeregu - 30:1 nie pozwoli na uzyskanie wymaganej prędkości przy li-po 2S. Bardziej poszedłbym w zmniejszenie średnicy kół z ~25 do 20mm. Dodatkowy moment obrotowy i tak pójdzie w poślizg. Nawet teraz przy ruszaniu z miejsca 0-2.5m/s słychać pisk opon (przy idealnie wyczyszczonych kołach). Kolejny poślizg widać już od pierwszego zakrętu. Przy takiej masie konstrukcji bez turbiny, momentu nie brakuje.

    Ad. 2. Nie tylko I2C ma problemy z zakłóceniami. Jak widać ze zdjęć, próbowałem skręcania przewodów, nic nie dawało również zmniejszanie prędkości z 400kHz do 100kHz. Przestałem grzebać przy i2c, gdy zorientowałem się, że sam czujnik po wysypce wymaga odłączenia zasilania, nie odpowiada na dalszą komunikację. Co drugi przejazd czujnik działa bez zarzutu i tak zostało.

    Ad. 3. Enkodery zamówiłem chyba w 2016 roku, gdy pojawił się pierwszy pomysł na nowego robota. Czekały w pudełku na tę konstrukcję 🙃. Również stwierdzam, że obecnie ciężko je zdobyć i wymagają zakupów np. z mousera, z magnesami pewnie jeszcze gorzej.

    Ad. 4. Przeszkodę omijam łukiem złożonym z dwóch sinusoid. Parametry łuku dobieram przed przejazdem i takie podejście również wymaga prób i błędów aby dograć parametry pod warunki na torze.

    Ad. 5. Do tej pory nie wykonałem na zawodach żadnego przejazdu odtwarzanego z mapy. Obecnie próbowałem najprostszego podejścia z nałożeniem maksymalnej prędkości jedynie na odcinki proste, tak aby nie wystąpił poślizg.

    Ad. 6. Czujnik z myszy musiałby mieć wysoką prędkość maksymalną (z 5m/s) i sprawdzić sie w warunkach drgań, nierówności, podskoków itd. Swego czasu poddałem się z takim czujnikiem, przy próbie kupna, nawet uszkodzonej myszki.

    Ad. 7. Chciałem zostać przy ułożeniu pary nadajnik-odbiornik w pionowej linii i mieć pewność, gdzie znajduje się środek czujnika. Dodatkowo ustawiłem sobie limit 12 czujników i dalsze zmniejszanie odstępów mogłoby sprawić, że robotowi zabraknie pola widzenia.

    • Lubię! 2

  5. Potwierdzam - soft start się nie sprawdzi. Robot może kicać na zakrętach.

    A w przypadku "analogowego" zczytywania z czujników linii pewnie trzeba podnieść listwę troszkę w górę, dobrać odstępy, prąd diody.. Dodatkowo może to być problematyczne w przypadku zmiennego oświetlenia. Nie wiem jak to jest w najszybszych LFach, ale może i warto się tym zająć. Dzisiaj liczy się najmniejszy szczegół, żeby przodować w tej konkurencji.


  6. Świetne zawody, najlepsze na jakich byłem - a byłem już na 3 😅

    Organizacja i przygotowanie 9.5/10 (zawsze można coś poprawić 🙄 )

    Doceniam poświęcony czas, siły i że komuś się chciało.

    Wysoko podnieśliście poprzeczkę, na pewno wyróżniacie się na tle innych i mam nadzieję, że organizatorzy innych zawodów będą starać się wam dorównać.

    Jedynie mogłoby być troszkę więcej zawodników.


  7. Płytkę czujników już zaprojektowałem.

    Cały czas przeglądam tę notę katalogową i nadal nie rozumiem.

    Vo z KTIR przekracza 0-5V?

    Znalazłem także, że pull-upy w Atmedze8 to 20-50k, znajomy mi powiedział, że prawdopodobnie mogę je zastosować zamiast tych "fizycznych", w nocie jest przykład z 15k, znaczna różnica?

    Niestety trochę śpieszę się z płytką, bo chcę by była skończona zanim wyjadę z domu, a później zajmę się najgorszą dla mnie przeszkodą czyli programowaniem. Jeśli nie będzie się do tego nadawała to nic się nie nauczę i pewnie odstawie projekt na kolejne święta. Muszę też godzić to wszystko z innymi obowiązkami.


  8. Przyznaję, marny ze mnie elektronik. Sposób podłączenia czujników z tym komparatorem podpatrzyłem z innych projektów (Macliner 2 bodajże). Z opornikiem wyliczyłem, że będzie to 470 Ohm, tamte też podpatrzyłem z innych projektów. To mój pierwszy projekt i ciężko mi wszystko projektować od podstaw..

    Aktualnie będę podłączał czujniki w ten sposób:

    Może to nie jest dział dla zielonych, ale czy mógłbyś powiedzieć mi jakie są zagrożenia, co do poprawy i czy muszę całą płytkę od nowa tworzyć..? :/

    O kurcze, w Maclinerze chyba są wewnętrzne rezystory pull-up z uC, niestesty nie mam o tym żadnego pojęcia. Czy da się to tutaj zastosować bez większych ingerencji?


  9. Dzięki, właśnie takiej odpowiedzi oczekiwałem.

    Miał być piękny LF na jednym PCB, ale postanowiłem, że utnę część z czujnikami, i podczepię nową z dobrze połączonymi.

    Teraz zastanawiam się tylko czy potencjometr z rezystorami pod komparator mają dobre wartości, i czy właśnie dać 10k zamiast 20k na "podciągniki"?


  10. Oczywiście, że nie chcę.

    Po prostu jak mówię, mam już wytrawioną i polutowaną płytkę. Nie uruchamiałem jej jeszcze, zauważyłem po prostu błąd połączenia. A pytam, gdyż wyczuwam choć cień szansy po przejrzeniu datasheetu:

    Max Ratings

    Emitter-collector voltage Veco 5 V

    i znalezieniu takiego tematu na elektrodzie:


  11. Wiem jak należało podłączyć, ale chciałem się zapytać czy można podłączyć odwrotnie. Bo jak w eagle'u łatwo sobie kliknąć i zamienić wyprowadzenia, tak na wytrawionej i polutowanej płytce już nie bardzo..


  12. Witam,
    Przy projektowaniu robota użyłem czujników KTIR0711S, żeby sprawdzić jak należy je podłączyć zajrzałem na google'a i nieświadomie trafiłem na schemacik do CNY70 i tak podłączyłem, czyli:

    (Potencjometr jest 1kOhm.) Zamieniłem kolektor z emiterem.

    Czy takie coś ma prawo działać? Czy muszę od nowa projektować płytkę?

    I czy moglby ktos sprawdzic poprawnosc reszty schematu? (Plik w załączniku)

    line follower.pdf

×
×
  • Utwórz nowe...