Thursday 30 November 2017

Mcx forex holidays


India Commodity Market Holidays 2017 (MCX NCDEX) Indyjskie rynki giełd towarowych (MCX Trading Time NCDEX Godziny handlu) Handel rynkiem towarowym odbywa się we wszystkie dni tygodnia (z wyjątkiem sobót i niedziel oraz świąt deklarowanych z wyprzedzeniem przez giełdę). Należy pamiętać, że godziny handlu mogą się zmieniać. Więcej informacji na stronie MCX NCDEX. Aktualne czasy rynkowe segmentu towarowego w Indiach to: poranna sesja czasowa. 10:00 - 17:00 Wieczorne terminy sesji. 5:00 PM - 11:30 PM 11:55 PM Uwaga: Terminy handlu sesjami wieczornymi są korygowane dwa razy w roku, aby dostosować się do czasu letniego w Stanach Zjednoczonych. Zwykle lato zamyka się o godzinie 23:30, a zimą o 11:55. Sprawdź, czy MCX jest dziś zamknięty Co to są MCX wakacyjne godziny MCX Market święta na rok 2018 2017. Święto Handlowe 2017 MCX Trading Holiday NCDEX 2017 Multi Giełda Towarowa (MCX) i Krajowa Giełda Terminowa Towarowych (NCDEX) Indii pozostają blisko do handlu w następujące dni: MCX Holidays 2017 List Święta państwowe i festiwale przypadające w sobotę w niedziele: Mahavir Jayanti. Niedziela, 09 kwietnia 2017 r. Bakri Id. Sobota, 02 września 2017 r. Dussehra. Sobota, 30 września 2017 r. Muharram. Niedziela, 01 października 2017 Gurunanak Jayanti. Sobota, 04 listopada 2017 Dewali Muhurat Trading 2017 (Diwali Amavasya - Laxmi Puja): czwartek, 19 października 2017 r. Segment towarowy Diwali Muhurat Trading Deepavali 2017 Muhurat Trading odbędzie się w czwartek, 19 października 2017 r. Od xxx PM do xxx PM ( Diwali Amavasya - Laxmi Puja). Segment instrumentów pochodnych walut Diwali Muhurat Trading odbędzie się w czwartek, 19 października 2017 r. Od xxx PM do xxx PM. Uwaga: Z okazji Diwali (Laxmi Poojan Day) kontrakty futures na wszystkie towary będą dostępne dla Muhurat Trading. Trading Holiday 2018 MCX Trading Holiday NCDEX 2018 Multi Commodity Exchange (MCX) i National Commodity Derivatives Exchange (NCDEX) z Indii pozostają zamknięcie do handlu w następujące dni: MCX Holidays 2018 Lista Dewali Muhurat Trading 2018 (Diwali Amavasya - Laxmi Puja): niedziela, 30 października 2018 r. Segment towarowy Diwali Muhurat Trading Deepavali 2018 Muhurat Trading odbędzie się w niedzielę, 30 października 2018 r. z 6 : 30 po południu do 19:30 (Diwali Amavasya - Laxmi Puja). Segment derywatów walutowych Diwali Muhurat Trading odbędzie się w niedzielę 30 października 2018 r. Od 18:30 do 19:30. Uwaga: Z okazji Diwali (Laxmi Poojan Day) kontrakty futures na wszystkie towary będą dostępne dla Muhurat Trading. Trading Holiday 2018 MCX Trading Holiday NCDEX 2018 Multi Commodity Exchange (MCX) i National Commodity Derivatives Exchange (NCDEX) z Indii pozostają zbliża się do handlu w następujące dni: MCX Holidays 2018 Lista Dewali Muhurat Trading 2018 (Diwali Amavasya - Laxmi Puja): środa 11 listopada 2018 r. Segment towarowy Diwali Muhurat Trading Deepavali 2018 Muhurat Trading odbędzie się w środę 11 listopada 2018 r. od 18.00 20:30 (Diwali Amavasya - Laxmi Puja). Segment instrumentów pochodnych walut Diwali Muhurat Trading odbędzie się w środę 11 listopada 2018 od 18:00 do 20:30. Odwiedź również: Porównanie brokerów giełd towarowych w Indiach Porównanie brokerów NCD BOND Chittorgarh City Rs 899 Unlimited Equity Rs 499 Nieograniczone Curr lub Rs 15 na transakcję Najniższa opłata transakcyjna Najniższa cena transakcji Call Najniższy podatek skarbowy DARMOWE transakcje Demat Acct Flat Rs 20 Per Trade Free Equity Dostawy Rs 100 off na otwarcie rachunku 100 zwrotów maklerskich, jeśli w ciągu 60 dni zarobiłeś netto W ciągu dnia 0,02 Dostawa 0,15 Rs 0 opłata za otwarcie rachunku (R 400 zrezygnował) Zmień na RKSV i zdobądź kredyt maklerski Rs 2000 Sharekhan Początkujący, doświadczony inwestor, aktywny przedsiębiorca lub HNI. Uzyskaj dostosowane rozwiązania. Rs 0 opłata za otwarcie konta w Online Trading Demat Acct (zniesiono 1150 Rs) Platforma pożyczek i pożyczek jest dostępna we wszystkie dni tygodnia (z wyjątkiem sobót i niedziel oraz dni świątecznych zadeklarowanych z wyprzedzeniem przez giełdę). Uczestnicy mogą również składać oferty wczesnego wycofania i wcześniejszej spłaty na platformie transakcyjnej. Czas na rynku kredytów i pożyczek Securities Lending Market to: Transakcje na segmencie instrumentów pochodnych odbywają się we wszystkie dni tygodnia (z wyjątkiem sobót i niedziel oraz świąt zadeklarowanych wcześniej przez Giełdę). Czas na rynku w segmencie instrumentów pochodnych: Rynek normalny Rynek czasu pracy. 09:15 godz. Normalny czas na rynku. 15:30 godz. Ustaw czas odcięcia dla ograniczenia pozycji wartość dodatkowa. 16: 15 godz. Modyfikacja handlu Czas zakończenia rynku. 16: 15 Transakcje na segmencie instrumentów pochodnych odbywają się we wszystkie dni tygodnia (z wyjątkiem sobót i niedziel oraz dni świątecznych zadeklarowanych wcześniej przez Giełdę). Czas na rynku w segmencie derywatów walutowych: Normal Market Open. 09:00 godz Normalny rynek Zamknij. 17.00 Transakcje na segmencie instrumentów pochodnych odbywają się we wszystkie dni tygodnia (z wyjątkiem sobót i niedziel oraz dni świątecznych zadeklarowanych wcześniej przez Giełdę). Czas na rynku w segmencie instrumentów pochodnych na stopy procentowe to: Normal Market Open. 09:00 godz Normalny rynek Zamknij. 17.00 Obrót segmentem RDM odbywa się we wszystkie dni tygodnia, z wyjątkiem sobót i niedziel oraz świąt zadeklarowanych wcześniej przez Giełdę (Urlopy w segmencie RDM są takie same jak w segmencie akcji). Czas na rynku w segmencie RDM jest taki sam jak w segmencie akcji, a mianowicie: Handel w segmencie dłużnym odbywa się we wszystkie dni tygodnia (z wyjątkiem sobót i niedziel oraz świąt zadeklarowanych wcześniej przez Giełdę). Czas na rynku w segmencie dłużnym to: Normalny czas otwarcia rynku: 09:00 Normalny czas zamknięcia rynku. 17:00 godz. Wartość zabezpieczenia Ustaw czas wyłączenia: 17:20 godz. Czas zakończenia modyfikacji transakcji Podpisanie daty zakończenia zatwierdzenia: 17:20 godz. Obrót segmentem WDM jest otwarty we wszystkie dni z wyjątkiem sobót, niedziel i innych świąt, zgodnie z wymiana. Czas na rynku jest taki, jak podano poniżej: UWAGA: Zaleca się, aby zająć stanowisko z rozsądkiem i osądem. Poglądy i porady inwestycyjne wyrażone przez użytkowników na mcx. freetips. tips są ich własnymi, a nie tymi z naszej witryny lub jej zarządzanie. mcx. freetips. tips zaleca użytkownikom sprawdzenie certyfikowanych ekspertów przed podjęciem jakichkolwiek decyzji inwestycyjnych. Jeśli jakakolwiek inna firma również daje ten sam skrypt i rekomendację, nie ponosimy za to odpowiedzialności. Nie mamy żadnej pozycji w podanych skryptach. Odwiedzając naszą stronę internetową należy się również zgodzić na nasze warunki i zastrzeżenia oraz wyłączenie odpowiedzialności. Wszystkie zasługi należą się autorom oryginalnych postów na tej stronie. Właściciel witryny nie ponosi odpowiedzialności za jakiekolwiek straty wynikające z własnej decyzji lub osądu. Dziękujemy za odwiedzenie naszej witryny. Używamy plików cookie do śledzenia Twojej wizyty i podstawowych informacji. Copyright 2017 Think Solution Wszelkie prawa zastrzeżone. Używamy cookies, aby zapewnić jak najlepszą obsługę naszej strony. Jeśli będziesz nadal korzystać z tej strony, zakładamy, że jesteś z niej zadowolony. Ok

Forexpro dolar


EURUSD - Euro Dolar amerykański Zachęcamy do korzystania z komentarzy w celu interakcji z użytkownikami, dzielenia się swoją perspektywą i zadawania pytań autorom i sobie nawzajem. Jednakże, aby utrzymać wysoki poziom dyskursu, w którym wszystkie są wartościowe i oczekiwane, należy pamiętać o następujących kryteriach: Wzbogać rozmowę Bądź skupiony i na dobrej drodze. Zamieszczaj tylko te materiały, które są istotne dla omawianego tematu. Szanuj. Nawet negatywne opinie można sformułować pozytywnie i dyplomatycznie. Użyj standardowego stylu pisania. Uwzględnij interpunkcję oraz wielkie i małe litery. UWAGA. Wiadomości spamowe i promocyjne oraz linki w komentarzu zostaną usunięte. Unikaj wulgaryzmów, oszczerstw i osobistych ataków skierowanych na autora lub innego użytkownika. Donrsquot Monopolize the Conversation. Doceniamy pasję i przekonanie, ale także mocno wierzymy, że dajemy każdemu szansę wyrażenia swoich myśli. Dlatego oprócz interakcji obywatelskich oczekujemy, że komentatorzy przedstawią swoje opinie w sposób zwięzły i przemyślany, ale nie tak często, aby inni byli poirytowani lub obrażeni. Jeśli otrzymamy skargi dotyczące osób, które przejmą wątek lub forum, zastrzegamy sobie prawo do zablokowania ich na stronie, bez regresu. Dozwolone będą tylko angielskie komentarze. Sprawcy spamu lub nadużyć zostaną usunięte z witryny i zabronione w przyszłości rejestracji według uznania Investingrs. Zapoznałem się z Wytycznymi dotyczącymi komentarzy dotyczących inwestycji i akceptuję opisane warunki. Czy na pewno chcesz usunąć ten wykres? Zastąp dołączoną tabelę nowym wykresem. Poczekaj chwilę, zanim spróbujesz ponownie wypowiedzieć komentarz. Dzięki za komentarz. Pamiętaj, że wszystkie komentarze oczekują na zatwierdzenie przez naszych moderatorów. Może to zająć trochę czasu, zanim pojawi się na naszej stronie internetowej. Ten komentarz został już zapisany w Twoich zapisanych przedmiotach Udostępnij ten komentarz: To jest poziom ZAKUPU właśnie tutaj. Ten komentarz został już zapisany w Twoich zapisanych przedmiotach Udostępnij ten komentarz: Brak potwierdzenia. Po prostu kup sobie, haha, kolego. Ten komentarz został już zapisany w Twoich zapisanych przedmiotach Udostępnij ten komentarz: Nie można kupić bez odpowiedniego sygnału Ten komentarz został już zapisany w Twoich zapisanych przedmiotach Udostępnij ten komentarz komentarzowi: Ten komentarz został już zapisany w Twoich zapisanych przedmiotach Udostępnij ten komentarz do: Ten komentarz został już zapisany w Twoich zapisanych przedmiotach Udostępnij ten komentarz: możesz wrócić do zakupu lub jest to skazane na upadek. Ten komentarz został już zapisany w Twoich zapisanych elementach Udostępnij ten komentarz: Czy na pewno chcesz usunąć ten wykres Zastąp dołączoną tabelę nowym wykresem. Odczekaj chwilę, zanim spróbujesz ponownie wypowiedzieć komentarz. Zgłoś ten komentarz Uważam, że ten komentarz jest następujący: Spam Ofensywny Nieważny Twój raport został wysłany do moderatorów do recenzji Dodaj do komentarza Waluta Explorer Albanian Lek Ormian Dram Białoruski Rubel Bośnia i Hercegowina Mark Funt brytyjski Lew bułgarski Kuna Korona czeska Korona duńska Euro Gruziński lari Forint węgierski Islandzki Kr Litewski Litas Macedoński Denar Mołdawski Leu Korona norweska Polski Złoty Rumuński Lejek Rosyjski rubel Serbski dinar Szwedzki Korona Frank szwajcarski Lir turecki Hrywna ukraińska Nota prawna: Fusion Media pragnie przypomnieć państwu, że dane zawarte na tej stronie niekoniecznie są prawdziwe czas ani dokładność. Wszystkie kontrakty CFD (akcje, indeksy, futures) i Forex nie są oferowane przez giełdy, ale raczej przez animatorów rynku, więc ceny mogą nie być dokładne i mogą różnić się od rzeczywistej ceny rynkowej, co oznacza, że ​​ceny mają charakter orientacyjny i nie są odpowiednie do celów handlowych. W związku z tym Fusion Media nie ponosi żadnej odpowiedzialności za jakiekolwiek straty handlowe poniesione w wyniku użycia tych danych. Firma Fusion Media lub inna osoba zaangażowana w Fusion Media nie ponosi żadnej odpowiedzialności za utratę lub uszkodzenie w wyniku polegania na informacjach, w tym danych, ofertach, wykresach i sygnałach kupna zawartych na tej stronie. Proszę być w pełni poinformowanym o ryzyku i kosztach związanych z obrotem na rynkach finansowych, jest to jedna z najbardziej ryzykownych form inwestycji. EURUSD - Euro Dlar estadounidense Gua para comentarios Desde Investing Espantildea le invitamos a que interactuacutee con otros usuarios y comparta con ellos sus puntos de vista y sus dudas en relacioacuten con el mercado. Embargo na grzywnę, spór sądowy, debata na temat tego, co się wydarzyło, na korzyść, le rogamos, que tenga en cuenta los siguientes criteria. Aporte valor a la conversacioacuten. Ceacutentrese en el tema a tratar y contribuya al debata con informacioacuten de intereacutes. Sea respetuoso. Recuerde que se puede rebatir un argumento de forma constructiva y diplomaacutetica. Cuide la redaccioacuten. Vigile la puntuacioacuten, las mayuacutesculas y las tildes. NOTA: El spam, los mensajes promocionales y los enlaces seraacuten eliminados de sus comentarios. Evite comentarios irreverentes, difamatorios o atasques personales contra otros autores o usuarios. Solo se permitiraacuten comentarios en castellano. Osoba prywatna ma prawo do zaspokajania swoich potrzeb. On ledo la gua de comentarios de Investing y acepto las condiciones. Ests seguro que quieres borrar este grfico Sustituir el grfico adjunto por un nuevo grfico Por favor, espere un minuto antes de publicar otro comentario Muchas gracias por uczestnik en nuestro foro. Su ndestros météres de la queu néestas moderadores lo revisen, por lo que puede tardar un tiempo en aparecer publicado. Este comentario ya est incluido en sus Elementos guardados Compartir este comentario en: para mi opinin esto si baja es para de subir no creo que tram de la conar al dlar con los gastos que van a tener los estados un losos con los propuestos que tiene del 5689. y parriva Este comentario ya est incluido en sus Elementos guardados Compartir este comentario en: Ya ves. wróć do listy zapamiętanych el armamento para las guerras que quiere ganar el flipao. seguro que tiene alguna fabrica de armas. y quiare tangar a los patriotas Este comentario ya est incluido en sus Elementos guardados Compartir este comentario en: Yo soy de la opinin de que le conviene devaluar el dlar respecto al euro para atraer inversiones y fortalecer las exportaciones, con lo que todo eso conlleva ( empleo, entrada de capitales, ect.). mas cuando los datas de empleo de EEUU nie ma syna, nie ma wiele powodów do zatrzymania Este comentario ya est incluido en sus Elementos guardados Compartir este comentario en: yo con las ganas que tengo de verlo 1.1000. y le va a cosrar Este comentario ya est incluido en sus Elementos guardados Compartir este comentario en: Me da que Trump esta hablando en el Capitolio y la esta liando. la rueda de prensa de las 3 de la maana (hora espaa) me da que no va a influir. realmente cu cuando esta exponiendo su programa econmico es en el capitolio (ahora). Este comentario ya est incluido en sus Elementos guardados Compartir este comentario en: Cierro todo con 45 pips de ganancia..Me alegro por los que os hayis puesto cortos cuando avis en 1,06230..Maana ms..Buenas noches..invst. ly3cwhp Corona Checa Corona Danesa Corona Islandesa Corona Noruega Corona Sueca Denar Macedonio Dinar Serbio Dram Armenio Euro Florn Hngaro Franco Suizo Grivna Ucraniana Kuna Croata Lari Georgiano Lek Albano Leu Moldavo Leu Rumano Lev Blgaro Libra Esterlina Lira Turca Litas Lituana Marco Bosnioherzegovino Rublo Bielorruso Rublo Ruso Złoty polaco Aviso legal: Fusion Media pragnie przypomnieć, że dane zawarte na tej stronie niekoniecznie muszą być aktualne i dokładne. Wszystkie kontrakty CFD (akcje, indeksy, futures) i Forex nie są oferowane przez giełdy, ale raczej przez animatorów rynku, więc ceny mogą nie być dokładne i mogą różnić się od rzeczywistej ceny rynkowej, co oznacza, że ​​ceny mają charakter orientacyjny i nie są odpowiednie do celów handlowych. W związku z tym Fusion Media nie ponosi żadnej odpowiedzialności za jakiekolwiek straty handlowe poniesione w wyniku użycia tych danych. Firma Fusion Media lub inna osoba zaangażowana w Fusion Media nie ponosi żadnej odpowiedzialności za utratę lub uszkodzenie w wyniku polegania na informacjach, w tym danych, ofertach, wykresach i sygnałach kupna zawartych na tej stronie. Należy być w pełni poinformowanym o ryzyku i kosztach związanych z obrotem rynkami finansowymi, jest to jedna z najbardziej ryzykownych form inwestycji. USDJPY - Dlar estadounidense Yen Japons Gua para comentarios Desde Investing Espantildea le invitamos a que interactuacutee con otros usuarios y comparta con ellos sus puntos de vista y sus dudas en relacioacuten con el mercado. Embargo na grzywnę, spór sądowy, debata na temat tego, co się wydarzyło, na korzyść, le rogamos, que tenga en cuenta los siguientes criteria. Aporte valor a la conversacioacuten. Ceacutentrese en el tema a tratar y contribuya al debata con informacioacuten de intereacutes. Sea respetuoso. Recuerde que se puede rebatir un argumento de forma constructiva y diplomaacutetica. Cuide la redaccioacuten. Vigile la puntuacioacuten, las mayuacutesculas y las tildes. NOTA: El spam, los mensajes promocionales y los enlaces seraacuten eliminados de sus comentarios. Evite comentarios irreverentes, difamatorios o atasques personales contra otros autores o usuarios. Solo se permitiraacuten comentarios en castellano. Osoba prywatna ma prawo do zaspokajania swoich potrzeb. On ledo la gua de comentarios de Investing y acepto las condiciones. Ests seguro que quieres borrar este grfico Sustituir el grfico adjunto por un nuevo grfico Por favor, espere un minuto antes de publicar otro comentario Muchas gracias por uczestnik en nuestro foro. Su ndestros météres de la queu néestas moderadores lo revisen, por lo que puede tardar un tiempo en aparecer publicado. Este comentario ya est incluido en sus Elementos guardados Compartir este comentario en: esta subiendo para tirarlo d max alto ja ja ja ja. Este comentario ya est incluido en sus Elementos guardados Compartir este comentario en: 900 pipsy, y hay. vamos. Este comentario ya est incluido en sus Elementos guardados Compartir este comentario en: tu te forras hoy jajaja Este comentario ya est incluido en sus Elementos guardados Compartir este comentario en: Ja JA. chino bsico todo lo que hablan. auxilio algo de informacin para aprender Ests seguro que quieres borrar este grfico Sustituir el grfico adjunto por un nuevo grfico Por favor, espere un minuto antes de publicar otro comentario Denunciar este comentario Dganos qu piensa de este comentario Spam Ofensivo Irrelevante Su denuncia ser examinada por nuestros Modernizacja Adjuntar un grfico al comentario Pares de Divisas Balboa Panameo Bolvar Venezolano Boliviano Coln Costarricense Colon Salvadoreo Crdoba Nikaragense Dlar Bahameo Dlar Beliceo Dlar Canadiense Dlar de Barbados Dlar de las Islas. Dlar del Caribe. Dlar estadounidense Dlar Jamaiquino Dlar Trinitense Florn Antillano Gourde Haitiano Guaran Paraguayo Lempira Hondurea Peso Argentino Peso Chileno Peso Colombiano Peso Cubano Peso Dominicano Peso Mexicano Peso Uruguayo Quetzal Guatemalteco Real Brasileo Sol Peruano Aviso legal: Fusion Media chciałoby przypomnieć, że dane zawarte w tym Strona internetowa niekoniecznie musi być w czasie rzeczywistym ani dokładna. Wszystkie kontrakty CFD (akcje, indeksy, futures) i Forex nie są oferowane przez giełdy, ale raczej przez animatorów rynku, więc ceny mogą nie być dokładne i mogą różnić się od rzeczywistej ceny rynkowej, co oznacza, że ​​ceny mają charakter orientacyjny i nie są odpowiednie do celów handlowych. W związku z tym Fusion Media nie ponosi żadnej odpowiedzialności za jakiekolwiek straty handlowe poniesione w wyniku użycia tych danych. Firma Fusion Media lub inna osoba zaangażowana w Fusion Media nie ponosi żadnej odpowiedzialności za utratę lub uszkodzenie w wyniku polegania na informacjach, w tym danych, ofertach, wykresach i sygnałach kupna zawartych na tej stronie. Należy być w pełni poinformowanym o ryzyku i kosztach związanych z obrotem na rynkach finansowych, jest to jedna z najbardziej ryzykownych form inwestycji.

Forex charts api


Trade Forex bezpośrednio z wykresów Wielki pakiet do tworzenia wykresów jest kluczem do skutecznego handlu na rynku Forex. Trading Station jest fabrycznie wyposażony w bezpłatny, profesjonalny pakiet do tworzenia wykresów, który pozwala na handel bezpośrednio z wykresu, śledzenie cen, a jednocześnie oferuje szeroki wybór wskaźników. Handel od wykresów Możesz łatwo umieszczać transakcje na wykresach stacji handlowych, co pozwala usprawnić analizę handlu i zarządzanie. Zamówienia można szybko otwierać lub zamykać, klikając wykres lub cenę. Możesz nawet edytować zamówienia za pomocą prostego przeciągania i upuszczania. Wykorzystaj potężne narzędzia wykresów na platformie Trading Station, masz narzędzia potrzebne do rysowania linii trendu, identyfikacji poziomów Fibonacciego i używania nakładek cenowych. Łatwo skonfiguruj powiadomienia o cenie, aby pozostać na bieżąco ze swoimi transakcjami. Dostosuj swoją strategię dzięki dziesiątkom potężnych narzędzi dostępnych na platformie Trading Station. Eksploruj rzeczywistą wielkość Dzięki naszemu portfelowi handlowców FXCMs portfel handlowy daje ci dostęp do rzeczywistej wielkości na rynku. Nasz wyjątkowy wskaźnik Real Volume, który został załadowany na platformę Trading Stationopen, jest unikalny i nie ma w nim miejsca na rynku, co zapewnia wsparcie strategiczne przy realnym nastroju na rynku. Aplikacje FXCM Twój rynek aplikacji handlowych Jednym z najlepszych sposobów na uproszczenie handlu jest stosowanie wskaźników, skryptów i innych aplikacji. Stacja Handlowa jest fabrycznie wyposażona w dziesiątki przydatnych wskaźników. Ale dzięki aplikacjom FXCM możesz łatwo pobierać wskaźniki i inne aplikacje, aby pomóc Ci dostosować swoje wykresy. Podobnie jak ulubione sklepy z aplikacjami, aplikacje FXCM oferują setki unikatowych aplikacji, takich jak wskaźniki i strategie, idealne dla każdego przedsiębiorcy. Dowiedz się więcej o aplikacjach FXCM. Trading Station otwiera świat możliwości dzięki zautomatyzowanym strategiom, niestandardowym wskaźnikom i możliwości tworzenia historycznych strategii. Dowiedz się więcej o strategiach automatycznych. Ostrzeżenie o wysokim ryzyku: Handel kontraktami walutowymi i kontraktami na różnice kursowe wiąże się z wysokim poziomem ryzyka i może nie być odpowiedni dla wszystkich inwestorów. Istnieje możliwość, że możesz ponieść stratę przekraczającą swoje zdeponowane środki. Przed podjęciem decyzji o wymianie produktów oferowanych przez FXCM należy dokładnie rozważyć swoje cele, sytuację finansową, potrzeby i poziom doświadczenia. Powinieneś zdawać sobie sprawę z całego ryzyka związanego z handlem na marży. FXCM zapewnia ogólne porady, które nie uwzględniają Twoich celów, sytuacji finansowej ani potrzeb. Treści tej witryny nie należy traktować jako osobistej porady. FXCM zaleca zasięgnięcie porady u niezależnego doradcy finansowego. Kliknij tutaj, aby przeczytać pełne ostrzeżenie o ryzyku. Forex Capital Markets Limited (FXCM LTD) jest spółką zależną w ramach grupy spółek FXCM (łącznie, Grupa FXCM). Wszelkie odniesienia do tej strony do FXCM odnoszą się do Grupy FXCM. Forex Capital Markets Limited jest autoryzowany i regulowany w Wielkiej Brytanii przez Financial Conduct Authority. Numer rejestracyjny 217689. Obowiązek podatkowy: Obowiązek podatkowy w Wielkiej Brytanii dotyczący zakładów finansowych jest zależny od indywidualnych okoliczności i może podlegać zmianom w przyszłości lub może różnić się w innych jurysdykcjach. Kopia praw autorskich 2017 Forex Capital Markets. Wszelkie prawa zastrzeżone. Budynek Northern amp Shell, 10 Lower Thames Street, 8th Floor, London EC3R 6AD Firma zarejestrowana w Anglii amp Wales Nr 04072877 z siedzibą jak wyżej. Używamy plików cookie w celu zwiększenia wydajności i funkcjonalności naszej strony, co w ostatecznym rozrachunku poprawia jakość przeglądania. Kontynuując przeglądanie tej strony, zgadzasz się na korzystanie z plików cookie. Możesz zmienić ustawienia plików cookie w dowolnym momencie. Dowiedz się więcej Twoja przeglądarka jest przestarzała. Najpopularniejsza strona z informacjami o transakcjach forex Założona w 2008 roku, ForexLive to wiodąca strona z wiadomościami o transakcjach forex, oferująca interesujące komentarze, opinie i analizy dla prawdziwych profesjonalistów handlujących walutami. Otrzymuj codziennie najnowsze informacje o handlu zagranicznym i bieżące aktualizacje od aktywnych handlowców. W blogach ForexLive znajdują się wiodące poradniki techniczne dotyczące analizy wykresów, analizy forex i samouczki dotyczące par walutowych. Dowiedz się, jak wykorzystać huśtawki na globalnych rynkach walutowych i zapoznać się z analizą bieżących wydarzeń na rynku forex oraz reakcjami na wiadomości z banku centralnego, wskaźniki ekonomiczne i wydarzenia na świecie. 2017 - Live Analytics Inc v.0.8.2659 OSTRZEŻENIE WYSOKIEGO RYZYKA: Obrót walutowy wiąże się z wysokim ryzykiem, które może nie być odpowiednie dla wszystkich inwestorów. Dźwignia generuje dodatkową ekspozycję na ryzyko i stratę. Zanim zdecydujesz się na wymianę walut, starannie rozważ swoje cele inwestycyjne, poziom doświadczenia i tolerancję ryzyka. Możesz stracić część lub całość początkowej inwestycji, nie inwestować pieniędzy, których nie możesz utracić. Poinformuj się o ryzyku związanym z obrotem walutowym i uzyskaj porady od niezależnego doradcy finansowego lub podatkowego, jeśli masz jakiekolwiek pytania. OSTRZEŻENIE DORADCZE: FOREXLIVE udostępnia odnośniki i linki do wybranych blogów i innych źródeł informacji gospodarczych i rynkowych jako usługę edukacyjną dla swoich klientów i potencjalnych klientów i nie popiera opinii lub zaleceń blogów lub innych źródeł informacji. Klientom i potencjalnym klientom zaleca się uważne rozważenie opinii i analiz oferowanych na blogach lub innych źródłach informacji w kontekście klienta lub perspektywy indywidualnej analizy i podejmowania decyzji. Żadnego z blogów ani innych źródeł informacji nie należy uważać za rekordowy wynik. Dotychczasowe wyniki nie stanowią gwarancji przyszłych wyników, a FOREXLIVE wyraźnie zaleca klientom i potencjalnym klientom dokładne sprawdzenie wszystkich roszczeń i oświadczeń złożonych przez doradców, blogerów, menedżerów finansowych i sprzedawców systemów przed zainwestowaniem jakichkolwiek funduszy lub otwarciem rachunku u dowolnego dealera rynku Forex. Wszelkie wiadomości, opinie, badania, dane lub inne informacje zawarte na tej stronie internetowej stanowią ogólny komentarz rynkowy i nie stanowią porady inwestycyjnej ani handlowej. FOREXLIVE wyraźnie zrzeka się wszelkiej odpowiedzialności za utracony kapitał lub zyski bez ograniczeń, które mogą powstać bezpośrednio lub pośrednio z wykorzystania lub polegania na takich informacjach. Podobnie jak w przypadku wszystkich takich usług doradczych, wcześniejsze wyniki nigdy nie są gwarancją przyszłych wyników. Wyświetlanie dotykowe Kliknij w dowolnym miejscu, aby zamknąć interfejs API JForex JForex API umożliwia tworzenie niestandardowych aplikacji przy użyciu języka programowania Java. Biblioteka klienta API może być połączona z systemami klienta. Komunikuje się bezpośrednio z serwerami handlowymi Dukascopy Banku przez bezpieczne i uwierzytelnione sesje internetowe. Nie jest konieczne jednoczesne uruchamianie platformy JForex, ale platforma może służyć do monitorowania w czasie rzeczywistym wszelkich działań podejmowanych przez system klienta. Aby rozpocząć pracę z zestawem JForex Software Development Kit (JForex SDK), pobierz i zaimportuj go w wybranym środowisku Java Environment Development Environment (IDE): Zestaw JForex SDK zawiera przykłady dla: strategii działającej ze strategią back-testing strategii danych na żywo. testowanie w trybie wizualnym Przegląd JForex SDK opisuje, jak modyfikować i ulepszać te przypadki użycia. Aby opracować strategię, zacznij od omówienia interfejsu strategii API. Najnowsze zależności JForex SDK zawsze można znaleźć w publicznym repozytorium Dukascopy Maven. oznacza to, że można skonfigurować swój projekt tak, aby zawsze korzystał z najnowszej wersji interfejsu API JForex. Bądź na bieżąco z najnowszymi osiągnięciami aplikacji Jforex API i subskrybuj automatyczne wiadomości e-mail z informacjami o wydaniu Jforex API. Ponadto, nie zapomnij sprawdzić naszego forum wsparcia API, gdzie publikowane i omawiane są wszystkie wydania Jforex API.

Wednesday 29 November 2017

Opcje binarne system download


EZTrader zrzeka biegłych rewidentów EZTrader kontynuuje działalność, ponieważ firma odwołuje Ziva Hafta, certyfikowanego księgowego z siedzibą w Izraelu oraz firmę członkowską BDO. EZTrader odrzuca audytorów to ostatnia zapowiedź amerykańskiej Komisji Papierów Wartościowych i Giełd wymierzona w zranione zwierzę bezsilnie atakujące w swoim śmiertelnym wrzasku. Pchnięcie wydania hellip Japanese Binary Volumes Take A Bath Japońskie opcje binarne spadają z miesiąca na miesiąc, ponieważ chaos Brexit uspokaja, a wakacje letnie rządzą grzędą. Japońskie wolumeny binarne spadły z 44,6 ton w lipcu do 35 ton w sierpniu, kiedy Brexit po rozpadzie rozproszył się, a wakacje przejęły władzę. Poniższy wykres słupkowy pokazuje miesięczne woluminy hellip Fokus na temat polityki pieniężnej Banku Anglii Binarny dzienny przegląd finansowy 15 września 2018 r. Raport poranny: 09.00 Rynki londyńskie będą dziś bacznie obserwować Bank of England, a Rada Polityki Pieniężnej będzie gotowa opublikować najnowsze wytyczne dotyczące odsetek stawki. Nie oczekuje się żadnych zmian, więc prawdziwa uwaga zostanie poświęcona przyszłym prognozom gospodarczym. The funt hellip Markets Eye UK Zatrudnienie Binary Daily Financial Review 14 września 2018 Morning Report: 09.00 Londyn Dziś rano brytyjski funt jest nieco wyższy po wczorajszej masowej sprzedaży. Indeksy PPI, RPI i HPI w Wielkiej Brytanii okazały się poniżej oczekiwań, pogarszając obawy przed eksplozją inflacji po dewaluacji funta zainspirowanej Brexitem. Wszystkie oczy są teraz na stronie skarżącej, licząc, że Hellipy Aussie Dollar potyka się pomimo chińskiego Data Binary Daily Financial Review 13 września 2018 r. Raport poranny: 09.00 Londyn Dziś rano dolar australijski pozostaje w tyle, pomimo w dużej mierze danych ekonomicznych z chińskiej gospodarki. AUDJPY rozszerza swój przegrany bieg, a AUDUSD odwrócił wczorajsze zyski. NZDUSD notowany jest mniej sympatycznie. Dolar jest na topie Czy konta EZTrader Trading Insolvently EZTDs na koniec roku 2017 i 2018 zostały zakwalifikowane. W ciągu pierwszych sześciu miesięcy bieżącego roku wygenerowały stratę przed opodatkowaniem w wysokości 8,3 miliona. Czy są bankrutami Czy EZTrader notował niewypłacalność na dzień 31 marca 2018 r. Środki pieniężne gotówkowe EZTD w gotówce wynosiły 2,275 mln euro za trzy miesiące kończące się w sierpniu TechFinancials cena akcji 20 w raporcie H1 29 lipca cena akcji TechFinancials8217 spadła do poziomu 8,5 pensa, ale teraz Wydanie raportu za I półrocze 2018 r. Akcje są teraz notowane na poziomie 15.5 p środa, w górę szturmu 82 Głównym wykonawcą podnoszącym cenę akcji TechFinancials był dział B2C, w którym DragonFinancials rozpoczął hellip Dollar czeka na FOMC Binary Daily Financial Review 12 września 2018 Poranny raport: 09.00 Londyn Dziś rano dolar czeka na FOMC, a rynki nie zważają na to, co może być spektakularnego września z FOMC. Większość analityków nie spodziewa się żadnych zmian, ale każdy nieoczekiwany ruch może spowodować wzrost wartości dolara. Dolar strzelił więcej na hellipie Dollar Extends Advance po BON Summit Binary Daily Financial Review 30 sierpnia 2018 Rano: 09.00 Londyn Dolar rozszerza się, gdy rajd, który rozpoczął się w piątek po szczycie w Jackson Hole Fed, wkracza w ten tydzień. Wypowiedzi szefa Fed Yellena i wiceprezesa Fischera nastawiły dolara na wzrost zainteresowania japońskimi wolumenami binarnymi Popyt na Brexit Interest Japońskie wolumeny stanowią bardzo potrzebny impuls, ponieważ odbijają się od rekordowo niskich wolumenów. Wzrost ten można przypisać Brexitowi, ponieważ GBPJPY był największym czynnikiem napędzającym. Japońskie wolumeny binarne ulegają poprawie, ponieważ osiągają rekordowo niski poziom w maju. Brexit dostarczył strzał w ramię za pomocą hellipBinary Option Robot Jak rozpocząć indeksy handlowe Najlepszy robot do automatycznego handlu dla opcji binarnych Oryginalny robot opcji binarnej (dostępny tylko na tej stronie) został po raz pierwszy opublikowany w styczniu 2017 r. Przez francuską firmę i z pomocą profesjonalnych handlowców. Celem tego oprogramowania jest zautomatyzowanie handlu profesjonalnych handlowców. Korzystając z najlepszych metod i wskaźników do generowania sygnałów binarnych, robot binarny umożliwia automatyczne generowanie zysków na rynkach. Opcja binarna Robot został skopiowany kilka razy, a nawet przez produkty używające dokładnie tej samej nazwy, ale prawdziwa jest wersja francuska. Francuska firma, która stworzyła Binary Option Robot posiada prawa autorskie w USA i UE. Więc po prostu zachowaj ostrożność i nie bądź oszustem przez inne produkty handlujące pojazdami o tej samej nazwie. Wszechstronne systemy binarne Opcja binarna Robot może wykonać 3 różne systemy transakcyjne System klasyczny System najbardziej bezpieczny System Martingale System najbardziej rentowny System Fibonacciego Najbardziej dokładny system Platforma binarna wieloplatformowa Robot jest zawsze z wami. Używaj w domu na komputerze, używając webtradera lub pobierając oprogramowanie. Korzystaj w dowolnym miejscu na telefonie komórkowym dzięki mobilnemu odtwarzaczowi internetowemu lub aplikacji na Androida. Handel walutami obcymi na marży wiąże się z wysokim poziomem ryzyka i może nie być odpowiedni dla wszystkich inwestorów. Wyniki historyczne nie wskazują na przyszłe wyniki. Wysoki stopień dźwigni może działać zarówno przeciwko Tobie, jak i Tobie. Przed podjęciem decyzji o zainwestowaniu w walutę obcą należy starannie rozważyć cele inwestycyjne, poziom doświadczenia i apetyt na ryzyko. Istnieje możliwość, że możesz ponieść stratę części lub całości początkowej inwestycji i dlatego nie powinieneś inwestować pieniędzy, których nie możesz utracić. Powinieneś zdawać sobie sprawę z całego ryzyka związanego z obrotem walutowym i zasięgnąć porady niezależnego doradcy finansowego, jeśli masz jakiekolwiek wątpliwości. O Opcjach Binarnych Demo Binaryoptionsdemo rozpoczęło się w 2017 roku i pozwalało ludziom handlować z darmowym kontem demo opcji binarnych od tamtej pory. Naszym celem jest pomóc Ci uczyć się i zarabiać, zapewniając realistyczną platformę handlową z bogatym przewodnikiem opcji binarnych, handlem handlowym i funkcjami handlu społecznościowego. Stworzyliśmy także Demo opcji binarnych, aby przeciwdziałać dużej liczbie serwisów społecznościowych, które chcą nakłonić ludzi do handlowania opcjami binarnymi za prawdziwe pieniądze za pomocą fałszywych transakcji personfake lub opóźnionych informacji handlowych. W przeciwieństwie do tych witryn zapewniamy 100 przezroczystych środowisk transakcyjnych, w których WSZYSTKIE informacje są wyświetlane w czasie rzeczywistym. Nie trzeba dodawać, że wszystkie informacje na naszej stronie internetowej można łatwo zweryfikować. Ponieważ nie jesteśmy brokerem opcji binarnych, nie zarabiamy, gdy tracisz coś, czego nie można powiedzieć o niektórych opcjach binarnych, platformach społecznościowych i funkcjach obsługiwanych przez wielu brokerów. Nasza platforma wykorzystuje stawki rynkowe w czasie rzeczywistym, aby zapewnić Ci takie same doświadczenie handlowe, jak w wiodącym brokerze opcji binarnych. Nasza strona Top Traders prezentuje wiodących handlowców, z tej strony można uzyskać dostęp do ich profilu, który zawiera szczegółowe statystyki handlu i osiągnięcia platformy. Nasza funkcja TradeConnect pozwala śledzić innych inwestorów i oglądać ich szczegółową działalność handlową w czasie rzeczywistym. Podążanie za innymi traderami to świetny sposób na naukę i świetny sposób na zarabianie. Nie tylko możesz wykorzystać tę wiedzę do poprawy swoich własnych umiejętności handlowych, możesz przekształcić te informacje w zysk, kopiując transakcje u jednego z naszych polecanych brokerów opcji binarnych. W Binaryoptionsdemo organizujemy regularne konkursy z opcjami binarnymi, które dają ci możliwość wygrania wspaniałych nagród poprzez rywalizację z innymi handlowcami na naszej platformie. Opcje binarne Demo News Opcje binarne Konto demo Dla tych, którzy szukają bezpłatnego Konta Demo Opcji Binarnych, trafiłeś we właściwe miejsce. Na binaryoptionsdemo możesz otrzymać darmowe konto demo opcji binarnych i używać go tak długo, jak chcesz. Handel kontem demonstracyjnym opcji binarnych na naszej stronie jest dokładnie taki sam, jak handel prawdziwymi pieniędzmi u jednego z brokerów wiodących. W przeciwieństwie do niektórych brokerów nie ułatwiamy wygrywania, gdy handlujemy pieniędzmi demo. Wszystkie stawki na naszej platformie demonstracyjnej to stawki w czasie rzeczywistym, wszyscy handlowcy są prawdziwymi traderami, a wszystkie informacje na naszej stronie są aktualizowane i wyświetlane w czasie rzeczywistym. 3-dniowe członkostwo Premium Otrzymaliśmy wiele próśb od nowych użytkowników z prośbą o opcję członkostwa na krótki okres. Dlatego dodaliśmy nową opcję członkostwa na 3 dni, która pozwoli każdemu wypróbować nasze funkcje premium za bardzo niską cenę. TradeConnect and Copy Trading - 10 maja 2018 Zarówno TradeConnect, jak i funkcja kopiowania TradeConnect są znów dostępne. W ciągu kilku dni wprowadzimy kilka drobnych aktualizacji, które mogą powodować sporadyczny czas, gdy funkcje te nie będą dostępne przez kilka minut. Weekendowe opcje binarne Trading Zwróć uwagę, że opcje binarne BitcoinUSD są dostępne do handlu w weekend. Po prostu wybierz Kryptowaluty w pokoju handlowym, a będziesz mógł handlować opcjami binarnymi z upływem 5 minut lub dłużej.

Przenoszenie średnio osadzone c


Jaka jest różnica między USB 2.0 i 3.0 Hubs Akceptacja rynku przez USB 3.0 stale rośnie ze względu na liczne zalety w stosunku do USB 2.0, w tym znacznie większą szybkość (do 5 Gbp surowych pasm), wyższą dostępność energii (do 900 mA na port) i lepsze zarządzanie energią dzięki większej liczbie poziomów redukcji mocy, gdy maksymalna moc nie jest potrzebna. Korzyści te są osiągane przy zachowaniu funkcjonalnej i mechanicznej kompatybilności z urządzeniami USB 2.0, koncentratorami i portami hosta. Ale co mogą zrobić użytkownicy USB 3.0, gdy potrzebują więcej portów USB 3.0 niż ich komputery PC lub stacja dokująca, zapewnia to zewnętrzne koncentratory USB 3.0. Pobierz specjalną wersję tego artykułu w formacie PDF, która jest dostępna wyłącznie dla członków społeczności Electronic Design. Topologia warstwy i ścieżki danych Typowy komputer główny może mieć dwa porty USB 2.0 i dwa porty USB 3.0. Porty USB 2.0 mogą być używane dla klawiatury USB i myszy USB, ale użytkownik może mieć więcej niż dwa dodatkowe urządzenia USB do połączenia z komputerem w tym samym czasie, a wiele z nich może działać w standardzie USB 3.0. Podłączenie dwóch koncentratorów do topologii umożliwia obsługę wszystkich dodatkowych urządzeń USB, a nawet niektóre porty USB mogą być nadal dostępne dla większej liczby urządzeń. Aby uzyskać zalety szybkości i mocy USB 3.0, koncentratory i kable łączące również muszą być zgodne z USB 3.0, w tym obsługa USB 2.0 dla urządzeń USB 2.0. Z drugim koncentratorem podłączonym do pierwszego, USB 2.0 i USB 3.0 pozwalają na kaskadowanie razem pięciu poziomów koncentratorów (rys. 1). W każdym hubu są zwykle cztery porty downstream, ale możliwa jest również inna liczba portów na hoście. Łączna przepustowość portów niższego rzędu może być większa niż przepustowość dostępna w porcie wyjściowym. Porty na PC są znane jako porty ldquoroot, rdquo, a porty główne są oznaczone jako 1dquo. Poziomy od 2 do 6 reprezentują dodatkowe poziomy możliwe dzięki koncentratorom, a poziom 7 jest ostatnim poziomem urządzeń obsługiwanych przez koncentrator na poziomie 6. Piasty USB 3.0 zachowują tę podstawową topologię warstw (ryc. 2), ale dodatkowo obsługują USB 3.0 oprócz obsługi USB 2.0 (ryc. 3). Kompletny koncentrator USB 2.0 jest zamknięty wewnątrz kompletnego koncentratora USB 3.0 2.0, z równoległymi równoległymi ścieżkami danych dla ruchu USB 3.0 SuperSpeed ​​i USB 2.0 High Speed, Full Speed ​​lub Low Speed. W złączach i oddzielnych przewodach w kablu USB 3.0 znajdują się fizycznie oddzielne styki dla ruchu USB 3.0 SuperSpeed ​​i ruchu USB 2.0. Ścieżka SuperSpeed ​​USB 3.0 działa z nieobrobioną szybkością 5,0 Gbits, podczas gdy ścieżka USB 2.0 działa z prędkością 480 Mbits (High Speed), 12 Mbits (Full Speed) lub 1,5 Mbits (Low Speed). Wewnątrz koncentratora tylko logika sterowania mocą portu jest współdzielona między ścieżką USB 3.0 a ścieżką USB 2.0, ponieważ istnieje tylko jedna ścieżka zasilania 5 V w USB 2.0 lub USB 3.0. Dodatkowe piny i przewody dla USB 3.0 zawierają SuperSpeed ​​Transmit (SSTX, SSTXndash), SuperSpeed ​​Receive (SSRX, SSRXndash) i dodatkową masę (GND). Dodatkowe szpilki są ułożone mechanicznie, więc zamiast prawie każdego złącza USB 3.0 można użyć kabla USB 2.0 lub kabla, aby umożliwić przesył danych USB 2.0 (przy prędkościach USB 2.0), nawet jeśli nie ma dostępnej ścieżki dla USB 3.0 Ruch SuperSpeed. Główna niekompatybilność mechaniczna powstaje przy próbie użycia kabla USB 3.0 do urządzenia USB 2.0, ze względu na fizyczny rozmiar standardowej wtyczki USB 3.0 na kablu USB 3.0. Odwrotnie, kabel USB 2.0 może być używany z portami USB 3.0, aby umożliwić przepływ danych USB 2.0 przy prędkościach USB 2.0. Podobnie można używać koncentratorów USB 2.0 zamiast koncentratorów USB 3.0 lub odwrotnie, umożliwiając przepływ danych USB 2.0 przy prędkościach USB 2.0. Jedynym sposobem na osiągnięcie działania USB 3.0 SuperSpeed ​​jest jednak to, że port hosta, urządzenie, wszystkie koncentratory i wszystkie kable połączeniowe są zaprojektowane do pracy z USB 3.0, z nieprzerwaną ścieżką USB 3.0 od hosta do urządzenia. Wyliczanie USB to proces wykrywania, identyfikowania i ładowania prawidłowych sterowników oprogramowania dla urządzenia USB. Podczas procesu wyliczania host i jego sterownik automatycznie wykrywają, czy ścieżka USB 3.0 istnieje dla każdego urządzenia, a sterownik konfiguruje kontroler hosta tak, aby korzystał ze ścieżki USB 2.0, jeśli nie znaleziono działającej ścieżki USB 3.0 (lub urządzenie nie obsługuje wcale USB 3.0 SuperSpeed). Podobnie, urządzenie USB 3.0 korzysta ze ścieżki USB 2.0 zamiast USB 3.0, jeśli urządzenie zostało skonfigurowane do tego podczas wyliczania. Możliwe jest mechanicznie podłączenie do 1024 urządzeń (4 5) na poziomie 7, jeśli poziomy od 2 do 6 składają się wyłącznie z koncentratorów z czterema wejściowymi portami. Niestety, 8-bitowy adres urządzenia używany w USB ogranicza topologie USB do maksymalnie 255 urządzeń. Zagadnienia dotyczące przepustowości danych zazwyczaj ograniczają praktyczną liczbę urządzeń, a ponadto istnieje zazwyczaj ograniczenie w kontrolerze hosta dotyczące liczby urządzeń ldquoslotsrdquo (jeden ldquoslotrdquo na urządzenie) obsługiwanych przez kontroler hosta. Routing pakietowy Point-to-Point Jednym z większych ulepszeń w USB 3.0 w porównaniu do USB 2.0 jest zastosowanie routingu pakietów typu "point-to-point" od hosta do urządzenia, zamiast "ldquobcastcast-to-all-pointsrdquo" charakterystycznego dla USB 2.0. Zmniejsza to ruch danych na łączach USB 3.0, które nie są związane z daną transakcją i ułatwia utrzymywanie nieużywanych łączy w trybie zmniejszonej mocy w celu zachowania całkowitej mocy systemu. Aby umożliwić routing pakietów w parze USB 3.0 point-to-point, pakiety pochodzące z hosta zawierają 20-bitowe pole stringrdquo (ryc. 4). Ciąg trasy składa się z pięciu 4-bitowych podpól, oznaczających numery portów na koncentratorach, do których pakiet ma zostać skierowany. Każdy koncentrator ma przypisaną liczbę od 4 do 4, a hub używa numeru portu na przypisanej głębokości, aby określić, do którego z portów, do których pakiet powinien się udać. Głębokość zerowa piasty odpowiada poziomowi 2 i tak dalej, aż do głębokości cztery na poziomie 6. Na przykład, koncentrator znajdujący się na głębokości 3 (poziom 5) i przypisany do trzeciej klatki w czasie wyliczenia będzie używał numeru portu w kwocie trzeciej równej ciąg trasy w celu określenia docelowego portu dla pakietu. Liczba zerowa portu oznacza, że ​​pakiet jest przeznaczony dla samego koncentratora, a nie dla żadnego z portów niższego rzędu. Routing pakietów w górę, od urządzenia do hosta, zawsze jest nieodłączny od punktu do punktu. Host jest zawsze ostatecznym miejscem docelowym dla dowolnego pakietu transmitowanego przez urządzenie. Pakiety przesuwające się w górę strumienia nie są przesyłane do innych urządzeń lub łączy USB. W przypadku USB nie ma mechanizmu dla jednego urządzenia do przesłania pakietu do innego urządzenia zamiast przesyłania go do hosta. Zawsze jest jeden host i jedno lub więcej urządzeń (jeśli występuje jakikolwiek przepływ danych). Przepływ pakietów odbywa się z hosta na urządzenie lub odwrotnie, nigdy z urządzenia na urządzenie. Zwróć uwagę, że wszystkie ścieżki danych i kontroli istnieją w hoście USB 3.0, aby obsługiwać ruch danych USB 2.0 płynący jednocześnie z ruchem USB 3.0 SuperSpeed. Na przykład kontroler hosta może nadal kończyć transmisję USB 2.0 lub odbieranie pakietów w tym samym czasie, gdy pakiet USB 3.0 zaczyna płynąć z urządzenia USB 3.0 przez koncentrator USB 3.0, a na końcu do kontrolera hosta USB 3.0. Jest to możliwe tylko w przypadku koncentratorów USB 3.0. Koncentratory USB 2.0 mają oddzielne ścieżki danych, które pozwalają na równoczesny przepływ danych. Buforowanie i przepustowość danych Kolejną cechą hubów USB 3.0 jest to, że zawierają one więcej buforowania danych niż koncentratory USB 2.0. Koncentratory USB 3.0 przechowują pakiety USB 3.0 SuperSpeed ​​w buforze, a następnie przesyłają je ponownie, gdy dostępny jest przedział czasowy w ścieżce danych SuperSpeed. W przeciwieństwie do USB 2.0, buforowanie w koncentratorze USB 3.0 (i kontrolerze hosta) pozwala na transfer USB 3.0 SuperSpeed, aby kontynuować natychmiast przy następnym pakiecie, bez czekania na potwierdzenie pomyślnego odbioru poprzedniego pakietu. Potwierdzenia można łączyć w jeden pakiet, aby potwierdzić grupę kilku pakietów danych. Koncentratory USB 3.0 mogą to zrobić całkowicie niezależnie od równoczesnego przepływu danych USB 2.0, który również może występować. Wspomniano wcześniej, że koncentrator nie może zwiększyć łącznej przepustowości wszystkich połączonych portów niższego rzędu, w porównaniu do przepustowości portu wyjściowego. Jako bardzo przybliżony szacunek całkowitej przepustowości dostępnej na porcie kontrolera hosta, SuperSpeed ​​używa nieprzetworzonej przepływności 5 Gb, z kodowaniem 8b10b, co zmniejsza efektywną przepustowość dla danych do 4 Gbits (500 MB) lub mniej. Protokół łącza i ramka pakietów jeszcze bardziej zmniejszają to oszacowane maksimum, a każdy czas przestoju między pakietami powoduje jeszcze bardziej efektywną redukcję przepustowości danych. Zamiast 500 Mb / s na jedno łącze SuperSpeed, zmierzona przepustowość danych może być znacznie mniejsza ze względu na wszystkie te koszty ogólne. W szczególności, system hosta i urządzenie końcowe mogą nie być w stanie nadążyć za dostępną przepustowością, co powoduje dodatkowy czas przestoju między pakietami faktycznie przesyłanymi w łączu SuperSpeed. Pamiętaj też, że czteroportowy koncentrator SuperSpeed ​​skutecznie dzieli przepustowość dostępną na jego porcie wyjściowym na cztery gałęzie, z których każda ma tylko 25 przepustowości, jeśli wszystkie cztery porty są równo traktowane dla dostępnej przepustowości portu wyjściowego. Co więcej, jeśli kontroler hosta jest pomostem z magistrali PCI Express do USB 3.0, przepustowość interfejsu PCI Express ograniczy przepustowość obsługiwaną przez kontroler hosta na portach USB 3.0. Jeśli interfejs PCI Express to ldquox1 Gen2, rdquo oznacza jeden pas z nieprzetworzoną szybkością bitową równą 5 Gbits, wówczas kontroler hosta będzie mógł obsługiwać tylko jeden port USB 3.0 działający z szybkością 5 Gbits. Dwa lub więcej portów USB 3.0 obsługiwanych przez jeden interfejs PCI Express Gen2 (x1) będzie cierpieć z powodu tego samego podziału pasma w hubach USB 3.0. Zarządzanie zasilaniem przez USB Forum programatorów USB. PCI SIG. Firma Intel opublikowała kilka specyfikacji dotyczących urządzeń USB, koncentratorów i kontrolerów hosta znanych jako specyfikacja USB 2.0 (w tym komunikaty o zmianach technicznych lub ECN), specyfikacja USB 3.0, specyfikacja PCI Express Base i inne powiązane specyfikacje oraz specyfikacja xHCI. Specyfikacje te opisują różne stany wydajności dla urządzeń USB i PCI Express, w tym od D0 do D3 w przypadku urządzeń PCI Express, LPM (Link Power Management) od L0 do L3 w przypadku USB 2.0 oraz od U0 do U3 w przypadku USB 3.0. Stany zasilania są w zakresie od pełnego włączenia i działania (D0, LPM-L0 i U0) do minimalnego zasilania (D3hot, L2, U3) lub całkowicie bez zasilania (D3cold, LPM-L3). Stany o minimalnej mocy lub niezasilane mają najniższy pobór mocy i najdłuższą trwałość, aby powrócić do stanu w pełni sprawnego (z powodu utraty informacji o ldquocontextrdquo), podczas gdy pośrednie stany mocy mają wyższe poziomy zużycia energii, ale krótsze luźne czasy opóźnienia, częściowo w zależności od tego, czy ich taktowanie nie jest zatrzymywane i potrzebuje czasu na ponowne uruchomienie. Ogólnie rzecz biorąc, sterownik magistrali i lub sterownik wyższego poziomu działający na procesorze hosta implementuje ogólną strategię zarządzania energią dla topologii USB, na przykład kiedy umieścić dowolną część topologii USB w stanie zmniejszonej mocy i jak bardzo zmniejszyć jej moc , w zależności od opóźnienia wznowienia, które może być potrzebne. Na przykład, całkowicie niezasilane urządzenie zazwyczaj będzie wymagało całkowitego zresetowania sprzętu USB (przy użyciu określonej sygnalizacji USB w USB 2.0 lub ldquopolling. LFPSrdquo w USB 3.0) i ponownej inicjalizacji, aby ponownie zacząć działać. To może być zbyt czasochłonne dla użytkowników, którzy próbują wykorzystać swoje urządzenie, a system próbuje jedynie wydłużyć czas pracy akumulatora. W tym przypadku sterowniki programowe mogą wykryć poziom zużycia i określić odpowiedni kompromis między oszczędnością energii a szybką reakcją, jaką widzi użytkownik. Proces przywracania urządzenia do stanu w pełni sprawnego może zostać wywołany przez oprogramowanie hosta lub działanie użytkownika, takie jak naciśnięcie klawisza na klawiaturze, ruchome i kliknięcie myszą lub odbiór nowych danych przychodzących w połączeniu sieciowym. Zdolność urządzenia USB do obsługi wznowienia inicjowanego przez urządzenie zależy od oprogramowania hosta wprowadzającego urządzenie w odpowiedni stan przed przesłaniem urządzenia do stanu zmniejszonej mocy. Zarządzanie zasilaniem USB 3.0 może zaoszczędzić znaczną moc w porównaniu do USB 2.0. Kontroler hosta systemu może mieć tylko dwa stany zasilania, w pełni włączone lub w trybie gotowości, ale stany zasilania USB 3.0 U1 iorU2 mogą być wykorzystywane przez host USB lub urządzenia USB 3.0 oraz łącza, które nie są używane w okresach czasu, gdy system jest nadal w pełni na (rys. 5). USB 2.0 nie ma opcji pośrednich pomiędzy pełnym włączeniem a trybem gotowości, chyba że zaimplementowano LPM-L1, a nawet LPM-L1 nie zapewnia tak wielu opcji zasilania dla oprogramowania hosta, jakie może dostarczyć USB 3.0 U1U2. Jak już wspomniano, charakterystyka routingu typu punkt-punkt w USB 3.0 pozwala również na większą elastyczność w umieszczaniu nieaktywnych lub mniej aktywnych urządzeń i łączy w zredukowanych stanach zasilania. USB 3.0 jest gotowy do szybkiego wzrostu na rynku. Jeszcze kilka lat temu ograniczało się do kilku typów urządzeń peryferyjnych USB i kilku kontrolerów hosta USB. Pełna certyfikacja USB-IF dla hubów USB 3.0 stała się dostępna w grudniu 2017 r., A microPD720210 firmy Renesas Electronics stało się pierwszym hubem USB 3.0, który otrzymał certyfikat. Oczekuje się, że dostępność USB 3.0 będzie szybko rosnąć na rynku na wszystkich poziomach: kontrolerach hostów, urządzeniach peryferyjnych, a teraz również hubach. Pełny przewodnik krok po kroku: Wbudowane oprogramowanie Windows Media w przeglądarce Firefox OSTRZEŻENIE. Przed zainstalowaniem wtyczki ActiveX, jeśli używasz rozszerzenia Adblock. musisz się upewnić, że ustawienie dla OBJ-TABS jest wyłączone. W przeciwnym razie twój system będzie działał prawie jakikolwiek kontroler ActiveX. Zobacz lta hrefNotesgt Uwaga 4 lit. Spis treści Zamień na lta hrefBackgroundgt Tło ltagt Zmień na lta hrefwmpgt Wtyczka Windows Media Player ltagt lta hrefWMPSecurgt Alert bezpieczeństwa ltagt lta hrefCheckWMPngt Sprawdzanie instalacji wtyczki Windows Media Player (XPVista) ltta lta hrefCheckWMPgt Sprawdzanie instalacji wtyczki Windows Media Player (inne) ltagt lta hrefRestoreWMPgt Przywracanie systemu Windows Media Player plugin ltagt lta hrefConfigWMPgt KonfigurowanieRozwiązywanie problemów wtyczka Windows Media Player ltagt Zmień na lta hrefFF1gt Wtyczka ActiveX ltagt lta hrefInstallAXgt Instalowanie wtyczki ActiveX ltagt lta hrefCheckAXgt Sprawdzanie instalacji wtyczki ActiveX ltta lta hrefUninstallgt Odinstalowywanie ActiveX ltagt Warp to lta hrefNotesgt Notatki ltagt Warp to lta hrefTroublegt Rozwiązywanie problemów Większość informacji o wtyczce ActiveX w tym przewodniku została teraz odzwierciedlona w Bazie wiedzy: kb. mozillazine. orgWindowsMediaPlayerlta nameBackgroundgtltagt Background Często można znaleźć strony internetowe, które korzystają z Windows Media Player zmodyfikuj audio i wideo na stronie internetowej. Wtyczka Windows Media Player, która nie jest dołączona do programu Windows Media Player, powinna być dołączona do samego systemu Windows - jednak nie zawsze tak jest. Ponadto wiele stron internetowych używa ActiveX tylko do osadzania mediów - tworząc takie strony internetowe tylko IE. W tym przewodniku omówiono, jak rozwiązać oba problemy. Jeśli przyszedłeś tutaj, zastanawiając się, jak sprawić, by Firefox używał wtyczki Windows Media Player do odtwarzania określonego typu pliku zamiast Quicktime, to powinieneś wiedzieć, że wtyczka WMP jest zakodowana na stałe, aby odtwarzać wyłącznie zastrzeżone formaty Microsoft (.asf. Asx. Wm wma. wax, wmv i. wvx), a program Windows Media Player nie przewiduje zmiany tej opcji. W przypadku najpopularniejszych formatów dostępnych w Internecie (takich jak mp3, midi, mpg, wav itp.) Konieczne będzie zainstalowanie i skonfigurowanie Quicktime lub Quicktime Alternative. Przewodnik po QuickTime zawiera instrukcje dla tego: forums. mozillazine. orgviewtopic. phpt206210 lta namewmpgtltagt Windows Media Player Plugin Windows Media Player zapewnia wtyczkę umożliwiającą przeglądarkom innym niż IE wyświetlanie Windows Media. To jest ta wtyczka, z której korzysta Firefox. Czasem jednak brakuje wtyczki lub odmawia ona poprawnej pracy. Ta sekcja przewodnika zawiera instrukcje dotyczące sprawdzania wtyczki, przywracania jej w razie jej braku oraz jej konfiguracji, jeśli nie działa ona prawidłowo. lta nameWMPSecurgtltagt Alert zabezpieczeń Firma Microsoft wydała biuletyn o zabezpieczeniach w dniu 14 lutego 2006 r. dotyczący luki w zabezpieczeniach wtyczki Windows Media Player w systemach Windows 2000 i Windows XP, która może spowodować zdalne wykonanie kodu podczas korzystania z przeglądarek internetowych innych firm. Zainfekowani użytkownicy powinni zainstalować aktualizację quotSecurity dla wtyczki Windows Media Player (KB911564) quot dostępnej z witryny Windows Update. Spowoduje to aktualizację pliku wtyczek WMP quotnpdsplay. dllquot do wersji 3.0.2.629. microsofttechnetsecuri. 6-006.mspx lta nameCheckWMPgtltagt Sprawdzanie instalacji wtyczki Windows Media Player Aby to działało, musisz mieć zainstalowany Windows Media Player 9, 10 lub 11. Można je zainstalować za pomocą usługi Windows Update. Możesz przetestować wtyczkę Windows Media Player tutaj: Broadband: members. aoljrzycrim01mozil. st-HS. html Narrowband: members. aoljrzycrim01mozil. st-LS. html Jeśli te testowe odtwarzacze działają, to Windows Media Player jest zainstalowany. Jeśli nie działają, musisz sprawdzić, czy Firefox potrafi wykryć wtyczkę Windows Media Player: Użytkownicy Windows XPVista Nowa wtyczka Windows Media Player została wydana dla tych dwóch platform w Port 25, witrynie Microsoft Labs o otwartym źródle. Jest przeznaczony specjalnie dla przeglądarki Firefox (działa także w Seamonkey). Jest to znaczące ulepszenie w porównaniu z oryginalną wtyczką - dodaje obsługę skryptów, nowoczesnych karnacji wyglądu, wizualizacji i większości (jeśli nie wszystkich) atrybutów obsługiwanych przez formant ActiveX w IE. Działa tylko w Windows XP i Vista. Wpisz about058plugins na pasku adresu. Spowoduje to wyświetlenie informacji o wtyczkach Firefoksa. Jeśli wtyczka jest zainstalowana, zobaczysz wpis zatytułowany: quot Microsoft Windows Media Player Firefox Plugin quot Inne wersje Windows Type about058plugins na pasku adresu. Spowoduje to wyświetlenie informacji o wtyczkach Firefoksa. Jeśli obecne są następujące wpisy, to WMP jest poprawnie zainstalowany: wpis Microsoft DRMquot w nazwie o nazwie npwmsdrm. dll może być nazwany cytatem DRM Netscape Pluginquot. Jeśli brakuje któregokolwiek z tych wpisów, wtyczka Windows Media Player nie jest poprawnie zainstalowana. lta nameRestoreWMPngtltagt Przywracanie wtyczki Windows Media Player (XPVista) Jeśli któryś z wpisów nie istnieje, zainstaluj nową wtyczkę Windows Media Player z Addons. Mozilla. org Wtyczka zostanie automatycznie zainstalowana w folderze wtyczek Firefox. Instalator wtyczki wykrywa zainstalowane wersje Firefoksa z rejestru Windows. Dlatego też tylko wersje wydania, które zostały zainstalowane przy użyciu instalatora, otrzymają wtyczkę. Inne przeglądarki Gecko, takie jak Seamonkey i kompilacje zip lub deweloperskie Firefoksa, nie będą. Jeśli masz zainstalowaną wersję przeglądarki Firefox, wtyczka zostanie zainstalowana. Następnie możesz skopiować wtyczkę - np-mswmp. dll - z folderu wtyczek wersji Release do folderu wtyczek dowolnej innej wersji, którą możesz mieć. Jeśli nie masz wersji Release, plik wtyczki będzie znajdować się w quotC: PFilesPluginsnp-mswmp. dllquot. Skopiuj go do folderu wtyczek dowolnej innej wersji, którą możesz mieć. lta nameRestoreWMPgtltagt Przywracanie wtyczki Windows Media Player (inne) Jeśli którykolwiek z tych wpisów nie jest obecny, poszukaj plików w katalogu Windows Media Player (zazwyczaj C: Program FilesWindows Media Player), a jeśli znajdziesz je skopiować do Firefoksa katalog wtyczek (zwykle C: Program FilesMozilla Firefoxplugins). Następnie powtórz poprzedni krok i sprawdź wszystkie pliki. lta namedlldumpgtltagtJeśli niektórych plików nadal brakuje, możesz pobrać poszczególne pliki z dlldump: npdsplay. dll: dlldumpdownload-dll-fil. nload. html (jest to zaktualizowana wersja) npwmsdrm. dll: dlldumpdownload-dll-fil. nload. html npdrmv2.dll: dlldumpdownload-dll-fil. nload. html Pobierz je do katalogu Windows Media Player (zazwyczaj C: Program FilesWindows Media Player), a następnie uruchom ponownie Firefox. Jeśli pliki wtyczek nadal się nie pojawiają, spróbuj skopiować je do katalogu wtyczek przeglądarki Firefox (zazwyczaj C: Program FilesMozilla Firefoxplugins). Specjalne wersje systemu Windows XP: Jeśli korzystasz z systemu Windows XP Home N lub Windows XP Pro N, zobacz temat 7 w poniższej sekcji (lta hrefConfigWMPgt KonfigurowanieRozwiązywanie problemów z wtyczką programu Windows Media Player). Jeśli korzystasz z systemu Windows XP Media Center Edition, zobacz sekcję 12 w poniższej sekcji (lta hrefConfigWMPgt Konfiguracja Rozwiązywanie problemów z wtyczką Windows Media Player). Jeśli pliki wtyczki są obecne, ale nie działają: zainstaluj tę aktualizację z witryny Microsoft: microsoftwindowswindow. lugin. aspx Instaluje wtyczki oraz inne pliki. Pobierz pliki wtyczki z dlldump i umieść je w folderze wtyczek Firefoksa (jak wspomniano powyżej) - jest to konieczne, ponieważ instalator wtyczek firmy Microsoft zawiera starsze wersje plików, które mają niezałatane luki w zabezpieczeniach. Jeśli wtyczki nadal nie działają, zapoznaj się z następującą sekcją: quotKonfiguracjaRozwiązywanie problemów w programie Windows Media Player pluginquotlta nameConfigWMPgtltagt Konfigurowanie Rozwiązywanie problemów z wtyczką programu Windows Media Player Znane problemy z wtyczką WMP i (w stosownych przypadkach) z rozwiązaniem. Dotyczą one tylko starej wtyczki. Jeśli podczas odtwarzania wideo obraz wideo jest niewidoczny lub znika po kliknięciu kontrolki, musisz dostosować ustawienia wtyczki: Gdy odtwarzacz jest aktywny, kliknij go prawym przyciskiem myszy i wybierz Opcje. U dołu okna powinna znajdować się opcja Przyspieszenie wideo. Zmień go z pełnego na pół (lub na zero, jeśli to konieczne), przesuwając suwak. Firefox zawiesza się przy wyjściu, jeśli użyto wtyczki WMP (Windows 2000). Kliknij dwukrotnie ikonę Mój komputer na pulpicie, a następnie dwukrotnie kliknij Panel sterowania. Kliknij dwukrotnie ikonę Java, aby wywołać panel sterowania Java. Kliknij kartę Aktualizacja, a następnie przycisk Aktualizuj teraz. Ten problem może być czasem spowodowany brakiem najnowszej wersji wtyczki Java. lta namePatchgtltagtJeśli kontrolki odtwarzacza wyglądają jak ze starszej wersji programu Windows Media Player: Kliknij ten link prawym przyciskiem myszy i zapisz go na pulpicie: plugindoc. mozdev. orgresourceswmp9.reg Po pobraniu kliknij go dwukrotnie. Wyskakujące okienko zapyta, czy chcesz dodać do niego informacje do rejestru - kliknij Tak. Jeśli łatka rejestru nie pomoże, zostanie zgłoszona ponowna instalacja Windows Media Player 10. Wtyczka WMP jest taka sama niezależnie od tego, czy używasz WMP 6.4, 7, 9, czy 10 - ta łata rejestru pozwala Firefoksowi na zastosowanie nowoczesnego wyglądu WMP do wtyczki. Nie można utworzyć błędu DirectShow Playerquot: Nigdy nie doświadczyłem tego błędu, więc nie wiem, dlaczego tak się stało. Niedawno zgłoszono, że może to być objaw tego problemu: support. microsoftkbid831430 Więc najpierw wypróbuj rozwiązania. W przeciwnym razie spróbuj ponownie zainstalować WMP i zainstalować najnowszą wersję DirectX. Użytkownicy Windows XP z WMP 9 mogą próbować aktualizacji do WMP 10, a użytkownicy WMP 10 mogą również spróbować wycofać się z WMP 9. Zgłoszono, że uruchomienie systemu Windows w trybie awaryjnym, usunięcie WMP, a następnie ponowne zainstalowanie WMP rozwiąże problem. Nie testowałem tej metody (nigdy wcześniej nie miałem błędu), więc nie wiem, czy to zadziała i nie wiem, jakie możliwe skutki uboczne ręczne usunięcie WMP w ten sposób może spowodować. W każdym razie najpierw wypróbuj inne możliwe rozwiązania. Gracze w linkach testowych mają tutaj pasek statusu - informuje cię, co robi gracz. Nie zawsze tak jest. Czasami po naciśnięciu przycisku play na odtwarzaczu bez paska stanu wydaje się, że nic się nie dzieje - tak naprawdę odtwarzacz po prostu pobiera wystarczającą ilość pliku, aby rozpocząć odtwarzanie (buforowanie), a jeśli dasz mu chwilę, zacznie się . Nielegalna operacja w błędzie wtyczki Windows Media Player. Jeśli podczas próby oglądania wbudowanych multimediów systemu Windows napotkasz następujące symptomy: Kod: Zaznacz wszystkie niedozwolone operacje w pluginie Windows Media Player Podłącz bibliotekę dynamicznego łącza Wtyczka wykonała nielegalną operację. Zdecydowanie zalecamy ponowne uruchomienie Navigatora. Może to być spowodowane wyłączeniem Javascript. Kliknij Narzędzia gt Opcje gt Funkcje internetowe i upewnij się, że włączona jest obsługa Javascript. Upewnij się, że wszelkie rozszerzenia, które mogą blokować JavaScript, nie blokują danej witryny lub są wyłączone. Należą do nich NoScript i Adblock Plus. Dla użytkowników systemu Windows XP Home N lub Windows XP Professional N: Ze względu na niedawną decyzję Komisji Europejskiej Microsoft musiał zaoferować te nowe europejskie wersje systemu Windows XP HomePro oprócz standardowych wersji systemu Windows Media Player i wszystkich innych Zablokowano wbudowane funkcje odtwarzania multimediów - w tym wtyczkę Windows Media Player. N oznacza Nie w Windows Media Player. Ze względu na zakres zmian nie można po prostu zainstalować programu Windows Media Player, aby przywrócić pełną funkcjonalność. Firma Microsoft wydała aktualizację, aby przekonwertować system Windows XP N na zwykły system Windows XP (przywracając wszystkie brakujące pliki). Użytkownicy Windows XP HomePro N będą musieli zainstalować tę aktualizację, aby uruchomić wtyczkę Windows Media Player: microsoftdownloadsdeta. layLangen Ostrzeżenie: Nie można tego cofnąć. Po zainstalowaniu tej aktualizacji jedynym sposobem przywrócenia systemu Windows XP N będzie ponowne zainstalowanie systemu Windows. Ta aktualizacja jest również dostępna w witrynie Windows Update. Pojawia się odtwarzacz, pasek stanu odtwarzacza informuje o gotowości, brak komunikatów o błędach, ale nic się nie dzieje po kliknięciu przycisku Odtwórz. Aby wtyczka Windows Media Player działała, przeglądarka Internet Explorer musi mieć dostęp do Internetu: Upewnij się, że Internet Explorer nie jest ustawiony na tryb pracy offline: Aby sprawdzić, czy IE działa w trybie pracy offline, otwórz IE i otwórz menu Plik. Zostanie zaznaczone przez opcję Pracuj w trybie offline. Kliknij, aby wyłączyć tryb pracy offline w trybie IE. Upewnij się, że ustawienia proxy przeglądarki Internet Explorer są poprawne. Upewnij się, że program Internet Explorer i program Windows Media Player nie są blokowane przez zaporę. Może to również być spowodowane przez dostawców DSLcable korzystających z Network Address Translation (NAT), które nie przekazuje poprawnie pakietów UDP. Rozwiązaniem jest wyłączenie UDP w Windows Media Player: W WMP kliknij Narzędzia gt Opcje Wybierz Sieć Odznacz UDP Zostało również zgłoszone, że ponowne zainstalowanie uaktualnienia do Windows Media Player może rozwiązać ten problem. Firefox ulega awarii podczas pisania, aby odtwarzać osadzone pliki WMV. Może to być spowodowane zainstalowaniem VLC Media Player, który zawiera własną wtyczkę do przeglądarki. Ta wtyczka jest w konflikcie z wtyczką WMP, więc aby poprawnie odtwarzać, musisz usunąć wtyczkę VLC dla osadzonych plików WMV. Odtwarzacz nie pojawia się, ale dźwięk (czasami) wciąż jest odtwarzany - wszystkie pliki wtyczki są wymienione w około058plugins: Ostatnio donoszono, że pod Firefox 1.5, Adblocks Ustawienie OBJ-TABS zablokuje wtyczkę WMP. Jeśli okaże się, że tak się dzieje, wyłącz ustawienie obj-tabs. Jeśli to nie zadziała, spróbuj ponownie pobrać pliki wtyczek z dlldump, jak opisano w lta hrefdlldumpgtprevious sectionltagt i umieszczając je w folderze wtyczek Firefoksa. Plugin VLC Media Player również był znany z tego - należy usunąć wtyczkę VLC. Firefox 1.5.0.5 - zawiera błąd, który koliduje z wtyczką WMP. Upgtade to 1.5.0.6. Windows XP Media Center Edition Windows XP Media Center Edition nie zawiera wtyczek Windows Media Player. Ponadto często wydaje się niezdolny do ich obsługi, więc samo przywracanie plików dll może nie działać, a instalator wtyczek nie rozpoznaje XP Media Center Edition. Zgłoszono, że aktualizacja dla Windows XP N (XP bez możliwości odtwarzania multimediów, patrz: wydanie 7), która ponownie doda brakujące pliki odtwarzania multimediów, pozwoli XP Media Center Edition na obsługę wtyczek WMP. Ostrzeżenie: tej aktualizacji nie można odinstalować. Jedynym sposobem na jej cofnięcie jest ponowna instalacja systemu Windows, więc podejmij własne ryzyko. Aktualizacja jest tutaj. Endlta nameFF1gtltagt ActiveX Plugin (Firefox 1.0-1.0.8, 1.5-1.5.0.9) Niektóre media EmbeddedStreaming (na przykład te uruchamiane) używają kontrolki ActiveX do osadzania Windows Media na stronie internetowej. ActiveX jest tym, czego używa Internet Explorer zamiast systemu wtyczek zaadaptowanego przez Netscape. Tam, gdzie wtyczki są zasadniczo podprogramami uruchamianymi w przeglądarce (i podlegają tym ograniczeniom, które przeglądarka narzuca), formanty ActiveX są programami Windows, więc nie mają narzuconych ograniczeń i tego, co wolno im zrobić. To daje im dużą moc poglądy na twój system, szczególnie w połączeniu z faktem, że IE może pobrać i zainstalować je automatycznie i cicho dla ciebie. Celem było umożliwienie bardziej złożonej zawartości strony internetowej, ale system może i może być wykorzystywany do instalowania wirusów, programów typu adware, programów szpiegujących i podobnych. Moc ActiveX może stanowić duże zagrożenie bezpieczeństwa i jest jedną z poważniejszych luk w zabezpieczeniach IE. Częściowo z tego powodu Firefox nie jest wyposażony w obsługę ActiveX. Dostępne są wtyczki ActiveX do Firefoksa, a ta część podręcznika zawiera instrukcje dotyczące instalowania i testowania tego dodatku. Problem bezpieczeństwa jest pomijany, ponieważ wtyczki do Firefoksa są wstępnie skonfigurowane, aby uruchamiały tylko formanty Windows Media Player. Po prostu odmówi pobrania lub uruchomienia jakiejkolwiek innej kontroli, dobrej lub złej. Umożliwi to przeglądanie wielu stron internetowych, które używają tylko ActiveX do osadzania multimediów. Alternatywą dla wtyczki ActiveX jest skrypt Greasemonkey IE Media Mimic: homepage. ntlworldvectorspac. keymimic Między innymi może zapewnić częściową obsługę nośników Windows osadzonych w ActiveX, konwertując obiekt ActiveX do zwykłego obiektu WMP. W chwili pisania tego artykułu autor IE Media Mimic nie uważa go za wystarczająco przyjaznego dla przeciętnego użytkownika Firefoksa, więc przeczytaj dokładnie informacje na jego stronie głównej, zanim rozważysz korzystanie z niego. lta nameInstallAXgtltagt Zanim zaczniesz: WAŻNE. Jeśli używasz rozszerzenia Adblock. musisz się upewnić, że ustawienie dla OBJ-TABS jest wyłączone. W przeciwnym razie twój system będzie działał prawie jakikolwiek kontroler ActiveX. Zobacz lta hrefNotesgt Uwaga 4 lit. Przed instalacją wtyczki ActiveX przeczytaj: Niniejszy przewodnik dotyczy oficjalnych wydań Mozilla. org od wersji 1.0 do 1.0.8 i Firefox 1.5 do wersji 1.5.0.9 w systemie Windows. Nie ma wtyczki ActiveX dla Firefoksa 1.0.5, ale wtyczka do Firefoksa 1.0.4 wydaje się działać. Nie ma wtyczki ActiveX dla Firefoksa 1.0.8, ale wtyczka do Firefoksa 1.0.7 wydaje się działać. Nie ma wtyczki ActiveX dla Firefox 1.5.0.1 do 1.5.0.9, ale wtyczka do Firefoksa 1.5 wydaje się działać dla nich. Wtyczka ActiveX nie jest kompatybilna z kompilacjami Moox. Kompatybilność z innymi kompilacjami stron trzecich jest nieznana. W przypadku wersji Firefoksa w wersji wcześniejszej niż 1.0 (również w systemie Windows) zobacz wcześniejszą wersję tego przewodnika: forums. mozillazine. orgviewtopic. phpt140828. Wtyczka ActiveX dla Firefoksa 1.5 jest oznaczona jako wersja testowa - więc mogą być z nią nieznane problemy. Most methods of updating Firefox to a new version do not remove the ActiveX plugin, and there is no guarantee that the plugin version you have will work with the new version of Firefox. It is strongly recommended that you lta hrefUninstallgt uninstall ltagt the ActiveX plugin before you update Firefox. Having the wrong version of the ActiveX plugin installed can cause other plugins (especially Flash) to malfunction. Installing the ActiveX Plugin The Windows Media Player plugin must be installed and working for this to work. Check that the plugin is installed and functioning correctly before proceeding: lta hrefCheckWMPgt Checking Windows Media Player plugin installation ltagt. Depending on which version of Firefox you use, right-click the relevant link and save it to your desktop: Firefox 1.0, 1.0.1, or 1.0.2. iol. ielockamozillamozactivex-ff-10.xpi Firefox 1.0.3. iol. ielockamozillamozact. -103-2.xpi Firefox 1.0.4, or 1.0.5. iol. ielockamozillamozactivex-ff-104.xpi Firefox 1.0.6. iol. ielockamozillamozactivex-ff-106.xpi Firefox 1.0.7, 1.0.8. iol. ielockamozillamozactivex-ff-107.xpi Firefox 1.5 to 1.5.0.7. iol. ielockamozillamozactivex-ff-15.xpi The Firefox 1.5 plugin is a test version - it is not known to be problem-free yet. This is Adam Locks ActiveX Plugin for Firefox. There are no versions of the plugin that are known to work with any non-official Firefox builds. For Firefox 0.9.x and 1.0PR, see this earlier version of the guide: forums. mozillazine. orgviewtopic. phpt140828 Open Firefox, then drag the. xpi file you just downloaded into the Firefox window. The plugin will appear in the Extensions window while installing, but not once installation is complete. This is normal - even though it installs the same way, this is not an extension and so will not be listed in the Extensions window.. When the installation is complete, restart Firefox. lta nameCheckAXgtltagtlta nameTestAXgtltagt Checking ActiveX Plugin Installation You can test the ActiveX installation on this website: lta hrefmembers. aoljrzycrim01mozillawmpwmpaxtest. html targetblankgt ActiveX Test - Windows Media Player ltagt If you can play both the audio and video players, then the ActiveX and Windows Media Player plugins are installed correctly. If they do not display properly, type about058plugins into the address bar. If the following entry is present, then the ActiveX plugin is installed correctly: If this entry is not present, then reinstall the ActiveX plugin. lta namestillnogtltagt Embedded Media that still wont work If the test link in the previous step worked, then the ActiveX plugin is working. So: Make sure that it does not want a different media player plugin: forums. mozillazine. orgviewtopic. phpt206216 Try tricking the website into thinking you are using a different browser: forums. mozillazine. orgviewtopic. 6216spoof Many websites use IE-only techniques other than just ActiveX to embed media. If a site is using too much IE-only code, then Firefox will not be able to play it even after installing ActiveX. lta nameUninstallgtltagt Uninstalling ActiveXShould you want to uninstall the ActiveX plugin, the process is simple - only four files need to be manually deleted from the Firefox program folder. Close all instances of Firefox Go to the Firefox program folder (the location you installed Firefox to). The default location in Windows is C:Program FilesMozilla Firefox Go into the plugins folder and delete the file npmozax. dll Go back to the Firefox program folder, and then go into the components folder, and delete the files nsIMozAxPlugin. xpt amp nsAxSecurityPolicy. js . Go back to the Firefox program folder, and then go into the defaultspref folder, and delete the file activex. js . Endlta nameNotesgtltagt Notes Note 1. With certain versions of ActiveX installed, sometimes the Flash plugin will not load unless it was previously loaded. A work-around is to refresh your plugins (type about058plugins in your address bar) when starting FireFox, under those circumstances everything loads normally. Note 2. AnonEmoose and I have tested these methods of installing ActiveX with many sites that use ActiveX to stream video (including launch video. cjob Listen Live. startrek video and others) with no problems. However, this does not guarantee that this will allow Firefox to view all embeddedstreaming video - for example, some also use IE-only javascript in the embedded players. Note 3. AnonEmoose has tested YahooLaunch Radio, and believes it does NOT work with Firefox Note 4. For some reason, the OBJ-TABS setting in the Adblock Extension interferes with the ActiveX plugin. The activex. js file that is installed with the plugin determines which controls the plugin may and may not run. If the OBJ-TABS setting is enabled, then the ActiveX plugin will ignore activex. js and run any control. Note 5. IE has a function whereby if you are downloading a video file (such as through a link), it can have WMP play the file as it is downloading. There are methods of duplicating this behaviour in Firefox here: forums. mozillazine. orgviewtopic. 216stream Note 6. If you ever have trouble finding any files on your computer, make sure you have enabled the viewing of hidden files and folders in Windows folder options. Note 7. If you ever have trouble playing media at a site that is reported to work in Firefox when using this method, try clearing all cookies set by that site, then re-trying. In addition, make syre that cookies for the site in question are not blocked (the Adblocker extension could also do this). ------------------------------------------------------------- lta nameTroublegtltagt Troubleshooting If, after following the guide, Embedded Windows Media still wont play properly, then recheck that the lta hrefCheckWMPgt Windows Media Player plugin files ltagt and the lta hrefCheckAXgt ActiveX plugin file ltagt are installed, and that the issue is not documented in the lta hrefConfigWMPgt ConfiguringTroubleshooting the Windows Media Player plugin ltagt section. If you are still unable to resolve any issues, ask for help here in the Mozilla Firefox Support forum. Say that you followed this guide and include the following information: Windows Version Firefox Version Windows Media Player version Difficulties with any of the above steps Whether or not the players on the lta hrefCheckWMPgt WMP Test Page ltagt andor the lta hrefTestAXgt ActiveX Test Page ltagt work A link to a page with embedded media that doesnt work properly (if applicable) Any received error messages (if applicable) If the player loads but doesnt play, right-click on the player. Is Properties greyed out If the player loads but doesnt play, right-click on the player. Is Error Details greyed out If not, click on it and supply the information you see. Any other relevant information -------------------------------------------------------------keywords: ActiveX Active-X plugin Windows Media Player Mediaplayer WMP 6.4 7 9 10 stream streaming embed embedded embedding video mp3 wmv wma asf asx Thanks to AnonEmoose for letting me cannibalise his guide, Adam Lock for his ActiveX plugins, Chris Pederick for his User Agent Switcher Extension, Jim for his ActiveX test page, and rtmjr50 for his input and help. Introduction This guide is intended to everyone interested in inertial MEMS (Micro-Electro-Mechanical Systems) sensors, in particular Accelerometers and Gyroscopes as well as combination IMU devices (Inertial Measurement Unit ). Example IMU unit: AccGyro6DOF on top of MCU processing unit UsbThumb providing USBSerial connectivity I39ll try try to cover few basic but important topics in this article: 8211 what does an accelerometer measure 8211 what does a gyroscope (aka gyro) measure 8211 how to convert analog-to-digital (ADC) readings that you get from these sensor to physical units (those would be g for accelerometer, degs for gyroscope) 8211 how to combine accelerometer and gyroscope readings in order to obtain accurate information about the inclination of your device relative to the ground plane Throughout the article I will try to keep the math to the minimum. If you know what SineCosineTangent are then you should be able to understand and use these ideas in your project no matter what platform you39re using Arduino, Propeller, Basic Stamp, Atmel chips, Microchip PIC, etc. There are people out there who believe that you need complex math in order to make use of an IMU unit (complex FIR or IIR filters such as Kalman filters, Parks-McClellan filters, etc). You can research all those and achieve wonderful but complex results. My way of explaining things require just basic math. I am a great believer in simplicity. I think a system that is simple is easier to control and monitor, besides many embedded devices do not have the power and resources to implement complex algorithms requiring matrix calculations. I39ll use as an example a new IMU unit that I designed 8211 the AccGyro Accelerometer Gyro IMU. We39ll use parameters of this device in our examples below. This unit is a good device to start with because it consists of 3 devices: 8211 LIS331AL (datasheet ) 8211 analog 3-axis 2G accelerometer 8211 LPR550AL (datasheet ) 8211 a dual-axis (Pitch and Roll), 500degsecond gyroscope 8211 LY550ALH (datasheet ) 8211 a single axis (Yaw) gyroscope (this last device is not used in this tutorial but it becomes relevant when you move on to DCM Matrix implementation ) Together they represent a 6-Degrees of Freedom Inertial Measurement Unit. Now that39s a fancy name Nevertheless, behind the fancy name is a very useful combination device that we39ll cover and explain in detail below. Part 1. Accelerometer To understand this unit we39ll start with the accelerometer. When thinking about accelerometers it is often useful to image a box in shape of a cube with a ball inside it. You may imagine something else like a cookie or a donut. but I39ll imagine a ball: If we take this box in a place with no gravitation fields or for that matter with no other fields that might affect the ball39s position 8211 the ball will simply float in the middle of the box. You can imagine the box is in outer-space far-far away from any cosmic bodies, or if such a place is hard to find imagine at least a space craft orbiting around the planet where everything is in weightless state. From the picture above you can see that we assign to each axis a pair of walls (we removed the wall Y so we can look inside the box). Imagine that each wall is pressure sensitive. If we move suddenly the box to the left (we accelerate it with acceleration 1g 9.8ms2), the ball will hit the wall X-. We then measure the pressure force that the ball applies to the wall and output a value of -1g on the X axis. Please note that the accelerometer will actually detect a force that is directed in the opposite direction from the acceleration vector. This force is often called Inertial Force or Fictitious Force. One thing you should learn from this is that an accelerometer measures acceleration indirectly through a force that is applied to one of it39s walls (according to our model, it might be a spring or something else in real life accelerometers). This force can be caused by the acceleration. but as we39ll see in the next example it is not always caused by acceleration. If we take our model and put it on Earth the ball will fall on the Z - wall and will apply a force of 1g on the bottom wall, as shown in the picture below: In this case the box isn39t moving but we still get a reading of -1g on the Z axis. The pressure that the ball has applied on the wall was caused by a gravitation force. In theory it could be a different type of force 8211 for example, if you imagine that our ball is metallic, placing a magnet next to the box could move the ball so it hits another wall. This was said just to prove that in essence accelerometer measures force not acceleration. It just happens that acceleration causes an inertial force that is captured by the force detection mechanism of the accelerometer. While this model is not exactly how a MEMS sensor is constructed it is often useful in solving accelerometer related problems. There are actually similar sensors that have metallic balls inside, they are called tilt switches, however they are more primitive and usually they can only tell if the device is inclined within some range or not, not the extent of inclination. So far we have analyzed the accelerometer output on a single axis and this is all you39ll get with a single axis accelerometers. The real value of triaxial accelerometers comes from the fact that they can detect inertial forces on all three axes. Let39s go back to our box model, and let39s rotate the box 45 degrees to the right. The ball will touch 2 walls now: Z - and X - as shown in the picture below: The values of 0.71 are not arbitrary, they are actually an approximation for SQRT(12). This will become more clear as we introduce our next model for the accelerometer. In the previous model we have fixed the gravitation force and rotated our imaginary box. In last 2 examples we have analyzed the output in 2 different box positions, while the force vector remained constant. While this was useful in understanding how the accelerometer interacts with outside forces, it is more practical to perform calculations if we fix the coordinate system to the axes of the accelerometer and imagine that the force vector rotates around us. Please have a look at the model above, I preserved the colors of the axes so you can make a mental transition from the previous model to the new one. Just imagine that each axis in the new model is perpendicular to the respective faces of the box in the previous model. The vector R is the force vector that the accelerometer is measuring (it could be either the gravitation force or the inertial force from the examples above or a combination of both). Rx, Ry, Rz are projection of the R vector on the X, Y,Z axes. Please notice the following relation: which is basically the equivalent of the Pythagorean theorem in 3D . Remember that a little bit earlier I told you that the values of SQRT(12) 0.71 are not random. If you plug them in the formula above, after recalling that our gravitation force was 1 g we can verify that: 12 (-SQRT(12) )2 0 2 (-SQRT(12))2 simply by substituting R1, Rx - SQRT(12), Ry 0. Rz - SQRT(12) in Eq.1 After a long preamble of theory we39re getting closer to real life accelerometers. The values Rx, Ry, Rz are actually linearly related to the values that your real-life accelerometer will output and that you can use for performing various calculations. Before we get there let39s talk a little about the way accelerometers will deliver this information to us. Most accelerometers will fall in two categories: digital and analog. Digital accelerometers will give you information using a serial protocol like I2C. SPI or USART, while analog accelerometers will output a voltage level within a predefined range that you have to convert to a digital value using an ADC (analog to digital converter) module. I will not go into much detail about how ADC works, partly because it is such an extensive topic and partly because it is different from one platform to another. Some microcontroller will have a built-in ADC modules some of them will need external components in order to perform the ADC conversions. No matter what type of ADC module you use you39ll end up with a value in a certain range. For example a 10-bit ADC module will output a value in the range of 0..1023, note that 1023 210 -1. A 12-bit ADC module will output a value in the range of 0..4095, note that 4095 212-1. Let39s move on by considering a simple example, suppose our 10bit ADC module gave us the following values for the three accelerometer channels (axes): AdcRx 586 AdcRy 630 AdcRz 561 Each ADC module will have a reference voltage, let39s assume in our example it is 3.3V. To convert a 10bit adc value to voltage we use the following formula: VoltsRx AdcRx Vref 1023 A quick note here: that for 8bit ADC the last divider would be 255 2 8 -1. and for 12bit ADC last divider would be 4095 212 -1. Applying this formula to all 3 channels we get: VoltsRx 586 3.3V 1023 1.89V (we round all results to 2 decimal points) VoltsRy 630 3.3V 1023 2.03V VoltsRz 561 3.3V 1023 Each accelerometer has a zero-g voltage level, you can find it in specs, this is the voltage that corresponds to 0g. To get a signed voltage value we need to calculate the shift from this level. Let39s say our 0g voltage level is VzeroG 1.65V. We calculate the voltage shifts from zero-g voltage as follows:: DeltaVoltsRx 1.89V 8211 1.65V 0.24V DeltaVoltsRy 2.03V 8211 1.65V 0.38V DeltaVoltsRz 1.81V 8211 1.65V 0.16V We now have our accelerometer readings in Volts. it39s still not in g (9.8 ms2), to do the final conversion we apply the accelerometer sensitivity, usually expressed in mVg. Lets say our Sensitivity 478.5mVg 0.4785Vg. Sensitivity values can be found in accelerometer specifications. To get the final force values expressed in g we use the following formula: Rx DeltaVoltsRx Sensitivity Rx 0.24V 0.4785Vg 0.5g Ry 0.38V 0.4785Vg 0.79g Rz 0.16V 0.4785Vg We could of course combine all steps in one formula, but I went through all the steps to make it clear how you go from ADC readings to a force vector component expressed in g. Rx (AdcRx Vref 1023 8211 VzeroG) Sensitivity (Eq.2 ) Ry (AdcRy Vref 1023 8211 VzeroG) Sensitivity Rz (AdcRz Vref 1023 8211 VzeroG) Sensitivity We now have all 3 components that define our inertial force vector, if the device is not subject to other forces other than gravitation, we can assume this is the direction of our gravitation force vector. If you want to calculate inclination of device relative to the ground you can calculate the angle between this vector and Z axis. If you are also interested in per-axis direction of inclination you can split this result into 2 components: inclination on the X and Y axis that can be calculated as the angle between gravitation vector and X Y axes. Calculating these angles is more simple than you might think, now that we have calculated the values for Rx, Ry and Rz. Let39s go back to our last accelerometer model and do some additional notations: The angles that we are interested in are the angles between X, Y,Z axes and the force vector R. We39ll define these angles as Axr, Ayr, Azr. You can notice from the right-angle triangle formed by R and Rx that: cos(Axr) Rx R. and similarly : cos(Ayr) Ry R cos(Azr) Rz R We can deduct from Eq.1 that R SQRT( Rx2 Ry2 Rz2). We can find now our angles by using arccos() function (the inverse cos() function ): Axr arccos(RxR) Ayr arccos(RyR) Azr arccos(RzR) We39ve gone a long way to explain the accelerometer model, just to come up to these formulas. Depending on your applications you might want to use any intermediate formulas that we have derived. We39ll also introduce the gyroscope model soon, and we39ll see how accelerometer and gyroscope data can be combined to provide even more accurate inclination estimations. But before we do that let39s do some more useful notations: cosX cos(Axr) Rx R cosY cos(Ayr) Ry R cosZ cos(Azr) Rz R This triplet is often called Direction Cosine. and it basically represents the unit vector (vector with length 1) that has same direction as our R vector. You can easily verify that: SQRT(cosX2 cosY2 cosZ2) 1 This is a nice property since it absolve us from monitoring the modulus(length) of R vector. Often times if we39re just interested in direction of our inertial vector, it makes sense to normalize it39s modulus in order to simplify other calculations. Part 2. Gyroscope We39re not going to introduce any equivalent box model for the gyroscope like we did for accelerometer, instead we39re going to jump straight to the second accelerometer model and we39ll show what does the gyroscope measure according to this model. Each gyroscope channel measures the rotation around one of the axes. For instance a 2-axes gyroscope will measure the rotation around (or some may say quotaboutquot) the X and Y axes. To express this rotation in numbers let39s do some notations. First let39s define: Rxz 8211 is the projection of the inertial force vector R on the XZ plane Ryz 8211 is the projection of the inertial force vector R on the YZ plane From the right-angle triangle formed by Rxz and Rz, using Pythagorean theorem we get: Rxz2 Rx2 Rz2. and similarly: Ryz2 Ry2 Rz2 R2 Rxz2 Ry2. this can be derived from Eq.1 and above equations, or it can be derived from right-angle triangle formed by R and Ryz R2 Ryz2 Rx2 We39re not going to use these formulas in this article but it is useful to note the relation between all the values in our model. Instead we39re going to define the angle between the Z axis and Rxz, Ryz vectors as follows: Axz 8211 is the angle between the Rxz (projection of R on XZ plane) and Z axis Ayz 8211 is the angle between the Ryz (projection of R on YZ plane) and Z axis Now we39re getting closer to what the gyroscope measures. Gyroscope measures the rate of changes of the angles defined above. In other words it will output a value that is linearly related to the rate of change of these angles. To explain this let39s assume that we have measured the rotation angle around axis Y (that would be Axz angle) at time t0, and we define it as Axz0, next we measured this angle at a later time t1 and it was Axz1. The rate of change will be calculated as follows: RateAxz (Axz1 8211 Axz0) (t1 8211 t0). If we express Axz in degrees, and time in seconds. then this value will be expressed in degs. This is what a gyroscope measures. In practice a gyroscope(unless it is a special digital gyroscope) will rarely give you a value expressed in degs. Same as for accelerometer you39ll get an ADC value that you39ll need to convert to degs using a formula similar to Eq. 2 that we have defined for accelerometer. Let39s introduce the ADC to degs conversion formula for gyroscope (we assume we39re using a 10bit ADC module. for 8bit ADC replace 1023 with 255, for 12bit ADC replace 1023 with 4095). RateAxz (AdcGyroXZ Vref 1023 8211 VzeroRate) Sensitivity Eq.3 RateAyz (AdcGyroYZ Vref 1023 8211 VzeroRate) Sensitivity AdcGyroXZ, AdcGyroYZ 8211 are obtained from our adc module and they represent the channels that measure the rotation of projection of R vector in XZ respectively in YZ planes, which is the equivalent to saying rotation was done around Y and X axes respectively. Vref 8211 is the ADC reference voltage we39ll use 3.3V in the example below VzeroRate 8211 is the zero-rate voltage, in other words the voltage that the gyroscope outputs when it is not subject to any rotation, for the AccGyro board it is for example 1.23V (you can find this values in the specs 8211 but don39t trust the specs most gyros will suffer slight offset after being soldered so measure VzeroRate for each axis output using a voltmeter, usually this value will not change over time once the gyro was soldered, if it variates 8211 write a calibration routine to measure it before device start-up, user must be instructed to keep device in still position upon start-up for gyros to calibrate). Sensitivity 8211 is the sensitivity of your gyroscope it is expressed in mV (deg s) often written as mVdegs. it basically tells you how many mV will the gyroscope output increase. if you increase the rotation speed by one degs. The sensitivity of AccGyro board is for example 2mVdegs or 0.002Vdegs Let39s take an example, suppose our ADC module returned following values: AdcGyroXZ 571 AdcGyroXZ 323 Using the above formula, and using the specs parameters of AccGyro board we39ll get: RateAxz (571 3.3V 1023 8211 1.23V) ( 0.002Vdegs) 306 degs RateAyz (323 3.3V 1023 8211 1.23V) ( 0.002Vdegs) In other words the device rotates around the Y axis (or we can say it rotates in XZ plane) with a speed of 306 degs and around the X axis (or we can say it rotates in YZ plane) with a speed of -94 degs. Please note that the negative sign means that the device rotates in the opposite direction from the conventional positive direction. By convention one direction of rotation is positive. A good gyroscope specification sheet will show you which direction is positive, otherwise you39ll have to find it by experimenting with the device and noting which direction of rotation results in increasing voltage on the output pin. This is best done using an oscilloscope since as soon as you stop the rotation the voltage will drop back to the zero-rate level. If you39re using a multimeter you39d have to maintain a constant rotation rate for at least few seconds and note the voltage during this rotation, then compare it with the zero-rate voltage. If it is greater than the zero-rate voltage it means that direction of rotation is positive. Part 3. Putting it all together. Combining accelerometer and gyroscope data. If you39re reading this article you probably acquired or are planning to acquire a IMU device, or probably you39re planning to build one from separate accelerometer and gyroscope devices. NOTE: FOR PRACTICAL IMPLEMENTATION AND TESTING OF THIS ALGORITHM PLEASE READ THIS ARTICLE: The first step in using a combination IMU device that combines an accelerometer and a gyroscope is to align their coordinate systems. The easiest way to do it is to choose the coordinate system of accelerometer as your reference coordinate system. Most accelerometer data sheets will display the direction of X, Y,Z axes relative to the image of the physical chip or device. For example here are the directions of X, Y,Z axes as shown in specifications for the AccGyro board: 8211 identify the gyroscope outputs that correspond to RateAxz. RateAyz values discussed above. 8211 determine if these outputs need to be inverted due to physical position of gyroscope relative to the accelerometer Do not assume that if a gyroscope has an output marked X or Y, it will correspond to any axis in the accelerometer coordinate system, even if this output is part of an IMU unit. The best way is to test it. Here is a sample sequence to determine which output of gyroscope corresponds to RateAxz value discussed above. 8211 start from placing the device in horizontal position. Both X and Y outputs of accelerometer would output the zero-g voltage (for example for AccGyro board this is 1.65V) 8211 next start rotating the device around the Y axis, another way to say it is that you rotate the device in XZ plane, so that X and Z accelerometer outputs change and Y output remains constant. 8211 while rotating the device at a constant speed note which gyroscope output changes, the other gyroscope outputs should remain constant 8211 the gyroscope output that changed during the rotation around Y axis (rotation in XZ plane) will provide the input value for AdcGyroXZ, from which we calculate RateAxz 8211 the final step is to ensure the rotation direction corresponds to our model, in some cases you may have to invert the RateAxz value due to physical position of gyroscope relative to the accelerometer 8211 perform again the above test, rotating the device around the Y axis, this time monitor the X output of accelerometer (AdcRx in our model). If AdcRx grows (the first 90 degrees of rotation from horizontal position), then AdcGyroXZ should decrease. This is due to the fact that we are monitoring the gravitation vector and when device rotates in one direction the vector will rotate in oposite direction (relative to the device coordonate system, which we are using). So, otherwise you need to invert RateAxz. you can achieve this by introducing a sign factor in Eq.3 . as follows: RateAxz InvertAxz (AdcGyroXZ Vref 1023 8211 VzeroRate) Sensitivity. where InvertAxz is 1 or -1 same test can be done for RateAyz. by rotating the device around the X axis, and you can identify which gyroscope output corresponds to RateAyz, and if it needs to be inverted. Once you have the value for InvertAyz, you should use the following formula to calculate RateAyz: RateAyz InvertAyz (AdcGyroYZ Vref 1023 8211 VzeroRate) Sensitivity If you would do these tests on AccGyro board you would get following results: 8211 the output pin for RateAxz is GX4 and InvertAxz 1 8211 the output pin for RateAyz is GY4 and InvertAyz 1 From this point on we39ll consider that you have setup your IMU in such a way that you can calculate correct values for Axr, Ayr, Azr (as defined Part 1. Accelerometer) and RateAxz, RateAyz (as defined in Part 2. Gyroscope). Next we39ll analyze the relations between these values that turn out useful in obtaining more accurate estimation of the inclination of the device relative to the ground plane. You might be asking yourself by this point, if accelerometer model already gave us inclination angles of Axr, Ayr, Azr why would we want to bother with the gyroscope data. The answer is simple: accelerometer data can39t always be trusted 100. There are several reason, remember that accelerometer measures inertial force, such a force can be caused by gravitation (and ideally only by gravitation), but it might also be caused by acceleration (movement) of the device. As a result even if accelerometer is in a relatively stable state, it is still very sensitive to vibration and mechanical noise in general. This is the main reason why most IMU systems use a gyroscope to smooth out any accelerometer errors. But how is this done. And is the gyroscope free from noise The gyroscope is not free from noise however because it measures rotation it is less sensitive to linear mechanical movements, the type of noise that accelerometer suffers from, however gyroscopes have other types of problems like for example drift (not coming back to zero-rate value when rotation stops). Nevertheless by averaging data that comes from accelerometer and gyroscope we can obtain a relatively better estimate of current device inclination than we would obtain by using the accelerometer data alone. In the next steps I will introduce an algorithm that was inspired by some ideas used in Kalman filter, however it is by far more simple and easier to implement on embedded devices. Before that let39s see first what we want our algorithm to calculate. Dobrze. it is the direction of gravitation force vector R Rx, Ry, Rz from which we can derive other values like Axr, Ayr, Azr or cosX, cosY, cosZ that will give us an idea about the inclination of our device relative to the ground plane, we discuss the relation between these values in Part 1. One might say 8211 don39t we already have these values Rx, Ry. Rz from Eq.2 in Part 1. Well yes, but remember that these values are derived from accelerometer data only, so if you would be to use them directly in your application you might get more noise than your application can tolerate. To avoid further confusion let39s re-define the accelerometer measurements as follows: Racc 8211 is the inertial force vector as measured by accelerometer, that consists of following components (projections on X, Y,Z axes): RxAcc (AdcRx Vref 1023 8211 VzeroG) Sensitivity RyAcc (AdcRy Vref 1023 8211 VzeroG) Sensitivity RzAcc (AdcRz Vref 1023 8211 VzeroG) Sensitivity So far we have a set of measured values that we can obtain purely from accelerometer ADC values. We39ll call this set of data a quotvectorquot and we39ll use the following notation. Because these components of Racc can be obtained from accelerometer data. we can consider it an input to our algorithm. Please note that because Racc measures the gravitation force you39ll be correct if you assume that the length of this vector defined as follows is equal or close to 1g. Racc SQRT(RxAcc2 RyAcc2 RzAcc2), However to be sure it makes sense to update this vector as follows: Racc(normalized) RxAccRacc. RyAccRacc. RzAccRacc. This will ensure the length of your normalized Racc vector is always 1. Next we39ll introduce a new vector and we39ll call it This will be the output of our algorithm. these are corrected values based on gyroscope data and based on past estimated data. Here is what our algorithm will do: 8211 accelerometer tells us: quotYou are now at position Raccquot 8211 we say quotThank you, but let me checkquot, 8211 then correct this information with gyroscope data as well as with past Rest data and we output a new estimated vector Rest. 8211 we consider Rest to be our quotbest betquot as to the current position of the device. Let39s see how we can make it work. We39ll start our sequence by trusting our accelerometer and assigning: By the way remember Rest and Racc are vectors. so the above equation is just a simple way to write 3 sets of equations, and avoid repetition: RxEst(0) RxAcc(0) RyEst(0) RyAcc(0) RzEst(0) RzAcc(0) Next we39ll do regular measurements at equal time intervals of T seconds, and we39ll obtain new measurements that we39ll define as Racc(1), Racc(2). Racc(3) and so on. We39ll also issue new estimates at each time intervals Rest(1), Rest(2), Rest(3) and so on. Suppose we39re at step n. We have two known sets of values that we39d like to use: Rest(n-1) 8211 our previous estimate, with Rest(0) Racc(0) Racc(n) 8211 our current accelerometer measurement Before we can calculate Rest(n). let39s introduce a new measured value, that we can obtain from our gyroscope and a previous estimate. We39ll call it Rgyro. and it is also a vector consisting of 3 components: We39ll calculate this vector one component at a time. We39ll start with RxGyro. Let39s start by observing the following relation in our gyroscope model, from the right-angle triangle formed by Rz and Rxz we can derive that: tan(Axz) RxRz gt Axz atan2(Rx, Rz) Atan2 might be a function you never used before, it is similar to atan, except it returns values in range of (-PI, PI) as opposed to (-PI2,PI2) as returned by atan, and it takes 2 arguments instead of one. It allows us to convert the two values of Rx, Rz to angles in the full range of 360 degrees (-PI to PI). You can read more about atan2 here . So knowing RxEst(n-1). and RzEst(n-1) we can find: Axz(n-1) atan2( RxEst(n-1). RzEst(n-1) ). Remember that gyroscope measures the rate of change of the Axz angle. So we can estimate the new angle Axz(n) as follows: Axz(n) Axz(n-1) RateAxz(n) T Remember that RateAxz can be obtained from our gyroscope ADC readings. A more precise formula can use an average rotation rate calculated as follows: RateAxzAvg ( RateAxz(n) RateAxz(n-1) ) 2 Axz(n) Axz(n-1) RateAxzAvg T The same way we can find: Ayz(n) Ayz(n-1) RateAyz(n) T Ok so now we have Axz(n) and Ayz(n). Where do we go from here to deduct RxGyroRyGyro. From Eq. 1 we can write the length of vector Rgyro as follows: Rgyro SQRT(RxGyro2 RyGyro2 RzGyro2) Also because we normalized our Racc vector, we may assume that it39s length is 1 and it hasn39t changed after the rotation, so it is relatively safe to write: Let39s adopt a temporary shorter notation for the calculations below: x RxGyro. yRyGyro, zRzGyro Using the relations above we can write: x x 1 x SQRT(x2y2z2) Let39s divide numerator and denominator of fraction by SQRT(x2 z2) x ( x SQRT(x2 z2) ) SQRT( (x2 y2 z2) (x2 z2) ) Note that x SQRT(x2 z2) sin(Axz), so: x sin(Axz) SQRT (1 y2 (x2 z2) ) Now multiply numerator and denominator of fraction inside SQRT by z2 x sin(Axz) SQRT (1 y2 z 2 (z2 (x2 z2)) ) Note that z SQRT(x2 z2) cos(Axz) and y z tan(Ayz), so finally: x sin(Axz) SQRT (1 cos(Axz)2 tan(Ayz)2 ) Going back to our notation we get: RxGyro sin(Axz(n)) SQRT (1 cos(Axz(n))2 tan(Ayz(n))2 ) same way we find that RyGyro sin(Ayz(n)) SQRT (1 cos(Ayz(n))2 tan(Axz(n))2 ) Side Note: it is possible to further simplify this formula. By dividing both parts of the fraction by sin(Axz(n)) you get: RxGyro 1 SQRT (1 sin(Axz(n))2 cos(Axz(n))2 sin(Axz(n))2 tan(Ayz(n))2 ) RxGyro 1 SQRT (1 sin(Axz(n))2 cot(Axz(n))2 sin(Ayz(n))2 cos(Ayz(n))2 ) now add and substract cos(Axz(n))2sin(Axz(n))2 cot(Axz(n))2 RxGyro 1 SQRT (1 sin(Axz(n))2 8211 cos(Axz(n))2sin(Axz(n))2 cot(Axz(n))2 sin(Ayz(n))2 cos(Ayz(n))2 cot(Axz(n))2 ) and by grouping terms 1amp2 and then 3amp4 we get RxGyro 1 SQRT (1 cot(Axz(n))2 sec(Ayz(n))2 ), where cot(x) 1 tan(x) and sec(x) 1 cos(x) This formula uses only 2 trigonometric functions and can be computationally less expensive. If you have Mathematica program you can verify it by evaluating FullSimplify SinA2 ( 1 CosA2 TanB2) Now, finally we can find: RzGyro Sign(RzGyro)SQRT(1 8211 RxGyro2 8211 RyGyro2). Where Sign(RzGyro) 1 when RzGyrogt0. and Sign(RzGyro) -1 when RzGyrolt0. One simple way to estimate this is to take: In practice be careful when RzEst(n-1) is close to 0. You may skip the gyro phase altogether in this case and assign: Rgyro Rest(n-1). Rz is used as a reference for calculating Axz and Ayz angles and when it39s close to 0, values may overflow and trigger bad results. You39ll be in domain of large floating point numbers where tan() atan() function implementations may lack precision. So let39s recap what we have so far, we are at step n of our algorithm and we have calculated the following values: Racc 8211 current readings from our accelerometer Rgyro 8211 obtained from Rest(n-1) and current gyroscope readings Which values do we use to calculate the updated estimate Rest(n). You probably guessed that we39ll use both. We39ll use a weighted average, so that: Rest(n) (Racc w1 Rgyro w2 ) (w1 w2) We can simplify this formula by dividing both numerator and denominator of the fraction by w1. Rest(n) (Racc w1w1 Rgyro w2w1 ) (w1w1 w2w1) and after substituting w2w1 wGyro we get: Rest(n) (Racc Rgyro wGyro ) (1 wGyro) In the above formula wGyro tells us how much we trust our gyro compared to our accelerometer. This value can be chosen experimentally usually values between 5..20 will trigger good results. The main difference of this algorithm from Kalman filter is that this weight is relatively fixed. whereas in Kalman filter the weights are permanently updated based on the measured noise of the accelerometer readings. Kalman filter is focused at giving you quotthe bestquot theoretical results, whereas this algorithm can give you results quotgood enoughquot for your practical application. You can implement an algorithm that adjusts wGyro depending on some noise factors that you measure, but fixed values will work well for most applications. We are one step away from getting our updated estimated values: RxEst(n) (RxAcc RxGyro wGyro ) (1 wGyro) RyEst(n) (RyAcc RyGyro wGyro ) (1 wGyro) RzEst(n) (RzAcc RzGyro wGyro ) (1 wGyro) Now let39s normalize this vector again: R SQRT(RxEst(n) 2 RyEst(n)2 RzEst(n)2 ) RxEst(n) RxEst(n)R RyEst(n) RyEst(n)R RzEst(n) RzEst(n)R And we39re ready to repeat our loop again. NOTE: FOR PRACTICAL IMPLEMENTATION AND TESTING OF THIS ALGORITHM PLEASE READ THIS ARTICLE: Other Resources on Accelerometer and Gyroscope IMU Fusion: 23. ineedkalman September 19, 2017 sir i have two questions: 1. just to satisfy my curiosity and to be able to apply your method on different applications, how did you find wgyro 2. and to clarify things, using this 5 dof the TILT with respect to the axes right: RxGyro, RyGyro, RzGyro for the accelerometer RxAcc, RyAcc, RzAcc right but then you mentioned that the RzGyro has a Sign. is it correct that i should just use Rgyro Rest(n-1) only when RzEst(n-1) is between (0,1) thank you very much 24. starlino September 19, 2017 1. wgyro was determined experimentally I simply charted RxAcc and RxEst while simulating the type of movement the application will have. Slowly increased wgyro you reach the best satisfying point keeping 2 things in mind: if wgyro is too low then the noise is not eliminated, if wgyro is too high then you get a delayed RxEst compared to RxAcc and also you8217ll notice a drift since wgyro is in fact the weight of moving average as well as the weight of integrating the gyro rate over time. Another interesting approach especially if your project would be subject to extreme accelerations. is to weight wgyro based on how off it is from 1g value (it should be 1g if no external acceleration is present). If we have external acceleration, then we should increase the wgyro (we trust more our gyro than our accelerometer at that moment). Here is an example of similar usage in arduimu code, from DCM. pde file: Calculate the magnitude of the accelerometer vector Accelmagnitude sqrt(AccelVector0AccelVector0 AccelVector1AccelVector1 AccelVector2AccelVector2) Accelmagnitude Accelmagnitude GRAVITY Scale to gravity. Dynamic weighting of accelerometer info (reliability filter) Weight for accelerometer info (lt0.5G 0.0, 1G 1.0. 1.5G 0.0) Accelweight constrain(1 8211 2abs(1 8211 Accelmagnitude),0,1) 2. As far as your second question I am not sure I understand it completely. The text mentioned that you should be careful when RzEst(n-1) is close to 0. because tangent will tend to infinite and the floating numbers are not accurate in that region. You should simply use the RxAcc results. In the example Arduino code (see the other article), this is treated as follows: evaluate RwGyro vector if(abs(RwEst2) imu. h function() gyrocalibrate() ) 2) while the device is in motion the gyro is compensated by the accelerometer influence, since the results from both sensors are fused with a weighted average wGyro 27. ineedkalman September 27, 2017 thank you very much for your patience and generosity in replying to my questions. on a separate note sir, i would like to inquire (1) if the readings from my accelerometer is erroneous or not. i get a stationary reading of 715 on a 10bit adc. the no load voltage specified on the data sheet is 1.65 v max, similar to yours. if i apply your calculations on a 3.3v reference then the voltage reading would be .65 v. (2) im planning on implementing your tilt sensing mechanism on a wheeled robot meant for uneven roads. the robot8217s speed is controlled via PID which lends itself to having movements that tend to be 8220jerky8221. since the accelerometer is susceptible to vibrations, would this 8220jerky8221 characteristic be a hindrance (produce large tilt readings during jerks) thank you very much 28. starlino September 28, 2017 (1) ineedkalman, check the output of your accelerometer with a voltmeter. What is the sensibility of your accelerometer and what axis are you measuring and what is the position of device during measurment. are you expexting a reading that corresponds to 0g or 1g (2) for self balancing bot you need to use a gyro. if you fuse the data of both devices you will compensate for accelerometer 8220jerky8221 behavior, this is the whole idea why the fusion algorithm has to be used in some applications. You will also need to make wGyro dynamic (make it bigger when accelerometer vector magnitude deviates from 1. and make it smaller when it is close to 1) Hi, I am implementing your algorithm in c and by outputting the results on SerialChart, I can see how it works. I set wgyro to be 33 and see it went crazy when I tilted my IMU and then settled down at the angle i stopped at. Is it something that is expected If not, what should I do to fix it well, I run a debug on the code and and found that the calculation of RwGyro is totally off (x 0.9 at stationary position) So I guess my Gyro reading is off 31. starlino September 30, 2017 Yonghan Ching most likely your gyro offset is dragging the value, you need to find out VzeroRate (for each axis it8217s slightly different ) experimentally. not just take it from specs . well8230 looks like I did the time conversions incorrectly8230 dumb me8230 now it8217s working perfectly using Wgyro 8.5 33. kols October 12, 2017 I am trying to use this method to get position with data from a 3 axis gyro and 3 axis accelerometer, but I am not seeing the output that I expect. The readings from my accelerometer when idle are (0, 0, 1), 1g downward which is of course gravity. When I input those values and assume no rotation, the projected movement is 1 unit downward. I was under the impression that this method would account for the force of gravity, so when the accelerometer was idle for example, it would estimate the movement to be zero in all directions. Did I misunderstand something or am I perhaps doing my math wrong 34. starlino October 12, 2017 Kols, are you talking about position or inclination, this article only describes the inclination calculation. To get position in 3d space with an accelerometer you would have to integrate values once to get speed and then twice to get position. you will get huge errors, but you can use same idea of complimentary filter to correct the position from time to time using a more coarse sensor like for example a GPS, for an enclosed space you can use triangulation with some beacon signals. 35. kols October 12, 2017 I was talking about position. That makes the outputs make more sense now. Am I more or less stuck using 8216suvat8217 equations then for a very rough position then 8230 I found this guide that ex planes how to combine accelerometer and gyroscope values to get a more stable reading8230 A Guide To using IMU (Accelerometer and Gyroscope Devices) in Embedded Applications. 8230 37. deviuk October 16, 2017 I want to make a system that i can place inside a car and that will measure the road slope angle. I think this combination would be excellent. But i have some few questions: 8211 When placing this inside the car, the axis probably needs to be aligned with the road Or is there some way of calibration that can handle with this 8211 The system is probably not independent of the pitch of the car during accelerationbraking So i probably will recieve wrong road slope angles while the car is 8216pitching8217. Also thx for this nice tutorial 38. Mithil October 17, 2017 I got a problem in which I need to simulate the position of an object given accelerations in two dimension and rotation in the third. Integrating the acceleration values twice would give me the position in the particular dimensions, and using the angular rotation I could get the position of the object. But I am not able to practically implement the whole setup, I mean not able to put the equations in place to get the feed into the matlab code. I directly have set of values of accelerations and rotation angles and the desired output for the same. Could someone help me out here please 39. Jionox October 20, 2017 Thx for this nice tutorial I8217ve one question: Is it a problem that the sensing axis of the accelgyro are not aligned with direction I want to measure If it is, is het possible to correct this misposition at the start 8230 A Guide To using IMU (Accelerometer and Gyroscope Devices) in Embedded Applications 8230 41. Sam October 29, 2017 this guide is Amazing Starlino8230 I have an aeromodelism airplane and I decided first to put on it a gyro sensor. With LabVIEW I made an integration to get angular position from my gyro but I found there was a error that increased with time. Then I put on it an Accelerometer. It was working good on tests but When I turned on the gas motor, the gyro got crazy. Now I understand why all this happened. D. At this time I8217m trying to implement your algorithm and I got the Principles of GNSS Navigation book. I found all this topics so much interesting 42. arduino November 9, 2017 hello I have a question to ask 8230 This implementation allows to estimate the inclination only when the device is stationary or while in motion 43. starlino November 10, 2017 If the device is subject to external acceleration. the reading of accelerometer is less reliable (with any algorithm), this is where gyro comes in. External acceleration is detected by the fact that the modulus of acceleration vector differs from 1g 8211 this fact can be used to increase wGyro (the weight of the gyro reading) in the fusion equation. Another approach used here : code. googleppicquadcontrollersourcebrowsetrunkimu. h is to replace wGyro with accWeight , accWeight ACCWEIGHTMAX 8211 maptorange(accErr, 0. ACCERRMAX. 0. ACCWEIGHTMAX ) accWeight decreases if accErr is too big, this give more importance to the gyro during that time. 44. arduino November 10, 2017 Axz and Ayz are pitch and roll angle 63. ineedkalman November 29, 2017 ive finally bought 2 new gyros to replace the 2 i destroyed. im sorry for asking once again. regarding this phrase: 8220perform again the above test, rotating the device around the Y axis, this time monitor the X output of accelerometer (AdcRx in our model). If AdcRx grows (the first 90 degrees of rotation from horizontal position), then AdcGyroXZ should decrease. This is due to the fact that we are monitoring the gravitation vector and when device rotates in one direction the vector will rotate in oposite direction (relative to the device coordonate system, which we are using)8221 can you explain it in simpler terms because i have this problem, ive mounted the 5 dof imu in such a way that the positive xaxis is along the horizontal to the right. i then mounted a gyroscope perpendicular to that 5 dpf imu and pointing towards me. i got the rotation correct, which is CW. but then when i perform the above test, i notice that when adcRx diminishes, so does adcgyroxz. according to your wonderful guide i should make adcgyroxz. though i still dont get why. 64. starlino November 29, 2017 ineedkalman: you just need to take InvertAxz -1, because adcRx diminished and so does adcGyroXZ. Why this is like so is just a matter of how coordinate systems of various devices are chosen. The accgyro device that I use as an example has both sensors from ST sow they are perfectly aligned. so InvertAxz 1. InvertAyz 1 and both use right-hand coordinate system. This makes all calculations much easier. Other boards might mix sensors from different manufactures so you need to figure out how to align them, by performing the above tests. 65. ineedkalman December 1, 2017 ive finally implemented the code on my zilog microcon. the problem is, while im not moving the board, i get a roll reading of about 15 degrees. this is definitely not normal right any suggestions guys 66. ineedkalman December 1, 2017 also i noticed that if i move the board up and down, the estimation for roll varies greatly. 68. ineedkalman December 2, 2017 ill check sirs. i got a quick question though, i dont know how stupid this will sound. during the very first estimation it uses accel values right suppose you start from a stationary position and get accel values which are very near 0, say RxAcc .001 and RzAcc .003. if we were to take the atan2 of RxAcc and RzAcc, it would yield about .321 radians or 18 degrees. wont this be wrong and since all next estimates will rely on this first Rest x and z values, wont the error accumulate thanks for helping 69. luz December 2, 2017 at 0 g, should the roll, tilt and yaw all read approximately 45 degrees i based my guess from the the following data: 10 bit ADC 8211 1023 max Vref 2.0 volts Vzerog 1.537 volts (786 in raw adc output) sensitivity .02 volts g suppose i get an adc reading of 785. this will give me a g level of around .097 or approximately equal to .1. if i get this in all 3 axes and take readings of roll, pitch yaw using the following formulae: roll atan2 (accely. accelz) pitch atan2 (accelx, accelz) yaw atan2 (accely, accelx) what i then get is approximately 45 degrees right i would appreciate any input. thank you 70. Dion December 2, 2017 I see you express rotations on XZ and YZ plane as you only consider a two-axis gyroscope could also be named as pitch and roll respectively (or vice versa). How would you approach your end calculations if you had a three-axis gyroscope (or a combined single-axis with two-axis) 71. Lebenj December 14, 2017 very very interesting guide. i8217m looking the way to make a arduino slip logger for RC glider to know if i usually make 8220goods8221 or 8220bads8221 turns. the next step is to use the same device to control automaticly the rudder8230 i think i only need X and Z accelerometer, but i8217m not sure. what do you think about that 72. hmnrobots January 8, 2017 Hi At least a very good tutorial, congratulations As a hobbyist I8217m working on a robot lawn It8217s now working quite well but it8217s navigation is still random to improve i8217s navigation capability, first, I was thinking of a USIR mutiples bases and triangulation. GPS alone is not enough precise. would you think an IMU would be able to compute a precise position (less than 5cm error) 73. RRama January 14, 2017 Good Day, Have a query regarding accelerometer values. They don8217t seem to convey if it is accelerating or decelerating. Was wondering if that can be identified Thanks 74. Flamingo February 1, 2017 Hi Starlino Firstly thank you very much. I just used your code and I can see my RxEst, RyEst, RzEst reading in serial chart with graph as well. I8217m just implementing a stabilizer using 3axis accelerometer and 2 axis gyro and 3 servos to controlbalance. My question is, 1)Are the unit of these estimated readings in g 2)If yes, how can I use these values to send the PWM signal to the servos 3)Can you please point me, where I can find the information regarding to these servos PWM, as I know that I can send signal only every 20ms 8230 guide for using IMU devices 8211 Link Tags: accelerometers, gyroscopes Filed in Parts 1 views No Comments 8230 76. Mohammed Elbes February 15, 2017 Thank you for this very nice tutorial, its really very helpful. im using a Critical Velocity IMU Shield for Arduino, 6 DOF AccelGyro with ADXL335 3-axis accelerometer LY530ALH Yaw Rate Gyroscope LPR530AL Dual Axis PitchRoll Gyroscope can I use your algorithm to compute the distance or displacement that the device traveled in any direction (NorthSouthEastWest). if not, what do I need (besides your algorithm) to achieve my goal. Thanks for your time 77. starlino February 15, 2017 No this algorithm does not cover dead reckoning. You will need a GPS module for that and you can use your 6DOF for 8220fine tuning8221 the GPS signal. You will also need some knowledge of acceleration and velocity kinematics to implement this unless you find a resource that gives you a ready do use algorithm. For extra precision I would also recommend a digital compass (magnetometer). 78. Mohammed Elbes February 16, 2017 Thank you very much for your fast reply, I really appreciate it. What I8217m doing now is: 1- get the directoin of the gravity while the device is stationary ThetaX acos(RxR) ThetaY acos(RyR) ThetaZ acos(RzR) 2- remove the gravity component from the Rx, Ry, Rz and get the acceleration of the device without the G component using accXRxG 8211 Gcos(ThetaX) accYRyG 8211 Gcos(ThetaY) accZRzG 8211 Gcos(ThetaZ) where G is 9.8 3- find speed by integrating totalacceleration in the Frequency Domain using FFT 4- find distance by integrating the speed in the frequency domain again using FFT 5- now while in motion, update ThetaX, ThetaY and ThetaZ by integrating the angular velocity rates coming from the sensor to get NewThetaX ThetaXIntegrationofangularRateXinFFT NewThetaY ThetaYIntegrationofangularRateYinFFT NewThetaX ThetaZIntegrationofangularRateZinFFT 6- go back to Step 2 and loop this is the algorithm Im using to compute the displacement of an object with time. I8217m also using filtering to filter the noise in the sensors data and I8217m doing integration in the Frequency Domain since I read that its much accurate than integrating in the Time Domain. is this an efficient way to calculate the displacement of an object knowing its initial position 79. starlino February 16, 2017 In a nutshell here is my idea of a dead-reckoning algorithm: Accelerometer measures combined gravity Rg and device acceleration Ra: We8217re seeking to find acceleration Ra, we know Rag (as measured by accelerometer), but we don8217t know Rg or Ra. We can calculate Rg for example by using a magnetometer and using the fact that Rg (gravity vector) can be obtained by rotating Mn (magnetometer North vector) by 90 degrees about Y axis. Rg Tn Mn. where Tn is the DCM rotation matrix see en. wikipedia. orgwikiRotationmatrix. determined by calibration Ra Rag 8211 Rg Rag 8211 Tn Mn Now knowing acceleration Ra, and starting with values P(0) 0,0,0 position vector V(0) 0,0,0 speed vector we can calculate at each iteration: V(t) V(t-1) Ra(t) T P(t) P(t-1) V(t) T. where T is time interval between iterations Position P(t) will of course drift with time due to computation errors, that8217s why you need to employ GPS (for outdoors) or a beacon system(for indoors) in order to correct P(t) from time to time. An accelerometer placed on the ground when it8217s subject to gravity it will measure 1G, not -1G as you said in the article. An explanation of why this is so is given in lunar. orgdocsLUNARclipsv5v5n1Accelerometers. html Great article btw. 82. starlino February 27, 2017 Fabio, The sign of any measurements is really subject to the coordinate system chosen, and the position of the sensor relative to the ground. For instance if you flip the sensor you will get a reverse measurement as shown in the diagram for accgyro (gadgetgangster213. see Accelerometer Module diagram gadgetgangsterscriptsdisplayasset. phpid310 ). So I am really talking about a particular case and everyone should be careful to adjust the directions for their own setup if different from the one used in this article. Ops, yeah8230 didn8217t noticed that your accelerometer has the Z axis pointing down.. 84. Lisa February 28, 2017 Dear Starlino, thank you very much for this complete and clear article, it8217s really precious. I8217m going to use the method you described to indicate pitch and roll of a car. First of all I was wondering if I could derive the final esteem working on the angles rather than on the vector components, following these operations, (supposing that I8217m at step number N): 1)Read Racc vector components from accelerometer 2)Deduce PitchAcc and RollAcc from Racc components through atan function 3)Read Gyro8217s angular rates 4)Deduce PitchGyro PitchEstN-1 PitchAngularRateT and RollGyro RollEstN-1 RollAngularRateT 5)Estimate PitchEstN and RollEstN averaging (PitchAccwPitchGyro)(1w) and (RollAccwRollGyro)(1w) Do you think this proceeding would be correct As The final data I8217m interested in are the angles, I was thinking to follow this way to speed up the process, jumping the operations needed to obtain RGyro vector components from estimated Gyro angles. Second question: which is the acquisition time T you suggest, on your experience I8217m afraid that using a very short acquisition time I propagate the error that the accelerometer readings have when the car is on a curve. In this case the pitch I derive from Gyro reading (which would be the correct one) is 0, while the accelerometer reading is affected by the centrifugal force. If I give a weight w20 in average formula I expect that in 20 repetitions of the cycle I see all the unwanted reading from accelerometer on my indicato. In example, if I have an acquisition every 10 ms, after 200ms, If the curve has not been completed, I see the wrong value on the indicator, isn8217t it Thanks again very much, 85. starlino February 28, 2017 Lisa: 1) Since you will be using this for a car. yes I think you can treat Pitch and Roll angles separately if your angles are not going to exceed 45 degrees, without a big precision penalty. 2) The usual acquisition time in my applications is 10-20ms and coincides with the length of RC radio pulse, this is a good interval to update the servo ESC values so everything is built around this 50Hz timing, even the filters on the accgyro. 3) If your device is subject to external accelerations you can8217t trust your accelerometer, one way to deal with it to make the w(gyro) weight dynamic and increase it when you detect external acceleration, you know an external acceleration is present if the norm of your acceleration vector is far from 1G. 4) You can actually estimate the centrifugal and forward acceleration and extract it from the cumulative acceleration computed by accelerometer A(total) A(gravitation) A(centrifugal) A(forward): A(centrifugal) w x ( w x r(t) ) w x v(t). were w is the angular velocity vector (your gyro outputs this) and v(t) is the speed vector. if you adopt the device coordinate system then v(t) vx, 0. 0 . and A(forward) ax, 0,0 assuming your car moves along it8217s local X axis. Velocity v(t) and A(forward) can be calculated using some optical encoders attached to the wheels. This should give you a clean A(gravitation) A(total as measured by accelerometer) 8211 A(centrifugal) 8211 A(forward) and you can verify it by A(gravitation) 1 G. The clean A(gravitation) can be used as a better reference of inclination (Pitch Roll) relative to the ground plane. Another way to extract the acceleration that is not attributed to gravitation is to use a magnetometer. 86. Lisa March 1, 2017 Dear Starlino, thank you very much for your suggestions. I8217ll try the dynamic weight solution and I8217ll post my results. Have a nice day, Lisa 87. Sandro March 4, 2017 Hi Starlino, I really enjoy reading your post and it help me a lot with my IMU implementation, but i8217m getting kind of confused with the output i got from it (i8217m seeing it in arduino software serial monitor) I8217m using a 6DOF IMU (sparkfunproducts10010 ) and a Arduino. My goal is to measure pitch, roll and yaw of a instrument (to get a result something like this: youtubewatchvkvHPbDQ5WQw ). I8217m currently just trying to use your code, without any change, to get my outputs, but the values i got are really strange. When i have my sensor lying on a table, it gives me 1, 0, 0 (AccX, AccY and AccZ), but after a while its giving me something like 0.86, 0.50, 0. If i rotate it around y axis for like 45 degrees, it almost does not change the output, giving me something like 1.1, 0.05, -0.02. In sum, it doest not get it while giving me the output after doing the estimation with gyro info. About gyro, RwGiro0 is giving me always 1, and RwGiro1 always 0. Is this normal In another thing, can you explain me how can i get angles from this output I already saw different setups for this in different sites and so i8217m confused with which one i should use. Hope you can help me out. Only thing changed in code: void loop() getEstimatedInclination() Serial. println(interval) Serial. println(RwEst0) Serial. println(RwEst1) Serial. println(RwEst2) Serial. println(RwGyro0) Serial. println(RwGyro1) 88. Sandro March 4, 2017 I forgot to mention, i changed the sensibility of my acc (330) and giro (3330), because of datasheet data. Because this IMU present gyro X axis pointing Y axis of accelerometer and y axis for x accelerometer axis, I8217m using Y gyro output to give me X gyro info for code and X to give me Y info. Do you understand what i mean 89. Sandro March 4, 2017 Lol, forget my early posts. I figure it out why it was giving those inconstant result, it was my mistake. But about the yaw, pitch and roll How can i get those And btw, how can i change your arduino code so i can get the Rzgyro from my gyroscope as well, as i have 6DOFs Can you explain me that in simple terms If is not easy to change, can you send me an email with the changes you think necessary I hope you can help me out, i8217m struggling to solve this for days, but my trigonometry is really bad. My goal is to get all orientation of my device with this 6DOF IMU. 90. Jai March 8, 2017 First let me thank you for your nice tutorial, which is very helpfull to understand basis of sensors. However I have a remark : 8211 with the accelerometer, you can the inclination angle using the inertial vector force (which can be in practice composed with gravity and other external forces). 8211 with the gyroscope you can calculate the new angle, knowing the previous angle and computing the rate of change and multiply it by the calculation time. gt you could just apply coefficients before the two different terms (with their sum equal to 1), and perform a complementary filter (association of 8220low8221 and 8220high8221 pass filter). But how can you assume to estimate the inertial force vector (gravity external forces) with a gyroscope, or with angles measured. Your inertial vector is not necessary in the same direction that your device8230 91. Jai March 8, 2017 Just to precise (maybe i was not very clear in my explanation). the complementary filter I mentioned in my previous post, and directly apply to the angle without calculate Rgyro, is exactly the same method Lisa mentioned in the post 84 92. Jai March 8, 2017 Here is the formula. Axr a(Axr RateAxzT) (1-a)(RxAcc) Axr being the angle between your device and the ground plane if the X axis is in the gravitation direction (vertical) 93. Jai March 8, 2017 Sorry, replace RxAcc by AxrAcc 94. starlino March 8, 2017 Sandro. here is the reply to your message below: 8212821282128212821282128212821282128212821282128212- My doubt is related with an IMU 6 DOF. I bought sparkfun sensor kit and then a IMU 6 DOF trying to get a project for university to work. I want to get all orientation info from a instrument where i have attached the sensors. This way, i8217m trying to get yaw, pitch and roll. I found out your post and really enjoyed it, and with it i already solved the pitch and roll thing. I8217m getting pretty stable outputs from them, and i think they are what i need. My problem is with yaw. I already read a lot about it, and i don8217t really got a conclusing idea about it. Is even possible to get yaw only from a 6 DOF IMU( 3acc3gyro) Is it stable I already read that it gives a lot of drift, and in just a seconds it become completely wrong. What really happen DO i need a magnetometer or there is any other option If yes i can, how can i change your arduino code to get it working and being corrected by other readings If no i can8217t, is there any sensor in sparkfun starting kit (sparkfunproducts9383 ) that i can use to get it working I don8217t have more budget to use, so i have to get it with the ones i have, and is because of that i8217m really bad and sad. 8212821282128212821282128212821282128212821282128212- Here is my reply: 8212821282128212821282128212821282128212821282128212- A 6DOF will only give you inclination (roll pitch) not a stable yaw, you can calculate yaw but it only be based on gyros and it will drift with time, since there8217s no sensor to tell you where NorthEastWestSouth is. So yes you need a magnetometer. From the kit you mentioned HMC6352 is a digital compass that you could use. The problem of 3D orientation can be addressed with a DCM matrix. see: gentlenav. googlecodefilesDCMDraft2.pdf 8212821282128212821282128212821282128212821282128212- 95. Jai March 9, 2017 I have a question about the algorithm which calcul accWeight. Why don8217t you trust your accelerometer at 100 if accErr 0 I mean why did you set ACCWEIGHTMAX to 0.02 Thank you for your future answer 96. starlino March 9, 2017 Jai, this is a good questions ACCWEIGHTMAX can be in in fact higher when accErr 0. Why not trust 100. This error only accounts for external acceleration there will still be ADC errors or calibration error (wrong offset. wrong sensibility used). I would try it in specific application and see how it works. 97. Sandro March 9, 2017 Really thx for the help starlino, i will try to check that out. I was afraid 6DOF IMU would not be enough, and i8217m seeing that it8217s almost a waste to get a 6DOF instead of a 5DOF, as we don8217t win so that much with it. Thank you again for you help. 98. Jai March 9, 2017 Ok for your reply. My application is submitted to external accelerations, so I8217ll test it with ACCWEIGHTMAX 0.9 (not 1 because of calibration error I understood this). And what do you think about complementary filter that I8217m going to use. Angle a(Angle RateAxzT) (1-a)(arcsin(RxAccg)) a being the the high pass filter constant (apply to gyroscope to eliminate drift) and (1-a) the low pass filter constant (apply to accelerometer to eliminate noise and fast external accelerations). These constants can be set knowing the loop sampling time and the desired cutoff frequency. instead of estimate and fictious inertial force vector RwGyro based on the previous angle measured, to finally estimate another fictious inertial force vector RwEst based on a moving averaged of RwAcc and RwGyro I believe the only real inertial force vector you have is RwAcc, am I right Thanks to you to answer me and enable me to have a nice scientific discussion. 99. Jai March 10, 2017 And what is physically RwGyro 100. starlino March 10, 2017 Jai, RwGyro is a direction cosine vector. it is calculated based on previous estimate RwEst(n-1) and updated with current gyro readings (through conversions of RwEst to angles, updating angles with the movement detected by gyro and then back to direction cosines stored in RwGyro). One can look at the code in this article starlinoimukalmanarduino. html to better interpret Part 3 of this text. RwGyro is then weight-averaged with RwAcc to obtain the new estimate RwEst(n) . 101. Jai March 10, 2017 I looked a lot of time on the theory, and I have well understood it. The question I8217m asking to myself is why not simply use a weight-average on the angles calculated with the following formula. Angle a(Angle RateAxzT) (1-a)(arcsin(RxAccg)) There is also current gyroscope and accelerometer readings, and previous angle measured. I mean in other words why do you calculate angles, then calculate reverse calculation of RwGyro from Awz angles, to finally recalculate angle What do I miss with my formula (which is what Lisa explained in the post 84 of this forum) I just precise that I8217m just interested by angles. Thank you for your explainations. 102. Marwa March 14, 2017 Thanks for this excelent easy introduction about the Acc. then Gyro then the most creative part IMU82308230 I8217m a biggener in this area. So I apprciate if you anserwer my this next two question simply: 1. I work on a hand made compimation of 3 Gyro and 3 Acce. but it affected with another forces not just the gravitional. is this method the right way to correct the Acc data with gyro data 2. it8217s mentioned that 8221 gyro measures the rate of changes of the angles8221 then the following equation: RateAxz (Axz1 Axz0) (t1 t0). the lines after that you have got the result of the gyro after convert and gave it the unit degrees without applying the last equastion. could you make it clear for me thanks for your effort 103. Sandro March 18, 2017 Here i8217m again. Starlino, sorry to bother you again, but can you tell me how can i convert the Z gyro sensor data to yaw (and i know it will have major drift errors, but i just want to test a thing). Hope you can help me out. Thx again. 8230 b vi vit ny c bin dch t trang gc: starlinoimuguide. html v c php ca tc gi, cm n Starlino ( The entire article was translated 8230 119. Dario August 16, 2017 Hi, great guide I8217m trying to build a tricopter with a ITG3200 sensor from a Wii Motion Plus. I read in Multiwii webpage that it8217s not mandatory to use an accelerometer, because the measurement of angular velocity is sufficient to ensure good stability. So my question is, Can I use this guide admitting w10 Thank you in advance Have a nice day. 120. starlino August 16, 2017 I just tested a gyro-only quadcopter board. and I am not impressed. Without an accelerometer the quadcopter does not know where the vertical axis is (it just knows by how far it rotated). I would use an accelerometer and a magnetometer in a quadcopter for extra stability. 121. EM August 22, 2017 Hello, I8217m building an RC custom helicopter and trying to use the IMU with acceleration conditions but have some problems. I8217ve implemented a Kalman f ilter and after reading your article I8217ve implemented also the simple filter instead, trying to solve the problem. In order to test my IMU in acceleration conditions, I put the board in my car and record the filter results. The minute there is acceleration or the car breaks (deceleration) this impacts immediately my filter (again no matter if it was Kalman or simple filter). I use a condition of deciding if the accelerators vector is larger than 1.0 I don8217t update the filter with the measured accelerometer but still I get large numbers such as 15 degrees for accelerating or decelerating. Its enough that one value will update the filter and the result angle jumps to 15 degrees (as an example). This happens both in Kalman and in the simple filter. The use of gyro weight 8220wGyro8221 doesn8217t help because suppose the wGyro is 15 and I get good smoothing in static state, if the accelerometer measures 15 degrees because the car accelerate the wGyro will not help if the gyro angle is about 1 degree (the real angle of the road). Any ideas what can I do to solve the acceleration problem and update the filter only with true tilt angles Thanks, EM. 122. starlino August 22, 2017 EM, you should decrease the accelerometer weight when it8217s modulus is larger or smaller than 1g (not just larger as you mentioned). You should calibrate you gyro at startup (find zero-rate values). A good gyro should not drift and you should still get a good result during 1-5 seconds of acceleration. Use a magnetometer as well 8211 it is immune to acceleration. however it has other disturbances for example near power lines it might go crazy. The idea is to fuse all 3 devices (acc gyro and mag) and get an average. I am releasing a new 9DOF board in couple of weeks and a new calibration tutorial so stay tuned. 123. EM August 22, 2017 Starlino, Thanks for the reply. 1. When I detect the accelerometer vector to be larger than 1.0 OR smaller than 0.93 (taken from measurements) I stop updating the filter, just update it with the gyro measurements. 2. The gyros are accuratelly calibrated at startup and have a low drift. This is not the problem. They can keep the angle for about 1 minute and drift 1 degree. 3. I have a magnometer in my board but when the board is inside or on top of the car I cannot use it even after calibrating it for hard ironing due to the metal affect. 4. The problem remains 8211 even after all the above, if one accelerometer measurement passes the vector condition (gt1 or lt0.93), the estimated result will jump immediatlly to the value of the accelerometer (15 degrees for example) with no relation to the gyro accuracy. I039m looking for an acurate method or algorithm to know in 100 when to block updating the filter with wrong accelerometer data due to acceleration. The only solution I found by now to do this is to measure the accelerometer rate of change (i. e. (accel(n)-accel(n-1))(deltaTime). For the moment I don039t update the accel data to the filter if the accelRate is larger than 0.9 DegSec (I039m not confused with the gyro as I explained how I calculate this accelRate). This gives me good results even when the accel is jumping to over 30 deg in acceleration or major vibration. I039m not completely happy with the method as it seams too sensitive to tuning. Any other ideas Thanks, EM. 124. starlino August 22, 2017 EM 1.well the condition 1.0 must be changed to 1.07 so it is symetrical to lt0.93 (not sure if this is a typo ). because for example 1.01 is still a good accelerometer result. Instead of using a sharp accelerometer cut-off at 1.070.93 consider a linear decrease in weight for example use the formula weightAcc max(0. 1 - abs(A - 1) 0.7 ). this will give a weight of 1 when A1 and 0 when A 1.07. but it will give 0.5 weight when A1. 035 or A 0.965. You then pick a fixed weightGyro of about 20-40. 4. Calibration needs to be done where your device will be placed so if it8217s on the roof of your car it needs to be done there. Metal will affect the magnetometer offsets. (See pololufile0J434LSM303DLH-compass-app-note. pdf ) 125. balbot September 6, 2017 sir, how can i get the adc reading for a single axis gyro, if the reading is 117 for stable position, then different readings for different rate of turn. 126. landong September 7, 2017 I am considering using an IMU to determine the center of mass and intertia tensor of a non symmetrical object. Do you have any suggestions and the experimentation process and theory that could be involved with this sort of thing Do you have any resources you recommend I review 127. David September 11, 2017 Thanks for such an indeepth workings. Im trying to do a distance and position system for a rc-car, with the help of a 9dof. but are having a few issues with the calculations. Im looking at having the 9dof with wifi send out the raw and unprocessed data to a client app running on a pc which can do error checks and other filters (with a plugin framework). Im ok with the distance and speed, and have two external reference points for resets and error correction. 1. when the car crosses the startfinish line. 2. when the car is in pit lane and has placed onto the track. all of which have been measured, and can be used for reseting position. how does the mag of the 9dof, help me. is the mag more stable, and less prone to error. and can all the 3d8217s of a mag help me. and given that i know that the car MOST of the time travels forward, and has a max accel G, and a max - G can i take advantage of these in a filter. and the fact that a lap time is normally 40-50 seconds, would i be making things more complex then i need too8230would sort of accuracy would i be expecting Also have you heard anyone use AI for course predictions on a closed course like a race course. Also if things drift to much, and can add a third reference point, but would i need too. 128. Omnimusha October 29, 2017 Hi, I8217m using the wii nunchuk and arduino. I connected and all good. but, as I can convert the data information in angles and 8220G8221 8230 article is a continuation of my IMU Guide, covering additional orientation kinematics topics. I will go through some theory first and then I 8230 130. James December 7, 2017 About accelerometers, to compute the angle of the accelation vector on a little MCU, I use this formula with 2D sensors: (Rx-Ry)(RxRy-Aref) where Aref the sum of measures at 0G. This value is a good approximation of the direction of the acceleration vector. 144. starlino February 3, 2017 Philippe: yes I saw this formula I think in Nuts038Volts magazine among other places, could someone explain why it works. It obviously has no noise compensation but is an ok choice when code size is important. 145. Kostr February 3, 2017 Hi, thanks for the article It8217s really helpful. But i have some problems8230 My device need to calculate velocity and traveled path of the car. As you said in comment 79 :8221Accelerometer measures combined gravity Rg and device acceleration Ra: Rag Rg Ra8221. Then you calculated Ra using magnitometer data. So i have 2 questions: 1) If we use magnitometeraccelerometer, gyro isn8217t needed Can gyro improve results 2) Can we calculate Ra from Rag using only gyroaccelerometer, without magnitometer. 146. starlino February 3, 2017 Kostr: 1) Yes gyro will improve results because it8217s more precise on short periods of time. 2) You can only calculate Ra from Rag when external accelerations are occasional and short. otherwise you would loose your main reference and gyro drifts with time, so you would need a magnetometer if external acceleration noise is constant and random. 147. huaan February 5, 2017 Hi, i8217m a student, i have read your 8220A Guide To using IMU (Accelerometer and Gyroscope Devices) in Embedded Applications8221, but i cannot find the c code. How can i get the corresponding c code Is that i need to by your IMU PCB thank. 148. dan February 5, 2017 Hi thanks for the article. I am currently doing an assignment where I have to track the path taken by the user (holding the mobile device). The path is to be displayed on a 2D image. Is there any simple formula which I can apply to do this Please note that my mobile device contains only an accelerometer and that the location from where the tracking starts is predefined. Dzięki za pomoc. 8230 dalam keadaan seimbang data AccX tidak menghasilkan nilai 1. Jawaban: Berdasarkan referensi ini, dataacc yg qt dapat dari source code diatas menghasilkan data mentah komponen percepatan tiap 8230 150. Saman Shafigh February 20, 2017 Thank you for your helpful post. I have a question and my question is: how Gyroscope measures the rotation around each axes. Does it measure each axes based on acceleration on that axes Does acceleration have any relation with gyroscope rate Best regards Saman 151. Saman Shafigh February 22, 2017 I want to explain my question. I know how you convert AdcGyroXZ to the RateAxz, But I want to know how gyroscope measure the AdcGyroXZ 152. fahdovski February 22, 2017 I don8217t understand why we need to calculate the R (direction) vector. I can only use the gyroscope data (Angle speed ) and the acc data (angle) directly to calculate the angle of the quad with the zero plane and send it to the PID alogrithm 153. Arvind Sanjeev February 23, 2017 Hello Lauszus, I am currently working on a quadrotor, for this im using a 6DOF digital imu(i2c), so i used your code for the kalman filter for it and modified the sensitivity to 14.375 and 256. i am getting the values in the kalman from -90 to 0 to 90, however the time taken by the kalman filter to reach the final angle is very high, if i tilt the quad in one direction. while tilting it the values are like in the 100 to 200 range but when i rest the quad and after about 2 seconds the correct kalman angle is obtained. As this response is very slow for the quadrotor, how should i modify your code 154. starlino February 23, 2017 Arvind let us see your source code. 155. salvatore February 23, 2017 like many others here I found your IMU guide a great help, although a better math syntax could have made things easier :-) Anyway, after looking at both your guide and code I tried to write my own implementation in C for my quadcopter project, but I have a few problems and I8217ve not idea how to debug it Following is an image of the data acquired from the accelerometer (Racc in your guide, ax, ay, az in the image) along with the estimated data (Rest in your guide, gx, gy, gz in the image). postimage. orgimageq1kcahoq5 I noticed that when I rotate quickly the imu, the expected curve gets far away from the measured one (not particularly in the picture above though). Any advice about how to debug this Another problem is that I get discontinuity data when values (pitch, roll) are near 180 degree. Values keep jumping from around 180 to around -180. Is there a way to fix the discontinuity Following is the code in C, in case you want to have a look (or someone else wants to use it) pastebinbCcs5RBf Thanks in advance for any pointers. Regards, Salvatore 156. Arvind Sanjeev February 28, 2017 void loop() timer millis() int acc3 int gyro4 getAccelerometerData(acc) getGyroscopeData(gyro) if(timerlt3000) gservo2.write(10) gservo4.write(10) Serial. println(timer) else gyroXadc gyro0 gyroXrate (gyroXadc-gyroZeroX)14.375(gyroXadc-gryoZeroX)Sensitivity 8211 in quids Sensitivity 0.003333.310231.0323 gyroXanglegyroXanglegyroXratedtime1000Without any filter accXadc acc0 accXval (accXadc-accZeroX)256(accXadc-accZeroX)Sensitivity 8211 in quids Sensitivity 0.333.31023102,3 accYadc acc1 accYval (accYadc-accZeroY)256(accXadc-accZeroX)Sensitivity 8211 in quids Sensitivity 0.333.31023102,3 accZadc acc2 accZval (accZadc-accZeroZ)256(accXadc-accZeroX)Sensitivity 8211 in quids Sensitivity 0.333.31023102,3 accZval1g in horizontal position R sqrt(pow(accXval,2)pow(accYval,2)pow(accZval,2))the force vector accXangle acos(accXvalR)RADTODEG-90 accYangle acos(accYvalR)RADTODEG-90 accZangle acos(accZvalR)RADTODEG xAngle kalm anCalculateX(accXangle, gyroXrate, dtime) myPID. SetSampleTime(1) InputxAngle Setpoint0 myPID. SetTunings(consKp, consKi, consKd) myPID. SetOutputLimits(-400,400) myPIDpute() if(Output0Output0) val1map(Output,0,400,63,100) gservo4.write(val) gservo2.write(val1) gservo4.write(val) yAngle kalmanCalculateY(accYangle, gyroYrate, dtime) Serial. print(xAngle,0)Serial. print(8220t8221) Serial. print(val)Serial. print(8220t8221) Serial. print(val1)Serial. print(8220t8221) Serial. println(82208221) This is my source code, I found that modifying Rangle of kalmancalculate fn to a small value made it faster. however it is very unstable. float QangleX 0.0001 float QgyroX 0.004 float RangleX 0.00000008 157. Arvind Sanjeev February 28, 2017 how can I increase the speed of your kalman filter code8230please help 199. Akshat Deshpande (Akcopter) January 30, 2017 Hi Starlino, I found this post to be really awesome and informative please keep up this great work, so I would like you to correct my logic If I am wrong here8230.. we trust the accelerometer initially and consider its co-ordinates to be the one8217s corresponding to the gravity vector8230then to filter out small linear accelerations and vibration noise we introduce the gyroscope data and use it to update the precise position of the gravity vector using the complimentary filter8230.so practically this should work for applications like a self balancing robot or to calculate the inclination of any platform with respect to the horizontal frame of reference i. e the earth 8230 hence we can calculate the roll and pitch angles in case of a flying platform 8230. but to provide yaw stability we still use the averaged gyro data along the z-axis to stabilize the yaw which is prone to gyro drift over time and temperature changes8230so there is no reference for yaw like there is the gravity vector in case of pitch and roll8230.so we introduce the 3-axis magnetometer data8230.which keeps pointing to the resultant of external magnetic flux intensities8230the earth8217s magnetic field being a perpetual magnetic field. in absence of any external magnetic fields the magnetometer will keep pointing to the earth8217s magnetic north8230.so after some simple math we can make it point to the geographical north8230.now we can update the position of the earth8217s magnetic field vector8230using the gyro data in a similar way like the accelerometer data was being updated using the gyro data 8230in the earlier case the accelerometer suffered from noise and susceptibility to linear accelerations 8230similarly here the magnetometer suffers from noise and susceptibility to varying external magnetic fields like in case of a quad-rotor the motor magnets or the varying flux produced due to the change of the current flowing through the wires of the quad due to throttle variations8230.so if we use the above stated simple algorithm we can filter out the data of a magnetometer using the gyroscope and hence establish the direction of the magnetic field vector which will perpetually give us the direction of the earth8217s geographical north and south poles82308230.so in the end we have two vectors mutually perpendicular to each other8230.now can find the east-west vector by taking the cross product of the gravity vector and the magnetic field vector8230.hence we obtain a perfect 3 dimensional8230global frame of reference which can be fed into the DCM to be a complete estimation of attitude82308230.. So Am I right and can this be done 82308230. And congratulations on this great job8230please keep posting more stuff823082308230 Akshat 200. Miika February 25, 2017 Hi, Post number 200, yippee My question: Is it possible to simultaneously measure roll and pitch angles of an IMU device using only accelerometer I know how to measure them separately (well that8217s quite trivial), other being zero, but is it possible that both angles are non-zeroes and still obtain correct values for them The order of the rotations would obviously matter. I think it is generally impossible because the yaw angle (angle about z axis) is impossible to assess from accelerometer only and hence, given an arbitrary orientation of the device, it is impossible to reach that orientation in, say, xy-order WITHOUT rotating about z-axis. But if I8217m wrong please tell me how to do it Also, I8217ve combined gyroscope readings with accelerometer but I still find it impossible to compute arbitrary rollpitch combination angles. On the other hand, with gyroscope only I am able to correctly compute the 8216real8217 3d-orientation but combining it with accelerometer hasn8217t been succesful (I implemented the algorithm of this page but I can only get roll or pitch angles correctly, not both at the same time). My idea here was to use accelerometer and gyroscope for pitch and roll, and gyroscope only for yaw, but I don8217t know how 201. starlino February 25, 2017 Miika, your questions are too fundamental to explain in a simple post. In short the Roll-Pitch-Yaw representation of orientation is not always unique, it also depends in which order you apply these rotations. Best way to represent orientation in my opinion is DCM matrix (see related article on this site). The DCM matrix is unique for each rotation and if you absolutely need to extract a Pitch or Roll angle from it you can do so 8211 there are many formulas in the book I recommended many times: Read the first chapters of the book and the DCM Tutorial and you should have a clearer view of various ways to express orientation. Sorry there wasn8217t an easy answer for this. P. S. If you use just accelerometer for orientation you must ensure there are no external accelerations since they will add up to the accelerometer readings. 202. Sami February 26, 2017 Thanks a lot for this instructive article. I would like to know what do the angles Axr, Ayr and Azr as well as Axz, Ayz und Axy represent For example If we have a quadrotor with the same orientation as the coordinate system of this article and R is the force vector that the accelerometer have measured, which angles the Roll, Nick and Gier angle of the Quadrotor Axz, Ayz und Axy or Axr, Ayr and Azr 203. Miika February 26, 2017 Thanks for the rapid reply. I have actually been using DCM matrices (or rotation matrices) for rotations. When I use only gyroscope for computing the rotation, I update my rotation matrix after each observation which always gives me the correct rotation (or almost correct, taking that the sampling frequency is high). But my main concern is how to build the DCM matrix from the accelerometer data. The only thing I8217ve come up with is that I compute the roll and pitch, using the formulas for using them in, e. g. xy-order (see freescalefilessensorsdocappnoteAN3461.pdf ), and build the rotation matrix as explained in, for instance, Wikipedia. But that works only when I rotate the object in a corresponding order, i. e. about x axis first, then about y axis. So I guess it8217s impossible to obtain the correct DCM matrix from accelerometer data only. My next idea was to combine the accelerometer data with gyroscope so that accelerometer and gyroscope would be used for computing pitch and roll, and gyroscope only for yaw. In order to do so, I should combine the angles like the way described in this nice article. But, as I wrote, it again works only when I rotate the object in the specific order. Or am I wrong here Can the algorithm of this article be used for computing an arbitrary orientation Now I8217m trying to include a magnetometer (I have a 9-DoF device) but I find the external perturbations in my room overriding the earth8217s magnetic field which causes more problems. If anyone has more hints I would be glad to hear about them 204. starlino February 26, 2017 Mika, that8217s right the accelerometer will only give you one vector in the DCM matrix 8211 the Z axis. However you can hookup a magnetometer to get another axis (X) as well. 205. Larry Wendell March 4, 2017 I am trying to follow your last bit of equations and got cannot figure out how you derived the following: Let8217s divide numerator and denominator of fraction by SQRT(x2 z2) x ( x SQRT(x2 z2) ) SQRT( (x2 y2 z2) (x2 z2) ) Note that x SQRT(x2 z2) sin(Axz), so: x sin(Axz) SQRT (1 y2 (x2 z2) ) Specifically, how can 8220SQRT( (x2 y2 z2)8221 be substituted by 82201 y28221 in the above equation And in this next section: Now multiply numerator and denominator of fraction inside SQRT by z2 x sin(Axz) SQRT (1 y2 z 2 (z2 (x2 z2)) ) How can the quantity 82201 y28221 multiplied by 8220Z28221 equal the quantity 82201 y2 z 28221 206. Larry Wendell March 4, 2017 Sorry, I read what I wrote, and it8217s a bit confusing. I ment to ask: How can the quantity 8220x2 y2 z28221 within the expression SQRT( (x2 y2 z2) be substituted by the quantity 1 y2. 207. MattD March 8, 2017 For the moment ignore the numerator in the overall equation an d the sqrt and just look at the part (x2 y2 z2) (x2 z2) This can be broken out into ((x2 z2) (x2 z2)) (y2 (x2 z2)) reducing to 1 (y2 (x2 z2)) The 822018221 is not actually a part of the numerator in 1 y2 z 2 (z2 (x2 z2)) 208. Cherry March 26, 2017 Thank you so much for your explaination Love ya 209. Josef Grech March 27, 2017 Hi, really good tutorial. Helped me a lot in understanding the operation of both accelerometers and gyroscopes. I am doing my thesis and I am using acc. and gyros and I was wondering if it is possible for me to use some of the illustrations in this tutorial to be able to describe the functionality of the devices. Thanks 210. starlino March 27, 2017 Joseph 8211 it8217s fine to use images, just mention the source url under each image. Good luck with the thesis 211. HliX April 11, 2017 Hi, i have a question related to use acc to calculate angles. Usually, an acc is used to measure an acceleration. i8217m agree, we can use it to calculate an angle, when the sensor, spin around a point. But, when the sensor undergo an acceleration caused by a movement, doesn8217t he return values from the movement and his tilt. So it will distort the calculation of the angles, isn8217t it PS: i8217m sorry if my English is not easily understandable, i8217m french. 212. Pablopaolus April 16, 2017 First of all, thank you for your wonderful article. I8217d appreciate a lot if you would help me with a doubt. I am trying to carry on a project with ADXL345 accelerometer and ITG3200 gyro, and PIC18F46J50 instead of Arduino. Since ITG3200 is a 3-axis gyro and PIC doesnt have a library millis function, is there any way to combine data from accel and gyro without using timing, following your scheme Thank you very much. 213. starlino April 16, 2017 Paolus, although pic does not have a built-in function for computing timing in the background, you could use a timer interrupt to increment a value on timer overflow. Refer to your pic datasheet. (See timer1. timer2, etc). Depending on system clock you will be able to keep track of time in the background in some fixed length units that can be converted to milliseconds. As an example see code. googleppicquadcontrollersourcebrowsetrunkled. h. I compute my interval in 250us. 214. Momen April 18, 2017 I went through your tutorial and its great. I am using ADXL345 amp ITG3200.I know it is foolish thing to ask but I am having problem is with tha value of sensitivity(mVg).Please can you please tell me how to calculate the sensitivity value. 215. starlino April 19, 2017 Momen 8211 the sensitivity can be obtained from the datasheet of the device. 216. Momen April 21, 2017 Thank you for your reply. I went through the datasheet but sensitivity is in lsbg or mglsb. I do no find accelerometer (ADXL345) any where sensitivity in mvg for -2g,-4g,-8g,-16g, Can you please tell me hot to get sensitivity in mvg. 217. klayton April 23, 2017 Hi Starlino, this is one of the easiest ones to follow when it comes to implementing something like an AHRS. I039ve followed everything to the dot and I am now successfully able to read pitch and roll angles from the accelerometer-corrected gyro data. Everybody has been mentioning that you simply can039t get anything useful about the yaw out of a gyro alone, hence, the need for a magnetometer. Thankfully I have one on hand, the problem is I039ve been struggling with how to have the magnetometer reading correct the gyro data to give me a useful estimate of my yaw. I039ve been looking at a number of code but most of them make use of DCM, and I really want to take things one at a time and just get the yaw by building from what you have explained. 218. klayton April 23, 2017 I actually just got it. The link I found is this: loveelectronics. co. ukTutorials13tilt-compensated-compass-arduino-tutorial If i039m not mistaken, the tilt corrected bearing that this document is describing is already the yaw, is that right If so, instead of using accelerometer data as described in the linked webpage, we simply use the roll and pitch output from our simplified kalman filter. I don039t know if what I039m saying is accurate so please let me know. What039s funny though is that they are specifically pointing out that this method, which I039m sure is correct, will only work with a maximum tilt (either roll or pitch) of 40 degrees, I039d love to have something better. 219. klayton April 23, 2017 Hi again. Man this is the third time I posted something today, I039m a real klutz for not posting them all the same time, sorry. It turns out using a gyroacc instead of just the accelerometer allows for tilt compensation of the heading up to 360 degrees. Now that039s neat. 220. Pablopaolus May 13, 2017 I039m making progress with my IMU thanks to your guide. I039m able to read accel and gyro measures, but I don039t know the reason why I get so many glitches in RyAcc. In this image you can see it: In the image the devide is placed in horizontal position, so both X and Y outputs from accelereometer are zero. Any idea Thank you very much. 221. Pablopaolus May 13, 2017 Sorry, I039ve tried to embed the image in my previous comment, but it doesn039t seem to have worked. Here is the link: 222. starlino May 13, 2017 Pablopaolus 8211 from the image alone it is not clear what is causing it. If you can post code and also the setup of your project (what sensors mcu are you using) that will help. 223. Pablopaolus May 14, 2017 Ok, thank you for the interest I039m using PIC18F46J50 as MCU along with Sparkfun IMU 8211 6DOF ITG3200ADXL345. Here is my code: include lt18F46J50.hgt fuses HSPLL, NOWDT, PLL4, NOXINST, NOCPUDIV, NOFCMEN, NOIESO, NOIOL1WAY, STVREN use delay(clock48000000) use I2C(MASTER, SDAPIND1, SCLPIND0) include quot. includeusbcdc. hquot include quotmylib. hquot include quotadxl345.hquot Accel include quotitg3200.hquot Gyro include ltmath. hgt define GREENLED PINA1 define REDLED PINA2 define ON outputhigh define OFF outputlow float RwAcc3 Projection of normalized gravitation force vector on xyz axis, as measured by accelerometer float rates3 Gyro angular rates setuposcillator(OSCPLLON) delayms(1000) TRISD0x03 RD0 (SCL2) and RD1 (SDA2) inputs ON(GREENLED) usbcdcinit() usbinit() ON(REDLED) usbwaitforenumeration() delayms(100) OFF(REDLED) OFF(GREENLED) delayms(100) Accel init adxl345init() Gyro init itg3200initsetup() itg3200init() usbtask() you must call 039task039, before testing 039enumerated039. if(usbenumerated()) ON(GREENLED) else OFF(GREENLED) ACCEL readings RwAcc0adxl345getacceldata(adxl345getdatax()) RwAcc1adxl345getacceldata(adxl345getdatay()) RwAcc2adxl345getacceldata(adxl345getdataz()) Gyro readings rates0itg3200getangularrate(itg3200getratex()) rates1itg3200getangularrate(itg3200getratey()) rates2itg3200getangularrate(itg3200getratez()) Print sensor readings printf(usbcdcputc, quotXa1.2f Ya1.2f Za1.2f Xg1.2f Yg1.2f Zg1.2frnquot, RwAcc0,RwAcc1,RwAcc2,rates0,rates1,rates2) define ACCELADDRWRITE 0xA6 define ACCELADDRREAD 0xA7 define accelmeasuremode 0x08 READWRITE REGISTERS define THRESHTAP 0x1D Threshold tap define OFSX 0x1E X-axis offset define OFSY 0x1F Y-axis offset define OFSZ 0x20 Z-axis offset define DUR 0x21 Tap duration define LATENT 0x22 Tap latency define WINDOW 0x23 Tap window define THRESHACT 0x24 Activity threshold define THRESHINACT 0x25 Inactivity threshold define TIMEINACT 0x26 Inactivity time define ACTINACTCTL 0x27 Axis enable control for activity and in activity detection define THRESHFF 0x28 Free-fall threshold define TIMEFF 0x29 Free-fall time define TAPAXES 0x2A Axis control for single tapdouble tap define BWRATE 0x2C Data rate and power mode control define POWERCTL 0x2D Power-saving features control define INTENABLE 0x2E Interrupt enable control define INTMAP 0x2F Interrupt mapping control define DATAFORMAT 0x31 Data format control. Por defecto: -2g: sensibilidad 256 define FIFOCTL 0x38 FIFO control READ-ONLY REGISTERS define DEVID 0x00 Device ID define ACTTAPSTATUS 0x2B Source of single tapdouble tap define INTSOURCE 0x30 Source of interrupts define ACCELDATAX0 0x32 X-Axis Data 0 define ACCELDATAX1 0x33 X-Axis Data 1 define ACCELDATAY0 0x34 Y-Axis Data 0 define ACCELDATAY1 0x35 Y-Axis Data 1 define ACCELDATAZ0 0x36 Z-Axis Data 0 define ACCELDATAZ1 0x37 Z-Axis Data 1 define FIFOSTATUS 0x39 FIFO status Sensitivity at XOUT, YOUT, ZOUT. plusmn2 g, 10-bit resolution define ACCELSENSITIVITY 256.0f LSB per g single register write void adxl345writereg(int8 ADDR, int8 VAL) i2cstart() i2cwrite(ACCELADDRWRITE) i2cwrite(ADDR) i2cwrite(VAL) i2cstop() single register read int8 adxl345readreg(int8 ADDR) int8 val i2cstart() i2cwrite(ACCELADDRWRITE) i2cwrite(ADDR) i2cstart() i2cwrite(ACCELADDRREAD) vali2cread(0) NACK to end transmission i2cstop() return val void adxl345init() i2cstart() i2cwrite(ACCELADDRWRITE) i2cwrite(POWERCTL) i2cwrite(ACCELMEASUREMODE) i2cstop() signed int16 adxl345getdatax() DATAX0 is LSByte and DATAX1 is MSByte signed int16 xdata xdata(adxl345readreg(ACCELDATAX1)ltlt8) xdataadxl345readreg(ACCELDATAX0) return xdata signed int16 adxl345getdatay() signed int16 ydata ydata(adxl345readreg(ACCELDATAY1)ltlt8) ydataadxl345readreg(ACCELDATAY0) return ydata signed int16 adxl345getdataz() signed int16 zdata zdata(adxl345readreg(ACCELDATAZ1)ltlt8) zdataadxl345readreg(ACCELDATAZ0) return zdata float adxl345getacce ldata(signed int16 VAL) float tmpf tmpf VALACCELSENSITIVITY convert raw value to g return tmpf And itg3200.h is the driver version writen by simonspt in this thread: Thank you very much. 237. bow October 10, 2017 Please note that the accelerometer will actually detect a force that is directed in the opposite direction from the acceleration vector In this case the box isn039t moving but we still get a reading of -1g on the Z axis that039s two sentence mentioned in your article, but I also notice that in the datasheet of LIS3DH (accelerometer of ST), it said like this: Zero-g level offset(TyOff) describes the deviation of an actual output signal from the ideal output signal if no acceleration is present. A sensor in a steady state on a horizontal surface measure 0g in X axis and 0g in Y axis whereas the Z axis measure 1g so I think the right value of Z axis when keep stationary is 1g but not -1g, do you think so otherwise, the output data from collection in my experience also prove that. 0.016000 -0.024000 1.056000 0.020000 -0.024000 1.044000 -0.004000 -0.032000 1.044000 0.020000 -0.028000 1.036000 0.016000 -0.028000 1.036000 0.020000 -0.024000 1.032000 0.020000 -0.024000 1.032000 -0.004000 -0.032000 1.052000 -0.004000 -0.032000 1.052000 238. starlino October 10, 2017 bow: you have a point. some accelerometers will have the axis sign reverse, so always check the datasheet for the right direction, or even better, run a test as you did. 239. Henn sun November 14, 2017 quotYEs. Axz, Ayz can be pitch and roll angles if you choose your reference coordinate system this way. quot I am not actually understand it. Axz and Ayz are the Euler angle. if I want to control quadcopter. how to use the Rest. I would be very grateful for you reply. 240. Leonardo Garberoglio December 12, 2017 I ready a lot of time this article and allways learn somthing8230. Well i have an implementation on my LPCXpresso 1769 board to test pitch and roll with accelerometer (ADXL345). But i have a problem. When i pitch the imu for about 90deg I start to mesure roll too. This is my code: x1(( float )accelX 8211 biasAccelX) 0.0037 y1(( float )accelY 8211 biasAccelY) 0.0038 z1(( float )accelZ 8211 biasAccelZ) 0.0038 Calculate the pitch in degrees as measured by the accelerometers. pitchAccel atan2 (y1, z1) 360.0 (2PI) rollAccel atan2 (x1, z1) 360.0 (2PI) and this is part of uart2 data: Aceleroacutemetro ADXL345 elgarbe Obteniendo Offset039s Off X Off X Off Y -15.000 28.000 1376.000 g039s X g039s Y g039s Z pitch roll 0.000 0.000 1.000 0.000 0.000 0.000 0.004 1.000 0.223 0.000 0.000 0.000 1.000 0.000 0.000 0.000 0.004 1.000 0.224 0.000 -0.004 -0.004 1.000 -0.223 -0.217 0.000 0.000 1.000 0.000 0.000 0.000 0.004 1.000 0.222 0.000 0.000 0.000 1.000 0.000 0.000 -0.034 -0.008 0.999 -0.451 -1.976 -0.011 0.008 1.000 0.444 -0.649 -0.007 0.031 0.999 1.762 -0.429 0.004 0.035 0.999 2.006 0.217 -0.008 0.058 0.998 3.315 -0.431 -0.011 0.101 0.995 5.799 -0.654 -0.004 0.152 0.988 8.729 -0.220 -0.004 0.231 0.973 13.330 -0.224 -0.011 0.286 0.958 16.592 -0.683 -0.011 0.343 0.939 20.059 -0.694 -0.011 0.390 0.921 22.964 -0.709 -0.011 0.425 0.905 25.165 -0.721 -0.011 0.472 0.882 28.151 -0.734 -0.015 0.517 0.856 31.115 -1.005 -0.011 0.568 0.823 34.611 -0.786 -0.011 0.599 0.801 3 6.783 -0.797 -0.019 0.637 0.771 39.552 -1.387 -0.026 0.678 0.735 42.672 -2.033 -0.026 0.699 0.714 44.387 -2.065 -0.019 0.737 0.676 47.476 -1.576 -0.018 0.761 0.648 49.586 -1.621 -0.026 0.798 0.602 52.958 -2.439 -0.025 0.822 0.569 55.305 -2.551 -0.029 0.857 0.514 59.036 -3.231 -0.029 0.888 0.459 62.676 -3.595 -0.025 0.903 0.429 64.564 -3.334 -0.036 0.922 0.384 67.380 -5.298 -0.028 0.939 0.342 69.981 -4.737 -0.028 0.952 0.305 72.224 -5.298 -0.028 0.962 0.272 74.198 -5.929 -0.032 0.968 0.249 75.562 -7.238 -0.032 0.975 0.219 77.315 -8.175 -0.035 0.985 0.172 80.099 -11.467 -0.028 0.990 0.140 81.957 -11.295 -0.031 0.992 0.118 83.206 -14.872 -0.024 0.996 0.082 85.304 -16.507 -0.028 0.997 0.078 85.507 -19.497 -0.031 0.998 0.060 86.538 -27.270 -0.028 0.999 0.043 87.546 -32.989 -0.031 0.999 0.025 88.578 -51.382 -0.031 0.999 0.021 88.781 -55.601 -0.031 1.000 -0.004 90.203 -96.510 -0.031 0.999 -0.011 90.605 -108.898 -0.034 0.999 -0.028 91.614 -129.407 -0.028 0.999 -0.028 91.619 -135.764 -0.031 0.9 99 -0.035 92.024 -138.771 Have you got any idea why it is appening I don039t know atan2 implementation8230. Thk and best regards 241. starlino December 12, 2017 Leonardo: The problem is in (Euler) angles measurement at 90 degree they become ambiguous and very sensitive. Angle measurement for orientation is good only for PitchRoll totalForce sqrt(XX YY ZZ) movementForce abs(totalForce - 9.8) 293. starlino January 13, 2018 Franck, I am afraid that is not going to work. You need to factor in the direction on the gravitation vector. First you need to get accVector totalVector 8211 gravitationVector ( this means difference of each coponent X, Y,Z of the respective vectors) and then you can do the modulus of accVector (using your sqrt formula) to get what you need. 294. sachin January 15, 2018 so, to summarize, what can a IMU measure position, orientation, linear velocity, angular velocity, linear amp angular acceleration 295. starlino January 16, 2018 An 82209DOF8221 imu conisting of accelerometer, gyro and compass can reliably measure orientation in 3D space, angular velocity 038 linear acceleration. From this data you can also relably deduct by differentiation angular acceleration. It is possible, but it is unreliable (without an external refference such as GPS, altimiter or a triangulation system) to calculate by integration from data above the linear velocity and integrating once again you can get the position. Vertical position and velocity (altitude) can be reliably be estimated if you use a 822017DOF8221 containing an additional barometer. Hope this helps and answers your questions. Have a great day. 296. buli January 22, 2018 Sorry master, i got wrong on my output data, i use mpu6050 and got accel and gyro data from the variables (ax, ay, az, gx, gy, gz) and i use the formulas you wrote, but it039s wrong, could you help me to debug my code(arduino) i set all name of variables as in your article int initial0 float t0.1(because i set my device get value per 0.1sec) float wGyro8.5 lt8212outside the loop function. float RxEst, RyEst, RzEst float RateAxz, RateAyz, RateAxy float RxAcc, RyAcc, RzAcc float RateAxzpreviousRateAxz float RateAyzpreviousRateAyz float RateAxypreviousRateAxy float RxAccpreviousRxEst float RyAccpreviousRyEst float RzAccpreviousRzEst float RateAxzAvg, RateAyzAvg, RateAxyAvg accelgyro. getMotion6(ampax, ampay, ampaz, ampgx, ampgy, ampgz) From this code begin to get value, or this is the code for getting value. RateAxz(float)gy16.4 RateAyz(float)gx16.4 RateAxy(float)gz16.4 Unconfirm RxAcc(float)ax2048 RyAcc(float)ay2048 RzAcc(float)az2048 float lengthofvectorsqrt(RxAccRxAccRyAccRyAccRzAccRzAcc) RxAccRxAcclengthofvector RyAccRyAcclengthofvector RzAccRzAcclengthofvector while(initial0) RateAxzAvg RateAxz RateAyzAvg RateAyz RateAxyAvg RateAxy RxAccpreviousRxAcc RyAccpreviousRyAcc RzAccpreviousRzAcc initial if(initial1) RateAxzAvg(float)(RateAxzpreviousRateAxz)2 RateAyzAvg(float)(RateAyzpreviousRateAyz)2 RateAxyAvg(float)(RateAxypreviousRateAxy)2 float Axz(float)atan2(RxAccprevious, RzAccprevious) float Ayz(float)atan2(RyAccprevious, RzAccprevious) AxzAxzRateAxzAvgT AyzAyzRateAyzAvgT float RxGyro(float)sin(Axz)sqrt(1cos(Axz)tan(Ayz)cos(Axz)tan(Ayz)) float RyGyro(float)sin(Ayz)sqrt(1cos(Ayz)tan(Axz)cos(Ayz)tan(Axz)) float RzGyro(float)sqrt(1-RxGyroRxGyro-RyGyroRyGyro) RxEst(float)(RxAccRxGyrowGyro)(1wGyro) RyEst(float)(RyAccRyGyrowGyro)(1wGyro) RzEst(float)(RzAccRzGyrowGyro)(1wGyro) float R(float) sqrt(RxEstRxEstRyEstRyEstRzEstRzEst) RxEst(float)RxEstR RyEst(float)RyEstR RzEst(float)RzEstR Serial. print(RxEst)Serial. print(quottquot) Serial. print(RyEst)Serial. print(quottquot) Serial. print(RzEst)Serial. print(quotnquot) 297. buli January 22, 2018 The following from quotquotfloat RxEst, RyEst, RzEstquotquot are in the loop function