Pregunta:
Programación de arduino a través del problema del módulo bluetooth
DominicM
2014-05-22 00:05:03 UTC
view on stackexchange narkive permalink

Seguí un tutorial sobre cómo configurar arduino y bluetooth para que se pueda programar sin cables USB. No utilicé condensadores ni resistencias, ya que no parece que sean necesarios. Tengo la salida serial que aparece en la consola serial arduino a través de bluetooth (sin cable usb conectado). Dado que es una conexión que funciona, eso significa que está funcionando hasta cierto punto. Sin embargo, al intentar cargar aparece el error "avrdude: stk500_getsync (): not in sync: resp = 0x4c".

No conecté el pin 32 de hc-05 al pin de reinicio de arduino todavía, ¿podría ser el problema? En realidad, no necesito que se reinicie arduino, ya que puedo apagarlo manualmente al menos por ahora. También usé 9600 como velocidad en baudios en lugar de 115200 como en el tutorial, porque mi código arduino usaba 9600, pero tal vez no entendí esto y realmente necesita ser 115200 independientemente de mi velocidad en baudios en el código arduino.

¿Qué ¿otra cosa podría ser la causa?

Edición 1:

De la respuesta de @sachleen cambié la velocidad en baudios según el tutorial y soldé el pin 32 del módulo hc-05 a la primera pin de arduino.

Después de cambiar la velocidad en baudios, la consola serie arduino ya no genera nada. ¿Por qué pasó esto? Estaba obteniendo salida en serie antes cuando la velocidad en baudios de hc-05 era 9600.

Después de soldar, el primer pin arduino también parece reiniciarse después de que se abre la consola en serie. No agregué el condensador, ¿es necesario y, de ser así, por qué? También excluí las resistencias ya que parece que son solo para la reducción de voltaje de 5v a 3V (mi arduino es la versión de 3.3V).

lo has arreglado?
@emj365 Lo tengo, pero desafortunadamente fue hace tanto tiempo que no lo recuerdo. Debería haber agregado la respuesta antes de olvidarme, pero también olvidé hacerlo :) Agregaré la respuesta si me encuentro con este problema nuevamente. Recuerdo que fue un problema simple.
@emj365 Aún no lo recuerdo con seguridad. ¿Qué modelo de Arduino estás usando y qué velocidad en baudios?
Gracias por intentarlo. Usé un Uno falso y cambié la velocidad de transmisión del ESP8266 (nuevo y muy barato) a 115200.
@emj365 Bueno, utilicé un módulo Bluetooth, por lo que puede ser un problema diferente pero, de nuevo, puede ser exactamente el mismo problema. Pruebe 57600 baudios, ya que eso es lo que tengo en mi antiguo boceto de Arduino. Además, ¿cuál es la velocidad en baudios del módulo ESP8266?
Lo siento, cometí un error, también uso Bluetooth. El módulo debe ser HC-05. He configurado la velocidad en baudios 115200 para cargar el programa en Arduino. Además, traté de usar un convertidor de nivel lógico. Falló, todavía no tengo ni idea al respecto. Quizás 115200 sea demasiado alto para Bluetooth. E intenté restablecer Arduino cuando lo cargué, nunca funcionó.
Compré un Arduino Uno de 3.3v que aún falla.
¿Probaste las diferentes velocidades en baudios según mi último comentario? Si todavía no tengo suerte, intentaré volver sobre mis pasos y escribir correctamente sobre esto.
Cinco respuestas:
#1
+3
imjosh
2014-05-29 21:06:29 UTC
view on stackexchange narkive permalink

Escribí el tutorial que estabas siguiendo, así que tal vez pueda ayudarte. Cuando estaba construyendo el circuito inicialmente, utilicé algunos de los otros tutoriales sobre la programación de Arduino Bluetooth que no tienen muchas resistencias y condensadores adicionales. Sin embargo, no pude hacer que ninguno de ellos funcionara de manera confiable. Usando un simulador de circuito y algo de prueba y error, terminé con el circuito que se muestra en el tutorial que funcionó para mí.

Si bien "no parece ser necesario" algunos de los pasivos adicionales , si su circuito no funciona sin ellos, ¿tal vez los necesite después de todo? ;-) Ahora, he escuchado de otras personas que pudieron omitir ciertos bits, por lo que parece que hay cierta variabilidad en el hardware. Pero estamos hablando de cuatro pasivos para garantizar un funcionamiento confiable, así que ¿por qué dejarlos fuera?

De todos modos, un par de puntos:

  1. Pin 32 en el HC -05 se activa con la conexión Bluetooth. Configuramos el pin para que esté activo bajo para que podamos usarlo para reiniciar automáticamente el Arduino en la conexión en serie para emular lo que sucede con la conexión USB normal. Puede omitir la conexión al pin 32 solo si desea tener que reiniciar manualmente el Arduino para programarlo.

  2. La velocidad en baudios 115200 es la velocidad para programar el Arduino y lo establece el gestor de arranque Arduino. Es posible volver a flashear el cargador de arranque con una configuración diferente si lo necesita por alguna razón.

    Entonces, la velocidad en baudios de programación está fija en el gestor de arranque, pero la velocidad en baudios de comunicación se puede configurar en el software usando Serial.begin () . Sin embargo, la velocidad en baudios del HC-05 tiene que ser la misma que la del Arduino, por lo que debe mantener la misma velocidad en baudios tanto para la programación como para la comunicación (115200 de forma predeterminada).

  3. Hay dos resistencias involucradas con el reinicio, R3 y R2. Creo que R2 solo es necesario para que los Arduinos de 5V actúen como divisor de voltaje con R3. Sin embargo, debe incluirse R3 para cualquier voltaje Arduino. Consulte esta nota de diseño Atmel: "La línea de reinicio tiene una resistencia pull-up interna, pero si el entorno es ruidoso, puede ser insuficiente y, por lo tanto, el reinicio puede ocurrir esporádicamente ... Esta resistencia pull-up hace asegúrese de que el restablecimiento no se reduzca involuntariamente ". R3 debe ser 4.7k o mayor; la mayoría de los diseños se quedan con 10k.

  4. El condensador C1 es necesario porque el pin 32 permanece bajo todo el tiempo que Bluetooth está conectado. Si conecta RST al Pin 32 directamente, el Arduino permanecerá reiniciado hasta que la conexión Bluetooth se interrumpa y nada funcionará como si mantuviera presionado el botón de reinicio y nunca lo soltara.

    Con C1 en su lugar, cuando El pin 32 baja, descargará momentáneamente C1, bajando RST y reiniciando el Arduino. C1 comenzará a cargarse inmediatamente a través de R3 de regreso a VCC, lo que restaurará RST a alto, lo que hará que Arduino salga del reinicio. Los valores de R3 y C1 afectan la sincronización del reinicio y deben elegirse de manera apropiada.

  5. No olvide R1. No recuerdo la razón por la que es útil, pero tiene algo que ver con Arduino / Atmel UART. Encontré la recomendación de agregarlo un día en un foro de discusión de Atmel y me ha resuelto un circuito que no funcionaba muchas veces.

¡Espero que eso ayude!

Gracias por tomarse su tiempo para explicar, aunque no entiendo por qué al menos parte de esta información no estaba en el tutorial original. Apenas había texto allí :) También se equivoca en algunos puntos y es demasiado vago en otros. En primer lugar, la velocidad en baudios de 115200 es una de las razones por las que no funcionó para mí. Arduino Pro Micro usa una velocidad de 57600 baudios. Tampoco necesité usar resistencias y usé un capacitor de 450 nf y probablemente casi cualquier valor hubiera funcionado. R1 y R3 pueden ser útiles, pero nunca tuve problemas sin ellos.
También existe una limitación seria que no se mencionó con el tutorial, ya que se restablecerá al emparejar o abrir la consola en serie. Hay una forma de solucionar este problema y lo compartiré cuando logre que funcione correctamente.
#2
+1
sachleen
2014-05-22 00:10:30 UTC
view on stackexchange narkive permalink

Ambas cosas causarán problemas.

Debe reiniciarse cuando se descarga un nuevo boceto. Puede restablecerlo manualmente en el momento adecuado, pero si no obtiene el tiempo correcto, obtendrá ese problema.

La velocidad en baudios que estableció en su código para la comunicación en serie se vuelve irrelevante cuando está cargando un nuevo boceto tal como está configurado en el gestor de arranque. Manténgalo en 115200 como sugiere el tutorial.

Ok, cambié la velocidad en baudios pero ahora no obtengo ningún resultado de la consola en serie. ¿Por qué? Intentaremos soldar el pin al módulo ahora.
Conecté el pin de reinicio de arduino al pin 32 del módulo hc-05 pero aún no puedo programarlo. También parece restablecerse o incautar el código de ejecución durante un tiempo cuando se abre la consola serie pero aún no hay salida. Conecté el primer pin directamente, no estoy seguro de qué hacer con el diagrama que muestra el condensador y las resistencias relacionadas con el primer pin. Mi arduino es la versión de 3.3V así que no necesito un divisor de voltaje.
#3
+1
user1591
2014-05-26 20:14:22 UTC
view on stackexchange narkive permalink

¿Tienes el TX del módulo Bluetooth vinculado al pin RX del Arduino?

Si lo tienes, debes desengancharlo mientras cargas. Una mejor solución es no usar los pines TX RX del Arduino y usar software en serie en su lugar.

Aquí hay un tutorial simple pero se extiende por algunas páginas:

http : //ianlangelectronic.webeden.co.uk/#/arduino-bluetooth/4583456314

No se recomienda una velocidad en baudios de Bluetooth superior a 9600. El Arduino lucha por mantenerse al día si es mucho más rápido que esto.

Si bien su vínculo puede responder a la pregunta, [sería preferible] (http://meta.stackoverflow.com/q/8259) incluir las ** partes esenciales del vínculo aquí ** y proporcionar el vínculo para la cita. ¿Puedes editar tu respuesta? ¡Gracias!
Estoy usando rx / tx, sí. ¿Por qué esto causaría problemas exactamente? Cambié la velocidad en baudios a 57600 del módulo bt y pude programar OTA. Tiene que ser una velocidad en baudios específica ya que cada arduino tiene su propio requisito de velocidad en baudios para la programación. Intentaré tu enlace más tarde.
El tutorial al que se vinculó solo permitirá la comunicación en serie, pero no la programación del Arduino, a través de Bluetooth. 9600 baudios es una buena recomendación para un límite superior seguro cuando se usa SoftwareSerial, pero no se aplica cuando se usa UART.
#4
+1
Mike
2015-03-07 13:49:57 UTC
view on stackexchange narkive permalink

La velocidad en baudios depende del modelo de arduino que esté utilizando. Para Pro-Micro; Pro-Mini y Nano que uso tuve que cambiar a 57600 baudios ya que eso es lo que el dll (descargador de descarga) avrdude fuerza esta velocidad en baudios:

  avrdude: Versión 5.11, compilada el 2 de septiembre de 2011 a las 19:38:36 Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/ Copyright (c) 2007-2009 Joerg Wunsch El archivo de configuración de todo el sistema es "C: \ Archivos de programa (x86) \ Arduino \ hardware / tools / avr / etc / avrdude.conf "Usando el puerto: \\. \ COM40 Usando el programador: arduino Overriding Baud Rate: 57600  

Para Mega, la Overriding Rate es 115200 .

#5
  0
Arman
2016-12-25 21:17:03 UTC
view on stackexchange narkive permalink

La forma más fácil de programar tu arduino a través de bluetooth (HC-05) son los siguientes pasos

1: cambia la velocidad en baudios del módulo bluetooth a 57600 usando el software seriel, y eso es todo lo que necesitas que hacer con tu bluetooth, y cuando usas el software seriel sketch no necesitas un convertidor ftdi, así es como lo haces ( https://www.youtube.com/watch?v=zoJUAjW3vQ0)

2: el siguiente paso es hacer un circuito muy simple y pequeño para el pin de reinicio de tu módulo bluetooth como el de este enlace de youtube (el circuito del que estoy hablando es un circuito hecho de un Transistor NPN, un condensador de 0,01 y una resistencia de 10 k. El circuito es como un inversor de señal o algo así ( https://www.youtube.com/watch?v=xXUKfTNHkKE). encontrarás el circuito en medio del video.

Lo he hecho y funciona,

gracias por leerArman



Esta pregunta y respuesta fue traducida automáticamente del idioma inglés.El contenido original está disponible en stackexchange, a quien agradecemos la licencia cc by-sa 3.0 bajo la que se distribuye.
Loading...