Você está na página 1de 26

Sumário

1. INTRODUÇÃO .................................................................01

2. MONTAGEM DO BRAÇO ROBÓTICO............................02


2.1 MONTAGEM............................................................03
2.2 PROGRAMANDO O BRAÇO ROBÓTICO..................08
2.2.1 Linguagem de programação por codificação.........08
2.2.2 Linguagem de programação por blocos................15

3. VIDEOTUTORIAL ..........................................................22
Braço Robótico

1. INTRODUÇÃO
Você já parou para pensar
quantos movimentos e ações
realizamos com os braços? Como isso
é possível? Para responder a estas
questões, vamos recordar a anatomia
do corpo humano.
Nosso corpo é dividido em
cabeça, tronco, membros superiores
e membros inferiores. O membro
superior é formado pela cintura
escapular (ossos da escápula e
clavícula), braço (osso úmero),
antebraço (ossos ulna e rádio) e ossos
da mão (carpo, metacarpo e falanges). As uniões entre os ossos formam as articulações:
ombro, cotovelo e pulso. Tanto os ossos quanto as articulações do membro superior são
revestidas por músculos e tendões que dão sustentação e força, permitindo diferentes
movimentos como dobrar, girar, balançar para trás e para a frente e mover-se de um lado
para o outro.
No dia a dia, realizamos inúmeras ações nas quais, muitas vezes, desejamos ter mais
do que dois braços para efetuá-las. Sabia que isso já é possível? Inovações tecnológicas
vêm aperfeiçoando diferentes áreas do conhecimento, em destaque a área da robótica, a
qual tem possibilitado a otimização de tarefas através da criação de robôs manipuladores
multifuncionais reprogramáveis usados para a realização de tarefas consideradas
difíceis, arriscadas e até mesmo impossíveis para a espécie humana. Podemos citar como
exemplo deste equipamento tecnológico o braço robótico, capaz de realizar movimentos
simples, porém extremamente importantes, como mover objetos, escrever, servir bebidas,
manipular pequenas peças com precisão ou mesmo fazer impressões 3D.
Outra empregabilidade do braço robótico é na medicina para proporcionar a
retomada de movimentos antes comprometidos, bem como a reabilitação da sensação
do toque em pessoas cuja mobilidade é quase inexistente.
Este projeto tem o intuito de demonstrar como funciona um braço robótico. Para
tanto, apresentamos um modelo constituído por material MDF, componentes eletrônicos
e a programação do funcionamento deste, na linguagem escrita e em blocos, além de
videotutorial para a montagem e funcionamento do braço robótico na escola.

1
Braço Robótico

2. MONTAGEM DO BRAÇO ROBÓTICO


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 R3

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

2
Braço Robótico

2.1 MONTAGEM
Iniciamos a confecção do braço robótico com a montagem dos
componentes eletrônicos. Para tal, utilizamos a matriz de contato Protoboard,
que é uma placa de prototipagem eletrônica com orifícios e conexões
condutoras, que permite montar circuitos eletrônicos sem haver a necessidade
de soldar os componentes na placa.
A Protoboard é composta por faixas terminais e faixas de barramento.
Cada faixa terminal possui cinco pontos conectados por um condutor metálico
e representados por letras do alfabeto; já as faixas de barramento possuem,
geralmente, uma faixa azul, que serve como sinal de alimentação negativa
do circuito eletrônico, e uma de cor vermelha, como sinal de alimentação
positiva, conforme mostra a figura 1.

Figura 1 – Placa de Protoboard

3
Braço Robótico

Para o controle e o funciona-


Figura 2 – Placa Arduino Uno R3
mento dos componentes eletrôni-
cos que serão inseridos na placa
de Protoboard, utilizamos a placa
de Arduino Uno R3. Esta placa mi-
crocontroladora facilita a progra-
mação de circuitos eletrônicos, pois
possui saídas analógicas e digitais,
e conexões feitas através de encai-
xes, não havendo a necessidade de
soldar os componentes na placa.
Além disso, é de fácil conexão com
computadores por meio de comu-
nicação USB (figura 2).

A conexão da placa de Arduino com a placa Protoboard é feita por


meio de jumpers, que são cabos condutores utilizados para conectar dois
pontos de um circuito eletrônico. Existem dois tipos de jumpers: o Macho,
que possui um conector para ser utilizado na Protoboard; e a Fêmea, que
possui um orifício que pode ser conectado a um componente eletrônico
ou jumper Macho. Há, ainda, três variedades de jumpers: jumper Macho-
Macho, que apresenta as extremidades com conectores; jumper Macho-
Fêmea, que possui uma extremidade contendo conector e outra extremidade
com orifício; e jumper Fêmea-Fêmea, cujas extremidades são formadas por
orifícios, conforme mostra a figura 3.

Figura 3 – Variedades de jumpers

Jumper Macho - Macho Jumper Macho - Fêmea Jumper Fêmea - Fêmea

4
Braço Robótico

Para controlar os movimentos do braço robótico em seus diferentes


eixos e sua garra, utilizamos quatro servos motores. O servo é um dispositivo
de malha fechada que apresenta movimento proporcional a um comando, ou
seja, ao receber um sinal de controle, verifica a posição atual e se movimenta
para a posição desejada com velocidade monitorada. Sua estrutura possui os
seguintes componentes: engrenagens, circuito de controle (responsável pelo
monitoramento do potenciômetro e acionamento do motor), potenciômetro,
motor e caixa do servo, além de três fios: marrom (GND) e vermelho (5V)
que levam energia elétrica para o motor, e amarelo que recebe os comandos
do Arduino (figura 4).

Figura 4 – Servo Motor e seus componentes internos

Para realizar o controle dos servos, acoplamos sobre a placa de Arduino


uma placa de Joystick Shield para Arduino. Esta placa possui 4 chaves botão
de pressão (push button), instaladas no formato de cruz, duas chaves botão de
pressão pequenas de seleção e um sistema de alavanca analógico, formado
por dois potenciômetros, com diversos movimentos. Há, ainda, uma chave
que possibilita escolher a tensão de alimentação do Shield, podendo optar
entre 3,3 V ou 5 V, permitindo a utilização em outros microcontroladores. É
utilizada para aumentar a capacidade do Arduino e expandir o número de
portas de entrada e saída (figura 5).

5
Braço Robótico

Figura 5
Placa de Joystick Shield para Arduino

Conecte um jumper Macho-Macho entre a porta GND do Arduino e


a linha azul da Protoboard. Na sequência, conecte outro jumper Macho-
Macho entre a porta 5V do Arduino e a linha vermelha da Protoboard, como
mostra a figura 6.

Figura 6 - Ligação de jumpers Macho-Macho a placa de Protoboard e Arduino

6
Braço Robótico

A última etapa da montagem dos componentes eletrônicos é a conexão


dos servos, através de 12 jumpers, às placas de Arduino e Protoboard.
Para tanto, ligamos três jumpers aos terminais de cada servo. Os jumpers
conectados aos terminais marrons são ligados às linhas azuis da Protoboard,
enquanto os jumpers inseridos nos terminais vermelhos dos servos são
conectados às linhas vermelhas da Protoboard. O terceiro jumper conectado
em cada servo é interligado, respectivamente, às portas digitais 9, 10, 11 e
12 do Arduino, conforme demonstra a figura 7.

Figura 7 - Conexão dos servos às placas de Protoboard e Arduino

Finalizada a montagem dos componentes eletrônicos, o próximo passo


é programar o Arduino para a ativação dos movimentos do braço robótico.

7
Braço Robótico

2.2 PROGRAMANDO O BRAÇO


ROBÓTICO
Neste projeto, apresentamos duas formas de programar o funcionamento
do braço robótico: por meio da linguagem escrita (codificação) ou da
linguagem em blocos. Vamos conhecê-las.

2.2.1 Linguagem de programação por


codificação
Para iniciar a programação, conecte a placa Arduino ao computador,
através de um cabo USB, a fim de que ocorra a comunicação entre a placa
microcontroladora e a IDE de programação do Arduino, caso essa esteja
instalada em seu computador. Caso contrário, a comunicação poderá ser
feita via on-line, por meio do seguinte endereço eletrônico: <https://create.
arduino.cc/editor>.

https://create.arduino.cc/editor

8
Braço Robótico

Na IDE de programação do Arduino, escreva ou copie e cole o código-


fonte de programação, conforme apresentado no quadro 2.

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);

9
Braço Robótico

servo_11.attach(11);
servo_12.attach(12);

// Inicialização do monitor serial


Serial.begin(9600);
}//setup

void loop() {
// Imprime no monitor serial os valores dos potenciômetros
Serial.print(“Potenciometro A0 (Horizontal): “);
potA0 = analogRead(A0);
Serial.println(potA0);
Serial.print(“Potenciometro A1 (Vertical): “);
potA1 = analogRead(A1);
Serial.println(potA1);

// Indentifica qual botão será pressionado


if (digitalRead(btA) == 0) {
escolha = ‘A’; }
if (digitalRead(btB) == 0) {
escolha = ‘B’; }
if (digitalRead(btC) == 0) {
escolha = ‘C’; }
if (digitalRead(btD) == 0) {
escolha = ‘D’;
}

// Após um botão ser pressionado, entrará em um dos quatro


modos de operação (A, B, C e D)
switch (escolha) {
case ‘A’:
Serial.println(“Botão A”);
// Se o potenciômetro A0 for deslocado para a esquerda,
moverá o servo da garra
//até um valor máximo de 60 graus.
if (potA0 < 400) {
if (angServoGuarra > 60) {
incremento = -map(potA0, 0, 400, 5, 0);
angServoGuarra = angServoGuarra + incremento;
incremento = 0;
servo_12.write(angServoGuarra);

10
Braço Robótico

}
}
// 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”);

11
Braço Robótico

// 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) {

12
Braço Robótico

incremento = map(potA1, 600, 1000, 0, 5);


angServoEsq = angServoEsq + incremento;
incremento = 0;
servo_11.write(angServoEsq);
}
}
break;
Default:
// Enquanto nenhum botão for pressionado, imprime no
monitor serial a solicitação para
//escolher um modo de operação através dos botões.
Serial.println(“Escolha um botão!”);
break;
}
}//loop

A seguir, compile o programa pressionando o botão “Verify” (botão


com sinal de tique) para verificar se não há erros de sintaxe. Estando o
código correto, o próximo passo é realizar a transferência do programa para
o Arduino. Pressione o botão “Upload” (botão com uma seta apontando
para a direita), para realizar upload do programa para o Arduino, conforme
demostra a figura 10.

13
Braço Robótico

Figura 10 – Compilando a programação em linguagem escrita

Após a transferência do programa para o Arduino, este ativa o joystick,


informando ao servo qual ângulo deve ocupar, formar ou ir. Cada servo é
responsável por um movimento: para cima e para baixo; da esquerda para
direita; abertura e fechamento da garra; e rotação do pulso. A execução de
cada movimento é determinada pelo acionamento de cada chave botão de
pressão (formato de cruz) da placa de joystick Shield.

14
Braço Robótico

2.2.2 Linguagem de programação em


blocos
Outra forma de programar o braço robótico é por meio da linguagem
de programação que utiliza blocos de funções prontas, os quais representam
comandos de programação. Neste projeto, utilizamos o software mBlock,
disponível no seguinte endereço eletrônico: <https://ide.mblock.cc/>, que
permite programar, arrastando e soltando blocos de construção (figura 11).
Este software também pode ser instalado no computador: <http://www.
mblock.cc/en-us/download>.

http://www.mblock.cc/en-us/download

Figura 11 – Layout do software mBlock

15
Braço Robótico

Para conectar o
Figura 12 – Selecionando a placa de Arduino Uno
mBlock ao Arduino,
você deve clicar no ícone
“Adicionar”, localizado
no campo “Dispositivos”
(figura 11), e selecionar
o Arduino, na biblioteca
de dispositivos do mBlo-
ck, clicando, em segui-
da, no botão “OK”, con-
forme mostra a figura
12.

Figura 13 – Conectando Arduino Uno ao mBlock

Uma vez selecio-


nado, o Arduino Uno é
visualizado no campo
“Dispositivos do mBlo-
ck” e já é possível iniciar
a programação em blo-
cos (figura 13).

Monte os blocos, arrastando e soltando, de acordo com a programação


de funcionamento do braço robótico, como mostra a figura 14.

16
Braço Robótico

Figura 14 - Programação em blocos para funcionamento do braço robótico

17
Braço Robótico

18
Braço Robótico

19
Braço Robótico

Assim que os blocos estiverem montados, clique no botão “Conectar”


(figura 13) para transferir os comandos criados no mBlock para o Arduino
Uno. Caso você esteja utilizando o software mBlock na versão on-line, ao
clicar sobre o botão “Conectar”, aparecerá um Tooltip para que seja instalado
e ativado o driver, o controlador de dispositivo mLink, para o funcionamento
do mBlock Web (figura 15), permitindo, assim, a conexão entre os dois
dispositivos.

Figura 15 – Instalar dispositivo mBlock Web.

20
Braço Robótico

Por outro lado, Figura 16


se estiver utilizando a Confirmar conexão entre mBlock e Arduino Uno
versão mBlock instalada
no computador, ao
clicar sobre o botão
“Conectar” aparecerá
um Tooltip solicitando
a confirmação da
conexão entre os dois
dispositivos, conforme
mostra a figura 16.

Uma vez realizada a conexão entre os dispositivos, será ativado, na interface do


mBlock, o botão “Upload” o qual, ao ser clicado, carrega os comandos criados no software
para o Arduino Uno (figura 17).

Figura 17 - Botão de Upload e carregamento da programação em blocos

Com a transferência do código para o dispositivo Arduino Uno, inicia-se o funcionamento


do braço robótico.

21
Braço Robótico

3. VIDEOTUTORIAL
Com o intuito de auxiliar na montagem e na programação do irrigador
automático, apresentamos um videotutorial, disponível em:

https://rebrand.ly/p3robotica

Acesse, também, pelo QRCode:

22
Braço Robótico

Desafio!
Agora é sua vez de mostrar o quanto aprendeu com este projeto!

Para aumentar o seu conhecimento em Programação Arduino, que


tal fazer esse braço, que está sendo controlado pelo Joystick Shield,
ficar autônomo?
Faça uma programação para que o braço pegue um objeto de um
lado da estrutura e o transporte para o outro lado, em um movimento
de 180 graus da base e fazendo movimentos suaves para que o
braço não derrube o objeto que está sendo transportado, nem no
momento de pegá-lo e nem no momento de soltá-lo.

Boa sorte com o desafio!

23
DTI - DIRETORIA DE TECNOLOGIA E INOVAÇÃO

Você também pode gostar