ソロでたのしむ

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

ロティサリーBBQをコンパクトに楽しもう!Arduinoと28BYJ-48で小型の電動回転丸焼き器を自作します

 

スポンサーリンク

ソロキャンプでもロティサリーチキンのような回転焼きを電動で楽しみたい!と思い、ステップモーターとArduinoで、小型の電動ロティサリー(回転BBQ器)を自作してみました。

f:id:solocamptouring:20181014164507j:plain

ソロキャンプで焼くもの

ソロキャンプでは、チキンの丸焼きは食べきれませんが、手羽やモモ肉など小さめの食材であれば、ロティサリーを使って網焼きとは違った食感が楽しめそうです。

屋外でのBBQでは、網を使ってソーセージを焼くことが多いですが、曲がっているソーセージは焼きムラができてしまい、曲がっていなくても網の上で転がっていってしまうことがあります。

ロティサリーを使えば、ソーセージのような形のものでも、転がる心配をせずに全周を均一に焼くことができそうです。

小型のロティサリーを自作します

ソロキャンプ用の電動ロティサリーで、食べることだけでなく、食材がクルクル回りながら食べごろに焼きあがる過程も、見て楽しみたいと思います。

出力軸を低速回転で動かすことができれば、簡単な工作でつくれそうです。

ソロキャンプスタイルにちょうどいい大きさの電動ロティサリーを自作してみます。

部品の準備

動力部は、低速でも定電圧で動かせるステップモーター28BYJー48を、Arduinoで速度制御して動かします。

f:id:solocamptouring:20181008230435j:plain

回転速度は、可変抵抗(ボリューム)で自在に変えられるようにします。

串を脱着する時には、可変抵抗は操作せずに回転を止めたいので、電源用のスイッチを設置します。

しかし、入手が間に合わなかったので後日追加することにして、当分はモバイルバッテリー側のスイッチで代用します。

  • Arduino
  • ステップモーター
  • (スイッチ)
  • 可変抵抗

駆動力の伝達部は、ユニバーサルジョイント2個で繋いで、BBQ台にのせる串と駆動部の出力軸との軸位置ズレを吸収します。

伝達軸は、ステップモーターの出力軸径と同じ大きさのφ5mmのアルミ棒を使います。

  • φ5mmアルミ棒
  • 同軸ジョイント#1(モーターとアルミ棒)
  • ユニバーサルジョイントx2個
  • 同軸ジョイント#2(アルミ棒と串)

f:id:solocamptouring:20181007064334j:plain

その他、モーター格納用のボックスや、同軸ジョイント#2と串を固定するための、手で締め付けられるネジなども使用します。

機構部を作ります

動力伝達部のジョイント類は既製品を使うので、ほとんどネジの締め付け作業だけで組み上げられます。

軸位置のズレ吸収用ユニバーサルジョイントを2個、動力伝達軸の途中に入れておきます。

f:id:solocamptouring:20181007064435j:plain

串との接続部だけは、様々な串への汎用性を持たせるために穴を拡大したり、手でまわすことができる大きさの締め付け用ボルトを取り付けられるように加工しました。

回路図

Fritzingで回路図をつくりました。

f:id:solocamptouring:20180930164844j:plain

電源はモバイルバッテリーから供給して、スイッチで全供給電源をオンオフするようにします。

Arduinoとモーターは並列に電源供給して、Arduinoに過大な電流が流れないようにします。

回路図左側の可変抵抗で、中央のステップモーターの回転速度を変える回路です。

回路図右半分は、完成品で入手できるモータードライバーボードです。

 

Arduinoでステップモーター28BYJー48を回す制御仕様

可変抵抗でスピードを変えてステップモーターを動かす時の、一般的な手法を使います。

可変抵抗で調節した電圧を、Arduinoで読み取ります。

Arduinoでは、可変抵抗の電圧を回転速度に変換して、その回転速度に合わせたパルスをステップモータードライバーに出力します。

Arduinoの入出力ポートは5か所使うだけなので、はんだ付け作業は短時間で終了しました。

f:id:solocamptouring:20181008230805j:plain

28BYJー48とArduinoをボックスに取り付けます

ステップモーターやArduinoを入れるのにちょうどいい大きさの、プロジェクトボックスを入手します。

重量感がある印象にしたいので、アルミのボックスを選択しました。

f:id:solocamptouring:20181014165431j:plain

ステップモーターとスイッチ類を取り付ける穴を開けて、全ての部品を取り付けたら完成です。

実際に回して食材を焼いてみます

ソロキャンプ用のロティサリーなので、焼き鳥サイズの串を回してBBQをします。

ステップモーター28BYJー48は、ロティサリーにちょうどいい回転速度域では、よほど大きく重いものを串に刺さなければ、充分なトルクがあります。

少し軽めのものですが、ソーセージで試運転をしてみます。

ソロキャンプでいつも使っている小型ウッドストーブで炭をおこして準備します。

ウッドストーブの外縁2カ所に事務用クリップをつけて、その持ち手部分に串を通して、ソーセージを回します。

ゆっくりと回っているのを見ているだけで、電動ロティサリーを作った満足感で癒されます。

約3分で、表面をほぼ焦がさず、均一に焼き上げることができました。

youtu.be

ソロキャンプでいつも楽しんでいる冷凍たこ焼きも、ロテイサリーで「表面カリッ、中はトローッ」と焼き上げてみました。

f:id:solocamptouring:20181014165938j:plain

まだトルクに余裕があるので、もっと重いものを焼く時でも使えそうです。

アタッチメントを工夫すれば、手動で回していたバームクーヘンにも応用できそうです。

f:id:solocamptouring:20180926052009j:plain

28BYJー48を実用するスケッチ(プログラム)

最後に、ステップモーター28BYJー48を回すスケッチを紹介いたします。

速度は変えられますが、とにかく回し続けるだけの短いスケッチです。

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
// Red    - 28BYJ48 pin 5 (VCC)
int volumePin = 5;
int motorSpeed;
int motorSpeedtimes = 3;
int speedMax = 1500 ;
int waitSpeed = 0 ;
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() {
  motorSpeed  = 1024 * (motorSpeedtimes + 1) - (analogRead(volumePin) * motorSpeedtimes) ; //0to1023 change into speed
  clockwise();
}


void anticlockwise()
{
  for (int i = 0; i < 8; i++)
  {
    setOutput(i);
    if ( motorSpeed > speedMax ) {
      waitSpeed = motorSpeed - speedMax ;
      delayMicroseconds(speedMax) ;
      digitalWrite(motorPin1, 0);
      digitalWrite(motorPin2, 0);
      digitalWrite(motorPin3, 0);
      digitalWrite(motorPin4, 0);
      delayMicroseconds(waitSpeed) ;
    } else {
      delayMicroseconds(motorSpeed);
    }
  }
}


void clockwise()
{
  for (int i = 7; i >= 0; i--)
  {
    setOutput(i);
    if ( motorSpeed > speedMax ) {
      waitSpeed = motorSpeed - speedMax ;
      delayMicroseconds(speedMax) ;
      digitalWrite(motorPin1, 0);
      digitalWrite(motorPin2, 0);
      digitalWrite(motorPin3, 0);
      digitalWrite(motorPin4, 0);
      delayMicroseconds(waitSpeed) ;
    } else {
      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));
}

f:id:solocamptouring:20181114184308j:plain

ロティサリーを導入したことで、焼いて 見て 食べての合計3回楽しめるようになり、キャンプの時間がさらに楽しくなりました。