Re: Запуск автомобиля с голоса
опытным путем выяснил что посылает телефон через БТ на кирилице
а=0
б=1
в=2
г=3
д=4
е=5
ё=Q
ж=6
з=7
и=8
к=:
л=;
м=<
н==
о=>
п=?
р=@
с=A
т=B
у=C
ф=D
х=E
ц=F
ч=G
ш=H
щ=I
ъ=J
ы=K
ь=L
э=M
ю=N
я=O
скетч последней редакции
PHP код:
#include <MsTimer2.h>
#include <SoftwareSerial.h>
SoftwareSerial BTSerial(11, 12); // RX, TX
char c;
int Mute = 19; // Pin 19 - Mute
int Start = 18; // Pin 18 - Start
int Stopi = 17; // Pin 17 - Stop
int Opening = 15; // Pin 15 - Open
int Light = 16; // Pin 16 - Light
int Lampbattery = 4;
int Stopisignal = 2;
int Speedisensor = 3;
int tick = 0 ;
byte com = 0; //reply from voice recognition
boolean running = false;
boolean flag=false;
boolean stopflag=true;
boolean a=false;
void Time()
{
tick++;
}
void flash()
{
if(tick<2){stopflag=true;}
else {stopflag=false;}
tick=0;
}
void setup() {
// initialize the digital pins as output
pinMode(Mute, OUTPUT);
pinMode(Start, OUTPUT);
pinMode(Stopi, OUTPUT);
pinMode(Opening, OUTPUT);
pinMode(Light, OUTPUT);
pinMode(Lampbattery, INPUT);
digitalWrite(Lampbattery, HIGH);
pinMode(Stopisignal, INPUT);
digitalWrite(Stopisignal, HIGH);
pinMode(Speedisensor, INPUT);
digitalWrite (Speedisensor, HIGH);
attachInterrupt(1, Time, FALLING);
MsTimer2::set(500, flash);
MsTimer2::start();
flag=true;
digitalWrite(Mute, HIGH);
BTSerial.begin(9600);
Serial.begin(9600); // Start serial communication at 9600bps
delay(2000);
Serial.write(0xAA);
Serial.write(0x37);
delay(1000);
Serial.write(0xAA);
Serial.write(0x21);
}
void loop() // run over and over again
{
if (BTSerial.available())
{
c = (char)BTSerial.read();
Serial.println(c);
if (c == '<' && !flag)
{
flag=true;
digitalWrite(Mute, HIGH);
c=0;
}
switch(c)
{
case 49:
if (stopflag)
{
digitalWrite(Opening, HIGH);
delay(700);
digitalWrite(Opening, LOW);
flag=false;
digitalWrite(Mute, LOW);
delay(1000);
com=0;
break;
}
case 65:
running = !running;
digitalWrite(Light, running);
flag=false;
digitalWrite(Mute, LOW);
com=0;
break;
}
if(flag)
{
switch(c)
{
case 60:
flag=false;
digitalWrite(Mute, LOW);
c=0;
break;
}
}
}
if (digitalRead(4)==LOW)
{
a=false;
flag=true;
digitalWrite(Mute, HIGH);
}
if (digitalRead(4)==HIGH && !a)
{
a=true;
flag=false;
delay(1000);
digitalWrite(Mute, LOW);
}
if(Serial.available())
{
com = Serial.read();
if(com==0x13 && !flag)
{
flag=true;
digitalWrite(Mute, HIGH);
com=0;
}
if(flag)
{
switch(com)
{
case 0x15:
running = !running;
digitalWrite(Light, running);
flag=false;
digitalWrite(Mute, LOW);
com=0;
break;
case 0x11:
if(stopflag && digitalRead(2)==LOW && digitalRead(4)==LOW
)
{
digitalWrite(Start, HIGH);
delay(100);
digitalWrite(Start, LOW);
flag=false;
digitalWrite(Mute, LOW);
com=0;
}
break;
case 0x12:
if(stopflag && digitalRead(2)==LOW && digitalRead(4)==HIGH
)
{
digitalWrite(Stopi, HIGH);
delay(1000);
digitalWrite(Stopi, LOW);
flag=false;
delay(1000);
digitalWrite(Mute, LOW);
com=0;
}
break;
case 0x14:
if (stopflag)
{
digitalWrite(Opening, HIGH);
delay(700);
digitalWrite(Opening, LOW);
flag=false;
digitalWrite(Mute, LOW);
com=0;
}
break;
case 0x13:
flag=false;
digitalWrite(Mute, LOW);
com=0;
break;
}
}
}
}
теперь при пасылании (м) он выключает звук при пасылании (с) включает свет и при (б) открывает багажник
Вложений: 1
Re: Запуск автомобиля с голоса
работаю со сдвиговым регистром идея управлять магнитолой по БТ
пример моего кода
PHP код:
#include <SoftwareSerial.h>
SoftwareSerial BTSerial(11, 12); // RX, TX
char c;
#define DS 8 //Пин подключен к DS входу 74HC595
#define SHCP 9 //Пин подключен к SH_CP входу 74HC595
#define STCP 10 //Пин подключен к ST_CP входу 74HC595
void setup()
{
BTSerial.begin(9600);
Serial.begin(9600);
pinMode(DS, OUTPUT);
pinMode(SHCP, OUTPUT);
pinMode(STCP, OUTPUT);
}
void loop()
{
if (BTSerial.available())
{
c = (char)BTSerial.read();
Serial.println(c);
if (c == '1')
{
digitalWrite(STCP, LOW);
shiftOut(DS, SHCP, MSBFIRST, B10000000);
digitalWrite(STCP, HIGH);
delay(100);
digitalWrite(STCP, LOW);
shiftOut(DS, SHCP, MSBFIRST, B00000000);
digitalWrite(STCP, HIGH);
}
if (c == '2')
{
digitalWrite(STCP, LOW);
shiftOut(DS, SHCP, MSBFIRST, B01000000);
digitalWrite(STCP, HIGH);
delay(100);
digitalWrite(STCP, LOW);
shiftOut(DS, SHCP, MSBFIRST, B00000000);
digitalWrite(STCP, HIGH);
}
if (c == '3')
{
digitalWrite(STCP, LOW);
shiftOut(DS, SHCP, MSBFIRST, B00100000);
digitalWrite(STCP, HIGH);
delay(100);
digitalWrite(STCP, LOW);
shiftOut(DS, SHCP, MSBFIRST, B00000000);
digitalWrite(STCP, HIGH);
}
if (c == '4')
{
digitalWrite(STCP, LOW);
shiftOut(DS, SHCP, MSBFIRST, B00010000);
digitalWrite(STCP, HIGH);
delay(100);
digitalWrite(STCP, LOW);
shiftOut(DS, SHCP, MSBFIRST, B00000000);
digitalWrite(STCP, HIGH);
}
if (c == '5')
{
digitalWrite(STCP, LOW);
shiftOut(DS, SHCP, MSBFIRST, B00001000);
digitalWrite(STCP, HIGH);
delay(100);
digitalWrite(STCP, LOW);
shiftOut(DS, SHCP, MSBFIRST, B00000000);
digitalWrite(STCP, HIGH);
}
if (c == '6')
{
digitalWrite(STCP, LOW);
shiftOut(DS, SHCP, MSBFIRST, B00000100);
digitalWrite(STCP, HIGH);
delay(100);
digitalWrite(STCP, LOW);
shiftOut(DS, SHCP, MSBFIRST, B00000000);
digitalWrite(STCP, HIGH);
}
if (c == '7')
{
digitalWrite(STCP, LOW);
shiftOut(DS, SHCP, MSBFIRST, B00000010);
digitalWrite(STCP, HIGH);
delay(3000);
digitalWrite(STCP, LOW);
shiftOut(DS, SHCP, MSBFIRST, B00000000);
digitalWrite(STCP, HIGH);
}
if (c == '8')
{
digitalWrite(STCP, LOW);
shiftOut(DS, SHCP, MSBFIRST, B00000001);
digitalWrite(STCP, HIGH);
delay(100);
digitalWrite(STCP, LOW);
shiftOut(DS, SHCP, MSBFIRST, B00000000);
digitalWrite(STCP, HIGH);
}
}
}
есть первые результаты уже удалось увеличивать и уменьшать звук:p мне это удалось ка на мосфете так и на оптроне а вот на транзисторе не получилось может подобрал не то (ВС546)
Вложение 16712 рабочий процесс:)
Вложений: 1
Re: Запуск автомобиля с голоса
Re: Запуск автомобиля с голоса
спасибо тебе!, у меня такой же модуль , но всё руки не доходили со словом триггером разобраться ,а тут на твою тему наткнулся))
ты еще не разобрался как все 15 команд задействовать?
Re: Запуск автомобиля с голоса
а ЧТО В СХЕМЕ ТАК МНОГО транзисторов делает и разьем 3.5 зачем ?
Re: Запуск автомобиля с голоса
мысль была но в ваз 2106 я даже и не знаю чем еще можно управлять мне 5 за глаза можно попытаться сделать слово при котором она будет переходить ко 2-й группе а в ней сделать что бы переходило в первую и в третью но тогда у тебя теряется 3-5 команд и по факту у тебя управляющих получится от 12 до 10 можно подзаморочится с условием например нажимаеш на тормоз а она автоматически переходит во 2 группу отпускаешь назад ну что то в таком духе.
Re: Запуск автомобиля с голоса
там всего их пять на пять действий громче тише трек вперед трек назад и переход от радио на USB
Re: Запуск автомобиля с голоса
прикупил себе EasyVR
Подключил пока к компу через преобразователь интерфейса, чтобы видеть диалог...
Вроде немного разобрался в протоколе. осталось неясность как работает распознавание команд SD. Нужно самому опрашивать состояние была какая-то команда или нет. Или модуль должен сам отправить определенный параметр на UART с указанием группы и номера команды?
ps. работать модуль будет без всяких дуино, напрямую на МК Atmega.
Заранее благодарю за ответы!
Re: Запуск автомобиля с голоса
Цитата:
Сообщение от
Станис
прикупил себе EasyVR
Подключил пока к компу через преобразователь интерфейса, чтобы видеть диалог...
Вроде немного разобрался в протоколе. осталось неясность как работает распознавание команд SD. Нужно самому опрашивать состояние была какая-то команда или нет. Или модуль должен сам отправить определенный параметр на UART с указанием группы и номера команды?
ps. работать модуль будет без всяких дуино, напрямую на МК Atmega.
Заранее благодарю за ответы!
лично я не работал с EasyVR по этому вопросу помочь не могу а вот чип работал думаю он подскажет)
вот тут http://compcar.ru/forum/showthread.p...ghlight=EasyVR
Re: Запуск автомобиля с голоса
http://www.youtube.com/watch?v=d-7wYDjKKPw
Для тех кто не хочет смотреть, хотя первое видео я рекомендую для общего развития, второе во втором листе, перейду к сути, этот автомобиль заводится при нажатии на педаль тормоза, с учетом той системы, что стоит у меня в автомобиле, я могу это легко реализовать при помощи ПО (прошивки)! По сути куда еще ленивее, хотя круче автозапуск (который на карбюраторе нуу пока не нужен). Что мы делаем всегда когда садимся в автомобиль первым делом перед запуском - правильно педаль тормоза и сцепление, на автоматах только тормоз. В моем случае у меня освободится 2 команды ниндзя и япошка, что с этим делать, пока не знаю, но с учетом того, что это эксперимент и для этого менять физически ни чего не надо, то надо попробывать!!! Чувствую, что к этой функции привыкнешь мгновенно:p А да чуть не забыл, когда у нас были морозы минус 25 минус 27,то я заводил машину с кнопки. Был такой момент, один раз я уже выезжал со двора, а к этому моменту машина прогрелась до 50, я всегда грею ее до этого уровня (карбюратор):o, только тогда сработала тишина, а это первые строчки в void setap. Так вот в проблеме разбираться я не стал (может у кого есть предположения), но предполагаю, что это по питанию. Кнопку я все равно оставлю так на всякий случай тем более это эксперимент)))