Skip to content

EvgeniyNorin/VoiceControlCarModel

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 

Repository files navigation

Модель автомобиля на голосовом управлении с датчиком расстояния HC-SR04

Набор используемого оборудования:

  • Raspberry Pi B+ (желательно, с Raspbian OS)
  • радиоуправляемая модель автомобиля
  • датчик расстояния HC-SR04
  • наличие ПК с микрофоном
  • Power Bank 5V.

Принцип работы:

Устанавливается ssh между ПК и Raspberry, запускается соответственно client и server, пользователь произносит нужную команду (отмечая начало и конец записи), после чего, в зависимости от результатов распознавания речи и адекватности команды автомобиль начинает движение. В определенные промежутки времени с заданной в коде периодичностью на стороне клиента происходит опрос датчика HC-SR04, и в случае, если расстояние до препятствия меньше, чем заданная величина, происходит снятие напряжения с определенных RPIO, вследствие чего происходит остановка движения.

Некоторые аспекты:

  1. Стоит учитывать инертность вашего устройства. В нашем случае, соотношение масс оборудования и автомобиля было примерно равным, из за чего тормозной путь получался относительно продолжительным.
  2. Датчик HC-SR04. Учитывая физическую природу звука, стоит учитывать, что звуковая волна имеет свойство отражения, а соответственно, при приближении автомобиля к наклонным препятствиям, датчик, ввиду вышеперечисленного, может показывать неожиданные значения.
  3. Качество распознавания речи. В нашем проекте использовался Yandex Speech Kit. Иногда приходится сталкиваться с неточностью распознания (обычно такое происходит ввиду нечеткого произношения). Следует учитывать, что на отправку - распознавание - прием уходит некоторое время, поэтому реакция не мгновенная

Об используемых инструментах Python 2.7: В нашем проекте задействовались такие модули, как:

  • ast - для преобразования строки в tuple
  • datetime - таймер (например, для вызова опроса HC-SR04 через определенные промежутки времени)
  • RPIO - для подачи / снятия напряжение на RPIO Raspberry
  • signal - модуль для работы таймера
  • socket - клиент - серверное взаимодействие
  • xml.etree.ElementTree - для парсинга XML документа, приходящего с Yandex сервера
  • requests - для запросов POST
  • random - для генерации произвольных чисел, на основе которых формируются строки(для отправки на сервер Yandex)
  • pyaudio, wave, os - для записи, сохранения, добавления, удаления записанных звуковых элементов

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages