Skocz do zawartości

ps19

Użytkownicy
  • Zawartość

    597
  • Rejestracja

  • Ostatnio

  • Wygrane dni

    13

ps19 zajął 1. miejsce w rankingu.
Data osiągnięcia: 5 lutego 2018.

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

Reputacja

66 Bardzo dobra

O ps19

  • Ranga
    6/10
  • Urodziny 19.03.1996

Informacje

  • Płeć
    Mężczyzna
  • Lokalizacja
    Opole
  • Programuję w
    C/C++/C#/Java/Matlab
  • Zawód
    Technik Elektronik/Student AiR
  • Moje zainteresowania:
    Robotyka,Programowanie,Fotografia

Ostatnio na profilu byli

975 wyświetleń profilu
  1. Cześć, Mam taki mały problem z odpaleniem sterowania wektorowego (FOC) z modulacją przestrzenną wektora (SVM). Problem polega na tym, że silnik zamiast kręcić się stoi w miejscu, jak próbuję go ręcznie ruszyć to pomiędzy cewkami jest wyczuwalny luz natomiast w miejscu cewek próbuje trzymać pozycję. Raczej nie liczę na sprawdzenie kodu, ale podpowiedź co może powodować takie zachowanie. FOC: void focAlgorithm(motorParamsTypedef *mot) { __disable_irq(); static float32_t pSinVal, pCosVal; arm_sin_cos_f32(mot->enc.elecAngleDegrees_f32, &pSinVal, &pCosVal);
  2. Witam Próbuję zaimplementować algorytm podążania robota mobilnego 2-kołowego po trajektorii zadanej z góry wzorem na podstawie znalezionych materiałów. materiały: https://www.researchgate.net/publication/225543929_Control_of_Wheeled_Mobile_Robots_An_Experimental_Overview (strona 16 - Nonlinear Control Design) https://kcir.pwr.edu.pl/~mucha/Pracki/Rafal_Cyminski_praca_magisterska.pdf (strona 38) Problem polega na tym, że robot albo jedzie tylko część trajektorii albo ruch wynikowy nie przypomina ani trochę trajektorii wynikowej. void lissajousInit
  3. Płytki nowe, oryginalnie zapakowane, kupione do projektu na który nie miałem ostatecznie czasu. - Nucleo-32 STM32L412 (2sztuki) - 45zł/szt https://allegrolokalnie.pl/oferta/zestaw-rozwojowy-edukacyjny-nucleo-32-stm32l412 - Nucleo-144 STM32F439 (2 sztuki) - 120zl/szt https://allegrolokalnie.pl/oferta/zestaw-rozwojowy-edukacyjny-nucleo-144-stm32f439 - Raspberry Pi 3 model A+ (2 sztuki) - 105zł/szt https://allegrolokalnie.pl/oferta/raspberry-pi-3-model-a - Raspberry Pi 3 model B+ (3 sztuki)- 165zł/szt https://allegrolokalnie.pl/oferta/raspberry-pi-3-model-b
  4. Takie złącze, możesz dać 6 pinowe bez problemu (SWO nie jest potrzebne). Nie musi to być raster 2,54 mm są też 2 mm - z jednej strony normalne goldpiny 2,54 mm na tasiemce a z drugiej goldpiny na 2mm. Można dać też 1x6 wg pinologii z Nucleo. Przykłady: https://botland.com.pl/pl/80-przewody-i-zlacza-idc https://botland.com.pl/pl/przewody-i-zlacza-idc/1246-przewod-idc-6-pin-zensko-zenski-30-cm.html
  5. Wyprowadzasz złącze np. samo SWD na goldpinach i tyle, igly są drogie i nie wygodne jak programujesz coś dużą ilość razy w czasie testów. Na Nucleo odpinasz zworki i masz je jako programator a linie są wyprowadzone właśnie na goldpinach. Tak samo robisz na swoim PCB i problem z głowy. Ja mam zamiast goldpinów gniazdo IDC wyprowadzone zgodnie ze standardem SWD.
  6. na początku dodałbym jeszcze ustawianie stanu wysokiego w Setup`ie i pinMode zmienia tryb pracy pinu a nie digitalWrite, a domyślnie piny są wejściami w AVRach także nic dziwnego że nie działa. Void setup () { pinMode(7,OUTPUT); pinMode(8,OUTPUT); digitalWrite(8,HIGH); digitalWrite(7,HIGH); } i cały program: Void setup () { pinMode(7,OUTPUT); pinMode(8,OUTPUT); digitalWrite(8,HIGH); digitalWrite(7,HIGH); } void loop() { digitalWrite(8,LOW); delay(50000); digitalWrite(8,HIGH); delay(300); digitalWrite(7,LOW); delay(50000); digitalWrite(7,HIGH);
  7. Tutaj jest napisane, druga sprawa to może arduino nie wyrabia prądowo - zapalenie diody to jedno, a wyzwolenie cewki przekaźnika to inna sprawa. Polecam używanie słownika w przeglądarce w przypadku dysleksji czy po prostu robieniem błędów - prawym mszy na podkreślone na czerwono słowo i pojawią się poprawne propozycje.
  8. Dokladnie to błędu szukaj w krzemie STMa - ta magistrala w tych procesorach tak ma, ale pod HALem jakoś to działa. Pokaż kod i sprawdź stany rejestru SR od I2C - jak rozwiniesz SFR to masz tam rózne flagi BUSY, ACK itp. W Attolicu, CubeIDE i innych Eclipso podobnych masz okienko SFR w debugu - podgląd rejestrów (Jak nie ma w to poszukaj w View gdzieś). Przed włączeniem I2C możesz spróbować zresetować magistralę I2C - tak procedura jest opisana w Erracie procka. I2Cx->CR1 |= I2C_CR1_SWRST; //Software reset 1 I2Cx->CR1 &= ~ I2C_CR1_SWRST; //Software reset 0
  9. Wskazówka nr 1 Standard Peripheral Library (SPL) jest już od kilku lat nierozwijana i niewspierana przez ST, zainteresuj się biblioteką HAL. Co do kodu przerwanie od przycisku nie ma sensu, musiałbyś blokować zmianę stanu diody jakimś timerem w przerwaniu od EXTI bo to się może wykonuje ale na tyle szybko że nie zauważasz. Zmiana priorytetów przerwań na początku nauki - nie polecam. Przy priorytetach domyślnych i tak wykona Ci się to bardzo szybko przy tak prostym programie. Zamiast tego: nvic.NVIC_IRQChannel = EXTI0_IRQn; nvic.NVIC_IRQChannelPreemptionPriority =
  10. Sprawdź konfigurację pinu BOOT STMa
  11. Masz 3 człony obrotowe a w wyniku wyszedł ci jeden to chyba coś nie tak Masz rotację po X i 2 po Z 1.Przesunięcie po Z o d1, 2. obrót po X po theta1, 3. obrót po Z po theta2, 4. przesuniecie po X o a2/l2 5. obrót po Z po theta3, 6. przesuniecie po X o a3/l3. Powinno ci wyjść: x = cos(th1)*(l2*cos(th2) + l3*cos(th2+th3)) x = sin(th1)*(l2*cos(th2) + l3*cos(th2+th3)) z = d1 + (l2*sin(th2) + l3*sin(th2+th3)) Tutaj masz dla 6 osiowego ale to wystarczy opuścić ostatnie macierze A45 i A56 https://www.researchgate.net/publication/3
  12. To nie problem biblioteki jak napisałem - nowa biblioteka nie zapobiegnie użyci zlej funkcji/metody podczas pisania programu. Równie dobrze mogłem zaproponować pisanie na rejestrach w w C czy nawet asemblerze, ale nie o to chodzi. OFFTOP: Wyklikiwanie konfiguracji w Cube niekoniecznie uczy programowania mikroprocesorów bardziej pomaga zacząć nie do końca wiedząc jak działa procesor, ale nie chce wszczynać dyskusji o wyższości bibliotek czy rejestrów bo sam korzystam czasami różnie od potrzeb z różnych kombinacji HAL lub rejestry czy HAL + rejestry.
  13. Od czego jest pin PA5 ? Problem masz raczej w przerwaniu od TIM2 skoro ono działa z f = 4 kHz a PWM ma 12 kHz i na wykresie masz co 3 (okres ?) szpilkę w dół (12/4) Chyba korzystasz z kursu dotyczącego biblioteki SPL już nie rozwijanej, ale to nie problem https://forbot.pl/blog/kurs-stm32-f1-hal-liczniki-timery-w-praktyce-pwm-id24334
  14. ps19

    Mobilność pojazdu gąsienicowego

    https://pdfs.semanticscholar.org/4e98/09960be9ec7f1ad8fadf61dad8cb1c8818d0.pdf http://www.par.pl/2012/PAR_10_2012_Pyka_74_78.pdf https://we.po.opole.pl/dmdocuments/autoreferat_pyka.pdf http://web.mit.edu/jlramos/www/Arquivos/ReportDifferentialDrive.pdf Z książek - Modelowanie i sterowanie mobilnych robotów kołowych - Giergiel,Hendzel, Żylski (PWN) - Robot Dynamics and Control - Mark W. Spong - Robotics: Modelling, Planning and Control (Springer) - https://www.academia.edu/11985316/Introduction_to_Mobile_Robot_Control
  15. Polecam zainteresować się biblioteką pygame ona posiada obsługę joysticków https://www.pygame.org/docs/ref/joystick.html https://www.google.com/search?ei=MohuXZieO5CHwPAPh4utQA&q=pygame+joystick&oq=pygame+joystick&gs_l=psy-ab.3..0j0i203l7j0i22i30l2.140415.144031..144343...1.2..0.202.1162.14j0j1......0....1..gws-wiz.....10..0i71j35i39j0i131j0i67j35i39i19.-THn54tEgsk&ved=0ahUKEwiY_-6t_bTkAhWQAxAIHYdFCwgQ4dUDCAo&uact=5 W C#: https://stackoverflow.com/questions/3929764/taking-input-from-a-joystick-with-c-sharp-net https://www.google.com/search?ei=gopuX
×
×
  • 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.