Re: Запуск автомобиля с голоса
Чип сегодня при установке обнаружился косяк, когда включается зажигание светодиод, который я повесил на ногу ULN2003a, для индикации загорается, (как я потом заметил чуть тусклее чем при тишине), а реле физически не включается. Как следствие тишина не срабатывает. После пуска двигателя все начинает работать в штатном режиме, а и еще ниуанс, когда зажигание включено и двигатель не запущен я могу его запустить без тишины. Не могу понять где косяк в коде помогите:(
Re: Запуск автомобиля с голоса
попробуй так
PHP код:
if (digitalRead(4)==LOW)
{
a=false;
flag=true;
digitalWrite(Mute, HIGH);
}
if (digitalRead(4)==HIGH && !a)
{
a=true;
flag=false;
digitalWrite(Mute, LOW);
}
переменную а не забудь объявить в начале. и еще я бы строки flag=true; digitalWrite(Mute, HIGH); в setup поставил перед инициализацией порта, чтобы 3 секунды не ждать пока модуль настраивается
Re: Запуск автомобиля с голоса
Спасибо большое все заработало как надо ;) строки flag=true; digitalWrite(Mute, HIGH); поставил в setup действительно так лучше:) завтра буду проверять.
скетч в последней редакции:
PHP код:
#include <MsTimer2.h>
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);
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 (digitalRead(4)==LOW)
{
a=false;
flag=true;
digitalWrite(Mute, HIGH);
}
if (digitalRead(4)==HIGH && !a)
{
a=true;
flag=false;
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;
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;
}
}
}
}
Вложений: 3
Re: Запуск автомобиля с голоса
по поводу сенсоров вот статья:
Пришла идея реализовать работу фотосенсора, срабатывающего от приближения предмета. От идеи до реализации ушел час, на коленках была собрана тестовая схема, на экране был написан простейший код микроконтроллера.
Принцип работы простой: берется стандартный фотоприемник типа tsop17хх (например TSOP1736 ), которые часто применяют в приемниках пультов дистанционок, берется любой инфракрасный светодиод. Как известно фотоприемник расчитан на прием инфракрасного излучения промодулированный частотой, к которой этот самый фотоприемник наиболее чувствителен. Для фотоприемника TSOP1736 это частота в 36 кГц, где две последние цифры в маркировке это частота.
Вложение 16100
TSOP17xx
Заставляем светодиод посылать пачки импульсов, промодулированные несущей частотой и заставляем микроконтроллер анализировать принимаемый сигнал и при наличие возвращенного отраженного сигнала что то делать. У меня просто загорался светодиод.
Вложение 16101
TSOP17xx — схема внутри
Сначала хотел организовать работу на генераторе случайных чисел, который содержится в стандартной библиотеке stdlib.h, но затем решил сделать совсем просто: посылать серию коротких пачек и подсчитывать число промахов и удач приема фотоприемником. Нужно это для того, чтобы сенсор реагировал только на свой светодиод, а на светодиод пульта от например телека — нет. Идея оказалась вполне удачной и очень даже работоспособной. Сколько я её не мучал — промахов небыло, срабатывает четко, при этом на пульты дистанционок — нет.
Вложение 16102
MCU микроконтроллер, PH — фотоприемник, IR — инфракрасный светодиод, R -подстроечный резистор, регулируется мощность излучения.
Идею можно вполне реализовать например для автоматики салонного освещения: поднес руку к светильнику — загорелась. Поднес ещё раз — потухла. Или сделать сенсорную кнопку. Или ещё что.
тоже не плохо))))
http://www.youtube.com/watch?hl=ru&g...Ua0&nomobile=1
а есть сенсоры которые могут работать через лист стали толщиной 0.5 мм может это что то связанное с радио?
Re: Запуск автомобиля с голоса
была еще одна проблемка при остановке двигателя у меня зажигание выключается на 1 секунду но до момента как включается лампочка акамулятора еще остается немного и по этому у меня появлялся щелчек в колонках как раз в эти доли секунды убрал путем задержки включения звука после команды "япошка" на две секунды щелчек исчез:o
скетч в последней редакции:
PHP код:
#include <MsTimer2.h>
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);
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 (digitalRead(4)==LOW)
{
a=false;
flag=true;
digitalWrite(Mute, HIGH);
}
if (digitalRead(4)==HIGH && !a)
{
a=true;
flag=false;
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(2000);
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;
}
}
}
}
Re: Запуск автомобиля с голоса
Вложений: 1
Re: Запуск автомобиля с голоса
И вот я опять здесь прошу прощения за задержку новенькую плату ардуино получил только вчера хотел узнать Чип а если использовать датчики парковки типа вот этих
Вложение 16223
и грязь по моему ни по чем)))
Re: Запуск автомобиля с голоса
Вложений: 1
Re: Запуск автомобиля с голоса
эммм забыл сказать это датчики парктроника :o он ультразвуковой
есть еще вот такие выполненнвее в виде шилда
Вложение 16225
но они не герметичны ставить целой платой не вариант а выносить или менять на др датчики (герметичные) я не знаю можно?
Re: Запуск автомобиля с голоса
Я знаю что он ультразвуковой, но с теми что на картинке его сравнивать нельзя
Для него придется лепить усилитель с компаратором и преобразователь для передатчика