ソロでたのしむ

キャンプ、電子工作、DIY、乗り物などの趣味を紹介

無段変速フィニッシングモーターを自作しよう! 釣り竿のガイド交換用Arduino工作

こんにちは!

このところ魚釣りのトレーニングに集中していて、しばらく電子工作から遠ざかっていました~

電子工作も大好きなのですが、日常生活で使えるものを作りたい!ので、必要に迫られた時しか、はんだごてに手が伸びません。

そして魚釣りを楽しむ中で、釣り竿の糸を通す部分(ガイド)に錆が浮いてきたので、自分でガイドを新品に交換したいと思うようになりました。

交換作業の終盤で、エポキシ系の仕上げ塗装(フィニッシャー)をしないといけないのですが、これが半硬化するまでの約5時間ほど、竿をくるくると回転し続けないと、塗装が垂れてきて見苦しい仕上がりになってしまします。

・・・そこで・・・

久しぶりのArduino工作で、自動で釣り竿を回し続けてくれる装置を、自作してみます。

スピードコントロール フィニッシングモーターを自作します

 

スピードコントロール付きフィニッシングモーター

フィニッシングモーターって何なの?というご質問もあると思いますので、ご説明しておきます。

機能としては釣り竿を回転させ続けるだけ!というシンプルなもので、厚めの塗装を施す場合に、塗料のタレを発生しにくくするための道具です。

釣り竿を装着して作動させると、こんな感じです。

youtu.be

似たようなものとして、

  • 肉の丸焼き用のロティサリー
  • バームクーヘン製造機
  • ちくわ焼き機

がありますね!...食べ物系しか思いつきませんでしたけど。

要するに、長時間にわたって、ゆっくりと回転し続けてくれる、一部の界隈でのお役立ちアイテムです。

今回私が作りたいのは、硬化時間24時間のエポキシ塗料が釣り竿の表面に均一な被膜を形成するためのものになります。

それでは、回転方向と回転速度が調整できる、スピードコントロール フィニッシングモーターを自作しましょう!

用意するもの

フィニッシングモーターを自作するにあたり準備した主要な部品は、Arduino-Nanoと、ステッピングモーター28BYJ48です。

5Vで駆動するので、たいへん使いやすいステッピングモーターは、これまでも様々な自作品で活躍してくれました。

そのほかに必要なのは、モーター類を収納するプロジェクトボックスと可変抵抗(ボリューム)、そして配線に必要な電線やハンド付けキットなど、電子工作好きなご家庭には常備されていそうなものです。

配線

回路図をFritzingで作成してみました。

自作 フィニッシング モーター 回路図

はんだ付けが大変そうに見えますが、既製品のステップモーター駆動ボードを使えば、自分で配線するのは左半分だけになるので、ずいぶん楽ですよ~

無段変速フィニッシングモーターの回路

上の写真は、回路図とピン番号が少し違いますが、はんだ付け作業中のミステリーということで、ご理解とご容赦ください。

組み立て

電源は、5Vで数アンペア流せられれば大丈夫です。

私は家庭用コンセントを使いたいので、AC/DCコンバーターも収納するために、少し大きめのプロジェクトボックスを用意しました。

自作フィニッシングモーターの中身

Arduinoやコンバーターは、ホットメルトでボックスに固定しました。

ボックスの上面に、モーターと可変抵抗を取り付けて、本体が完成!

そして、釣り竿を固定する部分ですが、悩んだあげくに、

「その都度、マスキングテープで釣り竿を固定できれば良しとしよう~」

と決めました。

そこで、マスキングテープで固定しやすいように、ペットボトルのキャップとその付近をつけておきます。

ロッドのフィニッシングモーターを自作する

もっとスマートな方法が見つかったらバージョンアップするとして、当分はこれでいきます~

実使用

それでは、フニッシングモーターを動かしてみましょう~

実際に使っている途中で、エポキシ塗装をしている風景を撮影してみました。

youtu.be

可変抵抗で無段変速できて、正逆転も選べるようにしておいたので、なにかと便利です。

ちなみに、ボリューム調整は、

  • 中央で停止
  • 左右に動かすとその方向に回転しはじめて、徐々に速く

という仕様になっていきます。

硬化中は、最大速さよりも少し遅くした状態で、半硬化する5時間を目安に回転させ続けます。

使用したステッピングモーター28BYJ-48は、作動音が静かなので、長時間お部屋で動かしていても気になりません。

超有名メーカーの富士工業さんから美しい既製品を入手できますが、自作した無骨な物もいいじゃない!

<ご参考>

最後に、可変抵抗(ボリューム)1個で、回転方向とスピードをコントロールするスケッチ(プログラム)を紹介させていただきます。

なお、記事内の実物写真は、少し回路を変更しています。

このスケッチは、記事内の回路図どおりに配線した場合のスケッチとなります。

int motorPin1 = 4;    // Blue   - 28BYJ48 pin 1
int motorPin2 = 5;    // Pink   - 28BYJ48 pin 2
int motorPin3 = 6;    // Yellow - 28BYJ48 pin 3
int motorPin4 = 7;    // Orange - 28BYJ48 pin 4
int volumePin = 3;
long motorSpeed;
int motorSpeedtimes = 40;

int lookup[8] = {B01000, B01100, B00100, B00110, B00010, B00011, B00001, B01001};

void setup() {
  pinMode(motorPin1, OUTPUT);
  pinMode(motorPin2, OUTPUT);
  pinMode(motorPin3, OUTPUT);
  pinMode(motorPin4, OUTPUT);
  Serial.begin(9600);
}

void loop() {
   if( analogRead(volumePin) < 482 ) {
    motorSpeed  =  (512 - (482 - analogRead(volumePin))) * motorSpeedtimes ; // change into speed
    anticlockwise();
   }
   else if( analogRead(volumePin) > 542 ) {
    motorSpeed  =  (512 - (analogRead(volumePin) - 542)) * motorSpeedtimes ; // change into speed
    clockwise();
   }
   else {
    digitalWrite(motorPin1, LOW);
    digitalWrite(motorPin2, LOW);
    digitalWrite(motorPin3, LOW);
    digitalWrite(motorPin4, LOW);
   }
}

void anticlockwise()
{
  for (int i = 0; i < 8; i++)
  {
    setOutput(i);
      delayMicroseconds(motorSpeed) ;
}
}
void clockwise()
{
  for (int i = 7; i >= 0; i--)
  {
    setOutput(i);
      delayMicroseconds(motorSpeed);
}
}
void setOutput(int out)
{
  digitalWrite(motorPin1, bitRead(lookup[out], 0));
  digitalWrite(motorPin2, bitRead(lookup[out], 1));
  digitalWrite(motorPin3, bitRead(lookup[out], 2));
  digitalWrite(motorPin4, bitRead(lookup[out], 3));
}