Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Kategoria: Kamery IP / Alarmy / Automatyka Bram
Montersi
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Demostenes - robot sterowany ludzkim głosem

Christophorus 23 Mar 2017 15:59 4863 9
  • Demostenes - robot sterowany ludzkim głosem

    Poniższy opis przedstawia robota sterowanego ludzkim głosem pod nazwą Demostenes. Nazwa ta wywodzi się od imienia wielkiego greckiego mówcy Demostenesa. Robot ten wbrew pozorom jest bardzo prosty w konstrukcji. Zbudowany jest on w oparciu o gotowy moduł MIKROE-1534 dostępny w TME. Moduł ten możemy zobaczyć na zdjęciu poniżej.

    Demostenes - robot sterowany ludzkim głosem

    Ma on 12 wyjść, których stany wyjściowe możemy odpowiednio zaprogramować po zdekodowaniu wydanego polecenia jako zgodnego z zaprogramowanym wzorcem. Sygnały z tych wyjść wystarczy wzmocnić i wykorzystać do sterowania przekaźnikami. W tym celu wykorzystane zostały scalone drivery ULN2803. Całość zasilana jest dwoma napięciami 3,3V dla modułu MIKROE-1534 i 5V dla przekaźników i układów ULN2803. Napięcie dla przekaźników może być wyższe np. 12V, ale chciałem uniknąć dużych trat mocy w stabilizatorze 3,3V stąd wybór padł na przekaźniki 5V. Schemat blokowy robota możemy zobaczyć na rysunku poniżej.

    Demostenes - robot sterowany ludzkim głosem

    W zasadzie jest to zasilacz i karta przekaźników sterowana przez moduł MIKROE-1534. Całość uzupełniają diody LED sygnalizujące, który przekaźnik w danej chwili jest włączony. Jednostronną płytkę drukowaną możemy zobaczyć na rysunkach poniżej.

    Demostenes - robot sterowany ludzkim głosem Demostenes - robot sterowany ludzkim głosem

    Zamiast przekaźników można wykorzystać też sterowniki silników np. L293D lub podobne. Ja jednak chciałem jak najmniej ingerować w konstrukcję kosztownego ramienia robota KSR10. Rozwiązane zostało to w ten sposób, że za pomocą żeńskiego złącza 8 pinów typu 402 wpinam się w miejsce gdzie podłączany jest oryginalny pulpit sterujący ramienia. Schemat elektryczny ramienia KSR10 wraz z pulpitem sterującym możemy zobaczyć na schemacie poniżej. Na jeden przełącznik pulpitu sterującego przypada dwa przekaźniki. Całość połączona jest za pomocą mało estetycznego kabelka widocznego poniżej.

    Demostenes - robot sterowany ludzkim głosem Demostenes - robot sterowany ludzkim głosem

    Moduł MIKROE-1534 programuje się za pomocą dedykowanej aplikacji SpeakUP, której dwa przykładowe zrzuty ekranu można zobaczyć poniżej. Najprościej jest zainstalować aplikację i wczytać do niej „wsad” z załącznika i zobaczyć co i jak zostało ustawione. Wsad ten jest częściowo bezużyteczny ponieważ zawiera próbki mojego głosu i moduł nie będzie reagował na inny głos. Programując moduł np. dla komend „wyżej” i „niżej” trzeba pamiętać, że wydanie przeciwstawnej komendy musi wyłączyć drugi przekaźnik. Czyli włączając przekaźnik dla komendy „wyżej” trzeba wyłączyć przekaźnik dla komendy „niżej”. Ustawia się to odpowiednio w aplikacji SpeakUP. W przeciwnym razie załączony zostanie drugi przekaźnik włączając zasilanie silniczka o przeciwnej polaryzacji co doprowadzi do zwarcia elektrycznego!

    Demostenes - robot sterowany ludzkim głosem Demostenes - robot sterowany ludzkim głosem

    Podczas testów okazało się, że hałas serwomechanizmów jest na tyle silny, że skutecznie zakłóca wydawane komendy np. „stop”. Odsunięcie mikrofonu od serwomechanizmu na odległość około 3 metrów nie przyniosło poprawy. Dopiero kiedy ramię umieściłem za przeszklonymi drzwiami, hałas serwomechanizmów nie zakłócał wydawanych komend. Dopóki nie zbudowałem tego robota sądziłem, że sterowanie głosem może mieć wiele zastosowań. Na przykładzie tej konstrukcji okazało się, że nie jest to takie łatwe z uwagi na hałas i dźwięki postronne. Prawdopodobnie istnieją bardziej zaawansowane systemy rozpoznawania mowy, które są mniej podatne na zakłócenia i rozpoznają polecenia niezależnie od osoby je wypowiadającej. Zakłócanie wydawanych poleceń przez serwomechanizmy rozwiązałem włączając silniczki na krótki czas. W tym przypadku na czas 2 sekund. Można to odpowiednio ustawić w aplikacji SpeakUP. Może być to pojedynczy impuls o określonym czasie trwania, jak również ciąg impulsów o określonym czasie trwania.

    Generalnie robot ten to efektowna ciekawostka, bo w praktyce z uwagi na bezwładność mechaniczną i hałas serwomechanizmów sterowanie tym ramieniem za pomocą głosu nie jest wygodne. Próbowałem nagrać filmik z podnoszeniem pudełka zapałek. Jednak chwytak ramienia ma sprzęgło przeciążeniowe i kiedy chwytak ściska pudełko, to sprzęgło przeskakuje i chwytak zwalnia ścisk i w zasadzie nie można chwycić tego pudełka. Trudno wysterować głosem chwytak tak, aby chwycił pudełko i się zatrzymał nim zadziała sprzęgło przeciążeniowe. Robot ten był opisany w "Elektronice dla Wszystkich" 8/2016 i 9/2016. Zainteresowani mogą zamówić wydania archiwalne tego miesięcznika zarówno w postaci papierowej jak i elektronicznej jeśli wydanie papierowe się wyczerpie.

    Tutaj jest link do materiałów dodatkowych do tego artykułu zamieszczonych na stronie „EdW” (rysunki płytki w PDF, schematy, itd).

    Koszt wykonania tego robota jest dość wysoki. Moduł MIKROE-1534 kosztuje około 200 zł, ramię KSR10 też około 200 zł, gdy doliczymy drobne elementy i ewentualne koszty wysyłki to otrzymamy kwotę zbliżoną do około 500 zł.

    Demostenes - robot sterowany ludzkim głosem

    Film z działania można zobaczyć poniżej. Składa się on z trzech części:
    1. Test modułu elektronicznego
    2. Sterowanie ramienia przez przeszklone drzwi
    3. Sterowanie ramienia z jego samo zatrzymaniem


    Link


    Zawartość załącznika:
    1. Aplikacja SpeakUP
    2. Dokumentacja modułu MIKROE-1534 w postaci pliku PDF
    3. Wsad do sterowania ramieniem (wsad nie zadziała przy poleceniach wydawanych innym głosem niż mój). Można go jednak wczytać do aplikacji SpeakUP i zobaczyć jej ustawienia.


    Fajne!
  • #2 24 Mar 2017 15:15
    Wojciech.
    Poziom 30  

    Manipulator pracuje stabilnie, czy to "tandeta" nic nie warta? Chodzi mi o konstrukcje.

  • #3 24 Mar 2017 18:42
    Christophorus
    Poziom 39  

    Manipulator ma raczej delikatną konstrukcję. W końcu nie ma co dużo oczekiwać od plastikowej konstrukcji. Udźwig ramienia to 100 gram. Jest to konstrukcja do samodzielnego złożenia i składając ją ocenił bym ją raczej na delikatną. Skorzystałem z ramienia KRS10 ponieważ chodziło mi o samą prezentację działania, a nie solidną konstrukcję do konkretnych zastosowań.

    Jak już wspomniałem wyżej sterowanie głosem takiego ramienia nie jest zbyt wygodne z uwagi na bezwładność mechanizmów oraz ich hałas zakłócający wydawane głosem polecenia.

  • #4 25 Mar 2017 14:52
    OlegTor
    Poziom 5  

    Jeśli wszystko zrobione jest z gotowych "klocków", to żeby był jakiś większy wkład własny, przydałby się opisać działanie "algorytmów" przekształcających słowa w module MIKROE-1534.

  • #5 25 Mar 2017 17:37
    Christophorus
    Poziom 39  

    Algorytm zastosowany w gotowym module to nieliniowe dopasowanie czasowe czyli Dynamic Time Warping. Przykładowe linki to:

    Link pierwszy. Otworzy się plik PDF - 222 strony.

    Link drugi. Otworzy się plik PDF - 133 strony.

    Link trzeci. Otworzy się plik PDF - 4 strony.

    Są to informacje w języku polskim. Większość informacji odnoszących się do algorytmu DTW jest w języku angielskim.

  • #6 25 Mar 2017 21:19
    andrzej18k
    Poziom 10  

    Bardzo ciekawy moduł.
    Czytając temat pomyślałem że można ulepszyć Domoticz-a o możliwość wydawania komend głosowych :D
    Christophorus z jakiej odległości wydajesz polecenia? Moduł rozumie Cię np. z 5m?

  • #7 26 Mar 2017 10:14
    Christophorus
    Poziom 39  

    Polecenia były wydawane z odległości nie większej pół metra. Szczerze powiedziawszy nie próbowałem wydawać poleceń z większej odległości. Prawdopodobnie moduł byłby bardziej podatny na zakłócenia i miał większe trudności z rozpoznawaniem dźwięku. W dokumentacji dodawanej do modułu zalecana odległość od mikrofonu to 10-20 cm podczas nagrywania wzorców komend.

    Podczas testów zdarzyło się, że moduł zareagował na dmuchnięcie w mikrofon, trzask drzwi na nawet głos dziecka. Były to co prawda pojedyncze przypadki, ale były. Aplikacja SpeakUp posiada możliwość ustawienia poziomu akceptacji rozpoznawanych poleceń - opcja Acceptance threshold widoczna na drugim zrzucie ekranu aplikacji SpeakUp. Ustawienie dużego poziomu akceptacji wydawanych komend może być niestety powodem reagowania na przypadkowe słowa lub dźwięki.

  • #8 16 Kwi 2017 20:22
    dp-mion7
    Poziom 11  

    Podziwiam elektronikę rozpoznającą ludzki głos a w szczególności język polski, komendy typu "unieś" i "podnieś" brzmią bardzo podobnie, zaś "niżej" i "wyżej" prawie identycznie i nawet ludzie źle je słyszą gdy są niewyraźnie wypowiadane. Rozpoznawanie głosów różnych ludzi to jest juz wogóle niesamowite. Możliwość swobodnego porozumiewania się z robotami głosem to jest przyszłosc. Może procesory probabilistyczne sie do tego sprawdzą.

  • #9 16 Kwi 2017 21:49
    Christophorus
    Poziom 39  

    Język w jakim są programowane i wypowiadane komendy nie ma znaczenia. Jednak programując Demostenesa miałem trochę trudności z doborem komend właśnie ze względu na podobieństwo wypowiadanych słów i typowo polskie litery typu "ś", "ż", itp. Większym problemem okazały się postronne dźwięki nakładające się (zakłócające) na wypowiadane komendy. Wówczas Demostenes nie reagował na wypowiadane komendy. Demostenes rozpoznaje tylko mój głos. Można w nim zaprogramować około 200 słów, czyli można zaprogramować głos innych osób na które będzie on reagował.

  • #10 19 Kwi 2017 12:29
    Christophorus
    Poziom 39  

    Żadne cuda tylko trochę współczesnej elektroniki w postaci gotowego modułu. Od strony konstrukcyjnej korzystając z gotowego modułu jest to prosta konstrukcja. Sterowanie głosem tego rodzaju ramieniem nie jest wygodne z uwagi na bezwładność mechaniczną i hałas mechanizmów. Wygląda jednak efektownie.

    Myślałem o poważniejszym zastosowaniu modułu MIKROE-1534, jak np. głosowy zamek do drzwi. Podchodzisz do drzwi wypowiadasz hasło typu "sezamie otwórz się" i drzwi do domu lub mieszkania się otwierają. Jednak w przypadku chrypki mógłby być problem z dostaniem się do domu.

    Podobnie mogło by być w przypadku samochodu, gdybyśmy chcieli głosem sterować np. oświetleniem czy kierunkowskazami samochodu. Może istnieją lepsze bardziej odporne na zakłócenia systemy rozpoznawania mowy niż ten z którego korzystałem.

 
Promocja -20%
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME
tme