OmniWorm: un gusano de Robot omnidireccional (5 / 5 paso)

Paso 5: Programa y disfrute su nuevo Robot!

/*

Abajo está el código evitando obstáculo para OmniWorm! No dude en adaptar en consecuencia.
------------------------------------------------------------------------------------

Lo que usted necesita cambiar:
------------------------

CÓDIGO de SERVO: Dos servos pueden resultar diferentes direcciones para cada ángulo
enviado a él. Por ello, pruebe cada servo seperatly. Establecido en el
máximo ángulo antes de montar para asegurarse el robot se tirarán en
una caja y que los servos no empujará separan las direcciones. También,
puede que necesite utilizar el sexto servo (servoFront2) dependiendo de la
peso de su diseño. Mina es total sólo 3 libras por lo que no lo necesito: P

SERVOS: 313WP servos van desde 20 hasta 160 grados sin editar el
Biblioteca de servo. 140 grados es suficiente para esta aplicación
sin embargo. Si utilizas servos diferentes, usted puede conseguir más o menos que
140 grados. Si el servo está clasificado para 180 grados y obtienes un
mucho menos, usar pwm o tratar de cambiar la pulsewidths de min y max
en la biblioteca del servo (servo.h). Editar el archivo, descargamos Notepad ++

MOTOR código: estoy usando un conductor del motor robusto medio roto de resistente
circuitos. La etiqueta del perno EM se suelda a Dir2 en el escudo como la
perno normal no cambiaba de dirección. Si está utilizando el mismo
Escudo, luego borrar EM y llevar a cabo! Si usted está usando un puente h,
entonces no dude en utilizar pernos 3, 11-13 o elegir su propio. Ten cuidado
no para dominar el circuito aunque! A continuación se muestran enlaces a tutoriales.
El último eslabón es donde se puede comprar el escudo que utilizo!

http://ITP.nyu.edu/physcomp/Labs/DCMotorControl

http://www.ECS.umass.edu/ECE/M5/tutorials/H-Bridge_tutorial.html

http://www.societyofrobots.com/schematics_h-bridgedes.shtml

http://www.ruggedcircuits.com/motor-control/Rugged-motor-driver

MOTORES: No su cartera un gran favor y no destrozar namebrand
Parallex servos para funcionar como motores de la C.C. (a menos que si se rompieron
como el mío fueron). Si hackearles, desatornille la parte posterior,
Tire de los tres cables apagado, ponga los tornillos de nuevo en para mantener la
caja de engranajes junto (algunos hotglue podría ayudar) y la soldadura con cuidado un
cable a cada extremo del motor DC solamente. Soldadura exceso podría colar la configuración.
Pero simplemente compraba robot amarillo ruedas/gearboxs fuera de ebay.
La búsqueda para "robots rueda" y se abrirá. Alternativly, uso
lo 360 grados servos como... bueno... servos! Usted puede Agregar o
restar ángulos de movimiento adelante/atrás.

FUNCIONES: Tienes que editar las funciones (o jugar con cables)
para llegar a trabajar con su diseño. Algunos viejos buen ensayo y error
hará el truco!

Unas palabras de Consejo:
----------------------

Si está utilizando una fuente de energía externa para tus servos, conecte
de tierra el suelo para arduino. También, tenga cuidado de no conectar
la batería en backwords o corto hacia fuera... fácilmente puede matar
tus servos. Además, si usted dominar un servo puede morir. Inicio
sus servos de baja potencia y trabajan su manera para arriba. Mi setup es
empujando it... > :)

Yo sugeriría que usted encontrar (o hacer) tu propio puente h para control de
sus motores. Además, conectar la tierra a arduino. Tenga cuidado de
no sobrecargar su instalación! Por último, una función de reset mantiene la configuración
de un cortocircuito.

No olvide que usted necesita inclinar sensores si vas a dejar del lado
ruedas de movimiento al dibujo actual.

No se sienten limitados a los pines que estoy usando. Elija su propia digital
alfileres!!!

Mi código está adaptado de:
------------------------

http://www.ruggedcircuits.com/Rugged-motor-driver

http://Arduino.CC/en/Reference/ServoWrite

http://arduinobasics.blogspot.com/2012/11/arduinobasics-HC-sr04-Ultrasonic-sensor.html

*/

#include < Servo.h >
Incluir la librería Servo para que no tengamos que usar PWM

Servo servoFront;
Servo servoFront2;
Servo servoTail;
Servo servoTail2;
Servo servoBack;
Servo servoBack2;

Esto define nuestros nombres del servo (servoFront etc..)

Habilitar salidas (PWM) (escudo resistente)
#define EN1_PIN 3
#define EN2_PIN 11

Dirección salidas (escudo resistente)
#define DIR1_PIN 12
#define DIR2_PIN 13
#define EM 10 //Cause 13 no quieren trabajar. Número de mala suerte! =/

#define echoPin 8 / / Echo Pin (para sensor ultrasónico)
#define trigPin 9 / / pasador de gatillo (para sensor ultrasónico)

int maximumRange = 200; Rango máximo necesario (puede cambiar)
int minimumRange = 0; Rango mínimo necesario (puede cambiar)
larga duración, distancia; Duración permite calcular la distancia

void setup() {}

servoFront.attach(6);
servoTail.attach(1);
servoTail2.attach(2);
servoBack.attach(4);
servoBack2.attach(5);

pinMode (EN1_PIN, salida);
digitalWrite (EN1_PIN, bajo);
pinMode (EN2_PIN, salida);
digitalWrite (EN2_PIN, bajo);
pinMode (DIR1_PIN, salida);
digitalWrite (DIR1_PIN, bajo);
pinMode (DIR2_PIN, salida);
digitalWrite (DIR2_PIN, bajo);

pinMode (trigPin, salida);
pinMode (echoPin, entrada);

Configurar las entradas y salidas para motores, servos, sensor

Closed();
retrasar (1000);

Mantiene el robot doblado antes de que comience el bucle.
}

void loop() {}
rearme;
Delay(50);
Closed();
Scan(); medidas de distancia por ultrasonidos
Delay(90);

Si (distancia < = 20 & & distancia > = 0) {//if la distancia es de menos de 15 cm
opened();
Delay(1000);
RESET();
Delay(50);
spin_right();
opened();
Delay(1500);
Closed();
Delay(1000);
Scan();
Delay(800);
Si (distancia < = 15 & & distancia > = 0) {}
opened();
Delay(1000);
RESET();
Delay(50);
spin_left();
opened();
Delay(2200);
}
Else {}
RESET();
Delay(50);
inch();
inch();
inch();
inch();
inch();
}
}

else {//if la distancia es mayor que 15 cm
RESET();
Delay(50);
Closed();
Forward();
Delay(1000);
}
}

/*
A continuación se presentan funciones que clama a través de nuestro bucle. Te hace la vida mucho
más fácil, como se puede controlar múltiples pasadores y servos a la vez!
*/

void closed() {}
servoFront.write(20);
servoTail.write(20);
servoTail2.write(160);
servoBack.write(20);
servoBack2.write(160);
}

void opened() {}
servoFront.write(140);
servoTail.write(20);
servoTail2.write(160);
servoBack.write(100);
servoBack2.write(80);
}

void inch() {}
Closed();
Delay(1000);
servoTail.write(160);
servoTail2.write(20);
Delay(1000);
servoTail.write(160);
servoTail2.write(20);
servoBack.write(160);
servoBack2.write(20);
Delay(1000);
servoTail.write(20);
servoTail2.write(160);
servoBack.write(160);
servoBack2.write(20);
Delay(1000);
servoFront.write(140);
Delay(1000);
}

void spin_right() {}
digitalWrite (DIR1_PIN, alto);
analogWrite (EN1_PIN, 255);
digitalWrite (DIR2_PIN, alto);
analogWrite (EN2_PIN, 255);
digitalWrite (EM, alto);
}

void spin_left() {}
digitalWrite (DIR1_PIN, bajo);
analogWrite (EN1_PIN, 255);
digitalWrite (DIR2_PIN, alto);
analogWrite (EN2_PIN, 255);
digitalWrite (EM, bajos);
}

void backward() {}
digitalWrite (DIR1_PIN, alto);
analogWrite (EN1_PIN, 255);
digitalWrite (DIR2_PIN, bajo);
digitalWrite (EM, alto);
analogWrite (EN2_PIN, 255);
}

{} void forward()
digitalWrite (DIR2_PIN, alto);
analogWrite (EN2_PIN, 255);
digitalWrite (DIR1_PIN, bajo);
analogWrite (EN1_PIN, 255);
digitalWrite (EM, alto);
}

{} void reset()
analogWrite (EN2_PIN, 0);
analogWrite (EN1_PIN, 0);
Delay(15);
}

{} void scan()
digitalWrite (trigPin, LOW);
delayMicroseconds(2);

digitalWrite (trigPin, HIGH);
delayMicroseconds(10);

digitalWrite (trigPin, LOW);
duración = pulseIn (echoPin, HIGH);

Calcular la distancia (en cm) basada en la velocidad del sonido.
distancia = duración/58.2;

Delay(50);
}

Artículos Relacionados

Gusano Robot blando de la pulgada

Gusano Robot blando de la pulgada

(Tiempo transcurrido videos sobre pulgadas gusano robot suave)Unos meses atrás, vi los videos de los robots suaves de Matthew Borgatti (videos más abajo) y realmente estaba cautivado por ellos. Me inspiraban a pensar en construir un robot suave media
Robot gusano

Robot gusano

Este instructable fue creado en cumplimiento de la exigencia de proyecto de la Makecourse de la Universidad de South Florida (www.makecourse.com)Se trata de un Instructable en la construcción de un robot gusano. Este modelo en particular fue construi
De un mecanismo de apertura de la puerta de unidad de CDROM del gusano Robot -

De un mecanismo de apertura de la puerta de unidad de CDROM del gusano Robot -

Aquí es un simple hacer robot gusano de recuperado pedazos de madera de un cajón y una puerta de unidad de CDROM viejo mecanismo de apertura.Para construir el robot gusano simple que imita el mecanismo de arrastre necesita conocimientos básicos de so
Dar tu Robot frambuesa Pi un cerebro de gusano

Dar tu Robot frambuesa Pi un cerebro de gusano

El gusano Elegans de C es uno de los animales más estudiados en la ciencia. En Neurobiología, es el modelo más básico del cerebro los científicos usan para estudiar cómo funciona el cerebro. Ahora usted puede tener un robot que piensa como uno!El cer
Robots suaves: Hacer un músculo Artificial brazo y pinza

Robots suaves: Hacer un músculo Artificial brazo y pinza

Usando los músculos de aire artificial, un brazo de robot muy flexible y pinza se pueden hacer.Este robot suave es accionado por aire comprimido y cada uno de los 11 músculos puede controlarse mediante un control remoto universal infrarrojo estándar
Bot - un inteligente arduino bluetooth robot la pipa

Bot - un inteligente arduino bluetooth robot la pipa

Este es mi primer instructables. Aquí estoy mostrando cómo hacer un dos ruedas arduino bluetooth robot barato, utilizando tubos de PVC y sus articulaciones (para hacer el cuerpo). Es sencillo de hacer y fácil de programar. Tienen un montón de diversi
Robot serpiente impreso 3D

Robot serpiente impreso 3D

Cuando llegué mi impresora 3D empecé a pensar qué puedo hacer con él. Imprimí un montón de cosas pero quería hacer una construcción con impresión 3D. Entonces pensé en hacer animales robot. Mi primera idea era hacer un perro o una araña, pero mucha g
Compañero de cama Robot cama

Compañero de cama Robot cama

Compañero de cama es una cama de robot autónomo que busca nuevos contratos. En otras palabras, he robotizado mi cama personal para socializar y compartir de sí mismo con otros.Tal vez un poco más de una explicación está en orden. Un acompañante puede
Robots de papel micro (cangrejo de cyborg)

Robots de papel micro (cangrejo de cyborg)

Su un robot hexápodo, sólo unos pocos milímetros de alto y su hizo casi enteramente de papel!Cada una de las patas de los insectos mecanizados están completamente articuladas y tiene la capacidad de moverse a velocidades de hasta 240 pasos por minuto
ARD-e: el robot con un Arduino como un cerebro

ARD-e: el robot con un Arduino como un cerebro

cómo crear un robot de código abierto Arduino controlado por menos de $100.Esperemos que después de leer esto instructable usted será capaz de dar su primer paso en robótica. ARD-e cuesta unos $90 a $130 dependiendo de cuánto electrónica repuesto tie
Mano Robot de mímica

Mano Robot de mímica

Hola gente, este es el profundo Informe sobre un robot mímico mano hice. La idea vino a mí cuando yo quería un robot que podría literalmente hacer algunas tareas por mí y por lo que utiliza la mano como referencia para mi diseño y hecho un prototipo
Brazo robot

Brazo robot

Diseño y tecnologíaNivel 2Andrew MurtonPaso 1: El briefDeclaración conceptualMáquinas se necesitan para mover las cosas bajo control humano o computadora. Generalmente son necesarios para permitir que los seres humanos para mover objetos pesados/difí
Theo Jansen inspirado poca robot insecto

Theo Jansen inspirado poca robot insecto

Construí este insecto caminando, inspirado en las creaciones de Theo Jansen , que utiliza un algoritmo genético para encontrar un conjunto de vínculos para formar una pierna donde el pie se mueve en un lugar conveniente para caminar. Lo que él vino p
Cómo hacer un Robot bola de equilibrio

Cómo hacer un Robot bola de equilibrio

el año pasado, he hecho esta bola equilibrio robot. Puede colocarse en una bola estable por el sistema de equilibrio de sí mismo.Sólo hay un conecte entre el robot y el suelo, por lo que es más flexible que el tradicional robot con ruedas. Puede move