Go Down

Topic: Alimentación robot 4x4 (Read 2270 times) previous topic - next topic

AndresGilabert

Hola a todos,

Estoy construyendo un robot 4x4 que se controlará por bluetooth.

Concretamente, el robot está formado por los siguientes componentes:
- Placa Arduino UNO
- Modulo bluetooth HC-05
- Sensor de distancia HC-SR04
- Servo 9g SG90
- Adafuit Motor Shield 2.3 (ficha de la shield)
- 4 motores de 6V

Las dudas que tengo es sobre como alimentar al robot, ya que quiero que sea autónomo y para esto preciso de baterías.

La primera duda es si una batería o dos (una para Arduino y sensores y la otra para los motores)

Quería probar con una Powerbank de cargar móviles, pero entiendo que sus 5V se van a quedar cortos, así que la he descartado.

En principio pensaba en coger baterías de litio, pero no se que voltaje y amperios deberían de tener las baterías.

Resumiendo:
- ¿Una batería o dos y de que características?

surbyte

En ningún momento hablas de consumo?
MIra.. hay dos caminos, el teórico y el práctico. Yo suelo usar el práctico y si me da problemas me siento y analizo.
Usa una batería y mide con el multímetro la corriente que consume tu robot.
Leeras tantos mA a tantos Voltios. Tu batería será de X mAh o X Ah.
Entonces sabras que autonomía tendrás y si no es la que pretendes, compras la segunda batería.

Hector_A

Quieres usar 4 motores? Es el doble de consumo!
Quieres usar Bluetooth pero quieres que sea autónomo?

No entiendo!

Por favor, pon más datos y hasta una foto o varias de lo que ya tienes. Lo que yo no entiendo es por qué pretenden hacer un robot 4x4 cuando ningún par de ruedas tiene dirección.

Es mucho más simple usar una rueda loca delante y con dos ruedas detrás es más fácil para virar.

AndresGilabert

#3
Jun 14, 2016, 01:34 am Last Edit: Jun 14, 2016, 08:36 am by AndresGilabert
Hola, acabo de comprar un multimetro por internet para hacer las mediciones indicadas por surbyte. En cuanto las tenga os las indico.

Hector_A, te explico:
Los 4 motores se deben a que la idea es que se mueva en el exterior (donde puede haber pequeñas piedras, etc...), y realice los cambios de dirección por diferencial de velocidad entre las ruedas.
De todos modos estoy empezando con Arduino y seguro que el proyecto irá cambiando a medida que encuentre problemas (o consejos que me hagan recapacitar)

El bluetooth es para que se comunique con una tablet, que es la que contendrá el cerebro del robot.
Soy programador informático y esta parte me resulta muy sencilla.
El fin del proyecto es que Arduino se conecte por Bluetooth con una tablet Windows.
Arduino le enviará las mediciones del radar y la tablet le indicará las ordenes de movimiento (velocidad, dirección, etc...)

Adjunto las imágenes del robot.





Hector_A

1.- Tus imágenes no se ven. Por favor, lee las Normas del Foro para saber como debes pegarlas y luego edita tu mensaje.

2.- Estás haciendo un trabajo de más porque no necesitas la tablet para "pensar" por la Arduino, si sabes programar sólo tienes que programar la Arduino.

3.- Al tener rueda que no girar, vas a tener un giro forzado para las ruedas que no entren en la maniobra y gastarás más las ruedas. Pero bueno, adelante y buena suerte.

Estaré atento a tus avances y, obviamente, meteré la cuchara.

Saludos!

AndresGilabert

Buenos días Hector_A,

Perdón por las fotos, ya las he modificado.

El trabajo de más con la tablet, realmente creo que es una buena opción, ya que le quito carga de trabajo al Arduino y no ralentizo la ejecución del código con las tareas de inteligencia artificial.
De todos modos, estoy empezando, y es muy posible que parte de la lógica se vaya trasladando al Arduino, o por lo menos decisiones básicas.

Además, la tablet me permite una interfaz gráfica de control que de hacerla en Arduino, sería mucho más compleja de desarrollar y además, debería ir unida al Arduino, mientras que así tengo el control de forma inalámbrica.

El giro forzado ya lo tengo en cuenta, es algo que no me termina de convencer, pero es más fácil que realizar la dirección de las ruedas.
De todos modos, en estos momentos estoy centrado en la lógica, y una vez la tenga empezaré a mejorar la mecánica.

Lo que si es cierto es que la conexión con Bluetooth me está dando algunos problemas, con lo que puede que busque otro método.

Muchas gracias por tus opiniones, se agradecen mucho, de verdad.

surbyte

Porqué te está dando problemas el BT?

AndresGilabert

El problema con el bluetooth es que en ocasiones se produce un retardo desde que envío una orden desde la tablet hasta que la ejecuta Arduino.

Te comento:
Mi robot tiene un radar que envía las lecturas a la tablet (del orden de unas 7-8 lecturas por segundo)
Estas lecturas llegan sin problemas a la tablet y esta las interpreta.
En el momento en el que envío una nueva orden al Arduino, en ocasiones tarda varios segundos en ejecutarse (y en muy pocas ocasiones, no llega a ejecutarse)

Sospecho que esto puede deberse a la velocidad de transmisión, por lo que voy a intentar aumentar los baudios (ahora lo tengo configurado a los baudios por defecto 9600), ya que creo que puede deberse a un choque de paquetes, y aumentando la velocidad de transmisión, quizá reduzca las colisiones.

Si alguien tiene alguna idea de lo que pueda ser o le ha ocurrido lo mismo... encantado de oír posibles soluciones o posibles causas.

Hector_A

Con respecto a las ruedas locas, yo me refería a estas que son las que mejor me anduvieron.



He probado de todo, desde bolillas de desodorante Roll-On hasta estas



Por lo que veo, como radar has montado un sensor ultrasónico sobe un micro servo, eso no es lo mejor, pero si a ti te funciona, adelante. Yo he usado 3 sensores de esos, uno siempre apuntando hacia adelante y a cada lado de esto, otro apuntando a 45 grados. De esta manera no se cubre todo el espectro de 90 grados hacia adelante (Tengamos en cuenta que el haz de ultrasonidos tiene un ángulo de 15 grados como mucho), pero no tienes piezas en movimiento.

Estoy seguro de que no tendrías los problemas de BT si todo el proceso se hiciera dentro de la Arduino y si te parece que una UNO queda chica, usa una MEGA. Para que quieres interfaz gráfica? A no ser que pretendas vender el producto a futuro, no la necesitas para nada más que para presumir con los amigos. ;)

Te cuento. Yo he hecho algo similar hace unos 5 años, como te he comentado usé sólo dos motores simples (de los mismos que muestras en las fotos), una rueda loca como la que ya mostré, 3 sensores ultrasónicos dispuestos como comenté antes, dos micro switch de esos que se usan para detectar fin de recorrido detectando colisiones (los ubiqué a los costados de los ultrasónicos)



Yo no usé este tipo de placas, sólo el interruptor, al que le soldé una prolongación en su lengueta para que tuviera más radio de acción.

Cuando tuve todo funcionando como yo quería, reemplacé la UNO por una NANO y a disfrutar. Y vaya si también presumí con mis amistades y otras personas.

Pero hasta acá todo muy lindo y nos estamos desvirtuando. Volviendo a tu tema original yo te aconsejo usar baterías de 7,2V. Y por qué? Simplemente porque los 7,2 los puedes conectar directamente a la Arduino mediante un plug hueco de 2,1mm y, mediante un 7805 o un LM318 podrás alimentar los motores.





Las primeras son de NiMh son las mismas que usamos en las armas de airsoft y las siguientes son las que usamos en aeromodelismo del tipo LiPo.

Espero que con tanta circuitería alrededor de tu Arduino, tengas un puente H para manejar los motores.

Saludos!

AndresGilabert

Buenas noches, vuelvo a la carga.

Ya tengo el multimetro y tras las mediciones (hechas sobre el cable USB de conexión PC - Arduino) obtengo lo siguiente:

Sin arrancar los motores, me muestra un consumo de 0,22 amperios.
Una vez arranco los motores, el consumo sube entre los 0,48 y 0,52 amperios.

Creo haber leído en algún sitio, que la placa de Arduino Uno no soporta más de 0,6 amperios, con lo que creo que los valores registrados se deben a que Arduino no puede superar este amperaje para alimentar a los motores con mayor potencia.
¿Esto puede ser cierto?

El shield de motores que tengo, dice que soporte hasta 1,2 amperios con picos de hasta 3 amperios, por este motivo, creo que sería conveniente usar una batería para el Arduino y otra para los motores.

A partir de este planteamiento, ¿esto sería correcto?:
- Batería para el Arduino de 7,4 V con una salida máxima de 1 A
- Batería para los motores de unos 12 V y 2 A (la data set de la shield indica que soporta una entrada de hasta 15 V)

¿Los cálculos de V y A son correctos o para la Shield de motores mejor buscar una con salida de 3 A y que coja ella los que necesite?

¿Que tipo de baterías recomendáis?

Respondiendo a Hector_A, la shield de motores tiene un puente H para cada motor.
El 7805 y el LM318 no se lo que son, tendré que buscar por internet.

Hector_A

Por lo visto no has leído mi mensaje completo, seguramente pensaste que estaba desvariando y te perdiste lo mejor.


surbyte

Y por lo que veo no has posteado código y me imgaino que esos segundos que tarda en reacción cuando mandas la orden se debe a que usas delay por aca y por alla. A que tengo razón? 
Si usas delay no te quejes de los retardos!!!! hay que usar millis() pero millis() no es tan facil de usar reemplazando retardos con delay. 

AndresGilabert

Buenos días Hector_A y surbyte,

Ante todo, muchas gracias a los 2 porque estoy disfrutando con vuestros consejos y aprendiendo mucho.

surbyte, estoy cambiando en código todos los delay, no conocía los millis y creo que lo has clavado. Ya te contaré. Creo que crearé un post en la parte de proyectos con el código y una visión más genérica.

Hector_A, me leí todo tu post y varias veces, te voy a responder punto por punto para no dejarme nada  ;)

En principio no voy a usar bolas locas porque la idea es un 4x4 para exterior, con lo que la bola loca no tendría tracción. Para otro tipos de robot si la tendría muy en cuenta.

Sobre los sensores de distancia, casi seguro es mejor tu planteamiento, de eso no tengo duda, pero quería experimentar con este tipo de simulación de radar real. Los dos sensores de distancia a 45 grados, pensaba ponerlos complementando al radar (de hecho compre 3 directamente y tengo los otros 2 para ese fin)

La interfaz gráfica, en si, no tiene mayor utilidad, como tu dices.
El motivo de hacer la lógica fuera, no es por su interfaz, sino por la capacidad de procesamiento multitarea, conexión a BBDD, internet, etc...
La logica en vb.net me puede permitir, por ejemplo, una capacidad de toma de decisiones en base a los resultados de las decisiones pasadas (aprendizaje de la máquina, vamos...)
Se que suena a coña y que puede que no llegue a tanto, pero por intentarlo...
Se que casi todo esto se puede hacer directamente en el Arduino, pero prefiero que Arduino se ocupe del Hardware y del resto un micro más potente y multitarea.
Digamos que Arduino será el cerebelo y la tablet el celebro.

Lo de los micro switch me ha encantado, me parece que también acabarán formando parte de mi proyecto.

BATERÍAS:
Las que me comentas, me parecen perfectas para alimentar al Arduino por el plug hueco, esa parte la tengo bastante clara.
También tengo bastante claro usar otra batería más potente para los motores, ya que así les puedo dar más potencia alimentandolos directamente desde la shield.

Sinceramente, de electrónica no tengo ni idea, con lo que el tema de los Amperios me tiene un poco loco, y es la mayor duda que tengo.

Quiero que la shield de motores tenga su alimentación de 1,2 A para que a los motores les llegue la máxima potencia posible, y por esto no se que batería coger.

Investigaré por la parte del 7805 y el LM318, porque sinceramente no se ni que son ni para que sirven, aunque intuyo que son para poder alimentar la shield de motores desde la misma batería.

Espero no haber dejado ningún punto, y si lo hago, te aseguro que no es por no haberlo leído, sino posiblemente por no haberlo entendido.

Muchas gracias por todo chicos.

Hector_A

Te comento:

7805, 7809 ,7812, etc son reguladores de tensión con salidas de 5V, 9V y 12V respectivamente. Los puedes alimentar en la entrada con 3V más que su tensión de salida, como mínimo y como máximo más de 20V pero cuanta más tensión tienes de diferencia más calor se genera, puesto de alguna manera tienen que disipar la tensión sobrante.



En cuanto al LM318 fué un error de tipeo, quise decir LM317. Hace lo mismo que los anteriores pero este te permite ajustar la salida, simplemente cambiando la resistencia de ajuste por un potenciómetro o resistencia variable.

En este ejemplo tenemos una muestra con una resistencia variable de 5K



AndresGilabert

Buenos días Hector_A,

Si la shield de motores me acepta una entrada de hasta 15 V, ¿porque serían necesarios estos reguladores de tensión con una batería de 7,4V o de 12V?

Go Up