LusoRobótica - Robótica em Português
Robótica => Iniciantes => Tópico iniciado por: pedro12 em 09 de Julho de 2010, 17:34
-
Em primeiro lugar bom dia, venho aqui postar duas duvidas que gostava de ver esclarecidas, a primeira é se há alguma maneira de por exemplo fazer o seguinte:
if (Serial.available()) {
int val = 0;
val = Serial.read();
if (val == "PALAVRA E NAO UMA UNICA LETRA") {
digitalWrite(13, HIGH);
}
}
ou seja para que a acção fosse feita tinha de enviar uma palavra ou números tipo como se fosse um código
2ª duvida é como fazer com que se por exemplo eu carregar num botão o computador produza um certo som
desde ja agradeço o esclarecimento das duvidas :)
-
A resposta a 1ª pergunta podes encontrar aqui: http://todbot.com.s3.amazonaws.com/spookyarduino/arduino_spooky_projects_class3.pdf (http://todbot.com.s3.amazonaws.com/spookyarduino/arduino_spooky_projects_class3.pdf) na página 44
Dá uma vista de olhos no pdf todo porque tb tem umas dicas para responder a tua 2ª pergunta.
Abraço.
-
void readSerialString (char *strArray){
int i = 0;
if (Serial.available()){
strArray = Serial.read();
i++;
Serial.println(strArray);
}
}
o codigo em cima e presente no PDF indicado mas ainda nao percebi como utiliza lo por isso gostava de um esclarecimento, quanto á segunda questao nao consegui resolvela nao encontrei nada sobre isso nos PDFs
mas agradço desde ja ao preytender
-
Quanto à 2ª dúvida:
Experimenta usar o processing: http://processing.org/ (http://processing.org/)
Deve ser fácil perceberes a linguagem uma vez que utilizas o arduino.
Depois de instalares o programa podes ir a Files/Examples/Libraries/Serial e abrires o programa SimpleRead.
Quando pressionas o botão ligado ao arduino programado com o programa que lá está muda-se a cor de um quadrado. Depois se quiseres podes adaptar para fazer o som.
Espero que ajude :)
-
Resposta a 1ª Pergunta - Este codigo esta pronto a funcionar dá uma vista de olhos e se tiveres duvidas avisa.
// Variavel global para guardar os comandos recebidos
// maximo de 20 caracteres se precisares de comandos maiores aumenta este numero
char meuComando[20];
void setup() {
// Inicializar Comunicação Serial
Serial.begin(19200);
Serial.println("Arduino Ready...");
}
void loop() {
// Caso exista algum dado a ser recebido via serial chamar a funcao readserialstring
if (Serial.available()) {
readserialstring();
}
// Verificar se existe algum comando para ser processado
// Nota: O caracter '\0' representa o fim da string por isso uma string vazia tem esse caracter na posição 0.
if (meuComando[0]!='\0') {
Serial.print("Encontrado um comando:");
if (strcmp("blink",meuComando)==0) {
// Caso o comando seja a palavra "blink" executa este código.
// Cuidado: "blink" é diferente de "Blink"
Serial.println("Executar Comando Blink");
} else {
// Caso não seja codigo válido da erro e não faz nada
Serial.println("Comando Invalido");
}
// No fim limpar a variavel do comando para não voltar a executar
meuComando[0]='\0';
}
delay(250);
}
// Função para ler uma string de serial
// Basicamente vai colocando um caracter de cada vez na variavel meuComando até ja não haver mais.
// No fim a variavel meuComando tem a string completa
void readserialstring() {
int i=0;
while (Serial.available()) {
meuComando[i]=Serial.read();
i++;
}
meuComando[i]='\0';
}
Com relação a 2ª pergunta concordo com a sugestão do XicoMBD porque o processing é parecido com o arduino mas se estiveres mais a vontade com outras linguagens de programação como por exemplo Java,C,VB,C# podes utilizar qualquer uma delas.
Abraço.
-
muito obrigado pelo esclarecimento das minhas duvidas!!!:)