Skocz do zawartości

dawid_s

Użytkownicy
  • Zawartość

    14
  • Rejestracja

  • Ostatnio

Reputacja

0 Neutralna

O dawid_s

  • Ranga
    2/10

Informacje

  • Płeć
    Mężczyzna
  1. Tylko właśnie nie wiem, jak zrobić, żeby timer mi przerywał co odpowiedni czas i zmieniał choćby tą zmienną, jeśli nie ma delay. Wczoraj bawiłem się sporo i bez delay ani rusz. A czemu myślisz, że to będzie źle wpływać, jak zrobię tak, jak piszę?
  2. Delay muszę dać na końcu loop, bo inaczej mi nie działają przerwania a do instrukcji wywoływanej przy przerwaniu chcę wrzucić odczyty z czujników i PID. W loop tylko będę wyświetlał serialem, taki jest plan. BARDZO dziękuję za oświecenie, trzymaj się!
  3. Robię robota na genuino101, jest on z wbudowanym akcelerometrem i żyroskopem. Zamontowany układ to BMI160. Generalnie nie do końca byłem świadomy, że występują dwa odczyty: odczyt czujnika z pozycji i odczyt Z czujnika. Mam w bibliotece CurieIMU coś takiego, jak "setGyroRate(wartość)" i tutaj wklepałem 800, zadowolony, że będę czytał wartości z czujników 800 razy/s, jednak domyślam się, że byłem w błędzie? Jeśli tak, to teraz mam takie pytanko: do filtra komplementarnego. dt, to jest okres czytania przez czujniki czy okres sczytywania z czujników? Wracając do tego, co pisałem wcześniej: tak, odczytuję pozycję przez UART po kablu. Stąd, kiedy miałem aktywny monitor szeregowy, wszystko było ok. Dziś problem się rozwiązał. Po wpisaniu na koniec loop delay 5ms, wszystko ładnie się wyciszyło. Docelowo zrobię to timerem. Tylko właśnie mam pytanie odnośnie "dt" w filtrze komplementarnym, jak pytałem wyżej. A co do sygnału z akcelerometru - też liczyłem średnią z 4 ostatnich pomiarów, jednak chyba od tego odejdę, żeby nie było opóźnień.
  4. Ja akurat przyjąłem sobie odwrotnie: x=0.98 i mam taki wzór: pitch = x * (pitch + gx *0.00125) + (1 - x) * kat_acc ale to na jedno wychodzi. Przy x = 0.99 już mam dryf. "Data rate configuration" - chodzi o UART? ustawiłem 250000 baud - najwyższą, bo jak miałem niższą, to urządzenie na kablu jeździło ładnie, a po odpięciu wpadało w "szał" oscylując z ogromną częstotliwością. Stąd nie mogłem go po prostu włączyć bez komputera. Jednak teraz sprawdziłem i na kablu nadal jeździ dużo lepiej, niż bez
  5. Zrobiłem dokładnie tak, jak napisałeś i kąty mi wywalało nawet do 140 stropni ostatnio miałem na 800Hz i pokazywało mi ok 110stopni. Dalej, jak zwiększałem częstotliwość, to już nie było żadnych zmian. Znak z gyro mam ok, tylko myślę, że to coś nie gra z przeliczaniem sygnału w zależności od zakresu.. ustawiałem już wszystkie zakresy, po czym przeliczałem "g=sygnał_gyro * zakres/32768.0". Tak samo z akcelerometrem. Też tak robiłeś?
  6. Mam takie pytanko: jakie ustawiłeś zakresy gyro i akcelerometru i z jaką częstotliwością odczytujesz z nich wartości? Mi już się skończyły pomysły, co zrobić, bo przy przewróceniu robota wyświetla mi na ułamek sekundy kąt do 110 stopni, po czym szybko wraca do 92. Nie przeszkadzałoby mi to, jednak przy wpadnięciu w oscylacje, przy szybkim wychylaniu do +/-10 stopni, wyświetla mi kąt nawet 40st, przez co bardzo szaleje regulator. Wydaje mi się, że to przez gyro, jednak w żaden sposób nie mogę tego opanować. Miałeś może podobny problem? Używam filtru komplementarnego.
  7. Właśnie zamierzałem kupić silniki 0,78Nm przy 6V, 1,5Nm przy 12V. Jeśli chodzi o prędkość, to masz bardzo dużą :o ja brałem pod uwagę góra 1,5-2km/h, czyli przy średnicy kół 9cm wystarczyłoby mi 100obr/min ale może faktycznie jeszcze to przemyślę. Co do luzów, to chyba ciężko znaleźć coś, co by ich nie miało. Trzeba by zrobić samemu przekładnię, a i to nie gwarantuje jakiegoś sukcesu, więc chyba bezpieczniej jest kupić gotowy silnik z przekładnią. Dzięki za odpowiedź i gratuluję sukcesu
  8. Naprawdę świetny projekt. Z jakim momentem obrotowym dobrałeś silniki? Robię coś podobnego i zamierzam kupić nowe silniczki (te, które miałem w domu nawet nie ruszają pod obciążeniem). Nie chciałbym zainwestować w kolejne zbyt słabe, a Twoje chyba radzą sobie bez problemu
  9. Tak, jak pisałem już wcześniej, mam problemy z: -przy wciśnięciu i puszczeniu przycisku dioda nie gaśnie(nie reaguje na puszczenie przycisku), tylko trzeba resetować arduino, -czasem diody się świecą już od startu programu i trzeba kilka razy resetować (lub świecą bardzo słabo i wtedy pomaga poruszenie przewodami przy arduino) -przy monitorze szeregowym, jak włączam, to program jest w trakcie działania i nie wyświetla mi tego, co jest w void setup (przy zliczaniu, kiedy włączę monitor liczy mi np. od 10, czyli program ruszył wcześniej i nie wyświetla mi wcześniejszych zadań), a kiedy włączę monitor przed wgraniem programu, to wyświetla mi się błąd (zdjęcie wyżej). Wszystko inne mi działa, ustawione mam w programie genuino 101, przewody mam podłączone dobrze. Nie wiem czy trzeba w jakichś ustawieniach coś zmienić jeszcze (choć nic takiego nie widziałem), czy też z płytką jest coś niedobrego
  10. Za każdym razem tak jest, jak otwieram wcześniej monitor. Tak, mam ustawioną na 101.
  11. No właśnie mi nie działa, dlatego proszę o pomoc kogoś, kto wie, jak rozwiązać te problemy.. Wiem, że powinno tak działać, ale no nie działa
  12. Mam wszystko dobrze podłączone. Zresztą inaczej inne programy również by mi nie działały, jakby było źle. A co do drugiego, to wiem, że trzeba poczekać, aż przejdzie pasek tylko po włączeniu monitora szeregowego program jest już dalej, czyli nie wyświetla mi "Witaj na Forbocie", a jak włączę monitor wcześniej, to wyrzuca błąd. Po resecie na arduino nic się nie wyświetla, więc nie wiem, jak inaczej można odpalić program od nowa, nie wgrywając go ponownie na płytkę.
  13. Tak już próbowałem, teraz dla pewności też skopiowałem i nie działa. A kod, który wkleiłem, to po prostu chciałem zrobić to w inny sposób. Chodzi o to, że mój układ nie reaguje na puszczenie przycisku. Po wciśnięciu dioda się zapala, a po puszczeniu powinna zgasnąć, jednak tak się nie dzieje (kolejne programy z kursu działają, jednak nie ten pierwszy, który w czasie trzymania przycisku świeci diodą, a puszczenia ją gasi). Poza tym nawet po resecie czasem dioda sama się zapala i muszę zresetować kilka razy, aby zgasła. Dodatkowo podczas wgrania pierwszego programu z lekcji UART nie wyświetla mi "Witaj na Forbocie!" a kiedy najpierw włączam monitor szeregowy, przed startem programu, wyrzuca mi błąd. Coś tu nie gra, może mam coś wyłączone?
  14. Cześć, Dziś zacząłem przygodę z Arduino i niestety nie mogę rozwiązać jednego problemu: po skompilowaniu pierwszego programu , wykorzystującego przycisk i diodę oraz wgraniu go na płytkę, dioda zapala się sama i świeci na stałe (tak, jakby program wykonywał zadania niezależnie od warunków) lub kiedy jednak się nie zaświeci i zrobię to za pomocą wciśnięcia przycisku, to zapala się ona na stałe, po czym trzeba zresetować układ. Wychodzi na to, jakby funkcja "else" nie działała poprawnie. Kiedy zamiast else użyję delay, dioda normalnie gaśnie i jest okej - normalnie reaguje na przycisk. Bardzo proszę o pomoc, bo nie wiem czy z płytką jest coś nie tak, czy też ja jednak coś źle robię.. Próbowałem również tak i również nie działa: void setup() { pinMode(10, OUTPUT); //Dioda czerwona pinMode(7, INPUT_PULLUP); //Przycisk digitalWrite(10, LOW); //Wyłączenie diod } void loop() { while(digitalRead(7)==LOW) { digitalWrite(10, HIGH); } while(digitalRead(7)==HIGH){ digitalWrite(10, LOW); } }
×
×
  • Utwórz nowe...