O projeto é simples, um "braço" montado com 4 servo motores figura: 10, controlado por um mecanismo articulado com 4 potenciomentros, montado no braço de um individuo. Todo o movimento do braço mecânico é regido pelo movimento do mecânismo acoplado a uma pessoa, ou seja, ele funciona copiando o movimento do seu braço. O prototipo é dividido em algumas Partes: o braço mecânico, o mecanismo de controle e um circuito de controle, que neste caso trata-se de um arduino com um ATmega 328 figura 10. Cada potenciomentro e responsavel por um motor, onde o circuito microcontrolado converte o valor em resistencia do potenciomentro em um sinal modulado PWM, ou seja, o movimento argular de cada articulação do braço humano e acompanhada por um potenciometro que converte esse movimento angular em um movimento semelhante no braço mecânico. veja os detalhes para a construção.
Autor: Vinicius de Moraes Nascimento
Figura: 1
Figura: 2
Continua...
Figura:3
Figura:4
Figura:5
Figura:6
Figura:7
Figura:8
Figura:9
Figura:10
Figura:11
Figura:12. Os quatro potenciomentros devem ser alimentados em paralelo, e o pino de cada potenciometro deve ser ligado nas entradas analogicas: 0, 1, 2, 3 respectivamente.
Figura:13. Potenciometro de 5k, pino do meio é a saida analogica.
Detalhes das ligações dos potenciometros podem ser vistas no
__________________________________________________________________________________
//Controlonado 4 servo motores usando potenciomentros
Servo myservo1; // create servo object to control a servo
Servo myservo2; // create servo object to control a servo
Servo myservo3; // create servo object to control a servo
Servo myservo4; // create servo object to control a servo
int potpin1 = 0; // analog pin used to connect the potentiometer
int potpin2 = 1;
int potpin3 = 2;
int potpin4 = 3;
int val; // variable to read the value from the analog pin
void setup()
{
myservo1.attach(9); // attaches the servo on pin 9 to the servo object
myservo2.attach(10);
myservo3.attach(11);
myservo4.attach(12);
}
void loop()
{
val = analogRead(potpin1); // reads the value of the potentiometer (value between 0 and 1023)
val = map(val, 0, 1023, 0, 179); // scale it to use it with the servo (value between 0 and 180)
myservo1.write(val); // sets the servo position according to the scaled value
delay(15); // waits for the servo to get there
val = analogRead(potpin2); // reads the value of the potentiometer (value between 0 and 1023)
val = map(val, 0, 1023, 0, 179); // scale it to use it with the servo (value between 0 and 180)
myservo2.write(val); // sets the servo position according to the scaled value
delay(15); // waits for the servo to get there
val = analogRead(potpin3); // reads the value of the potentiometer (value between 0 and 1023)
val = map(val, 0, 1023, 0, 179); // scale it to use it with the servo (value between 0 and 180)
myservo3.write(val); // sets the servo position according to the scaled value
delay(15); // waits for the servo to get there
val = analogRead(potpin4); // reads the value of the potentiometer (value between 0 and 1023)
val = map(val, 0, 1023, 0, 179); // scale it to use it with the servo (value between 0 and 180)
myservo4.write(val); // sets the servo position according to the scaled value
delay(15); // waits for the servo to get there
}