JP4in1 MultiProtocol TX Module ーソースのダウンロードとArduinoの準備 [DIY]
ソースのダウンロード
ファームウェアのアップデートに関して、二つの方法があり、
コンパイル済みバイナリのダウンロードして、それを書き込む方法
ソースからコンパイルをローカルで行い、できたバイナリを書き込む方法
の二つがあるが、ここでは、自力でコンパイルを行って、書き込む方法を選択する。
まずはソースのダウンロードについて。
前のページでも書いたけど、Jp4in1は、ハードウェアの提供のみで、ソースはおまけで、自分でバンバンしなさいと書いてあり、そこに、ソースのありかが書いてある。まずは、そこに行ってみる
すると右のほうに”Clone or Download"というボタンが出てくるので、それを押してZIPでダウンロードする。
でダウンロードしたものを、展開すると次のようになっているので、適当な場所に展開する。
Arduinoのダウンロード
DIY Mulitiprotocol のコンパイルは、Arduinoを使用する。Arduinoは、AVRのマイコンを使って、インターフェースなど共通規定化し、いろいろなセンサ等のハードウェアをお試しできるシステムがあって、ここでは、そのIDEを使用する。Arduinoの標準では、AVRのコンパイラが付いてくる、Jp4in1はSTM32を使うので、別途コンパイラを用意しないといけないが、このソースを開発したPascal Langerさんは、ボード定義や、コンパイラを含めたパッケージを用意してくれているので、それをダウンロードするだけで、コンパイルが可能となる。
まずは、Arduinoのダウンロードとインストールをするわけだけど、それはいろんなところで紹介されてるので、そちらで。。
いまからJp4in1をコンパイルするための、Arduinoの設定をするわけだけど、詳しいことは、
https://github.com/pascallanger/DIY-Multiprotocol-TX-Module/blob/master/docs/Arduino_IDE_Boards.md
に書いてあるので、英語で蕁麻疹が出ない人はこっちに当たったほうが正確です。
Arduinoを起動して、”ファイル”→”環境設定”のダイアログを開き、
追加のボードマネージャのURLに、以下を入力する。
https://raw.githubusercontent.com/pascallanger/DIY-Multiprotocol-TX-ModuleBoards/master/package_multi_4in1_board_index.json
そしてOKを押して、
”ツール”→”ボード:xxxxxx*→”ボードマネージャ”を選択して、
検索ボックスに ”multi"と入力すると、Pascal Langer さんのパッケージが3つ表示される。そのうちSTM32って書いてあるやつだけをダウンロードすればいい。
STM32書いてあるところの箱を一回クリックすると、右下にバージョン選択ボックスとインストールボタンが表示されるので、それで、インストールをクリックする。
するとコンパイルが可能になる。
検証コンパイル
コンパイラの準備ができたので、コンパイルを実施する。がその前に、
ボードを選択する必要がある。
”ツール”→”ボード:xxxx”→ボードマネージャの一覧に
Multi 4-in-1 (STM32F103CB)
が追加されているのでそれを選択する。
選択がうまくいくと、Arduinoのフレームの右下の表示がCOM5のMulti 4-in-1 (STM32F103CB)のように変わる。COM5の番号はここでは不問。
そこで先ほどダウンロードして、展開したソースファイルから、
DIY-Multiprotocol-TX-Module\Multiprotocol\Multiprotocol.ino
をオープンする。
この段階で、ほぼ準備はできているがもう一つやることがある。
このプロジェクトでは、アップロードのメソッドをコンパイル時に指定する必要があらしくデフォルトの設定ではコンパイルが失敗する。送信機からのアップロード用に設定されていて、環境を何かにあ焦る必要があるみたいだけど、それが不明というか調べてない。
で、何にする必要があるかというと、
Upload via Serial inc. Bootloader (FTDI)
を選択する。これで、コンパイルまでできる準備が完了したので、
検証コンパイル(丸のチェックボタンを押す)をやってみる。
すると何事もなくコンパイルが開始され、終了する
はず。
ここまできたら、Jp4In1をコンピュータに接続ずる。普通に売ってるUSB A->miniBのケーブルでいい。
Winodowsコントロールパネルのデバイスマネージャを開く。
ちゃんとWinodws10でもあるので、Start->Windowsシステムメニュー→コントロールパネル→デバイスマネージャで起動した後、Jp4In1を接続する。すると、COMポートに新しくデバイスが追加される。
僕のでは、
”Silicon labs CP210x USB to UART Bridge"が”COM5"に接続されている様子がわかる。
このCOM5を記憶しておく。
ケーブル100均のやつでもいいじゃないかと思うけど、気になる人は高いのをどうぞ。それより、コンピュータ側のハードの側の状態のほうがどうも怪しい気がしていて、シリアルをつかった設定をするときは、マシンごとリセットをしたほうがいい感じがしている。特にノートパソコンは。現に書き込みに際して、うまく認識はするけど、書き込みはできないなんてときにそんな状態が起こっている感じがある。うまくいかなかったら、マシンのリセットをして、それでもだめならほかの手を打つほうがいいような感じがしている。
そしたら、Arduino IDEの”ツール”→”シリアルポート:COMxx*->からCOM5を選択する。
そこで、ファイルメニューの下の、右向き矢印ボタンをクリックすると、再度アップロード向けコンパイルが実施される。コンパイルなしで直接書く方法もあるんだろうけど、調べてない。コンパイルもそこそこかかるので、できれば飛ばしたい時もある。
このときは、コンパイルが終わると、自動的にアップロードも開始される。抜粋するけど、代替こんな感じ。
うまくアップロードまで終了すると、最後に
Wrote and verified address 0x08016e64 (100.00%) Done.
Starting execution at address 0x08002000... done.
と表示され、アップロードが完了し、新しいファームで、Jp4in1が動き出す。
まずはアップロードまで。
次回バインド編。
JP4in1 Firmware version UP! 概要 [ラジコン]
JP-4in1 は、買ったままだとPPMモードではつかえないらしい。
しかも、添付のマニュアルにも
due to the copyright of the protocol , JP4IN1 only provides hardware,please refer following link to download the firmware :
https://github.com/pascallanger/DIY-Multiprotocol-TX-Module
”Jumperは、ハードウェアを提供しているだけで、ソフトウェアは、自分でダウンロードしてください
なんて書いてある。
このマルチプロトコル送信モジュールは、それこそ最初はArduinoかなんかで作り始めたらしく、かなりのバージョンが、存在しているみたいで、そもそもJumperのものも、CC(CreativeCommonsの略?)何とかって基板上に書いてあるから、オープンソースハードウェアなんではないかとおもわれる。JP4in1自体は、Jumperが、このオープンソースハードウェアをもとに改良してあるらしく、いわゆるUSBシリアル変換モジュール付きになっている。
Jp4in1のCPUはいわゆるArduinoのAVRではなく、STIのSTM32をつかっている。
使ったことないCPUなので、どうやってファームを書き込むかが不明だった。
いろいろこのページを見るとSTM32を使った場合nコンパイル方法が書いてあるページがあった。
https://github.com/pascallanger/DIY-Multiprotocol-TX-Module/blob/master/docs/Compiling_STM32.md
このページの中に、
Arduinoをつかってコンパイルすること、
Arduinoをつかってコンパイルするためのツールスイートのダウンロード方法
ファームアップをするときの具体的な方法
が書いてある。
が、先ほども書いた通り、いろいろなバージョンについて書いてある必要があるので、特定の機種については、与えられた情報のなかから取捨選択していく必要がある。
で、JP4in1のファームをバージョンアップするためには、
1.必要なハードウェアは、USB A->miniBのケーブルを使用し、
2.ボード種別に *Multi 4-in-1 (STM32F103CB)"を選択し、
3.Upload method に”Upload via Serial inc. Bootloader(FTDI)*を選択し、
4.”検証・コンパイル”を実施した後、
5.”マイコンボードに書き込む”を実施することで行える。
ファームの書き換えは可能で、一度は書き込みに成功している。
とりあえず、ハードウェアの改造はせずともできるのではないかと思われる。
#わたしはピンヘッダつけたが、不要っぽい。
詳細については、後術する。
しかも、添付のマニュアルにも
due to the copyright of the protocol , JP4IN1 only provides hardware,please refer following link to download the firmware :
https://github.com/pascallanger/DIY-Multiprotocol-TX-Module
”Jumperは、ハードウェアを提供しているだけで、ソフトウェアは、自分でダウンロードしてください
なんて書いてある。
このマルチプロトコル送信モジュールは、それこそ最初はArduinoかなんかで作り始めたらしく、かなりのバージョンが、存在しているみたいで、そもそもJumperのものも、CC(CreativeCommonsの略?)何とかって基板上に書いてあるから、オープンソースハードウェアなんではないかとおもわれる。JP4in1自体は、Jumperが、このオープンソースハードウェアをもとに改良してあるらしく、いわゆるUSBシリアル変換モジュール付きになっている。
Jp4in1のCPUはいわゆるArduinoのAVRではなく、STIのSTM32をつかっている。
使ったことないCPUなので、どうやってファームを書き込むかが不明だった。
いろいろこのページを見るとSTM32を使った場合nコンパイル方法が書いてあるページがあった。
https://github.com/pascallanger/DIY-Multiprotocol-TX-Module/blob/master/docs/Compiling_STM32.md
このページの中に、
Arduinoをつかってコンパイルすること、
Arduinoをつかってコンパイルするためのツールスイートのダウンロード方法
ファームアップをするときの具体的な方法
が書いてある。
が、先ほども書いた通り、いろいろなバージョンについて書いてある必要があるので、特定の機種については、与えられた情報のなかから取捨選択していく必要がある。
で、JP4in1のファームをバージョンアップするためには、
1.必要なハードウェアは、USB A->miniBのケーブルを使用し、
2.ボード種別に *Multi 4-in-1 (STM32F103CB)"を選択し、
3.Upload method に”Upload via Serial inc. Bootloader(FTDI)*を選択し、
4.”検証・コンパイル”を実施した後、
5.”マイコンボードに書き込む”を実施することで行える。
ファームの書き換えは可能で、一度は書き込みに成功している。
とりあえず、ハードウェアの改造はせずともできるのではないかと思われる。
#わたしはピンヘッダつけたが、不要っぽい。
詳細については、後術する。
2019-04-28 00:52
コメント(0)
Futaba 12ZA ! [ラジコン]
オークションでFutaba 12ZAというプロポをかった。2万円なので、高いとも言えないし、安いとも言えない。
そもそも中古だってことを考えるとちょっと高めかもしれない。
しかし、このプロポ、つかってみると、かなり優秀で、さすがに日本の超一流メイカーが作った準フラッグシップ機の使い勝手で、すごい。
すでに旧型となった、9Z(国内では、1024Zと呼ばれていた)プロポを使っているが、これでも何の不自由は、今のところ感じられなかったんだけど。
ラジコンの送信機のグレードは、ハードの信頼性もあるけど、ソフトウエアだと思う。9Zは、ものすごく個性的な作りになっていて、なかなかしびれるものがあったけど、今度の12Zもなかなかしびれる。
一番しびれたのは、チャネルごとの割り当てを自由に切り替えられることだ。
足しげく飛ばしに行ってた頃は、40Mhz、だの72Mhzだの周波数を使って、十数個のチャネルをみんなで分け合いながら使っていたが、2.4GHzの電波に代わって、お互い干渉することがなくなった。
ラジコンなので、送信機と受信機がお互い話をしながら飛ばすわけだけど、最近のドローンは中国製のものが多く、中国にあるメーカの受信機がデフォルトで埋め込まれているようになっており、この受信機と合わせるために、9Zと、この受信機に適合する送信モジュールを使って飛ばしていた。
ドローンのOSてきなソフトウェアにBetaFlightというのがあり、このOSで、FUTABAのプロトコルをしゃべれるように書き換えられた方がいらっしゃって、よっしゃそれならいけんのかと思い、
12Zを落として、いろいろ調べてみると、BetaFlightで対応しているFUTABAのプロトコルは、
S-HFSSというやつで、12Zではしゃべれないことが判明。
はてさてどうしたものか。
そもそも中古だってことを考えるとちょっと高めかもしれない。
しかし、このプロポ、つかってみると、かなり優秀で、さすがに日本の超一流メイカーが作った準フラッグシップ機の使い勝手で、すごい。
すでに旧型となった、9Z(国内では、1024Zと呼ばれていた)プロポを使っているが、これでも何の不自由は、今のところ感じられなかったんだけど。
ラジコンの送信機のグレードは、ハードの信頼性もあるけど、ソフトウエアだと思う。9Zは、ものすごく個性的な作りになっていて、なかなかしびれるものがあったけど、今度の12Zもなかなかしびれる。
一番しびれたのは、チャネルごとの割り当てを自由に切り替えられることだ。
足しげく飛ばしに行ってた頃は、40Mhz、だの72Mhzだの周波数を使って、十数個のチャネルをみんなで分け合いながら使っていたが、2.4GHzの電波に代わって、お互い干渉することがなくなった。
ラジコンなので、送信機と受信機がお互い話をしながら飛ばすわけだけど、最近のドローンは中国製のものが多く、中国にあるメーカの受信機がデフォルトで埋め込まれているようになっており、この受信機と合わせるために、9Zと、この受信機に適合する送信モジュールを使って飛ばしていた。
ドローンのOSてきなソフトウェアにBetaFlightというのがあり、このOSで、FUTABAのプロトコルをしゃべれるように書き換えられた方がいらっしゃって、よっしゃそれならいけんのかと思い、
12Zを落として、いろいろ調べてみると、BetaFlightで対応しているFUTABAのプロトコルは、
S-HFSSというやつで、12Zではしゃべれないことが判明。
はてさてどうしたものか。
トリガーセカンドステージ(撃発後) [APS]
トリガーゲージを作った時に、APで活躍しているJorker君とトリガープルについて話をしたことがあった。
撃発後のあと引きはあったほうがいいのかないほうがいいのか。
トリガーを引き始めほどなくすると撃発されるわけだが、そのあとのストロークを長くとるのがいいのか、全くなしにする(撃発後に、トリガーストップにあたる)、どっちがいいのかって話。
同じくAPでも活躍されている池上さんによると、あと引きナシは、100害あって1利なしという見解で、
おいらもそのように思ってた。引いている最中に壁に当たれば、トリガーを引いているトルクで銃を押すことになり、その結果、銃が回転を始める。回転すると、向きが変わるわけだから、あたんなくなるわな。ってんで、そうだと思ってた。
しかし、Jorkerは、”その考えもありそうだけど、APの機械式トリガーはなんかあと引きないんすよ。”と言っていて、意見が合わない。
というので、常用しているLE11にやってみることにした。
この絵だとLE17がそれっぽい。
プレートが難しくなりそうな気もするが。。。。
撃発後のあと引きはあったほうがいいのかないほうがいいのか。
トリガーを引き始めほどなくすると撃発されるわけだが、そのあとのストロークを長くとるのがいいのか、全くなしにする(撃発後に、トリガーストップにあたる)、どっちがいいのかって話。
同じくAPでも活躍されている池上さんによると、あと引きナシは、100害あって1利なしという見解で、
おいらもそのように思ってた。引いている最中に壁に当たれば、トリガーを引いているトルクで銃を押すことになり、その結果、銃が回転を始める。回転すると、向きが変わるわけだから、あたんなくなるわな。ってんで、そうだと思ってた。
しかし、Jorkerは、”その考えもありそうだけど、APの機械式トリガーはなんかあと引きないんすよ。”と言っていて、意見が合わない。
というので、常用しているLE11にやってみることにした。
この絵だとLE17がそれっぽい。
プレートが難しくなりそうな気もするが。。。。