Gracias por los comentarios y las vistas, en la pagina ya no es fácil descargar el código por la renovación que realizaron los creadores, así que les comparto en la descripción el código que descargue antes de que modificaran la pagina y que use en el video.
si decido poner solo componentes de pololu no me afecta en nada la programación? porque veo que tu usaste la pista para el chino y tbn pusiste otra pista con sensores pololu es el mismo sistema de conexion para ambos?
Hola buenas tardes, primero que nada, quiero agradecerles por poner su conocimiento a disposicion de cualquiera que o necesite, estoy realizando este proyecto para una materia, y tomando como partida el impreso que compartieron, realize el mio propio en proteus ya que mi carrito debia tener un acomodo diferente de pines, y un tamaño ligeramente mayor, ya hice el impreso y lo armé. he revisado la programacion que comparten y le modifique las entradas y salidas para que coincidan con mi placa, aun asi al cargar el programa y arrancarlo, lo unico que logro es que de vueltas en circulos. Utilizando los ejemplos de Lamborghino que te permite probar modulo por modulo (modificando las librerias para poder usar mi mapeo de pines) puedo ver que la lectura de mi sensor de linea y el control del PWM de mis motores funciona por separado. Pero al cargar el programa ya no, quisiera saber si me pueden orientar un poco en esta parte, para poder saber a que se debe el error que tengo. Ya revise la conexion de los motores y el acomodo de los mismos. cambie el tipo de cinta que uso e incluso cargue al 100 mis baterias. Puedo regular la velocidad perfectamente, pero el funcionmiento es el mismo. solo da vueltas, de antemano agradeceria cualquier consejo u orientacion brindada.
Bueno Yo utilizo Unos Motores N20 Chinos de 1000 RPM 6V , ahora también puedes Alimentarlos a 12 Voltios aumentarías la Velocidad pero debes Mejorar el control (Codigo) para evitar que se salga Y se choque
No afecta compañero, sólo que el código ya no debes declarar la parte de Emitter On, básicamente es una función que habilita o desabilita los sensores para ahorrar energia
Muy Buenas Fue un gran aporte . ahora mismo ya estoy realizando el proyecto, pero me quedo con una duda que tipo de rueda loca usas? gracias de antemano :D
Gracias Leo, y a los amigos del lamborghino, ellos usan una rueda loca en el cuello del lamborghino, aprovechando que es delgado, así quedan los tornillos por fuera, yo para que los sensores estén mas al piso uso leds comunes, por su forma de bola se deslizan bien hasta que se rayan dependiendo la pista, uso 2 leds uno a cada lado del sensor, a veces da problemas con la cinta 3m (linea negra), por lo que en un próximo diseño usare rueda loca. pero funciona bien debido a que no hay peso adelante y cualquier fricciona u obstáculo pequeño pasa.
claro como no se me ocurrio, pues vaya que si es una buena alternativa, solo una duda mas , aproximadamente en relacion del sensor al suelo cuanto de distancia debe haber ,para una mejor reflectancia?
Eso varia según el sensor que uses(pololu, chino, cny70, etc), la mejor forma de saber es realizando la lectura de los sensores y ver a que distancia muestra los valores mas estables.
Genial , Justo estoy usando un Sensor Qtr-8 como el Tuyo , y todo va de maravilla ,Muchas Gracias por toda la informacion que pone a nuestro alcanze , nos es de gran ayuda espero que siga creciendo el canal, ahhhhh y ya Pronto Tambien Implementare el Cubo LeD 360 que tambien esta Buenisimo 👍 , mas bien Queria pedirle si podria hacer un Video Introduccion a una App en Android como es ArduinoDroid o BluinoLoader para programar Nuestras Placas Arduino , tanto como importar Librerias etc y el Maximo Provecho que se le pueda sacar , trabajo Con Una samsung Tab s3 conectado a jn raton y teclado y esas Apps me han salvado en muchas Ocasiones . SALUDOS DESDE PERU .👋
Gracias por el saludo Leo, de hecho tengo buenos proyectos pero toma tiempo la edición de un video y por motivos de trabajo muchas veces no puedo subirlos todos, veré de cumplir con tu sugerencia , Saludos desde Bolivia.
Gracias josi, El pcb para imprimir esta en tamaño carta, asegúrate de que en las opciones de la impresora no este el auto ajuste que amplia la imagen , provocando el error que mencionas, y si es algún lugar de pago donde realizas la copia, pídeles que no te modifiquen el tamaño o ve a otro lugar. pero el tamaño esta correcto el problema como mencione debe ser la impresión, Saludos
Hola Alexander, el código que comparto es el que originalmente los creadores compartían, esta sin modificaciones, sin embargo por el hecho de convertir la placa que tenían de dos caras a una sola tuve que cambiar la dispocision de las conexiones al driver tb6612, entonces el programa original no coincide con la placa que realize, los cambios que se deben hacer son cambiar el numero de pines en el programa para que coincidan con el diseño de la placa que compartí. Saludos.
y un pequeño secreto si estas usando motores Chinos de 6v a 1000rpm, estos Aguantan hasta 12v sin problemam la velocidad se incrementaria a 2000 rpm, pero podrias dañar el regulador del arduino , mi recomendación es poner un regulador externo com un 7805
Buenas, disculpa, ¿Me podrías compartir el formato de proteus? Ya que no me queda claro con el PCB la conexión del circuito o que componentes se usan en especifico para cada lugar, gracias seria de gran ayuda.
Todos los puentes son resistencias de 1/4 de watt menos de un 1ohm puede ser 0.1 los únicos que son diferentes son el de les que va una res. 330ohm y el del pulsador que es de 10k , lo demás está claro
Bueno no soy el dueño del video, pero me gusta ayudar a otros ya que yo lo Hizr el año pasado , descargas el Codigo Y libreria y los subes a tu arduino nano, si no sube seria preferible instalar el Driver CH340G para arduinos Chinos , y Listo te recomendaria leer los pines que estan definiendo al inicio del Codigo para qye entiendas que pin es cual
Los sensores chinos funcionan igual con la libreria, de hecho si elaboras el sensor de 8, con sensores infrarrojos como el cny70 funciona igual, con la librería qtrsensors, para sensores pololu originales ya lo probé y la diferencia esta en la sensibilidad que dan los sensores, en otras palabras varia el valor que entregan no por el rango , eso depende del microcontrolador , si no por la distancia.
Podrian explicar como modifico el PID? Es unicamente el valor de vel maxima o tengo que cambiar algo en estos datos, para la estabilidad del carro? // Constantes para PID float KP = 0.01; float KD = 1.0; float Ki = 0.006;
Se modifican la velocidad , baja en principio, y se va a justando los valores del pid comenzando con KP luego KD y por ultimo KI, a medida que se va ajustando el seguidor toma mejor la linea y las curvas, lo ideal es precicion y suavidad al tomar las curvas. una vez dominada una velocidad baja , se va subiendo , y se continua ajustando el pid para mejores resultados con el cambio de velocidad.
@@arduinobo1364 Para ajustar el KP, KD Y KI, es necesario hacer alguna operación o solo se va incrementando de 1 en 1 en los valores, esque yo probe la programacion sin ajustar nada y pues el motor me gira y no detecta lineas es decir es muy poco que lo haga, entonces como no tengo conocimientos respecto a esas constantes, queria saber el dato si requiere alguna operacion o solo se van incrementando los valores.
No es necesario realizar operaciones, se va incrementando los valores comenzando por la derecha , y por kp hasta que se afiance a la linea, luego kd y ki ayudan a establilizar, te recomiendo iniciar en 0 todos los valores , aun que tengas valores de otro seguidor , estos cambian por las condiciones fisicas.
@@arduinobo1364 Y a la hora de incrementando, seria por ejemplo que en KP aumento 1 y voy a probar o si aumento 1 tendria que subirlo en los 3 de una vez.
Muchas gracias por compartir, lo estoy replicando en corel draw pero veo que con 8 sensores necesitaría 11 lineas incluyendo vcc y gnd y en el esquema aparecen solo 8 lineas, este diagrama es para 6 sensores? . Muchísimas gracias
Hola buenas tardes otra duda para introducir los 8 sensores del qtr-8a únicamente debería de agregar a6 y a7 en la lista y cambiar la cuenta de sensores de 6 a 8 o tendría que realizar otro cambio dentro del programa
Claro está Muy bien tu Lógica; declararía desde A0 hasta A7 para los 8 sensores, la las parte que tendrías que cambiar sería en: Int target = 2500;// por 3500 porque ahora sería los sensores del medio
Si amigo, eso es en los brackets pololu, en los modelos chinos el braket o soporte del motor no ajusta en la caja de engranes si no en el motor, aun en marcas conocidas como jsumo, te dejo el enlace con un ejemplo www.robotshop.com/es/es/controlador-todo-en-uno-jsumo-xmotion-basado-en-arduino.html, gracias por comentar.
Los sensores laterales, los encoders , el Buzzer, y el botón derecho, no tiene utilidad en el código de los creadores, el programa compartido aunque no utiliza todas las características, funciona y sirve como base para modificar, estos sensores se pueden utilizar reemplazando 2 frontales o agregando una rutina de ayuda en caso de llegar a salirse de la linea por ese lado.
Diculpe no entiendo bien esta parte del codigo: ( diferencial < 0 ) ? Motor(Velmax+diferencial, Velmax) : Motor(Velmax, Velmax-diferencial); no deveria haber alguna condicional como if?
Buenos Dias Paul, utilize una caladora manual, la que viene con sierras delgadas para madera delgada o venesta, luego afine los bordes con lija y limas pequeñas con borde curvo, pero solo con lija ya se puede hacer el trabajo de afinado de los bordes, Saludos.
no cambia mucho solo cambia en la calibración pero lo puedes copiar del ejemplo que te viene por defecto en la librería y cambiar de a - RC y te sigue manejando los mismos valores
Disculpa el sensor qtr8a que usas es el chino o pololu y me podrias pasar el codigo lo que pasa es que la pagina de los creadores esta en mantenimiento ?
Buen día. Me monté el lamborghino 1.0 pero una de las ruedas (A0 y A1) no funcionan. Las ruedas (controlador B parecen bien) tiene idea de cuál es el problema? no he cambiado en nada el código descargado de lo sitio lamborghino open). Saludos brasileños.
Buen día Fabio, se trato de mantener el diseño lo mas original posible por respeto a los autores en tamaño y conexión, pero para poder lograr la placa de un solo lado, se tubo que modificar la disposición de los contactos de driver con el arduino, en el pcb que esta en la descarga se ve la nueva configuración, esta se debe modificar en el programa, específicamente pwma,pwmb,stby,inta, intb, y como puedes ver funciona sin problemas, también debes revisar si el sensor de linea que vas a usar coincide.Saludos.
Todos son puentes de 1 ohmio o menos, también se puede usar alambre, los únicos de mayor valor son el resistor del led de 220 ohmios y el resistor del botón de 10k
Hola, excelente video me está ayudando mucho para un proyecto de la escuela, una pregunta me podrías decir ¿Cuál es el valor de las resistencias? Gracias.
Bueno Allen, todos los resistores son puentes menores a 1 ohmio, puedes usar estos resistores o alambre, los únicos con valor son los del led de 220 ohmios y el del botón de 10k. Saludos.
amigo ayuda el código que dejaste ya lo modifique de acuerdo a los pines del pcb pero no funciona solo se pone en directo los motores y va muy rápido y aunque le baje la velocidad sigue igual seria de gran ayuda si me podrías apoyar porfaaaaa!!!!
Para que el robot siga la línea primero tienes que pasar el sensor entre blanco y negro por 5 segundos y después recién dar inicio con el boton, buscalo como botón pull up
Son 6 segundos, puedes acortar el tiempo o quitarlo, los retardos están al inicio y final de la calibración, y se usan para tener tiempo de acomodar el seguidor en la pista, saludos.
#define EMITTER_PIN 11 #define LED 13 EL EMITER ES EL DE LOS SENSORES , PERO EL LED CUAL ES ? , YO VI EN EL DIAGRAMA QUE PRESENTA Y EN EL CODIGO ESTA CAMBIADO NO ?
El codigo siempre servira, gracias a que no depende de otras librerias a parte de la libreria QTR, la actualización del programa es sencilla , solo se cambian algunas formas de declaración y lectura, te agradezco el comentario, gracias a ti actualice la versión del código manteniendo el programa original, ahora si funciona con la nueva versión de la librería Pololu QTR 4.0 . Puedes descargar la nueva version que compila sin errores y probado en mis seguidores de linea, Saludos Juan David.
Lo acabo de descargar y probar, funciona correctamente, si te da error al descomprimir es posible que sea la version de winrar que tienes instalada.Saludos
Librería QTR Ver 4.0 //línea blanca uint16_t position = qtra.readLineWhite(sensorValues); // cambios en esta línea del código //línea negra uint16_t position = qtra.readLineBlack(sensorValues); // cambios en esta línea del código Librería QTR ver 3.1 o 3.0 position = qtra.readLine(sensorValues, true, true); // cambios en esta línea del código en esta versión sensor values no cambia, el primer “true” es para: encender los emisores infrarrojos si tienes esa función , en el modelo que comparto no se puede, porque los emisores van directo a positivo y están todo el tiempo encendidos, así que no cambia, y el segundo “true” es para detección de línea si es ‘1’ o true detecta línea blanca, y si esta en false o ‘0’ detecta línea negra, a mí me funciona al revés pero puede ser mi configuración de sensores. int readLine(unsigned int *sensor_values, unsigned char readMode = QTR_EMITTERS_ON, unsigned char white_line = 0); esa es la forma de cambiar de línea negra a blanca o viceversa, espero te sirva saludos.