Boa noite, estou fazendo um projeto que consiste em um robô com um braço robótico onde terá uma câmera, esta câmera deve sempre esta em paralelo com o chão, e o braço serviria para regular a altura da câmera.
Este robô servira para a inspeção de um tubo, onde a câmera deve esta sempre no centro do tubo, pretendo fazer um braço bem simples de inicio, um servo na base para regular a altura do braço e outro na "mão" para regular a inclinação da câmera onde vou controlar a sua altura com dois botões, um para subir e outro para abaixar, vou posicionar o robô no inicio do tubo regular a altura do braço através dos botões e iniciar a inspeção( o braço vai se manter na mesma posição durante a inspeção).
Estou em duvida de como fazer para que a câmera sempre se mantenha em paralelo com o solo durante a regulagem da altura, poderia controlar a posição da câmera através de botões também, mas preferia que ela se mante-se em paralelo com o solo de forma automática.
aqui uma imagem básica so para ter uma ideia melhor do robô e do braço
e este é o código do botões
/*
Sketch: Este programa ira girar o eixo de um servomotor para direita ou esquerda lendo o estado de dois botoes assim identificados.
*/
#include <Servo.h>
const int botaoDireita = 2; // identifica o pino do botao a direita
const int botaoEsquerda = 3; // identifica o pino do botao a esquerda
const int servo = 4; // identifica o pino do servomotor
Servo servoMotor; // declara um objeto tipo Servo
int angulo = 90; // controla a posicao do eixo
void setup() {
pinMode(botaoDireita, INPUT);
digitalWrite(botaoDireita, HIGH);
pinMode(botaoEsquerda, INPUT);
digitalWrite(botaoEsquerda, HIGH);
servoMotor.attach(servo); // conecta o motor ao pino de controle
servoMotor.write(angulo); // gira o servo ate o ponto do meio
}
void loop() {
if(digitalRead(botaoDireita) == LOW) { // botao direita pressionado
if(angulo < 180) {
angulo = angulo + 1;
}
} else {
if(digitalRead(botaoEsquerda) == LOW) { // botao esquerda pressionado
if(angulo > 0) {
angulo = angulo - 1;
}
}
}
servoMotor.write(angulo);
delay(5);
}
Se colocares a mesma massa do outro lado do fulcro, teoricamente o braco estará sempre nivelado. O problema é que precisas de, uma vez estando feita a calibracão da altura, bloquear o movimento da câmara por causa de vibracões... por outro lado, assim talvez as vibracões não sejam passadas à câmara.
Repara também que aqui não existem muitos engenheiros mecânicos e o que me parece o teu problema é mecânico e não propriamente eléctrico.
Onde ias colocar o motor?
Já pensaste na possibilidade de usar um sem-fim para elevar a câmara? Isto, obviamente depende dos diâmetros de tubo que estás a pensar usar.
Você realmente precisa que seja um braço? não poderia ser apenas uma haste? um servomotor apenas controlaria a camera na vertical.. pensei que você pudesse achar ruim o fato de ter "um poste" no seu robo para acessar alguns lugares, mas com o braço também teria isso, então você poderia ter hastes de tamanhos diversos para cada ocasião...
e presumo que a câmera deva ficar a frente do veículo para que possas ter visão de todo o tubo (por isso pretende que a camêra fique no cento, certo?).
Eu imagino que a teoria do macaco sanfona seja boa, mas com a câmera fixada a frente
_____________
/ \
/ \
/ \
câmera | --<-rosca infinita ->--| motor que gira a rosca
\ /
\ /
__\______________/____
roda frontal - Peso - roda traseira
desta forma reduzes a limitação em termos de altura (podes ter uma única plataforma), mas passas a ter um proclema com o comprimento, dependendo da altura ^^
Eu usaria um contrapeso entre as rodas (frontais e trazei-as) para contrabalancear o peso da câmera que ficaria na frente.
Obrigado pelas respostas pessoas
Optei pelo braço porque não sei exatamente o diâmetro do tubo, com um elevador poderia ocorrer dois casos extremos a altura máxima do elevador ser pouca e a câmera não chegar no centro do tubo ou a altura do elevador ser muito alta de forma que o robô nem entre no tubo, por isso a escolha por braço, se eu baixa-lo no máximo ele ficara praticamente na altura do robô e posso eleva-lo bastante.
Como disse esse braço inicial vai ser bem simples so para ter uma ideia melhor de como vai funcionar e apresentar para meu professor orientador, no braço final pretendo que mova a câmera para os lados de forma a poder ver melhor uma imperfeição no tubo.
A vibração de momento não vai ser velada em conta, ja que esse é so o projeto para apresentação de ideia e também o robô vai trabalhar em um tubo liso onde creio que a vibração vai ser pouca
Acho que o problema ai é trigonometria.
Se em repouso o braço tem 0º a câmara estará em 180º em relação ao braço
Quando o braço estiver em 30º a câmera deve estar em 150º
Rapaz, se deseja que o seu braço sempre fique paralelo a base, conforme seu video no seg 00:18, tenta montar um sistema igual o meu observe no video:
e bem simples, eu tenho uma haste paralela ao braço, essa haste assim como o braço se comunica com o punho como o punho tem de manter sua posição em dois pontos paralelos distintos ele não se inclina.