You are on page 1of 34

Primera idea de base.

Con los componentes seleccionados lo primero es montar una base, el proceso es


bastante sencillo ya que los motores y las ruedas estn diseados para encajar
directamente, y los soportes para fijar el motor a la base del robot tambin lo
venden hecho a medida, por lo que simplemente es cortar un trozo de plstico,
madera, etc.. con la forma deseada y fijar los componentes.
Para hacer la base utilizo una lamina de PVC espumado, de 4mm, suelen
venderlas en bastantes sitios de diversos tamao. En este caso tena una de 20 cm
x 20 cm y la voy a utilizar para hacer una primera idea de base. Las ventajas de
este material es que es muy ligero y muy fcil de trabajar y estticamente resulta
mejor que la madera, desventaja su flexibilidad en piezas largas.
El robot tiene que tener unas dimensiones inferiores a 30 cm de largo y 20 cm de
ancho, y no puede superar los 13 cm de altura. Para disear la base habra que
hacer un anlisis mecnico de como influyen las distintas dimensiones en el
movimiento del robot, por ejemplo cuanto ms ancho sea el robot mayor tendr
que ser la diferencia de velocidad de los motores para girar con un ngulo, cuanto
ms largo ms espacio tendremos entre el centro de gravedad y la placa de
sensores por lo que nos podemos anticipar a la curva, pero tambin ser mayor el
peso o las inercias, mayor ser la derivada del error de los sensores para una
velocidad de giro, etc.. Son muchas variables que analizar, y en pricipio poco s
de mecnica para poder hacerlo, por lo que en un primer diseo slo voy a seguir
3 criterios: primero hacer el robot lo ms ligero posible ya que los motores no
son muy potentes. Segundo que el centro de gravedad del robot est sobre el eje
de las ruedas, de esta forma tendremos la mxima traccin y facilitaremos el giro
del robot, y tercero que el centro de gravedad del robot est lo ms lejos posible
de
la
placa de
sensores
para anticiparnos
a las
curvas.
Con estas ideas voy a utilizar la longitud mxima de la plancha que tengo, 20 cm
de largo, y la anchura en principio la mnima posible por quitar peso 7.5 cm de
base, que es lo necesario para que encaje bien la batera, habra que estudiar
como influye la distancia entre ejes ya que es bastante importante en estos robots.
Lo primero es tomar medidas y dibujarse una plantilla del diseo de la base del
robot que se utilizar para cortar, lo mejor es hacerlo con cualquier programa de

dibujo para ser totalmente precisos, o dibujarlo a mano con bastante cuidado.
Los

componentes

Motores.
Ruedas.
Soporte
Rueda
Placa
Electronica.

utilizados
2x$16

son
=

motores.
loca.
sensores.

de

los

siguientes:
$32. Link.
$7. Link.
$5. Link.
$4. Link.
$15. Link.
$30. Link.

De su pgina podemos sacar las dimesiones de varios de ellos, por lo que nos
evitamos tener que medir a mano con el consiguiente error.
Imagenes
Soporte

de
de

www.pololu.com
los

motores.

Rueda.

Rueda loca.

Placa de sensores.

Dimensiones en pulgadas y centimetros.


Con estas dimesiones dibujamos la plantilla de nuestra base que despus
utilizaremos para cortar el robot. Click en las imagenes para mayor resolucin.

Situamos la plantilla encima del PVC con los taladros marcados y procedemos a
marcar sobre el PVC las lneas de corte con una cuchilla y un punzn.

Una vez marcado pasamos a cortar la pieza con otra cuchilla, el PVC es un
material muy blando que se corta con facilidad, no necesitaremos ningn tipo de
herramienta.

Y hacemos los taladros que hayamos marcado. No es necesario un taladro, con


una broca o un destornillador y girandolo con la mano suele ser suficiente.

El resultado final del montaje queda as.

Si hemos hecho bien los clculos (en este caso hacer ms ancha o menos ancha la
parte entre los motores y los sensores ser la solucin del clculo para colocar el
centro de gravedad) el centro de gravedad para la base estar sobre el centro del
eje de los motores, y la base tendr que ser capaz de sostenerse sobre las dos
ruedas sin tener puesta la rueda loca o tercer punto de apoyo. An faltan
componentes por aadir y ya se equilibraran despus, los principales que ms
peso aaden son los de la base.

Por ltimo colocamos la rueda loca, haciendo un agujero a travs de la base


partiendo del taladro inicial (es recomendable dibujar el diametro de esta rueda
en la plantilla y marcarlo con la cuchilla en la base), la altura que queda ms o
menos es similar a la de las ruedas y no hace falta ajustar. Se recorta un poco la
parte delantera para sacar los conectores de los sensores. Con tubos metlicos
como el que se ve en la foto que en un lado tienen un tornillo macho y en el otro
la parte hembra, se usar para colocar una segunda plataforma con la electrnica,
pulsadores, leds, etc..

Vista inferior.

Se monta un tornillo un poco alto para evitar que los sensores choquen contra el
suelo, al ser el PVC bastante flexible podemos tener alguna ooscilacin, con el
tornillo de esta forma tambin garantizamos que haya una distancia mnima
siempre del sensor al suelo, ya que si estuviera totalmente pegado no podra leer,
la luz que sale del fotodiodo tiene que llegar al foto transistor, y para ello ha de
haber una distancia mnima entre el sensor y el suelo.

El peso total de la base es de 124 gr, lo que resulta un velocista bastante ligero.
Los motores son de 200 gr-cm con 1.6 cm de radio de rueda, por lo que habr
que ver en la pista que velocidad conseguimos. En un robot diferencial la
aceleracin de los motores es importante, porque disminuimos y aumentamos la
velocidad de cada rueda para realizar los giros.

Por ltimos tenemos que soldar los conectores que vienen con la electrnica que
hemos comprado.

Para soldaduras pequeas el 14S de JBC con punta de 0.5 mm es ideal.

La placa de microcontrolador + puente en h tiene las dimensiones para poder ser


pinchada sobre una protoboard, lo que vendr muy bien para hacer pruebas.

Por lo que la base del robot completa quedara de esta forma, para sujetar la
batera se han puesto un par de bridas.

Lo siguiente es analizar con detalle la electrnica, la placa de sensores y la placa


del microcontrolador, de las que tenemos librerias y cdigo de ejemplo de los
robots de pololu, una vez hecho sto se realizar una placa en la que pinchar la
plaquita del microcontrolador, con puladores, leds, etc..
Para cualquier cometario, duda, idea: Foro.

Robot Zero. Velocista para principiantes.


December 2nd, 2010 39 Comments

Si has visto algn concurso de robtica y quieres participar, o ests interesado en construir un robot
seguidor de lnea quizs este proyecto pueda ayudarte. Construccin detallada de un robot velocista
bsico, fcil de hacer y de bajo coste, para iniciarse en esta prueba. Aunque ya est todo dicho en el
proyecto Robot Zero, vuelvo a hacer un pequeo resumen aqu con la versin final.

Uno de los proyectos que tenemos en comn varias personas en el C.I.r.E. es el desarrollo de robots
velocistas, por lo que llevamos ya meses hablando sobre el tema y discutiendo ideas. Intentando
sintetizar parte de las ideas subo aqu mi versin final con la que cierro el proyecto de robot velocista de
iniciacin, a no ser que me haya equivocado en algn pin del pcb o similar dejo aqu el mundo de los
velocistas.
No soy experto en el tema y slo he ido a un par de concursos, a falta de informacin disponible espero
que a alguien que quiera ir a un concurso y sepa an menos que yo del tema le pueda ayudar. Eso s no
garantizo el funcionamiento de nada, slo pongo lo que a mi me ha funcionado, por lo que si alguien lo
monta que lo haga segn su criterio.
Una opcin es comprar el velocista entero directamente, en internet se pueden encontrar algunos robots
velocistas para comprar. No lo recomiendo ya que pierde toda la gracia el asunto, nos dan todo hecho y
la mayor parte del programa, por lo que lo nico que hay que hacer es darle al botn. Y supongo que en
los concursos no admitirn su participacin, ya que el mrito del que lo lleva es mnimo y por tanto poco
digno de ser premiado.
Lo primero a la hora de montar un robot es elegir los componentes y es donde toda persona que quiere
hacer su primer robot encuentra la primera dificultad, qu motor elegir, qu sensores, etc.. Lo mejor que
he encontrado son los componentes de Pololu, por un precio muy razonable encontramos todos los
componentes necesarios para construir un robot que no lo haga mal en los concursos, no vamos a ganar
pero lo mismo podemos pasar la primera clasificatoria, lo que sera un resultado satisfactorio para
muchos principiantes.
Mi eleccin de componentes es la siguiente:

Placa de control ms programador $31.95.


Placa de sensores $14.95.
Ruedas $6.98.
Rueda loca $2.99.
Soporte motores $4.99.
DC-DC $11.95.
Batera $11.95.
Cargador $16.95.
Motor HP $31.90 (opcin A).
Motor $31.90 (opcin B).
Podemos elegir dos motores para el proyecto, si tu objetivo es hacer un primer robot y te conformas con
que funciones recomiendo la opcin B, si tu objetivo es intentar ir lo ms rpido posible recomiendo la
opcin A. El problema de la opcin A es que son motores que consumen mucha intensidad y existe la
posibilidad de quemar el DC-DC, es muy poco probable quemarlo, pero la posibilidad est ah, para mi
gusto son los mejores motores que podemos comprar por ese precio. Con la rueda seleccionada y la
opcin B se pueden alcanzar velocidades sobre 2 m/s, mientras que con la opcin A podremos alacanzar
los 4 m/s.
En total por unos $122.66 tenemos todos los componentes necesarios para el velocista, a lo que habra
que sumarle unos $10-15 aproximadamente en componentes para unirlo todo. Pongamos el proyecto

completo sobre unos 100-110 al cambio en material. Los componentes se encuentran en dos tiendas y
los gastos de envio de cada una estn entre $10 y $15 por correo normal y suelen tardar 7-12 das, he
realizado pedidos muchas veces y siempre llegan y no suelen caer en aduanas.
An as si queremos comprarlo todo en un slo pedido en http://www.robotshop.com/euecontramos
todos los componentes, aunque sale ms caro ya que como toda tienda te hacen el cambio $1 = 1, por lo
que la mayora de las veces sale mejor comprar directamente en $$.
Para unir todos los componentes tenemos dos opciones: usar un pcb que a la vez sirva de base del robot
para conectarlo todo, o usar un pcb/placa de topos que poner en una base que fabriquemos. Pongo foto
de las dos opciones:

La mejor opcin de ambas para nuestros objetivos es la de construir un base sobre la que poner el pcb,
ya que nos va a permitir tener un robot verstil al que le podemos poner distintas bases con diferente
longitud y anchura, lo que nos permitir probar y experimentar con diferentes configuraciones y
adaptarnos a los circuitos que nos den en los concursos. Por ejemplo en un circuito con curvas con un
radio grande y rectas largas nos puede interesar llevar una base ms larga y ancha, mientras que si nos
dan un circuito con muchas curvas pequeas y poca recta puede ser mejor opcin una base pequea.
Adems las dimensiones del robot dependen de las inercias y la fuerza de rozamiento del robot que nos

adhiere al suelo, por lo que muchas veces la nica forma de encontrar las dimensiones ptimas es
probando distitnas bases.
Si montamos todo el robot en un pcb pues no podremos cambiar sus dimensiones, los robots que venden
hechos vienen montados en un pcb ya que es ms fcil integrar todo y supongo que ms barato de
fabricar, el ahorro de peso es mnimo ya que la base en plstico pesa ms o menos igual que el pcb. Por
lo que para un primer robot con el que aprender y experimentar la mejor es tener bases intercambiables.
La idea final es tener algo como sto, un robot que montar sobre distintas bases.

Por lo que lo primero podra ser empezar a construir la base, para ello nos hacemos una plantilla a mano
o con el pc que pegamos sobre un trozo de PVC expandido o forex de 3mm, con un punzn marcamos
los agujeros de los motores ( han de ir en la plantilla ya que deben quedar bien alineados) y con una
cuchilla cortamos y marcamos en el PVC la plantilla, pasando luego a recortarla y hacer el resto de
taladros, el PVC expandido de 3 mm se puede cortar y trabajar a mano.
Adjunto un par de plantillas de bases de ejemplo (las dimensiones de los robots en los concursos
mximas son de 30 cm de largo y 20 cm de ancho) y una foto del proceso para realizar la base.
Base 1.

Base 2.
Las dimensiones de la base para mi gusto no son las ideales, pero son las que he probado.

La otra parte que necesitamos para unir los componentes es realizar un pcb o utilizar una placa de topos
como explic Guillermo en la entrada anterior. Adems esta placa nos servir para pegar con cinta de
doble cara la batera elegida, de tal forma que quede por debajo del robot, lo que proporciona un centro
de gravedad lo ms bajo posible.
La placa de la electrnica se puede ver aqu (click para mayor detalle):

Las caractersticas con los componentes montados seran las siguientes:

8 entradas digitales de senores 6 analgicas en los sensores centrales (no he querido desoldar el
potenciometro del ADC para poner los 8).
Pin para encender y apagar los sensores y as ajustar el nivel de luz que emiten.
Dos diodos leds.
Un pulsador para dar la salida, calibrar unos sensores RC, etc..
Dos interruptores para seleccionar distintas estrategias en el concurso, fundamental para cambiar la
velocidad contra un oponente, o arriesgar ms si hemos perdido la primera ronda.
Un dc-dc que nos proporciona una tensin de referencia fija para la velocidad de los motores, por lo
que facilita el algoritmo de control.
Un conector con salida de 5V y pines TX y RX de la USART del microcontrolador, para conectar
un mdulo de comunicaciones si queremos mandar datos del robot al PC.
Duracin de la batera: 28 minutos (ciclo de trabajo 160/255, Vmed = 215 cm/s en circuito de
prueba).
Si usamos los motores de alta intensidad el DC-DC lo podemos quemar si no ponemos el condensador
electroltico que est a la altura del regulador, o si lo ponemos de un valor pequeo. Aunque es el

condensador del montaje tpico de cualquier regulador disipativo est proporcionando el pico de
intensidad necesaria a los motores cuando su f.c.e.m. es baja.
Lo llevo con un valor de 22 uF y es suficiente para que los motores vayan a velocidad altas. Hice la
prueba de quitar el condensador para ver si el dc-dc cortaba ante una intensidad mayor de la que puede
dar (no s que integrado lleva) y se acaba quemando, ya que los motores HP pueden tener picos de hasta
1.6 A por motor y el DC-DC slo admite 2 A de entrada. Poniendo este condensador (una vez visto se
podra poner ms cerca del dc-dc o duplicar) no deberiamos tener problemas de quemar el dc-dc para
una buena velocidad del robot. Con los motores de baja intensidad no hay problema ya que slo
consumen 0.36A como mximo a 6V.
Para conectar la placa de control y el dc-dc ponemos una tira de pines hembra, donde los insertaremos,
de esta forma podemos sacar la placa para utilizarla en otros proyectos y el dc-dc para ajustar la tensin
de salida a distintos valores segn los motores a utilizar. Si usamos los motores de alta intensidad lo
pondremos sobre 5.5-6.5 V y si usamos los de baja podemos ponerlo a 9V para sacar ms par y
velocidad de ellos.
Los conectores de la batera, tira de pines que se ven en la imagen, botones y dems tambin lo podemos
comprar en Pololu (cuanto mayor el pedido mayor la posibilidad de aduana), aunque en cualquier tienda
fsica de electrnica se pueden encontrar los componentes a un precio razonable.
El esquema para unir toda la parte de la electrnica (click en la imagen para ms detalle), si todos los
pines estn bien asignados (no me haya confundido en alguno ya que no lo he repasado) as se quedara.

C1 y C2 son los condensadores electrolticos de 22 microFaradios, R1 R2 y R4 470 Ohmios, R10 R7 y


R8 330 Ohmios, R3 R5 y R6 15K, un regulador disipativo de 5V mirando su cada, si sacamos del dc-dc
9V podramos poner un 7805, pero sacando slo 6V pues mejor poner uno con un cada de tensin
menor como un LF50ABP, L4941BV, es decir cualquier ldo. Los componentes SMD 1206.
Los componentes montados en el pcb y el fotolito.

Montamos el pcb y lo ponemos en la base del robot, para conectar los motores se pueden poner un par de
conectores o soldar los cables directamente. Lo siguiente es pegar la batera con cinta de doble cara al
pcb y hacer un agujero para pasar el cable.

Colocamos la rueda loca, podemos usar unos tornillos para fijarla o pegarla directamente aunque sto
signifique tener que usar una por base. Por ltimo colocamos la placa de sensores haciendo los
correspondientes agujeros para pasar los tornillos, y hacemos el cables para unir los sensores con la
placa de electrnica.
Respecto a la placa de sensores que compramos hay que cambiar o quitar unas resistencias, ya que los
llevamos muy pegados al suelo y vienen pensados para una mayor distancia.

En la imagen superior se puede ver como se ha soldado una resistencia de 100 Ohmios (101) y
desoldado dos resistencias, esas dos resistencias en paralelo vienen para limitar la corriente de los
diodos, podemos quitar una o quitar las dos y soldar una donde aparece en la iamgen de mayor valor.
Aunque no he probado muchos valores una resistencia de unos 82 ohmios podra funcionar bien,
depende, ya que algunas placas de Pololu nos la dan con resistencias de 43 Ohmios y otras con
resistencias de 66 Ohmios en los diodos. Otra cosa que hemos podido comprobar es que estos sensores
son terribles para hacer lecturas en analgico, ya que su orientacin (inclinacin) afecta enormemente a
la lectura, por lo que si el robot vibra u oscila, o la pista no es totalmente lisa podemos encontrar
problemas, pero bueno esto se ve bien cuando desarrollemos la parte de la telemtra en el C.I.r.E., que
supongo que ser lo siguiente.
Por lo que todo montado queda una cosa as:

Esta sera la parte de la base y ahora falta la parte de la programacin, adjunto un programa sencillo para
estos robots que sigue la lnea sin oscilar a una velocidad constante. Al programa no se le ha dedicado
tiempo, es el primero que hic y ha ido pasando de robot a robot porque pareca que funcionaba, por lo
que puede tener fallos por algn lado. La idea es muy sencilla, medir la distancia de la lnea al centro de
los sensores, medir la velocidad con la que se aleja o se acerca la lnea al centro de los sensores,
multiplicar estas medias por unas constantes que utilizamos para ajustar la respuesta del robot, sumarlas
y convertir la cantidad obtenida en una diferencia de velocidad entre los motores, lo que provoca el giro.
Programa.
Pongo un par de videos en los que se puede ver el funcionamiento del programa, el segundo de ellos a
cmara lenta (a partir del segundo 30). El robot va montado en la base ms larga y la tensin de salida
del dc-dc es 6.4 V.

Cmara lenta (segundo 30).

El robot hace una velocidad media de 210 cm/s en los videos. Creo que en el ltimo concurso hace un
par de meses el robot ganador iba a una velocidad media de 260 cm/s, aunque no se puede comparar
porque las velocidades dependen de cada pista considero que con esta velocidad podemos pasar la ronda
clasificatoria y llegar a las carreras robot contra robot. No vamos a ganar ya que podemos encontrarnos
robots en el que slo uno de sus motores vale ms que todo nuestro robot junto, y adems estn muy
probados y desarrollados ya que sus creadores llevan mucho tiempo yendo a todos los concursos que
pueden.
Esta es mi idea de un robot en el que se ha intentado hacer y explicar lo bsico: seleccin de
componentes, hardware y programa sencillo para seguir la lnea, ms informacin sobre el
desarrollo aqu.
An queda hacer toda la parte de programacin que es lo complejo y donde se mejoran tiempos y se
obtienen resultados. Las ideas a aplicar y estrategias son muchas, no me voy a poner con ello ya que no
tengo intencin de pasarme por ningn concurso, en la situacin actual no merece la pena y hay otros
proyectos a los que dedicar tiempo en el C.I.r.E. que queremos ir haciendo.

A la gente que llegue a este mundo por primera vez slo recomendarle que comparta sus avances, es la
nica forma de aprender y hacer que este hobby sea accesible y cada vez los concursos vayan a ms.
Intentar ser competitivo en la situacin actual es totalmente absurdo, no hay gente suficiente para ello,
de nada vale ganar un concurso del que pasado unos meses nadie se acuerda. En fin no empiezo que no
paro XD, puede que algn da nos dejemos de una comunidad de Bobtica y tengamos una de Robtica,
pero para ello hay que hacer algo ms que coleccionar recortes de prensa.
Espero que este intento de hacer y explicar un robot bsico sea de utilidad para alguien, que unas cuantas
versiones de prueba y prototipos me ha llevado..

Visitas :84514
Autor: JMN
Posted in Robtica |

Construccin de un robot velocista


Como hacer el diseo de una placa casera?
Both comments and pings are currently closed.

39 Responses to Robot Zero. Velocista para


principiantes.
1.

Oscar says:
December 2, 2010 at 23:51

Slo con lo que te has gastado en robots para probar cul era mejor y la documentacin que has generado ya para mi eres
una referencia a seguir en el mundo de la robtica nacional e internacional.
B-R-A-V-O

2.

Ral says:
December 3, 2010 at 03:24

Gracias, no sabes realmente las sensaciones que causa leer un artculo nico para los apasionados de la robtica. Estoy
convencido de que los lectores no se van a quedar prendados slo con la idea de un robot modular de bajo coste que
supera la barrera de 2 m/s.
Ve pensando en cmo transportarlos.

3.

_Silent says:
December 3, 2010 at 07:49

Pelotas
Enhorabuena jota, un grandsimo curro que por fin dio sus frutos.

4.

Guillermo says:
December 3, 2010 at 08:16

Est genial, tiene mucho mrito exponer de forma tan clara y precisa como construir un robot que hasta hace nada
hubiera sido de los ms punteros.
Adems junto con el software, el sistema de considerar por un lado los componentes y por otro el chasis ofrece la
posibilidad de que quien utilice este diseo para iniciarse pueda experimentar con nuevas configuraciones y ver hasta
donde se puede llegar con este hardware.

5.

Jorge says:
December 4, 2010 at 08:40

Gracias por los comentarios, si alguien ms quiere un pcb que me lo diga.

6.

pelayator says:
December 9, 2010 at 14:50

Gracias
a
t
por
la
generosidad!
No
imagino
el
esfuerzo
que
te
ha
llevado
todo
esto.
Es agradable conocer a gente que comparte conocimientos y tan predispuesta a echar una mano para que los que
empezamos con este sano vicio de la robtica demos nuestros primeros pasos. Lo dicho macho, eres una referencia.
Pelayo

Cosmobot | C.I.r.E. says:

7.

December 23, 2010 at 08:20

[...] participar, puedes pensar en hacer algo como el Robot Zero que hemos hecho en el C.I.r.E.: enlace, no lo hemos
llevado a ningn concurso pero podra pasar la primera clasificatoria si no sube [...]

andi says:

8.

January 15, 2011 at 07:24

Hey first of all this is the fastest and easiest line follower so thank you very much.But can you tell me what modifications
should be done so that robot will be able to follow white line on black surface? Thanks in advance.

Jorge says:
January 15, 2011 at 08:50

Hello, thx for the comment.


Use the == operator instead of != to read the sensors.
Change the next lines:
in the function obtener_errorp(void):
if(((PINC
{

&

0x04)

==

0)

&&

((PINC

&

0)

//I3

0x08)

==

0))

errorp=0;
return(0);
}
if((PIND
{

&

errorp
contador_sensor++;

0x10)
=

==

PD4

errorp

-7
0x07;

}
if((PINC
{

&

errorp
contador_sensor++;

0x01)
=

==

0)

//I2

PC0

errorp

-5
0x05;

}
if((PINC
{
errorp

&

0x02)
=

==
errorp

0)

//I1

PC1

-3
0x03;

contador_sensor++;
}
if((PINC
{

&

errorp
contador_sensor++;

0x04)

==

0)

//I0

PC2

-1

errorp

0x01;

}
if((PINC
{

&

errorp
contador_sensor++;

0x08)

==

0)

//D0

errorp

PC3

+1

0x01;

}
if((PINC
{

&

errorp
contador_sensor++;

0x10)

==

0)

//D1

errorp

PC4

+3

0x03;

}
if((PINC
{

&

errorp
contador_sensor++;

0x20)

==

0)

//D2

errorp

PC5

+5

0x05;

}
if((PIND
{

&

errorp
contador_sensor++;

0x80)

==

0)

//D3

errorp

PD7

+7

0x07;

}
in the function Obtener _errord(void):
if(((PINC
error=0;
else

&

0x04)

==

0)

if((PINC

&

0x08)

else
error = -1;

if((PINC

&

0x04)

else

if((PINC

&

0x10)

else
error = -3;

if((PINC

&

0x02)

else

if((PINC

&

0x20)

&&

((PINC

==

0)

&

0x08)

==

0))

//D0

PC3

+1

//I0

PC2

-1

//D1

PC4

+3

//I1

PC1

-3

//D2

PC5

+5

error = 1;
==

==

0)

0)

error = 3;

error = 5;

==

==

0)

0)

else

if((PINC

&

0x01)

==

else
error = 7;

if((PIND

&

0x80)

==

else

if((PIND

&

0x10)

==

0)

//I2

PC0

-5

//D3

PD7

+7

//I3

PD4

-7

error = -5;
0)

0)

error = -7;

Jorge says:

9.

January 29, 2011 at 22:41

posible error en el cdigo, en obtener_errord()


//Clculo

de

la

if
{

velocidad

(error

tic
if(tic

tic
if(tic

media

del

==
tic
>

error.
error_old)

=
>

1;
30000)
30000;
tic_old)

errord = (errord_old*tic_old)/tic; //faltaba multiplicar *tic_old


Parece que funciona mejor con el error

Israel says:

10.

February 14, 2011 at 16:02

Hola,
Yo compr el mismo regulador que mencionas de Pololu y al probarlo hoy me lo he cargado
Lo he probado con una fuente de 3.3v y se ve que he sobrepasado el rango de salida porque al girar el potencimetro ya
solo me saca por la salida lo mismo que en la entrada
El caso es que volver a pedirlo a Pololu me sale por una pasta y encima se me echa el tiempo encima conoces alguna
alternativa barata o alguna tienda en Madrid donde pudiera conseguirlo?
Muchas gracias por la ayuda.

JM says:
February 14, 2011 at 16:21

Hola, qu has hecho para cargartelo?


La nica forma de romperlo es haciendo un cortocircuito en su salida o pidiendo ms corriente de la que pueda dar, en
el robot zero se pone un condensador para que aguante los picos de los motores.
Si no tenas carga, es decir el regulador no alimentaba nada estar bien.

Para ajustar la salida debes hacerlo conectando una resistencia entre su salida y tierra de 1 K creo recordar, lo
especifica en la pgina, si no la pones te puede pasar lo que dices.
En Madrid la nica tienda que he visto que tienen componentes de pololu es Jugetrnica/Robotrnica:
http://www.robotronica.com/nueva_web/informacion/contactar.php
Contacta con ellos a ver si tienen el regulador o te lo pueden traer, ya que tienen bastantes cosas de Pololu.
Si no tienen o no te lo pueden traer en un tiempo razonable, dilo y miramos si tenemos alguno de reserva sin abrir.
Es casi seguro que yo tenga alguno por casa nuevo sin usar, si te pasas algn viernes por la tarde que quedemos para los
robots por el Medialab Prado, te lo damos al precio de la pgina de Pololu.
Saludos.

JM says:
February 14, 2011 at 16:24

Resistencia entre salida y tierra que lo haba puesto mal.


Setting the output voltage
The output voltage can be adjusted using a meter and a light load (e.g. a 1k resistor). Turning the potentiometer
clockwise increases the output voltage. The output voltage can be affected by a screwdriver touching the
potentiometer, so the output measurement should be done with nothing touching the potentiometer. The potentiometer
has no physical end stops, which means that the wiper can be turned 360 degrees and into an invalid region in which
the output voltage is set to approximately 2.5 V (for both the 2.5 V to 9.5 V and 4 V to 25 V versions). The input
voltage should not exceed the output voltage, so we recommend setting the output voltage with the input voltage set to
around 2.5 V.
Once the input exceeds the output set point, the output voltage will rise with the input voltage since the input is
connected to the output through an inductor and a diode.

Israel says:
February 15, 2011 at 00:13

Hola JM,
Pues bsicamente hice el imbcil y me puse a probarlo tomando suposiciones en lugar de leerme la web
Conect la entrada (3.3v), GND y puse un multmetro en la salida para regularla, sin la resistencia entre salida y tierra.
Gir un poquito el potencimetro y la salida subi a 4v y algo, gir un poquito ms y adis regulador
Supongo que alcanzara una zona fuera de rango donde supuestamente la tensin de salida es 2,5v y, al ser menor
que la de entrada, pues me cargu de la forma ms tonta el circuito.
Anoche escrib a Juguetrnica por si acaso tenan el regulador, a ver si hay suerte
Sino os agradecera muchsimo si pudirais venderme uno de los vuestros, pues mi mayor problema ahora es el tiempo
(quera tener las placas listas para este fin de semana, pero ahora no s si seguir adelante con ellas o buscar otro
componente lo cual me obligara a parar el diseo hasta saber su forma fsica).

Saludos

Israel says:
February 15, 2011 at 02:14

Pues me acaban de responder de Juguetrnica y no lo tienen en stock, segn me dicen si se lo encargo tardaran como
un mes as que lo descarto.

JM says:
February 15, 2011 at 05:35

Hola, intenta volver a probarlo con la resistencia de carga, es muy posible que no est roto y est bien. Recuerdo
haberlo metido tb en esa zona y no le paso nada.
Si no te funciona, el viernes por la tarde solemos quedar en el Medialab Prado donde ponemos una pista de
velocistas, yo tengo uno nuevo sin usar.

Israel says:

11.

February 15, 2011 at 06:32

Hola de nuevo.
JM, lo de la resistencia de carga (as como usar una tensin de entrada de menos de 2,5 voltios) lo prob anoche despus
de cargrmelo (me le demasiado tarde la descripcin de la web de Pololu) sin cambio aparente
Si vas el viernes a Medialab me haras un gran favor si me lo pudieras llevar para as terminar la placa de control el fin de
semana. Tan solo dime el precio para llevar el dinero y sobre qu hora estars.
Por cierto, la entrada es libre, hay que mostrar algo? No s exactamente qu es Medialab
Podras darme un email o algo para ponerme en contacto contigo, por favor?
Muchas gracias por toda la ayuda

JM says:
February 15, 2011 at 07:09

El viernes te lo llevo, el precio el de la pgina de Pololu, pongamos 9 al cambio.


A no ser que hayas entrado en la zona de 2.5V alimentando desde 5V, doblando la entrada como especifican, no se
debera romper, no esperaba que fuesen tan sensibles.
A Pelayo le paso algo similar con un regulador, no s que hizo que se lo cargo y le dejo de funcionar, y unas horas
despus o al da siguiente le funcionaba otra vez, as que no s, yo hara un ltimo intento.
El Medialab es un sitio del Ayuntamiento de Madrid para todo el que quiera ir, la entrada es totalmente libre, no hay que
ensear nada. Los viernes por la tarde est dedicado a grupos que hacen cosas de electrnica, programacin, y otras
muchas cosas. Por lo que hay soldadores, multimetros, ordenadores, espacio, etc.. El sitio ideal para hacer cosas de
estas.

Mi correo es , en el foro solemos establecer las reuniones, solemos estar entre las 18:30-20:30, cualquier cosa mandame
un correo o abre un hilo en el foro.
Saludos.

Israel says:

12.

February 17, 2011 at 09:50

Hola de nuevo,
Aunque maana nos veamos, aprovecho para preguntar unas cosillas no sea que se me olvide
Me he fijado en las fotos que entre los bornes de los motores tienes soldado un condensador cermico. Qu valor has
usado?
Por otro lado, comentas que para evitar quemar el DC-DC usando los motores HP hay que poner un condensador
electroltico de 22 uF cerca de ste, pero no lo veo ni en las fotos ni en el fotolito de la placa Podras indicarme donde
ponerlo exactamente? Entre GND y Vout del regulador?
Muchas gracias

Israel says:

13.

February 17, 2011 at 09:56

Mirando la foto ampliada parece que los condensadores de los bornes de los motores no son cermicos sino de tntalo,
no?

JM says:

14.

February 17, 2011 at 10:36

Hola,
Los condensadores no son necesarios que los pongas, son condensadores cermicos de 100 nF que se ponen para quitar
rudo, en la mayora de los robots los llevamos sin condensadores y no hay problemas de rudos. En los ltimos robots
que he hecho no me he molestado en ponerlos, si una vez montado el robot tienes problemas de reseteo del micro si
habr que mirar de ponerlos, esos e incluso otros entre cada borne del motor y la carcasa.
El condensador para el dc-dc es el electrlitico de ms abajo del todo (se ha quedado un poco lejos de donde debera
estar en le pcb). Va entre la salida del dc-dc y tierra. Pon un valor de unos 47 uF, incluso puede ser mejor llevarlo ms
grande, depende del peso del robot y de los picos de tensin que veas.
Maana ves como tenemos hechos los robots, tambin hay otros hechos de manera distinta que funcionan bien.
Saludos.

15.

Israel says:
February 17, 2011 at 11:20

Mmm, sigo sin verlo Te refieres a los marcados en el diseo como C1 y C2?

JM says:
February 17, 2011 at 11:34

Si, los dos condensadores electrolticos que estn a la izquierda del regulador disipativo, sera el c2 del esquemtico,
que va a la entrada del regulador disipativo (salida del dc-dc) y a tierra.
Lo ideal es que el condensador estuviese ms cerca de la baby orangutan, o aadir otro adems de ese cerca de la placa
del microcontrolador que es donde est el puente en H.
Puedes situarlo cerca de la alimentacin del puente en H (la de los motores) que vayas a usar.

16.

Vicente Izcara says:


March 16, 2011 at 11:18

Hola
a
Desde la Asociacin de Microbtica de la UVa seguimos vuestro trabajo con atencin.

todos.

Estaremos encantaros de conoceros en ROBOLID si os animis a venir a participar, el prximo 8 de abril.


http://www.robolid.net
Un saludo!

JM says:
March 20, 2011 at 06:10

Hola, gracias por el aviso, la fecha nos pilla muy mal a la mayora al ser entre semana, pero si alguno puede a lo mejor
se acerca.
Un saludo y que vaya bien el concurso.

17.

Juan Carlos says:


March 20, 2011 at 14:08

Quiero ser el primero en felicitaros por vuestra participacion en Cosmobot Simplemente Espectacular.
Felicidades

JM says:
March 20, 2011 at 16:04

Gracias, la verdad es que nos ha salido un concurso mucho mejor de lo que podamos imaginar.
Saludos.

18.

Alejandro says:
April 12, 2011 at 12:04

Muy interesante el proyecto, se puede aplicar el programa a un pic18F452, en caso q se pueda, que modificaciones
tendria que realizar?Muchas gracias, exelente info!!!

JM says:
April 12, 2011 at 12:15

Hola, el programa se puede aplicar a un pic18f452, simplemente tendras que adaptarlo a ste (configurar el hardware
del pic segn lo requerido). La idea es la misma lo programes en un AVR o en un PIC, por lo general todo lo que
puedas hacer con uno lo vas a poder hacer con el otro.
Lo que has de comprobar al leer en digital es que los pines que uses del PIC como entradas de los sensores sean ST
(schmitt trigger), ya que vas a leer en digital, en AVR todos los pines llevan un ST, en el PIC algunos no lo llevan pero
tambin se puede poner un ST externo.
Para cualquier duda sobre cmo programar un pic, pasate por aqu:http://www.todopic.com.ar/foros/index.php
S2

paco says:

19.

May 2, 2011 at 12:29

Lo
primero
agradecerte
el
aporte.
Tengo un velocista que hice hace dos aos para un concurso (por llamarlo de alguna forma) de un curso de verano de
robtica, tiene 12 sensores en vez de los 8 de la placa de pololu. Si quisiera adaptar tu cdigo a ese robot tendra que
aadir
if((PINC

algo
&

0xXX)

{
errorp
if((PINC
{
errorp
if((PINC

=
&

!=

=
&

//I6

!=

0)

!=

PCX

0)

//D6

PCX

0)

as??
-11
0x11;

//I5

errorp
0xXX)

PCX

errorp
0xXX)

&

0)
errorp

0xXX)

{
errorp
if((PINC
{

!=

-9
0x09;
+11
0x09;

//D5

PCX

+9

errorp = errorp + 0x11;


Cambiar
Saludos.

todos

los

error=+/-9

por

+/-13.

JM says:
May 2, 2011 at 13:03

Hola,
as es, tienes que aadir cada sensor en pasos de dos en la funcin que calcula el error proporcional y en la funcin que
calcula la derivada del error, siguiendo el orden de los sensores de cada una de las fucniones.

Luego tendrs que ajustar las constantes mediante prueba y error para tu robot.
Saludos.

20.

lainus says:
June 15, 2011 at 23:00

hello a tod@s, acabo de bajar esta pagina y algunos de sus enlaces, y a poner en practica se dijo.

21.

Fabian Alfonso says:


September 15, 2011 at 11:45

Hola, muchsimas gracias por compartir todo tu tiempo y trabajo desinteresadamente, me has ayudado muchsimo a
comprender mejor el control PD, y proximamente deseo construirme mi propio sigue lineas velocista, espero que en el
futuro tus proyectos sigan igual de buenos y completos e incluso mejores, gracias y buena suerte!

JM says:
September 19, 2011 at 17:33

Gracias por el comentario, que te salga bien ese sigue lneas.


Saludos.

22.

miguel says:
September 19, 2011 at 17:15

dis culpa por a aca no ay componentes de esos pero arme un robot paresido al zero solo que con pic18f4550 y un puente
h l293 me gustaria adaptarle el sistema pid sera k me puedas ayudar los sensores estan conectados al analogico 0 al 4 y el
puente h al b7,b6,b5 y b2,b1,b0 porfabor espero su ayuda eneybol b7 y b2

JM says:
September 19, 2011 at 17:37

Aqu tienes el desarrollo completo del robot explicado: http://www.jmnlab.com/robotzero/robotzerov.htmlpaso a paso


Para preguntar dudas sobre pics tienes los foros de todo pic: http://www.todopic.com.ar/foros/
Cuando pides ayuda lo mejor es preguntar una cuestin, una duda concreta, si no difcil que te puedan dar una respuesta.
Pregunta en ese foro que son expertos en pic, aunque no dberas tener ningn problema en adaptar el cdigo de AVR a
PIC en C, aunque eso es algo que deber hacer t (si quieres).
Saludos.

23.

EMRE KARCI says:


December 24, 2011 at 17:26

hi Show him how to compile the program which

24.

Jorge says:
December 24, 2011 at 17:38

http://www.jmnlab.com/robotzero/rzvd4.html
Para cualquier duda sobre los AVR: http://www.avrfreaks.net, en sus foros podrs preguntar.
Y por favor, deja de usar el traductor de google para preguntar, ya que se entiende muy mal (he borrado tus comentarios
que no hay por donde leerlos).

25.

EMRE KARCI says:


December 24, 2011 at 18:34

Build
started
24.12.2011
at
19:33:43
mmcu=atmega328p -Wall -gdwarf-2 -O2 -fsigned-char -MD -MP -MT BlinkLED.o -MF dep/BlinkLED.o.d -c
../BlinkLED.c
/usr/bin/sh:
make:

-Wall:
[BlinkLED.o]

mmcu=atmega328p
/usr/bin/sh:
make:
avr-objcopy
avr-objcopy:
make:

-O

command
Error

not
127

BlinkLED.o

-o

BlinkLED.o:
ihex

[BlinkLED.elf]
-R .eeprom

command
-R

BlinkLED.elf':
***

Build failed with 1 errors and 0 warnings

.fuse

-R

Error
.lock

-R

No
[BlinkLED.hex]

not
.signature

127
BlinkLED.elf
such
Error

found
(ignored)
BlinkLED.elf
found
(ignored)
BlinkLED.hex
file
1

You might also like