Продолжение:
Небольшое видео о том как работает программа по управлению роботом:
На видео видно как робот управляется.
А вот сама программа (с исходниками):
Для работы программы необходимо установить Microsoft .NET Framework 3.5.
Скачать (установить) его можно с сайта микрософта:
Файл для запуска находится внутри архива WindowsFormApplication1.rar -> WindowsFormsApplication1 -> bin -> Release -> Robot.exe
Для редактирования исходников нужно будет распаковать содержимое архива AForge.NET.rar в папку \Мои документы\Visual Studio 2008\Projects\AForge.NET (именно в эту папку а не дальше). AForge.NET нужна для работы WEB-камеры.
Программа составлена в Visual Studio 2008.
Мордочка программы:
Программа настроена на работу по COM4. Для выбора другого порта нужно редактировать внутри исходника (пока). Кнопка "Send" - передача данных на com-порт. Ответ с порта приходит в окошко справа. Кнопка "Сказать" - произнести то что написано в окошке "Здравствуй мир". Кнопка "Читать" - прочитает текстовый файл read.txt (находится в папке с файлом запуска). Другие форматы текстовых файлов программа читать не будет. Для чтения нужно установить программу "Acapela-Elan-TTS-SpeechCube-5.1-RUS-Nicolai_MmE255_.msi" и выбрать в Панели Управления->Речь-> Преобразование текста в речь, голосовой движек: ELAN TTS Russian (Nicolai 16Khz).
Выгрузить архив, распаковать, потом запустить инсталлятор. Данная программа, в свое время (не уверен что так есть и сейчас) предоставлялась бесплатно.
После запуска файла на чтение, кнопка поменяет свой цвет (на красный). Если во время чтения нажать ее, то она окрасится в зеленый, дочитает абзац до конца и встанет на паузу. После еще одного нажатия - продолжит чтение со следующего абзаца.
Устойчивость программы к размеру текстового файла пока не проверял. Для повторного запуска файла на чтение, придется перезапускать (пока) программу.
Далее по программе: В нижней части находятся кнопки управления WEB-камерами. Если в системе их несколько, можно выбрать нужную в выпадающем списке. Кнопка "Start Cam"- запускает воспроизведение фидео с камеры, "Stop Cam" - останавливает, кнопка "SnapShot" - записывает текущий кадр в BMP формате в корень диска C:\ под именем "myimageXXX.bmp".
Поля "Команда", "Угол", "Шаг", "Скор." - для выполнения (и программирования) команд роботом. Кнопка "Send" - передает команду к исполнению немедленно, кнопка "Внести" - сбрасывает команду с параметрами в список команд. Список команд можно запустить к исполнению кнопкой "Старт". Черное поле вверху списка будет менять цвет на зеленый и красный. Красный цвет - команда принята к исполнению, но находится в обработке. Бывает что в красном режиме зависает.
Кнопки "Forward", "Left", "Right", "Back" - управление перемещением роботом в реальном времени (джойстик), жмем - едем, отпустили - стоим.
Новая версия программы:
Для демонстрационного ролика выложенная выше программа не очень удобна. Я внес некоторые изменения и теперь пользоваться программой немного (относительно) удобнее. То есть - пропали старые неудобства, но зато появились новые. Поверьте, очень тяжело придумать "удобный" интерфейс, а еще тяжелее - придумав, его реализовать. Теперь поподробнее на новой версии остановимся.
Мордочка программы:
В левой верхней и центральной части расположены органы управления WEB-камерами. Этот узел функционально остался прежним. В верхней части, управление "мгновенным" синтезом голоса. Написав текст в окне и нажав кнопку "сказать", программа немедленно выполнит синтез. В правой верхней части, управление открытия/закрытия COM-порта, сохранения "Программы управления роботом" в файл, кнопка открытия такого файла, кнопка "старт" - выполнения программы роботом, рядом галочка "Check" - выполнение составленной программы от конца к началу (выполняются только команды тяговых двигателей перемещения робота, это что-то "программа возврата").
В правой/центральной части, формирование команд роботу.
В нижней части, добавлен индикатор аккумулятора (нет-бука). И в процентах и визуально.
В нижней/левой части, формирование голосовых сообщений в программе по управлению. Поясню немного. В папке с программой расположен файл "read.txt", в нем записано все, что может говорить робот. При запуске основной программы, высчитывается - сколько абзацев содержит текстовый файл (отражается в "Всего блоков"). Тот абзац, который робот должен сказать в процессе выполнения, обозначается в позиции "Блок старта", а до какого абзаца читать - "Блок останова". Кнопкой "Внести команду" - команда отправляется в список выполняемых команд. К минусам можно отнести то, что номер читаемого блока придется выискивать самому, открыв текстовый редактор и считая абзацы вручную.
В Самой нижней левой части - "Check" дальномера. Пока в демонстрационном режиме. Не знаю я пока - как мерить и как эти измерения использовать.
Ссылки на программу:
Библиотеку AForge вставить в: Мои документы\Visual Studio 2008\Projects\AForge.NET\
Если в другое место, то в компиляторе надо будет указывать путь к файлам библиотеки. Кстати, AForge - свободный код для экспериментаторов. Если будет интересно, загляните на ихний сайт: http://aforgenet.com/ там интересные вещи попадаются. Ну если только английский не составляет непреодолимой преграды.