Olá meu nome é eduardo,e preciso de ajuda no projeto que estou desenvolvendo.

Sou um estudante e preciso de ajuda para criar uma programação no Arduino Mega que execute um arquivo no Power Point ou um vídeo que farei. Serão coletados dados por um sensor de fluxo de água do Arduino, que, ao atingir determinada condição pré determinada no sensor, deve iniciar o arquivo Power Point ou algum vídeo. Resumo: assim que o Arduino detectar um fluxo de água com mais de 2 L/min, ele deverá executar ou abrir um arquivo Power Point no Windows, e, abaixo do fluxo de 2 L/min executar outro arquivo Power Point diferente.

Exibições: 591

Responder esta

Respostas a este tópico

O que você já tem?

Sabe desenvolver em alguma linguagem usada para desenvolver aplicativos para desktop?

Olá Eduardo.

Poste o que tem até agora e onde esta sua dificuldade.

Abs.

-Esta é a programação que eu tenho até agora:

float vazao; //Variável para armazenar o valor em L/min
float media=0; //Variável para tirar a média a cada 1 minuto
int contaPulso; //Variável para a quantidade de pulsos
int i=0; //Variável para contagem


void setup()
{
Serial.begin(9600); //Inicia a serial com um baud rate de 9600

pinMode(2, INPUT);
attachInterrupt(0, incpulso, RISING); //Configura o pino 2(Interrupção 0) para trabalhar como interrupção
Serial.println("\n\nInicio\n\n"); //Imprime Inicio na serial
}


void loop ()
{
contaPulso = 0; //Zera a variável para contar os giros por segundos
sei(); //Habilita interrupção
delay (1000); //Aguarda 1 segundo
cli(); //Desabilita interrupção

vazao = contaPulso / 5.5; //Converte para L/min
media=media+vazao; //Soma a vazão para o calculo da media
i++;

Serial.print(vazao); //Imprime na serial o valor da vazão
Serial.print(" L/min - "); //Imprime L/min
Serial.print(i); //Imprime a contagem i (segundos)
Serial.println("s"); //Imprime s indicando que está em segundos

if(i==60)
{
media = media/60; //Tira a media dividindo por 60
Serial.print("\nMedia por minuto = "); //Imprime a frase Media por minuto =
Serial.print(media); //Imprime o valor da media
Serial.println(" L/min - "); //Imprime L/min
media = 0; //Zera a variável media para uma nova contagem
i=0; //Zera a variável i para uma nova contagem
Serial.println("\n\nInicio\n\n"); //Imprime Inicio indicando que a contagem iniciou
}

}


void incpulso ()
{
contaPulso++; //Incrementa a variável de contagem dos pulsos
}


-Porém preciso ainda de uma linha de comando que abra um arquivo como um video ou Power Point através de comandos condicionais, exemplo: se a média da vazão de água for maior que 2 L/min, execute um vídeo ou power point.

Oi Eduardo,

Eu recomendo que siga as instruções para postar vendo este tópico do colega Rui Viana, lendo você vai ver que evitara problemas para os demais colegas que querem lhe ajudar, estas diretivas estão no topo da pagina do LDG, o problema é que as pessoas postam sem ler muitas vezes, nem fazer buscas no search, onde muitas vezes existem N respostas a nosso pedido.

Tópico como postar AQUI

Tenha paciência que algum colega vai tratar de ajudar, mas se possivel facilite as coisas para tornar seu tópico mais organizado.

Abs.

CK

-Esta é a programação que eu tenho até agora:

float vazao; //Variável para armazenar o valor em L/min
float media=0; //Variável para tirar a média a cada 1 minuto
int contaPulso; //Variável para a quantidade de pulsos
int i=0; //Variável para contagem


void setup()
{
Serial.begin(9600); //Inicia a serial com um baud rate de 9600

pinMode(2, INPUT);
attachInterrupt(0, incpulso, RISING); //Configura o pino 2(Interrupção 0) para trabalhar como interrupção
Serial.println("\n\nInicio\n\n"); //Imprime Inicio na serial
}


void loop ()
{
contaPulso = 0; //Zera a variável para contar os giros por segundos
sei(); //Habilita interrupção
delay (1000); //Aguarda 1 segundo
cli(); //Desabilita interrupção

vazao = contaPulso / 5.5; //Converte para L/min
media=media+vazao; //Soma a vazão para o calculo da media
i++;

Serial.print(vazao); //Imprime na serial o valor da vazão
Serial.print(" L/min - "); //Imprime L/min
Serial.print(i); //Imprime a contagem i (segundos)
Serial.println("s"); //Imprime s indicando que está em segundos

if(i==60)
{
media = media/60; //Tira a media dividindo por 60
Serial.print("\nMedia por minuto = "); //Imprime a frase Media por minuto =
Serial.print(media); //Imprime o valor da media
Serial.println(" L/min - "); //Imprime L/min
media = 0; //Zera a variável media para uma nova contagem
i=0; //Zera a variável i para uma nova contagem
Serial.println("\n\nInicio\n\n"); //Imprime Inicio indicando que a contagem iniciou
}

}


void incpulso ()
{
contaPulso++; //Incrementa a variável de contagem dos pulsos
}

Porém não sei muito bem desenvolver uma linguagem que desenvolva aplicativos..

A principio a solução para esse caso não é tão complicada. Coloque uma função no seu arduino que monitore essa vazão e envie um sinal pela serial quando ultrapassar a vazão definida (2L/min).

No seu computador, faça um software que se conecte a serial e fique aguardando o sinal enviado pelo arduino. O desenvolvimento desse software é algo bem "especifico" pois depende da linguagem que você tem familiaridade/facilidade e (talvez) do sistema operacional utilizado em seu computador. Se eu fosse fazer, provavelmente escolheria python ou o próprio C++ mesmo

você pode me dar dicas de como fazer tal software, pois não tenho conhecimentos técnicos para tal criação.

Primeiro defina uma linguagem de programação, vou usar como exemplo o Python.

Definido a linguagem, veja como é feita a comunicação serial usando essa linguagem. No caso do python usa-se uma biblioteca chamada pySerial

import serial

ser = serial.Serial('/dev/cu.usbmodem1411', 9600)

Nesse caso 'ser' é nossa comunicação com a porta '/dev/cu.usbmodem1411' (porta utilizada pelo arduino no meu computador) usando 9600 como baudrate.

o comando ser.readline() irá retornar a leitura dessa serial. Nesse ponto, basta fazer uma verificação usando um IF para saber se o dado recebido é o que você está esperando (no caso, o sinal para abrir o powerpoint ou video).

Dentro desse IF você deve escrever a rotina responsável por abrir o powerpoint ou o video, procure na internet sobre esse assunto que você deve encontrar algo.

Eu não sei como abrir o powerpoint, porem para abrir um video podemos utilizar o VLC e o seguinte código em python

p = subprocess.Popen(["CAMINHO_DO_VLC","CAMINHO_DO_VIDEO"])
Lembre-se de importar as bibliotecas 'subprocess' e 'os'

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço