komunikaty głosowe urządzeń

Dyskusje o programowaniu mikroprocesorów.
Awatar użytkownika

Autor tematu
pitsa
Moderator
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 5
Posty: 4690
Rejestracja: 13 wrz 2008, 22:40
Lokalizacja: PL,OP

komunikaty głosowe urządzeń

#1

Post napisał: pitsa » 26 gru 2019, 23:38

W nawiązaniu do tego postu dobry-film-t103396-10.html#p709245
i gwizdania na czołg w 2:11



pomyślałem, że może warto wspomnieć na forum o funkcjonalnościach głosowych maszyn i urządzeń. ;-)

Zacznę od historii. Własnej. :-)

Mam urządzenia sterowane z "arduino". Jest wyświetlacz, przyciski do ustawień i jeden główny przycisk start.
Naciska się start i robota sama się robi. Takie coś profesjonaliści robią na PLC. Mi wystarczył komplet
modułu arduino, dodatkowa atmega i PCF8574 aby mieć wystarczającą liczbę wyjść. Od lat dział i jest ok.
Aby odróżnić, które urządzenie skończyło pracę jedno wyjście (poprzez SSR) uruchamia dzwonek.
Każdej urządzenie ma inną melodyjkę eksperymentalnie skomponowaną kombinacją włącz, delay(), wyłącz, delay(). Słyszę i wiem co się dzieje. Wiem dzięki temu, kiedy oderwać się od tego co w danym momencie robię.

Do kolejnych urządzeń chciałbym mieć:
* spisywanie historii zdarzeń na nośniku albo wysyłaną na serwer.
* ciekawszy wyświetlacz niż 8 cyfr LCD i wygodniejsze menu.
* zamiast dzwonka komunikaty głosowe.

Co jakiś czas kupuję sobie nową zabawkę i eksperymentując uczę się.

Przykładowo, dla zabawy zrobiłem sobie przenośny czujnik pyłu rysujący wykres na wyświetlaczu OLED.
Pomierzyłem sobie tym gdzie jaka jest emisja zanieczyszczeń powietrza.
Mało dokładnie, ale widać było skuteczność działania wentylacji.
Mam głosowy zegarek na rpi i monitoring na bazie programu motion i kamerki NoIR.
Zrobiłem zdalny monitoring temperatur na esp8266 i rysowanie z tego wykresów za pomocą gnuplot.
Testowałem rejestrację temperatur na karcie SD, odtwarzanie plików mp3 za pomocą modułu z układem YX5300.
Po prostu nie nudzę się i rozpracowuję różne tematy. To są takie klocki lego różnych umiejętności. ;-)

Natrafiłem niedawno na kolejną zabawkę.
Jest to układ WT588D-U. Zdziwiłem się, że takie coś istnieje. Znam ISD1820 - (10 sekundowa nagrywarka z odtwarzaniem) ale nie znałem czegoś tak potężnego co mogłoby gadać i nie być komputerem jak raspberry pi.

Na aliexpress nazywa się to "Głos WT588D-U WT588D-U-32M moduł głosowy 5V Mini USB interfejs moduł dźwiękowy 32M DC2.8V ~ 5.5V najnowszy"
https://pl.aliexpress.com/item/32994759643.html

Z opisu można się uśmiać, bo to coś ma:

Wbudowany ludzki głos procesor, czuć się bardzo naturalne i słodkie.

Proszę kliknąć na przycisk „ tryb sterowania jest elastyczny, aby spust i za darmo,
aby ustawić dowolny przycisk, aby ponownie spust. Tam są 15 sposobów wyzwalania.
W tym wyzwalania impulsu powtarzania, spust plus bez powtórzeń, unieważnienie klucze,
nie cyklu, z recyklingu, nie utrzymany cyklu, nie cyklu w ciągu ostatnich,
nie cyklu dla następnego, cykl ostatni, cykl dla następnego, głośność +, głośność,
odtwarzanie/pauza, zatrzymanie, Odtwarzania/zatrzymania, itp.

Jeden przewód sterowania szeregowego tryb i trzy-szeregowego tryb sterowania,
nie tylko może kontrolować głos zagraj, zatrzymać odtwarzanie w pętli
i objętości rozmiar przez MCU, ale również może bezpośrednie wyzwalanie
żadnego głosu w bit adresu od 0 do 219.

Szeroki zakres zastosowań. Prawie, które jest związane z wszystkimi głos najważniejszych
zabytków, takich jak urządzenia do zatrzymywania, sygnalizatorów automatycznego lądowania,,
przypomnienie, budzik, maszyna do uczenia, inteligentnych urządzeń domowych,
sprzęt terapeutyczny, zabawki elektroniczne, telekomunikacji,
radar cofania oraz wiele automatycznego sterowania urządzeń,
etc. technologia spotyka się z się do wymagań przemysłu aplikacji.



Wszystko jasne, no nie? To coś ma wszystko co potrzeba żeby moje nowe urządzenia same gadały. ;-)

Jak to działa? Z instrukcji https://www.elechouse.com/elechouse/ima ... Module.pdf
wynika, że poziom trudności obsługi tej zabawki jest podobny jak w przypadku modułu mp3: http://www.jarzebski.pl/arduino/kompone ... x5300.html
Jak to zwykle bywa z zabawkami pod arduino, są gotowe przykłady:

https://www.instructables.com/id/WT588D ... nd-player/

i filmiki



Pamiętam, że kiedyś w Młodym Techniku, był na warsztacie projekt z głosowym sterowaniem silnikiem.
Polegało to na tym, że wymawiając na przykład słowa "lewo", "prawo", "stop"
przez chwilę rozbrzmiewa fonem o określonej częstotliwości.
Skomplikowany układ analogowy dostrojony na charakterystyczne w wybranych słowach częstotliwości
miał możliwość ich wykrycia i zareagowania.
Fajna sprawa, ale wydaje się to ryzykownym udogodnieniem gdyby do tokarki
dodać komunikat włączenia silnika... a co się stanie jak kichniesz?
Sterowanie głosem próbowałem kiedyś na komputerze "486 100MHz" z win3.11. Miałem program, którym dało się przełączać okna i włączać
zdefiniowane w nim programy. Mniej więcej to tak jakby sterować windowsem za pomocą klawiatury.
Mogło służyć jako "popisówka" jaki to ze mnie sprytny informatyk-samouk. ;-)

Sterowaniem głosowym może być niebezpieczne, ale komunikaty głosowe bardzo lubię.
Na przykład rano rpi mówi mi, jaki jest dzień i co kwadrans godzinę. Komputer w pracy tak samo (program IVONA).

Jak ten moduł WT588D-U z daleka przyjdzie to się pobawię. ;-)

Spotkałeś się z gadającymi maszynami? :-)


zachowanie spokoju oznacza zdolności do działania
ᐃ 🜂 ⃤ ꕔ △ 𐊅 ∆ ▵ ߡ

Awatar użytkownika

Autor tematu
pitsa
Moderator
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 5
Posty: 4690
Rejestracja: 13 wrz 2008, 22:40
Lokalizacja: PL,OP

Re: komunikaty głosowe urządzeń

#2

Post napisał: pitsa » 24 wrz 2020, 21:45

Muszę dołożyć do urządzenia kolejny bajer i utknąłem na drobiazgu elektronicznym.

Mam expander pcf8574, który daje mi 8 dodatkowych wyjść. Nie używam tych wszystkich wyjść jednocześnie i do włączenie "zwykłego" SSR-25DA wystarcza bezpośrednie podpięcie przez R330 (do "-" a 5V do "+"). Ściągnięcie do "zera" załącza przekaźnik (tak jest zalecane w dokumentacji - rys. 20: Device Supplied by a Lower Voltage, bo w ten sposób jest wyższa wydajność prądowa).
Mam jednak problem w tym, że nie mogę dojść jak prawidłowo powinno być elektronicznie obsłużone wejście do pcf8574, czy trzeba tam dać rezystory podciągające i jak.

W dokumentacji, rozdział 9.2, na rys 18 jest przykład podłączenia: https://www.ti.com/lit/ds/symlink/pcf8574.pdf
Pin traktowany jako wejściowy "podciągnięty" jest do VCC przez rezystor 100k, przy czym włącznik też jest podpięty przez jakiś rezystor do VCC.
Na kolejnym rysunku jest przykład z zasilaniem diody i dodatkowo przyłączonym rezystorem 100k do VCC.

Tyle tytułem wstępu. ;-)

Gdzie jest problem?
Na wejście do expandera pcf8574 podaję sygnał z wyjścia z arduino pro mini przez rezystor 1k. Działa.
Zrobiłem próbę z podciągnięciem tej linii od strony pcf do masy przez 4,7k. Działa.
Zrobiłem podłączenie od strony pcf przez 100k (tak jak w dokumentacji) do VCC. Też działa.
Wydaje mi się, że 1k na linii + te 100k do VCC jest właściwe.
Znów tam siedzi jakaś impedancja?
Jak elektrycznie wejścia tych ekspanderów mają być podłączone?
zachowanie spokoju oznacza zdolności do działania
ᐃ 🜂 ⃤ ꕔ △ 𐊅 ∆ ▵ ߡ

Awatar użytkownika

tuxcnc
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 1
Posty: 7858
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

Re: komunikaty głosowe urządzeń

#3

Post napisał: tuxcnc » 25 wrz 2020, 10:15

pitsa pisze:
24 wrz 2020, 21:45
Gdzie jest problem?
I2C to interfejs komunikacji DWUKIERUNKOWEJ po JEDNEJ linii.
Sprowadza się to do tego, że dowolne urządzenie może wymusić stan niski na linii, zwierając linię do masy, ale ŻADNEMU urządzeniu NIE WOLNO wymusić stanu wysokiego.
Elektrycznie najlepszym rozwiązaniem jest gdy wszystkie nadajniki są typu otwartego kolektora, a linia jest podciągnięta do +5V JEDNYM opornikiem, bo wtedy prąd NIE ZALEŻY od ilości urządzeń podpiętych do linii.
Przy jednym PCF8574 podpiętym do jednego Arduino powyższe nie ma znaczenia, byleby wejście Arduino było ustawione na pullup.

Awatar użytkownika

Autor tematu
pitsa
Moderator
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 5
Posty: 4690
Rejestracja: 13 wrz 2008, 22:40
Lokalizacja: PL,OP

Re: komunikaty głosowe urządzeń

#4

Post napisał: pitsa » 26 wrz 2020, 08:16

Od strony linii I2C jest po jednym 4,7k. Długości przyłączeń centymetrowe więc od tej strony nie ma problemu. Zastanawiam się tylko nad tym dwukierunkowy wejściem do expandera PCF8574. Nie chcę później mieć żadnych poprawek np. z powodu zakłóceń, więc robię różne próby.

"Komunikacja" jest jednokierunkowa pin cyfrowy Arduino - - > pin wejściowy expandera po 1,5m przewodach (aby dało się wyłapać czy jest wpływ zakłóceń, docelowo zostanie skrócone do kilku centymetrów).

Zmniejszyłem 1k na linii do R270 (+100k do VCC). Pomierzyłem napięcia i prądy gdy Arduino trzyma stale na wyjściu stan wysoki - gdzieś tam sobie płynie wtedy kilkanaście uA. W chwili podania stanu niskiego przez 1s płynie nieco ponad 1mA.

Problem mam tylko ze zrozumieniem czy to co zrobiłem jest elektrycznie prawidłowe w stosunku do tego co siedzi w expanderze:



W przykładach expandery są używane do obsługi macierzy klawiszy. Do raspberry mam taką nakładkę Pionier600 z joystikiem i tam klawisze zwierają wejścia PCF8574 do masy lub "wiszą luzem". U mnie jest albo 0 albo 5V.
zachowanie spokoju oznacza zdolności do działania
ᐃ 🜂 ⃤ ꕔ △ 𐊅 ∆ ▵ ߡ

Awatar użytkownika

Autor tematu
pitsa
Moderator
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 5
Posty: 4690
Rejestracja: 13 wrz 2008, 22:40
Lokalizacja: PL,OP

Re: komunikaty głosowe urządzeń

#5

Post napisał: pitsa » 10 cze 2021, 19:54

Tyle kombinowałem z modułami mp3 czy tym WT... a przecież są o wiele prostsze rozwiązania. Ktoś już to zrobił, wystarczy znaleźć i zaadoptować do swoich potrzeb. Chciałem na szybko dołożyć do prostego urządzenia jakiś wskaźnik, sygnał co się w nim dzieje. Dioda już jest, mruga odpowiednio i widać, że urządzenie żyje. Pomyślałem, że może brzęczyk piezo wystarczy. Dźwięk musi być indywidualny dla urządzenia. Poszukałem i znalazłem:
https://github.com/robsoncouto/arduino-songs
na przykład:
https://github.com/robsoncouto/arduino- ... keonme.ino
do sygnału, że już urządzenie jest "ready" do pracy. Raz dziennie może być. Do tego jakiś fragmencik tam gdzie potrzebuję i kolejne urządzonko gra.

Tu poszło szybko i łatwo. Ale czasem trafia się w brak przykładu czy podobnego rozwiązania, żeby z niego skorzystać.

Programuję sobie teraz inne większe urządzenie w którym siedzi esp. Z kablowego programowania przeszedłem na OTA. Najprostsze co znalazłem to gotowa biblioteka ElegantOTA . Na starcie urządzenie wyświetla mi na swoim LCD adres IP gdy tylko połączy się z moją siecią na warsztacie. W miejscu docelowym sieci nie ma. Planowałem, że jak coś trzeba będzie w przyszłości zmienić podejdę tylko z Mobile WiFi, urządzenie połączy mi się do tej sieci i z komórki wyślę plik bin. Wygodny plan, ale trzeba to teraz zrobić. Po pierwsze, żeby urządzenie działało bez wifi i żeby po włączeniu szukało sieci nie dłużej niż 1 minutę...

https://randomnerdtutorials.com/esp32-o ... r-arduino/

https://githubmemory.com/repo/ayushshar ... /issues/44 - nie używać ElegantOTA.setID
zachowanie spokoju oznacza zdolności do działania
ᐃ 🜂 ⃤ ꕔ △ 𐊅 ∆ ▵ ߡ

Awatar użytkownika

Autor tematu
pitsa
Moderator
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 5
Posty: 4690
Rejestracja: 13 wrz 2008, 22:40
Lokalizacja: PL,OP

Re: komunikaty głosowe urządzeń

#6

Post napisał: pitsa » 23 maja 2023, 09:48

Szukam rozwiązania na wygodny i uniwersalny powiadamiacz. Czasem wiem co ile trwa. Ustawiam w przypomnienie w telefonie i telefon po upływie zadanego czasu ponagli mnie do zajrzenia. Nie jest to wygodne rozwiązanie jeśli mam parę maszyn w różnych miejscach, a każda ma inny czas pracy. Nie tylko w pracy to by się przydało. Powiadomienie gdy ktoś podjedzie pod dom, kurier stanie przed furtką... Przy sobie mogę mieć stale komórkę, ale aplikacji na telefon jeszcze nigdy nie programowałem.. więc nie wiem jeszcze jak to zrobić.
Są ciekawe rozwiązania, jak np. usługa IFFF (if this, then that).
zachowanie spokoju oznacza zdolności do działania
ᐃ 🜂 ⃤ ꕔ △ 𐊅 ∆ ▵ ߡ

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „Arduino, Raspberry pi i inne systemy mikroprocesorowe”