W celu zapewnienia opisanemu wcześniej robotowi czterokołowemu informacji o jego stanie oraz o stanie otoczenia, wykonano dedykowany moduł sensorów. Zadaniem modułu jest pobieranie danych pomiarowych z zainstalowanych sensorów, a następnie w odpowiedzi na żądanie ze strony jednostki nadrzędnej, przesyłanie ich.
W skład modułu sensorów wchodzą:
- blok mikrokontrolera,
- sensory inercyjne (akcelerometry i żyroskopy),
- magnetometr,
- sensor temperatury z zewnętrzną sondą,
- blok przełączników magistrali I2C,
- odbiornik GPS,
- blok wejść dla modułow z sensorami odległości.
Podobnie jak w module sterowania silnikami, zastosowano mikrokontroler Kinetis L MKL15Z32VLH4. Mikrokontroler ten posiada dwie magistrale I2C, co pozwoliło na użycie jednej magistrali do komunikacji z sensorami, natomiast drugiej do komunikacji z komputerem nadrzędnym.
Projekt elektroniczny modułu wykonano w studenckiej wersji oprogramowania Altium Designer. W dalszej części znajdują się schematy modułu oraz jego wizualizacje 3D.
Ze względu na to, że układy wykorzystywane w modułach sensorów odległości komunikują się przez magistralę I2C, a także posiadają taki sam adres, wymagane było rozszerzenie magistrali. Wykorzystano do tego celu przełączniki analogowe MAX4562. Warto zauważyć, że układ MAX4562 jest sterowany również przez magistralę I2C, co znacznie upraszcza kwestię sterowania przełącznikami. W module wykorzystano cztery układy tego typu, co pozwoliło na podłączenie dwunastu sensorów odległości VCNL4020 produkcji firmy Vishay, posiadających ten sam adres.
Moduły sensorów odległości dołączane są do modułu sensorów za pomocą przewodów. Przedni i tylny element zawiera po 4 czujniki odległości VCNL4020. Dodatkowo, przedni moduł został wyposażony w dwa, dwustanowe czujniki GP2Y0D340K produkcji Sharp, umożliwiające wykrywanie obiektów w odległości do 40 cm. Moduły boczne zawierają po dwa czujniki VCNL4020.
Wykorzystane sensory inercyjne i magnetometr
W module obsługi sensorów umieszczono dwa akcelerometry LIS3DH, dwa żyroskopy L3GD20, dwa żyroskopy MAX21000 i magnetometr HMC5883L. Powinno to umożliwić testowanie różnych algorytmów lokalizacji działających w oparciu o sensory inercyjne i magnetometr. Odbiornik GPS umieszczony w module nie jest wykorzystywany w tej wersji robota i został dodany jedynie w celach rozwojowych. Poniżej przedstawiono wybrane parametry używanych sensorów.
Cechy akcelerometrów LIS3DH:
- Wybieralny zakres pomiarowy: ±2 g, ±4 g, ±8 g, ±16 g.
- Czułości pomiaru odpowiadają zakresom pomiarowym i są następujące: 1 mg/cyfra, 2 mg/cyfra, 4 mg/cyfra, 12 mg/cyfra.
- Zmiana czułości wraz ze zmianą temperatury na poziomie 0,01% / o C.
- Offset o wartości 40 mg.
- Zmiana wartości wyjściowej wraz z temperaturą na poziomie cyfra / oC.
- Częstotliwość pomiarów od 1 Hz do 5 kHz.
- Wbudowany filtr górnoprzepustowy.
Cechy żyroskopów L3GD20:
- Wybieralny zakres pomiarowy: 250 dps, 500 dps, 2000 dps.
- Czułości pomiaru odpowiadają zakresom pomiarowym i są następujące: ±8.75 mdps/cyfra, ±17.5 mdps/cyfra, ±70 mdps/cyfra.
- Zmiana czułości wraz ze zmianą temperatury na poziomie 2% / oC$, dla temperatur w zakresie od -40oC do +85oC
- Offset zależny od wybranego zakresu pomiarowego, przyjmuje wartości: ±10 dps, ±15 dps, ±75 dps.
- Częstotliwość pomiarów w przedziale od 95 Hz do 760 Hz.
- Wbudowany filtr dolnoprzepustowy i górnoprzepustowy.
Wybrane cechy żyroskopów MAX21000:
- Wybieralny zakres pomiarowy, od ±31,32 dps, do ±2000 dps.
- Czułości pomiaru odpowiadają zakresom pomiarowym, a ich wartości mieszczą się w przedziale od 960 cyfr/dps do 15 cyfr/dps.
- Maksymalna zmiana czułości wraz ze zmianą temperatury na poziomie 2% / oC.
- Offset w granicach ±0,5 dps.
- Maksymalna zmiana offsetu wraz z temperaturą w granicach ±2 dps.
- Wbudowany filtr górnoprzepustowy.
Cechy magnetometrów HMC5883L:
- Zakres pomiarowy w granicach ±8 Gs.
- Rozdzielczość pomiaru na poziomie 5 mGs.
- Częstotliwość pomiarów do 160 Hz.
Schematy modułu sensorów
Wizualizacja 3D modułu sensorów robota czterokołowego i zdjęcie wykonanego PCB