на печать лифт (Автоматизация и модернизация электропривода главного фонтана на площади им. Ленина г. Хабаровска), страница 8
Описание файла
Файл "на печать лифт" внутри архива находится в папке "Автоматизация и модернизация электропривода главного фонтана на площади им. Ленина г. Хабаровска". Документ из архива "Автоматизация и модернизация электропривода главного фонтана на площади им. Ленина г. Хабаровска", который расположен в категории "". Всё это находится в предмете "дипломы и вкр" из 8 семестр, которые можно найти в файловом архиве ДВГУПС. Не смотря на прямую связь этого архива с ДВГУПС, его также можно найти и в других разделах. .
Онлайн просмотр документа "на печать лифт"
Текст 8 страницы из документа "на печать лифт"
Рисунок 4.10 – Прототип системы управления.
ЗАКЛЮЧЕНИЕ
В ходе дипломного проекта было решено большое количество сложных технических задач. Для разработки системы управления пассажирским лифтом с голосовым интерфейсом были выполнены следующие действия:
1. Исследованы существующие схемы управления лифтами;
2. Оценена целесообразность модификации существующих систем управления;
3. Выполнен подбор комплектующих для решения поставленной технической задачи;
4. Разработан алгоритм работы системы управления с голосовым интерфейсом;
5. Исследованы технологии распознавания голоса;
6. Изучена технология обучения модуля распознавания устной речи голосовым командам;
7. Разработано комплексное программное обеспечение для системы управления с голосовым интерфейсом.
В данной работе была спроектирована автоматизированная система управления с голосовым интерфейсом, на основе голосового модуля FZ0475 и микропроцессорной платформы Arduino. Разработана компьютерная система голосового управления и контроля за бортовыми функциями пассажирского лифта. Данная система может быть интегрирована в уже функционирующие подъемники и при этом обеспечивать, как повышенный комфорт и удобство во время пользования, так и безопасность работы оборудования. Также в системе применяется графический интуитивно понятный интерфейс пользователя, выполненный в виде анимированного ассистента со звуковым сопровождением.
Предлагаемое техническое решение может быть использовано любыми группами населения: инвалидами, пожилыми людьми, детьми и т. д. разработанный прототип выполнен с минимальной стоимостью. Система распознавания голоса не требует подключения к интернету и может быть связана с любыми типами промышленных логических контроллеров. Система является очень гибкой для проведения различных мероприятий по модификации и масштабированию.
В перспективе данная система может быть усовершенствована путем добавления элементов распознавания речи и использованием параллельной обработки задач и запросов (реализация многозадачности). В систему могут быть добавлены элементы искусственного интеллекта, применение человеко-машинных диалоговых систем позволит человеку разговаривать с машиной, создавать и получать информацию, что повысит качественный уровень взаимодействия человека-пользователя и машины (технической системы).
СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ
-
Электропривод и автоматика пассажирскими лифтами с автоматическими дверями г/п до 1000 кг с устройством управления серии УЭЛ/ Руководство по эксплуатации.
-
Пособие для электромехаников по обслуживанию лифтов с электронными станциями управления типа УЛ, УЭЛ г. Минск 2014 год.
-
Федосов В. П., Нестеренко А. К. Цифровая обработка сигналов в LabVIEW: учеб.пособие / под ред. В. П. Федосова. – М.: ДМК Пресс, 2007. – 456 с.
-
КиберЛенинка [Электронный ресурс]: https://cyberleninka.ru/article/n/avtomatizirovannaya-kompyuternaya-sistema-golosovogo-upravleniya-avtomobilem
-
Elechouse Voice Recognition Module v3.1: модуль распознавания голоса [Электронный ресурс]: http://www.elechouse.com/elechouse/images/product/VR3/VR3_manual.pdf
-
Электропривод и автоматика пассажирскими лифтами с автоматическими дверями г/п до 5000 кг с устройством управления серии УЭЛ/ Руководство по эксплуатации.
-
Википедия – свободная энциклопедия [Электронный ресурс]. - http://wikipedia.org
ПРИЛОЖЕНИЕ А
Листинг программы
#include<SoftwareSerial.h>
#include "VoiceRecognitionV3.h"
#include <Stepper.h>
/**
Connection
ArduinoVoiceRecognitionModule
2 -------> TX
3 -------> RX
*/
VR myVR(2,3); // 2:RX 3:TX, you can choose your favourite pins.
uint8_t records[7]; // save record
uint8_tbuf[64];
int led = 12;
intledState = LOW;
intledStateA = LOW;
intstepsPerRevolution = 500;
Stepper myStepper(stepsPerRevolution, 8, 10, 9, 11);
Stepper myStepper1(stepsPerRevolution, 4, 6, 5, 7);
#definefirstRecord (0)
#definesecondRecord (1)
#definethirdRecord (2)
#definefourRecord (3)
#definefiveRecord (4)
#definestopRecord (5)
#definehelpRecord (6)
/**
@brief Print signature, if the character is invisible,
printhexible value instead.
@parambuf --> command length
len --> number of parameters
*/
voidprintSignature(uint8_t *buf, intlen)
{
int i;
for(i=0; i<len; i++){
if(buf[i]>0x19 &&buf[i]<0x7F){
Serial.write(buf[i]);
}
else{
Serial.print("[");
Serial.print(buf[i], HEX);
Serial.print("]");
}
}
}
/**
@brief Print signature, if the character is invisible,
printhexible value instead.
@parambuf --> VR module return value when voice is recognized.
buf[0] --> Group mode(FF: None Group, 0x8n: User, 0x0n:System
buf[1] --> number of record which is recognized.
buf[2] --> Recognizer index(position) value of the recognized record.
buf[3] --> Signature length
buf[4]~buf[n] --> Signature
*/
voidprintVR(uint8_t *buf)
{
Serial.println("VR Index\tGroup\tRecordNum\tSignature");
Serial.print(buf[2], DEC);
Serial.print("\t\t");
if(buf[0] == 0xFF){
Serial.print("NONE");
}
else if(buf[0]&0x80){
Serial.print("UG ");
Serial.print(buf[0]&(~0x80), DEC);
}
else{
Serial.print("SG ");
Serial.print(buf[0], DEC);
}
Serial.print("\t");
Serial.print(buf[1], DEC);
Serial.print("\t\t");
if(buf[3]>0){
printSignature(buf+4, buf[3]);
}
else{
Serial.print("NONE");
}
Serial.println("\r\n");
}
void setup()
{
myStepper.setSpeed(60);
myStepper1.setSpeed(60);
/** initialize */
myVR.begin(9600);
Serial.begin(115200);
Serial.println("Elechouse Voice Recognition V3 Module\r\nControl LED sample");
//pinMode(led, OUTPUT);
pinMode(12, OUTPUT);
pinMode(13, OUTPUT);
if(myVR.clear() == 0){
Serial.println("Recognizer cleared.");
}else{
Serial.println("Not find VoiceRecognitionModule.");
Serial.println("Please check connection and restart Arduino.");
while(1);
}
if(myVR.load((uint8_t)firstRecord) >= 0){
Serial.println("firstRecord loaded");
}
if(myVR.load((uint8_t)secondRecord) >= 0){
Serial.println("secondRecord loaded");
}
if(myVR.load((uint8_t)thirdRecord) >= 0){
Serial.println("thirdRecord loaded");
}
if(myVR.load((uint8_t)fourRecord) >= 0){
Serial.println("fourRecord loaded");
}
if(myVR.load((uint8_t)fiveRecord) >= 0){
Serial.println("fiveRecord loaded");
}
if(myVR.load((uint8_t)stopRecord) >= 0){
Serial.println("stopRecord loaded");
}
if(myVR.load((uint8_t)helpRecord) >= 0){
Serial.println("helpRecord loaded");
}
}
void loop()
{
for (int i=0; i <= 1; i++){//1st for
//delay(1);
// read the sensor:
if (Serial.available() > 0) {
intinByte = Serial.read();
// do something different depending on the character received.
// The switch statement expects single number values for each case;
// in this exmaple, though, you're using single quotes to tell
// the controller to get the ASCII value for the character. For
// example 'a' = 97, 'b' = 98, and so forth:
switch (inByte) {
case 'a':
myStepper1.step(stepsPerRevolution);
Serial.println("0");
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
// myStepper1.step(stepsPerRevolution);
break;
case 'b':
Serial.println("1");
myStepper1.step(-stepsPerRevolution);
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
break;
case 'c':
Serial.println("2");
myStepper1.step(stepsPerRevolution);
digitalWrite(13, HIGH);
delay(10);
digitalWrite(13, LOW);
break;
case 'd':
Serial.println("3");
myStepper1.step(stepsPerRevolution);
digitalWrite(13, HIGH);
delay(10);
digitalWrite(13, LOW);
break;
case 'e':
Serial.println("4");
myStepper1.step(stepsPerRevolution);
digitalWrite(13, HIGH);
delay(10);
digitalWrite(13, LOW);
break;
case 'f':
Serial.println("5");
myStepper1.step(stepsPerRevolution);
digitalWrite(13, HIGH);
delay(10);
digitalWrite(13, LOW);
break;
case 'g':
Serial.println("6");
myStepper1.step(stepsPerRevolution);
digitalWrite(13, HIGH);
delay(10);
digitalWrite(13, LOW);
break;
default:
// turn all the LEDs off:
digitalWrite(13, ledState);
break;
}
}
/** voice recognized */
// delay(1);
// printVR(buf);
}
for (int i=0; i <= 100; i++){
// delay(1);
int ret;
ret = myVR.recognize(buf, 50);
if(ret>0){
switch(buf[1]){
casefirstRecord:
/** turn on LED */
myStepper1.step(stepsPerRevolution);
Serial.println("0");
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
break;
casesecondRecord:
/** turn off LED*/
//printVR(buf);
Serial.println("1");
myStepper1.step(-stepsPerRevolution);
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
break;
casethirdRecord:
/** turn on LED */
Serial.println("2");
myStepper1.step(stepsPerRevolution);
digitalWrite(13, HIGH);
delay(10);
digitalWrite(13, LOW);
break;
casefourRecord:
/** turn on LED */
Serial.println("3");
myStepper1.step(-stepsPerRevolution);
digitalWrite(13, HIGH);
delay(10);
digitalWrite(13, LOW);
break;
casefiveRecord:
/** turn on LED */
Serial.println("4");
myStepper1.step(-stepsPerRevolution);
digitalWrite(13, HIGH);
delay(10);
digitalWrite(13, LOW);
break;
casestopRecord:
/** turn on LED */
Serial.println("5");
//digitalWrite(12, HIGH);
//delay(100);
//digitalWrite(12, LOW);
break;
casehelpRecord:
/** turn on LED */
Serial.println("6");
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
break;
default:
Serial.println("Record function undefined");
break;
}
/** voice recognized */
// printVR(buf);
}
}
}