robot arm controlado por servos

hola a todos , estoy con el proyecto del robot arm controlado por servos primero lo hice que los servo estaban controlados por push button utilizando este codigo .

#include<Servo.h>

int pos  = 0; // variables  (primera)
int pos2 = 0; //  variables (segunda)
int pos3 = 0; //  variables (tercera)
int pos4 = 0; //  variables (cuarto)

Servo servo;  //  servo1
Servo servo2; //  servo2
Servo servo3; //  servo3
Servo servo4; //  servo4

void setup() {

  pinMode(2, INPUT);//servo1
  pinMode(3, INPUT);//servo1
  pinMode(4, INPUT);//servo2
  pinMode(5, INPUT);//servo2
  pinMode(6, INPUT);//servo3
  pinMode(7, INPUT);//servo3
  pinMode(8, INPUT);//servo4
  pinMode(9, INPUT);//servo4


  
  servo.attach(10); //selecionar puerto 10 para el servo 
  servo2.attach(11); //selecionar puerto 11 para el servo 
  servo3.attach(12); //selecionar puerto 12 para el servo 
  servo4.attach(13); //selecionar puerto 13 para el servo 

}



void loop() {

  
  if (digitalRead(2) == HIGH && pos < 180) {    //  conexion del push boton servo 1
    pos++;
    servo.write(pos);
    delay(15);
  }
  if (digitalRead(3) == HIGH && pos > 0) {    // conexion del push boton servo 1
    pos--;
    servo.write(pos);
    delay(15);
  }


  if (digitalRead(4) == HIGH && pos2 < 180) {  // conexion del push boton servo 2
    pos2++;
    servo2.write(pos2);
    delay(15);
  }
  if (digitalRead(5) == HIGH && pos2 > 0) {   //  conexion del push boton servo 2 
    pos2--;
    servo2.write(pos2);
    delay(15);
  }


 
  if (digitalRead(6) == HIGH && pos3 < 180) {  // conexion del push boton servo 3
    pos3++;
    servo3.write(pos3);
    delay(15);
  }
  if (digitalRead(7) == HIGH && pos3 > 0) {   //  conexion del push boton servo 3 
    pos3--;
    servo3.write(pos3);
    delay(15);
  }



  if (digitalRead(8) == HIGH && pos4 < 180) {  // conexion del push boton servo 4
    pos4++;
    servo4.write(pos4);
    delay(15);
  }
  if (digitalRead(9) == HIGH && pos4 > 0) {   //  conexion del push boton servo 4 
    pos4--;
    servo4.write(pos4);
    delay(15);
  }
  
}

el resultado fue este - YouTube

la pregunta es puede haber alguna forma de poder controlar los cuatros servos con sensores ultrasonicos, o automatizarlos quisiera una ayuda en esa parte ya que no soy tan experto en el tema

Creo que vas por muy buen camino!!! Lo siento algo brusco en los movimientos pero has verificado el concepto y ahora puedes pasar a mejorarlo.

puede haber alguna forma de poder controlar los cuatros servos con sensores ultrasonicos, o automatizarlos

Puedes ampliar la idea? Quieres por ejemplo que cumpla con una tarea automátizada o que tenga cierta capacidad de reconocer algo y luego moverlo a un determindo lugar. Tendrias que comenzar a transformar cada movimiento en coordenadas sea esféricas el el formato que te resuelte mas cómodo para poder darle ordenes de ir a un punto con suavidad, luego hacer algo como tomar ese broche y moverlo a otro sitio. Digamos como un lenguaje. Pero es mi visión del tema.

surbyte: Puedes ampliar la idea? Quieres por ejemplo que cumpla con una tarea automátizada o que tenga cierta capacidad de reconocer algo y luego moverlo a un determindo lugar. Tendrias que comenzar a transformar cada movimiento en coordenadas sea esféricas el el formato que te resuelte mas cómodo para poder darle ordenes de ir a un punto con suavidad, luego hacer algo como tomar ese broche y moverlo a otro sitio. Digamos como un lenguaje. Pero es mi visión del tema.

esa es la idea que quiero pero donde me pierdo es como hacerlo en codigo ya que soy novato y no conozco mucho del tema , este fue cometiendo errores por el estilo , pienso aagregar otro servo es decir modificar el arm en si ya estoy tomando las mediciones en auto cad pero eso no viene al tema . como podria automatizarlo , en si es un proyecto que quiero apreder a programar con arduino pero solo hay muchas cosas que no entiendo