Você está na página 1de 69

PROJETO: ACIONANDO O SERVO MOTOR

• Você irá aprender a como programar e controlar um servo motor.


• Descubra neste projeto: mapeamento de valores, servomotores,
utilização de bibliotecas internas.
Polegar Opositor
• Ilha das Flores
• https://www.youtube.com/watch?v=Hh6ra-18mY8&t=55s
• Matéria do Jornal O Globo sobre Polegares Opositores
• https://revistagalileu.globo.com/Ciencia/noticia/2021/02/polegares-
opositores-se-tornaram-mais-habilidosos-ha-2-milhoes-de-anos.html
Ilha das Flores
• Estamos em Belém Novo, município de Porto Alegre, Estado do Rio Grande do Sul, no extremo sul
do Brasil, mais precisamente na latitude 30 graus, 2 minutos e 15 segundos Sul e longitude 51
graus, 13 minutos e 13 segundos Oeste. Caminhamos neste momento numa plantação de
tomates e podemos ver à frente, em pé, um ser humano, no caso, um japonês. Os japoneses se
distinguem dos demais seres humanos pelo formato dos olhos, por seus cabelos lisos e por seus
nomes característicos. O japonês em questão chama-se Toshiro. Os seres humanos são animais
mamíferos, bípedes, que se distinguem dos outros mamíferos, como a baleia, ou bípedes, como
a galinha, principalmente por duas características: o telencéfalo altamente desenvolvido e o
polegar opositor. O telencéfalo altamente desenvolvido permite aos seres humanos armazenar
informações, relacioná-las, processá-las e entendê-las. O polegar opositor permite aos seres
humanos o movimento de pinça dos dedos, o que, por sua vez, permite a manipulação de
precisão. O telencéfalo altamente desenvolvido, somado à capacidade de fazer o movimento de
pinça com os dedos, deu ao ser humano a possibilidade de realizar um sem-número de
melhoramentos em seu planeta, entre eles, plantar tomates. O tomate, ao contrário da baleia, da
galinha, dos japoneses e dos demais seres humanos, é um vegetal. Fruto do tomateiro, o tomate
passou a ser cultivado pelas suas qualidades alimentícias a partir de 1800. O planeta Terra produz
cerca de 28 bilhões de toneladas de tomates por ano. [...]
• FURTADO, Jorge. Ilha das Flores (1989). Rio de Janeiro: Rocco, 1999.
Ilha das Flores
• O polegar opositor: permite aos seres humanos o movimento de
pinça dos dedos, o que, por sua vez, permite a manipulação de
precisão.

• Quais são os nomes dos dedos da mão


• https://www.youtube.com/watch?v=fR-FLDtpMQc
• https://www.youtube.com/watch?v=WOtlXZCWPMs
Como podemos criar movimento de pinça
dos dedos e que permita uma manipulação
de precisão dos objetos?
Criando o movimento de pinça
• Hipóteses Simplificadores
• Polegar e o outro dedo com mesmo comprimento
Criando o movimento de pinça
• Com palitos de picolé
• Tomemos dois palitos de picolé com comprimento de, aproximadamente,
7cm
• Para fazer essa ação precisaremos de:
• Régua; Lápis ou Lapiseira, um pedaço de lixa e, claro, dois palitos de picolé;
Criando o movimento de pinça
• Cortando os palitos de picolé

No final dos cortes, tem-se 2 pedaços


de 7cm e 2 pedaços de 2,4cm.
Criando o movimento de pinça
• Cortando os palitos de picolé

Cortes com a tesoura tiveram um


Cortes com serra e alicate acabamento muito bom, mas
universal não tiveram um bom cuidado para não quebrá-la.
acabamento.
Criando o movimento de pinça
• Medindo o comprimento de 7cm nos palitos de picolé

Faça isto duas vezes


Criando o movimento de pinça
• Cortando os palitos de picolé

Na marcação, corte com a tesoura


Criando o movimento de pinça
• Cortando os palitos de picolé

Divida o pedaço que sobrou em duas


partes iguais. No meu sobrou 4,8cm.
Logo, depois de cortado, tem-se dois
pedaços de 2,4cm. Faça nos dois
pedaços.
Criando o movimento de pinça
• Vamos usar um Servomotor
Criando o movimento de pinça
• O que é um Servomotor

Entre os atuadores temos um motor


bem especial. Os servomotores,
também chamados de servos, são
muito utilizados quando o assunto é
robótica. De forma simplificada, um
servomotor é um motor na qual
podemos controlar sua posição
angular através de um sinal PWM.
Criando o movimento de pinça
• O que é um Servomotor
O servomotor é um tipo de motor de
corrente contínua. A diferença dele
pros demais é que sua posição pode
ser controlada de maneira precisa.
Isto é, posso mandar ele ir até um
certa posição (em graus) e ele fará
isso de forma precisa. A maioria dos
servomotores possuem movimento
limitado e podem girar apenas de 0º
a 180º. Entretanto, existem versões
que giram 360º. Abaixo está a
imagem de um servomotor comum
para interações com o Arduino.
Criando o movimento de pinça
• Classificação de um Servomotor
• Standard
• – são os servos mais comuns.
Grandes e robustos;
• Mini
• Menores que o standard;
• Micro
• São pequenos e leves com um
bom torque.
Criando o movimento de pinça
• Partes de um Servomotor
Criando o movimento de pinça
• Partes de um Servomotor
Criando o movimento de pinça
• Partes de um Servomotor
Criando o movimento de pinça
• Partes de um Servomotor
Diferentes tipos de
braços de Servomotor.

Braços removíveis
e substituído
Criando o movimento de pinça
• Partes de um Servomotor
Diferentes tipos de
braços de Servomotor.

Braços removíveis
e substituído

Parafusos fixa
o braço
Criando o movimento de pinça
• Partes de um Servomotor
Diferentes tipos de
braços de Servomotor.

Braços removíveis
e substituído

Conector para ligar


Parafusos fixa na protoboard
o braço
Criando o movimento de pinça
• Partes de um Servomotor
Cabo alimentação
e controle
Diferentes tipos de
braços de Servomotor.

Braços removíveis
e substituído

Conector para ligar


Parafusos fixa na protoboard
o braço
Criando o movimento de pinça Eixo estriado

• Partes de um Servomotor
Cabo alimentação
e controle
Diferentes tipos de
braços de Servomotor.

Braços removíveis
e substituído

Conector para ligar


Parafusos fixa na protoboard
o braço
Criando o movimento de pinça Invólucro: motor,
engrenagem e circuito
Eixo estriado

• Partes de um Servomotor
Cabo alimentação
e controle
Diferentes tipos de
braços de Servomotor.

Braços removíveis
e substituído

Conector para ligar


Parafusos fixa na protoboard
o braço
Criando o movimento de pinça Invólucro: motor,
engrenagem e circuito
Eixo estriado

• Partes de um Servomotor
Cabo alimentação
e controle
Diferentes tipos de Aba de montagem.
braços de Servomotor.

Braços removíveis
e substituído

Conector para ligar


Parafusos fixa na protoboard
o braço
Criando o movimento de pinça
• Partes de um Servomotor
• Os fabricantes de servos obedecem um padrão
(Airtronics é uma exceção).
Criando o movimento de pinça
• Como funciona um Servomotor

Ao se tentar alterar a posição do servo motor,


verifica-se uma resistência feita pelo motor. Esta
resistência é chamada de torque. O torque é uma
das principais características do servo motor.
Mede-se o torque em kg-cm (kilograma por
centímetro) ou oz-in (onça por polegada)
Criando o movimento de pinça
• Como funciona um Servomotor
Criando o movimento de pinça
• Como funciona um Servomotor
Criando o movimento de pinça
• Como funciona um Servomotor
Criando o movimento de pinça
• Como funciona um Servomotor
Criando o movimento de pinça
• Como funciona um Servomotor

1,2Kg 0,6Kg 0,3Kg


Criando o movimento de pinça
• Como funciona um Servomotor
O servo motor é alimentado com tensões de 5 V e recebe um sinal no formato PWM
(Pulse Width Modulation). Este sinal é 0 V ou 5 V. O circuito de controle do servo
fica monitorando este sinal em intervalos de 20 ms. Se neste intervalo de tempo, o
controle detecta uma alteração do sinal na largura do sinal, ele altera a posição do
eixo para que a sua posição coincida com o sinal recebido.
Criando o movimento de pinça
• Como funciona um Servomotor

• Um sinal com largura de pulso de 1 ms corresponde a posição do servo todo a esquerda ou 0 grau.
• Um sinal com largura de pulso de 1,5 ms corresponde a posição central do servo ou de 90 graus.
• Um sinal com largura de pulso de 2 ms corresponde a posição do servo todo a direita ou 180 graus
Criando o movimento de pinça
• Como funciona um Servomotor

20 ms
Como o sinal com largura de pulso
de 1,5 ms são enviados a cada 20
milissegundos, tem-se 50 sinais de
pulso por segundo, logo se tem uma
frequência de 50 Hz.

Uma vez que o servo recebe um sinal de 1,5 ms (por exemplo), ele verifica se o potenciômetro
encontra-se na posição correspondente, se ele estiver nada é feito. Se o potenciômetro não estiver
na posição correspondente ao sinal recebido, o circuito de controle aciona o motor até que o
potenciômetro esteja na posição correta. A direção de rotação do servo motor depende da posição
do potenciômetro. O motor vai girar na direção leva o potenciômetro mais rapidamente na posição
correta.
Criando o movimento de pinça
• Como Controlar um Servomotor – no Tinkercad - Circuito
Criando o movimento de pinça
• Como Controlar um Servomotor – no Tinkercad – Código - setup

#define motor 6

void setup() {
pinMode(motor, OUTPUT);
controlaMotor(180); // Começa setando a
posição para 180º
delay(1000);
}
Criando o movimento de pinça
• Como Controlar um Servomotor – no Tinkercad – Código loop

void loop() {
int i;
for (i = 0; i < 180; i++) { // Gira de 0º a 180º
controlaMotor(i);
}
delay(1000);
for (i = 180; i > 0; i--) { // Gira de 180º até 0º
controlaMotor(i);
}
}
Criando o movimento de pinça
• Como Controlar um Servomotor – no Tinkercad – Código controleServo
void controlaMotor(int posicao) {
int tempo = map(posicao, 0, 180, 1000, 2000);
// Altere o limite inferior (1000) e superior
(2000) para o seu caso

int i;
for (i = 0; i < 5; i++) {
digitalWrite(motor, HIGH);
delayMicroseconds(tempo);
digitalWrite(motor, LOW);
delayMicroseconds(20000 - tempo);
digitalWrite(motor, HIGH);
}
}
Criando o
movimento de pinça
• Como Controlar um
Servomotor – no Tinkercad –
Código Completo
Criando o movimento de pinça
• Como Controlar um Servomotor –com Biblioteca
• O que é uma Biblioteca no Arduino
• No contexto do Arduino, bibliotecas são conjuntos de código pré-escrito que facilitam a
programação de dispositivos ou módulos específicos. Essas bibliotecas contêm funções e
comandos que permitem aos desenvolvedores acessar e controlar hardware e realizar
tarefas comuns de maneira mais simples, sem precisar escrever todo o código do zero.
• Bibliotecas de Servomores para Arduino
• Servo.h → Nativado Arduino
• https://www.arduino.cc/reference/en/libraries/servo/
• https://github.com/arduino-libraries/Servo/
• VarSpeedServo.h → Desenvolvida pelo grupo NetLab
• https://github.com/netlabtoolkit/VarSpeedServo
• Esta biblioteca não é mais mantida devido a dependências de hardware e grande variedade
de dispositivos para suporte. Como alternativa, criei VarSpeedPython...

o Tinkercad não permite a


inclusão de bibliotecas.
Criando o movimento de pinça
• Como Controlar um Servomotor –com Biblioteca
• Adicionar uma Biblioteca na IDE do Arduino, exemplo - VarSpeedServo.h
1. Salve VarSpeedServo.h ;em uma pasta do seu computador;
1. Faça download do link: https://github.com/netlabtoolkit/VarSpeedServo
Criando o movimento de pinça
• Como Controlar um Servomotor –com Biblioteca
• Adicionar uma Biblioteca na IDE do Arduino, exemplo - VarSpeedServo.h
1. Salve VarSpeedServo.h ;em uma pasta do seu computador;
2. Abra a IDE do Arduino
1. Se você ainda não fez download então é o momento:
1. https://www.arduino.cc/en/software
2. Com IDE aberta vá em Rascunho (Sketch) → incluir biblioteca (Include Library) → adicionar
Biblioteca .ZIP (Add ZIP Library)
3. Busque a pasta onde foi salva a biblioteca e selecione ela
Criando o movimento de pinça
• Como Controlar um Servomotor –com Biblioteca
• Adicionar uma Biblioteca na IDE do Arduino, exemplo - VarSpeedServo.h
1. Salve VarSpeedServo.h ;em uma pasta do seu computador;
Criando o movimento de pinça
• Como Controlar um Servomotor –com Biblioteca
• Adicionar uma Biblioteca na IDE do Arduino, exemplo - VarSpeedServo.h
1. Salve VarSpeedServo.h ;em uma pasta do seu computador;
Criando o movimento de
pinça
• Como Controlar um Servomotor –
com Biblioteca
• Adicionar uma Biblioteca na IDE do
Arduino, exemplo -
VarSpeedServo.h
1. Para verificar se instalou
VarSpeedServo.h é só ir em
Exemplos e procurar por
VarSpeedServo
Criando o movimento de pinça
• Como Controlar um Servomotor – no Tinkercad – Biblioteca Servo
Criando o movimento de pinça
• Como Controlar um Servomotor – no Tinkercad – Biblioteca Servo
#include <Servo.h>
Servo servo1; // cria um objeto servo1

// Esta função "setup" roda uma vez quando a placa e ligada ou


resetada
void setup() {
servo1.attach(6); // anexa o servomotor (físico), no pino 5, ao
objeto servo1 (lógico)
}

void loop() {
int angulo = analogRead(A1); // Lê o valor do potenciômetro
angulo = map(angulo, 0, 1023, 0, 180); // Mudança de Escala
servo1.write(angulo); // Escreve o ângulo para o servomotor
delay(20); // Espera de 20ms, Suficiente para que o servomotor
atinja a posição
}
Criando o movimento
de pinça
• Como Controlar um
Servomotor – no Tinkercad –
Biblioteca VarSpeedServo
• Para usar o circuito com o
potenciômetro e a biblioteca
VarSpeedServo é só na IDE ir
em:
• Arquivo→Exemplo→VarSpee
dServo→Knob
Criando o movimento
de pinça
• Como Controlar um
Servomotor – no Tinkercad –
Biblioteca VarSpeedServo
• Substitua pontPin por A1 e
servoPin por 6
Criando o movimento
de pinça
• Como Controlar um Servomotor – no Tinkercad – Biblioteca VarSpeedServo
• Resultado
Criando o movimento
de pinça
• Como Controlar um Servomotor – no Tinkercad – Fim do Movimento Pinça
• Vamos usar o circuito com o potenciômetro
Criando o movimento
de pinça
• Como Controlar um Servomotor – no Tinkercad – Fim do Movimento Pinça
• Vamos usar o circuito com o potenciômetro, mas modificando o código

#include <Servo.h>

Servo servomotor; // Cria objeto para controlar o servo


int potPin = A1; // Especifica em qual pino o sinal do potenciometro está ligado
int readAnalog = 0; // Variável para armazenar o valor lido do potenciometro

void setup(){
Serial.begin(9600);
servomotor.attach(6); // Associa o pino 9 ao objeto servomotor
servomotor.write(0); // Inicia servomotor na posição zero
}
Criando o movimento
de pinça
• Como Controlar um Servomotor – no Tinkercad – Fim do Movimento Pinça
• Vamos usar o circuito com o potenciômetro, mas modificando o código

void loop(){
// Lê o valor do potenciometro. Esse valor está entre 0 e 1023
readAnalog = analogRead(potPin);
Serial.println(readAnalog);

// Traduz a escala de 0-1023 para uma escala de 0-179, usado pelo servo
readAnalog = map(readAnalog, 0, 1023, 0, 179);

// Seta o sinal de controle de acordo com o potenciometro


servomotor.write(readAnalog);
delay(500);
}
Criando o movimento de pinça

• Como Controlar
um Servomotor
– no Tinkercad –
Fim do
Movimento
Pinça
• Vamos usar o
circuito com o
potenciômetro,
mas
modificando o
código
Criando o movimento
de pinça
• Como Controlar um Servomotor – no Tinkercad – Fim do Movimento Pinça
• No Servo real selecione o braço e parafuso da figura abaixo
Criando o movimento
de pinça
• Como Controlar um Servomotor – no Tinkercad – Fim do Movimento Pinça
• No Servo real coloque o braço e liga o Arduino na porta USB
Criando o movimento
de pinça
• Como Controlar um Servomotor – no Tinkercad – Fim do Movimento Pinça
• No Servo real com o código conferido gire o potenciômetro para zero, observando o
serial monitor
Criando o movimento
de pinça
• Como Controlar um Servomotor – no Tinkercad – Fim do Movimento Pinça
• No Servo real se braço não ficou paralelo às abas de montagem, então retire e
coloque-as paralelas.
Criando o movimento
de pinça
• Como Controlar um Servomotor – no Tinkercad – Fim do Movimento Pinça
• No Servo real com o braço paralelo às abas de montagem, parafuse com o menor
parafuso.
Criando o movimento de pinça
• Como Controlar um Servomotor – no Tinkercad – Fim do Movimento Pinça
• No Servo real com o braço paralelo às abas de montagem, parafuse com o menor
parafuso.
Criando o movimento de pinça
• Cortando os palitos de picolé Cole, com cola quente, pegue um de
7cm e cole no braço do Servomotor no
sentido dos fios.
Criando o movimento de pinça
• Cortando os palitos de picolé

Cole, com cola quente, pegue o outro pedaço de


7cm e cole um de 2,4cm paralelo ao de 7cm e
rente a ponta. Cole ele no invólucro do Servo, no
sentido dos fios, mas a parte de 2,4cm oposta aos
fios. E, também, perpendicular às abas de
montagem.
Criando o movimento de pinça
• Cortando os palitos de picolé

Cole, com cola quente, os pedaços de


2,4cm em cruz.
Criando o movimento de pinça
• Cortando os palitos de picolé
Cole, com cola quente, os pedaços de
2,4cm em cruz, no pedaço de 7cm que
está colado no braço do Servomotor,
cole de frente aos fios.
Criando o movimento de pinça
• Cortando os palitos de picolé
Cole, com cola quente, no pedaço de 7cm que está
colado no invólucro do Servomotor, cole de
“costas” aos fios o outro pedaço de 2,4cm com uma
inclinação que permita fechar com o braço.
Criando o movimento de pinça
• Está finalizado

Você também pode gostar