電子工作初心者がarduinoというユニットを使ってパチスロのコイン不要機を作ってみた

投稿者: | 2012年12月2日

最近増えてきましたね。自宅にパチスロ機を置く人が。

自分もあったりします。

o0301050012312540691

数年前に買った4号機の「押忍!番長」です。
コインが数十枚ついていて、パチ屋と同じようにコインを

入れて遊んで大当たりしたらジャラジャラとでてきます。

が・・・

ジャラジャラの音がとても大きいw

そしてコインの入ってるホッパー(貯蔵してる箱)がすぐなくなって補充しなきゃいけない

ってことで、センサーをごまかしてコインを使わず遊べるのがコイン不要機です。

ヤフオクみると2000?3000円で打ってますが、せっかくarduionoがあるので

これでやってみます。

ちなみにコイン投入側(セレクター)と払い出し側(ホッパー)と2種類あるのですが、

セレクターはここを参考にして作ることができたのですが

ホッパー側ができていませんでした。

前置きが長すぎたな。。。もっとサッサといこう。

o0406050012312540692

 

そんなわけで、本体開けて接続。

o0500030112312556938

 

ホッパーを分解した状態で配線

センサーはLG-JT20が2つついてる。

o0301050012312563403

左が常時塞がれてる状態で、コインが通ると一瞬右がふさがる

 

o0626031312312534345

2番と3番をショートさせればいいんだねきっと。

o0500030112312573799

 

まさかの手書きw

センサーは片方は常時HIGHである必要がある。

アルド側で常時HIGHにすると、電源落としたりするとホッパーエラーがでるため、

トランジスタでNOT回路入れてみた。

やってることは簡単。フォトカプラPC817使って、

o0400021312312607356

 

モーターの信号を受けたらアルドちゃんの入力ピンがHIGHになる。

アルドの出力ピンがHIGHになったらフォトカプラ経由でセンサーをON,OFFする

ピンは3本。モーターINPUT1本とセンサーOUTPUT2本

スケッチはこんな感じ。loop中の抜粋ですが。。。

モーターがONになったら1ms?9msまでセンサーの信号を反転させます。

10msでタイマーをリセットさせてまた0msから。

この10msは適当です。動いてるからいいと思う。

もうちょっとカッコいいスケッチの書き方ないのかなぁ。

割り込み使えばいいのかな?

追記:

当初はこんな動きを想定してました。

センサー1 ON →OFF→OFF→OFF→ON

センサー2 OFF→OFF→ON→OFF→ON

そのため、センサー1,2を別々に制御してるんだけど・・・

今みたら、このスケッチで動くんだったら1つでいいような気がしてきたw

?void swaitreset(){

? previous_millis = millis();

}

unsigned long ?swaittime(){

? return( ?millis() -previous_millis ?);

}

//ホッパー処理

////////////////////////////////////////////////////////////

//senser2Pinにnot回路がいれてあるため

//両方同じレベルになってしまう・・・

if( digitalRead( moterPin )==HIGH){

? hopperTimert=swaittime()/10;

// ?Serial.println(t);

? if( hopperTimert<1 ){

? ? digitalWrite( senser1Pin,LOW );

? ? digitalWrite( senser2Pin,LOW ?);

? }

 

 

? if( 1<hopperTimert && hopperTimert<10 ){

? ? digitalWrite( senser1Pin,HIGH );

? ? digitalWrite( senser2Pin,HIGH );

? }

 

 

? if( 10<hopperTimert ?){

? ? digitalWrite( senser1Pin,LOW );

? ? digitalWrite( senser2Pin,LOW );

? ? swaitreset();

? }

??

}else{

? // モーター停止状態

? swaitreset();

? digitalWrite( senser1Pin,LOW );

? digitalWrite( senser2Pin,LOW );

}

 

 

とりあえず快適に動いてます。

ここまでできれば、、、次はコレだよねぇ。。
o0500030112312607355

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください