Fórum


Classifique este tópicoPéssimoRuimMedianoBomÓtimo
Autor
Mensagem
3
Felipe_Camps

Level 0
0 xp

Registrado em:
25/01/2017





Mensagens:
1
3
Felipe_Camps

Responder com citações
Mensagem Qua Mai 09, 2018 7:20 pm
Controle de braço robótico tipo meArm por Bluetooth HC-08
Olá, estou com dúvida relacionado como fazer com que o app BlackBLE controle em seu joystick o braço. Estou com problema de criar o algoritmo para que as teclas (Y, A, X, B) façam os movimentos dos servos.  Por favor me deem uma luz de como devo fazer. Segue abaixo apenas a parte que fiz os testes para fazer os movimentos do servo da base:

#include <SoftwareSerial.h>

#include <Servo.h>

SoftwareSerial hc_08(1, 2); //RX-1, TX-2

int porta_servo_base = 3;
int porta_servo_braco = 5;
int porta_servo_altura = 6;
int porta_servo_garra = 9;
int porta_serial;

Servo base;
Servo braco;
Servo altura;
Servo garra;

int posicaobase = 0;
int posicaobraco = 0;
int posicaoaltura = 0;
int posicaogarra = 0;

void setup() {
  Serial.begin(9600);
  hc_08.begin(9600);
  
  base.attach(porta_servo_base); //porta digital 3
  braco.attach(porta_servo_braco); //porta digital 5
  altura.attach(porta_servo_altura); //porta digital 6
  garra.attach(porta_servo_garra); //porta digital 9
}

void loop() {
    if(Serial.available()){
    char z = Serial.read();
    hc_08.print(z);
    }
    if(hc_08.available()){
      while(hc_08.available()){
      char c = hc_08.read();
      
      if(c == 'B'){
        direita();       
        }      
         if(c == 'x'){
            esquerda();
            }     
           if(c == 'y'){
              cima();
            }           
            if(c == 'A'){
              baixo();
            } 
            if(c == 'L'){
              tras();
              }
              if(c == 'R'){
                frente();
                }         
             if(c == 'U'){
              garra();
             }
      }}}
void direita(){
  int c = 1;
  posicaobase += c;
  if(posicaobase > 0 && posicaobase < 180){
    porta_servo_base = map(posicaobase, 0, 180, 0, 180);
    base.write(porta_servo_base);
    }
    return;
  }
void esquerda(){
  int c = 1;
  posicaobase -= c;
  if(posicaobase > 180 && posicaobase < 360){
    porta_servo_base = map(posicaobase, 180, 360, 0, 180);
    base.write(porta_servo_base);
     }
     return;
    }   

OBS: Incluído por enquanto só os movimentos de direita e esquerda (base).
Mostrar mensagens desde a última:




Ir para:  
Todos os horários são GMT - 3 HorasVocê não tem permissão para escrever novas mensagens
v não tem permissão para responder às mensagens
Você não tem permissão para editar suas mensagens
Você não tem permissão para deletar suas mensagens
Você não tem permissão para classificar tópicos
Você não tem permissão para classificar mensagens
Você não tem permissão para votar em enquetes
Anexar downloads : Proibido
Fazer Download de Arquivos: Permitido
Powered by phpBB © 2001 phpBB Group