Analog Beamformingと対を成すSDR/RadioVerse

 

デジタルが旺盛する昨今だが、アナログ素子は切っても切り離せない。

5G/Noise Canceler/blocking/Direction Finding等、用途は多様だ。

これらを構成するアナログ素子は基盤化されているのか気になったため、検索してみた。すると、ADIのビームフォーマーチップが多く出てくる。

Tx Analog BeamForming

EVAL-ADAR1000

  • ADAR1000 の 4 チャンネルのビームフォーマー・コア・チップを想定
  • SPI によって制御可能
  • 複数のデジタル・インターフェース形式(3.3 V および 1.8 V ロジック)
  • オンボードのロジック・レベル変換器、電源用に 1.8 V 低ドロップアウト・レギュレータ
  • USB を介して Windowsベースの PC から ソフトウェアを制御 ADAR1000-EVALZ Image

EVAL-ADMV1014

24.5 GHz ~ 43.5 GHz 

ADMV1014 Evaluation Board

 

UHF帯で欲しいが見当たらない。

 

SDRベースで開発を行うRadioVerseもWIREDで詳しく紹介されていた。

 「凄い5G社会」を支える「凄いアナログ」という魔法|WIRED.jp

ADIの広帯域トランシーバーチップ「ADRV9009」と汎用の他社製FPGA1基を組み合わせた、アライアンスパートナーのマリモ電子工業社製のボード(中央)。ADIとパートナー企業が一丸となって推し進める「RadioVerse™」のエコシステムは通信にまつわるさまざまな設計を簡素化する。

 

CMOSの手法でアナログ素子を集積した基盤をソフトウェアベースで簡易に制御できるなら夢のようだ。以下ADRx製品でADIから数多く紹介されている。

但し、これらはAnalog Beamformingでは無くDigital Beam formingのようだ。

f:id:jijiken0417:20200310010153p:plain

 

 

RadioVerse

気になったためさらに調べてみると、youtubeでADIのRadioVerseが概説されている。

RadioVerseはソフトウェア無線ベースのデザイン環境であり、ADIのZynqSDR等によって製品開発までの流れを迅速化し、開発方法を一新し、研究、アルゴリズム開発、設計、プロトタイプ作成、製品化までをSDRで行えるようだ。

www.youtube.comf:id:jijiken0417:20200310010237p:plain

Slide

 

今後はSDRで製品開発を行うことが主流になっていくだろうか。

 

Rx Analog Beam-Forming

UHF帯で受信BeamFormingを行うなら、KerberosSDRが良いだろうか。

Networked Radio Direction Finding with KerberosSDR and RDFMapper

機会があれば使ってみたい。

Arduinoを制御するGUIのまとめ

ArduinoGUIから制御できないかと思い探してみると

Arduino Playground - InterfacingWithSoftware

に複数のGUIの紹介があった。

 

Azande

Azande Studioを入れると Serial等を介して送受信できる。

https://zeijlonsystems.se/products/azande/specification/lib/AzandeOverviewBlock3.PNG

Jubito

 web serverを立てる事で、様々なデバイスから制御可能にしている。

 

 https://www.megunolink.com/wp-content/uploads/2017/04/mlp-example.gif

https://www.megunolink.com/

 

ArduinoGUIデータ転送

Plotting DATAに従い、ArduinoからSerial経由でGUIであるMeguno Linkへ送信し、TIme Plotする例を実行した。

送信された波がGUI左側に表示された。

 

f:id:jijiken0417:20200225231502p:plain

 

GUIからArduinoへデータ転送

BUILD AN ARDUINO INTERFACEを見ると、入力インターフェイスも使える。

Arduino側の実装はPROCESS SERIAL COMMANDS WITH AN ARDUINOに記載されており、Arduino側でCommand HandlerをセットアップすればGUIからのコマンドを解読してくれるようだ。

f:id:jijiken0417:20200225232957p:plain

https://www.megunolink.com/documentation/build-arduino-interface/

 

Hobbistは30$で使えるようだ。

f:id:jijiken0417:20200225230205p:plain

 

Support HardwareもESP32等対応している。

Arduino Uno
Arduino Mega
Arduino Ethernet Shield (UDP)
Ether Ten (UDP)
Arduino Yun
Arduino Lillypad
Ethermega (UDP)
ESP8266 (UDP/TCP)
ESP32 (UDP/TCP)

 

まとめ

全て紹介できてないがいずれもGUIから制御、データ取得できる。簡易に使うならMegunoLinkに30$支払うのが良いか....。自分で作ったほうがいいかもしれない。

  使用感 特徴 価格 備考 言語
Azande 無料   C
Jubito WebServerを介してArduinoなどを制御可能なため、操作端末が縛られない 無料    
MegunoLink Technical Supportがあり有料 有料(14日間無料)

個人版は3000円

Supportあり

Instrumentino 公式ページがスイス語のため、不明 Python
Blynk 手順が多い 無料(20台以上は有料)
Device Druid 手順が多い    

GNURadio NBFM Tx/Rx

Working NBFM transceiver on GNU radio - Amateur Radio - Myriad RF Discourse

を参考に、LimeSDR miniと手持ちのハンディ機VX-3をNBFMで交信してみた。

編集したgrcファイルは https://github.com/uecken/GNURadio-TxRx に挙げる。

 

次の課題は、 デジタルキャンセラの実装による全二重通信としたい...。

f:id:jijiken0417:20200223175021p:plain

 

f:id:jijiken0417:20200223175253p:plain

 

GNURadioでMicrophoneとSpeakerをモニタ

Linuxの音声制御

Linuxアプリケーションは、サウンドサーバであるPulse Audioを介し、サウンドAPIであるALSA(Advanced Linux Sound Architecture)を制御することで、サウンドバイス(Microphone、Speaker)にアクセスできる。

 

 

Microphoneのモニタ

GNURadioでもMicrophoneから音声を取り込める[1]

Device Nameは、 arecord -Lで該当するAudio Deviceを選択する。

arecord -Lの実行結果

hw:CARD=PCH,DEV=0
HDA Intel PCH, ALC269VB Analog
Direct hardware device without any conversions

Audio Sourceには hw:CARD=PCH,DEV=0 を入力すれば良い。

f:id:jijiken0417:20200223150004p:plain

[1] Audio Source - GNU Radio

 

Speaker出力のモニタ

 尚、ALSA Pseudodeviceを作成すれば、Speaker出力をモニタすることもできる。

詳細は ALSAPulseAudio - GNU Radio の"Monitoring the output of your system"を参照されたい。

 

 

 

ESP32-CamのRTSP配信の動作検証

検証条件

Arduino IDE 1.8.7

・esp32 1.0.1

動作時の接続

書き込み時は3Vで良いが、動作時は5Vで動作させる必要がある

f:id:jijiken0417:20191222183112j:plain

 

ブラウザより以下へアクセスすると、

http://<IP>/stream  映像取得、

http://<IP>/capture 静止画取得できる。

 

また、RTSPサーバを動かしてVLCplayerで映像取得できました。[1]

image.png

注意点

・3V駆動や電源容量不足の場合、Detected camera not supported とエラーが出る

 [E][camera.c:1049] camera_probe(): Detected camera not supported.

所感

AndroidでRTSP to RTMPサーバーを作れば、低レートで複数配信できそうです。[2][3]
USB-OTG機能付きのものがあれば、スマホと有線接続できて開発・デバッグに使えて良いのですが、該当のものは、ESP32-PROでカメラモジュール無しでした。

 

参考記事

約800円のESP32-CAMで乾電池駆動のWebカメラサーバーを立てる - Qiita

Ai-Thinker ESP32-CAM in the Arduino IDE – Robot Zero OneRobot Zero One

[1]RTSP Video Streamer – ESP32
[2]Welcome to the rtmp-rtsp-stream-client-java wiki!
[3]Androidで動画配信アプリを作成する

ADALM-PLUTOの環境構築(まとめ中、未検証含む)

サンプルプログラムを動かし、GNURadioで動作を確認後、スタンドアローンでIQサンプリングできる方法を検証、記載する。

 

Host / Network モデムとして運用する方法

まずは、このサイトを一読し、ニーズに合う利用方法を選択するのが良い。

単独運用、ネットワーク運用、スマホからウォーターフォール確認等、幅広く解説さている。

http://www.pabr.org/radio/leantrx/thumb_plutosdr_phone_otg_batt.jpg

LeanTRX: A web interface for embedded SDR platfor

GNU Radioインストール手順

GNU Radioを利用したい場合、以下の手順となる。

0.FWアップデート

 windowsへADALM-PLUTOを接続時に開かれるエクスプローラの info.html の通りに設定する。

1.インターネットへ接続

 インターネットへ接続し、aptより必要ライブラリをインストールする必要がある。USB-EtherまたはWiFi Dongleよりインターネット接続を行う。 

 以下を参考にしたが、WiFI、USB-Ether共に全く繋がらない。

 WI-FiはTL-WN7252N、USB-EtherはCableMatterのもの。

 TL-WN725Nはテスト済みと記載があるのだが...。

USB OTG – HOST function Support [Analog Devices Wiki

Using either WIFI or Wire Ethernet with adalm-pluto - Q&A - Virtual Classroom for ADI University Program - EngineerZone

2.GNU Radioをインストール

GNU Radio [Analog Devices Wiki]

 

スタンドアローンSDRの作成方法(未検証・調査中)

まずは、USB電源供給し、ネットワークに接続する必要がある。
但し、シンプルホストとして外付けOTG USB Diskへデータを格納することも可能。(未

ADALM-PLUTO Prerequisites [Analog Devices Wiki]

 

以下、参考。

https://wiki.analog.com/university/tools/pluto/devs/embedded_code

https://ez.analog.com/adieducation/university-program/f/q-a/77812/is-there-an-example-somewhere-with-standalone-plutosdr-signal-grabbing/191626#191626

 

スタンドアローンSDRの作成方法2(未検証・調査中)

C/C++コードをクロスコンパイルする事で、Stand-Alone運用できるようだ。

https://wiki.analog.com/university/tools/pluto/devs/embedded_code

カスタムアプリケーションを創る。

以下に詳く、E310やSidekiq z2等もスタンドアローンSDRの候補となる。

2x2デバイスはZynq SDR等を利用する必要があるだろうか。

https://www.gnuradio.org/grcon/grcon18/presentations/plutosdr/8-Michael_Hennerich.pdf

 

その他スタンドアローンSDR

Zenboard

https://wiki.analog.com/resources/eval/user-guides/ad-fmcdaq2-ebz/software/linux/zynq