Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:
Inicio el tema aquí del otro post, que si no son tantas cosas que es imposible seguirlo.
Me he dado cuenta que hice las medidas de tiempo mal, mejor no lo cuento que si no os dais cuenta de lo malo que soy x_x, así salían de bien esos tiempos....
He medido estos tiempos de los 3 sensores, a ver si os parecen coherentes. Este fin de semana con más tiempo a ver si puedo hacerlo despacio y bien.
La R de carga es de 15k para los 3.
CNY70 Re 15k
CNB1302 Re 15k
RPR220 Rc 15k
En fin este fin de semana lo repaso con calma, con estos tiempos si hay que tenerlos en cuenta.
En estos tiempos no solo se añaden los tiempos de los detectores sino que tambien se añaden los tiempos de conmutación de los integrados usados en la multiplexión.
Sobre lo de añadir los potenciometros a cada uno de las polarizaciones se que eliminaria ese error pero no me hace gracia tener que ajustar 8 potenciometros ademas de subir el coste del montaje.
Otra solución sería atacar de la salida del multiplexor analógico hacia una entrada analógica del micro y realizar un ajuste de "fábrica" para cada CNY además de realizar la comparación de umbral desde el mismo micro.
Como la lectura de la analógica siempre sería en el mismo canal no habría que esperar el tiempo de conmutación interno del micro por lo que iríamos más rápido en la lectura que con varios pines analógicos del micro.
Sobre la resistencias de polarización ya sé que no son las adecuadas pero pensé en el consumo y no en el tiempo de conmutación.
Si leo las 8 entradas en 4,8 ms y mi robot llegará a correr 2,5 m/s (ojalá) tendría un error de 12 mm. en el peor de los casos. (aunque luego vendría el tiempo del ajuste de la dirección que será muchisimo más largo) . Aún es posible bajar más el tiempo haciendo que solo lea las entradas que más probabilidades tienen de estar detectando. Es decir, si la ultima lectura ha sido el centro lo lógico es que la proxima lectura sea el centro o cerca del centro. Esto haría bajar más el tiempo de detección pero este algoritmo aún no lo he probado.
Bueno, a mi ese tiempo me resulta excesivo. Te pongo un ejemplo, en una curva con curvatura de 40cm de radio hacia la derecha, tu vas por el centro, si lees de izquierda a derecha, con 8 sensores, leerías cada uno a 1.5mm más adelantado que el anterior, es decir, el 1º lo lees por ejemplo en referencia 0 y el último 12mm más adelante... Esto puede llegar a provocar que los sensores centrales y a la derecha de este detecten todos la linea... Todo esto depende mucho de la posición que llevase tu robot antes de la curva. De todos modos es un error pequeño, pero deberías de tenerlo en cuenta.
Lo de leer solo lo necesario si lo había pensado pero plantea problemas de temporización, tienes que programarlo todo mucho mejor.
Un saludo.
Esquema posteado.
Con un par de modificaciones, con sólo tres pines (dos de salida, y uno de entrada) puedes leer cualquier número de optos (de 8 a 32 o más). Aún así, se debería optimizar el tiempo, pues el tema de leer en serie puede causar los problemas ya comentados.
Brrrr. No puedo enviar imágenes desde el curro. Bueno, cuando llegue a casa lo pongo.
Lo prometido es deuda. Ahí va la foto. Este esquema lo probé sin la resistencia entre base y emisor del transistor PNP, y funcionaba de narices, pero cuando tuve tiempo de depurarlo y afinarlo, resulta que había desaparecido.
Animo a que alguien lo monte, lo ajuste, y lo postee, o mejor, lo cuelgue del proyecto entrenadora.