Cómo hice una placa electrónica para sensores de telemetría y para controlar periféricos

En el proceso de creación de un robot camarero, un robot de telepresencia, un robot para selfies, aparecieron algunos desarrollos que es un pecado no compartir con la comunidad, es decir, hacer código abierto. Una de las versiones de trabajo era una placa electrónica, con el nombre en código SB versión 4.0, que usaba un Arduino económico y de funcionamiento relativamente bajo, a saber, Nano 3.0. La placa SB 4.0 es lo suficientemente simple y comprensible para consolidar su conocimiento de la electrónica y las habilidades de soldadura durante su ensamblaje, es lo suficientemente funcional como para realizar sus propios proyectos prácticos (por ejemplo, encienda la bombilla mediante señales del sensor de movimiento y el sensor de luz o por su comando a través de Bluetooth), y el costo de los componentes con entrega al realizar el pedido de nuestros amigos chinos con taobao fue de aproximadamente $ 55 (incluidos los propios sensores).

El objetivo principal de la placa SB 4.0 es la interfaz de hardware. Una vez recopilado, puede usarlo para recibir y procesar datos de varios sensores preinstalados y una mayor toma de decisiones y ejecución de algoritmos. Para facilitar la depuración, se creó una interfaz en el sistema operativo Windows, en la que las lecturas telemétricas de los sensores y una fuente de alimentación, el estado de los botones y servos se muestran claramente, y los comandos se pueden enviar al microcontrolador.

En esta publicación, describiré las características de la placa y un ejemplo de su aplicación. Nuevamente, todo esto es de código abierto, con licencia de CC Attribution Non-Commercial Share Alike.

Sí, ya hay tableros de control y KIT similares con sensores (tableros Arduino con escudos más caros, para Raspberry Pi, para amperios de yodo), pero SB 4.0 difiere de ellos en presencia de un tablero de alimentación y un programa de control conveniente escrito usando el entorno de desarrollo LabView. Es decir, SB 4.0 consta de dos placas: control + potencia. Esto se verá en fotos y videos.

Foto de ambas placas, sensor de movimiento, batería:



Programacion


Para programar el microcontrolador, como siempre, usamos C / C ++. Estamos desarrollando en el IDE Arduino.

La captura de pantalla muestra la interfaz del programa Selfiebot Control Panel, donde se muestran claramente las lecturas telemétricas de los sensores y la fuente de alimentación, el estado de los botones y los servos, puede enviar comandos al microcontrolador.

Captura de pantalla de la parte de la interfaz:



Rendimiento


SB 4.0 utiliza una de las plataformas Arduino Nano 3.0 más económicas con un microcontrolador ATmega328 de 8 bits. Esto es suficiente para procesar el código y resolver problemas: robots de control, sistemas domésticos inteligentes, etc.



Compatibilidad


El voltaje lógico es de 5 V, lo que garantiza la compatibilidad eléctrica con los periféricos Arduino.

Puertos de entrada / salida


Pines de control de microcontrolador disponibles. Entre paréntesis, indicó elementos predefinidos con los que el tablero ya sabe cómo trabajar.
  • 2 pines, que se pueden configurar como entrada / salida digital y salida PWM (para dos servos digitales);
  • 1 pin, entrada / salida digital (para sensor de movimiento);
  • 3 pines, entrada / salida digital (para LED RGB);
  • 1 pin, entrada / salida digital (para sensor de límite, botones);
  • 1 pin, salida digital + 5V / 0V (para controlar la carga externa).

El bus I2C y el puerto UART se utilizan respectivamente para la placa de expansión de puertos y el módulo Bluetooth.
Se proporciona la universalidad de la placa SB 4.0. ¡Coincide con los niveles de potencia, niveles de señal, tipo de entrada / salida! Reemplace los sensores preinstalados con sus sensores:

  • temperatura
  • nivel de ruido
  • humedad
  • presión, etc.


El pin de entrada funciona de forma cerrada / abierta. Es decir en el pin que va al MK o + 5V, o 0. Estos valores se incluyen en los datos de telemetría que se envían al software Selfiebot Control Panel.

El pin de salida produce 5V con una capacidad de carga de 1A, o está desactivado - 0V. Para aplicar voltaje o no a este conector solo es posible mediante un comando externo o mediante un comando del algoritmo de firmware.

No tiene sentido conectar sensores analógicos a pines digitales.

Nutrición


La alimentación se suministra a través de la toma de corriente de 2,1 mm o de baterías de iones de litio con un controlador de carga. La fuente se determina automáticamente.
En el caso de una fuente de alimentación a través de un enchufe, el voltaje de entrada recomendado es de 12-12.6 V. Los convertidores de voltaje DC-DC le dan 7 V a servos, 5 V a USB1, USB2 y otras cargas.
Use pines de 5V para alimentar periféricos. Cuando se usa una fuente de alimentación externa, se puede obtener hasta 1A de un pin de 5V.

El kit de fuente de alimentación incluye:
  • Paquete de baterías 3x18650, 1 ud.
  • Batería 18650, 3.7 V, de 2200 mAh, 3 piezas.
  • Controlador de carga, 1 pc.
  • 1 x conector de alimentación
  • Convertidores DC-DC, 4 piezas
  • Sensor Hall, 1 pieza
  • Transistores, 3 piezas
  • Optoacopladores y resistencias.




Comunicación


El microcontrolador Arduino Nano se programa a través de USB con software gratuito estándar del sitio web del fabricante MK. Para transferir datos entre SB 4.0 y una computadora, como siempre, elegí el módulo Bluetooth HC-06 común de bajo costo, la velocidad de transferencia de datos de 9600 Kb / s. Los datos de telemetría y los comandos de control pasan por este canal inalámbrico.

Dimensiones


Obtuve las dimensiones de la placa de alimentación electrónica: 100 × 70 × 40 mm. Las dimensiones del tablero de control electrónico son 90 × 70 × 45 mm. Pero estoy seguro de que aún puedes chamanizar y reducir el tamaño.

El espacio de contacto es de 0.1 ″ (2.54 mm).

Especificaciones del microcontrolador


  • Microcontrolador: ATmega328 de 8 bits.
  • Frecuencia de reloj: 16 MHz.
  • Memoria flash: 32 KB (se utilizan 2 KB para el gestor de arranque, 30 KB para almacenar el código de su programa).
  • RAM 2 KB.
  • EEPROM 1 Kb.
  • Tensión nominal de trabajo: 5 V


Características de la placa electrónica SB 4.0


  • Voltaje operativo nominal: 12,6 V
  • Tensión de entrada recomendada: 12–12,6 V.
  • Corriente máxima del bus 5 V: 1000 mA
  • Puertos de E / S de uso general: 2
  • Puertos con soporte PWM: 2


El tablero de control incluye los siguientes elementos:

  • Módulo Bluetooth HC-06, 1 pc.
  • Tarjeta electrónica de expansión del puerto del microcontrolador, 1 ud.
  • Microcontrolador Arduino Nano 3.0, 1 pc.
  • Placa de nivel de iluminación electrónica de 1 pieza
  • Servos TowerPro MG966R, 2 piezas
  • Fotoresistor, 1 ud.
  • Sensor de movimiento, 1 pc.
  • 1 x LED RGB
  • Botón, 1 pieza
  • Fusible, 1 ud.
  • Puente, 1 pc.
  • Transistor, 1 pieza
  • Condensador, 1 pc.




Uso práctico


Opciones para uso práctico:

1. Abra / cierre ventanas cuando cambie la temperatura.
2. Encienda / apague el ventilador cuando cambie la humedad en la habitación.
3. Encienda / apague la luz en presencia de movimiento en la oscuridad.
4. Encienda / apague el suministro de agua cuando cambie la humedad del suelo.
5. Encienda la iluminación IR en la oscuridad.
6. Transferencia de cualquier información de telemetría al servidor a través de la conexión a Internet.

Ejemplo de aplicación de placa SB 4.0


Propósito: siempre que se presione el botón, encienda la luz cuando se detecte movimiento.



Para hacer esto, también necesitamos un módulo de relé, una bombilla (220 ADC o hasta 12 VDC).

1. Muy a menudo encontramos relés de 12VDC y 05VDC. El número significa qué valor de voltaje directo se debe suministrar a la entrada del relé.
2. Considere la operación del relé SRD-05VDC de Songle, que es común para Arduino.
3. Cuando se aplica energía al pin Vcc y se cortocircuita al pin "GND", el LED verde se ilumina.
4. Desde tenemos un módulo de un solo canal, luego en la placa verá solo un pin de señal In1. Si configura el nivel de voltaje BAJO en In1, el LED rojo del módulo de relé se ilumina y el relé funciona con un clic característico. En Arduino, el comando digitalWrite (pin, LOW) es responsable de establecer el nivel de voltaje en el pin; Para devolver el relé a su estado anterior, use el comando digitalWrite (pin, HIGH);
5. Conecte el módulo de relé a la placa SB 4.0, que tiene un sensor de movimiento preinstalado y un botón de usuario.
5.1. El pin de señal In1 del módulo de relé está conectado al pin 13.
5.2. En el código del programa Arduino Nano encontramos:
***********************************
 //     -   ,       timeout_SnSM
 if (var_Tlm_SnSM == 1) { time_Move_detect = millis(); }
 if (millis() - time_Move_detect < timeout_Move_detect) { Move_detect = 1; } else { Move_detect = 0; }
***********************************


Agregue estas líneas a continuación:
***********************************
  //     (== 0),     (== 1)     13 (== LOW),   timeout_SnSM
  if (var_Tlm_BUT == 0) { 
    if (Move_detect == 1) { digitalWrite(PIN_D13, LOW); } else {  digitalWrite(PIN_D13, HIGH); }
  } else {
    digitalWrite(PIN_D13, HIGH); 
  }
***********************************

5.3. Descargue el nuevo firmware y encienda la alimentación de la placa.

Si el sensor de movimiento ha detectado movimiento, entonces, gracias a nuestro algoritmo, el nivel BAJO aparece en el pin de la fuente de alimentación de la carga externa, el relé funciona, cierra el circuito y la lámpara se enciende.

Por lo tanto, si una persona pasa por un sensor de movimiento, la luz se enciende.

Source: https://habr.com/ru/post/es397493/


All Articles