[Ajuda] Braço robotico

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);
}

Gravidade é uma hipótese?

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...

Bom dia!

Você pode usar um esquema igual de macaco sanfona de carro, a camera sempre ficara paralela ao assoalho do carro!

Uma pergunta, você quer que a camera fique paralela ao veiculo ou a tubulaçã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 :smiley:
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.

Estou baseando meu projeto neste robô

Ja a parte de nivelação da câmera estou querendo fazer algo desta forma (a partis dos 0:18min) Robot Arm Kit: Lynxmotion Servo Erector Set Mini Robot Arm Demo by RobotShop.com - YouTube

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

Neste desenho mesmo que postou a forma, que estão colocadas as duas barras inclinadas já promovem que a camera fique sempre na horizontal.

Como o marcsam72 comentou, o mecanismo de elevação da câmera sugere que ela sempre estará alinhada.

Eu comentava algo desse tipo:

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.

A ideia original e do Arne BM - I