-
Re: Запуск автомобиля с голоса
PHP код:
int Mute = 5; // Pin 5 - Mute
int Start = 4; // Pin 4 - Start
int Stopi = 3; // Pin 3 - Stop
int Opening = 7; // Pin 7 - Open
int Light = 6; // Pin 6 - 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);
}
}
}
Вариант первый.
PHP код:
int Mute = 13; // Pin 13 - Mute
int Start = 4; // Pin 4 - Start
int Stopi = 3; // Pin 3 - Stop
int Opening = 7; // Pin 7 - Open
int Light = 6; // Pin 6 - 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);
}
}
}
Вариант второй. Между собой они отличаются самой первой строчкой только второй вариант работает а первый нет
на пятом пине у меня стоит входная нога ULN2003a и параллельно SMD диод через резистор 100 Ом соединенный с пяти-вольтовой массой как на схеме.
-
Re: Запуск автомобиля с голоса
Оба скетча рабочие
Ищи ошибку в железе, может быть диод не правильно припаял?
-
Re: Запуск автомобиля с голоса
чип просто такой вопрос даже если и не правильно припаял там все равно должно появится 5 вольт а их там нет или я что то недопонимаю
-
Re: Запуск автомобиля с голоса
А светодиод светится? Может быть ошибка на платеили КЗ
-
Re: Запуск автомобиля с голоса
сегодня опять принесу тестер я снял плату ардуины отдельно подключил модуль распознования подал 5 вольт через TTL программатор осталось только замерить на 5 пине :)
в случае успеха буду разбираться в своей плате
-
Re: Запуск автомобиля с голоса
все разобрался 5 вольт появляется на D5 а мне надо на А5 извините моя ошибка я не сказал что выходы у меня должны быть на аналоговых входах :rolleyes:если я не ошибаюсь то мне надо переименовать digitalWrite
на analogWrite и все заработает я ща на работе ПО у меня здесь на компьютере нет а дома проверю:)
-
Re: Запуск автомобиля с голоса
-
Вложений: 1
Re: Запуск автомобиля с голоса
Вложение 15728
вот у меня абсолютно такая же плата пины которые я пометил красным они будут выходами как мне их обозначить в скетче что бы работали именно они????
-
Re: Запуск автомобиля с голоса
-
Re: Запуск автомобиля с голоса
По порядку D17, D18, D19. А6 и А7 не могут работать как цифровые выходы
-
Вложений: 1
Re: Запуск автомобиля с голоса
БЛИИИИИИИИИИИИИИИИИИИИИИИН лан понял перепаяю А6 на А2 (D16) и А7 на А1 (D15):)
что бы не переделывать плату взял и запараллелил думаю ничего страшного я все равно не буду использовать А6 и А7
Вложение 15729
-
Re: Запуск автомобиля с голоса
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);
}
}
}
вот рабочий скетч чип теперь такой вопрос как сделать так что бы Mute было триггером и без него не выполнялась ни одна команда
пример
Mute (выключился звук)-Light (включился свет и снова включился звук)
Mute (выключился звук)-Light (выключился свет и снова включился звук)
Mute (выключился звук время что бы было не ограниченно )-Mute (включился звук)
-
Re: Запуск автомобиля с голоса
Я не знаю как работает в твоем устройстве система команд и ответов на них
-
Re: Запуск автомобиля с голоса
а в устройстве не надо нужно в скетче (ардуино будет контролировать) исходя из условий
ну как вы говорили реализать програмно Ардуино постоянно опрашивает а как только прозвучало слово триггер она ждет
следующей команды и исходя из того что за команда поступила делает те или иные действия:)
-
Re: Запуск автомобиля с голоса
Цитата:
Serial.write(0xAA);
Serial.write(0x37);
Serial.write(0xAA);
Serial.write(0x21);
Распиши за что отвечают эти команды
-
Вложений: 1
Re: Запуск автомобиля с голоса
вот мануал там в таблице написанно
-
Re: Запуск автомобиля с голоса
Честно говоря нет желания изучать DS не имея под рукой такого же устройства.Так как понять что делает режим "compact mode" и т.д. мне сложно
-
Вложений: 2
Re: Запуск автомобиля с голоса
Вложение 15741
после подключения я послал команду(АА 21)
и скомандовал 5 команд которые я записывал ранее
Вложение 15742
потом посылаю (АА 37) и еще раз скомандовал 5 команд для примера
5 квадратиков это то что приходило в ответ на мои команды соответственно по одному после каждой команды
всего она может записать 15 команд по 5 в группу всего получается 3 группы если бы у меня было еще 5 команд я бы
их записал в др группу и что бы плата начала откликаться на команды второй группы надо послать (АА 22)
Чип если есть вопросы задавайте я постараюсь на них ответить)))
-
Re: Запуск автомобиля с голоса
Чип а нельзя сделать так что бы ардуино работало только в режиме приема и все за исключением подачи на него питания когда подается код
Serial.write(0xAA);
Serial.write(0x37);
Serial.write(0xAA);
Serial.write(0x21);
-
Re: Запуск автомобиля с голоса
Ну так она и работает в режиме приема
void loop()
{
if(Serial.available())
{
//здесь читаем и сверяем
}
}
-
Re: Запуск автомобиля с голоса
ну а какой код нужно написать что бы она выполняла любую из 4 команд реагировала только после if (com==0x13) и при этом выполнила действия которые прописанны для этой команды (типа триггер) и работала она в режиме приема может for и соответствующая этой команде ветка?
-
Re: Запуск автомобиля с голоса
чип как правильно считать датчик скорости? (программно)
-
Re: Запуск автомобиля с голоса
Вот пример частотомера на Arduino , он считает импульсы за N промежуток времени
Для того чтобы узнать скорость, нужно считывать данные одометра
Частоту легко преобразовать в скорость
-
Re: Запуск автомобиля с голоса
Чип хотел пояснить что я хотел от слова триггер
-
Re: Запуск автомобиля с голоса
На днях общался с Artemka181 ему я смог объяснить как я хочу сделать слово триггер оказывается удалось выяснить что триггер можно запрограммировать в изи Вр отдельно а уже когда слово триггер прозвучало изи ждет команду и только тогда посылает команду на ардуину
Я же жочу сделать проще Т. к. у меня ардуино работает только в режиме приема (как сигналка без двух сторонней связи)
Пример если авто на сигнализации то некоторыми каналами ты не можешь пользоваться а лишь после снятия
У меня всего пять команд одну из них я хочу одну сделать триггером но при этом при поступлении этой команды ардуино тоже буде выполнять кое какие действия (выключать звук магнитолы) триггер прозвучал звук выключился и только тогда ардуина начнет реагировать на остальные 4 команды и выполнять действия это я хочу реализовать при помощи:
вырезка из текста
Подобно конструкции if, switch...case управляет процессом выполнения программы, позволяя программисту задавать альтернативный код, который будет выполняться при разных условиях. В частности, оператор switch сравнивает значение переменной со значением, определенном в операторах case. Когда найден оператор case, значение которого равно значению переменной, выполняется программный код в этом операторе.
и еще маленький ниуанс когда прозвучала одна из команд после слова триггера я думаю как сделать что бы ардуино сразу переходила к ожиданию триггера или его надо будет произнести снова????:confused:
-
Re: Запуск автомобиля с голоса
вот часть кода
PHP код:
if (com==0x13)
{ running = !running;
digitalWrite(Mute, running);
}
else if (com==0x15)
switch (Mute, running) {
case (Mute, HIGH):
{ running = !running;
digitalWrite(Light, running);
break;
}}
в строке case он мне выдает ошибку :rolleyes:
-
Re: Запуск автомобиля с голоса
Вот правильное использование switch
PHP код:
var=1;
switch (var)
{
case 1:
//Ваш код для выполнения
break;
case 2:
//Ваш код для выполнения
break;
case 10:
//Ваш код для выполнения
break;
}
PHP код:
switch Mute
{
case HIGH:
running = !running;
digitalWrite(Light, running);
break;
}
-
Вложений: 1
Re: Запуск автомобиля с голоса
Чип подставил но что то не так вот скриншот)
Вложение 15755
-
Вложений: 1
Re: Запуск автомобиля с голоса
все там разобрался теперь надо сделать что бы еще одним из условий была команда
else if (com==0x15) и только тогда включался свет
выполнялась команда:
running = !running;
digitalWrite(Light, running);
Вложение 15758
-
Re: Запуск автомобиля с голоса
я попробовал так но что то не работает
PHP код:
com = Serial.read();
if (com==0x13)
{ running = !running;
digitalWrite(Mute, running);
}
switch (Mute)
{
case HIGH:
switch (com==0x15)
{
case 0x15 :
running = !running;
digitalWrite(Light, running);
break;
}
}
}
}
-
Re: Запуск автомобиля с голоса
Может быть так
PHP код:
com = Serial.read();
if (com==0x13)
{
running = !running;
digitalWrite(Mute, running);
com = Serial.read();
if (com==0x15)
{
running = !running;
digitalWrite(Light, running);
}
}
-
Re: Запуск автомобиля с голоса
-
Re: Запуск автомобиля с голоса
Я только лишь переделал твой код
-
Re: Запуск автомобиля с голоса
Omigovolt, имхо, не очевидно что на входе, и что должно получиться. триггер-байт 0x13 в каждой посылке приходит? как она выглядит? 2 байта, первый - 0x13, второй команда? и надо чтобы команда выполнялась при условии, что первый байт 0x13? так? если так, то:
PHP код:
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;
//case ?: здесь видимо другие команды
//break;
}
}
}
-
Вложений: 1
Re: Запуск автомобиля с голоса
да вы меня правильно понимаете только при проверке вот что выдает
Вложение 15759
Вот весь скетч
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() > 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;
}
}
}
забыл в конце еще одна фигурная скобка:p
-
Re: Запуск автомобиля с голоса
Переменная "а" не объявлена, допиши в начале
byte a = 0;
-
Re: Запуск автомобиля с голоса
-
Re: Запуск автомобиля с голоса
Воообще перестала реагировать на мои команды ((((((((
-
Re: Запуск автомобиля с голоса
попробовал перезалил но что то так туго реагиркет короче я теперь видюхи буду выкидывать
-
Re: Запуск автомобиля с голоса
вот я сам с такой платой играюсь. И пока не получилось реализовать триггер.
Были мысли такого плана :
PHP код:
void golos()
{
Serial.listen();
while (serial.available() > 0) {
byte com = Serial.read();
int a =0
switch (com);
{
if (a=0) {
case 0x11:
// какое-то действие
a = 1;
break;
}
{
case 0x12:
// какое-то действие
a = 0;
break;
case 0x13:
// какое-то действие
a = 0;
break;
case 0x14:
// какое-то действие
a = 0;
break;
case 0x14:
// какое-то действие
a = 0;
break;
}
}
}