Dúvida Programação

Olá galera estou no 3º ano do curso técnico de mecatrônica e vem por aí o tcc, nosso grupo já tem ideia do que vai fazer e já começamos a projetar. O que temos em mente funcionará com 5 motores servos independentes e eu tenho dúvida em relação a programação e as possibilidades que o Arduino oferece, no caso seria o fato de podermos controlar os servos cada um com um par de teclas do teclado, uma para avançar outra para recuar isso é possível ? Outra dúvida é se poderíamos usar esta programação através do xbee para controlarmos a distância nosso projeto, é possível ?

Notas: somos totalmente leigos em relação ao Arduino e suas respectivas capacidades estamos avançando aos poucos. O modelo do arduino seria o uno mesmo.

Tenho essa dúvida pois todos os vídeos que vejo os caras criam o software e o deixa rodando infinitamente no nosso caso seria algo "ao vivo" em vez de movimentos programados, seria um controle livre dos servos através do teclado do pc.

Opa,

A imaginação é seu limite. Você pode fazer qualquer coisa dentro Arduino, claro, limitado as possibilidades da linguagem C (quase infinitas) e as limitações do próprio chip (memória SRAM e FLASH).

Mas é totalmente possível sim controlar o arduino pelo teclado. Te digo mais, você pode instalar um módulo bluetooth e controlar pelo celular, ou colocar um módulo ethernet e controlar pelas internet. Como disse, sua imaginação é o limite.

Segue um exemplo de um projeto de controle de um carrinho arduino pelo teclado. http://labdegaragem.com/profiles/blogs/tutorial-driver-para-motores-dc-tb6612fng

A propósito, este foi o primeiro resultado da pesquisa do google pelos termos "controlando arduino pelo teclado". :) https://www.google.com.br/search?q=comandar+arduino+pelo+teclado&oq=comandar+arduino+pelo+teclado&aqs=chrome..69i57j0.4415j0j7&sourceid=chrome&espv=210&es_sm=93&ie=UTF-8

Abraços,

Mas por exemplo eu queria pressionar uma tecla e em quanto ele estivesse pressionada o servo moveria e quando solta o servo pararia, depois outra faria o retorno do mesmo, é possível também ? Porque eu vi uns vídeos mas os caras tem que pressionar a tecla e dar enter, eu queria eliminar esse enter...

Posso sugerir uma evolução para seu projeto?

Arruma mais um arduino, e dois módulos de rádio um RX (receptor, ficaria no carrinho) e outro TX (transmissor, ficaria no controle remoto), assim você constrói um controle remoto para seu arduino. Tem vários tutoriais pela internet.

Ou outra possibilidade mais barata, arruma um receptor de IR e coloca no seu carrinho, e com qualquer controle remoto (da TV por exemplo) você controla seu carrinho. Claro, basta saber os códigos enviado pelo IR do seu controle.

Vai te dar um desafio a mais, mas vai ser mais legal do que controlar pelo teclado, pois no teclado tem a limitação do cabo, e da própria comunicação serial. E garanto que dessa forma vai tirar 10 vai tirar no TCC.. hehehhe

Na verdade nosso projeto é uma mão, cada servo controlaria um dedo por isso devem ser independentes e para o controle sem fios estamos pensando em usar o xbee, pelo jeito e perfeitamente possível fazer oq eu temos em mente que seria uma tecla fechar o dedo e a outra abrir de acordo co o tempo pressionado.

É possível fazer , mas como já aconselhado seria melhor utilizar 2 Arduinos com Radio transmissor um para transmitir e outro no projeto para receber.

Exemplo : http://labdegaragem.com/profiles/blogs/tutorial-transmissor-e-receptor-rf-link-com-arduino

Ou você pode utilizar só um mesmo , mas controlar via rede Wi-fi com internet shield , mas teria que utilizar um roteador no projeto e fica muita coisa .

Exemplo: http://labdegaragem.com/profiles/blogs/robo-wifi-controlado-via

Ou seria possível a comunicação via Bluetooth caso você tenha um notebook ou um celular com o adaptador bluetooth integrado só precisaria de um Arduino com o modulo bluetooth que é barato.

Exemplo: http://www.arduinoecia.com.br/2013/03/acionando-portas-do-arduino-usando.html

Garanto que todas essas opçoes juntas saem mais barato que 2 Xbee 's

alguém pode me ajudar na programação de um semáforo de 2 tempos com botão para pedestre. a minha programação e essa. int ledv = 3; //led vermelho semáforo 1 int luzv = 8; //led vermelho semáforo 2 int pdv = 6; //led vermelho semáforo para pedestre

int leda = 4; //led amarelo semáforo 1 int luza = 10; //led amarelo semáforo 2

int ledver = 2; //led verde semáforo 1 int luzver = 11;//led verde semáforo 2 int pdver = 7; //led verde semáforo pedestre

int botao = 12; //botão na porta 12

int pressionado = 1;

void setup() { pinMode(ledv,OUTPUT); pinMode(luzv,OUTPUT); pinMode(pdv,OUTPUT);

pinMode(leda,OUTPUT); pinMode(luza,OUTPUT);

pinMode(ledver,OUTPUT); pinMode(luzver,OUTPUT); pinMode(pdver,OUTPUT);

pinMode(botao,INPUT_PULLUP); }

void loop() { pressionado = digitalRead(botao); if (pressionado == 0) { digitalWrite (ledv,1); digitalWrite(luzv,1); digitalWrite(pdv,0); digitalWrite(pdver,1); delay(6000); digitalWrite(pdver,0); digitalWrite (ledv,0); digitalWrite(luzv,0); } else { digitalWrite(ledv,1); digitalWrite(pdv,1); digitalWrite(luzver,1); delay(2000); digitalWrite(luzver,0); digitalWrite(luza,1); delay(2000); digitalWrite(luza,0); digitalWrite(luzv,1); digitalWrite(ledv,0); digitalWrite(ledver,1); delay(2000); digitalWrite(ledver,0); digitalWrite(leda,1); delay(2000); digitalWrite(leda,0); digitalWrite(luzv,0); }

} meu botão não funciona do jeito correto.

Isso não funciona por causa dos delay().

PEsquisa o exemplo blink without delay na pasta do Arduino.