フライトコントローラーを自作してみる。~その4~

BlackBoxについて

前回書いた通り、基板化する前にBlackBoxを動作させてみます。
BlackBoxとはフライトコントローラー(以下FC)が諸々の情報をログとして記録する機能です。
ログの保存先としてBetaflightがサポートするメディアには、OpenLog基板、SDカード、SPIフラッシュIC 等があります。

OpenLogはSparkFun(SwitchScienceでも取扱いがある様です) のロギングデバイスで、FCには外付けする事になり機体内のスペースを取るため今回はパス。またSDカードは安くて大容量なのが魅力ですがカードコネクタがFC基板の面積を喰い設計が難しくなりそうなので、もうちょっと腕が上がってからにします。
という事で今回はSPIフラッシュを使ってみようと思います。

記録メディア

BetaflightがサポートするSPIフラッシュICはこちらのページに記載されている下記のデバイスで、この中から16MBのW25Q128を購入しました。

  • Micron/ST M25P16 -2 MByte
  • Micron/ST N25Q064 -8 MByte
  • Winbond W25Q64 -8 MByte
  • Macronix MX25L64 -8 MByte
  • Micron/ST N25Q128 -16 MByte
  • Winbond W25Q128 -16 MByte
ちょっと思っていたよりサイズが大きい。

配線

接続は電源とSPI信号をつなぐだけ・・・。

ファームウェア定義ファイル

Betaflightのターゲット定義ファイルtarget.hに以下を追記しました。
SPI3に接続しています。

#define USE_SPI_DEVICE_3 
#define SPI3_SCK_PIN PC10
#define SPI3_MISO_PIN PC11
#define SPI3_MOSI_PIN PC12
#define USE_FLASHFS
#define USE_FLASH_M25P16
#define FLASH_SPI_INSTANCE SPI3
#define FLASH_CS_PIN PA15
#define ENABLE_BLACKBOX_LOGGING_ON_SPIFLASH_BY_DEFAULT

気になったのは’USE_FLASH_M25P16’の行。M25P16は2MBのメモリーですが今回接続するW25Q128は16MBです。このあたりの設定は不要なのでしょうか? 他のFCの設定を見ても特に容量を指定する箇所もなく、単にM25P16を指定しているの様なのでこのままやってみます。

動作確認

ファームをビルドしてFCに書き込み、BetaflightConfigratorから接続してみると・・・

ちゃんと16MBとして認識しています。

適当に動作させたログをPCに取り込み、Blackbox Explorerで結果を見てみました(FCは机に置いたままなのでジャイロや加速度センサーの値は全く動いていませんけど・・)。

動作は大丈夫そうです。

ということで・・・

いよいよ基板設計を開始しました。一般的な一辺35mmの正方形に収める予定ですが、手ハンダも考慮してSMDパーツのパッドを大きめにしたため、面積的に結構厳しいです。くじけたら35mm角は諦めて基板サイズを広げるかもしれません。

フライトコントローラーを自作してみる。~その3~

前回まででとりあえず’飛ぶ’という事については何とかなったので引き続きOSD機能を試してみます。
OSDはOnScreenDisplayの略で、テレビの映像に文字等をスーパーインポーズする機能です。よくアナログ時代末期のテレビではチャンネル番号や音量が画面上に表示されていたアレです(今もあるか)。
フライトコントローラーではFPV画像に重ねてバッテリー電圧とか諸々の情報を表示する為に使用します。

大抵のフライトコントローラはマキシムのMAX7456及びその互換ICを使っている様で、これを使えば問題なくBetaflightのファームウェアがコントロールしてくれるはず。

という事でAliexpressからMAX7456Eを3個買っておきました。
SOPパッケージなのでピッチ変換基板に実装します。

そしてほぼデーターシート通りの次の回路図でやってみます。

ブレッドボード上に回路を組んで・・・

ちょっとゴチャゴチャしています。
画像の上の方に適当なカメラを仮止めしています。

実行してみるとあっけなく表示されました。
まあソフトもハードも既存の物なので当然といえば当然ですが。

次はそろそろ基板化を考えたいところですが、その前にもう一つ、最近のフライトコントローラーには動作中のログをSDカードやSPIフラッシュに残す機能があります。
調子よく動作しているときは良いのですが不調の場合には必要となる可能性があり、できれば搭載しておきたいと思います。メモリーにはマイクロSDカードが安くて容量も大きいのですが、SDソケットを載せると基板の面積を喰って設計が難しくなるので今回はSPIフラッシュで試そうと思います。
そこでRSコンポーネンツにSPIフラッシュを発注し、入着を待ちながら基板の検討を進ていめます。

フライトコントローラーを自作してみる。~その2~

前回STM32F411Nucleo64ボードでフライトコントローラーを作ってホバーリングさせてみたら斜めに振動したところまで書きました。その続き。

「斜めに振動」といっているのはこういう風に、黄色線を軸にして赤矢印の方向に2~3Hz程度で揺れ、PIDをいじっても改善しないのです。

最初はプロペラとジャイロセンサーの高さが違うのが原因かと考えました。高さが違うと上図の様に揺れた振動をジャイロだけでなく加速度センサーまで拾ってしまいおかしくなるのかと・・・

一番上の基板にセンサーが載っているのでプロペラから2cmくらい高いのです。

そこでモーターの高さを上げてみましたが効果ありません。

この時はまだ レーザー管も元気だったので簡単に作れました。
前回書いた様に、この後レーザー管が弱ってしまったのです。

次にFCを90度回して取り付けてみました。こうするとジャイロ/加速度センサーも90度回るので揺れる方向も90度回るかと思ったのですが、変わらず同じ方向に揺れました。という事はセンサーがらみではないんじゃないかな?

試しに市販のFCに載せ変えてみたら、やはり同じ様に揺れます。という事は自作FCの問題ではなく、モーターやESCを含む機体側の問題っぽい・・・

ESCは得体のしれないセパレートタイプ(4in1ではない) を4つ載せています。4個が同じ設定ではないのかと疑いましたが、ファームがBLHeil等ではなく、特に資料もないので確かめ方がわかりません。そこで先日激安で購入したESCに載せ変えてみましたが・・・これでも変化ありません。

激安ESC

残るはモーターかとも思いましたが交換できるモノがないのです。また4つとも見た感じでは元気に回っています。

ここで一旦行き詰ったのですが、以前コアレスモーターの機体にBetaflightの最新バージョンを載せたら不安定になった事があったので、ダメ元でBetaflightのバージョンを下げてみ見ました。

今までVer.4.2.0だったのをVer3.5.7に変更したところ揺れが収まったじゃないですか。最新版の何が問題なのかは判りませんが自作FC,市販FC共にVer3.5.7だと安定しています。

Ver4.2.0の何が問題かは気になるのでいずれ調べたいと思います。

・・・という事で最終的にこんなゴチャゴチャな機体になりましたがちゃんと飛ぶ様になりました。

動画です。
なんかもう、とにかく飛べば良しという機体

次はOSDの回路を載せてみたいと思います。

フライトコントローラーを自作してみる。

ドローンレースの練習をしていると色々なところを壊します。
ほいほい堂本舗は貧乏性なのでできる限り修理して再利用したり、また可能なところは自作してみたくなります。

という事でフライトコントローラーを作ってみたいと思います。フライトコントローラーとは一言でいうとマルチローター系の機体を制御するマイコンボードです。固定翼の飛行機は構造的に自立安定して飛行しますが、これと違ってマルチローターは特に制御しなければ安定して飛び続けられません。そこでジャイロや加速度センサーで機体の姿勢を検出しどのモーターをどの程度のパワーで回すかを決めるのがフライトコントローラー(以下FCと略す)です。

自作フライトコントローラーの構想

近年の(ホビー系の)FCは殆どがSTマイクロエレクトロニクス製のSTM32Fxx マイコンが使われています。これにジャイロ/加速度センサーを載せるのですがマイコンとの接続はSPIやI2Cですし、モーターを回すためのドライバ(ラジコン界ではESCという)へはPWM(およびその変形)で信号を送るので、ほぼマイコン工作で作れそうです。

またソフトについては優秀なオープンソースのファームウェアが多数出ているのでこれらを用いることができます。

といっても、いきなりプリント基板を作る勇気はないのでまずはマイコンボードを使って動作を確認してみます。マイコンボードにはSTM32F411 Nucleo-64を使う予定。

STM32F411 Nucleo-64

全体像はこのブロック図の様に考えています。このうち水色で囲んだ部分をここではフライトコントローラー(FC)と呼ぶ事にします。

実用的にレースで使うにはこの他にOSD(On Screen Display:FPVの映像に諸々の情報をスーパーインポーズして表示する機能)も必要になりますが、まずは飛べる事を確認出来た後でこれらも試したいと思います(実はOSD用ICも入手済)。

Betaflightをビルドする。

ファームウェアはいつも使っているBetaFlightを書き込む予定ですが、その前にファームウェアをビルドする環境を作っておこうと思います。
BetaFlightのビルドはUNIX環境上で行うのが基本となっている様で、Windows上のWSL(Windows Subsystem for Linux)でも実行できます。詳細はBetaflight Wikiのこのページに説明されており、この通りにやれば構築できました。
手順通りに構築するとWSL環境内の~/Git/Betaflightというディテクトリ以下にファイル一式ができています。更に下には~/Git/betaflight/src/main/targetというディレクトリがあり、ここには下図の様に各種FC毎の設定があります。

このディレクトリ下に今回作るFC用として’HOIHOIF411’というディレクトリを作るのですが、まずは似たFCである’MATEKF411’の内容を丸コピーし、そこから変更していくことにします。

HOIHOIF411ディレクトリの中にはtarget.mk、target.h、target.cの3本のファイルがあります。ここら辺の詳しい説明資料が見つからないのですが、この3本のファイルを変更するとそれぞれのFC固有のファームウェアが出来上がる様です。で、いろいろ試行錯誤した結果のファイルを添付しておきます。→HOIHOIF411.tar.gz

targetディレクトリの設定ファイルができたらカレントディレクトリを
~/Git/Betaflight に設定し、ここで’make HOIHOIF411’とコマンドを実行すると ~/Git/Betaflight/binの下にファームウェアが出来上がります。このファイルをBetaflightConfiguratorのファームフラッシャーを使って書き込んでやる訳です。

ジャイロ/加速度センサー

当初ジャイロ/加速度センサーにはモーション・フライトシミュレーターで使ったので手元にあった MPU6050ボードを使ってみました。市販のFCは大抵SPIで接続できるセンサーを使っていますがMPU6050はI2C接続専用です。一応これもBetaflightにサポートされているっぽいのですが、しかし何故かうまく接続できません。mbedで書いたプログラムだとセンサー値を取れるのですがBetaflightのファームからは取れないのです。

MPU6050ボード

そうこうしている内にポチッていたMPU6500ボードが届いたのでこれをSPIで接すると問題なく接続できました。 名前が似ていてややこしいですがMPU6500はSPIで接続するタイプで市販のFCでも結構使われています。
どのみち最終的にはMPU6500を使うつもりなのでこれで行きます。

MPU6500ボード


回路図

こんな感じで行こうと思います。
NucleoボードはArduino互換ソケットが付いているので、なるべくこれを利用する事で、Arduino用シールド基板を使って配線し易い様にします。
なおOSDは後で追加予定です。

機体

動作確認用に、息子が作って今は使っていないこの機体に乗せてみます。

製作

まずはブレッドボードで動作を確認して・・・

大体動作したのでArduino用シールド基板上に回路を載せて・・・

機体に乗せてみます。

飛ばしてみる

で、飛ばしてみると・・・一応浮き上がるのですが斜めに振動して止まりません。
原因調査中ですが、市販のFCに載せ変えても同じ様に振動するのでFCの問題ではないのかもしれません。
この続きは後日・・・

スイッチングBECの製作

最近ラジコン/ドローンの投稿が多くなっていますがまたまたラジコン/ドローンネタです。

息子が通販で激安のESCを見つけてきました。スチレンペーパーの飛行機を作ったりするので多めに買ってストックしておくと便利です。

※ラジコン用語で ESCとはElectricSpeedControllerの略で要するにブラシレスモーターのドライバーです。ラジコン受信機やドローンのフライトコントローラーからの信号に合わせてモーターの出力を制御します。

見ると税別880円で20AのESCが4個入っています。但しBECが内蔵されていません。

※ ラジコン用語でBECとはBatteryEliminateCircuitの略で要はレギュレータです。独特な用語に思えますがプロペラを回すためのバッテリー電圧(7.4Vや11.1V)から受信機やサーボを動かす為の5V電圧を作り出す事で5Vのバッテリーを載せなくて済むという意味からバッテリー除外(eliminate)という事らしいです。

1個あたり220円。消費税と送料を入れても安いじゃないですか。BECだけ別に準備すれば安くESCが手に入るので早速購入しました。

4個入りを私が2セット、息子が3セットで、合計20個のESCを購入!
さすがにこんなに使うか?

そしてBECをどうするかですが、Aliexpressで見ると降圧DCDCコンバーターが80円くらいで売られているのでこれを買うのが簡単です。しかし最近はコロナウィルスの影響かAliexpressで買っても中々発送されないんですよね。という事で作ってみようかと思った次第です。

どんなのを作るか考えるに、負荷の電流が少なければ単純に3端子レギュレータ(シリーズレギュレータ)でも良いですが、飛行機に載せるとサーボを動かすのでそれなりに電流を流したいです。また発熱が多くて放熱板を取付けたりすると重くなってしまいます。となるとスイッチングレギュレータですよね。

部品箱には300円で大量に入っていたスイッチングレギュレータIC、LM2576があります。当初これを使おうかと考えたのですが結構古いのでスイッチング周波数が52KHzと低いんですよね。するとインダクターが100μHくらいのを付ける必要があり、コンデンサもそれなりに大きいのを使う必要があります。

そこで先日フライトコントローラーを修理した時に買ったMP2359のデーターシートを見ると、こちらはスイッチング1.5MHzで動作するとの事。これだとインダクターは4.7μH程度、またコンデンサーも小さくて済みます。

10個入り140円。2個使ったのであと8個残っている。

という事でMP2359を使ってみる事にしました。
いつもの様にKicadで回路図を書きます・・・

ほぼデーターシート記載のリファレンス回路図通りですがインダクタは部品箱にあった10μH(電流2.3A)の品に、その他もあり合わせの部品に合わせています。 MP2359はFB端子が0.81Vを保つ様に制御されるので6.8Kと1.2Kの抵抗分割だと計算上5.4Vの出力で若干高め狙いです。実際には抵抗の精度が5%なので動作後に実測する事にします。

Kicadでパターンを書き、久々にCNCで基板を削りました。

上がMP2359
下が切削後の基板

MP2359を搭載する部分は細かいのでショートさせてしまいそうです。そこで危なそうな部分にサンハヤトのレジスト補修材を塗って保護しました。

このレジスト補修材、何故か近所のホームセンターHANDSMANで売ってるんですよ。
1年に何個売れるんでしょう?

そして部品を載せました。基板の上の方にある大きな抵抗みたいなのが10μHのインダクタです。入口の10μFは回路図では電界コンでしたが部品箱に積層セラミックがあったのでそっちにしました。

もっと小型化できるなー。

裏側に表面実装部品を載せています。MP2359の取り付けに失敗してリードを折り、1個無駄にしましたが何とか完成。

こっち側に表面実装部品のMP2359とショットキーダイオードが載っています。

電源を入れるとほぼ思った電圧が出ているのでサーボ(4グラムタイプ)を動かしてみます。動画で・・・

動作は問題なさそうですが抵抗やコンデンサをチップ型にしてもう少し小型化したいところです。また幾つも作るなら基板も発注したくなりますが・・・しかしお金をかけるなら結局は上記の80円のDCDCコンバータを買う方が安いかもしれません。

まあこれでESC大量&BECの目途が付きましたが、どんな機体をつくりましょう?

Jumper T8SG V2 Plus ~その2~

前回紹介したJumper T8SG v2Plus、正常動作が確認できたので予定通りMODE2→MODE1に改造します。

その前にこのMODE1や2ってなんなのさ?という事を簡単に説明しておきます(このブログはラジコンやドローンよりもどちらかというと工作寄りなので)。
ラジコンの送信機で空モノを操縦するとき、基本の4つの軸(スロットル、ラダー、エルロン、エレベーター)を 2本のスティックで 操作します。2本のスティックそれぞれを縦と横に操作するので4つの軸を操作できるわけです。この時どのスティックにどの軸を割り当てるかで色々なMODEがあります。MODEには1から4までありますが大抵はMODE1かMODE2が使われています。日本では歴史的にMODE1が使われてきましたが海外ではMODE2が多いそうです(なぜなんでしょうね?)。

私も昔からMODE1を使ってきました。 どっちのモードが操縦し易いのかというと色々意見があるでしょうが、何にせよ最初に使い始めたモードに慣れると簡単に変更する事はできません(といいつつも息子は飛行機を飛ばしていた頃はMODE1でしたがマルチコプターを飛ばす様になってからMODE2に変更してしまいました)。

話は戻りますが今回購入したT8SGは前回書いた様にショップの在庫の関係でMODE2なので改造が必要なのです。大抵の送信機はジンバルの構造が似通っているので問題なく改造できると思います。

なおMODE1とMODE2の違いは2本のスティックの縦方向への割り当てが、MODE1だと右手がスロットル、左手がエレベーターですがMODE2だと逆になります。通常エレベーターはスティックから手を離すとバネで中立に戻りますがスロットルは手を放してもそのままの位置を保持します(そのため適度な摩擦感を持たせてある)。なので改造の主な内容は左右のバネ感と摩擦感を出すパーツの入れ替え作業となります。

では蓋を開けてみます。
本体裏側のネジを6本外して本体の肩の部分にあるスイッチを止めているプラスチックをこじ開けると裏蓋が外れます。
裏側から見ているので写真右側のスティックが左スティックで、このスティックの縦方向の操作がスロットルに割り当てられています。

中身

スロットルは摩擦感が必要なので金具で押さえつけてあります。

金具を取り外しました。

そして右ジンバルには中立に戻す為のバネがあります。バネ上側を取り付けてあるプラスチックパーツはバネの力だけで保持されているので引っ張り上げれば本体から外せます。

バネを保持していたプラパーツ
そしてカムを押さえつける為のレバーとバネ。
このレバーがスティック側のカムを押さえつける事で中立に戻るのです。

右スティックから外したバネとプラスチックパーツを左スティックに取付けます。

そして左スティックから外した押さえ金具を右スティックに取付けます。

ネジの締め具合で抑え圧を調整できる様です。

あとは元通りに裏蓋を取付けて電源を入れ、メニューからMODE1設定に変更すれば完了です。

これで暫く快適にシミュレーター(VelociDrone)をしていたのですが、突然右スティックを左右に動かしたときにキコキコという軋み音が出る様になったので、もう一度裏蓋をあけて右ジンバルを外してみました。


隙間が狭く当たりそうな箇所に細く切った紙を挟んで見ましたが接触している箇所はなく、やはりカムとレバーが擦れる部分で摩擦音が出ている様です。そこで 細いエナメル線にグリスを少しつけ、薄く塗ってみたら軋み音は消えました。

先日モーターのコイルを巻き直したエナメル線の切れっ端でグリスを塗った。


外したついでにジンバルを眺めまわします。この機種はホールジンバル採用というのがウリとなっていて、可変抵抗ではなく非接触のセンサーなのですり減る心配がないそうです。
恐らくこのコンデンサーマイクかと思う小さな部品と横の基板がホール素子を利用した角度センサーの様です。

これどういう仕組みなのでしょう?
ロボットなどではレゾルバという角度センサーがあります。こちらは直交コイルで回転磁界を作っておき、その中に可動するコイルを入れておくとコイルの角度によって誘導電圧の位相が変るので、位相のずれ角からコイルの角度を検出します。
実物のホールジンバルを見るまではレゾルバに似た仕組みかと想像していましたが、このサイズで実現できそうな気がしません(いや最近の中国の技術なら実現できるのか?)。
コンデンサーマイクっぽいのが磁石なのかな?

なにはともあれ軋み音は消えたのでフタを閉めました。
何となく3台並べて撮影。

左から息子のT10J、私のT6EX、そして今回のT8SGv2Plus

Jumper T8SG V2 Plus購入

今まで飛行機やマルチコプターを操作するのにフタバ T6EXという古い6チャンネルの送信機を使っていました。 6チャンネルしかないと先日書いた様に色々と苦労があるのに加えFASSTというプロトコルなのでこれに対応した受信機があまり売られていないという問題もあります。

今まで使っていたT6EX

という事で技適認証になって国内でも使えると話題のJumperの送信機、T8SG V2 Plusを購入する事にしました。マルチプロトコルなのでフタバのS-FHSSを含めDSMやFrskyなど色々な受信機と接続できるらしいです。さすがにFASSTは対象外ですが。
発注はBanggoodには長いあいだ品切れだったのでAliexpressのショップの中から技適マークありと明記してあるところに昨年11月11日のセール中に¥10,894で注文。しかし暫くしてショップから「発送したけど戻ってきた」という連絡があり、その後何度かやり取りしたけど「送れないから返金にしてくれ」の一点張りです。せっかく11.11のセールなので食い下がったのですが結局時間がもったいなくなり諦めて返金してもらいました。そしてAliexpress内の別のショップを探すと技適を明記していないけど写真には写っていたショップがあったので、ここに¥11,040(少し高くなった)で再注文。しかしこちらも暫くすると「MODE1が無いから返金するか MODE2に変更してくれ」と言ってきました。私はMODE1の人なのですがまあ改造も難しくはないだろうという事でMODE2タイプでOKにしました。

・・・という紆余曲折があり年も明けたところで到着です。

スティックの先が外れていて一瞬焦りましたが箱の中にありました。
本体と付属品一式。

電池BOXは一見すると単三用にみえますが18650サイズのリチウムイオン用です。ですが、バッテリートレイには3pinのXHコネクタが付いていて、2セルリポのバランスコネクタから電源を供給できるので実際はリポを使う方が便利です。なお電源電圧は4.5V~18Vで範囲が広くて何かと安心です。

バッテリートレイは結構広いので大き目のリポも入りそう。

ネットで他の方の画像を見るとキャリングケースや乾電池用の電池BOXが付いていたりしますが、これには付いていませんでした。送られてきた箱のサイズからしてキャリングケースは入らなさそうなので入れ忘れという訳ではなさそうです。

そして気になる技適マーク・・・

すぐに消えてしまいそうな印刷ですが、ちゃんとついています。

では早速息子のS-FHSS受信機との接続を試みます・・・が、バインドできません。
後で自分のやり方が間違っていた事がわかるのですが、当初はS-FHSS受信機3機種でバインドできず焦っておりました。
試しにと、これまた息子のトイドローンSymaX5Cとの接続を試みると正常にバインドできます。またFlyskyの受信機とも接続ができましたがS-FHSSはどれとも接続ができない状態に暫く悩まされました。

以下はおバカな私がおバカな事をやった記録なので読んでも面白くないと思いますが後々の為に書き記しておきます。
S-FHSSの受信機とつながらないのでダメ元ですがファームを上げてみる事にしました。
でもその前に現状のバックアップを取る事にします。この送信機はConfirmボタンを押しながら電源を入れるとPCからUSBメモリに見える様に接続できるので、この方法で中身をPCにコピーしておきます。しかし中に入っていたのはdeviation-t8sg_v2_plus-v5.0.0-e801244.dfuというファイルですが送信機立ち上げ時のメッセージはt8sg_v2-v5.0.0-abc5dcfと違う内容が表示されています。バージョン名も違うし’plus’の有無も違います。どこかのサイトでこの機種T8SG V2 Plusには’plus’の名前がつかないファームを入れろと書いてあったので t8sg_v2-v5.0.0-abc5dcf の方が正しい気がします。
これは謎ですがとりあえずは deviationのサイトから書き込みツールDeviationUploadとファーム最新版の’plus’有りと無しの両方を取ってきました。
そしてDeviationUploadを立上げ、まずは機種名通り’plus’ありのファームを書いてみます。書き込みは無事に完了メッセージまで進みましたが再起動すると画面が真っ黒になってしまいました。まあこれは先の情報から考えて想定内という事で、今度は’plus’なしのファームを書いて再起動します。すると一見正常に立ち上がるのですが飛行機やドローンのアイコンが表示されない上にモデル設定を変更しても保存されないという状態に陥りました。
そこで再びUSBメモリとして接続するとモデルやアイコンが入るべきフォルダが空っぽになっています。よく分かりませんが無いのなら先のバックアップから戻そうとしたら・・・何とPCにバックアップした筈のフォルダからもモデルやアイコンのファイルが消えていました(この原因は未だにわかっていません)。
今落ち着いて考えるとこの時点では、ダウンロードしてきた最新ファームのzipを解凍すればモデルやアイコンのフォルダが現れるので、これらをUSBメモリ(として接続した送信機)に放り込めばよかったのだと思います。
しかしこの時はDeviationUploadツール内の’Full Install’を実行してみました。こちらも一見正常に終了したのですが今度は全く立ち上がらず、その内にUSBメモリとして接続しようにもWindowsから「このデバイスはフォーマットを行う必要がある」という様なメッセージが出て接続されない状態になってしまいました。
もうこうなると何もできません。「終わらせてしまったかもしれない」という不安。唯一の残された手段はメッセージの通りフォーマットを行う事ですがかなり不安です。
恐る恐るフォーマットを実行すると、まずはUSBメモリとして接続できる様になりました。そしてそのメモリー(に見える送信機)にファーム(‘plus’無しの方)のzipを解凍して出てきた一式を放り込みます。
この状態だとまだ電源再投入しても立ち上がらなかったので再びDeviationUploadツールからファームをインストール(Full Installではないファームのみのインストール)をすると正常に立ち上がる様になりました。

結構危ない状態で焦りましたが何とかファームの最新化が完了しました。しかしS-FHSSがバインドできない状態は変わらず・・・。
ですが、結局バインドできないのは私がやり方を間違っていたのが原因でした。バインドする際、本来は「送信機がONの状態で受信機のバインドボタンを押しながら電源を入れる」というのが正解ですが私は受信機の電源を入れてからバインドボタンを長押ししていました。言い訳ですがT6EXにつないでいる受信機は大体この方式なんですよね。またバインドボタン長押しするとそれっぽくLEDが点滅するのでだまされたというのもあります。

何はともあれ正しい方法でやるとバインドできる様になりました。
こうなるとすごくイイです。息子の機体とバインドできますし、今後はDSMとかFlyskyの安い受信器を使う事も出来ます。またTinyドローン等はフライトコントローラーに受信機が内蔵されている場合が多く、これらのプロトコルは大抵
フタバ系ではなくFlyskyやFrskyだったりするので将来的にはこれらとも接続ができそうです。

という事で、まだ実物を飛ばしていませんがHOI-LINK経由でVelociDroneに接続してシミュレーションしています。

どどーんはじめました。~その8~ 6chプロポの憂鬱

私が使用している送信機はフタバT6EXで、2.4GHzではありますがFASST方式のちょっと古い物です。

FASSTだとマルチコプター向きの小型で安い受信機があまりなく、AliexpressやBanggoodで探すととこのあたりぐらいです。

ケースから出して熱収縮をかぶせています

そして6chというチャンネル数ですが、飛行機とかを飛ばしているときは不足を感じませんがマルチコプターでレースをやると色々と不足してきます。

まず6chの内、1~4chはスティックに割り当てるので残りは2chとなります。

しかしドローンレースで欲しい機能を列挙するとこんな感じ・・・

  1. ARMING切替(モーター回して飛ばせる状態か又は待機状態かの切替)
  2. 機体発見ブザー
  3. 飛行モードの切替(レースの時はACROモードだけど 初心者なので安定重視のANGLEモードも使える状態にしておきたい 。)
  4. 機体反転モード(墜落してひっくり返った時に起こすためのモード)
  5. 電波遮断後何秒か以内にモーターが停止する事。

1.のARMING切替は必須でこれしないと飛べません。
2の機体発見ブザーも私には必須です(今年の夏、山に飛び込んだ機体を探し回りブザーの音で発見する事が出来ました)。
3.のモード切替は上手になれば常にACROモードだけも良いのかもしれませんが当面はANGLEモードも使える様にしときたいと思います。
4.の機体反転モード(カメモードとも言うそうです)はレース本番以外は無くても何とかなるかな?本番までに腕を磨きANGLEは無くしてカメモードにしようと思います。

最後の5はチャンネル数と直接関係ないのですが、これが義務付けられているレースもあったりするし安全の為なので設定しておきたいところです。ところが私が使っている受信機は電波が途切れた事をFCに伝えてくれない様です。
こちらのSBUSプロトコルの説明によると「FAILSAFEが入ると24バイト目の下から4bit目が立つ」となっていますが波形を見る限りこの受信機では変化がありません。因みに息子が使っているFHSSの受信機では電波が途切れるとSBUS出力自体が止まってしまうので、これが正しいかどうかは分かりませんがFCには伝わりそうです。
ただし私の受信機にもFailSafe機能というのがあり、 この機能をONにしておくと電波が途絶えた際あらかじめ送信機側で設定した スロットル値になるという動作をします。という事はこの機能でARMINGチャンネルをOFFにしたら良いかと思いましたが、私の送信機の制約なのかFailSafeにはスロットルチャンネルしか設定できません。またスティックを最小にしてもモーターが止まる所までスロットルを下げる事ができなかったので、苦し紛れですが次の方法で設定しました。

  • FailSafe機能をONにする。
  • 送信機側でFailSafe時のスロットル値を設定する。この時デジタルトリムを最小値にした状態でスロットルスティックも最小にして記録する(その後トリムは元に戻す)
  • フライトコントローラーの設定(BataFlightConfigurator使用)の基本画面で「 MOTOR_STOP アーム後にモーターを回転させない 」をONにする。

FailSafe設定の際トリムも含めて最小の値にするところがミソです。トリムが通常値だとスティックを最小にしてもモーターが完全に停止しませんでした。最後のMOTOR_STOPをONにするのは安全上良くないですが他に方法が見当たりません。

・・・で、話が横道にそれましたが6チャンネルプロポの空き2チャンネルをどう割り当てるかという話です。
まずARMINGは当面スティックワークでやる事にします(ARMINGはどのチャンネルにも割り当てなければスティックで操作できます。このときスロットル=最小、ラダー=最右にする事でARMING、ラダー=最左にするとDISARMとなります)。
あとは機体発見ブザーに1チャンネル、モード切替に1チャンネルを割り当てる事にします。機体反転モードの割り当てが無いですが、レース本番ではANGLEモードは不要なのでACROモードに固定する事で切替をなくし、そこで空いたチャンネルを機体反転に割り当てようと思います。

・・・と、この状態で暫く練習し・・・

そろそろカメモードを試そうとして機体反転モードにしたらブザーを鳴らせる事を知りました。そうすると機体発見ブザー代りに使えそうな気がします。すると今までブザーに割り当てていたチャンネルが空くのでこれにARMINGを割り当てる事が出来そうです。試してみたところこれで何とかなりそうなので11月の初レースはこれで行ってみます。

どどーんはじめました。~その7~いろいろ修理

前回書いた通り11月に鹿児島県出水市で開催されるレースに出る為、日々練習をしております。
しかし実機を飛ばすと(または飛ばさなくても)色々な箇所を壊し、そして修理を繰り返しており、その記録です。

フライトコントローラー その1

フライトコントローラーOMNIBUSF4 V3を修理した話を先日書きました。
このFCは息子が逆電圧を印加してレギュレータICが壊れたので交換した物で、その他は一見問題なさそうなので暫くは木のフレームに積んで飛ばしていました。ところがある時から飛行中に訳もなく墜落したり、電源を入れても何も操作が出来なかったり、その内BetaFlightConfiguratorとも接続できなくなってしまいました。結局はファームを書き直したら復活したのですが、逆電圧のせいでフラッシュメモリが消えた(又は書いていないbitが書き込み状態になった?)のでしょうかね?
そもそも 逆電圧で壊れない方が不思議な気もしますが。
とりあえず様子見中です。

フライトコントローラーその2

同じ様に修理したフライトコントローラー(以下FC)がもう一つあります。
「Mini F3 Flytower」という名称でAliexpressから購入した物。購入時はESCとセットでしたがESCは燃えてしまって交換しています。
ところが元々のESCはBEC回路(5Vレギュレータ)を内蔵していたのに、交換後のESCはBECを搭載しておらず、FCの5V入力端子にバッテリー電圧(11.1Vや14.8V)が直接加わっていました。これで息子が飛ばしていたのですが、今回私がレースに出る為に借りたら上記の接続が発覚しました。とりあえず飛べはするのですがいつ壊れても不思議はありません。また5V端子に(高電圧の)電源が入っていますが本来バッテリ電圧を与えるはずの端子はオープンのままなのでOSD表示にバッテリー電圧が出ないという問題もあります。もちろん電圧低下アラームも出ないので非常に不安です。
そこで正しい接続(VBAT端子にバッテリーを接続)してみると・・・案の定レギュレータが壊れていてFC内の5V電源が出ていませんでした。
レギュレータの型番をみると先日修理したOMNIBUSF4V3と同じ型番のICを使用しています(FCでは標準的なICなんですかね?)。先日買ったICがまだ残っているので交換すると、ちゃんと5Vが出る様になりました。・・・という事でこのFCでレースに出場予定です(大丈夫か?)。

真ん中付近に写っている1F8のマーキングがあるのが交換したレギュレータIC。

木のフレーム

予備機として使用予定の木のフレームは相変わらずポキポキと折れていきます。しかし木のフレームの良いところはエポキシで修理できる点です。また原価が安いので沢山レーザーカットしておきどんどん交換していけます。 強度アップの工夫も色々としており今のところ4代目となりました。
が、やっぱり木製フレームでレースするのは無謀なのかも。

色々強度アップの工夫をした4代目フレーム。
縦に補強を入れてT字型の断面になっています。その分重くなるのを防ぐためアームを少し細くたりFCの下を肉抜きしたり・・・。

カーボンのフレーム

こちらは息子が折ったカーボンのフレーム。カーボンの板が折れると重ねた層が分離した様になるんですね。繊維が完全に切れている訳でもなさそうなので(いや多少は切れているんでしょうけど)、ダメ元で修理してみました。エポキシ接着剤をドライヤーで温めて柔らかくしておき、層の隙間に行き渡る様にした後、万力で挟んで固定したところ結構いい感じに固まっています。耐久性は分かりませんが。

VTX

練習していて息子の機体と空中衝突し、VTXの押しボタンスイッチとLEDが吹き飛んでいました。とりあえず電波は出ているので周波数や出力を変更しないならこのまま使えるのですが・・・これもその内なんとかしたいと思います。
しかしレースに間に合わないとマズイのでVTXは新たに発注しました。

FPVゴーグルのスポンジ

以前書いたEachineの安いゴーグルを使っていますが、顔に当たる部分のフェルトが剥がれてきました。スポンジとフェルトの2重構造になっているところが剥がれるのです。そこで「ボンドGPクリアー」で接着してもまたすぐ剥がれるので今度は「ボンドウルトラ多用途」で試したところ上手くついています。

他にも根本で電線が切れたモーターとかパワーMOSFETから煙を吐いたESCとか、なんとかしたいパーツが色々あるので、いずれ修理にトライしたいと思います。

どどーんはじめました。~その6~

昨年11月、鹿児島県出水市で開催されたU199ドローンレースに息子が参加した話を書きました。 この大会が今年も開催されるそうです。 そこで今回、ついに私もエントリーしてしまいました。
因みにU199とは航空法的に「無人航空機」とはみなされない200g未満の機体で速さを競います。200g未満だと「模型飛行機」という扱いだそうです。

私が使用する機体は昨年息子が飛ばした物をベースに宮崎ドローンクラブの方から頂いた部品を使って色々と修理したもの・・・

息子のお下がり。


予備機も欲しいなという事で先日修理したFCその他を載せて製作する事にしました。このFCは本来5インチ機等で使う物なのでサイズが大きく、普通のU199フレームには収まらないので合板をレーザーカットして製作しました。エポキシ接着剤をドライヤで温めて木に浸み込ませています。

2.5mmの合板2枚をエポキシで貼り合わせ。

レースまでに何とか落ちずに飛べる様、日々シミュレータ(VelociDrone)および時々実機で特訓中です。

実機で練習すると壊しては修理の繰り返しです。
合板のフレームはやっぱり折れやすいですが エポキシで修理できるし予備も簡単に作れます。

ポッキリ。
折れたところをエポキシで固めるとその部分は丈夫になるのですが次は別の場所が折れます。

さてどうなる事やら。。。