Electrónica y programación para Microcontroladores.

Cursos técnicos para electrónica programable

Mapa
Estamos en

Urquiza 1695, Entre Ríos, Gualeguaychú

Email
Contactanos

consultas@firteconline.com.ar

Arduino

Enviar información por Bluetooth a un móvil con la interfaz HC-06 es bastante simple. Esto debido a que la propia interfaz  resuelve  todas las cuestiones relacionadas con el transporte y protocolo de la comunicación y solo requiere de una conexión serial (UART) para conectar con el microcontrolador o dispositivo que procesará los datos. 
Está claro que con Bluetooth se facilitan las comunicaciones entre equipos móviles, se eliminan los cables y conexiones y además podemos crear pequeñas redes inalámbricas y facilitar la sincronización de datos entre equipos personales.
Además un detalle no menor es que cuando trabajamos con microcontroladores, la visualización de los datos o información que leemos de sensores puede ser engorrosa. Usar pantallas gráficas o cualquier dispositivo de Hardware que sumemos a nuestro proyecto lo encarece sumando recursos, conexiones, cantidad de memoria para el código que maneja la parte gráfica, etc. 
Con esta tecnología el propio móvil del usuario sirve como pantalla de visualización pudiendo incluso ver los datos no estando frente al propio equipo. 
Los dispositivos que incorporan este protocolo pueden comunicarse entre sí cuando se encuentran dentro de su alcance. Las comunicaciones se realizan por radiofrecuencia de forma que los dispositivos no tienen que estar alineados y pueden incluso estar en lugares separadas siempre que la potencia de transmisión es suficiente para alcanzar el destino.

La placa HC-06 tiene cuatro pines necesarios para la comunicación propuesta.

Vcc, Voltaje positivo de alimentación, aquí hay tener cuidado porque hay módulos que solo soportan voltajes de 3.3V, pero en su mayoría ya vienen acondicionados para trabajar en el rango de 3.3V a 6V.

GND, Voltaje negativo de alimentación, se tienen que conectar al GND de la placa que se esté usando, en este caso Raspberry PI Pico.

TX, Pin de Transmisión de datos, por este pin el HC-06 transmite los datos que le llegan desde el computador o el Móvil mediante Bluetooth, este pin debe ir conectado al pin RX de la placa Pico.

RX, pin de Recepción, a través de este pin el HC-06 recibirá los datos desde la placa Pico los cuales se transmitirán por Bluetooth, este pin va conectado al Pin TX de la placa Pico.
Recuerde que los pines de comunicaciones van cruzados.

En el siguiente ejemplo con MicroPython vamos a vincular dos canales analógicos (pines 26 y 27) de una placa Raspberry Pico a un móvil Android.
El siguiente código envía los datos a la interfaz HC-06, el pin 0 de Raspberry Pico se ha conectado el pin RX del HC-06 y el pin 1 de Raspberry Pico al TX del HC-06.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import time
from machine import ADC, UART, Pin
bandera = 0
uart0 = UART(0, baudrate=9600, tx=Pin(0), rx=Pin(1))
def main():
    canal_0 = machine.ADC(26) # Canal 0 ADC en pin 26
    canal_1 = machine.ADC(27) # Canal 1 ADC en pin 27
    factor_16 = 3.29 / (65535)  
    while True:
        global bandera
        
        
        if (bandera == 0):
            bits_16 = canal_0.read_u16();
            volts_16 = bits_16 * factor_16
            datos_tx = "%.02f" % (volts_16) + ';'
            uart0.write(datos_tx)
            print('Voltios Canal 0: {}'.format(datos_tx))
            bandera = 1
            print('-----------------------')
        if (bandera ==1):
            bits_16 = canal_1.read_u16();
            volts_16 = bits_16 * factor_16
            datos_tx = "%.02f" % (volts_16) + ';'
            uart0.write(datos_tx)
            print('Voltios Canal 1: {}'.format(datos_tx))
            bandera = 0
            print('-----------------------')
            
        time.sleep(.5)
        
if __name__ == '__main__':
    main()

Para construir la aplicación usamos App Inventor, siendo la imagen siguiente el conjunto principal de bloques para el despliegue de datos recibidos.
Se reciben cuatro bytes que incluyen el separador de campos ";" para separar y ubicar los datos de los dos canales analógicos en su correcto lugar.

Si no está familiarizado con la programación para Android puede descargarla aplicación desde el siguiente link habilitando la instalación de aplicaciones desconocidas en su móvil.

 

Resultado obtenido con el ejemplo. 

Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.

 

Nuevo libro para Arduino.

 Todo lo que necesita saber sobre la programación para Arduino la encontrará en este nuevo libro. 
Iniciando con los principios básicos de electrónica para terminar con protocolos de comunicaciones para IOT, conectividad para Internet, enlaces de radio y muchas cosas mas.
También encontrará la posibilidad de descargar todos los ejemplos propuestos listos para ser usados o adaptarlos a cualquier necesidad.

También puede obtener el libro en formato PDF en el E-Mail: Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.
Al final del libro encontrará un link para la descarga de todos los ejemplos tratados en el texto.

 

Encontrará en este libro una gran cantidad de ejemplos para Raspberry Pico y ESP32. Trucos de programación y soluciones inteligentes para el manejo de comunicaciones, pantallas inteligentes, protocolos de IOT y muchos temas relacionados con electrónica y su control con Miropython.
También puede obtener el libro en formato PDF en el E-Mail: Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.


Al final del libro encontrará un link para la descarga de todos los ejemplos tratados en el texto.

El eje central del libro es la programación en C para PIC y para la arquitectura de ARM con el compilador MikroC Pro de MikroElektronika.

Compilador largamente probado y sin duda una de las herramientas que junto con los compiladores oficiales de las correspondientes marcas generan código confiable y muy eficiente en el uso de los recursos de los microcontroladores.
MikroC ofrece gran cantidad 
de drivers contenidos en una extensa biblioteca que hacen el trabajo del programador mucho más sencillo acortando los tiempos de desarrollo y depuración de código.
Para la mayoría de los programadores de microcontroladores incorporar a su esquema de trabajo la arquitectura de ARM puede ser un paso complejo debido a las grandes diferencias que existen con otras arquitecturas como PIC, Atmel, etc.
Pensando en esto se ha desarrollado el presente trabajo que pretende hacer más fácil 
la programación para ARM en 32 bits y PIC en 8 bits.
También usaremos Visual TFT, un software creado por MikroElektronika para el desarrollo de interfaces gráficas con pantallas TFT que genera código para ser compilado directamente por sus compiladores, esto facilita mucho el diseño de interfaces con pantallas táctiles.
Si bien considero este trabajo como introductorio a la programación en el lenguaje C, encontrará una gran cantidad de ejemplos, rutinas de programación, librerías y textos explicativos sobre una diversidad de temas que pueden ser de utilidad no solo en el proceso de entender cada una de las arquitecturas, sino también para aplicar en desarrollos electrónicos en general.

Todos los ejemplos propuestos están pensados para su realización práctica con electrónica real, esto no significa que no pueda usar simuladores para corroborar su funcionamiento sin embargo la experiencia nos enseña que no siempre los resultados obtenidos en el simulador coinciden con el comportamiento en el terreno físico.
Recuerde que la simulación se ejecuta en un entorno ideal (la memoria del computador), sin ruidos eléctricos ni interferencias del mundo real.


También puede obtener el libro en formato PDF mas todos los ejemplos en el E-Mail: Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.