Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:
Hola pues me dispongo a desarrollar un velocista en un plazo de un año, es decir, para el próximo cosmobot si dios o la caixa quieren. Y me gustaría pedir consejo y escuchar opiniones sobre diferentes puntos.
La base va a ser un coche rc de escala 1/28, como el miniz del cosmobot, esta vez otro modelo de coche, al que he podido incorporar un microservo de 0.1 s 60 grados, para el giro.
Mi primera duda surge en que tipo de sensores para detectar la línea usar, o cuáles hay disponibles. Lo ideal es que cuanto más pequeños mejor, y probablemente haga lectura analógica sobre digital, ya veremos como afectan los cambios de luz.
Yo hasta ahora sólo conozco dos modelos de sensor, en CNY70 y el QRD1114 de fairchild que nunca he usado, en el cosmobot vi a gente que llevaba diversos tipos de sensores, algunos de ellos eran muy pequeños, a ver si alguien me puede indicar otro modelo de sensores distintos de los dos anteriores, o foto trt y foto diodo.
Segunda duda, es como colocar los sensores, mi idea inicial es volver a usar dos placas de sensores, una delante y otra detrás, la de detrás es muy útil para conocer la posición del robot respecto a la línea, para poder realizar cambios de carril y acelerar, cuando el robot está centrado.
En el cosmobot vi a un robot, este http://es.youtube.com/watch?v=IVLpgTclsrI que usaba esa técnica para seguir la línea, me comentaron que esta era la manera correcta de hacerlo, o como se debia hacer. Me gustaría saber que ventajas tiene de hacerlo de esta forma frente a la clásica placa de sensores fija en el coche. Supongo que de esta forma se podrá obtener un error mucho más exacto.
Y por último que microcontrolador usar, he estado leyendo y creo que la mejor elección para este tipo de proyecto es un DSP, además de un mayor número de MIPS llevas los multiplicadores por hard, bastante útil a la hora de realizar operaciones.
Las señales que habría que leer en principio serían los sensores y un encoder que lleve el coche, que aún no sé muy bien donde se lo voy a poder colocar, quizás en el piñon o en la corona, y luego por último leer la batería. Las salidas el motor y el servo.
Aunque con un micro de 8 bits bien programado se puede hacer todo esto y más, yo creo que es un buen proyecto para iniciarse con micros mayores (almenos para mi), aún no sé la cantidad de operaciones que habría que hacer por segundo, mi idea inicial siendo muy optimista, es alcanzar los 2 m/s de media.
Así que a ver si alguien me puede aconsejar un micro para empezar, de momento yo he pensado en el dsPIC del que ya tendría el programador, por lo que el coste sería cero. Pero puestos a aprender no sé si sería mejor irme al mayor fábricante, es decir texas instruments, lo que no sé es cuánto costaría un DSP de estos, y cuánto el material para el desarrollo. La idea es usar un micro smd frente a un kit, por razones de espacio.
Tb me estoy iniciando estos días con atmel, que supongo que tendrá su alternativa a usar.
Gracias. S2
El servo tiene un período de 10 ms, ese que está puesto es un servo digital de futaba, con el que aún no he podido trastear.
Si ponemos este período como el de nuestro programa principal, es decir, cada 10 ms, a 2 m/s, nos daría una lectura cada 2 cm en horizontal, algo menos para los sensores. A mi en principio (teniendo en cuenta el ancho de línea) me parece un error aceptable.
Si nos vamos al caso diferencial (el valor de duty se cambia al inicio del período de pwm), en lugar de una frecuencia de 100 Hz (10 ms), podemos meter frecuencias mayores, 10 KHz por ejemplo, reducimos ese tiempo de reacción por 10, si dejamos 100 o 200 Hz pues no hay ventaja ninguna en usar diferencial en este punto.
Pero más importante que todo esto es el tiempo de establecimiento, el tiempo en el que la salida alcanza el valor deseado por la entrada. En el caso del servo es 0.1 s para 60 grados, es decir que a 2 m/s pues casi hemos avanzado 20 cm cuando queremos tener la rueda a 60 grados.
En el caso del diferencial habría que calcular este tiempo para poder comparar, cosa que no es fácil, estamos en la misma del sumo de los motores.
En principio parece que el diferencial va mejor en este punto.
Como mejorar esto en el de giro con servo? anticipandonos, frenar, PD para evitar la oscilación o por hard. Yo tengo pensado probar una placa de sensores con forma de T invertida delante, de tal forma que el sensor más alejado este a unos 10 cm o más del coche, acelerar en recta y frenar al perderla.
Luego hemos puesto período base 10 ms, el del servo, pero si en el diferencial nos ponemos a leer sensores analógicos a cuanto se va el tiempo de ciclo del programa?
Leer y actuar cada 10 ms para un velocista a 2 m/s, mucho o poco?
Lo del sensor pequeño dragonet80 en el post anterior decía que tenía un tiempo de cambio de 20 us, a 2 m/s no vamos a ver nada que no sea más grande que los 0.04 mm que le salían, en el data no veo donde hablan de esto, pero con un cny que es más rápido no lees líneas tan pequeñas. Así que el error será mucho mayor.
Vishay tiene un data aparte de la familia del CNY donde explicaban estas cosas y como hacer los cálculos, supongo que estos tendrán otro donde lo expliquen, si lo veo lo pongo.
Lo del sensor pequeño dragonet80 en el post anterior decía que tenía un tiempo de cambio de 20 us, a 2 m/s no vamos a ver nada que no sea más grande que los 0.04 mm que le salían, en el data no veo donde hablan de esto, pero con un cny que es más rápido no lees líneas tan pequeñas. Así que el error será mucho mayor.
Sí, te lo pone en la primera página: tiempo de subida (tr = rise time) y tiempo de bajada (tf = fall time)
Features
Ultraminiature, thin type : 2.7 × 3.4 mm (height : 1.5 mm)
Visible light cutoff resin is used
Fast response : tr, tf = 20μs (typ.)
Easy interface for control circuit
Sobre el CNY creo que es lo que tú dices, pero ahora no recuerdo el fichero donde lo ví.
Por cierto, veo que tenías preparado un robot de laberinto, entonces te veremos en la campus en el concurso "ilegal" de laberinto?
Lo de ir a la campus este año de momento está muy difícil, no tengo esa semana entera para irme a algo de esto.
Si explotasen más la parte competitiva y montasen el fin de semana unos buenos concursos, algo como el cosmobot (me refiero a participación, no a premios) pues iba sin dudarlo ese fin de semana, pero con los concursos que hay a mi no me atrae para ir un par de días.
Respecto a los sensores tendrán un error debido a los tiempos, en lo que influye la velocidad a la que se mueve, y otro debido a la geometría del sensor, y este último en nuestro caso es el mayor.