Resumen
Este era un bot que solíamos usar para impartir talleres sobre cómo usar un Arduino para controlar un robot caminante.
El robot solo se movía hacia adelante y hacia atrás, pero mostraba a los usuarios cómo conectar un joystick, un interruptor de encendido, baterías y servomotores a un Arduino y luego programarlo todo para que funcionara.
Instrucciones
// Aprende más en:http://www.instructables.com/id/3D-Printed-Robot/
// Este código está en el Dominio Público.
//
//añade la biblioteca del servo
Incluye
//Crea dos instancias de servo
Servo mi servo;
Servo myservo1;
int frontPin = 9;
int backPin = 10;
//En teoría, 90 es el centro perfecto, pero normalmente es más alto o más bajo.
Int FrontBalanced = 91;
int BackCentered = 102;
int ángulo = 25;
// Variables para compensar el centro de equilibrio trasero cuando el delantero se desplaza.
int backRight = BackCentered - 10;
int backLeft = BackCentered + 10;
int xPin = A4;
int yPin = A5;
const int FRONT = 1;
const int BACK = 2;
const int IZQUIERDA = 3;
const int DERECHA = 4;
void setup()
{
myservo1.attach(frontPin);
myservo.attach(backPin);
myservo1.write(FrontBalanced);
myservo.write(BackCentered);
Serial.begin(9600);
}
void frontLeg(int x) {
myservo1.write(x);
}
void backLeg(int x) {
myservo.write(x);
}
void loop()
{
int x = analogRead(xPin);
int y = analogRead(yPin);
Serial.print("x :");
Serial.println(x);
Serial.print("y :");
Serial.println(y);
int dirección = 0;
si (x > 700) {
Dirección = ATRÁS;
} else if (x < 300) {
Dirección = FRENTE;
}
// dirección = DERECHA;
// } else if (y < 300) {
// dirección = IZQUIERDA;
// }
switch (dirección) {
Caso FRONT:
front();
Pausa;
CARATULA TRASERA:
Volver atrás;
Pausa;
caso IZQUIERDO:
izquierda();
Pausa;
caso DERECHO:
derecha();
Pausa;
Predeterminado:
derecho();
Pausa;
}
retraso(1);
}
//Función de caminata.
void front(){
pie_delantero(Equilibrio_delantero + ángulo);
retraso(50);
Pata trasera (Centrado en la parte posterior - ángulo);
retraso(200);
pie delantero (FrontBalanced - ángulo);
retraso(50);
Pata trasera (Centro trasero + ángulo);
retraso(200);
}
void back(){
Pata trasera (Centrado en la parte posterior - ángulo);
retraso(50);
pie_delantero(Equilibrio_delantero + ángulo);
retraso(200);
Pata trasera (Centro trasero + ángulo);
retraso(50);
pie delantero (FrontBalanced - ángulo);
retraso(200);
}
//Función de caminata.
void left(){
frontLeg(FrontBalanced + ángulo - 5);
retraso(100);
Pata trasera (Centrado en la parte posterior - ángulo);
retraso(300);
frontLeg(FrontBalanced - ángulo - 5);
retraso(100);
Pata trasera (Centro trasero + ángulo);
retraso(300);
}
//Función de caminata.
void right(){
frontLeg(FrontBalanced + ángulo + 5);
retraso(100);
Pata trasera (Centrado en la parte posterior - ángulo);
retraso(300);
frontLeg(FrontBalanced - ángulo + 5);
retraso(100);
Pata trasera (Centro trasero + ángulo);
retraso(300);
}
void straight() {
pie delantero (Equilibrado delantero);
pie trasero (Centrado en la parte posterior);
}
Tags
Source du modèle
