【自作ラッシュ枠】出来たあああああ!!!

※手間がかかるので画像は全て使いまわしです※

長く険しい戦いだった…
製作から1年も経過してしまった訳ですが、
ついに自作ギンガーンが全国のお店(1店舗)で稼働開始です

以下台本

plr70
光る!(ただし本稼働ではLEDは1個しか光らない模様)
(接続がダメなのか、指示したとおりに光らず目がやられそうになるので2つは消灯させてあります)

plr67
回る!(最近ちょっと壊れてるような気がしてならないんだけど)
(そう思いつつ起動したら輪ゴムが1つはち切れました)
(残り2つありますが、無くなったら補填するすべが存在しないので結構ヤバイ)

plr72
当たる!(10ベット固定の予定)
(なお、音声はありませんので動画で後付けされると思います)

ガバガバ設計と行き当たりばったりの接着剤により組み上げられた球体は
新たなゲーム性を演出する!(新たなって何だろう)

Welcome to ZisakuGINGAAAN!!!

 

 

ルールは単純、黒が入賞するまで継続するプラネットラッシュで大量スコア獲得を目指せ!
20連荘突破で配当が2倍になるぞ!

WHITE : 30pts~150pts or 1000pts
RED : 10pts~150pts
YELLOW : 10pts
BLACK : 30pts

残念ながら3段目が存在しないため、配当の決定にはテーブル方式を採用
同じ色が連続して入賞すると高テーブルへの昇格抽選が行われるぞ!
最高テーブルでは1000pts連打も夢ではない!?(ちなみに50%で100倍です)

数多くの誤認識やトラブルを乗り越えることが出来れば最大100連荘までゲームが継続するぞ
(黒に誤認識することは無いです、黒が赤に認識されることはたまに)
夢の10000ptsへたどり着けるか!?

さらにさらに、アレンジルールも搭載!(なお未作成)
通常のルールとは違うシステムで遊ぶこともできるぞ
新たなカラーボールが多彩なゲーム性を演出!
(アイデア募集中です、緑と青ボールならすぐ用意できます)
(緑を次回配当2倍にするボールと言う案はすでに採用済み)

ZisakuGINGAAAN、全国1店舗で稼働開始!

 

 

PV…つくろっか…

ところでテーブル抽選ですが、実際にそうやっています
SP,RED共に1~7の抽選テーブルが存在しており数字が大きいほど強いです
(ゲーム中に見ることは出来ないので、推測する形になります)

基本的にゲーム開始時に上位テーブルってことは無いです(15%程)
昇格抽選はSP,RED,YELLOWが連続するほど当選しやすいです
SP,REDはそれぞれのテーブル上昇チャンス、YELLOWは両方の昇格チャンスがあります

全てを綴ると記事が酷いことになるので主な抽選について書きますが
SPのテーブル7は50%で100倍、漏れたら必ず15倍
テーブル1だと約5倍で100倍は0%です
昇格はSPが3連続すると次回必ずテーブル7になるようになっています
2連続でも1段階は必ず上がるので連続すると結構熱いボール

REDのテーブル7はもちろん15倍固定、テーブル5から10倍ゾーンです
2連続で昇格抽選がありますが弱め、3連以降からチャンス
そう簡単にはテーブル7には辿り着きません

YELLOWは3連続からチャンス、両方のテーブルにかかわるので昇格率は低め
特に低テーブルで仕事しやすくなっているので底上げには重要って感じです

 

まあ連荘しなきゃ話にならないシステムです…
一応、100倍15倍がバンバンでるシステムにはしていないとだけ言っておきます
平均スコアはいくつだろうね…500ptsとかかな

【非メダルゲーム】ROSでwiringPiを使いたい

※メダルゲーム関係ありません!

 

 

情報発信部第3回戦ですが、今回はROSでwiringPiを使いたかったけど…な回です
こうして記事を立てるのは情報ソースがあまりにも無かった件に関してです
つまりまあ、これも情報が少なかったわけですが

定例文句ですが専門知識も何もない人が強引に解決させた方法を綴っているだけです
同様に試して損害が生じても責任は一切負いませんのであしからず
結論から書けばSUID(Set User ID)を使用しました、以下過程

 

=============================================================

ROSを使ってRaspberryPi 2とPCを通信させたうえで、ラズパイのGPIOピンから何かしら情報を得たい、出力したいと思っていたころに知ったwiringPi
Arduinoと同じような感覚でGPIOピンを操作できるようになる非常に優れたライブラリです
便利なものがあるなら使わせていただこうと思ったまでではありますが以下の問題が発生

あ、環境はどちらもUbuntu14.04 (LTS)です

 

やろうとしたこと
ラズパイのsubscriberノード内でwiringPiを使用してLEDを光らせる(Lチカ)
PCのpublisherノードから何かしらメッセージを発行したらsubscribeして光って欲しかった

問題点
・wiringPiのsetupにルート権限が必要
・ROS環境はルートには無い(ユーザーに作業環境を作っているため)
→ノードをルートから実行できない、ルートから無理矢理subscribeノードを実行しても直ぐにROSの接続が切られてしまう(詳細は分かりません)

 

…こんな感じに見事な背反関係で詰んでいました
海外兄貴も同じような問題を抱えていたとはいえ決定的な解決案が見つからずに苦戦
ほとんどがwiringPiから離れてGPIOを操作していた印象を受けました
wiringPiもユーザー環境でセットアップできる関数は存在するのですが、機能が限られるうえに結局直接GPIOを操作するようなものなのでそれを使うのは却下です

 

解決出来そうだと思った案
・諦めてgpioコマンドを使う
→結局wiringPiの意味がない
・ルート環境にROSを導入する
→公式wikiに逆らえと申すか
・GPIOを弄る部分だけROSから切り離し、パイプでデータのやり取りをする
→ROSらしくない気がする
・要求される権限を事前にクリアしておく
→wiringPi.cで管理者かどうかをifする部分をコメントアウトしても/dev/memにアクセス出来ない言われるしこいつを操作できるように権限を与えることが出来なかった
→そもそもこんな適当に滅茶苦茶にして良いものじゃないと思うの

 

結局
で色々調べた結果linuxコマンドで特殊なアクセス権を設定できることのこと
(参考:http://kazmax.zpp.jp/linux_beginner/setuserid.html)
SUID…これでsubscriberノードにroot権限のSUIDを与えてあげれば良いのかな
と言うことで実行したら無事に立ち上がってくれました、嬉しい

 

ただこんな雑に解決していいものかどうか悩みどころです
それにビルド毎にSUIDを与える必要があります、プログラム内で上手いこと処理出来れば良いのですけど
そういう部分を考えるのが技術者ってものなのですかね