Tabla de contenido:

Coche RC Bluetooth con STM32F103C y L293D - Económico: 5 pasos
Coche RC Bluetooth con STM32F103C y L293D - Económico: 5 pasos

Video: Coche RC Bluetooth con STM32F103C y L293D - Económico: 5 pasos

Video: Coche RC Bluetooth con STM32F103C y L293D - Económico: 5 pasos
Video: Автомобиль управления Arduino Bluetooth с передней и задней подсветкой с использованием Arduino UNO, драйвера двигателя L293D, HC-05 2024, Septiembre
Anonim
Image
Image
¡Destruye al Devorador de Baterías!
¡Destruye al Devorador de Baterías!

Hice un coche Arduino Bluetooth como el que se muestra aquí, por Ardumotive_com. El problema que tenía eran las baterías y su peso, así como su gasto. Desde entonces, los bancos de energía baratos para teléfonos móviles se han vuelto muy asequibles. Todo lo que necesitaba hacer era reducir el peso. Como soy barato, cambié al microcontrolador STM32F103C. El microcontrolador STM32F103C se puede comprar por menos de $ 2 y es mucho más pequeño que un Arduino. Cambié un poco de la codificación para trabajar con el STM32F103C también.

Suministros

  • Un coche de control remoto barato que se alimenta de pilas. Sí, como el que usa Ardumotive_com. Cambiará el sistema y usará un banco de energía para teléfono en su lugar. Si tiene los recursos para construir su propio chasis, hágalo. Fui a la juguetería al final de la calle y compré un auto barato por menos de $ 10. El automóvil se alimenta de baterías y el control remoto se alimenta de baterías, perfecto para mejorar.
  • Un banco de poder telefónico … Ahora son súper baratos. Aléjate de los bancos de energía que tienen un botón de encendido en el lateral. No podrá seguir a su automóvil y mantener presionado el botón. Eso es tonto.
  • Un chip L293D: este es el puente en H doble que controlará los motores eléctricos.
  • Un módulo Bluetooth HC-06
  • Un interruptor: utilicé un simple interruptor de encendido / apagado.
  • Un poco de alambre - cable telefónico estaría bien, pero un poco más grande de calibre 20 trenzado sería mejor.
  • Un Proto Board o un trozo de plástico o cartón para montar su Blue Pill y L293D. Soy barato, así que se me ocurrió un sistema un poco diferente con cartón corrugado delgado, como el de una caja de bombillas.
  • Dos cables de carga USB baratos: se pueden comprar en un Dollar Tree. No uses tu bonito cable de programación. Uno se cortará para el interruptor de encendido / apagado y el otro cargará la batería.

Opcional

  • 4 LED, si desea faros delanteros y traseros.
  • 4 resistencias de 220 ohmios: para los LED en un sistema de 3.3v.
  • Un altavoz piezoeléctrico o pequeño para una bocina.

Instrumentos

  • Soldador y soldadura
  • Hot Glue Gun: ¡Mi hija es una ninja de Hot Glue Gun!
  • Pelacables y tijeras
  • NOTA: si usa la técnica de cartón que estoy usando en lugar de un protoboard, necesitará una Dremel o un taladro pequeño

Paso 1: ¡Destruye el Battery Eater

¡Destruye al Battery Eater!
¡Destruye al Battery Eater!

¡Es hora de divertirse destruyendo el devorador de baterías! Sí, ¡DESTRUYE ESA COSA! Siéntete orgulloso de que estás haciendo tu parte para hacer que el mundo sea más verde. Está bien, eso es una exageración, pero de todos modos … Ve al cuadro.

Arriba, es la misma unidad que hice la versión de Arduino. La versión de Arduino usaba una gran potencia de batería que hacía que el automóvil fuera más pesado. Entonces, lo bajé al marco. Agregué algunos guardabarros de una botella de plástico y pegamento caliente, y personalicé la carrocería. Más sobre el cuerpo más tarde.

Una vez que tenga el marco con los motores y la dirección desnudos, busque qué lado de los terminales del motor son cuáles. Utilice una batería o un cargador de 5v para probar el motor.

En el motor de dirección, cuando las ruedas giren a la derecha, rotule el cable positivo de la batería como "3" y el cable negativo como "6".

En el motor impulsor, cuando las ruedas giran hacia adelante, rotule el cable positivo de la batería como "14" y el cable negativo como "11".

Paso 2: el código en Arduino IDE

El código en Arduino IDE
El código en Arduino IDE
El código en Arduino IDE
El código en Arduino IDE

Puede ser mejor si primero crea un prototipo de la electrónica de su automóvil en una placa de pruebas.

Bien, esta es una de las partes complicadas. La "píldora azul" no se puede programar a través del puerto USB. No he encontrado una explicación de programación más fácil de la "píldora azul" que el video de Youtube de Joop Brokking. Explica todo lo que necesita saber, incluida la biblioteca STMduino de Roger Clarke. Hay una forma de instalar un cargador de arranque para que PUEDA usar el USB para programar la "píldora azul", pero de todos modos debe programar el cargador de arranque a través del bus serie.

Desafortunadamente, el adaptador Bluetooth también utiliza el bus serie. El programa debe instalarse a través de los pines Serial Bus, PA9 y PA10, primero a través de un FTDI, luego puede verificar todas sus configuraciones con el adaptador Bluetooth.

Use una placa de pruebas y coloque todo en la placa de pruebas como en el boceto de fritzing de arriba. Desconecte las líneas Serial TX y RX del adaptador Bluetooth en los pines PA9 y PA10 del STM32F103C. Enganche su FTDI y programe. Asegúrese de que las líneas de bus serie estén cruzadas, RX a Tx y Tx a RX. Uno recibe y el otro da.

Una vez que se carga el programa, puede abrir la consola serie y enviar

para ver si las luces funcionan. Si las luces funcionan, puedes enviar

de nuevo para apagarlos.

Pon tu auto en un bloque para elevar los neumáticos y enviar

Las ruedas deben avanzar. Si no es así, invierta los cables. Recuerde cómo etiquetamos los cables anteriormente. Los pines correspondientes del L293D deben coincidir.

Para detener, enviar

Veamos los cambios significativos en el código.

En la sección comentada, al principio, debería ver el creador de archivos, de Ardumotive. Los siguientes comentarios explican dónde he cambiado un poco para reflejar el STM32F103C.

/ * * Creado por Vasilakis Michalis // 12-12-2014 ver.2

* Proyecto: Control RC Car a través de Bluetooth con un teléfono inteligente Android * Más información en https://www.ardumotive.com * * Se modificó este código para que se ajuste a STM32F103 por Jim Garbe, [email protected] * Más información en https:// github.com / jgarbe / RCCAR_STM32F103C * Tenga en cuenta que los valores de 8 bits 0-255 se han cambiado para * reflejar los valores de 16 bits 0-65535 * / / ****************** ********* * En STM32, la escritura analógica todavía funciona en 255 de 8 bits, * Pero puede obtener la función completa del rango PWM, 0-65535, declarando el Pin como PWM * Y usando pwmWrite () en lugar de analogWrite () *************************** /

En particular, los pines no se nombran de la misma manera entre el Arduino y el STM32F103C. Declaramos los pines usando el siguiente conjunto de líneas. Queda un pin que se declara muy abajo en el bucle. En la línea 197, PA5 se usa para leer el nivel de la batería.

//// Conexión L293

const int motorA1 = PB6; // al pin 15 de L293 const int motorA2 = PB7; // al pin 10 de L293 const int motorB1 = PB8; // al pin 7 de L293 const int motorB2 = PB9; // al Pin 2 de L293 // Leds conectados al STM32F103C Pin A12 const int lights = PA12; // Zumbador / Altavoz para Arduino UNO Pin A8 const int buzzer = PA8; // Bluetooth (HC-06 JY-MCU) Estado pin en el pin A11 de STM32F103C const int BTState = PA11;

Además, usando analogWrite (); seguirá funcionando en la "BluePill". Pero es mejor declarar los pines PWM usando, pinMode (, PWM);

Entonces usa

pwmWrite (,);

NOTA: 8 bits = 0-255, 16 bits = 0-65535

Las líneas 32-44 son cambios realizados en la batería. Si va a utilizar la verificación del nivel de la batería, debe usar un divisor de voltaje para la batería que tiene. Esta parte no se refleja en el boceto de Fritzing. Hay muchas explicaciones sobre cómo crear un divisor de voltaje en Youtube. Debido a que el STM32F103C es un chip de 3.3v, arreglé el código aquí para usar físicamente un divisor de voltaje. El Arduino puede tolerar algunos voltajes más altos a través de los ADC proporcionados, pero la "píldora azul" no puede.

/ * El nivel de la batería se comprobará en el pin PA5

* Cambié la siguiente línea para el STM32F103C porque el ADC no puede manejar * nada por encima de 3.3v * Lo acabo de comentar * Se debe calcular y usar un divisor de voltaje, usando dos resistencias * para medir la entrada ADC más abajo en el código * ejemplo: * GND --- Resistencia de 2K ----------------- Resistencia de 1K ------ 5v * | * | * 3.3v * / // const float maxBattery = 3.3; // ¡Cambie el valor a su nivel máximo de voltaje de la batería!

Paso 3: Ponlo todo junto

Ponlo todo junto
Ponlo todo junto
Ponlo todo junto
Ponlo todo junto
Ponlo todo junto
Ponlo todo junto
Ponlo todo junto
Ponlo todo junto

Yo suelo usar un proto-tablero para colocar las piezas y soldar entre los agujeros para conectar todo. A veces "sueldo un insecto muerto" todo junto para obtener más un aspecto de soldadura Frankenstein / 3D.

Elegí este método híbrido para que el dispositivo sea limpio y liviano y, por supuesto, ¡BARATO!

Este método también permite el etiquetado. Una de las peores partes de la soldadura de insectos muertos es cuando miras un chip IC desde la parte inferior y olvidas qué pin es qué.

Las imágenes de arriba se explican por sí mismas. Supongo que lo difícil es encontrar el cartón lo suficientemente delgado como para formar hoyuelos y ser rígido al mismo tiempo. También puedes usar plástico, pero marcarlo es un poco más difícil. Una vez que presiono las clavijas contra el tablero y marco los hoyuelos, uso una Dremel para perforar cada orificio de clavija.

Si aún no lo has notado, solo tengo las luces como enchufe accesorio en la placa. No estoy usando el indicador de batería ni el zumbador. Es porque mi proyecto tiene un propósito diferente. Se explicará por sí mismo una vez que vea el resultado final con la carrocería. … Pero esto trae otra idea, hay muchos pines sin usar en este proyecto. Tal vez un abridor de maletero, un abridor de puerta de coche, un detonador de fuego, … … ¡o incluso un mini generador de perturbaciones de éter luminífero Galvani-Edison!

Una vez que haya completado toda la soldadura, pruebe antes de pegar en caliente las uniones para aliviar la tensión en los cables.

Usé la misma aplicación de Android que Ardumotive, se puede encontrar en

Una vez que haya probado las funciones del automóvil, es hora de colocar la batería y cambiar. Vaya al siguiente paso.

Paso 4: batería e interruptor

Bien, aquí es donde no puedes seguir mi plan exactamente.

De alguna manera, tendrá que encontrar un buen lugar para colocar la batería en el automóvil, ya sea una forma de cargar el banco de baterías desde un dongle o una forma de cargar directamente el enchufe de la batería. En el video introductorio, pegué la batería y el microcontrolador al marco y lo ejecuté. Cuando quise parar, simplemente desconecté la batería. El problema con esta configuración es la perecibilidad de los enchufes de su cable USB y / o su banco de energía. Es mejor tener un interruptor.

También tendrá que encontrar un buen lugar para el interruptor donde la carrocería del automóvil aún permita el acceso. Usé un interruptor de botón simple (no un interruptor momentáneo) y lo monté en la parte inferior del marco donde se encuentra el compartimiento de la batería original.

Tendrá que cortar un cable USB por la mitad y colocar el interruptor entre la batería y el puerto USB STM32F103C. Sí, puede alimentar el STM32F103C con el puerto USB. Simplemente no puede programarlo a través del puerto USB. Usé una Dremel nuevamente para perforar algunos agujeros para los pines de soldadura del interruptor. Una vez soldado, utilicé Hot Glue, nuevamente para reforzar las conexiones.

Paso 5: coloque la carrocería de su automóvil en el marco

De acuerdo, dije que rediseñé la versión Arduino original de este auto. El producto final real, entonces, fue un accesorio de escenario para el ballet "El Cascanueces" realizado por nuestra compañía de ballet local. En la escena de apertura, un ratón corrió por el escenario con la magia accidental de Drosselmeyer. Usé una rata IKEA y la coloqué en la parte superior del marco, Arduino y una batería mucho más grande. El accesorio era pesado y no recargable. ¡Esto es mucho mejor!

Diviértete con tu coche. Recuerde que hay muchos más pines en el STM32F103C que se pueden usar. Quizás una mofeta similar a la de "Toy Story 4".

Recomendado: