編集履歴一覧に戻る
team_shinkaiLabのアイコン画像

team_shinkaiLab が 2021年02月25日20時21分49秒 に編集

初版

タイトルの変更

+

1人じゃんけんするための左手乗っ取り型ゲーム機

タグの変更

+

ソレノイド

+

曲げセンサ

+

STM32

+

無線データ通信モジュール

+

秋葉原2021

メイン画像の変更

メイン画像が設定されました

本文の変更

+

# はじめに 「コロナウイルスで肩身の狭い思いをしているみんなを助けたい」 そんな思いでできたこの装置。チームシンカイラボがご提案する新たな暇つぶしの形です。 子供なら5分、大人なら30秒は暇を潰せます。 # 概要 装置は下記3点から構成されます。 - 左手動作用のじゃんけんゲーム機本体 - ゲーム機本体動作用の回路 - 右手の状態判別用のグローブ ![装置の構成](https://camo.elchika.com/6bb67ef97ca4366f2e014866b2e6f3cce35a34b5/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f36366164333262622d303162652d343132322d386635612d6435663538346336393232382f39336234323632642d353431332d343139342d396638342d616465633262616334373532/) ## 一連の流れ 左手をゲーム機本体の上に乗せ、じゃんけんをスタート。 プレイヤーの意思による右手と、ゲーム機本体の動作による左手で対決します。 回路の指令とグローブの情報から左手と右手の勝敗を判定し、決着がつくまでじゃんけんを繰り返します。 @[youtube](https://youtu.be/Pa0nmVnea9I) # じゃんけんゲーム機本体 ## ハードウェア ![ソレノイドの動き](https://camo.elchika.com/4b31e0ab0030a1bfd5abd5074d34b26a09fdaaad/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f36366164333262622d303162652d343132322d386635612d6435663538346336393232382f32643064356266622d366661662d343133622d616162352d303162383234313963626134/) 3つのソレノイドそれぞれが直動運動することで、上に乗せている指を曲げている状態から伸ばします。 先端がころで回転する構造のため、ソレノイドに生じる負荷を低減しています。 ### 部品 - ロングストロークソレノイド CH12840062(タカハ機構)x3 - ねじ - 3Dプリンタパーツ ### 組立 1. 土台のパーツとソレノイドをねじ留めします。 ![組立1](https://camo.elchika.com/7b92d8cae6c29ca48e25ab09da9ff836ee1645b4/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f36366164333262622d303162652d343132322d386635612d6435663538346336393232382f63363134626664382d396434612d343430342d613033342d383334383936373434373061/) 1. ころのパーツにねじを一本通し、ころが回転する程度にナイロンナットで留めます。 ![組立2](https://camo.elchika.com/58ed6481a17b99663324b6bdac2e4c85e5a3f0bc/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f36366164333262622d303162652d343132322d386635612d6435663538346336393232382f64656630633937322d643631322d343465372d383963382d393765323935373637366635/) 1. 2のアセンブリをソレノイドの先端につけます。この時、ねじ切るように押しながら回して取り付けます。 ![組立3](https://camo.elchika.com/57e7625076447382674990189807719c26d9a324/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f36366164333262622d303162652d343132322d386635612d6435663538346336393232382f38653565313861362d366637632d343032332d616135372d323362396132623635303437/) ## 回路 ## 部品 1. 回路部品 | 部品名 | 個数 | 入手先 | |:-|-|:-| | マイコン(STM32 Nucleo Board STM32F401) | 1 |[ 秋月電子](https://akizukidenshi.com/catalog/g/gM-07723/)| | 3Pトグルスイッチ(2MS1-T1-B4-M2-Q-E) | 1 |[秋月電子](https://akizukidenshi.com/catalog/g/gP-02399/)| | タクトスイッチ | 1 | [秋月電子](https://akizukidenshi.com/catalog/g/gP-03647/) | | LED(OSPG5111A-34) | 2 | [秋月電子](https://akizukidenshi.com/catalog/g/gI-06405/) | | ダイオード(SBM1045VSS) | 5 | [秋月電子](https://akizukidenshi.com/catalog/g/gI-15642/) | |XHコネクタ ベース付ポスト トップ型2P (B2B-XH-A) | 1 1| [秋月電子](https://akizukidenshi.com/catalog/g/gC-12247/) | | ピンソケット((メス)2×20(40p)) | 2 |[ 秋月電子](https://akizukidenshi.com/catalog/g/gC-00085/)| | シリコンNch MOSFET(2SK2796L) | 5 |[秋月電子](https://akizukidenshi.com/catalog/g/gI-15642/)| | 片面ガラス・ユニバーサル基板Aタイプ2.54mmピッチ(155×114mm) | 1 | [秋月電子](https://akizukidenshi.com/catalog/g/gP-04708/) | | カーボン抵抗 150Ω | 2 | [秋月電子](https://akizukidenshi.com/catalog/g/gP-15371/) | | カーボン抵抗 470Ω | 5 | [秋月電子](https://akizukidenshi.com/catalog/g/gP-15371/) | | カーボン抵抗 10kΩ | 6 | [秋月電子](https://akizukidenshi.com/catalog/g/gP-15371/) | 2. ケーブル部品 | 部品名 | 個数 | 入手先 | |:-|-|:-| | XHコネクタ ハウジング用コンタクト(SXH-001T-P0.6)| 22 | [秋月電子](https://akizukidenshi.com/catalog/g/gC-12264/) | | XHコネクタ ハウジング 2P (XHP-2)| 11| [秋月電子](https://akizukidenshi.com/catalog/g/gC-12255/) | |耐熱電子ワイヤー(AWG22:赤、黒)| 11| [秋月電子](https://akizukidenshi.com/catalog/g/gP-06755/) | |T型 2P コネクタ(オス、メス)| 1| [アマゾン](https://www.amazon.co.jp/%E3%82%B3%E3%83%8D%E3%82%AF%E3%82%BF-20%E5%80%8B-%E3%82%BB%E3%83%83%E3%83%88-%E3%83%8A%E3%82%A4%E3%83%AD%E3%83%B3-%E3%82%B3%E3%83%8D%E3%82%AF%E3%82%BF%E3%83%BC/dp/B00TNYHWUA) | ## 回路図 ![キャプションを入力できます](https://camo.elchika.com/1ffa8ed20dce4b9e7f9d2e741258929b0fe14444/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f36366164333262622d303162652d343132322d386635612d6435663538346336393232382f32316433336635312d393064612d343635642d613832652d343337323762373035383931/) ## 作成した回路写真 ![キャプションを入力できます](https://camo.elchika.com/6799e95b5af7915c6c38b107b537d8e416d7cc1d/687474703a2f2f73746f726167652e676f6f676c65617069732e636f6d2f656c6368696b612f76312f757365722f36366164333262622d303162652d343132322d386635612d6435663538346336393232382f65656464363766622d336238632d346235662d393434382d623731633261643030666464/) ## プログラム ### プログラム環境 - C++ - Platform IO - STM32duino ### ソースコード https://github.com/team-shinkailab/solecon-2021 ### 処理の流れ プレイ部分の処理の流れは以下の図の通りです。 :::plantuml @startuml start repeat; :開始ボタンを待つ; repeat; if (あいこ?) then (yes) :何もしない; else (no) :プレイヤーのグーを待つ; :「最初はグー」の合図LED点灯; endif :「じゃんけんポン(あいこでしょ)」の合図LED点灯; :CPUの手出力; :プレイヤーの手判別; :結果判定; :結果LED点灯; :出力初期化; repeat while (あいこ?) repeat while() @enduml ::: プレイヤーの手(右手)の状態判別は、タイマ割り込みでIM920から送られてくる値をグローバル変数に保存していて、それを使用します。 # 右手の状態判別用グローブ じゃんけん判定グローブは、じゃんけんゲーム機本体へ中指・薬指の曲げセンサ値を無線で送信します。 ## 部品 | 部品名 | 個数 | 入手先 | |:-|-|:-| | 手袋 | 1 | 百均 | | リストバンド | 1 | 百均 | | 曲げセンサ | 2 | [スイッチサイエンス](https://www.switch-science.com/catalog/6126/) | | IM920s | 1 | [秋月電子](https://akizukidenshi.com/catalog/g/gM-13566/) | | IM920c-ADP | 1 | [秋月電子](https://akizukidenshi.com/catalog/g/gM-10139/) | | IM315-UNB | 1 | [秋月電子](https://akizukidenshi.com/catalog/g/gP-09073/) | | IM920-USB | 1 | [秋月電子](https://akizukidenshi.com/catalog/g/gM-15824/) | | IM315-26P-DIP | 1 | [Amazon](https://www.amazon.co.jp/%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%97%E3%83%A9%E3%83%B3-IM315-26P-DIP-%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%BC%E3%83%97%E3%83%A9%E3%83%B3%E7%84%A1%E7%B7%9A%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E7%94%A8-26%E3%83%94%E3%83%B3%E3%82%B3%E3%83%8D%E3%82%AF%E3%82%BF%EF%BC%88DIP%E3%82%BF%E3%82%A4%E3%83%97%EF%BC%89/dp/B011QM8WX2) | | CR2032 | 1 | 百均 | | CR2032ホルダー | 1 | [秋月電子](https://akizukidenshi.com/catalog/g/gP-00706/) | | スライドスイッチ | 1 | [秋月電子](https://akizukidenshi.com/catalog/g/gP-15371/) | | 抵抗 | 2 | | | XHP-4 | 1 | [秋月電子](https://akizukidenshi.com/catalog/g/gC-12249/) | | S4B-XH-A(LF)(SN) | 1 | [秋月電子](https://akizukidenshi.com/catalog/g/gC-12842/)| ## 組み立て ### グローブの組み立て - 曲げセンサの足に電線をはんだ付けします。 - 電線の先端にXHP-4をはんだ付けします。 - 曲げセンサをグローブの手の甲側の中指・薬指部分に縫い付けます。 - 曲げセンサが横方向にずれないように縫いました。 - 手袋を装着した状態で指を曲げると曲げセンサが浮いてしまう箇所があります。 そういった箇所は瞬間接着剤にて固定しました。 ### 無線部分の組み立て - 受信側のIM920sと[グループ登録](https://www.interplan.co.jp/support/solution/IM315/manual/IM920s_quick_start_guide.pdf) を行います。 - IM315-UNBを IM920sが[ADモード](https://www.interplan.co.jp/support/solution/IM315/manual/IM920s_SUP_manual_Ver.1.16.pdf)で起動できるように配線します。 - IM315-UNBにIM315-26P-DIPをはんだ付けします。 - IM315-UNBの無線機が乗らない方に、CR2032ホルダー、スライドスイッチ、抵抗、S4B-XHをはんだ付けします。 - 分圧回路を利用して曲げセンサの状態を取得します。 - IM920c-ADPは以下のように接続します。 | IM920c-ADPのピン | 接続先 | |:-|:-| | IO08 | Vcc | | IO09 | 曲げセンサ1の出力 | | IO10 | 曲げセンサ2の出力 | | Vcc | CR2032ホルダーの+側 | | GND | CR2032ホルダの-側 | - 組み立てたIM315-UNBをリストバンドに縫い付けます。