Servo

Hola,

Tengo una bateria de 2S Lipo 4800mAH conectado a un arduino, y conectado a un regulador de 5A 4,8V. Este regulador a su vez esta conectado con el servo, y el cable "de ordenes del servo" conectado con el arduino.

Los cables de tierra tanto del arduino como del regulador van unidos (soldados cerca del conector de la bateria).
El arduino se alimenta por la entrada que es como un jack

Cuando le viene en gana el servo genera un reseteo de arduino dando el siguiente error en el monitor serie:

Alguna idea¿?

Indagando un poco más, e descubierto que el error lo da el chip esp8266 que tiene incorporado el arduino, (es un Wemos D1). El servo esta conectado en la entrada D4.

Vale, resulta que he kitado todo los que tenia conectado al Wemos , y al de un rato de mandar mensajes también salta el error de arriba, no se a que se debe.

No me ha quedado claro si el arduino esta conectado al regulador o directamente a la bateria.si lo tienes conectado al regulador ten en cuenta que tanto el jack que comentas como la entrada vin ,estan pasadas por el regulador de la propia placa ,por lo que tiene una pequeña perdida de voltaje,por lo que deberias alimentarlo con almenos 6.5 - 7 voltios para ir bien (incluso los 8.4volts de la bateria cargada tampoco serian un problema pues entraria dicho regulador).en cuanto al esp8866 he leido por ahi que tiene un consumo bastante alto ,sobre todo al conectar, alrededor de los 200 mAh,por lo que si lo alimentas de la entrada 3.3v de la placa ,creo que esta limitada a 50mAh,tendrias que conseguir una fuente externa.

Hola Jose, antes de nada gracias por contestar.

La placa es una Wemos D1 por lo que ya tiene incorporado el modulo esp8266, que se alimenta junto con el arduino.

Respecto al problemita en cuestión, he seguido indagando y también me lo saca aun teniendo solo la Wemos conectada.
Parece ser que si mando muchos mensajes seguidos al esp8266 llega un momento que lanza la excepción 29, ese creo que es el problema principal. La wemos biene con una velocidad de 921600 baudios, no se si bajandolo podria solucionar el error.

pd: El esp8266 recive datos cada vez que muevo el movil (sensor acelerometro), clico un botón de movil o muevo un seekbar. Y como se mueve todo el rato, pues el esp8266 saca la excepcion 29.

Alguna idea¿?

Me parece que no tienes muy claro lo que tienes entre manos, tu placa no tiene arduino + ESP

Solo tiene el esp que es donde estas programando

Añade un condensador grande a tu montaje a ver si mejora

Para descartar temas de alimentacion ,podrias explicar mejor como lo tienes todo conectado.Por otro lado ,lo que comentas es posible ,ya que se genera una gran cantidad de datos que puede colapsar el esp .no se con que haces la aplicacion del mobil ,pero podrias insertar un evento timer de 0.5 o 1 segundo (segun el tiempo de actualizacion que requieras) y dentro de este evento enviar los datos si compruebas que la posicion del slider o del acelerometro ha variado (en el boton no hay problema ,solo se genera un evento por pulsacion)

GO_zalo:
Me parece que no tienes muy claro lo que tienes entre manos, tu placa no tiene arduino + ESP

Solo tiene el esp que es donde estas programando

Añade un condensador grande a tu montaje a ver si mejora

Que finalidad haría el condensador?, y donde tendria quye colocarlo¿?

jose:
Para descartar temas de alimentacion ,podrias explicar mejor como lo tienes todo conectado.Por otro lado ,lo que comentas es posible ,ya que se genera una gran cantidad de datos que puede colapsar el esp .no se con que haces la aplicacion del mobil ,pero podrias insertar un evento timer de 0.5 o 1 segundo (segun el tiempo de actualizacion que requieras) y dentro de este evento enviar los datos si compruebas que la posicion del slider o del acelerometro ha variado (en el boton no hay problema ,solo se genera un evento por pulsacion)

EL esquema electrónico es el siguiente:

http://subefotos.com/ver/?c0ac9018cfdd756253d98a3de60fba66o.jpg

Y respecto al esp, la idea es usar el movil como mando, y cada vez que lo giro o pulso un boton mando un array con los valores de posicion, velocidad y dirección.

Voy a probar poniendo un timer, pero eso haria k las ordenes puedan no escucharse no¿?

un saludo

se trata de limitar la cantidad de informacion que envias ,por ejemplo el hecho de mover el movil de 0 a 90 grados puede generar cientos de eventos en menos de un segundo ,idem con el slider.puedes ajustar el timer mediante pruebas ,de manera que consigas un buen refresco sin saturar el envio de datos .por cierto ,olvida todo lo comentado sobre alimentacion porque pense que tenias una placa arduino + alguna board con esp8266 pero como dice go_zalo ,lo que tienes no es una placa arduino y desconozco a que voltajes puede funcionar...

puedes colocar el condensador en la linea de alimentación cerca del micro o a la entrada de la placa, es una prueba pero puede funcionar

jose:
se trata de limitar la cantidad de informacion que envias ,por ejemplo el hecho de mover el movil de 0 a 90 grados puede generar cientos de eventos en menos de un segundo ,idem con el slider.puedes ajustar el timer mediante pruebas ,de manera que consigas un buen refresco sin saturar el envio de datos .por cierto ,olvida todo lo comentado sobre alimentacion porque pense que tenias una placa arduino + alguna board con esp8266 pero como dice go_zalo ,lo que tienes no es una placa arduino y desconozco a que voltajes puede funcionar...

Hola Jose, con 1segunda no da la excepción, peo con menos si. El problema es que, la aplicación tendría que mandar casi a tiempo real o sino el coche que pretendo controlar se estampara contra todos los sitios. Alguna otra sugerencia?

GO_zalo:
puedes colocar el condensador en la linea de alimentación cerca del micro o a la entrada de la placa, es una prueba pero puede funcionar

Hola Go_zalo, tengo un condensador de 16v con ese tendria que valer¿?

Si si es de unos 10uF

es de 100

Mejor aun

Solo se me ocurre aumentar al maximo los baudios en ambas partes,optimizar al maximo el codigo que recoge los datos en la wemos y limitar al minimo indispensable los datos que envia el mobil,por ejemplo para controlar la direccion alomejor te vale con variar los grados de 5 en 5 en vez de 1 en 1,entonces en el evento del giroscopio puedes poner que solo envie los grados en multiplos de 5 y ignore las lecturas intermedias y las que no te valgan ,por ejemplo suponiendo que con 90º vas recto ,45º tope izquierda y 135º tope derecha ,pues desechas todos los demas valores etc etc

nada, lo doy por perdido, voy a intentar con bluethood o con rf, porque vamos... maldita excepción 29 XDDD

pd: voy a intentar con otro firmware como ultimo recurso.