El video muestra el proceso de construcción sin embargo es en el movimiento rápido y algunas de las cosas más complicadas aquí cubrirá en más profundidad.
Así que para hacer ben necesitará los siguientes componentes:
· Una pequeña hoja de acrílico
· Un protoboard
· Un Arduino Nano
· Dos Servos de rotación continua
· Dos ruedas de hobby (yo usé las ruedas del avión modelo)
· Una rueda del echador
· Batería de 9V
· 4.8V recargable batería (o sólo 4 AA en una caja de batería)
· Dos resistencias dependiente de la luz
· Dos resistencias de 10.000 ohmios
· Algunos protoboard cables de puente
· Cinta de espuma doble cara
· Puntos adhesivos de Velcro
· Un interruptor de encendido (no es necesario pero sería útil)
No necesita herramientas para la construcción sin embargo podría reemplazar la cinta de espuma doble cara con adhesivo caliente en cuyo caso necesitará una pistola de pegamento caliente.
Ahora lo primero que puede necesitar mayor explicación es el uso de las resistencias dependientes de luz. Resistencias dependientes de luz (o de LDR) es resistencias cuyo valor cambia dependiendo de la cantidad de luz ambiental, pero ¿cómo podemos detectar la resistencia con Arduino? Bien no se puede realmente, sin embargo puede detectar niveles de tensión con los pernos analógicos, que pueden medir (en uso básico) entre 0-5V. Ahora usted puede pedir "bien cómo transfieren los valores de resistencia en cambios de voltaje?", es simple, que hacer un divisor de tensión. Un divisor de tensión toma un voltaje y salidas luego de una fracción de la tensión proporcional a la tensión de entrada y la relación de los dos valores de resistores utilizados. La ecuación que es:
Voltaje de salida = voltaje de entrada * (R2 / (R1 + R2))
Donde R1 es el valor de la primera resistencia de R2 es el valor de la segunda.
El circuito esquemático para que este aspecto
Un diagrama de esto en nuestra situación parece un poco algo como esto
Ahora esto todavía plantea la pregunta "pero ¿qué valores de resistencia tiene el LDR?, buena pregunta. La menor cantidad de luz ambiental mayor la resistencia, más luz ambiental significa una menor resistencia. Ahora para particular de los años LDR utilicé su gama de la resistencia era de 200 a 10 kilo ohms, pero esto cambia para los diferentes así que asegúrese de ver donde los compraste y tratar de encontrar una hoja de datos o algo por el estilo.
En este caso R1 es realmente nuestro LDR, así que vamos a traer de vuelta esa ecuación y hacer matemáticas-e-magia (magia eléctrica matemática).
Ahora primero tenemos que convertir esos valores de kilo ohmios a ohmios:
200 kilo-ohms = 200.000 ohmios
10 kilo-ohms = 10.000 ohmios
Así que para encontrar lo que la tensión de salida es cuando estamos en negro de la echada que conecte en los números siguientes:
5 * (10000 / (200000 + 10000))
La entrada es de 5V ya que es lo que estamos obteniendo de la Arduino.
Lo anterior da 0.24V (redondeado).
Ahora nos encontramos con lo que la tensión de salida es en brillo máximo mediante el uso de los siguientes números:
5 * (10000 / (10000 + 10000))
Y esto nos da 2, 5V exactamente.
Así que estos son los valores de voltaje que vamos a entrar en clavijas analógicas del Arduino, pero estos no son los valores que se verá en el programa, pero ¿por qué?"preguntarás. Arduino utiliza un de analógico a Digital de la viruta que convierte la tensión analógica de datos digitales utilizables. A diferencia de los pernos digitales de Arduino que sólo puede leer un estado alto o bajo, siendo 0 y 5V los pines analógicos pueden leer de 0-5V y convertir esto en una escala numérica de 0-1023.
Ahora con algunos más matemáticas-e-magic podemos realmente calcular qué valores Arduino será leído. Porque se trata de una función lineal podemos usar la siguiente fórmula:
Y = mX + C
Donde; Y = valor Digital
Donde; m = pendiente, (subida / ejecutar), (valor digital / analógico valor)
Donde; C = intercepto de Y
El intercepto en Y es 0 por lo nos da:
Y = mX
m = 1023 / 5 = 204.6
Por lo tanto:
Valor digital = 204.6 * valor analógico
Así que en el negro de la echada el valor digital será:
204.6 * 0,24
Que da aproximadamente 49.
Y en brillo máximo será:
204.6 * 2.5
Que da aproximadamente 511.
Ahora con dos de estos establecer en dos clavijas analógicas podemos crear dos variables entero para almacenar los valores de dos y no los operadores de comparación para ver cuál tiene el valor más bajo, girar el robot en esa dirección.
____________________________________________________________________________________________________
Ahora eso fue probablemente lo más complejo de todo robot construir sin embargo, hay sólo una cosa más que quisiera mencionar y es que para hacer con el uso de servos con Arduino.
Hay varios tutoriales y esquemas en internet que demuestra que debe conectar la tensión del servo hasta el riel de 5V de Arduino y el suelo del servo a la tierra del Arduino, esto es peligroso! Servos pueden dibujar mucho de la corriente y en la mayoría de los casos esa corriente será más de lo que puede suministrar el regulador de tensión en el Arduino, esto nos llevará a cosas malas. La forma correcta de conectar servos a tu Arduino es utilizar una fuente externa. En Bens causa estoy corriendo los servos de rotación continua de un 4.8V batería recargable de Ni-Cd, esto es ideal ya que los servos funcionan bien de 4.8-6V, 6V es la tensión de carga máxima de la batería.
Ahora usted puede ser tentado a apenas enganchar encima de V + de la batería para el V + de los servos y el GND de la batería a la GND de servos y los pernos de la señal en el Arduino, esto no funcionará bien! Usted necesita recordar que la electricidad debe fluir desde un 'punto' volver a su punto original, no se conecta la tierra de los servos y batería a masa de Arduino no permitirá que la electricidad fluya de los pines de señal.
Aquí está un diagrama que muestra la circuitería adecuada
_____________________________________________________________________________________________________
La combinación de los dos diagramas anteriores da el circuito completo requerido hacer Ben.
Ahora no explico el código ya que es muy comentado y debe explicarse bastante.
Código