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

FULL SPEED製F411miniF4というフライトコントローラにSBUS受信機を接続する時にハマったので覚え書き。

先ずはいきさつから・・・
息子が11月にU199ドローンレースに出るのだといって練習をしています。
しかし先日、モーターが1個故障したのをきっかけに4in1 ESC基板が煙を吐いて壊れてしまいました。恐らくモーター交換の際にハンダ付けをミスったのではないかと思っています。

いずれにしてもこのままではレースには出られないのでAliexpressからESCと、予備を兼ねてフライトコントローラもセットで購入しました。フライトコントローラはFULL SPEEDというメーカーのF411という物です。
結構なお値段がしますが小遣いをほとんど注ぎこんでいるようです

そして到着したのでドローンに載せ換えました。が、RC受信機とフライトコントローラーの接続が上手くいきません。
受信機とはS-BUSで接続しており、Aliexpressのページに書かれているこの図に従っています・・・

色々試しましたが接続できません。
そこでFULL SPEEDで検索したところ下の情報が・・・


要は普通のSBUS信号を使う時は基板の裏側の端子に接続しろという事です。
そういえば以前SBUSの信号をArduinoで解読した時、SBUSは普通のUARTと論理が逆なのでインバータを入れた記憶があります。どうやらFULL SPEED製のレシーバは最初から論理を逆転(本来のSBUSとは逆で普通のUARTと同じに)してあってこの場合は基板の表側に接続し、本来のSBUS信号だと裏側に接続するみたいです。

という事で裏側のSUBS端子に接続したところ使える様になりました。
・・・という事で覚え書きでした。

TWE-Liteプロポ化計画~その2~

前回は受信機を作ったところまで書きました。あれから2カ月も過ぎてしまいましたが、Maker Faireも終わったことだし送信機に取り掛かります。

どんな形にしようかと考えた結果、こういうラジコンカーっぽいコントローラになりました。スロットルは引き金、ヨー(ラダー)がホイール、そしてピッチとロールは加速度センサーでコントローラの傾きを検出します。
正規のプロポではなくTWE-Liteなので自由なコントローラを試せるのです。

TWEpropo2_1

送信機とクワッドコプター

電源は2セルのLi-po。レギュレータで3.3Vに落としてTWE-Liteに入れています。
TWEpropo2_2

・・・実はこの機体とコントローラは先日のMFT2018で息子のブースを間借りして展示しました(自分のブースの展示物とは少し毛色が違ったので)。しかしまだ一度も飛ばしていません。というのも機体は開催1週間前に宅配便で発送し、そのあとで送信機を作ったので一度も飛ばす機会が無かったのです。MFT会場で初飛行する訳にもいかない(まず一発では飛ばないし)ので今回が初めてとなります。

で・・・やっと飛ばしてみましたが、ものすごく難しいです。コントローラの傾きでロール・ピッチを制御するのが敏感すぎてまともに飛び上がれません。フライトコントローラの設定で感度を下げたり色々やってみようと思います。

上手くいったらまた報告します。

MFT2018説明資料

MFT2018で説明に使った資料です。

モーションシミュレータ
MotionSim説明1MotionSim説明2

 

MONO WIRELESSのTWE-Liteを使用したマルチコプター(こちらは息子のブースにおいてもらってました)。

MotionSim説明2

 

その他、ヨットシミュレータはここ(別ページ)
またOpenStickのページはここです。

TWE-Liteプロポ化計画

久々にMONOワイヤレスのページを見たらTWE-Liteの電波強力版である”RED”というのが出ていました。最大3Kmぐらい届くとの事。これなら空ものラジコンでも全く問題なく飛ばせそうです(実際は私が飛ばすものなんて100m程しか離れないんですけどね)。
そこでTWE-Liteを使ってラジコンプロポの代りにならないか試してみたくなりました。

なおTWE-Liteとは、当初は東京コスモス電機でしたが今はそこから分離したMONOワイヤレスが出している無線モジュールです。

こんなの・・・

TWEpropo_1

TWE-Lite(下) とTWE-Lite DIP(上)

TWE-Liteは内蔵マイコンのプログラムを書き換える事ができるので、MONOワイヤレス社からは色々な用途のプログラムをダウンロードできる様になっています。この中にはラジコン用のアプリもあるのですが、ラジコンカーを前提にされたもので、そのままで飛行機やマルチコプターを制御するのには向きません。

これを何とかして受信側TWE-LiteからS-BUS信号を出せれば小さなマルチコプターぐらい飛ばせるんじゃないかと考えています。するとフタバとかの立派なプロポを使わなくても済むし、またフライトヨークやラダーペダルで操縦したり、ちょっと夢が広がるじゃないですか

で、試してみる事にします。でもいきなり高出力版のREDを買うのもなんなので、まずは手持ちの通常出力版(こちらはBLUEという名前になったらしい)で試します。
まず送信側のTWE-Liteにはボリューム4個+スイッチ4個を付けて状態を発信します。この部分は「OpenStick無線化実験」の時のプログラムをほぼ流用です。
これを受けて受信側TWE-LiteがS-BUS信号を生成してフライトコントローラ(F3EVO)に入れるという計画です。

という事で早速プログラムを書いてデバッグです。受信側TWE-Liteが出すS-BUS信号を先日作成したS-BUS信号解読機(ArduinoMEGA256)に入力してデバッグを開始したのですが・・・受信機のデバッグ以前にS-BUS解読機側のスケッチがミスっていたのを発見。修正しました。

~~修正版S-BUS解読スケッチ(11bitデータに並び替える部分のミス修正)~~

int count;
long interval;
void setup() {
 Serial.begin(115200); // Terminal
 Serial1.begin(100000,SERIAL_8E2); // S-BUS
 count=0;
}

void loop() {
 int data[26];
 int val[19];
 int i;
 if (Serial1.available() > 0) {
 data[count]=Serial1.read();
 interval=millis();
 count++;
 }
 if ((interval+4 < millis()) && (0 < count) ) {
  count=0;

  val[0] =((data[1] & 0xff)<<0) + ((data[2] & 0x07)<<8);
  val[1] =((data[2] & 0xf8)>>3) + ((data[3] & 0x3f)<<5);
  val[2] =((data[3] & 0xc0)>>6) + ((data[4] & 0xff)<<2) + ((data[5] & 0x01)<<10);
  val[3] =((data[5] & 0xfe)>>1) + ((data[6] & 0x0f)<<7);
  val[4] =((data[6] & 0xf0)>>4) + ((data[7] & 0x7f)<<4);
  val[5] =((data[7] & 0x80)>>7) + ((data[8] & 0xff)<<1) + ((data[9] & 0x03) <<9);
  val[6] =((data[9] & 0xfc)>>2) + ((data[10] & 0x1f)<<6);
  val[7] =((data[10] & 0xe0)>>5) + ((data[11] & 0xff)<<3);
  val[8] =((data[12] & 0xff)<<0) + ((data[13] & 0x07)<<8);
  val[9] =((data[13] & 0xf8)>>3) + ((data[14] & 0x3f)<<5);
  val[10]=((data[14] & 0xc0)>>6) + ((data[15] & 0xff)<<2) + ((data[16] & 0x01)<<10);
  val[11]=((data[16] & 0xfe)>>1) + ((data[17] & 0x0f)<<7);
  val[12]=((data[17] & 0xf0)>>4) + ((data[18] & 0x7f)<<4);
  val[13]=((data[18] & 0x80)>>7) + ((data[19] & 0xff)<<1) + ((data[20] & 0x03) <<9);
  val[14]=((data[20] & 0xfc)>>2) + ((data[21] & 0x1f)<<6);
  val[15]=((data[21] & 0xe0)>>5) + ((data[22] & 0xff)<<3);
  val[16] = (data[23] & 0x1) ? 0x7ff : 0 ;
  val[17] = (data[23] & 0x2) ? 0x7ff : 0 ;
  val[18] = (data[23] & 0x8) ? 0x7ff : 0 ; // Failsafe
  for (i=0 ; i<19; i++ ) {
   Serial.print(val[i],DEC);
   Serial.print(F(" "));
  }
  Serial.print(F("\n"));
 }
}

 

大体動作がOKになったところでフライトコントローラ’F3EVO’に接続してみます。
フライトコントローラはUSBでPCに接続しておき、設定ソフト ’CleanFlight’ の ’Receiver‘ タブ使うと送信機の操作に合わせて信号が変化するのが確認できました。

CleanFlight

CleanFlightで受信機の信号をモニター中。

 

ここまではTWE-LiteのDIPタイプをブレッドボードに載せて試していました。
大体イケてるっぽいので次は表面実装版のTWE-Liteモジュールを使い、実際に機体に載せる基板を作ります。

いつもの様にKicadでパターンを書いてガーバーデータを出力して・・・

TWEpropo-Rxガーバー

Kicadで出力したパターン

 

でもウチのCNCの精度でこのパターンそのままでは削れる気がしません。そこでガーバーデータの座標値をテキストエディタで抜き出してJw-cadに読み込ませ、これを下書きにしてカットする部分を手書きしていきました。
こうしてカットラインの間隔を極力広いパターンに作り変えます。

TWEpropo-Rx Cutpattern

ピンク色がガーバーから抜き出した下書き。
黒線が手書きのカットライン。

そして切削。

TWEropo-Rx

切削完了。

と、軽く書きましたが何だかんだで失敗しながら3回切削しました。
チップ抵抗、チップコンデンサを1608サイズにしたのも失敗で、ルーペを見て汗をかきながらハンダ付けを行いました。
そして実装したのがこれ。

TWEpropo

クワッドコプターと接続したところ。
まだ受信機は固定していません。

次は送信機を作っていきたいと思います。

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

先日作成したマルチコプターは重量が50グラム程度なので室内でも飛ばせます。
しかし何しろ初心者につき、あちこちにぶつけてしまうのでプロペラガードを取付ける事にしました。

まずデータを作って・・・

PropellerGuard

プロペラガード

4つプリントして取付けました。

PropellerGuard

プロペラガード取付け完了。

壁に軽く当たってもバウンドするのでダメージがありません。
安心して操縦の練習ができます。

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

先日作成したマルチコプターに乗せるバッテリーを購入しました。

HobbyKingで1セル600mAhが$1.99。
どうやらLi-Poは危険物扱いらしく送料がすこし高いので息子の分とまとめて5個買いしました(結局送料は私持ちなんですが)。

 

こんな感じで輪ゴムで固定します。

LiPo固定

裏返して輪ゴム止め。

そして充電ですが、AliExpressで1枚33円(送料無料)の充電基板FC-75を2枚購入しております。USB電源等でリチウムイオン電池を充電する為の基板でTP4056というICが載っています。(TP4056は名前が東芝っぽいのですが検索してみると中国メーカー製でした)

FC-75

1枚33円の充電器

 

基板は2枚つながっていますがそのまま配線していきます。
電源入力は4V~8Vの仕様なので5Vの安定化電源から2枚並列に供給します。
なお基板上の抵抗を交換する事で充電電流を決める仕組みになっており、
充電電流 = 1/抵抗値×1200 だそうです。
今回600mAhのバッテリーを1C充電するので2KΩとなりますが手持ちの関係で2.2KΩを接続しました。

FC-75_2

充電器に配線したところ

 

そして充電開始。まずは電流計を割り込ませてほぼ規定の電流値になっている事を確認後、電流計は取り外して観察します。

FC-75_3

充電開始。

 

時々バッテリー電圧を測定すると徐々に電圧が上がっていきます。

FC-75_4

充電中。

そしてバッテリー電圧が4.2Vに到達。ここで充電が終了してLEDが赤から青に変わるはずですが・・・・まだ変わりません。

4.22V。まだLEDは赤ですが電圧の上昇が遅くなりました。もう充電が止まってほしいのですが・・・不安。

4.23V。まだLEDは赤です。そしてデジボルが4.23Vと4.24Vの間をチラチラと行き来し始めたところで不安になってバッテリーを外しました。
このデジボルをどの程度信用できるのかという疑問もありますが、はやりちょっと高すぎる気がします。

TP4056のデーターシートを見ると充電停止電圧は4.137V~4.263Vとなっています。最大で4.263Vまで加わる可能性があるという事ですがこれって許容範囲なのでしょうか?(当然ながらハイボルト仕様のバッテリーではありません)
なおバッテリーを繋がない状態だと4.13Vでした。どういう制御になっているんでしょうか?

不安なので実績のある充電器で充電してみます。

enRoute L4充電器

最近すっかり産業用ドローン専門になったenRoute製の充電器。
まだホビー用ラジコンを扱っていた頃に買ったもの。なおLEDにテープを貼っているのは明るすぎて眩しいからです。

因みにこの充電器で充電完了後の電圧は4.11Vでした。こちらはかなり軽めの値になっています。

このFC-75充電基板は・・・どうしましょう?

どどーんはじめました。

変なタイトルですが「ドローン」と呼ぶにはおこがましいので「どどーん」なのです。

息子が少し前からマルチコプターを飛ばしています。
最初はこういう買ってきたやつをそのまま飛ばすだけだったので自分でやろうとは思っていなかったのですが・・・。

トイドローン

JJRCのトイドローン

最近はパーツを集めて組立て、PCで設定を変えたりと工作心をくすぐる事をやっているのを見て自分でもやりたくなりました。
作るのはブラシレスモーターのパワフルなのではなくコアレスDCモーターの軽いやつにします。 

部品購入

まず、フライトコントローラー。この基板にジャイロや加速度センサーが載っていてSTM32マイコンが飛行を制御します。ブラシレスモーターの場合だと通常はモータードライバは別に必要(4個も!)ですが、これはシンプルな制御のDCモーター用なのでドライバもこの基板に載っています。

F3EVO

フライトコントローラー F3EVO。
ブラシモーター用です。

次に受信機。私が持っているフタバの送信機に適合するものです。出力は昔ながらのPWMではなくS-BUSというシリアル通信なので、配線は電源、GND、S-BUSの3本だけです。S-BUS信号は上記フライトコントローラーのUART端子に接続します。

FT4X

ラジコン受信機です。

そしてモーター。2個で¥104円だったので予備も含めて6個買いました。
しかし後で失敗だった事に気づきます。

CorelessMotor

コアレスモーター。
(失敗でした)

プロペラです。結構折りそうなので多めに必要です。

propeller

プロペラ

他にバッテリーも必要ですがとりあえず息子のを借りることにします。

製作

まずはjw-cadでフレームを描きレーザーでMDFを切ります。

フレーム1号jw-cad

jw-cadで描いて・・・

MultiCopter1

マルチコプターのフレーム1号

パーツを取付けた写真は撮り忘れました。
フライトコントローラとPCをUSBで接続しCleanfligntというソフトで設定します。このあたりは息子に聞いたり須磨模型のサイトを参考にしました。

Cleanflight

Cleanflight設定ツール

そして設定ができたのでプロペラを取付けようとしたら・・・軸の太さが合いません。

良く調べたら、この手のモーターの軸はΦ1,0mmと0.8mmがある様です。今回買ったプロペラは1mm用ですが、モーターは0.8mmでした。仕方ないのでダメ元でプロペラの軸に接着剤(ボンド・ウルトラ多用途)を着けて固めます。この接着剤は固まっても少し柔らかいタイプなので後々の着脱がやりやすいかなと思います(実際のところ特に抜ける事もありませんでした)。

飛ばしてみる。

接着剤が固まったので早速飛ばしてみます。
が、プロペラの回転を上げても5cm程浮上するのがやっとです。しかも、ものすごく不安定ですぐにひっくり返って墜落します。 フライトコントローラの設定とかも色々いじったのですが・・・やっぱりパワー不足が一番の問題の様です。

2号機・・・ヘキサコプター

本来ならもっとパワフルなモーターに交換するのが筋だと思いますが、その前に予備モーター2個を追加してパワーアップしてみます。今回購入したフライトコントローラーはDCモーターを6個まで接続できるのです。
またフライトコントローラの設定により、スティックの操作量に対する反応を半分くらいまで減らしてみました(初心者なので安定性重視です)。

マルチコプターフレーム2号

フレーム2号。
モーターを2個追加してヘキサコプターとしました。

これだと何とか目の高さあたりまで浮かびましたが全く余裕がありません。やはりこのモーターでは厳しい様です。

モーター交換して3号機

やはりパワフルなモーターに交換する事にします。息子が使用しているのはJJRCのトイドローンSyma X5Cの交換用モーターなので同じ物を購入します。軸もΦ1mmなので購入済みのプロペラが使えます。
今回は配送を待つ気分ではないのでAmazonに発注し2日後には到着。

そして3号機。フレームは1号を元に細かいところを改良して作り直しました。
材料が2.5mmのMDFでレーザーで簡単に切れるのでどんどん改良していきます。

マルチコプターフレーム3号モーター変更

マルチコプターフレーム3号モーター変更

これだとさすがに良く飛びます。しかし操縦が初心者なので何度も墜落し、モーターの付け根が折れてしまいました。

マルチコプターフレーム3号破損

マルチコプターフレーム3号破損

4号機

モーターの付け根を強化しました(少し太くなったのと、2枚重ねの部分を根本側に若干伸ばしたのと)。
今のところ壊れておらず操縦練習中です。

マルチコプター フレーム4号

モーターの付け根を強化。

この後どうするか未定ですが、まずは操縦の練習をしてみます。