Skocz do zawartości

draghan

Użytkownicy
  • Zawartość

    26
  • Rejestracja

  • Ostatnio

  • Wygrane dni

    1

draghan zajął 1. miejsce w rankingu.
Data osiągnięcia: 12 grudnia 2015.

Treści użytkownika draghan zdobyły tego dnia najwięcej polubień!

Informacje

  • Płeć
    Mężczyzna

Ostatnio na profilu byli

Blok z ostatnio odwiedzającymi jest wyłączony i nie jest wyświetlany innym użytkownikom.

Osiągnięcia użytkownika draghan

Starszy odkrywca

Starszy odkrywca (5/19)

  • Za 5 postów
  • Za 25 postów
  • To już rok!
  • To już 5 lat!
  • Młodszy Juror

Odznaki

4

Reputacja

  1. Nie ma co porównywać Arduino IDE z Visual Studio - to zupełnie nie ta liga. 😉 I chyba nie trzeba być na super zaawansowanym poziomie, żeby z sukcesem korzystać z podpowiadania składni. 😃
  2. Mając szybkie auto, dobrze jest w pełni wykorzystywać jego możliwości. Poza samą frajdą mamy zysk w postaci szybciej pokonanej trasy lub przejechania większego dystansu w ograniczonym czasie. Wiadomo, że wszystko zależy od docelowego zastosowania. Nad względami stabilności myślałem, ale nie wziąłem pod uwagę oszczędności energii ani ewentualnych zakłóceń. Fajnie że o tym wspomniałeś - łatwo o tym zapomnieć.
  3. Dzięki. Przejrzałem sobie tę funkcję. Z niej wywoływana jest SetSysClock, gdzie siedzą wszystkie ustawienia o które mi chodziło. Kazałem w SysTick_Handler wysyłać znak po UART do PC, gdzie uruchomiłem analizator pakietów. I ten wskazał mi, że interwał między otrzymywanymi znakami wynosi ok. 1 sekundę. Może jakoś koślawo to mierzyłem wcześniej, cholerka wie. Na szczęście (albo i nieszczęście) nie zauważyłem nigdzie takich niecnych dopisków. Czytałem, że przy używaniu ADC dobrze jest przemyśleć konfigurację PLL, żeby znaleźć złoty środek między optymalnym czasem pomiaru i optymalnie działającą resztą. Czy gdzieś jeszcze się to przydaje?
  4. Już wcześniej znalazłem tę funkcję. Tylko nie mogłem dokopać się do informacji, jak jest skonfigurowane taktowanie przy starcie kontrolera, stąd powstał temat. Przelatując debuggerem w trybie krokowym właśnie przez wspomnianą przez Ciebie funkcję do ustawiania wartości tej zmiennej nadrobiłem tę lukę w wiedzy. Ponadto byłem przekonany, że wartość zmiennej SystemCoreClock wpływa na konfigurację taktowania mikrokontrolera, a okazuje się być odwrotnie - ona z ustawień zegara wynika. Tak czy inaczej dziękuję za wskazówkę. 🙂
  5. Cześć, chciałbym się dowiedzieć, jaką wartość powinna mieć zmienna SystemCoreClock dla płytki STM32 Nucleo-F411RE wyjętej prosto z pudełka - czyli bez zainstalowanego zewnętrznego oscylatora. Domyślnie (przez SWforSTM32) została wygenerowana wartość 100'000'000, co odpowiada 100 MHz: #if defined(STM32F410xx) || defined(STM32F411xE) || defined(STM32F412xG) || defined(STM32F413_423xx) uint32_t SystemCoreClock = 100000000; #endif /* STM32F410xx || STM32F401xE || STM32F412xG || STM32F413_423xx */ Zdaje mi się, że jest to bzdura - owszem, na opakowaniu widnieje ładny napis "ARM Cortex-M4 100 MHz", jednak reference manual podaje że to jest maksymalna wartość taktowania. Wrzuciłem tam program (najprostszy przykład z kursu Elvisa dla STM32 F1 z SysTick) mający migać LEDką z założonym interwałem 10 s i zmierzyłem czas świecenia diody. Wyszło mi że dioda świeci przez ok. 9 sekund. Niestety nie posiadam oscyloskopu żeby to dokładnie zmierzyć, ale 10 s to nie jest wyraźnie. W data sheet znalazłem informację, że domyślnie jako HSI używany jest oscylator o f = 16 MHz, co nawet się zgadza z definicją makra: #if !defined (HSI_VALUE) #define HSI_VALUE ((uint32_t)16000000) /*!< Value of the Internal oscillator in Hz*/ #endif /* HSI_VALUE */ Ustawiwszy SystemCore na HSI_VALUE dioda świeci przez ok. 15 sekund, co również wyraźnie nie jest równe 10 s 😅. Moglibyście mnie naprowadzić, gdzie szukać informacji na ten temat? EDIT: Z tego co udało mi się prześledzić w kodzie, początkowa wartość tej zmiennej nie gra większej roli. Myślałem że jest to jedna z kluczowych zmiennych do działania systemu. Funkcja RCC_GetClocksFreq() twierdzi, że źródłem taktów dla rdzenia jest PLL z tak dobranymi współczynnikami, że wychodzi w rozrachunku 100 MHz. I teraz pytanie: czy domyślny rezonator może być tak niedokładny? W dłuższym horyzoncie czasowym to bym zrozumiał, ale żeby w przeciągu 10 sekund stracić 10% dokładności... Trochę nie chce mi się w to wierzyć. 🙂
  6. Duża ta płytka jednak im wyszła... 😉
  7. Harnas napisał bardzo ważną rzecz, za co dostał ode mnie piwo. To, czy osiągniemy na wyjściu stan oscylacyjny, zależy przede wszystkim od obiektu. Niektóre obiekty nie wpadną w oscylacje, choćbyśmy się bardzo starali. Ale eksperymentowi z ID sam się chętnie przyjrzę. 🙂
  8. No i ładnie się zgrało, wyszło w miarę komplementarne wytłumaczenie. 🙂 huhs, jak coś jest niejasne dalej, to pytaj. 😉
  9. Witaj. Trochę nie tak. To co opisałeś nie jest zasadą działania członu P, tylko regulatora jako całości. Może zacznijmy od podstaw podstaw, żeby uporządkować pewne sprawy. Regulator. To jest czarna skrzyneczka, która ma wejście i wyjście. Na wyjściu pojawia się sygnał sterujący (np. napięcie), który będzie dążył do tego, aby tak wysterować obiekt, czyli Twój silnik, żeby działał on na zadanych przez Ciebie obrotach. Wejściem regulatora jest sygnał uchybu, zazwyczaj oznaczany jako e = wartość zadana - aktualna wartość. Regulator PID nie działa w żaden magiczny sposób. Jego działanie opiera się na matematycznych przekształceniach uchybu regulacji. Każdy jego człon może mieć inną wagę (nastawy), dzięki czemu możemy dobierać jakość sterowania do rodzaju obiektu sterowanego. Człon P jest członem proporcjonalnym. On nie robi nic, poza mnożeniem uchybu przez stały współczynnik. Przyspiesza nam regulację, ale nie sprowadza uchybu do zera. Człon I jest członem całkującym, czyli najprościej mówiąc - stale dodającym sygnał uchybu. Efekt jego działania to sprowadzenie uchybu do zera. Jeśli uchyb utrzymuje się powyżej 0 przez pewien czas, człon I będzie wymuszał na sygnale sterującym coraz większą wartość (będzie stale dodawał uchyb), co będzie w ogólnym przypadku prowadziło do sprowadzenia uchybu do zera. Kiedy ten osiągnie w końcu upragnione zero, człon całkujący będzie całkował zero. Czyli dodawał zero. Czyli sygnał wyjściowy z członu I będzie stały. Aż do zmiany uchybu na niezerowy - wtedy znów człon I zmieni siłę sygnału, żeby sprowadzić uchyb do zera. Człon D jest członem różniczkującym, liczy pochodną z uchybu. Działa on tym mocniej, im szybciej zmienia się uchyb. Ten człon nie wpływa na sygnał sterujący, kiedy uchyb się ustabilizuje (bo pochodna ze stałej jest równa zeru). Jego działanie objawia się tylko w stanach przejściowych - ten człon skraca czas regulacji i wpływa na poziom przeregulowania.
  10. Aaaa... Nic odkrywczego, nic ciekawego. Wypadało zrobić jakiś projekt na nadchodzący Pomorski Festiwal Nauki, a że trochę z kasą cienko, to wziąłem co miałem pod ręką i zastanowiłem się, co z tym mogę zrobić. A miałem w sumie niewiele więcej, niż kuferek z tutejszego kursu do STM32 F103. No i wymyśliłem, że zrobię jakiegoś snejka czy coś, zamkniętego w pudełeczku w stylu Game Boy. Jak będzie czas, to dopieszczę pudełeczko i zakoduję więcej gierek. 😉 Gamebuino to bardzo fajny projekt, przynajmniej takie mam wrażenie, po obejrzeniu ich prezentacji. No bo to w końcu forum dla robotyków, prawda? 😉 Trochę nie ten target. Jeśli dokończę i będzie jakieś zainteresowanie tutaj, to podzielę się z Wami projektem. 🙂
  11. Już zrobiłem mały rekonesans. Wydruk będzie tutaj chyba najlepszą opcją, bo dostanę dokładnie to, czego potrzebuję. 🙂 (Najbardziej zastanawia mnie to, że sam o tym nie pomyślałem...) Dzięki bardzo za Wasze odpowiedzi. Pozdrawiam! 🙂
  12. Mamy na wydziale dostęp do drukarki (która jest trochę leciwa), ponadto ostatnio nasze koło zakupiło własną (tylko że jeszcze nie dotarła), więc nie będzie chyba problemu z "podwykonastwem". 😉 Nie sądziłem, że to aż tak tanio wychodzi, jestem poważnie zaskoczony. Muszę się dowiedzieć, jak to by konkretnie wyglądało. Dzięki Ci bardzo za odpowiedzi. 🙂
  13. W sumie zapomniałem zupełnie o możliwości druku 3d. Nawet się nie interesowałem tym specjalnie nigdy, a teoretycznie mam dostęp do takiej drukarki. Wiesz może, jaki byłby orientacyjny koszt wydrukowania takiej dwuczęściowej obudowy, powiedzmy o wymiarach zewnętrznych po złożeniu 10x8x3cm? Jak wygląda sprawa z wytrzymałością takiego wydruku? Nie jest to może jakieś kruche? Można w czymś takim powiercić?
  14. Witajcie. Pytanie może nie z dziedziny robotyki, ale myślę że ktoś z Was mógłby poratować. 🙂 Macie może pomysł, z czego można wykonać obudowę do przenośnej konsolki w stylu gameboy? Początkowo chciałem zamówić sobie obudowę na wymiar z plexi, ale nigdzie nie mogę znaleźć firmy, która zrobiłaby jedną sztukę w rozsądnej cenie (co jest całkowicie zrozumiałe). Myślę teraz nad kupnem plastikowych misek czy pudełek, z których bym sobie powycinał potrzebne elementy. Do tego celu plastik niestety musi być raczej cienki, giętki, z racji tego żeby mi nie popękał przy wycinaniu... Chyba że znacie jakąś fajną technikę obróbki grubszego, twardszego plastiku, to miło byłoby się czegoś o tym dowiedzieć. 🙂 Podsumowując: Macie może ciekawsze propozycje na wykonanie obudowy, niż pocięte plastikowe pudełko? Albo znacie firmę, która nie zażąda sobie za wykonanie z plexi takiej obudowy grubego hajsu? Albo znacie jakieś dobre sposoby obróbki twardego plastiku? Za każdy pomysł serdecznie dziękuję. 🙂
  15. Ach, to sorry. 😋 To już nic nie mówię. 😃
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.