[BASCOM DESIGN CONTEST] MIKA powie Ci…

Mika powstała bo chciałem zbudować… brelok do kluczy reagujący na gwizd.

Zainteresowałem się wtedy przetwarzaniem dźwięków przez mikrokontrolery. Szybko udało mi się zbudować mój brelok i wtedy na jednym z kanałów na YouTube zobaczyłem kontroler rozpoznający komendy głosowe rodem z lat 80. Pomyślałem, że to nie może być skomplikowane. Kiedy mój sterownik zaczął reagować na komendy pomyślałem że trzeba się do niego jakoś zwracać, by podczas rozmowy z kimś innym nie podsłuchiwał niepotrzebnie. Widziałem filmik na którym ktoś do systemu zwracał się „Zosia”. Pomyślałem, że od takiego sterownika dużo wymagam więc lepiej będzie jak nazwę go tak, jak wabi się mój pies. Dlatego nazywa się MIKA.

Nie będę pisał tylko o MICE. Sprawa rozpoznawania mowy nie jest tam priorytetowa. Mika ma więcej zalet.

Mika ma duże, widoczne z daleka znaki. Wyświetlacz MIKI to 240×128 i dzięki wbudowanemu czujnikowi temperatury potrafi powiedzieć (zapytana) jaka jest temperatura i wyświetlić duże znaki z rysunkiem termometru.

Na uwagę zasługuje również to, że MIKA dźwięki odtwarza sama, nie za pośrednictwem żadnego zewnętrznego modułu. Obsługuje kartę SD 256MB.

Następnym plusem jest bootloader umożliwiający wymianę oprogramowania poprzez Bluetooth! Tak. Można upgrade’ować sterownik prosto z IDE jednym kliknięciem.

Łącze Bluetooth umożliwia również dwustronną komunikację. Można debugować sterownik lub później wymieniać ciekawsze dane z komputerem lub sterować urządzeniami z komputera poprzez MIKE.

Na pokładzie mamy do dyspozycji zegar RTC zasilany bateryjką. Zegar to starszy PCF8583, ale ten układ posiada wolne zasoby pamięci RAM, w dodatku podtrzymywane zasilaniem bateryjnym. Dlatego sterownik oblicza też dni tygodnia w kalendarzu stuletnim.

Zapytany o czas sterownik podświetla mocniej ekran i wypowiada informację o godzinie na głos.

Można MIKĄ sterować oświetleniem. Proszę sobie wyobrazić, że leżymy w łóżku, mówimy „Mika, światło” i światło gaśnie…

Ukryta jest funkcja wydawania pików za pomocą głośnika zamiast buzzera.

To wszystko udało się oprogramować w Atmega32 w języku BASCOM.

Chciałbym w dalszej części artykułu pokazać, jak przyjemne może być programowanie. Kilka wskazówek, które chcę przekazać powinny umilić poznawanie BASCOM-a innym.

Istnieje wiele stereotypów, jak powinien wyglądać program. Wielu przekonanych jest zapewne, że taka konfiguracja sprzętu, jaką zadeklarujemy na początku programu musi już do końca pozostać. Okazuje się, że konfigurację można zmieniać „w locie” na taką, jaka jest aktualnie potrzebna. Oczywiście w granicach tego, jaką mamy pinologię projektu.

Mika by rozpoznawać komendy głosowe używa uproszczonej analizy częstotliwości. Potrzebuje do tego Timer1 w trybie Capture Mode.

Żeby sterować jasnością podświetlania, sterownik używa kanału PWM Timera2. Do odmierzania czasu pozostaje Timer0.

 

Do pobrania

O autorze