FPVドローン ラップ計測システム【RotorHazard】を作っちゃおう ～その5～

# 9. USBノードを作るよ！ (お買い物編)
前回のコラムまでササっと読んでいただけているなら、まあ大体は認識できたのかもしれません。それじゃあ後は何が必要かしら？… そうです、いよいよ拾うアンテナユニットであるノードが必要になります。これを作らないと電波拾えないっすからね。

https://qiita.com/tmac116/items/1b672a3851e302422585

RotorHazardでは、5.8GHz周波数帯を拾うアンテナユニットのくくりを **【Node(ノード)】** と表現しています。最初はむむっ？と思ったのですが、そういうモノって理解いただければｗ

最初の部分で記載した **必要なもの** ですが、もう一度振り返りたいと思います。

### 用意するもの
 * **Arduino Nano互換機** (ATmega328P V3.0 16M 5V module)
 * **RX5808 受信モジュール** (5.8GHz帯)
 * **RX5808 ⇔ Arduino Nano互換機を接続する配線** (太さはお好み、AWG24あたり？)
 * **USB OTGケーブル** (PCとArduino互換機をUSBで接続しますので適切なクチで)

配線とかは電子工作系なショップさんで何とかするとして。
調達は **Arduino Nano互換機** と **RX5808受信モジュール** 。皆さまそれぞれ取得元はあるのかもしれないですが、ワイは今回、最近配送の早くなったと言われているアリエクさんで手に入れました。

### Arduino Nano互換機 (Choiceを選んだら4日ぐらいで届いた)
https://ja.aliexpress.com/item/1005006246685214.html?spm=a2g0o.order_list.order_list_main.10.3e2b585a4jEa4E&gatewayAdapt=glo2jpn

### RX5808受信モジュール (こちらは2週間ぐらいかしら)
https://ja.aliexpress.com/item/1005005136626037.html?spm=a2g0o.order_list.order_list_main.15.3e2b585a4jEa4E&gatewayAdapt=glo2jpn

何事もなく、無事に到着しましたよ。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/500291/773af633-1215-bf06-a522-c2a77817bbb1.png)

# 10. Arduino IDEでノードプログラムを書き込むための準備をしよう
まずはRotorHazardのハードウェア関連手順書の **USB Node** の項目を見てみましょう。

https://github.com/RotorHazard/RotorHazard/blob/v4.1.0-beta.2/doc/USB%20Nodes.md

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/500291/6ae89a9e-06df-3ed0-d559-5f268d353116.png)

ふむふむ… `config.json` のところにArduino Nano互換機を接続したときの仮想シリアルポートの番号を明示的に定義するのね。ワイは **COM3、COM4、COM5** になります。最初何も接続しない場合にはシミュレートモードという形でソフトのみ動かすモードになっていましたが、接続後にこちらを定義して起動すれば受信機がおしゃべりしだす…ということなのねん。どのハードがどのUSBポートで挿したら、どのCOMポートで認識するか？をメモっておく必要があるのは、ここが決め打ちで書かないといけないからなのであります。
※違うUSBポートに挿すと、COM7、COM8とか違う番号になっちゃいます。

後は、これからプログラム(スケッチ)をArduino Nano互換機へ書き込むなり！

# 11. プログラムをArduino Nano互換機に書き込むぅ！

### Arduino IDEの起動と、スケッチを開く

まずArduino IDEを起動します。(デスクトップ上のショートカット、もしくはスタートメニュー) その後 **ファイル ⇒ 開く** を選択します。今回のArduinoスケッチは `RotorHazard-4.1.0-b2¥src¥server¥node` 以下の`node.ino` です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/500291/006539ad-7d88-a845-16c8-c45c88e517c8.png)

こちらを選ぶと、Arduino IDEの中にいっぱいタブでファイルが開かれます。(関連したソースコード) その中から **config.h** を見つけ選んでください。先ほど目を通した手順書の中にはノードに番号を付ける…なんて書いてありますが、**USBノード版として運用する場合はノード番号は無視されます** って買いてありましたので、そのままあまり関係なく書き込んでしまおうと思います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/500291/cb3483ed-d311-0b81-09a2-bb5b7ddb4bce.png)

今回手に入れたArduino Nano互換機はブートローダも標準で書き込まれているものを選びましたので、あまりここいら細かいところは割愛しまっすｗ 気を付けるのはお買い物する際に安いから…というとブートローダなし、もしくはOld Bootloaderの場合がありますのでご注意を。
(アリエクで見てみると **Old Bootloader** を **アンティークブートローダ** と表現していてステキと思いましたｗ じゃあ古いとダメなのか？というとNGな話ではありませんが、ここの書き込みのところは区別されるので気を付ける必要ありってことです。機能的には劣る話ではありませんが、もしかしたら今後のPCとの相性、ドライバ関連で組み合わせ問題が出ちゃうかもしれないリスクはあるので、私は現行型ブートローダのモデルをあえて選んだってだけでした)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/500291/3fbe08d3-b6eb-3af3-032d-8bbc5813c6bc.png)

* Arduino Nano互換機をUSBへ接続
* ツール ⇒ ボード"Arduino Nano"、ボード"COM6"、Processer"ATmega328P" が選択されているのを確認。初めての場合には選択
* ① 検証ボタンを押しベリファイ
* ② 書き込みボタンを押しArduino Nano互換機にnode.inoスケッチを書き込み

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/500291/40ebad47-8ee3-a8e5-9c30-7873e6f374f1.png)

これで完成です。多分LEDの光り方も変わったのがわかると思います。
日本で3波利用となると、皆さんは最低3台購入しているのではないかと思いますので、あと2台も同様に書き込んでくださいませｗｗｗ

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/500291/9c800a49-aaa6-0722-e34e-4aaed7752474.png)

つづきはこちら

https://qiita.com/tmac116/items/0b32455c7cdb4b860da5