Projeto: Controle servomotor com as mãos utilizando sensor flex e Arduino


Neste vídeo mostra como controlar servomotor com as mãos utilizando sensor flex e Arduino. O servomotor gira ao dobrar o sensor flex proporcionalmente. Você pode saber mais sobre o sensor flex acessando aqui

Para este projeto vamos precisar de: dois servomotores, dois sensores flex, dois resistores de 10K ohm, dois capacitores de 1uF e um Arduino. A figura abaixo mostra a ligação a ser feita:

Os capacitores de 1uF são utilizados para diminuir a variação de tensão do sensor flex.

Abaixo está a programação para Arduino:

#include <Servo.h>

int flexpin=A0;
int flexpin1=A1;
int pos=90;
int pos1=90;
Servo myservo, myservo1;
int flex[20];
int flex1[20];
int sumflex=0;
int sumflex1=0;

void setup()
{
myservo.attach(7);
myservo1.attach(8);
Serial.begin(9600);
}

void loop()
{
for(int x=0; x<20; x++)
{
flex[x]=analogRead(flexpin);
flex1[x]=analogRead(flexpin1);
sumflex=sumflex+analogRead(flexpin);
sumflex1=sumflex1+analogRead(flexpin1);

delayMicroseconds(14);
}
sumflex=sumflex/20;
sumflex1=sumflex1/20;
if(Serial.available())
{
Serial.println(sumflex);
Serial.println(sumflex1);
delay(100);
}
pos=map(sumflex,870,800,0,180);
pos1=map(sumflex1,870,800,0,180);
myservo.write(pos);
myservo1.write(pos1);

delay(200);
}

De acordo com a programação, o Arduino faz a leitura dos pinos analógicos, depois faz uma amostragem e dessa amostragem, faz uma média. Depois de calculada a média das amostras, o Arduino converte para posição em graus com a função map. Por fim, o Arduino envia essa posição em graus para os servomotores.

E é isso! Esperamos que tenha gostado! Se tiver dúvidas, poste aqui neste blog! Para sugestões de tutoriais, poste aqui! Para ver outros tutoriais e projetos desenvolvidos pela equipe LdG e por outros garagistas, clique aqui e aqui, respectivamente! Até a próxima!

Referências:

http://www.labdegaragem.org/loja/index.php/34-sensores/sensor-flexi...

http://www.labdegaragem.org/loja/index.php/36-motores-afins/servo-m...

http://labdegaragem.com/profiles/blogs/tutorial-arduino-com-servomotor

http://labdegaragem.com/profiles/blogs/tutorial-de-como-utilizar-o-...

Exibições: 23589

Comentar

Você precisa ser um membro de Laboratorio de Garagem (arduino, eletrônica, robotica, hacking) para adicionar comentários!

Entrar em Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)

Comentário de Ricardo Taoni Xavier em 15 fevereiro 2013 às 16:00

como programar e colocar mais 3 servos? para que ao todo fique 5.

Comentário de Flavio Vieira em 31 dezembro 2012 às 17:55

Se as variaveis analógicas são int flexpin=A0; e int flexpin1=A1; porque no desenho só uma porta analógica é utilizada?

Comentário de Mauro Assis em 1 novembro 2012 às 17:41

Carlos,

Esses servos são de 180º. O importante é que ele consiga fletir o dedo.

Comentário de Carlos Calisto em 1 novembro 2012 às 16:21

todos os servos só giram 90º? 

Comentário de Francisco Lucena Gomes Jr em 20 julho 2012 às 13:32

Marcos, vc pode comprar aqui mesmo na loja do LdG.

Comentário de Marcos Vinicius candido em 20 julho 2012 às 12:20

Pessoal onde comprar este flex?Sou novo no site e estou kerendo começar a usar o arduino, vou precisar muito da ajuda de vcs. Obrigado.

Comentário de Francisco Lucena Gomes Jr em 20 julho 2012 às 9:35

Não entendi pra que as variáveis flex[20] e flex1[20]?

Comentário de Mauro Assis em 11 julho 2012 às 17:00

Eu estou orientando um aluno de Eng. de Controle e Automação na criação de uma "mão biônica", que vai reproduzir os movimentos captados a partir de uma luva equipada com esses sensores. Vejam o primeiro ensaio que fizemos:

 

 

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço