Plutón puede no ser un planeta, pero es un transmisor SDR
Muchos de los proyectos SDR que vemos utilizan un dispositivo USB barato. Son geniales, pero a veces quieres más y, especialmente, a veces quieres cumplir. El ADALM Pluto SDR de Analog Devices está disponible por $ 200 y, a veces, incluso $ 100 y se entrega y recibe a través de Analog AD9363 y Zynq FPGA. Aunque normalmente utiliza el dispositivo para procesar señales de IQ en una computadora host, puede iniciar programas SDR en el propio dispositivo. Eso requiere que profundices en las herramientas de Zynq, lo cual es divertido, pero es un tema para otro momento. En esta publicación, le mostraré cómo puede usar GNU Radio para hacer un signo de código Morse simple en la banda de radioaficionados de 2 m.
He tenido uno en mi banco durante un tiempo y he estado jugando un poco con él. Hay varias formas de usarlo con GNU Radio y parece funcionar muy bien. Necesitas hackearlo para disminuir ligeramente el rango de frecuencia. Seguro, puede que no haya una "especificación" después de ampliar el rango de frecuencia, pero parece funcionar bien. En lugar de trabajar de 325 MHz a 3.800 MHz con un ancho de banda de 20 MHz, el dispositivo pirateado transpone de 70 MHz a 6.000 MHz con un ancho de banda de 56 MHz. Es un truco simple que solo tienes que hacer una vez. Le dice al dispositivo que tiene un chip un poco mejor a bordo y asumimos que los chips son los mismos pero ordenados por rendimiento. Entonces, aunque las especificaciones pueden estar un poco fuera de lugar, probablemente no lo notará.
Deberes
Plutón tiene varias formas diferentes de comunicarse con él. Primero, parece un disco conectado a su computadora. Esto es conveniente para actualizar el firmware y cosas por el estilo. También hay una conexión a Internet que usa USB para la capa física. Esto le permite mover datos de un lado a otro o incluso obtener una línea de comando.
Por supuesto, si desea usarlo con GNU Radio, necesitará bloques para comunicarse con la entrada y la salida. También hay algunas opciones disponibles. Los dispositivos analógicos almacenan dos conjuntos de bloques diferentes. El que parece más antiguo es el bloque PlutoSDR, pero los bloques IIO parecen más nuevos y admiten muchos dispositivos.
Desafortunadamente, construir estos bloques puede ser doloroso. No tuve ningún problema para usar la versión publicada junto con GNURadio en los repositorios de Ubuntu. Pero cuando me cambié al nuevo candidato de publicación, no logré construirlo. Parecía que tendría que crear manualmente algunas bibliotecas para ponerlo en funcionamiento, así que me quedé con la versión anterior en los repositorios.
También ha cambiado
Para el receptor, si tiene los bloques IIO o Plutón integrados, es más o menos lo mismo que lo haría con cualquier otro receptor SDR. Claro, hay algunas rarezas. Por ejemplo, debido a que el dispositivo está conectado a una red, debe proporcionar una conexión. Si puedes hacer ping pluto.local
, puede utilizar "ip: pluto.local" como nombre. Si no tiene una configuración de mDNS, es posible que deba utilizar la dirección IP de la caja.
Todo lo demás es lo mismo. Desea respetar las frecuencias de muestreo mínima y máxima, por supuesto (consulte las especificaciones detalladas). Si configura la ganancia en automático, obtendrá errores al intentar configurar la ganancia manualmente. También los obtendrá si establece la ganancia por encima del límite, alrededor de 70 dB.
Por supuesto, la diferencia entre Plutón y el dongle SDR misceláneo de su jardín es que tiene un transmisor, pero si sabe un poco de radio, no encontrará la distribución muy confusa. IQ entra y aparece un nivel de RF muy bajo.
Baliza para Plutón
Decidí armar un letrero en código Morse para la cinta de dos metros. Soy un radioaficionado y la señal enviará mi llamada de atención, eso es completamente legal. Resultó mostrar bastantes matices de cómo funciona GNURadio.
Puedes encontrar el grc
archivo en GitHub. Notarás que la parte de entrega es bastante sencilla. Es el disipador de RF, por supuesto, y un remuestreador razonable para convertir el tono de CW de una muestra de 32 kHz a la muestra más alta utilizada por el disipador. Plutón solo puede aceptar ciertas velocidades de muestreo y no es útil para generar un tono lateral con altas velocidades de muestreo, por lo que el remuestreador convierte la frecuencia de muestreo más baja en la velocidad más alta. Puede pensar en la nueva frecuencia de muestreo como interpolation*(old_sample_rate/decimation)
.
El verdadero truco es cómo obtener el código Morse que desea enviar para modular la onda sinusoidal. Probablemente hay muchas formas de hacerlo, pero utilicé una fuente vectorial. Debo confesar que paré esta idea [argilo] que tiene muchos ejemplos de SDR en GitHub.
Vectores
Aunque las versiones más recientes de GNURadio tienen otros dispositivos, en general, todo en GNURadio está simplificado. Entonces necesitaba una transmisión que se pareciera al código que quiero enviar. La fuente tiene un flujo, donde 0 representa silencio y 1 representa tono. Entonces, un 1 es dit y tres seguidos hacen un dah o un guión. Los 0 se combinan para crear diferentes espacios grandes. Ahora hay dos problemas. Ajuste la tasa y obtenga los datos vectoriales, lo cual es sorprendentemente molesto.
Fijar la tarifa es fácil. La fuente vectorial le da una muestra cada vez que alguien obtiene una que es igual a la muestra. Sin embargo, una edición a 1/32000 le da alrededor de 31 µs, lo cual es bastante rápido. El bloque de repetición interpola las muestras. Esto significa que para cada muestra la repite un cierto tiempo antes de recibir otra muestra del vector. Puede ajustar la velocidad ajustando la interpolación.
La fórmula para la longitud de un elemento de código en segundos es aproximadamente 1.2/speed
donde la velocidad está en palabras por minuto. Hay un widget de GUI para elegir la velocidad. La fórmula en el bloque iterativo es: int( samp_rate*(1.2/speed))
. Recuerde que reducir la velocidad también aumenta la demora al final del mensaje.
Esto significa que uno solo en el vector se convierte en un conjunto de 1 a la salida del bloque iterativo. Multiplica la onda sinusoidal por estos 0 y 1, y está listo para comenzar. Eso todavía permite que los datos se unan.
Perezoso
Realmente, podría hacerlo manualmente, pero eso es sorprendentemente tedioso. Decidí tomarme el tiempo necesario para corregirlo y escribir un pequeño programa en C para generar el vector. Es cierto que podría hacer la interpolación en el código C, pero eso haría vectores muy largos y también dificultaría cambiar la velocidad durante el tiempo de ejecución.
El código C le permite establecer lo que ingresa para los elementos del código y los espacios. Es un programa simple sin lujos, pero cumple su función. Puede redirigir un archivo y redirigir el archivo de salida porque no hay opciones de línea de comando.
Agregué manualmente un conjunto de ceros al final para separar la baliza. Podría ser una buena idea agregar esto al programa para que pueda especificar un espacio en segundos y la velocidad de la muestra y agregaría el número exacto de ceros. Si realiza esa modificación, no olvide que la frecuencia de muestreo se divide por la frecuencia de repetición del bloque.
Tono lateral
Decidí que quería emitir sonido por los altavoces durante una transmisión. Hay al menos dos formas de hacer esto. Podría usar otra fuente de señal para generar el tono e ingresarlo con el flujo de 1 y 0. Sin embargo, dado que el tono de modulación ya está en 1 kHz, tenía sentido simplemente tocarlo con el sonido. Un bloque de complejo a real configura las cosas para ir a una tarjeta de sonido que se conecta a la tarjeta de sonido. Establecí una constante de multiplicación rápida que multiplica el tono por 1. Esto le permitiría controlar el volumen, pero solo quería silenciarlo, por lo que un widget GUI puede cambiar la constante entre 0 y 1.
En uso
Si desea probar esto, debe cambiar mi llamada de atención en la baliza. También querrá elegir una buena frecuencia que no se use en su área, aunque la salida de Plutón es bastante débil y probablemente no interfiera con un repetidor que no se puede caminar.
Si enciende el diagrama de flujo, escuchará el tono lateral de la baliza de los altavoces de su computadora. Si tiene un receptor de FM, también podría escuchar la baliza en la radio si conecta las antenas. Dado que el tono de la sonata está encendido y apagado, es posible que desee bajar completamente la calefacción para escuchar el punto o el guión completo, ya que el vestido generalmente se cortará un poco en la parte delantera.
La interfaz de usuario es fea, pero podría ser mejor con los campos de consejos de la GUI y algo de atención. Si no los ha utilizado antes, consulte nuestra serie de aprendizaje sobre GNURadio.
Estaba cansado de que la baliza siempre transmitiera cuando solo quería procesar la parte codificada, así que agregué otra multiplicación y un widget como un interruptor para que la salida al transmisor se cancelara sin interrumpir el sonido lateral. .
La verdad es que la baliza sería mejor si hiciera algo de formación de onda en los pulsos modulares, pero para esta baliza de baja potencia, no es gran cosa. Es posible que también desee configurar el intervalo de CW para que se ajuste más a sus preferencias, lo que se hace fácilmente con el programa C.
Valor
Para experimentar, Plutón es genial. Ciertamente desearía que aún pudiera sintonizar por debajo de 30 MHz. Sin embargo, si planea usarlo para operaciones de radioaficionado, probablemente querrá algo de filtrado en la salida y ciertamente algún refuerzo. Las antenas proporcionadas tampoco harán nada práctico.
Si desea obtener más información sobre GNURadio, hemos creado algunos videos al respecto que puede que le guste usar. Recuerde que también puede utilizarlo para el procesamiento de señales.
Las fotos de hardware en esta publicación son todas de Analog Devices Wiki.
Steven13 dice:
Según mi primera mirada al titular, asumí que alguien había rebotado con éxito una señal de Plutón. ¿Qué sería una locura? Me pregunto si alguien hizo rebotar una señal de algo más que la luna.
RW versión 0.0.1 dice:
Solo puedo recordar por ahora que Venus era un radar mapeado desde la Tierra.
Pablo dice:
sí, se hizo con el radar del Sistema Solar Goldstone (GSSR)
https://eo.wikipedia.org/wiki/Goldstone_Solar_System_Radar
Duane Cook dice:
Desafortunadamente, no hay cobertura de HF. ¿Te estás divirtiendo mucho, FT8?
Un dron dice:
"Dado que el tono de la sonata está encendido y apagado, es posible que desee bajar la calefacción completamente para escuchar el punto o el guión completo, ya que el vestido generalmente se cortará un poco en la parte delantera".
Entonces, ¿enciende (OOK) la línea aérea junto con el tono FM modulado de 1KHz? ¿Por qué? Simplemente deje la arena siempre encendida y encienda el tono modulador. Por tanto, el silencio debe funcionar con normalidad. A medida que la materia se entrega al usuario, la hinchazón se rompe y nadie corta ninguna parte del tono.
Kees pa5cw dice:
Me gusta enviar Cw con Adalm pluto a través de la consola Sdr. ¿Eso también es posible?
Mucha gente está tratando de encontrar una manera, pero yo no he encontrado una solución adecuada.
73 Kees pa5cwJosé dice:
Sigo siendo yo. Construir un proceso con el mío. Yo uso un preamplificador de 3w y tengo 2 amplificadores Mitsubishi de 60 vatios para 2 metros y 440. Añadiendo algunos filtros y relés para cambiar entre bandas. Podría agregar más módulos de grupo más tarde, pero Llegaré a los repetidores locales con él a través de la consola SDR.
Gerald dice:
Agregué manualmente un conjunto de ceros al final para separar la baliza. Podría ser una buena idea agregar esto al programa para que pueda especificar un espacio en segundos y la velocidad de la muestra y agregaría el número exacto de ceros.
También utilizo un vector para transmitir datos, pero necesito tener un espacio muy largo con un tono no modulado inicialmente. Eso requeriría demasiados datos en el vector, por lo que estoy buscando una manera de alternar sucesivamente el espacio de tono puro y el tono modulado de los datos vectoriales. ¿Cómo puedo lograr esto con GNU Radio?
cemaxecuter dice:
Por favor pregunte si puede ver si su Pluto y sus bloques funcionan con el Linux que construyo (incluye GNU Radio). No tengo uno y no estoy seguro de tener todo lo necesario para Pluto preinstalado.
https://la-tecnologia.com/2020/04/11/software-defined-radio-made-easy/
ISO más reciente, cambiado de Debian Buster a Lubuntu 18.04 ubicado aquí,
https://sourceforge.net/projects/dragonos-lts/
Gracias por la publicación de ejemplo. Tendré que hacer todo lo necesario para probarlo yo mismo.
Bunsen dice:
¿Cómo se ven las emisiones falsas de esto? Ese es el fallo habitual de los SDR de banda ancha como los transmisores: se obtiene una señal de imagen o LO enorme. Dependiendo de cómo esté configurada la cadena de transmisión, vi esto tan malo como -10 dBc. Eso es entre 30 dB y 50 dB más alto de lo permitido, dependiendo de la banda en la que se encuentre. Todavía no he puesto a Plutón en un analizador, así que no sé qué tan bien o qué tan mal lo están haciendo.
McNugget dice:
El ADALM Plutón es bastante malo. Es un gran receptor de alta resolución, pero el modo de transmisión provoca extrañas transmisiones falsas de espejo y no puedes apagarlas después de transmitir. Debe desconectar físicamente la línea USB para restablecerla. También descubrí que al sintonizar el receptor LO, mueve ese TX falso con el LO, por lo que escupe basura por todas partes. Por supuesto, su potencia de producción muy baja evita todo tipo de interrupciones en los servicios de emergencia, pero eso es un trato para mí y es por eso que dejo de usar el mío.
ULO TISDALE dice:
Entonces, ¿puedo usar la unidad de $ 100 para producir un radio de 6 m? Quiero insertarlo en una Raspberry pi 3 para hacer un receptor de radio independiente para la cinta de 6 m.
Neil dice:
Alguien necesita hacer radio GNU o programación incorporada para Plutón para que pueda ser un Digipeater APRS. Probaría si alguien codificara.
huésped dice:
Es bastante bueno hacer OFDM con 64 subcontratistas de QAM-16 en una malla ... muy lineal y muy bueno en las falsificaciones.
https://github.com/tvelliott/charonsm6vfz dice:
¿Cómo se ve conectado a un analizador de espectro? ¿Hay productos de alias del sobremuestreo, espuelas, etc.? Eso decidiría principalmente si el transmisor se puede usar o no, porque no desea configurar un amplificador de potencia a menos que la señal sea realmente limpia.