スピンフィーバーを作りたい
僕が小学生のころ、スピンフィーバーというメダルゲームが大好きでした。小学生の頃に作りたいと思ったこともありました。今もたまに遊びに行きますが、最近スピンフィーバーがおいてあるお店が少なくなってきました。スピンフィーバーは初代機は2007年製、コンピュータは寿命を迎えています。僕が今遊びに行っているお店の機体も、いつ壊れてもおかしくない状態です。とても悲しいです。
そこで思いました。
「今なら、作れるのではないか。」
そこで、作ることにしました。
スピンフィーバーとは?(第2章)
簡単に言えばピンボール物理抽選ゲームです。鉄球が中央のフィールドにあるバンパーに当たると跳ね返されると同時に、メダル2枚を獲得します。メダル合計が100枚になると、フィールド両端にある2つのチャンスポケットが開きます。そのポケットに鉄球が入ると、クルーンに挑戦し1/5の確率でジャックポットが当たります。フィールドから全ての鉄球が出て行ってしまうとゲーム終了。出て行ってしまうのを防ぐために8枚の壁(アウトブロック)があり、1回だけなら鉄球が外に出て行くのを防いでくれます。逆に鉄球がフィールド上に存在する限りゲームは続きます。
細かいルール
- 通常は1球のみ発射される
- 発射後、10秒間アウトブロックは無敵になる
- ステーションで777がそろうと3球になる
- アイテムがステーションで当たると、ジャックポットが当たる確率が上がる
- アイテムは発射されるボールが2球になる「2ball」、バンパーの獲得枚数が3枚になる「Hit-Win-up」、最初の無敵時間が増える「no-out 10sec」、チャンスポケットが初めから開く「chance-poket-open」、ジャックポット枚数が300枚増える「JP+300」がある。
- レッドとブルーの2つのジャックポットがあり、2つとも当たり、さらにどちらかに当たるとスーパージャックポットを獲得できる。
気になる方は調べてみてください。
構想
今回どのように作るかを考えた際、電子制御ならPICかArduinoだなと思いました。しかし、PICだと端子が少なすぎるのと、PICライターなり揃えて、基盤を作るとなると非常に面倒です。そこでArduinoにするとこにしましたが、Arduinoは同時処理ができません。
そこで、Arduino5機をRaspberry Piのシリアル通信で制御することにしました。うまくできるかはしりません。
準備
まず、Arduinoの互換ボードと3Dプリンターを購入しました。
そして、これも購入しました。
はい、ずるしました。センターパネルですが、作るのには少し厳しすぎました。ちょうどオークションサイトにあったので買いました。これで、逃げれなくなりました。これに合わせて作っていきます。
設計(バンパー)
まずはバンパーを設計していきます。設計ソフトはAutoDesk Fusion 360です。
動作
まず、ボールを跳ねる仕組みですが、白い板にボールが当たると、下の図のように鉄板を押し下げてボールを押し返しています。
鉄板を押し下げる動作のためには上下運動するアクチュエータが必要です。そこで、ソレノイドを使用することにしました。
ソレノイドは電流を流すと、電磁石の力によって鉄芯を引きつける装置です。今回はボール直径30mmなので、しっかり跳ね返すためには最低12mm以上のストローク(引き付ける長さ)が必要と考えました。そこで、タカハ機工のストロークが16mmで力も強い「CA1264」を購入しこれに合わせて設計することにしました。ついでにソレノイドをArduinoで制御できるコントローラーも購入しました。
センサ
センサはとても悩みました。まず、マイクロスイッチでボールの接触を感知する方法を考えました。しかし、設計が難しくなるのと反応にムラができる恐れがありました。
そこで、白い板が傾くことで反応するセンサにすることにしました。白い板に金属棒を固定し、土台に穴の空いた金属の板を取り付けます。そして、穴に白い板とりつけた金属棒を入れて固定します。白い板が傾くと、金属棒と板が接触して反応するという仕組みです。
そのほかの設計
そのほかメイン土台、ソレノイド土台、メイン柱、装飾なども本物をベースにして作りました。寸法も、買ったメインパネルに合うようにしました。また、配線用の穴、ネジ穴を用意しておきます。
一番大変だったのは、ずれが発生しないようにするための穴です。センサの白い板はボールが当たった衝撃で板がずれて、センサが誤作動する恐れがありました。そこで白い板に小さな穴をあけ、板が傾いたときに引っかかるようにしました。
完成したバンパーの設計図はこちらです。
作製
まずは土台が必要です。ホームセンターで適当に板を買ってきて組み立てました。本当に適当に組み立てただけですので、これは割愛します。
バンパーはセンサのネジ、バネ、板以外はすべて3Dプリンターで印刷します。ベース板だけで11時間かかりました。時間がかかりすぎるので、まずは2つ作りました。
プログラミング
使用するのはArduino nanoです。D2~D5端子にソレノイド、D6~D9端子にセンサが付けられています。
void setup() {
pinMode(2,OUTPUT);
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,INPUT_PULLUP);
pinMode(7,INPUT_PULLUP);
pinMode(8,INPUT_PULLUP);
pinMode(9,INPUT_PULLUP);
}
void loop() {
if(digitalRead(6)==LOW){
digitalWrite(2,HIGH);
delay(50);
digitalWrite(2,LOW);
delay(10);
}
if(digitalRead(7)==LOW){
digitalWrite(3,HIGH);
delay(50);
digitalWrite(3,LOW);
delay(10);
}
if(digitalRead(8)==LOW){
digitalWrite(4,HIGH);
delay(50);
digitalWrite(4,LOW);
delay(10);
}
if(digitalRead(9)==LOW){
digitalWrite(5,HIGH);
delay(50);
digitalWrite(5,LOW);
delay(10);
}
}
とりあえず適当です。else ifにしてないのは後から変更を加えるつもりだからです。このプログラムは、もし同時にセンサが反応しても動作できません。それはまた後日変更します。
テスト
とりあえず動くか試しました。ソレノイドの電圧は24V。
お判りでしょうか。ボールを跳ね返す板が折れました。
仕方ないので、支える棒のみネジにして、板だけ次のように加工しました。
結果は成功です。写真では当然わからないですが、しっかり跳ねてます。
この記事の最後に動画へのリンクを張っておきます。
4つ作って遊んでみた。
4つ作って遊んでみました。よければ見てみてください。
おわりに
今回、せっかくなので挑戦してみましたが、かなり難しいです。さらっと紹介しましたが、いろいろ失敗していますし、だいたい2週間かかっています(作ったのは夏休み)。やることはオススメしません。次回は、アウトブロックを作っていきたいです。できるかわかりませんが。
https://youtu.be/bERlESo885E