Вітаю вас, дорогі друзі. Нарешті я добрався до запису уроку по роботі з голосовим модулем. Бачу вам сподобалася моя саморобка з голосовим управлінням і багато хто вже почав цікавитися, коли ж вийде практичний урок по роботі з модулем голосового управління.
Про плюси даного модуля розпізнавання:
- Модуль автономний і може працювати без зовнішнього керуючого контролера, що дуже важливо для радіоаматорів не знайомих з програмуванням.
- На ряду з іншими моделями даний модуль вигідно відрізняється функціональністю, ціною і відносною простотою в управлінні і підключенні.
- Має високу розпізнавати здатність.
Почнемо ж ми все одно з теоретичних знань, щоб розуміти, як же все-таки працює це чудо інженерної думки. Насамперед вам потрібно знати деякі характеристики даного модуля розпізнавання голосу:
Струм: не більше 40 мА, струм не критичний, так що просто врахуйте. Напруга живлення - 5 В, ми будемо живити модуль USB порту комп'ютера при програмуванні, а далі при роботі ви самі вирішите від чого живити. Точність розпізнавання голосових команд - 99% при ідеальних умовах. Модуль розпізнавання голосу версії V3.1 здатний запам'ятати 80 голосових команд! Що на мій погляд цілком достатньо для будь-яких цілей. Але знову ж таки це «АЛЕ». Але модуль в одиницю часу може розпізнавати тільки сім будь-яких команд, а будь покров команд - вибирати вам.
Тобто, ви можете записати в базу всі 80 команд, але для розпізнавання вибрати тільки сім, будь-яких сім з вісімдесяти. Це як з комп'ютером: на жорсткі диск можна записати 80 команд, а в оперативній пам'яті працювати тільки з 7-ю командами. Якщо вам важко це зараз зрозуміти, то трохи пізніше на практиці, я думаю, вам стане ясно про що йде мова. Довжина голосової команди - 1,5 секунди (1500мс) максимальне значення. Управляти платою модуля можна по інтерфейсу UART, а от знімати інформацію можна як UART, так з портів GPIO, розташованих на платі. Власне кажучи, чим ми і займемося: будемо знімати сигнал з виходу порту.
Переходимо до практичної частини.
Що ж нам знадобитися для роботи?
- Сам модуль розпізнавання голосу версії V3 (V3.1) Версія не так важлива - принцип роботи у всіх однаковий. Модуль йде з мікрофоном.
- Керівництво по модулю, тобто дата шитий.
- Перетворювач інтерфейсів USB-UART.
От і все. Як говорив Гагарін - «Поїхали».
Викачуємо керівництво і термінал. Термінал встановлюємо. Підключаємо модуль до перетворювача інтерфейсу.
Будьте дуже уважні при підключенні. Не страшно, якщо ви переплутаєте TXD і RXD, нічого страшного не станеться. А ось якщо ви переплутаєте плюс харчування з загальним проводом - це буде катастрофа! Як сталося у мене - відразу згорів модуль і порт комп'ютера! Будьте дуже уважні і не повторюйте моїх помилок. Чи не метушіться, не поспішайте, перевірте ланцюг кілька разів перед включенням, і тільки після цього підключайте до USB.
Після підключення до USB ваша система почне пошук драйверів до перетворювача, в 90% випадків система сама знаходить драйвер і встановлює його, але якщо цього з якихось причин не відбулося, то вам буден потрібно самим знайти драйвер в мережі і встановити його. Для цього в пошуковому рядку напишіть «CP2102 драйвер скачати» або типу того, модуль поширений, варіантів драйверів повно.
Далі, після успішної установки обладнання йдемо в диспетчер пристроїв і дивимося порти. Нас цікавить присвоєний номер нашого перетворювача. Коли дізналися номер порту запускаємо термінал. Йдемо в налаштування і встановлюємо значення як у мене на малюнку.
Пишемо в вікні терміналу команду - «AA 02 00 0A» (з даташіта | AA | 02 | 00 | 0A |). У всіх командах завжди букви заголовні і латинські.
Поле відправки вам має надійти відповідь, типу: «AA 08 00 STA BR IOM IOPW AL GRP 0A» (або з даташіта | AA | 08 | 00 | STA | BR | IOM | IOPW | AL | GRP | 0A |). Якщо відповідь прийшла, то все відмінно, пів справи зроблено. Якщо немає, граємося з настройками настройками швидкості передачі в терміналі, просто можливо модуль налаштований на іншу швидкість.
Я не буду зупинятися на тому що означає даний відповідь модуля, це ви самі зможете подивитися в інструкції. А команда - це запит встановлених налаштувань.
Тепер необхідно підключити навантаження до модуля. У ролі навантаження я буду використовувати світлодіоди з резисторами. Ну надалі, при експлуатації ці світлодіоди будуть замінені на реле управління навантаженням з транзисторними ключами, думаю це зрозуміло.
Поясню саму команду «AA 02 00 0A» - це пакет складається з 4 байт, байти - це попарні символи в шістнадцятковій системі - AA, 02,00,0A. У всіх командах пакет буде починатися байтом AA і закінчуватися байтом 0A (Нуль і A) - це обов'язкова умова. Відповіді модуля будуть так само починатися і закінчуватися цими символами.
«AA 02 00 0A» - другий байт цієї команди означає кількість байт між байтами початку і кінця, коротше крім AA і 0A. А все що між ними вважаємо і пишемо в другій байт. Як бачимо в цьому прикладі, що між AA і 0A стоять два байта - 02 00. отже - 02, тобто число вважає саме себе. Ще приклад, «AA 03 20 01 0A» тобто між AA і 0A стоять три байта - «03 20 01», отже, другий байт - 03. Думаю, Вам буде зрозуміло.
Команда «12» - настройка портів модуля.
На платі модуля розташовані порти, з яких ми будемо знімати сигнал, перш ніж це робити, необхідно налаштувати ці порти. Налаштувати порти можна це командою
«AA 03 12 01 0A» - третій байт - це команда, а четвертий значення команди. Четвертий байт може приймати наступні значення і задавати такі опції: якщо «00» - режим імпульсу, тобто при розпізнаванні голосової команди, на потрібний нам порт подається короткий імпульс. Якщо «01» - режим інверсії, тобто при розпізнаванні голосової команди, на потрібний нам порт змінить стан на протилежне, якщо був 0 - стане 1 і навпаки. Якщо «02» - режим при якому порт переходить в нуль. Якщо «03» - режим при якому порт переходить в одиницю.
Команда «20» - настройка портів модуля.
«AA 03 20 01 0A» - третій байт - це номер команди, яку ми будемо записувати. Приклад запису двох команд 1 і 2: «AA 04 20 01 02 0A». Приклад запису двох команд 1, 2, 3: «AA 05 20 01 02 03 0A».
Команда «30» - завантаження записи в «распознаватель» модуля.
«AA 03 30 01 0A» - третій байт команда завантаження в пам'ять распознавателя записи 01. Якщо потрібно записати дві команди - «AA 04 30 01 02 0A». якщо потрібно записати всі сім команд - «AA 09 30 01 02 03 04 05 06 07 0A».
Команда «15» - Автозавантаження голосових команд в распознаватель при включенні харчування - автономний режим роботи без зовнішнього контролера.
«AA 03 15 07 01 02 03 0A» - третій байт команда, четвертий байт мітка команд, тобто своєрідний ідентифікатор, і дорівнює 01 для завантаження однієї команди, 03 - для завантаження двох команд, 07 - для завантаження трьох команд і так далі, дивіться в даташит таблицю. Ну а далі йдуть номера команд, які потрібно завантажувати.
Ось і все: перевірили зв'язок з модулем, сконфигурировали порти, записали команди, налаштували автозавантаження голосових команд.
Посилання для покупки: