- Компьютер/ПК с Windows 10/11
- Arduino Mega 2560
- Arduino Uno
pip install PyAudio
pip install SpeechRecognition
pip install numpy
pip install pyserial
pip install --upgrade google-cloud-speech
- Python 3.9+
- Arduino C
- Visual Studio Code
- Arduino IDE 1.8.x или 2.x.x
- Размеры доски - 463 х 545 мм.
- Размеры клетки - 43 х 43 мм.
- Диаметр основания фигуры - 31 мм.
- Вводится голосовая команда игроком (пример: A2 A4)
- На вход компьютер принимает голосовую команду
- Если команда корректна, то программа обрабатывает её. В противном случае отправляется команда на Arduino Mega 2560, которая отправляет сообщение о неверной команде на дисплей. Игроку предоставляется возможность ввода повторного ввода команды
- После обработки команда отправляется на Arduino Mega 2560, которая в свою очередь управляет моторами
- Если фигура съедена, то кран переставляет фигуру на отведённую позицию, а затем делает ход на указанную координату.
- После хода игрока, программа на компьютер обрабатывает ход искусственного интеллекта
- Обработанный ход искуственного интеллекта отправляется на Arduino Mega 2560, после чего Arduino передаёт сигнал для движения моторами.
- Если фигура съедена, то кран переставляет фигуру на отведённую позицию, а затем делает ход на указанную координату.
- Если игрок или исскусственный интеллект делают ход, завершающий игру, то Arduino запускает команду, которая возвращает все фигуры на исходные позиции.
-
Используя флешку, установите на неё код программы из папки "Python"
-
Установите на компьютер Arduino IDE(при установке потребуется установить драйвера, которые программа предложит сама установить их).
-
Установите все библиотеки, написанные выше.
-
Переходите к работе с Arduino.
- Откройте программу Arduino IDE.
- Откройте в программе код из папки "Arduino/Mega".
- Загрузите файл "maga.ino"
- Вставьте в программу код из папки "Arduino/Uno".
После выше указанных действий, выполните подключение платы Arduino к компьютеру через USB-кабель. После проверьте подключение плат между собой:
- Подключите Arduino Mega и Arduino Uno к компьютеру
- Зайдите в дисптчер устройств
- Выберете пункт
- После того, как Вы нашли порт, измените его в файле "main.py", который находится в папке "PC":
- Где есть комментарий "Uno" - вместо надписи "COM" введите имя порта, к которому подключена Arduino Uno (например, "COM12")
- В остальных местах - имя порта, к которому подключена Arduino Mega
- Чтобы программа распознавала речь, нужно использовать библиотеки PyAudio и SpeechRecognition. SpeechRecognition работает через библиотеку PyAudio, поэтому их обе необходимо скачать.
- Сперва нужно определить ID микрофона, который используется для ввода голоса. Чтобы определить ID, нужно написать следующий код
import speech_recognition as s_r
for i in range(len(s_r.Microphone.list_microphone_names())):
print(i, '-', s_r.Microphone.list_microphone_names()[i])
- Чтобы добавить библиотеку Speech_Recognition в программу, напишите следующую строку
import speech_recognition as s_r
- ID, который мы получили из программы выше, нужно ввести после 'device_index=' без пробелов в функцию, которая отвечает за распознавание речи
def speech():
r = s_r.Recognizer()
with sr.Microphone(device_index=1) as sourse:
- Чтобы начать распознавание речи, вводим строки. Переменная audio активирует и запоминает фразу, которую говорит пользователь. Время на ввод фразы в данном случае составляет 5 секунд. Если фраза так и не была сказана, то через 7 секунд ввод с голоса прекратится. Переменная qwery содержит в себе строку с фразой, которую вы сказали раньше. Модуль Google-Cloud-Speech используется для наиболее точного распознавания речи. Данный модуль требует обязательного подключения к сети Wi-Fi
audio=r.listen(sourse, phrase_time_limit=5, timeout=7)
qwery=r.recognize_google(audio, language='ru-RU')
- Так как вся речь содержится в функции, то нужно из не возвращать нашу строку с фразой
return qwery
- Наша получаенная строка состоит из русских букв, однако программа обрабатывает команды с латинскими буквами. Для этого в коде есть функция trans(), которая фильтрует полученную строку в латинские буквы и арабские цифры с помощью словаря. Функция возвращает переменную new_mess, содержащую в себе новую команду, которая будет обработана программой и отправлена на Arduino Mega 2560
slovar = {'А':'A', 'A':'A', 'B':'B', 'C':'C', 'С':'C', 'Д':'D', 'D':'D', 'Е':'E', 'E':'E', 'G':'G', 'Ф':'F','F':'F', 'Г':'G', 'Х':'H','H':'H', '1':'1', '2':'2', '3':'3', '4':'4', ' ':' ', '5':'5', '6':'6', '7':'7', '8':'8', 'ОДИН':'1', 'ДВА':'2', 'ТРИ':'3', 'ЧЕТЫРЕ':'4', 'ПЯТЬ':'5', 'ШЕСТЬ':'6', 'СЕМЬ':'7', 'ВОСЕМЬ':'8'}