Felipe_Camps
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).