Skocz do zawartości

marecki

Użytkownicy
  • Zawartość

    10
  • Rejestracja

  • Ostatnio

Reputacja

0 Neutralna

O marecki

  • Ranga
    2/10

Informacje

  • Płeć
    Mężczyzna
  1. Witam, Wykonuję obsługę odczytu danych z żyroskopu L3GD20H. Dane są wysyłane z uC na komputer za pośrednictwem BTM-222. Transmisja przebiega prawidłowo. Na wejściu dostaję dane w postaci: -ilość taktów zegara od ostatniego wystawienia nowych danych przez gyro dla F_CPU=8000 000 i preskalera 8 i dla ODR=200 dostaję TCNT1L = 125, TCNT1H=20. Po przeliczeniach wychodzi 190,66 [Hz] więc jest to wartość prawidłowa. -dane pobrane z gyro mianowicie OUT_X_L, OUT_X_H, OUT_Y_L, OUT_Y_H, OUT_Z_L, OUT_Z_H. Odbierane dane przy nieruchomym gyro są przetwarzane w procedurze inicjalizacyjnej w następujący sposób: -pominięcie pięciu pierwszych odczytów - wartości znacznie odbiegające od pozostałych, -wyznaczenie błędu spoczynkowego - wyliczenie średniej z kolejnych np 200 odczytów danych dla poszczególnych osi, -wyznaczenie odchylenia standardowego i 3-sigma które jest nam później potrzebne aby rozpoznawać czy nastąpił już obrót czy jeszcze nie, Po tym wstępie kolejne dane są już traktowane jako dane prawidłowe do wykonania odczytu. Operacje które na nich zachodzą to: -wyliczenie wartości 16-bitowej odczytanej danej obrotu, -obliczenie różnicy pomiędzy wartością zmierzoną a wartością błędu spoczynkowego i porównanie czy nie przekracza wartości 3-sigma, jeśli nie przekracza to ruch nie zaszedł, jeśli przekracza to wartość bierzemy do dalszych operacji, -pomnożenie wartości prędkości obrotu przez czułość, -podzielenie prędkości obrotowej przez czas w którym zachodziła - w wyniku tego mamy kąt obrotu, -wyznaczenie za pomocą kwaternionów pojedynczej osi obrotu, która zastępuje nam trzy składowe osie, punkt który obracamy wokół osi ma współrzędne początkowe P=(0,0,1) tak więc możemy wyznaczyć nowe położenie punktu P -obliczenie kąta pomiędzy osią Z=(0,0,1) a nowym położeniem P' I tutaj zaczynają się problemy. Odchylam gyro od osi globalnej która jest zorientowana pionowo do powierzchni ziemi (gyro też w położeniu początkowym ma również oś Z zorientowaną pionowo). Jeśli odchylam gyro wokół osi X o 90 stopni i wracam do położenia pierwotnego to wskazanie kąta odchylenia również zmienia się od 0 do 90 i ponownie na 0. Jednak jeśli przechył gyro wykonam względem osi nierównoległej do osi X i Y i powrót to wskazanie nie wraca do zera a np do 30 stopni. Nie mam już pomysłu gdzie robię błąd. Kwaterniony zastępują nam obroty wokół poszczególnych osi, które trzeba było by rozważać jako najpierw obrót np wokół X, potem Y a na końcu Z, ale jeśli byśmy zmienili na np Y, X i Z to położenie końcowe punktu P było by inne. Liczba (wartość czasu) przez którą dzielimy prędkość kontową jest również pobierana z gyro więc nie ma tam błędu. Bezruch gyro jest również wykrywany. Proszę o sugestię gdzie może tkwić błąd w moich rozważaniach. Nie chcę (na razie) stosować żadnych dodatkowych czujników np akcelerometru bo tok rozumowania i działań które przedstawiłem/zaimplementowałem jest sensowny ale przy multi-obrocie nie działa. Na pewno ktoś z tu obecnych również miał takie problemy. Kod wyznaczania kwaternionu https://en.wikipedia.org/wiki/Conversion_between_quaternions_and_Euler_angles Sposób wyznaczania błędu spoczynkowego od str 28 https://www.elecrow.com/download/TA0343.pdf
  2. Zauważyłem, że ta bateria nie jest najlepsza ale innej nie mogę zastosować z braku wolnej przestrzeni. Nie wiem jaki maksymalny prąd z niej pobieram ale początkowo w obliczeniach zakładałem że wycisne z niej 400 mA:) nie biorąc pod uwagę czegoś takiego jak rezystancja wewnętrzna. Jedyną radą na wzrost rezystancji wewnętrznej jest wymiana baterii a to będzie widoczne w postaci nie działania pilota. Jeśli chodzi o obliczenia, które proponujesz to nie realizowałem już ich. Po prostu dobrałem ekperymentalnie kondensatory, które dawały najlepsze rezultaty w postaci większego zasięgu. Użyłem z tego co pamiętam ceramicznego 100nF i elektrolitycznego 220 uF i zasięg obejmuje cały pokój przy nie skierowaniu w kierunku odbiornika TSOP1736. Bez kondesatorów zasięg był dużo mniejszy. Pilot w stosunku do sterowania wieżą jest słabszy od oryginalnego ale własnoręcznie złożony odbiornik reaguje na wszystkie sygnały wysłane w pokoju z mojego pilota. Żadnego zwarcia u mnie nie było ale nie wiem czy użyty kondesator jest jak mówisz wystarczająco duży. Bardzo chciałbym użyć czegos większego żeby wydobyć całą moc IRED i podać na nią te wstępnie założone 400 mA ale jak na razie nie mam jak.
  3. Ale więcej energii na świecenie diody nie potrzebuję. Chodzi mi tylko o większy prąd. Dla R=10Ohm spadek napiecia na diodzie jest cały czas taki sam tylko że wartość prądu wskazywanego przez multimetr maleje.
  4. Jeśli chodzi o sprawdzenie słów wojttar-a Podłączyłem szeregowo diodę IRED i rezystor do baterii CR2032 i mierzyłem spadek napięcia na tych elementach a następnie obliczyłem jaki prąd płynie w układzie. https://www.forbot.pl/forum/upload_img/obrazki/IMG_4ebbfa6904bdf2601.jpg Z tego wychodzi, że z baterii można wyciagnąć 40 mA przy pracy ciągłej. Natomiast gdy podłączyłem multimetr aby zmierzyć wartość prądu to dla rezystora 10 Ohm po maksymalnym wskazaniu 55 mA wartość spada. Dla 1 Ohm wskazanie było 75 mA i następnie spadek. Jeśli dobrze rozumiem to mogę przyjąć za maksymalny prąd jaki mogę wyciągnąć z baterii wartość 75 mA? Proszę o weryfikację.
  5. Masz rację z tym że kondensator nie zdążył by się doładować jeśli wypełnienie sygnału było by większe niż 50% a takie nie jest. Tu chyba może mieć też znaczenie czy kondesator jest wpięty przed czy za rezystorem kolektora. Jeśli przed to szybko się naładuje ale będzie oddawał mniejszy prąd na skutek występującego przed nim rezystora. Jeśli natomiast za rezystorem to ładowanie będzie się odbywać mniejszym prądem a więc dłużej. Może nie starczyć czasu w tej krótkiej przerwie, ale rozładowywanie będzie następowało większym prądem co jest pożądane.
  6. Ale czy ta niska zastępcza rezystancja szeregowa powodowała by niemożność przepływu wymaganego prądu? Upływność chyba nie stanowi tu problemu, ponieważ ewentualny kondensator jest cały czas doładowywany, a rozładowywany tylko w momencie otwarcie tranzystora. No tego efektu nie brałem pod uwagę ale chyba w tym przypadku nie występuje. Podczas przytrzymania przycisku sygnał był wysyłany cały czas więc nie mogło zabraknąć napięcia do zasilania uC. Zdarzała się sytuacja tak jakby zawieszenia, tzn po wciśnięciu przycisku nawet jeśli nadajnik był w odległości 20 cm od odbiornika i odbiornik nie wychwycił pierwszego sygnału to nawet jeśli przycisk był wciśnięty cały czas to odbiornik już nie reagował. Logiczne wydaje się że większy kondensator to większy prąd. No więc jaki kondensator wybrać?
  7. To był przykładowy schemat. Mój schemat połączeń wygląda następująco: https://www.forbot.pl/forum/upload_img/obrazki/IMG_4eb6e2b3ee7c41532.jpg Dioda IRED której używam to LD271 http://www.datasheetcatalog.org/datasheet/siemens/LD271HL.pdf Jej maksymalny prąd chwilowy to 3,5 A ale w moim przypadku dla współczynnika wypełnienia około D=0,35 przez diodę może płynąć prąd o wartości około 500mA (na podstawie wykresu str. 5). Przyjąłem spadek napięcia na diodzie równy 1,7V również na podstawie wykresu str. 5 Z datasheeta tranzystora BC337-40 http://www.datasheetcatalog.org/datasheet/vishay/85112.pdf Napięcie nasycenia – 0,7V, Żeby na kolektorze popłynął prąd 500 mA prąd bazy musi wynosić 3mA, spadek napięcia Vbe=0,9 V (wykresy strona 4) Napięcie zasilania 2,9 V, baza tranzystora podłączona do pinu uC, Z tych danych wychodzi że rezystor na bazie powinien mieć wartość około 660 Ohm ale dałem 470 Ohm dla, którego na bazie popłynie prąd około 4mA. Z kolei rezystor na kolektorze powinien mieć oporność 1 Ohm żeby popłynął prąd 500 mA zakładając że dane odczytane z datasheetów są prawidłowe. Niestety wystarczą małe zmiany czy to w napięciu nasycenia czy starcie napięcia na diodzie ired i już płynący prąd zmienia swoją wartość a co za tym idzie siłę sygnału czyli zasięg pilota. Myślę że mój tok rozumowania jest poprawny, ale jednocześnie proszę o weryfikację. Z tego wynika że to wina baterii. A więc skoro mówisz że więcej jak 30 mA z baterii nie wyciągnę minus jeszcze kilka mA na zasilanie uC to te kondensatory faktycznie muszą być konieczne. Spróbuję je wstawić i sprawdzę efekt. Sprawdzę też sytuacje jeśli napięcie do obwodu kolektora będzie podawane z zasilacza – wtedy nie będzie ograniczenia prądowego 30 mA więc układ powinien działać dobrze bez kondensatorów. Jeśli chodzi o schemat z http://www.elportal.pl/pdf/k04/05_04.pdf To stosowanie u mnie rezystora ograniczającego jest bezcelowe ponieważ diody wytrzymują dużą wartość prądu jaki może przez nie płynąć. Mam jeszcze pytanie do tego schematu http://avrhelp.mcselec.com/irboost.gif Po co jest tam kondensator równolegle z rezystorem na bazie? Czy na nim nie będzie odkładał się spadek napięcia po podaniu prądu na bazę? Co spowoduje późniejsze otwarcie tranzystora bądź jego całkowity brak otwarcia?
  8. Ja podłączałem dodatkowe kondesatory tak jak na poniższym schemacie tylko przy emiterze tranzystora.. http://avrhelp.mcselec.com/irboost.gif Równoległy kondesator który nie daje żadnego dodatkowgo prądu to rozumiem ten włączony równolegle z rezystorem 10k na bazie?
  9. Czyli więcej nie da się z takiej baterii wyciągnąć? A więc nawet przy tak małym prądzie zasięg pilota może wynosić około 6m? Właśnie zbudowałem na płytce stykowej pilot na RC5 i do zasilania używam baterii CR2032 ale ten mały zasięg mnie zastanawia. Według zastosowanych elementów przez diodę IRED powinien płynąć prąd około 500 mA. Zasięg jest bardzo mały i dodatkowo odbiornik nie reaguje na każde wciśnięcie przycisku., a nadajnik należy skierować bezpośrednio na odbiornik bo w innym przypadku sygnał nie dochodzi. Kondensatory stosowałem od 100 nF do 1000nF i nie widać wielkiej różnicy. Dla porównaninia sygnał z oryginalnego pilota jest odbierany nawet przy skierowaniu go w innym kierunku niż odbiornik i z dużo większych odległości.
  10. Czy istnieje coś takiego jak maksymalny prąd jaki można pobrać z baterii? Wiadmo że im mniejszy pobierany prąd tym bateria dłużej trzyma a im więcej z niej ściągamy tym się szybciej wyczerpie ale czy np. można z tej baterii pobierać prąd rzędu np. 600 mA do impulsowego zasilania diody IRED w pilocie?
×
×
  • Utwórz nowe...