Protótipo CamRobo1: mudanças entre as edições

De Pontão Nós Digitais
Ir para navegaçãoIr para pesquisar
Sem resumo de edição
Sem resumo de edição
 
(Uma revisão intermediária pelo mesmo usuário não está sendo mostrada)
Linha 2: Linha 2:


====Código Arduino====
====Código Arduino====
{| class="wikitable"
#include <Servo.h> // chama a biblioteca Servo.h, sem esta ele não reconhece a função servo.
|-
Servo motor;  //transforma a variável 'motor' em um objeto para acionar o motor da direita.
|#include <Servo.h> // chama a biblioteca Servo.h, sem esta ele não reconhece a função servo.
 
Servo motor;  //transforma a variável 'motor' em um objeto para acionar o motor da direita.
int TECLA = 0;
 
int pos = 0;// variável que recebe a tecla pressionada, serão valores entre 0 a 200 +-.(http://www.asciitable.com/)
int TECLA = 0;
   
int pos = 0;// variável que recebe a tecla pressionada, serão valores entre 0 a 200 +-.(http://www.asciitable.com/)
void setup()
 
{
void setup()
Serial.begin(9600); // usado para ativar a função de transferência de dados entre PC e Arduino 9600, é a velocidade do trafego.
{
motor.attach(4);        //motor será no pino 4 (no artigo usei cabo amarelo para informar os dados).
Serial.begin(9600); // usado para ativar a função de transferência de dados entre PC e Arduino 9600, é a velocidade do trafego.
motor.write(118);      //  AQUI EU ACHO QUE O VALOR 118 VARIA DE MOTOR PRA MOTOR.
motor.attach(4);        //motor será no pino 4 (no artigo usei cabo amarelo para informar os dados).
motor.write(118);      //  AQUI EU ACHO QUE O VALOR 118 VARIA DE MOTOR PRA MOTOR.
}
void loop()
{
if (Serial.available()>0) //verifica se alguma tecla foi pressionada e se o valor é maior que 0.
{
TECLA = Serial.read(); // variável TECLA recebe a tecla digitada e esse valor vem em byte.
    
    
}
  if ( TECLA == 46) // aqui já coloquei os valores em byte para as teclas pressionadas, 'w' para ir pra frente.
void loop()
{
{
motor.write(pos +=10); // anda para direção direita.
if (Serial.available()>0) //verifica se alguma tecla foi pressionada e se o valor é maior que 0.
}
{
if ( TECLA == 44) //atrás: letra ,.
TECLA = Serial.read(); // variável TECLA recebe a tecla digitada e esse valor vem em byte.
{
   
motor.write(pos -=10); // anda para direção esquerda.
if ( TECLA == 46) // aqui já coloquei os valores em byte para as teclas pressionadas, 'w' para ir pra frente.
}   
{
if ( TECLA == 48) // letra 0.
motor.write(pos +=10); // anda para direção direita.
{
}
motor.write(0); // anda para direção acionada.
if ( TECLA == 44) //atrás: letra ,.
}   
{
if ( TECLA == 49) // letra 1.
motor.write(pos -=10); // anda para direção esquerda.
{
}   
motor.write(20); // anda para direção acionada.
if ( TECLA == 48) //esquerda: letra a.
}   
{
if ( TECLA == 50) //  letra 2.
motor.write(0); // anda para direção acionada.
{
}   
motor.write(40); // mesmo valor usado no 'void setup'.
if ( TECLA == 49) //direita: letra d.
}
{
if ( TECLA == 51) // letra 3.
motor.write(20); // anda para direção acionada.
{
}   
motor.write(60); // mesmo valor usado no 'void setup'.
if ( TECLA == 50) // pause: letra p.
}
{
if ( TECLA == 52) // letra 4.
motor.write(40); // mesmo valor usado no 'void setup'.
{
}
motor.write(80); // mesmo valor usado no 'void setup'.
if ( TECLA == 51) // pause:  letra p.
}
{
if ( TECLA == 53) //  letra 5.
motor.write(60); // mesmo valor usado no 'void setup'.
{
}
motor.write(100); // mesmo valor usado no 'void setup'.
if ( TECLA == 52) // pause:  letra p.
}
{
if ( TECLA == 54) // letra 6.
motor.write(80); // mesmo valor usado no 'void setup'.
{
}
motor.write(120); // mesmo valor usado no 'void setup'.
if ( TECLA == 53) // pause: letra p.
}
{
if ( TECLA == 55) //  letra 7.
motor.write(100); // mesmo valor usado no 'void setup'.
{
}
motor.write(140); // mesmo valor usado no 'void setup'.
if ( TECLA == 54) // pause:  letra p.
}
{
if ( TECLA == 56) // letra 8.
motor.write(120); // mesmo valor usado no 'void setup'.
{
}
motor.write(160); // mesmo valor usado no 'void setup'.
if ( TECLA == 55) // pause: letra p.
}
{
if ( TECLA == 57) //  letra 9.
motor.write(140); // mesmo valor usado no 'void setup'.
{
}
motor.write(180); // mesmo valor usado no 'void setup'.
if ( TECLA == 56) // pause:  letra p.
}
{
}
motor.write(160); // mesmo valor usado no 'void setup'.
}  
}
}
if ( TECLA == 57) // pause: letra p.
{
motor.write(180); // mesmo valor usado no 'void setup'.
}
}
}
 
 
 
|}


Descubra qual o endereço serial:
Descubra qual o endereço serial:

Edição atual tal como às 17h34min de 29 de setembro de 2013

Neste protótipo implementamos uma solução de controle de posição via porta serial e arduino conectado a servo motor (motor de antena parabólica).

Código Arduino

#include <Servo.h> // chama a biblioteca Servo.h, sem esta ele não reconhece a função servo.
Servo motor;  //transforma a variável 'motor' em um objeto para acionar o motor da direita.
  
int TECLA = 0;
int pos = 0;// variável que recebe a tecla pressionada, serão valores entre 0 a 200 +-.(http://www.asciitable.com/)
   
void setup()
{
Serial.begin(9600); // usado para ativar a função de transferência de dados entre PC e Arduino 9600, é a velocidade do trafego.
motor.attach(4);         //motor será no pino 4 (no artigo usei cabo amarelo para informar os dados).
motor.write(118);       //  AQUI EU ACHO QUE O VALOR 118 VARIA DE MOTOR PRA MOTOR.

}
void loop()
{
if (Serial.available()>0) //verifica se alguma tecla foi pressionada e se o valor é maior que 0.
{
TECLA = Serial.read(); // variável TECLA recebe a tecla digitada e esse valor vem em byte.
 
if ( TECLA == 46) // aqui já coloquei os valores em byte para as teclas pressionadas, 'w' para ir pra frente.
{
motor.write(pos +=10); // anda para direção direita.
}
if ( TECLA == 44) //atrás: letra ,.
{
motor.write(pos -=10); // anda para direção esquerda.
}  
if ( TECLA == 48) // letra 0.
{
motor.write(0); // anda para direção acionada.
}  
if ( TECLA == 49) // letra 1.
{
motor.write(20); // anda para direção acionada.
}  
if ( TECLA == 50) //  letra 2.
{
motor.write(40); // mesmo valor usado no 'void setup'.
}
if ( TECLA == 51) // letra 3.
{
motor.write(60); // mesmo valor usado no 'void setup'.
}
if ( TECLA == 52) // letra 4.
{
motor.write(80); // mesmo valor usado no 'void setup'.
}
if ( TECLA == 53) //  letra 5.
{
motor.write(100); // mesmo valor usado no 'void setup'.
}
if ( TECLA == 54) // letra 6.
{
motor.write(120); // mesmo valor usado no 'void setup'.
}
if ( TECLA == 55) //  letra 7.
{
motor.write(140); // mesmo valor usado no 'void setup'.
}
if ( TECLA == 56) // letra 8.
{
motor.write(160); // mesmo valor usado no 'void setup'.
}
if ( TECLA == 57) //  letra 9.
{
motor.write(180); // mesmo valor usado no 'void setup'.
}
}
} 
}

Descubra qual o endereço serial:

cd /dev
ls tty*

Conecte o Arduino pelo cabo usb.

ls tty*

O valor que aparecer será a porta serial que o Arduino está usando.

Para abrir a comunicaçõ serial com ele digite:

stty -F /dev/tty**** cs8 9600 ignbrk -brkint -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke noflsh -ixon -crtscts

(substitua o "****" pela porta encontrada anteriormente.)

Depois execute este comando para ficar escutando o teclado:

screen /dev/tty**** 9600

(substitua o "****" pela porta encontrada anteriormente.)

depois é só digitar um valor de 0 a 9 que a câmera se moverá