domingo, 5 de diciembre de 2021

Araña Robot proyecto con Arduino

Competencia a desarrollar

Diseña algoritmos y desarrolla programas de aplicación, utilizando un lenguaje de programación estructurado de alto nivel, para su aplicación en la solución de problemas propios del área electrónica.


Introducción 

Las competencias adquiridas en la asignatura permitirán al estudiante desarrollar aplicaciones de cómputo en el modo de consola, las cuales podrán facilitar la solución de problemas de ingeniería, tales como los fenómenos físicos cubiertos en la asignatura de mecánica clásica, circuitos de corriente directa estudiados en electricidad y magnetismos, estadística descriptiva definida en la materia de probabilidad y estadística.

El desarrollo de programas estructurados aporta las bases de programación para la solución de problemas de cálculo en ingeniería y para el desarrollo de programas de aplicación con interfaces graficas de usuario.


Proyecto 

El proyecto como fin de materia de Programación Estructurada se basa en la programación de algoritmos, donde aplicaremos el conocimiento adquirido en la materia, con la intención de poder crear el robot utilizando materiales relativamente accesibles, utilizando una tarjeta de microcontrolador para realizar la programación y realizar el movimiento de una araña robótica. 

Qué es una araña robot? La Araña robot o también llamado cuadrúpedo es un robot que hace una representación básica de los movimientos de la araña, Puede tener cuatro, seis o hasta 8 patas y realiza sus movimientos utilizando motores, servomotores y en algunos casos motores a paso, el movimiento de cada pierna está relacionado con las otras patas para identificar la posición del cuerpo de la araña robótica y también para controlar el equilibrio del cuerpo del robot.


Materiales 


- Estructura en acrílico.
- Arduino nano.
- Shield Arduino nano.
- Modulo Elevador de Voltaje Step-Up
- 8 servomotores SG90 o MG90S
- Sensor Ultrasónico.
- Base para Baterías
- 2 Baterías de litio a 9800 mAh
- Interruptor.
- 4 cables DuPont H-h
- Tornillería 3mm.

Desarrollo del proyecto


  • Armado de la araña: Las bases y las pinzas deben de estar calibradas a 90°


  • Alimentación del prototipo: La conexión de baterías será en paralelo, para aumentar la capacidad de Amperes-hora (Ah), sin embargo, el voltaje de la batería seguirá siendo el mismo. Por lo cual se ocupara el elevador de voltaje(Step-Up), para regular a 5v para la alimentación del Arduino. 

  • Ejemplo del algoritmo de programación. 

// se incluye la librería para controlar los servomotores.
#include <Servo.h>

// se nombran los servomotores de las base. 
Servo s1; //Servo articulación Adelante/Atrás.
Servo s2;
Servo s3;
Servo s4;
// se nombran los servomotores de las pinzas. 
Servo p1; //Servo articulación Arriba/Abajo.
Servo p2;
Servo p3;
Servo p4;

// se agraegan variabes de proceso
int velocidadpos = 100;
int velocidadavan = 50;
int velocidadres = 50;
int iterador = 0;
int distance;
int trigg = 5;
int echo = 4;

int duracion; // Variables de procesos.

void caminar();
double sensor();


void setup()
{
#define S1 2
#define S2 3
#define S3 4
#define S4 5
#define P1 6
#define P2 7
#define P3 8
#define P4 9

//Número de los servos en orden horario comenzando por el servo superior iazquierdo.
  s1.attach(S1);
  s2.attach(S2);
  s3.attach(S3);
  s4.attach(S4);
  p1.attach(P1);
  p2.attach(P2);
  p3.attach(P3);
  p4.attach(P4);

  pinMode(trigg,OUTPUT); //Declaración de entrada y salida del sensor ultrasónico
  pinMode(echo, INPUT);
  Serial.begin(9600);
  
}

void caminar(){
   //Previo: Movimiento hacia adelante patas 1 y 3...
  if(iterador == 0){
  p3.write(145); //Sube pata 3
  delay(velocidadpos);
  s3.write(170); // Adelante pata 3
  delay(velocidadpos);
  p3.write(100); // Baja pata 3
  delay(velocidadpos);
  }else{
    s3.write(170); // Adelante pata 3
  delay(velocidadpos);
  p3.write(100); // Baja pata 3
  delay(velocidadpos);
  }
  
  
  p2.write(170); // Suben patas 2 y 4...
  delay(velocidadpos);
  p4.write(170);
  delay(velocidadpos);
  
  //Movimiento adelante patas 1 y 3...
  s1.write(170);
  delay(velocidadavan);
  s3.write(90);
  delay(velocidadavan);

//Previo: Movimiento adelante patas 2 y 4...
  if(iterador != 0){
    p2.write(145); //Sube pata 2
  delay(velocidadpos);
  s2.write(90); // Adelante pata 2
  delay(velocidadpos);
  p2.write(100); // Baja pata 2
  delay(velocidadpos);}
  
  s4.write(10); // Posicion para avanzar
  delay(velocidadres);
  p4.write(100); // Baja pata 4
  delay(velocidadres);

  p1.write(170); // Suben patas 1 y 3...
  delay(velocidadpos);
  p3.write(170);
  delay(velocidadpos);

 //Moviemiento adelante patas 2 y 4...
  s2.write(10);////
  delay(velocidadavan);
  s4.write(90);
  delay(velocidadavan);
  
 //Regresa pata 1 a posición inicial...
  s1.write(90); // Posición Inicial.
  delay(velocidadres);
  p1.write(100); // Baja pata 1
  

iterador = iterador + 1;
}

double sensor(){ //Función para obtener la distancia del obstáculo...
digitalWrite(trigg, HIGH);
  delay(1);
  digitalWrite(trigg, LOW);
  duracion= pulseIn(echo, HIGH);
  double distancia = duracion / 58.2;
  Serial.println(distancia);
  delay(200);
  return distancia;

void loop()
{
 
 caminar();
  
   
}



Araña Robot proyecto con Arduino

Competencia a desarrollar Diseña algoritmos y desarrolla programas de aplicación, utilizando un lenguaje de programación estructurado de alt...