LEGO Gyroscope datasheet
Transkrypt
LEGO Gyroscope datasheet
LEGO Czujnik Gyroscope ©2010 RoboFACTORY LEGO Akcelerometr Tytuł dokumentu: LEGO Gyroscope datasheet Wersja dokumentu: V1.2 Data: 11.03.2011 Wersja urządzenia którego dotyczy dokumentacja: LEGO_Gyroscope_V1.0 ©2010 RoboFACTORY 2/14 LEGO Akcelerometr Spis treści 1 Ogólny opis......................................................................................................................................4 1.1 .Właściwości.............................................................................................................................4 2 Szybki start.......................................................................................................................................5 2.1 .Przykładowy program..............................................................................................................5 3 Informacje o czujniku ......................................................................................................................6 3.1 .Dane techniczne.......................................................................................................................6 3.2 .Opis wyprowadzeń..................................................................................................................7 3.3 .Protokół komunikacji...............................................................................................................8 3.4 .Wykaz rejestrów......................................................................................................................9 3.5 .Definicje rejestrów.................................................................................................................10 3.6 .Wymiary modułu...................................................................................................................16 ©2010 RoboFACTORY 3/14 LEGO Akcelerometr 1 Ogólny opis Czujnik LEGO Gyroscope zbudowany jest w oparciu o układ 2-osiowego żyroskopu LPY430AL. Układ ten zawiera w sobie pojemnościowe czujniki przyspieszenia, filtr dolnoprzepustowy, układ kompensacji temperatury. Wyjścia układu podłączone są pod wejścia przetwornika ADC 10bit procesora. Czujnik komunikuje się po magistrali I2C pod adresem 0x16. 1.1 Właściwości – Małe wymiary – Zakres pomiarowy +-300 dps (degrees/sec) – Czułość 1 LSB/dps – Częstotliwość pomiaru 280Hz (pasmo 140Hz) – Wyjście cyfrowe ( interfejs I2C ) – Możliwość konfiguracji adresu magistrali I2C – Wykrywanie przekroczenia zaprogramowanego progu przyspieszenia (Motion Detect) dla każdej z osi osobno ©2010 RoboFACTORY 4/14 LEGO Akcelerometr 2 Szybki start Czujnik należy podłączyć do kostki NXT do jednego z portów od 1 do 4 i używając bloczków dostępnych na naszej stronie internetowej, można od razu przystąpić do zabawy. 2.1 Przykładowy program Jest to zdjęcie przykładowego programu, który wyświetla nam dwie wartości: prędkość kątową w osi x oraz z. Wartości te są co pół sekundy odświeżane. Program ten ma na celu pokazanie jak odczytywać wartości z akcelerometru. Program ten znajduje się również na naszej stronie internetowej. ©2010 RoboFACTORY 5/14 LEGO Akcelerometr 3 Informacje o czujniku 3.1 Dane techniczne Maksymalne wartość parametrów fizycznych urządzenia: Parametr Min Max Jednostka 0 6.5 V -40 +125 ºC Napięcie wejściowe -0.5 Vcc+0.5 V Prąd pinu -20 +20 mA - 3000 g Min Typ Max Jednostka 3 5 5.5 V Tryb pomiaru - 10 12 mA Tryb uśpienia - 3 4 mA -40 25 +85 ºC Częstotliwość pomiaru - 280 - Hz Czułość - 1 - count/dps Prędkość magistrali I2C - - 400 kHz Vcc (Napięcie zasilania) Temperatura przechowywania DATA Pin Maksymalne przyspieszenie (wszystkie osie) Operacyjne wartości parametrów urządzenia: Parametr Vcc (Napięcie zasilania) Pobór prądu Temperatura pracy ©2010 RoboFACTORY 6/14 LEGO Akcelerometr 3.2 Opis wyprowadzeń Nr pinu Nazwa pinu Opis Typ pinu 1 BOOT 2 GND Masa urządzenia POWER 3 GND Masa urządzenia POWER 4 VCC Zasilanie urządzenia POWER 5 SCL I2C Serial Clock INPUT 6 SDA I2C Serial Data INPUT/OUTPUT Pin służący do aktualizacji oprogramowania w urządzeniu. Podczas normalnej pracy wymagany stan wysoki. INPUT Wyprowadzenia są kompatybilne ze standardem czujników LEGO Mindstorms NXT. ©2010 RoboFACTORY 7/14 LEGO Akcelerometr 3.3 Protokół komunikacji Komunikacja z czujnikiem odbywa się pod magistrali I2C. Czujnik jest urządzeniem typu „SLAVE” i zgłasza się pod adresem 0x16 lub pod adresem zaprogramowanym przez użytkownika, wpisanym do odpowiedniego rejestru. Przykład zapisu do rejestru urządzenia dwóch bajtów: S Slave Address + Write bit = 0x16 A Register Address A Data0 A Data1 A P Przykład odczytu pojedynczego bajtu z rejestru urządzenia: S Slave Address + Write bit = 0x16 A Register Address A S Slave Address + Read bit = 0x17 A Data A P Legenda: – Master – Slave S – Bit Startu A – Bit potwierdzenia P – Bit Stopu Każdy rejestr czujnika ma swój unikalny 8bit adres. Po odczycie jednego bajtu adres jest automatycznie zwiększany o jeden. Pozwala to na odczyt kilku rejestrów, przy jednej sekwencji odczytu i2c. ©2010 RoboFACTORY 8/14 LEGO Akcelerometr 3.4 Wykaz rejestrów Adres rejestru Nazwa - Opis Rozmiar w bajtach Wartość domyślna 0x00 SVN – Sensor Version Number, wersja firmware urządzenia 8 „V1.0” 0x08 MF – Manufacturer, nazwa producenta 8 „RoboFACT” 0x10 ST – Sensor Type, nazwa rodzaju czujnika 16 „GYROSCOPE” 0x20 SSA – Second Slave Address, alternatywny adres pod jakim będzie się zgłaszać czujnik na magistrali I2C 1 0xFF 0x21 LPC – LED Power Control, rejestr służący do sterowania zielona dioda LED 1 0x01 0x22 PC – Power Control, rejestr do kontroli trybów oszczędzania energii 1 0x00 0x40 SR – Status Register, rejestr statusowy czujnika 1 0x00 0x41 LSC – LED Status Control, konfiguracja pomarańczowej diody LED 1 0x07 0x42 XOUT – Odczyt przyspieszenia w osi X 2 - 0x44 ZOUT – Odczyt przyspieszenia w osi Z 2 - 0x50 MDX – Wartość przyspieszenia powyżej, której następuje zapalenie flagi MDFX 2 0x0064 0x52 MDZ – Wartość przyspieszenia powyżej, której następuje zapalenie flagi MDFZ 2 0x0064 0x70 SCC – Sensor Calibration Command, rozkaz wykonania kalibracji 1 - ©2010 RoboFACTORY 9/14 LEGO Akcelerometr 3.5 Definicje rejestrów 0x00 – Sensor Version Number (SVN): Nr Bajtu D0 D1 D2 D3 D4 D5 D6 D7 Wartość domyślna 'V' '1' '.' '0' - - - - Rejestr zawiera numer wersji urządzenia w postaci znaków ASCII. 0x08 – Manufacturer (MF): Nr Bajtu Wartość domyślna D0 D1 D2 D3 D4 D5 D6 D7 'R' 'o' 'b' 'o' 'F' 'A' 'C' 'T' Rejestr zawiera nazwę serii czujników w postaci znaków ASCII. 0x10 – Sensor Type (ST): Nr Bajtu Wartość domyślna D0 D1 D2 D3 D4 D5 D6 D7 D8 'G' 'Y' 'R' 'O' 'S' 'C' 'O' 'P' 'E' Rejestr zawiera nazwę typu czujników w postaci znaków ASCII. 0x20 – Second Slave Address (SSA): Nr bitu Funkcja b7 b6 b5 b4 b3 b2 b1 b0 SSA[7] SSA[6] SSA[5] SSA[4] SSA[3] SSA[2] SSA[1] 0 Rejestr służy do konfiguracji alternatywnego adresu czujnika na magistrali I2C. Najmłodszy bit jest zawsze równy 0, ze względu na fakt że najmłodszy bit adresu na magistrali służy do określenia kierunku danych (zapis/odczyt). Po wykonaniu takiego zapisu do rejestru, zapalana jest flaga zajętości w rejestrze statusowym. Czujnik po dokonaniu zapisu do pamięci nie ulotnej flash, automatycznie gasi flagę zajętości i można przystąpić do dalszej pracy. Zapis może trwać maksymalnie do 100ms. 0x21 – LED Power Control (LPC): Nr bitu Funkcja b7 b6 b5 b4 b3 b2 b1 b0 - - - - - - - LPC[0] Jeśli bit LPC[0] rejestru LPC jest zapalony to dioda LED świeci, w przeciwnym wypadku nie świeci. ©2010 RoboFACTORY 10/14 LEGO Akcelerometr 0x22 – Power Control (PC): Nr bitu Funkcja b7 b6 b5 b4 b3 b2 b1 b0 - - - - - - - PC[0] Jeśli bit PC[0] jest zapalony to czujnik przechodzi w tryb uśpienia. Dokonywanie pomiarów zostaje zatrzymane. Czujnik wybudza się tylko podczas wykrycia transmisji na I2C. Na czas uśpienia diody LED zostają wyłączone. 0x40 – Status Register (SR): Nr bitu Funkcja b7 b6 b5 b4 b3 b2 b1 b0 - - - - MDFZ MDFX MR BUSY Opis flag: BUSY – Flaga zajętości urządzenia, kiedy flaga jest zapalona zapisane dane do czujnika mogą zostać utracone, a dane odczytane z innego rejestru niż statusowy mogą być zakłamane. MR – Measurement ready, flaga zapala się jak nowy pomiar przyspieszenia jest gotowy do odczytu w rejestrach XOUT, ZOUT. Flaga pozostaje zapalona do momentu odczytu rejestru. MDFX – Motion Detect Flag, flaga zapala się w przypadku wykrycia przekroczenia zaprogramowanej wartość (rejestr MDX) w osi X. Flaga pozostaje zapalona do momentu odczytu rejestru. MDFZ – Motion Detect Flag, flaga zapala się w przypadku wykrycia przekroczenia zaprogramowanej wartość (rejestr MDZ) w osi Z. Flaga pozostaje zapalona do momentu odczytu rejestru. ©2010 RoboFACTORY 11/14 LEGO Akcelerometr 0x41 – LED Status Control (LSC): Nr bitu Funkcja b7 b6 b5 b4 b3 b2 b1 b0 LSC[7] LSC[6] LSC[5] LSC[4] LSC[3] LSC[2] LSC[1] LSC[0] Rejestr służy do kontroli świecenie pomarańczowej diody LED. Dioda ta zapala się jeśli spełniony jest warunek (LSC & SR) > 0. np. dla wartości LSC = 0x01 dioda LED zapali się tylko gdy flaga BUSY będzie zapalona. Dla wartości LSC = 0x07 dioda zapali się jeśli zapalona będzie flaga BUSY lub ROLLF lub PITCHF. 0x42 – 10bits X Output Value (XOUT): Bajt 0 Funkcja Bajt 1 Funkcja b7 b6 b5 b4 b3 b2 b1 b0 XOUT[9] XOUT[8] XOUT[7] XOUT[6] XOUT[5] XOUT[4] XOUT[3] XOUT[2] b7 b6 b5 b4 b3 b2 - - - - - - b1 b0 XOUT[1] XOUT[0] Rejestr zawiera wartość przyspieszenia w osi X. Od odczytanej wartości z rejestru XOUT należy odjąć wartość 512 w celu uzyskania poprawnej wartości 1 count/dps. 0x44 – 10bits Z Output Value (ZOUT): Bajt 0 Funkcja Bajt 1 Funkcja b7 b6 b5 b4 b3 b2 b1 b0 ZOUT[9] ZOUT[8] ZOUT[7] ZOUT[6] ZOUT[5] ZOUT[4] ZOUT[3] ZOUT[2] b7 b6 b5 b4 b3 b2 - - - - - - b1 b0 ZOUT[1] ZOUT[0] Rejestr zawiera wartość przyspieszenia w osi Z. Od odczytanej wartości z rejestru ZOUT należy odjąć wartość 512 w celu uzyskania poprawnej wartości 1 count/dps. ©2010 RoboFACTORY 12/14 LEGO Akcelerometr Przykładowe wartość odczytane z rejestrów XOUT lub ZOUT i odpowiadające im prędkości obrotowe: Rejestr XOUT lub ZOUT Wartość prędkości obrotowej 812 300dps 712 200dps 612 100dps 512 0 412 -100dps 312 -200dps 212 -300dps 0x50 – Motion Detect on X axis (MDX): Bajt 0 Funkcja Bajt 1 Funkcja b7 b6 b5 b4 b3 b2 b1 b0 MDX[7] MDX[6] MDX[5] MDX[4] MDX[3] MDX[2] MDX[1] MDX[0] b7 b6 b5 b4 b3 b2 b1 b0 - - - - - - - MDX[8] Do rejestru należy wpisać wartość przyspieszenia w osi X wyrażoną w count/dps, powyżej której następuje zapalenie flagi MDFX. 0x52 – Motion Detect on Z axis (MDZ): Bajt 0 Funkcja Bajt 1 Funkcja b7 b6 b5 b4 b3 b2 b1 b0 MDZ[7] MDZ[6] MDZ[5] MDZ[4] MDZ[3] MDZ[2] MDZ[1] MDZ[0] b7 b6 b5 b4 b3 b2 b1 b0 - - - - - - - MDZ[8] Do rejestru należy wpisać wartość przyspieszenia w osi Z wyrażoną w count/dps, powyżej której następuje zapalenie flagi MDFZ. ©2010 RoboFACTORY 13/14 LEGO Akcelerometr 0x70 – Sensor Calibration Command (SCC): Bajt 0 Funkcja b7 b6 b5 b4 b3 b2 b1 b0 - - - - - - - - Zapis do rejestru wartości większej od 0 powoduje wykonanie komendy kalibracji czujnika. Na czas kalibracji zapalana jest flaga BUSY. Czujnik podczas kalibracji powinien być w pozycji poziomej. ©2010 RoboFACTORY 14/14