погоди он работает ты проверял?
погоди он работает ты проверял?
Проверял, но не работает) Я где то видимо логику потерял
Последний раз редактировалось filinmd; 18.12.2012 в 16:10.
ща погоди я видюхи записываю)
вот скетч который работает в первом видео
PHP код:
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
byte com = 0; //reply from voice recognition
boolean running = false;
void setup() {
// initialize the digital pins as output
pinMode(Mute, OUTPUT);
pinMode(Start, OUTPUT);
pinMode(Stopi, OUTPUT);
pinMode(Opening, OUTPUT);
pinMode(Light, OUTPUT);
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(Serial.available())
{
com = Serial.read();
if (com==0x13)
{ running = !running;
digitalWrite(Mute, running);
}
else if (com==0x15)
{ running = !running;
digitalWrite(Light, running);
}
else if (com==0x14)
{ digitalWrite(Opening, HIGH);
delay(1000);
digitalWrite(Opening, LOW);
}
else if (com==0x11)
{ digitalWrite(Start, HIGH);
delay(1000);
digitalWrite(Start, LOW);
}
else if (com==0x12)
{digitalWrite(Stopi, HIGH);
delay(1000);
digitalWrite(Stopi, LOW);
}
}
}
там все равно в какой последовательности произносить команды команды приходится произносить достаточно громко
т. к. я их записывал когда микрофон лежал недалеко от колонок за то теперь я теперь знаю что он может реагировать не только на те команды которык я записывал но и еще просто путать их точнее все зависит от произношения и все такое это когда я командую свет а он зажигает диод который отвечает за тишину
теперь следующий скетч в котором уже должен быть триггер для простоты оставлено команда триггер (тишина) и команда свет на видео видно что там хоть оборись свет не заработает но у меня в какие то моменты умудрялся проорать что все получалось (при чем по задумке когда тишина должен вырубаться звук на магнитоле и загораться красный светодиод а при произнесении команды и её выполнения снова включался звук и светодиод тухнул) Т. е. белый светодиод загорался а красный практически одновременно с ним тух но при попытке выключить свет (должен потухнуть белый светодиод) тишина работала(красный загорался) но уже белый светодиод не тух (вот тут хоть оборись) а должно))))
PHP код:
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
byte com = 0; //reply from voice recognition
byte a = 0;
boolean running = false;
void setup() {
// initialize the digital pins as output
pinMode(Mute, OUTPUT);
pinMode(Start, OUTPUT);
pinMode(Stopi, OUTPUT);
pinMode(Opening, OUTPUT);
pinMode(Light, OUTPUT);
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 (Serial.available() > 1)
{
a = Serial.read();
com = Serial.read();
if(a==0x13)
{
running = !running;
digitalWrite(Mute, running);
switch(com)
{
case 0x15:
running = !running;
digitalWrite(Light, running);
break;
}
}
}
}
команды я запрограммировал следующим образом
ниндзяя - (0x11) синий
япошка - (0x12) зеленый
тишина - (0x13) красный
базажник - (0x14) жолтый
свет - (0x15) белый
Omigovolt, все таки, что приходит в ардуино? Судя по видео просто один байт на каждую команду без 0x13 в начале. Тогда все просто. если поймали 0x13, то поднимаем флаг. если флаг поднят и пришла команда, то выполняем ее и сбрасываем флаг.
Вложение 15741
после подключения я послал команду(АА 21)
и скомандовал 5 команд которые я записывал ранее
Вложение 15742
потом посылаю (АА 37) и еще раз скомандовал 5 команд для примера
5 квадратиков это то что приходило в ответ на мои команды соответственно по одному после каждой команды
всего она может записать 15 команд по 5 в группу всего получается 3 группы если бы у меня было еще 5 команд я бы
их записал в др группу и что бы плата начала откликаться на команды второй группы надо послать (АА 22)
Чип если есть вопросы задавайте я постараюсь на них ответить)))
Попробуй:
Логика работы такая: Пока не придет команда "тишина" ни на что не реагирует. После этой команды включается диод и показывает, что ждет следующей команды. Команда "свет" включит/выключит нужный диод, после чего красный погаснет и будет ждать "тишины".PHP код:
boolean flag=false;
if(Serial.available())
{
com = Serial.read();
if(com==0x13)
{
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;
}
}
}
УУУУУУУУУУУУУУУУУУУУУУУ АГОНЬ ВСЕ РАБОТАЕТ КАК НАДО ))))))))))))))))))))))))))))))))))))))
Последний раз редактировалось Omigovolt; 18.12.2012 в 22:54.
теперь осталось добавить еще 3 команды а потом потеть над условиями))))
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)