Braço Robotico Arduino + Controle PS2

O vídeo acima demonstra como afeta o ruído de diferentes fontes de tensão nos servos, para reduzir estes efeitos eu utilizei capacitores cerâmicos na portas de saída dos servos. Mas se temos uma alimentação insuficiente o ruído e tremedeira dos servo motores continua apresentando.

...
...
...

Acima podemos visualizar alguns detalhes do projeto foram utilizados 02 controladores analógicos do controle de um ps2 e adaptados na estrutura do braço robótico, estou usando um arduino mini pro que acoplado sem solda utilizado barramento macho e femea. O acrílico utilizado de base é retirado de um monitor dell antigo e o led de alto brilho se encontra com silicone no acrílico.

>

Codigo

Vou deixar o codigo abaixo, vou estar verificando mais tarde se o mesmo é a ultima versão



    include Servo.h>

    Servo servo[4];
    //code used for attaching upto 4 servos

    byte angle[4] = {40, 120, 90, 90};   // inicializa servos posicion, (7)
                                         //braço largo, (6) braço curto

    byte potPin[4] = {A0, A1, A2, A3};   // input pins to attach your potentiometers
    byte servoPin[4] = {7, 6, 10, 9};    // input pins to attach servos

    void setup() {

      //Serial.begin(9600);
      //Serial.println("Starting DiggerCode.ino");


      for (byte n = 0; n < 4; n++) {     // atribui los nomes aos servos
        servo[n].attach(servoPin[n]);
      }
    }

    void loop() {
      readPotentiometers();
      moveServos();
      delay(10);
    }

    void readPotentiometers() {
      int potVal;
      for (byte n = 0; n < 4; n++) {
        potVal = analogRead(potPin[n]);  // faz leituras dos potenciometros.

        if (potVal < 200) {         // dead zone for the joystick I used is 200 to 550.
          angle[n] += 1;            // Si la leitura do potenciometro es menor a
                                    // 200, el suma "1", angle[n] + 1,
          if (angle[n] > 170) {
            angle[n] = 170;
          }
        }

        if (potVal > 550) {         // deadzone upper value
          angle[n] -= 1;
          if (angle[n] < 10) {
            angle[n] = 10;
          }
        }

      }
    }

    void moveServos() {
      for (byte n = 0; n < 4; n++) {
        servo[n].write(angle[n]);
      }
    }

Meu Perfil

Amo aprender, conhecer, diferentes áreas, mesmo sendo minha formação inicial técnica, aprendi, que devemos ter uma visão macro do mundo e da importância como nosso serviço ou produto gera valor para à sociedade, por isso, o mundo do marketing e dos negócios devem estar sempre presentes para obter um bom resultado. Lembrando sempre que aqui estamos de passagem, numa vida finita dentro de um universo infinito ao menos para os seres humanos.