Skip to content

Instantly share code, notes, and snippets.

@mizucoffee
Last active October 30, 2024 04:11
Show Gist options
  • Select an option

  • Save mizucoffee/2f6263656d174fb2284a9e49c44bfabc to your computer and use it in GitHub Desktop.

Select an option

Save mizucoffee/2f6263656d174fb2284a9e49c44bfabc to your computer and use it in GitHub Desktop.
スライダー規格 v0.3 by Mizucoffee

スライダー資料

公式スライダー

パーツ 内容
タッチパネル 縦2分割x横16分割=32タッチ判定
ライティング メインパネル16個+ボーダーパネル(区切り)15個=31個
ロゴ パネル分離
GROUND SLIDERロゴ パネル分離
縦 横
縦9cm パネル横は26mm/セパレータは3.5mm

作る時の参考資料というか先人の知恵的な

タッチセンサー

タイプ 特徴 作者(敬称略)
赤外線遮断式 - 手袋対応
- 赤外線を遮断する仕組みな為何かしら上にはみ出す必要有り
- 直角プリズム使ったら少しはスマートになりそう
- タッチ感がかなり本家
- タッチパネルが上下分割出来ないのでガバが出る
@kawakawaritsuki
静電容量式 - 手袋非対応
- スライダー自体がタッチパネルになるため平らに出来スマート
- 上からシール
- シートを貼る為若干の段差が出来てしまう
@seg_514 他
SAW式 - 本家スライダーはSAW
- クオリティを目指すならばこれかも
- ただし個人で入手する方法がほぼ無い
SEGA(本家)
タブレット/タッチ液晶式 - コストと手間がほぼ掛からない(タブレット/タッチ液晶だけ)
- 操作感が端末により違う
- バンバン叩いても大丈夫?
- 公開しやすい
複数名
赤外線遮断式+静電容量式 - 手袋でも素手でも反応
- 素手なら上下判定も出来るので本家に寄せられる
@kawakawaritsuki

個人的にアクリルパネルに関して思ったこと

Gen1はアクリル板に溝を掘って色を分けましたが,おそらくキチンと切断したほうがキレイに色が別れると思います. パネル同士の接触面をある程度やすっておくといい感じになると思います.

通信周り

名前 内容
通信方式 シリアル通信
通信速度 2000000bps(=2Mbps)

方式

タッチの判定

タッチの状態を左から順に0を非タッチ状態1をタッチ状態として16ビットの文字列を作る これにAir状態を示した2ビットの文字列を追加します これを2進数として36進数に変換すると最大で4バイトの英数になる

AIR状態 Rawデータ
Air判定無し 00
Air判定(開始時)(Action/判定継続で移動(振った)時もこれ) 01
Airキープ(微動だにしてない時) 10
状態 Rawデータ 送信データ
左から4つタッチ/Air無し 111100000000000000 59MO
中央から4つタッチ/AirAction 000000111100000001 2YP
左から2つづつ交互/Airキープ  110011001100110010 4HTE

この1-4桁の文字列が母艦に送るデータになります.

シミュレータ側で解析する時は16進数を2進数の文字列に戻して左0埋めをすれば0と1で表現できます.

ライティング情報

タッチ判定と同じような感じで表現しますが,こちらは英数36進数を色に割り当てます(ソースが無いので内容は後日追記予定)     基本的にChunithmで使われてる色が指定されています.(未指定部は各自追加しても大丈夫です)       記憶の範囲だと黄,ピンク,薄いピンク,赤,青,緑辺りだったと思います.    

こちらは16桁のデータをそのままシリアルで送信します.     この際,最後に;を入れる事を忘れないでください.
マイコンが;を認識してライティングをする設計です.     最終的にデータは

1111000011110000;

という形式になります.

このライティング周りの処理がかなりのバイト数を使う事になるので9600bps等では直ぐにラグが発生してしまうため2Mbpsの帯域を用意しています. 尚,通信速度は2Mbpsとしていますがこちらもプログラム側で選択制にすれば任意の速度での通信が可能です.

@somewhatlurker
Copy link

Pretty much this ↑
It uses the CSD capacitive sensing peripheral on CY8C22345. And capacitive proximity sensing is a well known phenomenon (it's just that most touch sensing uses deliberately try to minimise false triggering caused by it).

XY co-ordinates are not needed, it just has 32 discrete sensors.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment