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
Me imagino que no te ha dado tiempo a leer la aburrida parrafada que he puesto segundos antes que tu post, pero ciertamente, lo que estas proponiendo no es en absoluto mala idea.
Hay un pequeño detalle a tener en cuenta, y es que los filtros necesitan una frecuencia, y un tiempo para dejar pasar esa señal. Eso implica que responden tanto más rápido como alta es la frecuencia de 'activación'. Y eso por desgracia es lento (a no ser que vayas a MHz...).
Mi propuesta es más sencilla: lees la tensión que tienes con el AD justo antes de empezar a sensar, con todos los LED's apagados. Entonces sabes el nivel que te da la luz incidente. Programas la tensión de comparación unos puntos por encima, y entonces adquieres de forma secuencial los 8 (o 16, pero entonces igual sería demasiado lento) comparando con la tensión programada. Si el valor sube (o baja, según el circuito) por encima del valor programado (es decir, el comparador conmuta), entonces es que tienes reflejo (es decir, no tienes linea).
Esto se puede repetir para cada 'muestreo', o a intervalos regulares.
Volviendo al PID, se de buena tinta que los controles PID industriales tienen algunos la opción de 'autosintonía', que quita el tocino por medio precisamente de nuestro amigo Ziegler-Nichols (o como se llame).
De hecho, sería interesante tomar medidas, es decir, tomar datos y guardarlos, para después procesarlos en el PC, para así hacer más fácil la identificación del sistema. Por identificación entiendo el extraer las características (la 'función de transferencia') del aparato. Una vez se tienen estos datos, algún teórico nos podría comprobar el resultado para diferentes tipos de control.
Me gusta esa idea del colector común, tendría que verlo más despacio para ver si funcionaría porque soluciona el problema de los 16 filtros. Jota y yo intentamos algo parecido con los CNY, pero no salió bien y no teníamos tiempo que perder en ese momento.
Hay que tener en cuenta todos esos tiempos que explicas para saber la frecuencia.
EDITO: jejeje!
El probelma ese de la caiblación al principio es que la iluminación no tiene porqué ser igual en toda la pista. En Hispabot, por ejemplo ponen unos focos bajos apuntando a la pista que deben cambiar mucho la cosa si vas o si vienes.
Mientras escribías el post, y a resultas de tus explicaciones sobre filtros, se me ha ocurrido una idea, pero quiero pensarla un rato antes de postear. En un principio, sería sencilla.
Dragonet80, te pido disculpas si al final mi comentario te ha ofendido, espero que las aceptes. Si sirve como escusa justo antes había leido un post que hacía referencia a quien postea mas o menos y a la calidad de los post y creo que el haberlo leido me influyó en mi respuesta.
Te debo una cerveza cuando quieras, solo has de recordarmelo.
Juanjo.
Yo de momento llevo la idea de leer en digital, simplica el soft y el hard y funciona. En el cosmobot no tuvimos ningún problema.
Si se va a analógico yo usaría multiplexores, demultiplexores en analógico, y más si vais a poner filtros.
Pero si podemos leer en digital, por qué usar analógico?.
Hay que ver en que situaciones lo de digital no vale, pero mientras valga no tiene sentido complicarse.
El sensor con trigger incorporado que ha puesto Juanjo puede ser una buena solución, si vamos a usar muchos sensores, para 8 o 10 con los trigger del micro llegan.
Esto está empezando a complicarse, así que yo de momento voy a pensar en leer las dos líneas a la vez con sólo una placa delantera y otra trasera. Y hacer esto en digital.
Como la placa para leer dos líneas debe ser grande, pues da igual usar un sensor pequeño que uno grande, podemos meter suficientes sensores del tamaño del cny en este espacio.
Alguien ha probado estos motores para montar un diferencial?
http://www.robotshop.ca/home/products/r ... motor.html