Instalación del Programa RadioShuttle para Turtle

Después de que el archivo generado «Turtle_RadioShuttle.NUCLEO_L432KC.bin» ha sido arrastrado y soltado en la ventana «RadioShuttle STM32 Utility», el software de RadioShuttle es cargado a la tarjeta Turtle.

Illustr. 1: El archivo binario ha sido cargado en la tarjeta

Definir propiedades para “RadioTest”

Para que la aplicación de ejemplo “RadioTest” funcione correctamente, es necesario configurar ciertas propiedades. Estos pueden ser definidos usando la aplicación “PropertyEditor”, una herramienta útil para escribir propiedades en la memoria permanente (“no volátil”) de la tarjeta Turtle. Los siguientes pasos describen cómo se hace esto.

La sencilla aplicación de prueba de RadioShuttle (“RadioTest”) está pensada para principiantes. Hay dos dispositivos que se comunican entre sí y comparten un mensaje simple. Un dispositivo se llama Nodo, el otro es una Estación. Con sólo pulsar el pulsador “User” se transmite un mensaje desde el nodo a la estación. Esto también funciona al revés; la estación también puede transmitir un mensaje al nodo, asumiendo que el nodo ha sido configurado como nodo en línea (por defecto es nodo fuera de línea).

Una vez que el software ha sido flasheado con éxito bajo macOS, se abre automáticamente una ventana del programa “Terminal” (illustr. 2) que muestra cualquier salida del programa flasheado, por ejemplo, la versión del compilador Arm, el voltaje y tipo de la fuente, la memoria disponible, etc.

Nota:
Si el programa “Terminal” no se inicia automáticamente (como se ha descrito anteriormente), por favor vaya a la opción de menú “Terminal > ttyusbmodem<…>” en la utilidad “RadioShuttle STM32 Utility”.

En Windows, el emulador de terminal (por ejemplo, “Tera Term”) debe conectarse al nuevo puerto COM. La sección “Conectar el UART serie de destino al terminal host” de la página Interfaz Nucleo ST-Link explica esto en detalle.

Illustr. 2: Salida “Terminal” macOS

Esto abrirá el RadioShuttle PropertyEditor. Esta herramienta puede usarse para listar todas las propiedades (l), para establecer una propiedad (s<número de asignación de propiedad>=<valor>), y para borrar una propiedad (d) de la memoria permanente.

  • Introduzca l (para listar) y pulse ENTER para ver una lista de todas las propiedades disponibles (“LORA_DEVICE_ID” y “LORA_CODE_ID” ya están predefinidas, véase la illustr. 3)
Illustr. 3: Listado de las propiedades
PropiedadTipoDescripción
LORA_DEVICE_IDT_32BITID de dispositivo de la tarjeta (ajuste de fábrica, no tocar!)
LORA_CODE_IDT_32BITCódigo de la tarjeta (ajuste de fábrica, no tocar!)
LORA_RADIO_TYPET_32BITTipo de uso (no establecido):
1 = Nodo fuera de línea (Uso como sensor de radio en modo “deepsleep”)
3 = Nodo en línea (Uso comoo sensor de radio, siempre listo para recibir)
4 = Estación básica (Funcionamiento como servidor para redes pequeñas)
5 = Estación servidor (Funcionamiento como servidor para redes más grandes)
LORA_REMOTE_IDT_32BITID de comunicaciones de la estación remota (no establecido)
LORA_APP_PWD
(opcional)
T_STREstablece la contraseña de cifrado AES-128 por aplicación

Como se mencionó anteriormente, un dispositivo (es decir, la tarjeta Turtle) funciona como Nodo, el otro como Estación. El “PropertyEditor” de RadioShuttle permite especificar si la tarjeta debe funcionar como un nodo o como una estación.

Estación

  • Para la tarjeta Turtle que debe actuar como Estación, introduzca s14=4 (para Estación Básica) y pulse ENTER

Para que la estación pueda enviar mensajes a un nodo, se debe introducir el “LORA_REMOTE_ID” del nodo en la tarjeta de la estación. En este caso el nodo debe estar configurado como nodo en línea para recibir mensajes de otros:

  • Introduzca s12=11002 y pulse ENTER
Illustr. 4: Definido como LoRa Estación Básica

Nodo

  • Para la tarjeta Turtle que debe actuar como Nodo, introduzca s14=1 (para Nodo fuera de línea) y pulse ENTER

Para que el nodo pueda enviar mensajes a una estación, se debe introducir el “LORA_REMOTE_ID” de la estación en la tarjeta del nodo:

  • Introduzca s12=11000 y pulse ENTER
Illustr. 5: Definido como LoRa Nodo Fuera de Línea

Vídeo de formación: Non-volatile settings (NV Property)

Ejecutar el programa de ejemplo “RadioTest”

Después de ajustar las propiedades requeridas en ambas tarjetas Turtle, se puede ejecutar el programa de ejemplo “RadioTest”, que se incluye en el software RadioShuttle, para probar la configuración de las tarjetas:

  • Windows: Abra “Tera Term” y ajuste el número de puerto y la velocidad de transmisión a través de “Setup” > “Serial port…” (véase la sección Conectar el UART serie de destino al terminal host para obtener información detallada)
  • macOS: Abra “Terminal”
  • Presione el pulsador “User” en cualquiera de las tarjetas Turtle, Nodo o Estación.

El programa “RadioTest” envía un mensaje (“TxSend”) que es recibido por el dispositivo direccionado (“RxDone”).

En el siguiente ejemplo (illustr. 6) el nodo (ID “11002”) envió con éxito un mensaje a la estación (ID “11000”). El protocolo de transmisión también informa sobre la frecuencia de radio utilizada, el factor de dispersión y el ancho de banda, el tiempo de emisión del mensaje, el desplazamiento de frecuencia de recepción, etc. Utilizando un nodo en modo fuera de línea, el protocolo de transmisión termina con la línea Putting the radio into Sleep.

Illustr. 6: Envío de un mensaje desde un nodo fuera de línea a la estación

Este ejemplo (illustr. 7) muestra lo contrario; la estación (ID “11000”) envió con éxito un mensaje a un nodo fuera de línea (ID “11002”).

Illustr. 7: Envío de un mensaje desde la estación a un nodo fuera de línea

Reiniciar la tarjeta

Si se pulsa el pulsador “Reset”, el led verde de la tarjeta Turtle parpadea rápidamente, indicando que está esperando una conexión de terminal a través del puerto COM virtual USB. Si no se ha establecido ninguna conexión después de 30 segundos, la tarjeta continúa sin la consola serie USB.

Estados de los ledes en el ejemplo “RadioTest”

LED (verde):

  • Parpadeando rápidamente
    La tarjeta intenta conectarse a un programa terminal durante 30 segundos (a través del puerto USB virtual COM)
  • Apagado
    La tarjeta está inactiva en modo “deepsleep” y no tiene actividad en la CPU
  • Parcialmente parpadeando
    La tarjeta está procesando tareas, mientras está ocupada el led verde está encendido
  • Se ilumina permanentemente débil
    La tarjeta está conectada a un puerto COM virtual USB, la CPU se activa cada milisegundo para dar servicio al canal USB
  • Permanentemente encendido
    Un programa de sondeo o colgado que se ejecuta para siempre sin entrar en el modo de suspensión
  • Brevemente encendido
    Después de que un mensaje de LoRa ha sido transmitido (TX)

LED (rojo):

  • Pulsante
    Después de que el software RadioShuttle se ha iniciado, el led parpadea brevemente cada 2 segundos, indicando que la tarjeta está activa. Esto se puede desactivar desactivando timerUpdate() en el archivo “main.cpp”
  • Brevemente encendido
    Depués de que un mensaje de LoRa ha sido recibido (RX)

Por supuesto, los ledes también pueden ser asignados individualmente por el usuario.

La idea de los ledes es detectar la actividad de la CPU y/o de la radio. Esto es muy útil para averiguar si la tarjeta está ocupada. Por ejemplo, si el led verde está permanentemente encendido, la tarjeta no descansará para ahorrar energía (“sleep”), sino que está ocupada con protocolos USB u otra actividad. El impulso de dos segundos del led rojo indica principalmente que la tarjeta está “viva”. Para los despliegues finales con el mejor ahorro de energía, este comportamiento puede desactivarse.

Resumen completo de ejemplos

NombreBibliotecaDescripción
CPUBenchCPUBench.cppMedición del rendimiento de coma flotante y entero de la CPU
PropertyEditorNVPEditor.cppPrograma para la configuración de las propiedades, que se guardan en la tarjeta permanentemente. Permanece después de reiniciar o hasta después de instalar un nuevo programa. Véase también Memoria Permanente para Propiedades
LoRaPingPongLoRaPingPong.cppEjemplo de LoRa ping-pong
RadioContinuousTXRadioContinuousTX.cppPrograma de diagnóstico que transmite continuamente, por ejemplo, para mediciones de antenas de RF
BlinkyBlinky.cppLed parpadeando periodicamente usando un temporizador de ahorro de energía
RadioTestNewRadioTestNew.cppVéase la explicación detallada más arriba
PanicButtonPanicButton.cppEnvía los datos del sensor a una estación remota. Esto incluye temperatura, humedad y estado de la batería. Además tiene un timbre básico para confirmar a la persona que busca ayuda que la alarma está activada.
RemoteTempSensorRemoteTempSensor.cppSensor de temperatura remoto RadioShuttle; para clientes y servidores
RemoteRelayRemoteRelay.cppControl de relé remoto del RadioShuttle, para clientes y servidores
  • Presione “h” seguido del atajo del programa para ver la ayuda del comando correspondiente, por ejemplo h b (líneas de ayuda “Blinky”)

Vídeo de formación: Non-volatile settings (NV Property)

Ficha técninca PDF (en ingl.)