気の向くままに辿るIT/ICT
webzoit.netウェブサイトホームページ
IoT・電子工作

模型用サーボモータSG90を回転角360度に改造

ウェブ造ホーム前へ次へ
サイト内検索
カスタム検索
Arduinoって?

模型用サーボモータSG90を回転角360度に改造

模型用サーボモータSG90を回転角360度に改造

2018/04/11

 SG90など回転角度180度に制限されている模型用サーボモータを360度回転するように改造してみるページ。

 改造後は、スケッチによって、右回り・左回り、停止もするものの、回転時には、細かい角度指定はできなくなり、DCモータ同様、常に360度となる点に注意。

 元に戻せなくもないが、その場合には、以後で切削加工する前の元の状態の歯車を他から持ってくることと、1点部品を外すのだが、外し方に気をつけ、差し戻す必要がある。

 ただし、プラモ用サーボモータは、連続回転を想定していないだろうし、モータが密閉されていることもあって、改造後は、作動後、比較的すぐに温かく(熱く)なるので要注意、長時間というか、数分間でも連続運転は避けるのが賢明だろう。

 もちろん、改造は、自己責任であり、改造後は、メーカー・販売店保証もなくなることは、当然、覚悟のこと。

 これらを踏まえると改造する意味を見出すことができるケースは、あっても極々限られそうだ(手回し発電という手もなくもないが)。

用意するもの

 Arduinoボード、サーボモータ、サーボドライバ、サーボドライバ用別電源、精密ドライバのプラスとマイナス。

 今回は、ArduinoボードにUno互換機、サーボモータにはSG90、サーボドライバにはPCA9685、サーボドライバ用別電源(PCA9685は操作電圧の推奨は6Vらしい)には、PC用19V ACアダプタ+LM317安定化電源キットを併用、精密ドライバは、たぶん100均で買ったものを使った。

 使わなくても360度回転を確認できるのであれば、サーボドライバ(PCA9685)やサーボドライバ用別電源は必須ではない。

 その(サーボモータドライバ+別電源を使わない)場合、サーボ用電源5Vは、Arduinoボードからではなく、別に用意した方が動作が安定すると思われるが、ACアダプタ+降圧モジュールや9V電池+ブレッドボード用電源などサーボに安定して5V供給できれば、方法はなんでもよい。

 プラスドライバはサーボのネジを外すため、マイナスドライバは、1点部品を外すために必要で後者については、必ずしも精密ドライバでなくてもよいが、その方が無難。

EasyWordMall Arduino UNO R3互換ボード(USBケーブル付属)

EasyWordMall Arduino Pro Mini互換ボード Atmega328 5V 16MHz

Rasbeeオリジナル FT232RL互換 3.3V/5V FTDI/USB/TTL変換アダプタ

KKHMF Arduino Nano Ver 3.0互換ボード ATmega328P CH340G 5V 16MHz

OSOYOO(オソヨー) SG90 9g マイクロサーボ (10個セット)

HiLetgo PCA9685 16チャンネル 12-ビット PWM Servo モーター ドライバー IIC モジュール Arduinoに対応 ロボット

KKHMF PCA9685 16チャンネル 12-ビット PWM Servo モーター ドライバー IIC モジュール Arduinoに対応 ロボット

E-Value 精密ドライバーセット 6本組 -1・-1.2・-1.6・+00・+1mm ED-20

改造方法

サーボモータ回転制限部品

 改造方法は、YouTubeでもよく見かけるので参照すればよいが、一応書き留めておく。

 サーボ裏面のビスを4本外すと本体は3つに分離できるが、サーボホーンを取り付ける上側を外すと複数の歯車からなるギアが組まれている。

 順番を覚えておいた上、これらを外していき、一番下の歯車を見ると表面に突起があるので、その突起をカッターやデザインナイフでカットし削る。

 続いて写真にある銀色でワッシャーのようなリボンが交差したような薄い部品がハマっている軸があるので、精密マイナスドライバーなどでこじって、この部品を外す。

 後は、元の通り、順に歯車をはめてフタを閉め、ネジを締めれば完了。

動作確認

 Arduino IDEサンプルスケッチSweepでもよいが、16チャンネルサーボドライバPCA9685があるなら、Adafruit-PWM-Servo-Driver-Library、これを改造したArduinoとAdafruit 16-channel Servo Driverでサーボモーター多数制御を使わせて頂くとよいだろう。

 自身は、単体でSweep、PCA9685併用で改造版を使わせて頂き、後者では、[#define SERVOMIN 0]/[#define SERVOMAX 360]/[#define CENTER 180]としたスケッチを書き込み、動作確認を行なった。

 うまく回らない値もあるが、これで180以下と以上で回転方向が、シリアルモニタでの指定値によって回転速度・回転の滑らかさが変わり、別々に[t0][m0](t:[モータドライバ上の挿し込み位置]/m:[回転値])などとするか、まとめて[t0m0](mの引数はマイナス値でもよいが...)などとすれば停止する。

 なんかサーボの挙動が、おかしいなと思ったら、Arduinoボードのリセットボタンを押すことで改善することもあり。

備考

 ちなみにSG90の場合?他も?歯車が入っている軸の1本はすぐに抜ける構造なので分解・組付け時、紛失や歯車が付いた状態での抜けがないよう注意が必要。

 なくなったか!?と思ってもフタ側に刺さっていることもあるので、その際は、要確認。

 YouTubeなどで、たまにこうした改造動画を見かけていたものの、興味はなかったのだが、以前買ったサーボ10個セットの内、1個、1本だけビスがバカになっていた(はずが、なぜか今回気づけば、なんともなかった)ものがあり、これでならダメ元でやってみるのもよいかと思うに至った。