---
# System prepended metadata

title: Untitled

---

## 中間発表会
### ボート作成

toioマットである読み込みシートをエリアごとで切断し分解する。

![全体画像](https://i.imgur.com/yTy2YHX.jpg)
図1.全体画像

![単体画像](https://i.imgur.com/LjymKv5.jpg)
図2.単体画像（縦：41mm,横:44mm）


![全体予想図](https://i.imgur.com/kqTiekF.png)


|          | 縦（mm） | 横（mm） |
| -------- | -------- | -------- |
| 識別用紙 | 41      | 44      |
| 内壁(行) | 15      | 44      |
| 内壁(列) | 41      | 15      |
| 外壁(行) | 20      | 44      |
| 外壁(列) | 41      | 20      |
| ---      | ---      | ---      |
| 全体     | 305     | 320     |

### 問題


問題の目的は、主に再帰を用いると点数が最小になるよう考えてある。

問1
![](https://i.imgur.com/FrrJwrU.jpg)

問2
![](https://i.imgur.com/REveE7B.jpg)

問3
![](https://i.imgur.com/1deaFI0.jpg)

問4
![](https://i.imgur.com/UfThEIi.jpg)

問5
![](https://i.imgur.com/YsLvrxa.jpg)

問6
![](https://i.imgur.com/Jk5AHwh.jpg)

問7
![](https://i.imgur.com/ZKnNmeg.jpg)


### 点数の決定

| 内容 | 点数 |
| -------- | -------- |
| 1マス進む | 10      |
| 2マス進む | 15      |
| 壁にぶつかるまで進む | 20      |
| 右90°回転 | 10      |
| 左90°回転 | 10      |
| 180°回転 | 15      |
| 再帰 | -2      |

合計値が同値の場合、進んだマスが少ない方が良いとする。


前提として目的は、楽しみながらボードゲームを行いながら論理的なコーディングをしてもらうことにある。
今回は、使用するブロック毎にポイントを設け、その合計値を少なくするという尺度を採用している。そのため、この点数設定で行うことが目的に沿っているのかが不明である。予想としては、末尾再帰を用いてプログラミングを行うようになるのではないか。



### toioの動き

toioマットの大きさ　縦：約298mm　横:約420㎜
座標　ｘ：304　ｙ：216
座標位置に対して、y座標１の値で、298÷216＝1.37962962mm
　　　　　　　　　x座標1の値で、420÷304=1.3815789474mm
（マットの長さが正確に記載されていなかったので、個人で計測したmmである。そのため、ばらつきが出たと考えられる）
約1.38㎜であることが分かる。




### 衝突検出
toioの衝突検出について調べた。
toio自体にカメラが付いていないため、衝突した瞬間の衝撃によって前方の障害物を検出し、動作を止める。

toio衝突検出のしきい値設定
https://toio.github.io/toio-spec/docs/ble_configuration#%E8%A1%9D%E7%AA%81%E6%A4%9C%E5%87%BA%E3%81%AE%E3%81%97%E3%81%8D%E3%81%84%E5%80%A4%E8%A8%AD%E5%AE%9A

https://zenn.dev/chibi929/articles/161f08b885cb6d

toioの公式サイトより衝突検出を衝撃の強さによって変更できることができることがわかった。(初期設定は7であり、1~10段階まである)
実際にこのしきい値を変更することで、ちょっとした衝撃でも停まるようになったり、逆に強い衝撃が加わっても動かし続けることが可能になった。
今回の迷路ではダンボールにぶつかったときの衝撃で停まるように設定したいので、そこまで大きな値ではなくてよく、さまざまな値を試した結果、3が丁度良かった。

### 衝突検出が2回目以降検出しない問題
Enterを押しtoioを直進させる。障害物にぶつかり停まる。
１回目は停まるが２回目以降全く停まらなくなる。
考えられる原因
isCollisionDetectedがfalseをコールバックしない。(衝突状態がtrueからfalseにならない)
　　↪衝突が発生したときにisCollisionDetectedがtrueをコールバックするため。falseに戻らないと次の衝突検出を行ってくれない。

falseに戻す方法がわからない。

