回胴式遊技機技術研究 J-Slot Amusement Specification

アミューズメント仕様パチスロの日々

Webブラウザでパチスロ遠隔操作(1)

2022-09-22 10:24:37 | 日記


壮大な課題です
ラズベリーパイに接続したカメラで撮影した動画を出先のPCやスマホのWebブラウザに映し出す。
さらに、同じWebブラウザにある操作ボタンでパチスロを操作する。

パチスロ
アミューズメント仕様に改造されていて、プレイヤーの操作はMAXBET・START・STOP1・STOP2・STOP3を押すだけである。
ラズベリーパイのGPIO経由でPCやスマホからパチスロを操作する方法はすでに確認した。関連ブログWebIOPiでGPIOをマニュアル操作(2)パチスロを動かすを参照。MAXBET・START・STOP1・STOP2・STOP3の各スイッチは筐体内で30Pコネクターでつながれ、メインボードに入力信号が送られる。

パチスロを作動させながらMAXBET・START・STOP1・STOP2・STOP3の各スイッチが操作されたときの信号の電圧変化ををテスターで測定すると、いずれもアクティブローであることがわかる。テスター測定方法の詳細
ためしに、上図①②③④⑤の信号線の配線の被覆を剥いてGNDとショートさせてみよう。
①がGND⇒3点入る
②がGND⇒リールが回る
がGND⇒リール1が止まる
がGND⇒リール2が止まる  
がGND⇒リール3が止まる    
ラズベリーパイのGPIO40Pのうち、GPIO2、GPIO3、GPIO4、GPIO5、GPIO6を出力に、各信号をアクティブローに設定して配線すると、PCやスマホ画面のGPIO2、GPIO3、GPIO4、GPIO5、GPIO6をクリップ(タップ)でパチスロが操作できる。          
ラズベリーパイ
①ラズベリーパイにカメラをつなぎ、Rasberrypiの設定⇒インターフェースタグのカメラを有効にチェックをいれてカメラが使えるようにする
②動画ストリーミングアプリlibjpeg9-devをダウンロード
 pi@raspberry:~$ sudoapt-getinstalllibjpeg9-devcmake
途中で続行しますか?[Y/n] はyと入力
pi@raspberry:~$ sudogitclonehttps://github.com/jacksonliam/mjpg-streamer.gitmjpg-streamer 
pi@raspberry:~$  cdmjpg-streamer/mjpg-streamer-experiment
⑥sudomake
⑦cd
⑧動画ストリーミングアプリを起動
mjpg-streamerのオプションコマンド
入力オプション

出力オプション
mjpg-streamer起動コマンド
pi@raspberry:~$ sudoLD_LIBRARY_PATH=/opt/mjpg-streamer//opt/mjpg-streamer/mjpg_streamer-i"input_raspicam.so-fps20-q50-x640-y480-o"output_http.so-p8010-w/opt/mjpg-streamer/www
ラズベリーパイと同じWifi 環境にあるPCやスマホからhttp:// IPアドレス:8010にアクセスして、mjpg-streamerのスタート画面からStreamをクリックするとカメラ動画が映しだされます。




ラズベリーパイと同じWifi環境にあるPCでストリーミング動画を見ることができます。パチスロは今、オートプレイの状態です。リールの回転で静止画ではないことがおわかりいただけますか?
次に、ラズベリーパイと同じWifi環境にあるスマートフォンでストリーミング動画を見ることができます。パチスロは今、オートプレイの状態です。リールの回転で静止画ではないことがおわかりいただけますか?
ご不明の点はご遠慮なくお尋ね下さい。存じ上げていることは丁寧にご案内させていただきます。
TEL 090-3194-4902 
 
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

WebIOPiでGPIOをマニュアル操作(3)

2022-09-20 14:56:17 | 日記

[1]HTMLとWebIOPiマクロ関数
●WebブラウザでGPIOサーバーを呼び出す
●HTMLファイルのページ表示
●表示された画面でボタンをクリック
●HTMLファイルでWebIOPiのマクロ関数が呼び出されて実行
    WebIOPiのマクロ関数はJavascript
              WebIOPiのマクロ関数WebIOPiライブラリでGPIOを制御
①HTMLファイルの作成
WebIOPiが備える関数ライブラリ(Javascript)

■WebIOPiが持つJavascriptで記述された関数ライブラリを呼び出しながら記述する
■GPIOを直接制御するボタンを生成する関数
  create GPIOButton()
■GPIOの入出力モドを設定する関数
  setFunction
■記述
3個のボタンで赤、緑、青のLEDを点灯./消灯するHTMLファイルのソースコード(webiopi1.html)
ページタイトルに続いてWebIOPiのJavascriptを使うことを宣言
最初にWebIOPiのインスタンス(IOPI)を生成し。以降はこのIOPIを使う
続いてIOPI.ready関数の中で3個のボタンを出力モードに設定し、さらに特定のGPIOピンに割り付け表示名称を指定
スタイルシートとの連携をとるための関数$を実行
次にスタイルシートでボタンのサイズと表示位置、名称の文字サイズを指定
最後が実際の表示ページの制御で、表題の設定と3個のボタン表示を設定

■こうして作成したHTMLファイルはラズベリーパイの /home/pi/workにwebiopi.htmlで保存
■ラズベリーパイがWebブラウザからポート番号8030で呼ばれたらHTMLファイルを読みだしてWebブラウザに送るように設定する
pi@raspberry:~$ sudo nano /etc/webiopi/config
①ページのポート番号を8030に変更
②HTMLファイルのあるディレクトリを指定
③HTMLファイル名を指定
[Ctrl] +[o] でファイルを上書き
[Ctrl] +[x] でnanoエディターを終了
pi@raspberry:~$ sudo systemctl start webiopi

[2]Pythonマクロ関数でHTMLファイルを呼び出す
●WebブラウザでGPIOサーバーを呼び出す
●HTMLファイルのページ表示

●表示された画面でボタンをクリック
●HTMLファイルでWebIOPiのマクロ関数が呼び出される
●Pythonスクリプト内のマクロ関数が呼び出される
    Python用のGPIOライブラリがラズベリーパイのGPIOを制御
HTMLファイル
Pythonのマクロ関数を呼び出すPythonスクリプト(webiopi2.py)の作成
pi@raspberry:~$ sudo nano /etc/webiopi/config
WebIOPiのコンフィギュレーションに手を加える
①ページのポート番号を8030に変更
②HTMLファイルのあるディレクトリを指定
③HTMLファイル名を指定
[Ctrl] +[o] でファイルを上書き
[Ctrl] +[x] でnanoエディターを終了


ご不明の点はご遠慮なくお尋ね下さい。存じ上げていることは丁寧にご案内させていただきます。
TEL 090-3194-4902 
 
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

WebIOPiでGPIOをマニュアル操作(2)パチスロを動かす

2022-09-20 13:06:47 | 日記
ラズベリーパイのGPIO・40pから5pを選びパチスロの信号線に割り込み配線する。
パチスロ側      ラズベリーパイ側
MAXBET--------GPIO2       3番ピン
START----------GPIO3  5番ピン
STOP1----------GPIO4  7番ピン
STOP2----------GPIO5  29番ピン
STOP3----------GPIO6  31番ピン
GNDもつないで共通にする


ご不明の点はご遠慮なくお尋ね下さい。存じ上げていることは丁寧にご案内させていただきます。
TEL 090-3194-4902 
 
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

WebIOPiでGPIOをマニュアル操作(1)

2022-09-19 09:23:53 | 日記
WEBIOPiのインストール/起動/停止
●ダウンロード
●圧縮ファイル解凍
pi@raspberry:~$ sudo tar xvzf WebIOPi-0.7.1.tar.gz
●ラズベリーパイモデル3に対応させるパッチを適用  
まずディレクトリーの移動
cd  WebIOPi-0.7.1.

pi@raspberry:~$ patch -p -i webiopi -pi2bplus.patch
●セットアップ・スクリプト実行
pi@raspberry:~$ sudo ./setup.sh
 Do you want to access WebIOPi over Internet?[y/n] に[n]と回答
● OSをリブート
これでWebIOPiの動作準備OK
●WebIOPiの開始/停止
▶デバッグモードで開始/停止
pi@raspberry:~$ sudo webiopi -d -c /etc/webiopi/config
HTMLの不具合の場合ターミナルがエラーメッセージを表示するので間違い
を発見しやすい。
停止は[Ctrl] + [c]
▶通常起動/停止
sudo /etc/init.d/webiopi start
sudo /etc/init.d/webiopi stop
WebブラウザでGPIOをリモート操作
ラズベリーパイでWebサイトを起動⇒アドレスバーに http://IPあどれす:8000を入力⇒ENTER
ユーザー名:webiopi  パスワード:raspberry
メインメニューのGPIO Header をクリック⇒GPIOヘッダーが開く
[IN] 表示をクリックすると[OUT]に変わる。再クリックすると[IN]に戻る
[数字]ボタンをクリックするとラズベリーパイの対応入出力端子の機能が変化し、ボタンの色が変わって表示される。Hレベル⇒オレンジ Lレベル⇒クロ

ご不明の点はご遠慮なくお尋ね下さい。存じ上げていることは丁寧にご案内させていただきます。
TEL 090-3194-4902 
 
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

ラズベリーパイ入出力制御GPIO(2)

2022-09-18 20:37:44 | 日記
C言語によるラズベリーパイ入出力GPIO制御
STEP1 テキストエディターでプログラムを記述

/home/pi/Testに保存(test1.c


STEP2 gccコンパイラでプログラムを実行形式に変換

STEP3 プログラムを実行
(1)Wiring Piのインストール&設定
Wiring Piとは、ラズパイでGPIOを制御するのに必要なC言語用のライブラリィ。C言語でGPIOを使うのにこのライブラリが必要なので最初にインストールする。WiringPiをインストールするとgpioというコマンドもインストールされる。このコマンドを使うと、シェル上でGPIOを制御することができる。

 Wiring Pi のソースコードを Git で入手するための準備 
$ sudo apt-get install libi2c-dev 
$ sudo apt-get install git-core
ユーザーのホームディレクトリに移動し、ソースコードを入手 
$ cd ~ 
Wiring Pi のソースコードが wiringPiディレクトリとしてクローンされるので、ディレクトリ内に移動してビルドする。
$ cd WiringPi 
$ ./build
gpio -vとコマンド入力するとversion: 2.70が表示され、正常インストールが確認できました。

gpio readall
(2)C言語でWiringPiを操作
●インクルード宣言とライブラリ追加
プログラムの先頭でヘッダーファイルをインクルード
   #include  <wiringPi.h>
コンパイルするとWiringPiのライブラりが付加される
          sudo gcc filename.c -o objname -lwiringPi
実行コマンド
          sudo ./objname
●入出力端子の機能設定
WiringPi設定用関数
①pinMode
指定したピンの動作モード設定
書式
void  pinMode(int pin, int mode);
mode: 次のいずれか
  INPUT
  OUTPUT
  PWM_OUTPUT(pin1(GPIO18)だけ)
  GPIO_CLOCK(pin7GPIO4)だけ)
記述例
  pinMode(2,OUTPUT):
②pullupDnControl
指定したピンのプルアップとプルダウンの設定
書式
void pillUpDncontrol (int pin, int pud):
pud:次のいずれか
  PUD_OFF
       PUD_DOWN, PUD_UP
記述例
  pullUpDnControl(3, PUD_UP)
③digitalWrite
GPIOピンに出力
書式
void digitalWrite(int pin, int value);
value :次のいずれか
  HIGH, LOW, 1,0
記述例
  digitalWrite(2, HIGH);
④pwmWrite
pin1(GPIO18)のPWM出力のデューティ設定
書式
void pwmWrite(int pin, int value);
value: 0~1024の範囲
⑤digitalRead
GPIOピンから入力する
書式
int digitalRead(int pin);
戻り値:HIGH, LOW ,1, 0のいずれか
記述例
if(digitalRead(3))
(3)C言語xWiringPiでI/O!3色LEDの点滅
GPIO2,GPIO3,GPIO4の接続したLEDを順番に点滅させるプログラム
GPIO17端子の入力レベル(HまたはL)によって一定間隔を0.5秒と1秒に切り替えて点滅
最初にwiringPiのヘッダーファイルをインクルード
BCMのピン番号ですべてを制御
コマンドでコンパイル  
      sudo gcc test2.c -o test2 -lwiringPi
実行
   sudo ./test2 


ご不明の点はご遠慮なくお尋ね下さい。存じ上げていることは丁寧にご案内させていただきます。
TEL 090-3194-4902 
 
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

にほんブログ村ブログパーツ

PVアクセスランキング にほんブログ村

にほんブログ村ブログパーツ

PVアクセスランキング にほんブログ村