† 半自動モフり機
— ちゃり (@amb98) October 2, 2019
実際にモフってるところが撮影できればよかったのですが、動画を撮影できる機器はスマホしかなく。
FGOメンテだからFGO周回しよみたいな。
† 元ネタ
モータードライバー(TA7291P)の使い方 [Arduino]
※こちらを見てすべてわかる方は、当記事を読む必要はありません。
† 動機というか前年のつらみ
某人気ゲームは年に一度、廃人祭を開催する。ボックスガチャという、うまみはあるがつらみも半端ない仕込みである。
昨年、つまり2018年のこと、あまりにひどいタップ沼に懲りて、なにか楽する方法はないかと調べたとき、ソーセージと百均のミルクフォーマーというコスパのよさと、ソーセージというひそかな工夫を、ものすごい絵面で台無しにしたマシンに出会った。
見た目の雑さもよりも調整に職人技を要すると感じ、避けたことは余談である。
† 実装
| 部品一覧 |
|:-----------|------------:|:------------:|
| Arduino Uno |
| ブレッドボード |
| ジャンパワイヤ |
| モータードライバ(TA7291P) |
| Rasbee MB102ブレッドボード用 電源モジュール 3.3V 5V パワーモジュール|
| ACアダプター x 2|
| タミヤ 楽しい工作シリーズ No.157 ユニバーサルプレート 2枚セット|
| タミヤ 楽しい工作シリーズ No.103 ユニバーサルギヤーボックス |
| ラック(ギアの歯がついた棒|
| いいカンジの洗濯バサミ |
| 固定するナニカ(百均の引き出し付きケースなど)|
| ダイソーのクレヨン型スタイラスペン |
Amazonでほぼ全てそろう。
リンクを貼らなかったのは、一部不当と思える価格設定の品があったからで、適宜良いと思えるものを選んでいただければと思う。
ダイソーのクレヨン型スタイラスペンの先端は取り外し可能で、これをラックの先端にクリップで固定している。前述のソーセージに相当する工夫としては、この先端部をジャンパワイヤでArduinoのGNDに接続していること。
† 回路図説
元ネタの方では電池を使っており、それで十分だが、本例では部品一覧に挙げた「Rasbee MB102ブレッドボード用 電源モジュール 3.3V 5V パワーモジュール」を使用した。
ブレッドボードの両端に電力を供給するものだが、Arduinoからモータドライバ駆動用の電源を取っているため、そちら側はOFFにしている。DCモーター駆動用には3.3Vに設定した。
† ソースコード
元ネタのソースコードほぼまんまだが、ラックのストロークにあわせて時間を調整している。
#define PIN_IN1 7
#define PIN_IN2 8
#define PIN_VREF 9 // PWM
void setup(){
Serial.begin(9600);
pinMode(PIN_IN1,OUTPUT);
pinMode(PIN_IN2,OUTPUT);
}
void loop(){
// モーターの回転速度を中間にする
Serial.print("モーターの回転速度を中間にする\n");
analogWrite(PIN_VREF,127);
// 回転
Serial.print("回転\n");
digitalWrite(PIN_IN1,HIGH);
digitalWrite(PIN_IN2,LOW);
delay(180); // <- 調整箇所
// ブレーキ
Serial.print("ブレーキ\n");
digitalWrite(PIN_IN1,HIGH);
digitalWrite(PIN_IN2,HIGH);
// 逆回転
Serial.print("逆回転\n");
digitalWrite(PIN_IN1,LOW);
digitalWrite(PIN_IN2,HIGH);
delay(180); // <- 調整箇所
// ブレーキ
Serial.print("ブレーキ\n");
digitalWrite(PIN_IN1,HIGH);
digitalWrite(PIN_IN2,HIGH);
delay(1000); // <- 調整箇所
}
† 免責事項
Arduinoは回路に電源を供給できますが、本例のようによそから電源を取っている場合など、誤ってArduinoにそれが流れてしまうようなことがあると機器の故障につながるようです。実行の際は、十分ご注意ください。
自己責任でお願いいたします。