- 2008年式のスコアリングシステムをそのまま置き換えると8万〜12万ドルが必要になるため、ESP32と汎用部品で1組のレーンあたり約200ドルから実現できるOpenLaneLinkを開発した
- センサーイベントと制御コマンドはESPNowのスター・トポロジー・メッシュでやり取りし、無線干渉が激しい環境ではRS485の有線接続を予備手段として使う
- Raspberry PiのレーンコンピュータがESP32ゲートウェイのパケットをRedisイベントに変換し、ステートマシンとWebSocket・Publish/Subscribe構造を経てReact UIとアニメーションにつながる
- リレー、オプトカプラ、IRビーム遮断センサーのような既製部品を使い、故障した装置は約5分、1組のレーンの機器は10分以内に交換できる
- ハードウェア、ファームウェア、ソフトウェア全体をオープンソースとして公開し、ベンダーロックインと機能別の追加費用を減らし、運営者がUIとデータを直接管理できるようにする計画
高価な既存システムを自力で置き換えた理由
- 家族とともに、米国中西部の田舎にある放置された8レーンのボウリング場を10万5千ドルで取得した
- 屋根の雨漏りと度重なる電気サージがあり、70年前のボウリング設備も完全には動作していなかった
- 2008年に導入されたスコアリングシステムは、当時6桁ドルの費用がかかった
- 既存システムは、ボールの速度と軌道の計算、カメラベースのピン検出、ファウル判定、アニメーション、ピンセッターとボールリターンの制御を担っている
- 同等レベルのシステムに一括で置き換えるには、機能、ベンダー、機器の年式によって8万〜12万ドルかかり、アップグレードやサービス契約は含まれない
- 機能やカスタマイズごとに別途費用が追加される
- 交換部品だけでも1組のレーンあたり4千ドルが必要になる
- 電子システムが70年前の機械装置で担う中核作業は単一のリレー動作であり、残りの工程は機械的に処理される
- オープンハードウェアとコンピュータビジョン、リアルタイムイベントストリーミング、オープンソースを活用すれば、既存機能を自力で実装できると判断した
OpenLaneLinkの構成と運用方式
- プロトタイプの費用は1組のレーンあたり約200ドルで、高度な構成でも約400ドル程度
-
ESP32ベースの制御レイヤー
- 各ノードはセンサーイベントを送信し、制御コマンドを受け取る
- ESPNowのスター・トポロジー・メッシュのゲートウェイノードは、UART経由でRaspberry Piに接続される
- 受信パケットはRedisへ渡され、必要なコマンドは再びメッシュネットワークへ送信される
- RFノイズが多い環境では、RS485が有線の予備接続として動作する
-
汎用部品とファームウェア
- ハードウェアは、リレー、オプトカプラ、IRビーム遮断センサーに接続された汎用マイクロコントローラで構成され、各装置は役割に応じたファームウェアを実行する
- 実装過程で最も難しい部分はファームウェアとプロトコルの作成
- 予備のESP32を事前にフラッシュしておくことも、その場ですぐ準備することもできるため、修理は簡単
-
Web技術ベースのソフトウェア
- Redis以降のレイヤーには、ステートマシン、ミドルウェア、React、WebSocket、Publish/Subscribeといった一般的なWeb技術を使う
- React開発者が独自のUIとボウリングアニメーションを作れる
- 運営者はすべてのデータを所有し、望む機能やテーマを自分で適用できる
- 修理は約5分、1組のレーンの機器交換は10分以内に可能
- 同様のボウリング場であれば、ゼロからでも1〜2時間以内に稼働できると見ている
- OpenLaneLinkが準備でき次第、ハードウェア、ファームウェア、ソフトウェア全体をオープンソースとして公開する計画
- クローズドなシステム、些細な問題にも必要になるカスタマーサポート、自社機器のホワイトラベル費用に由来するベンダーロックインを避けることが目的
- 安価で自由にカスタマイズできるシステムにより、小規模ボウリング場の運営を支援したい考え
1件のコメント
Hacker News のコメント
完全機械式の自動ミニボウリングレーンを買ったが、スコア表示装置の1970年代の Intel D8749H(MCS-48)を除けば、CPU なしで動作する
電源はリレー1つで入り、ピンの状態とボール受信信号を受け取ってスコア計算を開始できる。ファームウェアを抽出したあと、表示用 PCB を Arduino ベースの自作 PCB に置き換え、現代的な公開プロトコルと ScoreMore に対応させた。写真と詳しい情報は https://www.bowltech.com/forum/small-scale-bowling/small-sca... にあり、Discord では @vik8 で連絡可能
Bowltech にも投稿するつもりだが、OpenLaneLink を公開するには、まだ初心者特有の気後れが大きい。あそこの人たちはこの分野を本当に隅々まで知っている
父が中西部各地でボウリング機械を修理していたので、子どもの頃は機械の裏側で過ごした。リーグ戦の日に当番整備を担当するときは一緒について行ったものだった
地元の16レーンのボウリング場は古い AMF の機械を使っていて、各機械のシャーシはすべてリレー論理回路で構成されていた。リレーが壊れると、ピンやボールが変なところへ行ったり、利用者がスイープ装置にボールを転がし込んだりと、あらゆることが起きた。ピンセッターはまさにルーブ・ゴールドバーグ装置で、おそらく自分がエンジニアになることにも影響したと思う
1980年代にも小さな町のボウリング場を買う機会が何度かあったが、採算はよくなかった。営業利益の大半は酒類販売から出ており、それはまったく別の事業だ。最近ボウリング関連のコンテンツをよく見かけるが、本当の復活につながるといい
古い各種システムを低コストの組み込み技術で改造する機会は多い、という考えを改めて裏付けてくれる
2019年ごろ、大型旋盤や平削り盤のような古い工作機械を現代的なモーション制御装置に改造していたエンジニアに会った。新しい制御装置に合わせるには軸モーターまで手を入れる高額な作業が必要だったが、既存のアナログ位置信号を現代的な制御器が読めるように変換すれば、ほぼプラグアンドプレイにできた
部品費50ドル未満、開発50時間以内で最初の変換器を作った。似た機会をさらに探したが、大半は一回限りで、類似製品をすでに作っている状況でなければ時間に見合う価値は低かった
バージョン管理は一切なく、実装方法も驚くようなものだったが、安全性と処理量は大きく改善されていて印象的だった
LED と DMX 照明制御を追加して、ボールがレーンを下っていくときや返球装置を上ってくるときに LED ストリップが追従するようにしたい。DMX コントローラーでレーザーショーも動かす予定
長期的には、顧客がレーン前で非接触決済をしてすぐにゲームを始められる無人ボウリング場を作りたい。試せることが本当に多くてわくわくする
あとは1990年代版の LightWave を手に入れて、奇妙なストライクアニメーションをもっと作るだけだ
古いレーンでボウリングをしているが、スコア以外の統計はボール速度だけで、それすら半分くらいのレーンでしかまともに動かない。ボウリング場が自作装置を設置してくれるとは思えないが、制作過程には大いに興味がある
ブログや写真、実装情報を公開するなら、もっと読んでみたい。屋根の修理から集客まで、新事業がうまくいくことを願っている
他の人に送れる URL が必要だ。同じ問題のためにボウリング場の買収と近代化をためらっている元プロ選手の知人に見せたい
社会にはサードプレイスが切実に必要で、ボウリング場はそれに非常によく合っている
Boston 地域のキャンドルピンボウリング場 Needham Bowlaway でも似たような作業をしていた。New England の外ではスコア計算法を知る人が少ないため、オーナーが自動スコアシステムを作り、かなりうまく動いている
Java で画面上の特定ピクセルが白ければピンがあり、そうでなければないと判定する基本的な方式に見える。行くたびにビデオゲームも開発していた。ボウリング場運営者とソフトウェアエンジニアの共通部分は、思ったより大きいのかもしれない
最近の Texas Monthly のナインピンボウリング場の記事 https://www.texasmonthly.com/being-texan/ninepin-bowling-end... を思い出した。こうした近代化は新規顧客の獲得に役立つかもしれない
Texas 中部で育った頃、ボウリングは大きな家族イベントだった。父は地域リーグやプロアマ大会に参加し、プロ転向も考えたが転職で断念し、子どもたちもジュニアリーグで活動していた。ビデオゲームがなかった時代には、ボウリング場でピンボールやビリヤードを楽しみ、食べ物や飲み物も売っていたので家族が一日中いられた
ボウリングは覚えやすいが、熟達するには節制が必要な技術スポーツだ
高校時代、Brunswick A2 を扱うボウリング場の整備士として働き、交換機器が途方もなく高いことを知った
誰かがスコアシステム制御用キーボードにコーヒーをこぼしたところ、交換費用は約400ドルだった。その値段で届いた特別な専用キーボードというのは、キーボードケーブルを電話プラグに変えただけの製品だった