


















Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Braço robotico com arduino como fazer.
Tipologia: Manuais, Projetos, Pesquisas
1 / 26
Esta página não é visível na pré-visualização
Não perca as partes importantes!



















Para a confecção e funcionamento do braço robótico, utilizamos os materiais demonstrados no quadro 1.
Quadro 1 – Materiais para confecção do braço robótico
01 Placa Protoboard 01 Arduino Uno R
01 Cabo USB 14 Jumpers Macho-Macho
04 Servos 01 Joystick Shield DIY para Arduino
01 Kit Braço MDF 01 Computador Software IDE Arduino ou Software mBlock
Figura 1 – Placa de Protoboard
Figura 4 – Servo Motor e seus componentes internos
Figura 5 Placa de Joystick Shield para Arduino
Figura 6 - Ligação de jumpers Macho-Macho a placa de Protoboard e Arduino
https://create.arduino.cc/editor
Quadro 2 - Código-fonte da programação na linguagem do Arduino (Wiring)
#include < Servo .h> // Declaração das variáveis int btA = 2; int btB = 3; int btC = 4; int btD = 5;
int potA0 = 0; int potA1 = 0; int incremento = 0;
char escolha = “”;
// Definição dos ângulos iniciais dos servos (esses valores podem variar de montagem para montagem) int angServoBase = 90; int angServoDir = 80; int angServoEsq = 130; int angServoGuarra = 90;
// Declaração dos servos Servo servo_9; Servo servo_10; Servo servo_11; Servo servo_12;
void setup() { // Configuração do MODO de operação das portas para os botões pinMode(btA, INPUT); pinMode(btB, INPUT); pinMode(btC, INPUT); pinMode(btD, INPUT);
// Configuração das portas de operação dos servos servo_9.attach(9); servo_10.attach(10);
// Se o potenciômetro A0 for deslocado para a direita, moverá o servo da garra //até um valor máximo de 90 graus. if (potA0 > 600) { if (angServoGuarra < 90) { incremento = map(potA0, 600 , 1000, 0, 5); angServoGuarra = angServoGuarra + incremento; incremento = 0; servo_12.write(angServoGuarra); } } break; case ‘B’: Serial .println(“Botão B”); // Se o potenciômetro A1 for deslocado para trás, moverá o servo da direita //até um valor máximo de 80 graus. if (potA1 < 400) { if (angServoDir > 80) { incremento = -map(potA1, 0, 400, 5, 0); angServoDir = angServoDir + incremento; incremento = 0; servo_10.write(angServoDir); } } // Se o potenciômetro A1 for deslocado para frente, moverá o servo da direita //até um valor máximo de 180 graus. if (potA1 > 600) { if (angServoDir < 180) { incremento = map(potA1, 600 , 1000, 0, 5); angServoDir = angServoDir + incremento; incremento = 0; servo_10.write(angServoDir); } } break; case ‘C’: Serial .println(“Botão C”);
// Se o potenciômetro A0 for deslocado para esquerda, moverá o servo da base //até um valor máximo de 180 graus. if (potA0 < 400) { if (angServoBase < 180) { incremento = map(potA0, 0, 400, 5, 0); angServoBase = angServoBase + incremento; incremento = 0; servo_9.write(angServoBase); } } // Se o potenciômetro A0 for deslocado para direita, moverá o servo da base //até um valor máximo de 0 graus. if (potA0 > 600) { if (angServoBase > 0) { incremento = map(potA0, 600 , 1000, 0, 5); angServoBase = angServoBase - incremento; incremento = 0; servo_9.write(angServoBase); } } break; case ‘D’: Serial .println(“Botão D”); // Se o potenciômetro A1 for deslocado para trás, moverá o servo da esquerda //até um valor máximo de 10 graus. if (potA1 < 400) { if (angServoEsq > 10) { incremento = -map(potA1, 0, 400, 5, 0); angServoEsq = angServoEsq + incremento; incremento = 0; servo_11.write(angServoEsq); } } // Se o potenciômetro A1 for deslocado para frente, moverá o servo da esquerda //até um valor máximo de 130 graus. if (potA1 > 600) { if (angServoEsq < 130) {
Figura 10 – Compilando a programação em linguagem escrita
Figura 11 – Layout do software mBlock
Figura 14 - Programação em blocos para funcionamento do braço robótico