Paso 21: Parte 1 - la cabeza: muestras de uso y de código
Conexión de la cabeza:
La cabeza fue diseñada para ser alimentado de la SLA de robots 4 x 12v pilas conectadas en paralelo por lo que necesitarás al menos una fuente de poder 12v enganchada a rápido de motorshield desconexión el cable de alimentación.
El USB puede se conectado a un Pc de manera continua (como en mi caso) o usado para la cabeza basada en las especificaciones del programa.
Codificación de ideas:
Vamos a echar un vistazo a mi ejemplo;
El cuerpo de robots, que voy a hablar de una continuación, ha construido - en un laptop Vostro. Arduino de la cabeza no tiene mucho más lógica, pero en cambio se basa en escuchar los comandos del equipo antes de ejecutar ciertas tareas. También es responsable de dar información de la los programas de dejar saber cuando ha recibido órdenes y sensor ultrasónico.
Una manera simple de ir sobre esto es a través de Prensas de teclas en un teclado e imprimir nuestros valores a varios programas.
Algunos ejemplos:
Motores en la cabeza son controlados por las prensas de teclado, que a su vez se asignan a un programa que puede controlarlos directamente o entregar el control al conductor mediante el uso de un controlador conectado. Me disculpo por ser intencionalmente vago pero actualmente estoy construyendo el software que puedo usar para controlar este robot a través de varios medios inalámbricos o por internet. -Muy abierta terminó. El código para esto en el Arduino sería algo como lo siguiente:
Motores:
#include < AFMotor.h >
AF_DCMotor motor1 (1, MOTOR12_64KHZ); crear motor #1 pwm de 64KHz
AF_DCMotor motor2 (2, MOTOR12_64KHZ); crear motor #2, pwm de 64KHz
AF_DCMotor motor3 (3, MOTOR12_1KHZ); crear motor #3, 1KHz pwm
AF_DCMotor motor4 (4, MOTOR12_1KHZ); crear motor #4, pwm 1KHz
void setup() {}
Serial.Begin(115200); Biblioteca serie a 115200 bps
Serial.println ("Adafruit L293D Motor Shield");
Serial.println ("conexión en: 115.200 baudios");
Serial.println("");
Serial.println ("Status: ACTIVE");
}
void loop() {}
leer el sensor:
Si (Serial.available() > 0) {}
int inByte = Serial.read();
int velocidad; Variable local
interruptor (inByte) {}
Inclinación (arriba y abajo) [Motor 1]
caso 'u': / / ver
motor1.SETSPEED(225);
motor1.Run(Forward);
Serial.println ("ver");
Serial.println("");
rotura;
caso 'i': / / parada de Motor
motor1.Run(release);
Serial.println ("parada Tilt");
Serial.println("");
rotura;
caso ' o ': / / mirar hacia abajo
motor1.SETSPEED(225);
motor1.Run(backward);
Serial.println ("mirar abajo");
Serial.println("");
rotura;
Pan (izquierdo y derecho) [Motor 2]
caso 'j': / / mirar izquierda
motor2.SETSPEED(225);
motor2.Run(Forward);
Serial.println ("Look Left");
Serial.println("");
rotura;
caso 'k': / / parada de Motor
motor2.Run(release);
Serial.println ("parada PAN");
Serial.println("");
rotura;
caso 'l': / / mirar derecha
motor2.SETSPEED(225);
motor2.Run(backward);
Serial.println ("mirada derecha");
Serial.println("");
rotura;
** El "Serial.println" fue utilizado en este ejemplo para probar a través de la masilla para asegurar que los comandos se da de hecho estaban dando los resultados correctos. También fue cambiado más adelante código para activar desencadenadores en un programa lo dejó saber que un comando había sido enviado.
Código de la linterna:
Centro de atención
caso '7':
digitalWrite (13, HIGH); Se convierte en centro de atención
Serial.println ("Spotlight ON");
Serial.println("");
rotura;
caso '8':
digitalWrite (13, bajo); Se apaga el foco
Serial.println ("foco apagado");
Serial.println("");
rotura;
Es realmente sencillo en esta etapa.
Puede escribir más lógica en este paso si usted siente, por ejemplo si quieres un automático más, menos abierto robot terminado, simplemente podría código la cabeza a "mirar alrededor" y del fuego es sensor de ultrasonidos para simplemente evitar obstáculos, como muchos otros proyectos que he visto en internet. La elección es tuya =)
Gracias por leer mi Instructable primera, espero tener otros proyectos hasta pronto junto con la continuación de otras partes de este robot.
-Reichenstein7