Arduino, Internet das Coisas e Computação vestível |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Motores
|
COMPACTO - Torque: 1,8 kgf.cm Veja um projeto: clique aqui |
FORÇA E PRECISÃO - Torque: 102 kgf.cm |
VELOCIDADE E POSIÇÃO - Torque: 30 kgf.cm Veja um projeto: clique aqui |
É uma máquina eletromecânica que tem movimento proporcional ao comando dado por meio de um sinal de controle. Por meio do controle de seu movimento direciona-se à posição pretendida e com velocidade monitorada. O eixo deste motor move-se em 180° (cento e oitenta graus) e, em alguns modelos, 360° (trezentos e sessenta graus). Esta alteração é possibilitada comumente em aeromodelismos. Assim, sua característica mais marcante é a capacidade que possui de movimentar o seu braço até determinada posição e mantê-lo. A especificação deste motor atende às seguintes características: tamanho, torque, velocidade, material das engrenagens, liberdade do giro do eixo, consumo.
Possui três componentes básicos:
1) Sistema atuador: é constituído por um motor elétrico, embora também possa encontrar servos com motores de corrente alternada, a maioria utiliza motores de corrente contínua. Também está presente um conjunto de engrenagens que forma uma caixa de redução com uma relação bem longa o que ajuda a amplificar o torque;
2) Sensor: normalmente é um potenciômetro solidário ao eixo do servo. O valor de sua resistência elétrica indica a posição angular em que se encontra o eixo. A qualidade desse vai interferir na precisão, estabilidade e vida útil do servo motor;
3) Circuito de controle: é formado por componentes eletrônicos discretos ou circuitos integrados e geralmente é composto por um oscilador e um controlador PID (controle proporcional integrativo e derivativo) que recebe um sinal do sensor (posição do eixo) e o sinal de controle e aciona o motor no sentido necessário para posicionar o eixo na posição desejada.
Hand robot InMoovProjeto de uma mão robótica biônica que utiliza Arduino Uno R3, Servo motores e Sensor de força resistivo para dirigir e controlar cada dedo separadamente. Ele foi desenvolvido em 2012 pelo escultor e designer francês Gael Langevin. Saiba mais em: O modelo para impressão 3D é disponibilizado em: https://www.thingiverse.com/thing:17773/files. A "Hand robot InMoov" é um subprojeto do "Robot InMoov", primeiro robô em tamanho real impresso em 3D de código aberto. Ele pode ser replicável em qualquer impressora 3D com uma área de 12 x 12 x 12 cm. Foi criado como uma plataforma de desenvolvimento para Universidades, Laboratórios e Hobistas. Saiba mais sobre "Hand robot InMoov" em: http://inmoov.fr/
// Projeto: Hand robot InMoov - movimenta um dedo da mão #include "Servo.h" const int Pino_Servo1 = 5; const int Pino_Resistivo1 = A0; int Leitura_Resistivo1; int Posicao_Servo1; Servo Meu_Servo1; void setup () { Serial.begin (57600); Meu_Servo1.write (30); // Mão fechada. Posicao_Servo1 = 30; Meu_Servo1.attach (Pino_Servo1); } void loop () { Leitura_Resistivo1 = analogRead (Pino_Resistivo1); Serial.print ("Analog reading = "); Serial.print (Leitura_Resistivo1); // Leitura bruta // --------- limites estabelecidos da leitura -------- // if (Leitura_Resistivo1 < 25) { Serial.println (" - Sem pressao"); } else if (Leitura_Resistivo1 < 30) { Serial.println (" - Toque leve"); } else if (Leitura_Resistivo1 < 50) { Serial.println (" - Aperto leve"); } else if (Leitura_Resistivo1 < 110) { Serial.println (" - Aperto médio"); } else if (Leitura_Resistivo1 < 200) { Serial.println (" - Aperto forte"); } delay (1000); AbreMao (Posicao_Servo1, 1); delay (3000); FechaMao (Posicao_Servo1, 1); delay (3000); } void AbreMao (int posicao, int servo) { for (; posicao < 130; posicao ++) { Meu_Servo1.write (posicao); if (analogRead (Pino_Resistivo1) > 30) { break; } } } void FechaMao () { Meu_Servo1.write (30); posicao = 30; }
[Voltar] |
[Avançar] |