pines correspondientes al encoder
Para el robot balancín este torque es demasiado alto y por lo tanto, su respuesta muy lenta, es importante mencionar que necesitamos motores con un torque no demasiado alto, aunque tampoco muy bajo, cuando el robot recibe una perturbación externa y se inclina hacia un lado la respuesta del motor debe ser rápida, pero no tan rápida como para generar demasiada inercia, ya que esto lo desestabilizaría, probe con varios motorreductores incluyendo los clásicos amarillos:
estos motores tienen un torque de aproximadamente 60:1 (aunque no todos tienen el mismo torque, es preciso verificar eso), con ellos la respuesta del robot mejoro considerablemente, aunque el motor deja mucho que desear, solo trabaja a 5v. y no son de muy buena calidad, al final "fusione" ambos motorreductores y el resultado fue este:
con "super glue" fue fácil
Ahora ya tenía los motorreductores ideales para el proyecto, para medir la velocidad, distancia recorrida y ángulo del robot es necesario hacer uso de los encoder e interrupciones externas en Arduino, ¿y que son esas pequeñas tarjetas blancas? la señal del encoder óptico no es suficientemente alta como para que arduino la considere un nivel lógico alto, así que es preciso darles un poco de potencia, para eso tuve que implementar este pequeño circuito:
esto se debe repetir por cada canal
A su salida nos encontramos con una señal limpia de casi 5v. suficiente para generar las interrupciones externas en la tarjeta Arduino, este circuito se debe hacer para cada canal, es decir, debe haber 4 iguales, 1 por cada canal.
Por último les dejo el esquema hacia las conecciones de Arduino:
Ya que en Internet existen muchos tutoriales sobre interrupciones externas y como usarlas no veo necesario explicarlas aquí, aun asi les dejo algunas referencias en donde se explora a detalle su funcionamiento.
https://www.arduino.cc/en/Reference/AttachInterrupt
http://www.educachip.com/como-y-por-que-usar-las-interrupciones-en-arduino/
*precio en dolar americano
hola muy bueno tu trabajo
ResponderEliminartengo una cosulta sobre tu proyecto ojala me puedas ayudar gracias .
perdon por la tardanza, no habia visto tu comentario, cuál era la duda?
Eliminarhola amigo q gran trabajo, una preguntica. es necesario utlizar los encoders para hacer que el robot cumpla una rutina determinada? agradesco tu respuesta
ResponderEliminarHola, No es necesario si sólo buscas mantenerlo en vertical, no podrías controlarlo ni desplazarlo via bluethooth ya que mi código toma los datos de los encoder para saber que rueda mover, y además sería más inestable porque el control PID se ayuda de los encoders, pero en teoría podrías mantenerlo en equilibrio sin encoders, sería más difícil claro
Eliminarhello , i wanna say that this is a really nice project and i want to ask you if you could share the code and the schematic with me and maybe send it at ahmedmerzoug7@gmail.com and thank you
ResponderEliminarsure, all you need are in this blog, just look all post about "robot balancin" you will need the translator, this is the first one http://elxedelectronics.blogspot.com/2016/02/robot-balancin-tutorial.html
EliminarLo primero gran trabajo, me esta ayudando mucho para montar mi propio robot, pero tengo una pequeña duda. Al conectar los sensores de los encoders veo en el diagrama que conectas los dos canales de cada a uno a los pines 2, 3, 4 y 5 y a su vez en el código tienes otra variable para cada encoder que van al 0 y 1 respectivamente. Mi pregunta es ¿cual es esta conexion? Yo tengo sensores de 1 canal ya que es lo que mas a mano tenia y solo tengo la salida de datos, la de alimentación y la de tierra y no se que es lo que controlas con esa variable, si el encendido del sensor o que. Un saludo y de nuevo gran trabajo
ResponderEliminarhola, las variables para las interrupciones 0 y 1 no van a los pines 0 y 1, recuerda que las interrupciones están en los pines 2 y 3, por lo tanto esa variable de interrupciones 0 y 1 son las mismas que están en los pines 2 y 3, si no te queda claro lee las fuentes que deje en esta publicacion hacia otros artículos sobre interrupciones
EliminarHola, probablemente el motor que tu tengas no trabaja como este y por eso no te funciono, aquí te dejo una pagina que tiene otro arreglo muy parecido al mio que funciona igual, espero te sirva http://digitronways.blogspot.mx/2015/05/encoder-motor-fauhaber-2342l-012cpr.html?m=1
ResponderEliminarHola! como es que funciona ese encoder? como lo podria fabricar con elementos sencillos? Espectacular tu trabajo
ResponderEliminarHola, el funcionamiento del encoder es muy sencillo, el eje del motor mueve una pieza parecida a un disco pero con ranuras, el disco se ubica entre 2 fototransistores de un lado y 2 leds infrarrojos del otro, mientras el disco gire las aberturas dejaran pasar la luz infrarroja y esa luz la recibirá el fototransistor, el circuito conectado amplifica la señal y la convierte en un 1 lógico para Arduino (5v.) el arduino hace el conteo de las pulsaciones y con eso se puede determinar la distancia y velocidad de las llantas, podrías fabricar tu mismo unos encoders pero no te lo recomiendo si no tienes experiencia en estas cosas ya que tiene su dificultad, si armas el circuito que pongo arriba funcionaria con cualquier fototransistor y led infrarrojo, los mouse de computadora antiguos (los que funcionaban sin luz y tenían una bolita) tienen 2 enconder muy parecidos a estos, podrías sacarlos de ahí
EliminarReductores de Velocidad, Motorreductores - Tisa Transmisiones – www.tisatransmisiones.com.ar
ResponderEliminarVenta de Reductores de Velocidad y Motorreductores, linea moderna en Aluminio A Sin Fin y Corona; somos fabricantes y contamos con catálogo nacional e internacional.
http://tisatransmisiones.com.ar/reductores-de-velocidad-y-motorreductores.html
Tags: reductores velocidad, motorreductores, reductores
Este comentario ha sido eliminado por el autor.
ResponderEliminarleíste el post?
Eliminarsí, solo que no imaginaba bien como habías acoplado un motor al reductor del otro pero ya investigue bien como es el motor namiki y ya lo entendí.
EliminarSolo una pregunta más, como cuanto cuestan una baterias como las que usaste?
Ok, bueno pues como dice la publicación lo que hice fue desarmar parte del motoreductor y luego acoplar el motor con encoder a los otros engranes, fue un poco difícil pero al final resulto, las baterías me costaron 80 pesos MXN, si vives en otro país que no sea México eso es como 6 dólares americanos, no estan muy caras pero también necesitas un cargador que cuesta como 120 pesos, y si las compras te recomiendo hacerlo en tiendas de con fianza que te garanticen que son de calidad, por que hay unas chinas que cuestan mas baratas pero no te van a servir
EliminarEste comentario ha sido eliminado por un administrador del blog.
ResponderEliminarHola disculpa porq al amplificar la señal de la salida del encoder no pusiste resistencia de base en el transistor?
ResponderEliminarpor que no es necesaria
Eliminarhola amigo felicitaciones tu buen aporte a la comunidad queria felicitarte y a la vez agradecerte por el gran trabajo!!! y a la vez saber si podria consultarte algunas dudas!! en mi caso no cuento con motoreductores se podria hacer el intento de trabajar sin estos y el codigo como quedaria?? gracias y disculpas ya que soy novato en esto!! gracias y nuevamente felicitaciones
ResponderEliminarcomo o donde encuentro la programacion de el mpu6050 para que me controle los motorreductores sin necesidad de los encoders no e podido sin los encoders solucionar el problema
ResponderEliminarhola
ResponderEliminarrecomeindo tisa transmisiones
Correas Dentadas, Correas Industriales, Correas Planas - Tisa Transmisiones
Fabrica de Correas. Nos dedicamos a la venta de Correas Planas, Correas dentadas, Correas de transmision, Correas trapeciales, Correas industriales.
http://tisatransmisiones.com.ar/correas-industriales.html
saludos
Excelentes entradas, solo una duda si solo quiero que el robot se mantenga vertical sin control bluetooth y sin encoders, con el código tal y como esta si lo cumplira o tengo que modificar algo? y de la carpeta de los codigos solo uso lo de arduino llamado BanlanXedBot? que se hace con los otros 3 de i2c Kalman y el de interrupciones? solo se tiene que agregar las librerias de digitalwritefast y el arduinopwmfrecuency? o necesito otras? Muchas gracias y buen trabajo.
ResponderEliminarhhhhhhhhhhhhhhhhhhhhhhhooo
ResponderEliminarfffffrffffffffffffffeop
ResponderEliminar