一般的なラジコンサーボは-90度から90度のように回転できません。コンパクトでトルクが高いラジコンサーボを回転できるようにすると用途を広げることができます。そこで今回はラジコンサーボを改造して回転できるようにします。
注1:ラジコンサーボを分解し改造するので、全て自己責任で行ってください。何があっても保証できません。
注2:分解し改造するので、保証はすべてなくなります。
注3:改造するので、破損することがあります。動かなくなる可能性も十分あります。
1.今回使用するPICについて
今回使用するPICは「PIC12F1822」です。
2.回路
回路は「ラジコンサーボを動かす」と同様なので参照してください。
今回使用するラジコンサーボは「Tower Pro マイクロサーボ SG90 」です。
ラジコンサーボ改造時、2.4[kΩ]のチップ抵抗を使用しています。
3.改造方法
3.1 改造に必要な道具
今回使用する道具は、電子工作をする際必要になるものばかりです。もし持っていないようであればこれを機に用意してみてはどうでしょうか。
- テスター:必須アイテムです。とりあえずデジタルがいいと思います。接続を間違えても壊れにくいですし、値が見やすいです。
- はんだこて:電子回路用と書いてあるやつがいいと思います。熱量が違います。
- はんだ:これがないとどうしようもありません。小さいのだとすぐなくなるので、500[g]くらいはあったほうがいいと思います。
- はんだこて台:はんだを置いておく台です。無いと不便です。下記のような水がいらないタイプの物もあるようです。
- はんだ吸取器:付けた後のはんだを取り外すための道具です。吸入式が簡単に取れて便利だと思います。必用応じて線タイプです。
- ミノムシクリップ:テスターにつけて使うと便利です。
- ピンセット:細かい作業にはやはり便利です。
- ニッパー:プラモデルなどでよく使う、プラスチックを切断する道具です。
- ヤスリ:ニッパーで切った後をならします。
- デザインカッター:細かいところを切ったり、ならすのに便利です。あれば便利です。
- プラスチック用のノコギリ:あれば便利ですが、なくても何とかなります。
3.2 可変抵抗の計測
ラジコンサーボ内の可変抵抗の値を調べ、それに適した抵抗を選択します。今回のラジコンサーボでの確認方法は以下の通りです。
- ラジコンサーボの角度を0度にする
- テスターを使用してVccと中心、GNDと中心の抵抗値を求める
- 計測した抵抗値と同じくらいの抵抗を用意する
今回計測したところ、2.4~2.5[kΩ]くらいだったので、2.4[kΩ]のチップ抵抗を用意しました。なぜチップ抵抗にしたのかと言いますと、ラジコンサーボ内に収めるためです。今回使用するラジコンサーボが小さいため、大きいと入れることができなったので、チップ抵抗にしました。
Vccと中心の間に1つチップ抵抗をつければいいと思うのですが、どちらがVccなのかわからなかったため、今回は両方につけることにしました。
2.4[kΩ]チップ抵抗 × 2
3.3 回路の分解・改造
ラジコンサーボの底を外します。すると以下の写真のように回路があるので、とりはずします。本来はここで可変抵抗の値を計測します。写真の場合、基盤につながっている黒い3本の配線部分を計測します。
技量があれば、取り外さずつけても大丈夫ですが、相当難しいです。
取り外した基盤の黒い配線が繋がっていた部分にチップ抵抗をつけます。以下の写真の青枠で囲っている部分です。どちらがVccなのかわからないため、両方に取り付けました。
はんだがたくさん残っているため作業がしにくいので、はんだ吸い取り器で邪魔なはんだを取り外します。その後、チップ抵抗を接続します。
3.4 ギアボックスの分解・改造
ギアボックスのカバーを外します。
サーボホーンを付けるギアを取り外します。取り外したギアのでっぱりを切断します。
元通りに組みなおして完了です。
3.5 改造の理論と補足
抵抗の取り付けと、ギアのてっぱりを切断する改造を行いました。抵抗を取り付けることで、内部的に現在角度を誤認識させています。ギアのでっぱりの切断は、ストッパを切るというだけの単純な理由です。
重要なことなのですが、抵抗を取り付ける改造により、0度の位置が変わってしまいます。ラジコンサーボの可変抵抗と、取り付ける抵抗により内部の値が変わってしまうためです。0度がわからないと正転させるつもりが、逆転させてしまう、なんてことが起きてしまいます。
4.プログラム
4.1 とりあえず回す
改造がうまくいったのか確認するために、「ラジコンサーボを動かす」で使用したプログラムを改造して動作確認を行ってください。動作確認なので、低速で回るように0度あたりになる予定の信号を出力するようにしてください。
4.2 0度を探す
3.4で説明したように、改造後の0度の測定が必要です。面倒ですが単純なやり方で行います。0度と思う信号をラジコンサーボに送信し、ラジコンサーボが回らなければそこがきっと0度です。
0度を確認するプログラムは特に複雑なことをしていません。常に指定したパルスを出力するようになっているだけのプログラムです。以下のプログラムを確認してください。基本的な設定などは「ラジコンサーボを動かす」と同様なので参照してください。
4.2.1 0度確認用プログラムのソースコード
プログラムの全文を掲載します。
<注意>
本サイトの注意事項を確認してください。
ソースコードや回路図などを使用する場合、上記注意とともに、自己責任でお願いします。
4.3 正転、逆転を行う
0度の計測が完了したら、正転と逆転の動作確認です。基本的な設定などは「ラジコンサーボを動かす」と同様なので参照してください。
今までのプログラムとの違いは、「4.2 0度を探す」で確認した0度の値を設定しているところです。その0の位置を中心に正転、逆転の設定を行っています。以下の部分が0度の位置を設定しているところです。
#define SERVO_STOP 3420
今回改造したラジコンサーボの場合、3420という値になりましたが、ものによって違うので注意してください。必ず「4.2 0度を探す」で確認した値を登録するようにしてください。また同製品の違うラジコンサーボを使用した場合でも値は変わるので注意してください。
4.3.1 正転、逆転を行うプログラムのソースコード
プログラムの全文を掲載します。
<注意>
本サイトの注意事項を確認してください。
ソースコードや回路図などを使用する場合、上記注意とともに、自己責任でお願いします。
4.動作確認
サンプルソースの動きは以下の通りです。
- ゆっくり正転
- 少し早く正転
- ほぼ最高速の正転
- 停止
- ゆっくり逆転
- 少し早く逆転
- ほぼ最高速の逆転
- 停止
<更新履歴>
新規作成:2015年4月26日
第2版:2016年9月30日:フォーマット変更(内容の変更はなし)