Aplikacja sterująca robotem Ferdynand
, opracowana we Flutterze, pozwala na bezdotykowe sterowanie ruchem robota. Aplikacja korzysta z rozpoznawania mowy i sensora zbliżeniowego, aby zarządzać trybem ruchu robota w czasie rzeczywistym. W zależności od komend głosowych lub zbliżenia się do przeszkody, robot zmienia kierunek.
- Rozpoznawanie Mowy:
Ferdynand
rozpoznaje komendy głosowe takie jak "do przodu", "do tyłu", "w lewo", "w prawo" i dostosowuje kierunek ruchu robota. - Wykrywanie Przeszkód: Sensor zbliżeniowy wykrywa przeszkody na drodze robota.
- Wizualizacja Ruchu: Każdy tryb ruchu robota jest reprezentowany przez sekwencję kwadratów, która odbierana jest przez fotodiody.
- Bezdotykowa Obsługa: Po uruchomieniu aplikacja nie wymaga dodatkowej interakcji – ciągle nasłuchuje komend głosowych i danych z sensora.
-
Uruchomienie Aplikacji
Po uruchomieniu aplikacji na urządzeniu, następuje automatyczne przyznanie wymaganych uprawnień do mikrofonu i robot zaczyna ruch "do przodu". Aplikacja nasłuchuje komend głosowych i monitoruje otoczenie robota. -
Reakcja na Przeszkody
Gdy sensor wykryje przeszkodę, robot automatycznie przechodzi w tryb "do tyłu" na 3 sekundy, po czym wraca do trybu "do przodu", kontynuując ruch. Pozwala to na unikanie przeszkód bez potrzeby interwencji użytkownika. -
Komendy Głosowe
Aplikacja rozpoznaje komendy takie jak "do przodu", "do tyłu", "w lewo" i "w prawo". Na ich podstawie aktualizowany jest kierunek ruchu robota. Po podaniu komendy aplikacja automatycznie przełącza się na nasłuch kolejnych instrukcji, umożliwiając płynne sterowanie bez dotykania ekranu.
- Flutter: Główna technologia użyta do budowy aplikacji.
- Permission Handler: Zarządzanie uprawnieniami dostępu do mikrofonu, co jest niezbędne dla rozpoznawania mowy.
- Proximity Sensor: Wykrywanie przeszkód na drodze robota.
- Speech-to-Text: Tłumaczenie komend głosowych na tekst, który steruje ruchami robota.
Kod podzielony jest na moduły dla łatwiejszej dostępności:
- Widget HomePage: Główna strona aplikacji, wyświetlająca status robota oraz bieżący tryb ruchu.
- Klasa Pattern: Logika obsługująca wzorce ruchu robota, w zależności od komend głosowych i danych z sensora.
- Klasa VoiceControl: Moduł zarządzający rozpoznawaniem mowy.
- Klasa Sensor: Moduł do obsługi sensora zbliżeniowego.
W przyszłości projekt można rozszerzyć o:
- Dodatkowe Komendy Głosowe: Rozpoznawanie bardziej złożonych instrukcji, takich jak "obrót" czy "stop".
- Zaawansowane Omijanie Przeszkód: Wprowadzenie algorytmu, który pozwala na bardziej zaawansowane omijanie przeszkód.
- Reakcje robota: Wykorzystanie biblioteki Text-to-Speech, w celu reakcji np. po natrafieniu na przeszkodę.