MinImu-9 v2 i Arduino
Jest to moduł zawierający -3-osiowy akcelerometr 3-osiowy magnetometr (LSM303DLHC) oraz 3-osiowy żyroskop (L3GD20). Oprócz samych czujników na płytce znajdują się niezbędne komponenty bierne takie jak kondensatory, rezystory, tranzystory oraz regultory napięcia. Dzięki temu użytkownik nie musi martwić się projektem PCB oraz odpowiednim rozmieszczeniem elementów. Układ posiada pięć wyprowadzeń. Trzy z nich służa do zasilania, dwa pozostałe to wyprowadzenia I2C (SDA - linia danych, SCL - linia zegarowa).
Magistrala I2C/TWI
Interefjs składający się z linii danych (SDA) linii zegarowej (SCL) oraz masy. Wyjścia/wejścia są w konfiguracji Open-Drain (Open-Collector), dlatego też niezbędne są rezystory podciągające.
Rys: Przykładowa struktura magistrali I2C. (źródło: http://www.eetimes.com)
Transmisja może być przeprowadzana w trzech trybach:
- Normal Mode - prędkość transmisji do 100 kbps, 7-bitowa adresacja
- Fast Mode - prędkość transmisji do 400 kbps, 7 lub 10-bitowa adresaca
- High Speed Mode - prędkość transmisji do 3,4 Mbps, 7 lub 10-bitowa adresaca
Od wersji Fast Mode urządzenia mogą być adresowane w trybie 10-bitowym i 7-bitowym (do 128 urządzeń, w praktyce nieco mniej - 112 cześć adresów jest zarezerwowana). Akcelerometr, magnetometr i żyroskop, znajdujące się w module MinImu-9, posiadają adresy 7 bitowe. Ustawione są odpowiednio na:
- Akcelerometr LSM303DLHC - 0011001b
- Magnetometr L3GD20 - 0011110b
- Żyroskop L3GD20 - 1101011b (z możliwościa konfiguracji ostatniego bitu za pomocą zworki)
Szczegółowe informacje odnośnie magistrali I2C można znaleźć w dokumentacji NXP: link.
Aby połączyć MinImu9 z Arduino wystarczy podłączyć zasilanie oraz wyprowadzenia I2C/TWI:
MinImu9 | Arduino | Opis |
SCL | SCL | Linia zegarowa (taktująca) magistrali I2C/TWI |
SDA | SDA | Linia danych magistrali I2C/TWI |
GND | GND | Masa obu układów musi być połączona |
VIN | 3,3V lub 5V | Zasilanie układu. MinImu9 posiada własny regulator o napięciu wyjściowym 3V. Nie ma znaczenia czy zostanie podłączone napięcie 3,3V albo 5V. Podłączenie napięcie 3,3V zniweluje straty mocy w postaci wydzielającego się ciepła na stabilizatorze. |
VDD | - | Jest to napięcie wyjściowe ze stabilizatora 3V znajdującego się na płytce MinImu9 o wydajności prądowej maks. 150mA. Z wyprowadzenia można korzystać gdy napięcie zasilania (podane na pin VIN) jest wyższe niż 3,3V |
Uwaga!
MinImu-9 posiada rezystory podciągające (4,7k Om) obie linie I2C (dla akcelerometru i żyroskopu). Należy zadbać o rezystory po stronie Arduino.
Analogicznie należy postępować z układem żyroskopu L3GD20 oraz akcelerometru z magnetometrem LSM303DLHC .
Biblioteki i przykładowe programy
Do obsługi modułu stworzone zostały biblioteki dla Arduino. Biblioteka dla modułu cyfrowego żyroskopu L3GD20 oraz akcelerometru z magnetometrem LSM303.
Producent udostępnia także przykładowy program dla projektu Arduino.
Film przedstawia model 3D sterowany w czasie rzeczywistym za pomocą: MinImu-9, Arduino oraz 3DSMax.