[PRZYKŁAD] Akcelerometr i magnetometr KAmodLSM303 + Arduino
W projekcie przedstawiono przykładowe użycie czujnika LSM303 będącego częścią modułu KAmodLSM303. Wskazania akcelerometru, magnetometru lub kompasu są odczytywane przez płytkę zgodną z Arduino, a następnie wyświetlane na wyświetlaczu LCD nakładki LCD Keypad Shield v 1.1. Za pomocą przycisków UP i DOWN można decydować o tym, które wskazanie jest aktualnie wyświetlane.
Do realizacji projektu zostały użyte następujące moduły:
KAmodLSM303 to moduł z układem MEMS typu LSM303D. Układ ma cyfrowe wyjście sygnału (za pośrednictwem magistrali I2C lub SPI) i umożliwia pomiar przyspieszeń oraz wartości pola magnetycznego w trzech osiach. Dzięki programowalnym wyjściom generatora przerwań możliwe jest np. wybudzanie mikrokontrolera po wykryciu swobodnego spadku czy ruchu obiektu. Może być wykorzystany w systemach zasilanych napięciem 2,5 V – 5,5 V.
Do obsługi czujnika wykorzystano bibliotekę przygotowaną przez firmę Pololu dla środowiska Arduino, która umożliwia sterowanie czujnikiem za pośrednictwem I2C. Oto krótki opis niektórych dostępnych w niej funkcji:
- init() – inicjalizacja czujnika
- enableDefault() – ładuje domyślną konfigurację czujnika
- readAcc() – odczytuje wskazania akcelerometru
- readMag() – odczytuje wskazania magnetometru
- read() – odczytuje wskazania obu powyższych przyrządów
- heading() – oblicza i zwraca wskazanie kompasu w formie odchylenia osi X od bieguna N w stopniach
DFRobot LCD Keypad Shield to nakładka na Arduino zawierająca monochromatyczny wyświetlacz LCD 16 x 2 oraz 5 przycisków. Mimo, że piny Kamduino UNO z interfejsem I2C (oznaczone SCL i SDA) są zasłonięte przez nakładkę i dostęp do nich jest utrudniony, to można wykorzystać piny analogowe do zrealizowania komunikacji za pośrednictwem interfejsu I2C. Pin A4 pełni rolę pinu SDA, zaś pin A5 – pinu SCL. To połączenie różni się między poszczególnymi wersjami Arduino i, jeśli do realizacji projektu ma zostać użyta inna płytka niż UNO, należy sprawdzić, które piny powinny zostać użyte pod tym linkiem.
Schemat poglądowy połączenia elementów:
Dołączenie czujnika przedstawiono także w poniższej tabeli:
Pin czujnika KAmodLSM303 |
Pin Arduino |
+VIN | 5 V |
GND | GND |
SDA | A4 |
SCL | A5 |
Połączone elementy prezentują się następująco: