Leer Primero

Como se utiliza este blog?

martes, 14 de marzo de 2023

Bluetooth en la Raspberry Pi Pico W

Bienvenido a mi blog, hoy hablaremos un poco de la utilización de la funcionalidad Bluetooth en la Raspberry Pi Pico W, como habíamos dicho en el último post "Nuevos Microcontroladores Raspberry Pi Pico W, H y WH" el bluetooth venia desactivado por defecto, por cuestiones de licencias, certificados o legislaciones, pero ya se ha lanzado la versión 1.5.1 del SDK para la Pi Pico W, para programar en C++ y la última compilación de MicroPython, ahora su Pico W actual ha adquirido la capacidad de comunicarse con dispositivos Bluetooth y Bluetooth LE. Específicamente, se admite Bluetooth Classic, con la excepción temporal de ACL/SCO, junto con las funciones BLE Central y Peripheral. Las cosas también se pueden configurar para que pueda habilitar Bluetooth Classic y BLE individualmente o tener ambos disponibles al mismo tiempo. Los detalles completos de  los protocolos y perfiles de Bluetooth compatibles  están disponibles en GitHub.

SDK = “Software Development Kit”


Bibliotecas de Bluetooth para la Raspberry Pi Pico W

BTstack proporciona la API de Bluetooth y viene con las siguientes bibliotecas:

  • pico_btstack_ble- Agrega compatibilidad con Bluetooth Low Energy (LE).
  • pico_btstack_classic- Agrega compatibilidad con Bluetooth Classic.
  • pico_btstack_sbc_encoder- Agrega compatibilidad con el codificador de codificación de subbanda (SBC) de Bluetooth.
  • pico_btstack_sbc_decoder- Agrega compatibilidad con el decodificador de codificación de subbanda (SBC) de Bluetooth.
  • pico_btstack_bnep_lwip- Agrega compatibilidad con el protocolo de encapsulación de red Bluetooth (BNEP) mediante LwIP.
  • pico_btstack_bnep_lwip_sys_freertos- Agrega compatibilidad con el protocolo de encapsulación de red Bluetooth (BNEP) mediante LwIP con FreeRTOS para NO_SYS=0

Para obtener más información, consulte las notas del SDK 1.5.1 en el GitHub de Raspberry Pi.

Raspberry Pi Pico W Bluetooth Ejemplos

La biblioteca de ejemplos de Raspberry Pi GitHub se actualizó con algunos programas de muestra que puede ejecutar en el Bluetooth de la Pi Pico W. Incluyen funciones como el uso de Pi Pico W para fines de audio, incluida la transmisión, el control de reproducción y la alternancia de volumen. También hay una variedad de ejemplos de dispositivos de interacción humana que le permitirán imitar un teclado, un mouse o un joystick (algo así como tipo Rubber Ducky).


Primeros pasos con Bluetooth en la Pi Pico W

La forma más rápida de comenzar con Bluetooth en la Pi Pico W es ejecutar uno de los ejemplos usando las instrucciones de inicio rápido de Pi Pico SDK. Luego, en lugar de ejecutar <hello_world.c> como se muestra en el paso 3 de instrucciones, ejecute uno de los ejemplos de Pico Bluetooth en la página de GitHub.

Enrutar el tráfico de Wi-Fi y Bluetooth a través del único bus SPI de tres pines entre RP2040 y CYW43439 ha sido un desafío de ingeniería sustancial. La biblioteca BTstack de BlueKitchen proporciona compatibilidad con Bluetooth Classic y BLE en el SDK.

Ten en cuenta consultar el libro Conexión a Internet con Raspberry Pi Pico W, que lo guiará para comenzar a usar Bluetooth LE usando C++ SDK y con MicroPython.


Interesante opción para Raspberry Pi Pico W con soporte para BASIC y wifi https://geoffg.net/webmite.html


Instalación del SDK v1.5.1 en Windows 11 x64


PREGUNTAS FRECUENTES


¿Puedo utilizar Bluetooth Classic con la Pico W?

Por supuesto, Pico W es compatible con Bluetooth Classic y BLE.

¿Puedo conectar varios dispositivos a la Pico W simultáneamente?

Sí, Pico W puede actuar como dispositivo central y conectarse a varios periféricos Bluetooth simultáneamente. También puede utilizar Bluetooth Classic y BLE simultáneamente. Así que puedes crear sistemas ultracomplejos en los que Pico W se comunique con muchos sensores o controle varios dispositivos a la vez.

¿Cuál es el alcance Bluetooth de la Pico W?

Normalmente, hasta 30 metros en espacios abiertos. Sin embargo, el alcance puede variar en función de factores ambientales como obstáculos, interferencias e intensidad de la señal.

¿Puedo utilizar el Pico W como periférico Bluetooth?

La Pico W puede funcionar como dispositivo central o periférico. Así, permite que otros dispositivos centrales Bluetooth (como smartphones, tabletas u ordenadores) se conecten a ella.

¿Cómo programo la funcionalidad Bluetooth en la Pico W?

Puede programar la funcionalidad Bluetooth en la Pico W utilizando el Raspberry Pi Pico SDK versión 1.5.1. El SDK proporciona bibliotecas y ejemplos específicos para el desarrollo de Bluetooth. Le permite implementar servicios Bluetooth, características y manejar protocolos de comunicación.

¿Cuáles son los requisitos de alimentación para Bluetooth en la Pico W?

Bluetooth está diseñado para ahorrar energía. Por tanto, Pico W consume un mínimo de energía durante los periodos de inactividad y puedes optimizar aún más tu código utilizando técnicas como los modos de suspensión y los estados de bajo consumo. Obviamente, los requisitos específicos de consumo dependen de la aplicación y de los escenarios de uso.


"La palabra 'Raspberry Pi' y los logotipos oficiales son marcas comerciales con copyright © de la Raspberry Pi Foundation. El software utilizado en los productos Raspberry Pi es propiedad de sus respectivos autores y está sujeto a diversas licencias de código abierto, como la Licencia Pública General de GNU (GPL) y otras. Todos los derechos están reservados por sus respectivos propietarios y licencias correspondientes."



Quieres aportar algo que complemente este articulo? crees que hay algo que se deba corregir? Escríbenos este blog es para todos.

Finalmente recuerda que en https://jorgechac.blogspot.com nos dedicamos a construir una electrónica mejor! y apoyamos el proyecto CTC GO! (Creative Technologies in the Classroom) que es un programa de educación steam personalizable.


Si te sirvió deja un comentario de agradecimiento, comparte el post en tus redes sociales o recomiéndale el blog a un amigo, eso me motiva a seguir realizando estos pequeños posts y espero que vuelvas a mi blog, publico nuevo material con base en los softwares y apps que utilizo y la experiencia que he adquirido. Por último si deseas colaborar voluntariamente y crees que mi trabajo y mi tiempo lo ameritan, considere hacer una pequeña donación a mi NEQUI +573177295861.



También te puede interesar:


domingo, 5 de marzo de 2023

Arduino GIGA R1 Wi-Fi

Bienvenido a mi blog, hoy hablaremos un poco de la placa Arduino GIGA R1 Wi-Fi, Arduino es una plataforma de creación de electrónica de código abierto, la cual está basada en hardware y software libre, flexible y fácil de utilizar para los creadores o desarrolladores, para hacerlo, utiliza el lenguaje de programación Arduino (basado en Wiring) y el Software Arduino IDE (basado en Processing, una herramienta basada en Java). Recordemos que Arduino es un proyecto, un ecosistema y no solo un modelo concreto de placa. Como todas las placas Arduino y compatibles, tiene semejanzas con otras de sus hermanas: es la evolución de Arduino MEGA y Arduino DUE. En este post podrás comprender todo lo que necesitas saber sobre esta placa y comenzar a desarrollar tus propios proyectos DIY con Arduino GIGA R1 Wi-Fi. Antes de iniciar quiero recordar que el nuevo Arduino IDE 2.0 esta ahora basado en el marco Eclipse Theia.

Theia se basa en el mismo código subyacente que el popular y ampliable "Visual Studio Code" de Microsoft, esto permite que Arduino avance a un editor más potente y moderno y no olvidemos que ahora el DARK MODE o Modo Oscuro, ya viene nativo.


En el nuevo Arduino GIGA R1 Wi-Fi encontramos:



Microcontrolador STM32H747XI: este microcontrolador de doble núcleo de 32 bits le permite tener dos cerebros hablando entre sí (un Cortex®-M7 a 480 MHz y un Cortex®-M4 a 240 MHz), incluso puede ejecutar Micropython en un núcleo y Arduino (C, C++) en el otro, simultáneamente.

Comunicación inalámbrica Murata 1DX: ya sea que prefiera Wi-Fi® o Bluetooth®, la GIGA R1 WiFi lo tiene cubierto. Incluso puede conectarse rápidamente a Arduino IoT Cloud y realizar un seguimiento de su proyecto de forma remota. Y si le preocupa la seguridad de la comunicación, la placa tiene un chip coprocesador criptográfico ATECC608A (cortesía de microchip) con el que se pueden establecer distintos protocolos de encriptación y desencriptación para establecer comunicaciones seguras, este chip ya lo habíamos visto anteriormente en el Arduino UNO WiFi Rev2.

Puertos de hardware y comunicación: siguiendo el legado de Arduino Mega y Arduino Due, la GIGA R1 WiFi tiene 4 UART (puertos serie de hardware), 3 puertos I2C (1 más que sus predecesores), 2 puertos SPI (1 más que sus predecesores) ) y 1 FDCAN.

GPIO y pines adicionales: querían mantener el mismo factor de forma de Mega y Due, para que pueda adaptar fácilmente sus shield personalizados a la WiFi GIGA R1 (¡recuerde que esta placa funciona a 3.3V!) y agregaron encabezados adicionales para acceder a pines adicionales, dejando el conteo total en 76 pines GPIO y, lo mejor de todo, puede acceder a ellos desde abajo, así que mantenga su proyecto como está y solo piense en cómo expandirlo. Además, agregaron dos pines nuevos: un VRTC para que pueda conectar una batería para mantener el RTC en funcionamiento mientras la placa está apagada y un pin OFF para que pueda apagar la placa.

Conectores: La GIGA R1 WiFi tiene conectores adicionales integrados que facilitarán la creación de su proyecto sin ningún hardware adicional. Esta placa tiene:
  • Conector USB-A apto para alojar memorias USB, otros dispositivos de almacenamiento masivo y dispositivos HID como teclado o ratón.
  • Jack de entrada-salida de 3,5 mm conectado a DAC0, DAC1 y A7.
  • USB-C® para alimentar y programar la placa, así como para simular un dispositivo HID como un mouse o un teclado.
  • Conector Jtag, 2x5 1.27mm Joint Tag Action Group (Grupo de Acción de Etiqueta Conjunta).
  • Conector de cámara Arducam de 20 pines.

Soporte de mayor voltaje: en comparación con sus predecesores que admiten hasta 12 voltios, la GIGA R1 WiFi puede manejar un rango de 6 a 24 voltios DC de entrada externa.




Pero que se puede hacer con este nueva placa Arduino GIGA R1 WiFi?

  • Manejar 76 pines GPIO
  • Manejar wifi, bluetooth (proyectos IoT)
  • Manejar USB Host
  • Manejar proyectos con Audio
  • Computer Visión
  • Gaming
  • Robotics
  • Machine Learning
  • Music
  • Controllers
  • Interfaces
..................y más


Especificaciones técnicas:


Board     Nombre      Arduino® GIGA R1 Wi-Fi
                          SKU       ABX00063
Microcontrolador    STM32H747XI dual Cortex®-M7+M4 MCU Arm® de baja potencia de 32
                                    bits (hoja de datos)

Módulo de radio Murata 1DX dual WiFi 802.11b/g/n 65 Mbps y Bluetooth® (hoja de datos)

Seguridad         ATECC608A-MAHDA-T (hoja de datos)

USB USB‑C® Puerto de programación / HID
        USB-A         Host (habilitar con PA_15)

Pines Pines de E/S digitales 76
        Pines de entrada
        analógica         12
        DAC         2 (DAC0/DAC1)
        pines PWM         12
        Varios                 pin VRT y OFF

Comunicación UART         Sí, 4x
        I2C                 Si, 3x
        SPI                 Sí, 2x
        CAN         Sí (requiere un transceptor externo)

Conectores Cámara                 I2C + D54-D67
        Display                 D1N, D0N, D1P, D0P, CKN, CKP + D68-D75
        Jack de audio         DAC0, DAC1, A7

Power         Tensión de
        funcionamiento del
        circuito                 3,3 V
        Voltaje de entrada
        (VIN)         6-24V
        Corriente CC por pin
        de E/S                 8mA

Velocidad de         Cortex® M7                        480 MHz
reloj Cortex® M4                       240 MHz         

Memoria STM32H747XI Flash de 2 MB, RAM de 1 MB

Dimensiones Ancho         53 mm
        Longitud         101 mm




Diagrama de distribución de pines:





Si trabajas como yo con Fritzing, recuerda que ya se creo la librería 'Arduino GIGA R1 Wi-Fi' para realizar nuestros esquemáticos.


Preguntas Frecuentes:


¿Necesito una antena externa? ¿Está incluido con el producto?

Sí y sí, esta placa no tiene antena integrada, sin embargo, se proporciona una antena u.FL en la caja.

¿Qué modelos de Arducam son compatibles con el conector de cámara integrado?

El adaptador de cámara (encabezado J6) es un adaptador de 20 pines para cámaras Arducam como OV7675 y OV7670. Para obtener más información sobre cómo usar la cámara, visite la guía de la cámara WiFi GIGA R1. 

La GIGA R1 WiFi utiliza el USB-C® para alimentar y programar la placa, así como para simular un dispositivo HID como un mouse o un teclado.

La GIGA R1 WiFi expone todas las posibilidades de la STM32H7 de una manera accesible utilizando conectores de clavija de 2,54 mm, lo que la convierte en una opción más adecuada para la creación de prototipos. Dado su factor de forma, la GIGA R1 WiFi tiene espacio para proporcionar servicios adicionales, como un conector USB-A, un conector de entrada/salida de 3,5 mm y un conector JTAG integrado.

¿Puedo usar mis shield Arduino UNO, Arduino Mega o Arduino Due anteriores con el GIGA R1 WiFi?

Sí, mecánicamente las shield son compatibles, sin embargo, tenga en cuenta que el GIGA R1 WiFi funciona a 3,3 V, por lo que recomendamos verificar las especificaciones técnicas de la shield para asegurarse de que funciona a este voltaje.

¿Cuál es la diferencia entre los dos conectores USB?

La GIGA R1 WiFi tiene dos conectores USB. El conector USB-C® (USB0), junto al botón de reinicio y el conector de antena u.FL, se utiliza para programación, comunicación serial y alimentación de 5V. El conector USB-A (USB1), junto al conector jack de 3,5 mm, se utiliza como host USB (no como puerto de programación).


"La palabra 'Arduino' y los logotipos oficiales son marcas comerciales con copyright © de Arduino AG. El software Arduino IDE es propiedad de sus respectivos autores. La licencia principal que rige los productos de Arduino es la Licencia Pública General de GNU (GPL) y la Licencia Pública General Menor de GNU (LGPL). Todos los derechos están reservados por sus respectivos propietarios y licencias correspondientes."



Quieres aportar algo que complemente este articulo? crees que hay algo que se deba corregir? Escríbenos este blog es para todos.

Recuerda que en https://jorgechac.blogspot.com nos dedicamos a construir una electrónica mejor! y apoyamos el proyecto CTC GO! (Creative Technologies in the Classroom) que es un programa de educación steam personalizable.



Si te sirvió deja un comentario de agradecimiento, comparte el post en tus redes sociales o recomiéndale el blog a un amigo, eso me motiva a seguir realizando estos pequeños posts y espero que vuelvas a mi blog, publico nuevo material con base en los softwares y apps que utilizo y la experiencia que he adquirido. Por último si deseas colaborar voluntariamente y crees que mi trabajo y mi tiempo lo ameritan, considere hacer una pequeña donación a mi NEQUI +573177295861.



También te puede interesar: