Paso 11: Programación y código
HERRAMIENTAS
IDE de Arduino
Cable de programación
EL CÓDIGO DE
Si usted no lo ha hecho, descargue e instale el IDE de Arduino de ARDUINO.
Copiar y pegar mi código fuente a continuación en el IDE de Arduino. También hay un archivo de SSBR II.ino adjunto.
Conecte el cable de programación a su PC y el puerto de programación de Arduino UNO.
Compilar y enviar el programa al SSBR II.
Esto es código muy básico que permite al robot a avanzar y faltar obstáculos a la izquierda. Será muy fácil de añadir a los comportamientos de robots como progresas.
SERVOS
Aquí es una guía dummies absoluta cómo continua rotación servos trabajan en nuestros robots.
Servos trabajan utilizando PWM, modulación de anchura de pulso. La siguiente muestra las tablas que lo que un pulso de X corresponde a en un servo estándar de 180 grados. Cambiar el pulso y cambiar para detener la situación.
Pulso de 500 microsegundos = 0,5 milisegundos y corresponde a 0 grados.
Pulso de 1500 microsegundos = 1,5 milisegundos y corresponde a unos 90 grados.
Pulso de 2500 microsegundos = 2,5 milisegundos y corresponde a unos 180 grados.
Con un servo de rotación continua, la tabla de arriba se traduce. Cambiar el pulso y cambiar la velocidad.
Pulso de 500 microsegundos = 0,5 milisegundos y corresponde sobre todo atrás (o adelante).
Pulso de 1500 microsegundos = 1,5 milisegundos y corresponde para detener el todo.
Pulso de 2500 microsegundos = 2,5 milisegundos y corresponde sobre todo hacia adelante (o atrás).
Avance y retroceso son dependientes de la orientación ha montado el servo, incluyendo qué lado del robot.
Servos no todos son iguales y un pulso de 1500 no significa siempre parada. Necesita jugar con el mínimo, máximo y valores de parada, en el código, para cada servo.
SENSOR DE DISTANCIA INFRARROJO
La analógica (usa voltaje en comparación con 0-1) sensor de la distancia en este artículo se responde con un número digital que representa la tensión en relación con la distancia a un obstáculo.
Podrás encontrar muchos temas en el foro relativas a convertir esto en una medida real, ya sea en pulgadas o centímetros... No preocuparse por ello. A menos que usted necesita saber la distancia a un objeto no es importante. Un simple GO-NO ir es más que suficiente para decirle si hay algo que necesita ser evitado.
Sugerencia - cuanto menor sea la lectura, más el objeto.
CREADO POR TED MACY ' S
05 de diciembre de 2014
Libre a todos de utilizar, compartir y modificar
LOS PRINCIPIANTES SUPER SENCILLO ROBOT VERSIÓN II
#include / / include biblioteca servo
Servo servoLeft; Declarar el servo izquierdo
Servo servoRight; Declarar derecho servo
int Irpín = 0; pin analógico para la lectura del sensor IR
Float IRread; Número de punto para mantener la tensión se puede convertir como distancia de flotante
void setup() {}
Serial.Begin(9600); iniciar el puerto serie
servoLeft.attach(5); Conecte la señal izquierda a P5
servoRight.attach(6); Conecte la señal correcta a P6
}
void loop() {}
GetDistance();
Serial.println(Distance); imprimir la distancia
Si (IRread < 299) / / NO obstáculo
{
Forward();
}
Si (IRread > 300) / / obstáculo
{
lturn();
}
}
void GetDistance() {}
IRread = analogRead(IRpin); Lee el valor del sensor sharp
Serial.println(IRread); imprime el valor del sensor en el monitor serial
Delay(50); demora para obtener lecturas estables
}
void lturn() {/ / crear una subrutina de giro a la izquierda
servoLeft.write(1503);
servoRight.write(1000);
Serial.println ("giro a la izquierda");
}
void forward() {/ / crear una subrutina hacia adelante
servoLeft.write(1995);
servoRight.write(1000);
Serial.println("forward");
}
A CONTINUACIÓN NO UTILIZADO
void rturn() {/ / crear una subrutina de giro a la derecha
servoLeft.write(1995);
servoRight.write(1502);
}
void nogo() {/ / crear una subrutina de parada
servoLeft.write(1503);
servoRight.write(1502);
}