とある科学の備忘録

とある科学の備忘録

CやPythonのプログラミング、Arduino等を使った電子工作をメインに書いています。また、木製CNCやドローンの自作製作記も更新中です。たまに機械学習とかもやってます。

【Arduino自作ドローン】NO.3 電子基板の製作

ドローン自作連載第三回です。
f:id:pythonjacascript:20181109004843j:plain
この記事では、ドローンの電源系を制御する電子基板の製作様子を紹介します。

1.全体のアルゴリズム

ドローンのアルゴリズムは全体的にこのようになっています。
f:id:pythonjacascript:20181123153601j:plain

ドローンの中央処理を行うArduinoや電源と、4基のモーターやセンサー、xBeeを接続するために、専用基盤を製作しました。

ドローンの電子制御の部分は、上の図のように、「リモコン側」と「本体側」の二つによって構成さています。2つともArduino UNOと呼ばれるマイコンを使用している。

動作の仕組みは、

  1. リモコン側Arduinoジョイスティックの入力を機体に送信する。それにはxBeeとよばれる無線通信モジュールを使用している。
  2. 本体側Arduinoは、送られてきたジョイスティックの値と、センサー(PmodNAV)から算出したドローンの姿勢角をもとに、
  3. 4つのブラシレスモーターの出力を制御して目的の方向にドローン動かす。

の3STEPです。

このような機能を実現するため、基盤を回路設計から製作しました。

電子基板の設計

f:id:pythonjacascript:20181123154017j:plain
回路設計はDesignSparkPCBを用いて行いました。

https://www.rs-online.com/designspark/pcb-software-jp

完全無料で使える基板設計CADの中でも、機能が豊富なものです。

上の回路図は結構適当に書いているので、信用できません。

電子基板の製作・はんだ付け

上で書いた設計図をもとに、半田付けを行いました。
基板表面:
f:id:pythonjacascript:20181123155620j:plain

基板裏面:
f:id:pythonjacascript:20181123155623j:plain


電子基板の役割

このようにして製作した電子基板ですが、以下のような役割があります。

BEC(電源供給)

ドローンは当然ですが、バッテリーから供給される電気で動いています。しかし、ここで問題です。
Arduinoなどの制御系の電源は5V、xBeeという通信を行うデバイスの電源電圧は3.3V、ブラシレスモーターの電源は約12Vという風に、制御側とモーター側で必要な電圧が異なるのです。

そこで、定電圧レギュレータ(定番の7805)を使用してバッテリーの電圧を必要な電圧まで下げて使用しています。

さらに、ヒューズ代わりに「ポリスイッチ」という電子部品を導入しました。
f:id:pythonjacascript:20181123160849j:plain:h300
ポリスイッチとは、過電流保護に用いられる素子(電流が流れすぎたときに、その部分の電気の流れを遮断する)です。ポリスイッチはポリスイッチは過電流により自身の抵抗値が増大し、流れる電流を制限します。
過電流保護を行う部品は、ほかにもヒューズなどがありますが、ヒューズは一旦切断すれば交換しなければなりませんが、ポリスイッチの場合、一旦切断されても電流値が下がると自動で復帰するため、部品交換の必要がありません。


xBeeとの電圧変換

先ほども書きましたが、リモコンとドローン本体の無線通信を行うxBeeは、3.3Vで駆動するため、信号の電圧はOFFの時0V,ONで3.3Vを出力します。しかし、xBeeを制御するArduinoは5Vで駆動しているので、信号の電圧も0V/5Vです。
このように、xBeeArduinoの信号線の間で電圧変換を行わなければなりません。

今回は、Arduino→xBeeの信号線は、抵抗器で分圧を作って電圧を変換し、
xBee→Arduinoの信号は抵抗を介してそのままArduinoに入力しています。


バッテリー電圧監視機能

このドローンには、定期的にバッテリー残量を監視して、一定値を下回れば、飛行を中断して下降動作に入るようなプログラムを組んでいます。

そのために、バッテリーの電圧をAruinoのアナログ入力機能を使って取得する必要があります。

そこで、バッテリーの電圧(11.1~12.5V)を抵抗の分圧を使ってArduinoの入力に適した電圧(0V~4.5V)に変換して、アナログ入力ピンにつないでいます。