2021年7月29日木曜日

2021年7月報

1.7月授業内容
2.7月の課題
3.6月の解答
4.今後の授業スケジュール
5.お知らせ


1. 7月授業内容


1.0 <スタートアップ(全コース)>


 割愛します。


1.1 <プライマリーコース『ウッシーくん』>


 割愛します。

1.2 <ベーシックコース『ウォーカータクシー』>


 人力車ロボットです。推進(すいしん)手段は二足歩行です。

 交互(こうご)に前後する二足で前進するには、前→後ろへ移動する足で地面を蹴(け)り、後ろ→前へ移動する足はなるべく地面と干渉(かんしょう)しないような方策(ほうさく)が必要です。
両足が同じように地面と接触していると、前進する力と後退する力が拮抗(きっこう)し、その場でモジモジするだけです(*1)。

 今回のロボットは、側面の上下2本のクランクが常に同じ角度を向きつつ(同位相)回転することで、脚(あし)のロッド15アナを垂直に保ったまま円運動させています(*2)。

左右の脚では、180°ずらした角度(逆位相)のために高低差が激しく変化しますので、片足ずつ浮かせる方式と思いきや、両足が常に接地し、スムーズに歩きません(*3)。

また、片足を上げた分だけそちらへ大きく傾くので、倒れやすく不安定です(*4)。

 これを片足ずつ浮かせる秘訣(ひけつ)が、左右両輪を付けた“リヤカー”です。
ただ牽引(けんいん)しているだけではなく、リヤカー両輪+片足の3点支持を実現しています。
(二足歩行ロボットとしては、ちょっと反則技のような気もしますが…)

 物体は、3点以上で支えることで、姿勢を安定に保てます
カメラ用の三脚(さんきゃく)や三輪車のほか、自転車やバイクが停止時につく足やスタンドも同じ理由ですね。
リヤカーをつなぐと、胴体(どうたい)を直立させたまま片足ずつ持ち上げ、快調に歩むようになりました。

中には、胴体を寝かせて頭部をタイヤ2輪で支え、滑(すべ)り止めした踵(かかと)を突(つ)きながら進む独自の改造もありましたが、これも3点支持です。

 3点支持によらないアイデアとしては、脚の向きが変化しない平行リンク(*2)の性質をうまく利用し、両脚の位相を揃(そろ)えて回し、寝かせた胴体の底面(背中)を地面に付かせたり、水平に浮かして少しだけ前に運んだりしながら進むアイデア(*5)もあります。

 最後は牽引(けんいん)力を競うべく、つな引きで対戦したり、上り坂に挑戦したりしました。
足裏がプラスチックのままでは滑りやすく、背が高いと後方へ転倒しやすい弱点が如実(にょじつ)に表れ(*6)、これも直立二足歩行ロボットの難しさを物語っています。

滑り止めとして、足にグロメットや輪ゴムを履(は)かせたり、過去には、ロボット教室で学んだラチェット機構をタイヤに装備(そうび)して、急な坂道を上ってみせた“スーパータクシー”も現れました。


*1 二足歩行ロボットには、2019年10月の『ぐるぐる進む君』がありました。
 これも、1日目ではモジモジ君に過ぎませんでしたが、2日目に重心制御を取り入れることで、両足が接地したまま摺(す)り足をすることに成功しました。

*2 平行リンクと呼ぶ機構で、長方形が潰(つぶ)れて平行四辺形になるように、リンク外形を変えられます。スペースワールドのラッキーバスにも使われていました。

*3 わずかに歩く場合は、たまたま前進に有利な重心移動や摩擦(まさつ)が効いており、バランス次第では後退することもあります。

*4 片足では重心の真下(両足の中間点)を支えられないので、引っ込めた方の足も接地するよう傾きます。
 シャフトを横に通すなど、足裏を重心を含むように内側に広げると、片足でも立てるようになります。

*5 先月の『がたごとレスキュー隊』の4脚を全て同じ向きに揃えたロボットに相当。

*6 人間のように足首を曲げられないので、坂道では斜面の角度と同じ分だけ上体が傾きます。

1.3 <ミドルコース『シュート君』>


 当時小学2年生のアイデアコンテスト出品作がベースのキックロボットです。(マジでスゴイ…)

 本作品は、モーター1個の正⇔逆回転で、下記をやってのけます。
A) 腕(うで): 振り   ⇔ 振り(戻し)
B) 膝(ひざ): 伸ばし  ⇔ 曲げ
C) 腿(もも): 蹴り   ⇔ 引っ込め
D) 胴体  : 右ひねり ⇔ 左ひねり(戻し)

この動作を語る上で、4月の『ロボキャッチ』や昨年9月の『ロボアーム』を外せません。
これらの動作は、自動車ロボットのモータータイヤのような固定の連動関係ではなく、バイクの加速(タイヤの回転)とウイリー(前輪の浮き上がり)のような、負荷の軽い順に可動域を使い果たす関係です。

要は、「回しやすい所から回せるだけ回しちゃおう」と、モーターの力が次々と逃げ道を探すのです。

ロボアーム』では、
E) ハンド: 掴み   ⇔ 放し
F) アーム: 持ち上げ ⇔ 降ろし
G) 本体 : 右旋回  ⇔ 左旋回

ロボキャッチ』では、
H) ハンド: 掴み   ⇔ 放し
I) アーム: 持ち上げ ⇔ 降ろし
J) 全体 : 右移動  ⇔ 左移動

動作順“逆再生”されなかったり、そもそも曖昧(あいまい)に同時発生したりしました。
負荷の大小関係が(重力を見方にするか敵にするかで)逆転したり、はっきり定まらなかったりする場合の現象です。

シュート君』では、A~Dの動作がいずれも一瞬で完了するので、これらの順序(つまり負荷の大小)にあまり気を配らず、むしろ同時動作した方がキッカーとして様になると考えて設計しているのでしょう。

 大事なことは、どの動作にも可動範囲(限界)を定めていることです。
そうでなければ、腕や胴体が360°回り続ける化け物になってしまいます(*1)。
いましたよね? 背中のペグを見落として、上半身だけ高速スピンする妖怪が…。

 2日目の最後に、ゴールに向けてボールを蹴って、シュートの正確さを競いました。

輪ゴムの復元力をうまく利用したレバー1本で、スライドスイッチを正逆に切り替えながらも、(可動限界があるので)入れっ放しにならないようタッチセンサーも同時に入・切するコントローラーの設計も秀逸(しゅういつ)ですね。

*1 本当は、Aの腕自体に回転限界はなく、B・C・Dの制限から決まります。
 Aは、モーター(胴体)に対するモーターシャフト(背骨)の回転量だけで決まり、モーターシャフトの回転を合同で消費するB・C・Dとは異なります。
 地面に対して、胴体Dと一体のモーター自身が回転するため、理解を難しくしています。


1.4 <アドバンスコース『ロボビート②』割愛>


 このドラマーロボットも面白いのですが、レース大会向けマシン注力の為、割愛します。

1.5 <プロ1年目コース『不思議アイテムI-1①』>


 3ヶ月間のオムニホールロボットを終え、新しいテーマに入りました。
1ヶ月目は、マイコンの出力先として、モーターではなく、光と音を出してみます。

 1日目は“”です。8x8の赤色LEDマトリクスを制御して、ドット絵やアニメーションを試しました。
自らの手でCG(コンピュータグラフィクス)に触れた瞬間ではなかったでしょうか。

 点灯・消灯させるドットを選択するために、中学数学のXY座標系の概念を用い、座標を変えながら繰り返し点灯・消灯する(のを楽にする)ために、for命令文を使いました。
for(i=0; i<=2; i++) {○○}”と書けば、変数iの値が 0, 1, 2 と変わりながら○○を3回実行し、“for (i=10; i>0; i=i-5) {○○}”なら、i = 10, 5 の順に2回しか○○を実行しませんよ。大丈夫でしょうか。
ナイトライダー(*1)風にも簡単に表示できましたね。

 横1ライン分の8つの点を8桁の2進数(01001001など)で表し、これを縦8つ分渡すことで画面表示してくれる関数(*2)を使って、パラパラアニメも制作できました。
2進数01001001に代わり、10進数73としても、16進数49で与えても同じ絵になります。
2進数しか扱えないマイコンへ転送する前(*3)に、01001001に変換されるからです。

 つまるところ、10進数(0~9)は人間に好都合な表記法でしかなく、8本足の火星人なら8進数(0~7)を使うかもしれないのです。
16進数(0~F)というのは、2進数4桁分をちょうど1桁で書けるので、慣れた人には楽なのです。
8進数も、1桁で2進数3桁分なので、コンピュータの分野ではよく使われます。

 2日目は“”も出します。
圧電スピーカー(*4)をつないで、人間の指示に反応できるようタッチセンサーも2個つなぎます。

 タッチセンサーの押下状態を判断してLED表示や音を変えるために、if文を使いました。
一方を押すとカウントアップ、他方を押すとカウントダウン、カウント10になるとメロディ演奏など、「○○なら△△する」という条件付き実行には、“if (○○) {△△}”と書きます。

カウント変数iの値が10, 20, 30, …の時に真になる条件文の書き方は3通りあります。
<初級> if(i==10){動作;} if(i==20){動作;} if(i==30){動作;} …
<中級> if(i==10 || i==20 || i==30 || …){動作;}
<上級> if(i%10 == 0){動作;}

タッチセンサーが押される毎にドット絵の表示位置を変え、合わせて音を出せば、これはもう、ゲーム中のキャラクタ移動ですね。

 さて、本Arduino環境では、単音ながら、RTTTLフォーマット(*5)による楽譜データを与えて任意のメロディを演奏できます。
次月1日目のテキストに詳細が解説されていますが、RTTTLデータは、"曲名デフォルト設定音符列" の3部で構成されます。
スーパーマリオがコインをゲットする音は、"coin:d=4,o=4,b=200:16b6,8e7" というようなデータで与えられます。

デフォルト設定 "d=4,o=4,b=200" では、4分音符、オクターブ4、テンポ200が指定され、音符列において特に指定しない限り、この設定が適用されます。

音符列 "16b6,8e7" は、16分音符オクターブ6のシ、8分音符オクターブ7のミ、の順に鳴らします。
即ち、デフォルト設定 "d=4,o=4" は全く効いていません。

ここで、音符列を "c,d,e,f,g,a,b,c5" とだけ記述すると、4分音符で、オクターブ4から“ドレミファソラシド”と演奏されます。
ソ#(ラ♭)は "g#"、休符は "p" で表します。
付点音符(1.5倍の長さ)は、"c." のように、後に"."を付けます。

 2ヶ月目は、音階と周波数の関係や、一次関数のグラフ描画によるCGの基礎を学び、ゲームパッドで光と音を自在に操るなど、ゲームプログラムの要素を掘り下げます。


*1 人工知能を搭載した喋るスポーツカーが犯罪捜査員マイケルと共に様々な事件を解決するアメリカの1980年代のアクションドラマ。知らない人はYouTubeで。

*2 決まった手順の命令群を1つにまとめて名前を付けたもの。その名前を1回呼ぶだけで複数の命令をまとめて実行してくれるので、プログラムが簡単になる。手続き、サブルーチンとも呼ばれる。

*3 転送してあげる方のPC内部でどう処理されるかは少し難しいので割愛しますが、2進数しか扱えない点は変わりません。

*4 普通のスピーカーがアナログ信号(音声・音楽)を再生するするのに対し、圧電スピーカーは、デジタル信号を省電力で音に変換する作用に長けています。
 いわゆる「ピッ」「ピー」「ピロピロ…」というようなアラーム音ですが、昔のゲーム機のような素朴な演奏もできますよ!

*5 Ring Tone Text Transfer Language(着信音文字列転送言語)の略で、ノキア社が携帯電話の着信メロディ楽譜を記述するために開発した書式。
https://en.wikipedia.org/wiki/Ring_Tone_Transfer_Language


2. 7月の課題


 <スタートアップ(全コース)>
  特にありません

 <プライマリーコース>
  - オリジナル図形プリント
  http://robocobo.sakura.ne.jp/blog/HW/RobotP2107-Q.pdf

 <ベーシックコース>
  - 上記授業内容を精読する(概ね3年生以上/低学年は補助の下で)
  - オリジナル課題プリント(3面図+設問)
  http://robocobo.sakura.ne.jp/blog/HW/RobotB2107-Q.pdf

 <ミドルコース>
  - 上記授業内容を精読する
  - オリジナル課題プリント(3面図+設問)
  http://robocobo.sakura.ne.jp/blog/HW/RobotM2107-Q.pdf

 <アドバンスコース>
 ⇒ロボットレース大会向けマシン注力の為、割愛しました

 <プロ1年目コース>
  - 上記授業内容を精読する(該当テキストページを見ながら)
  - [MatrixSprite3/4]をベースに、5コマ以上の絵でアニメを作成し、家族と教室に披露する
  - [MatrixSpriteMove2]をベースに、4x4~6x6ドットのキャラクタを画面からはみ出ないよう左右(または上下に)移動制御

  《ハイレベル挑戦》限界以上に移動させようとするとエラー音(メロディ)


3. 6月の解答


 <プライマリーコース>
  http://robocobo.sakura.ne.jp/blog/HW/RobotP2106-A.pdf
 <ベーシックコース>
  http://robocobo.sakura.ne.jp/blog/HW/RobotB2106-A.pdf
 <ミドルコース>
  http://robocobo.sakura.ne.jp/blog/HW/RobotM2106-A.pdf
 <アドバンスコース>
 ⇒ロボットレース大会向けマシン注力の為、割愛しました


4. 今後の授業スケジュール


◆8月は盆休み前後シフトあります。

――――――――――【佐藤教室長】――――――――――

[東福間]第1・3土原則<学習ルームでこぼこ>
   - 13:30~ ベーシック/プライマリ
   - 15:30~ ミドル
   - 17:30~ アドバンス

 ⇒ 7/31※, 8/21,  9/4, 18,  10/2, 16

 ※8/7→7/31シフトします


[中間]第2・4土原則<なかまハーモニーホール>
   - 13:30~ ベーシック/プライマリ
   - 15:30~ ミドル
   - 17:30~ アドバンス/ロボプロ

 ⇒8/ 7※第1回 ハーモニーホール3F会議室2
  8/28※第2回 【折尾商連会館】2F
  9/11※第1回 【折尾商連会館】2F
  9/25 第2回 ハーモニーホール3F会議室4(和室)
  10/9, 23

 ※8/14→8/7シフトします
 ※~9/12ハーモニーホール閉鎖につき【折尾商連会館】で開催します


[小倉北]第1・3日原則<ムーブ>
   - 10:30~ ベーシック/プライマリ
   - 13:00~ ミドル/ロボプロ
   - 15:00~ アドバンス

 ⇒8/ 1 第1回 5F企画1・2
  8/22※第2回 5F小セミ
  9/5, 19,  10/3, 17

 ※8/15→22シフトします


――――――――――【中野教室長】――――――――――

[八幡東]第1・3土原則<レインボープラザ4F>
   - 13:30~ ベーシック/プライマリ
   - 15:30~ ミドル
   - 17:30~ アドバンス

 ⇒ 7/31※, 8/21,  9/4, 18,  10/2, 16

 ※8/7→7/31シフトします


[小倉南]第2・4日原則<総合農事センター2F>
   - 10:30~ ベーシック/プライマリ
   - 13:00~ ミドル
   - 15:00~ アドバンス

 ⇒8/8, 29※,  9/12, 26,  10/10, 24

 ※8/22→29シフトします


5. お知らせ

1) 5教室合同ロボットレース大会 終了

 7/23(金)ユメニティーのおがた 小ホールにて、今年で2回目となるオリジナルレース大会を開催しました。
総勢52名(プライマリー/ベーシック21名ミドル15名アドバンス16名)が参戦し、熱いバトルを繰り広げました。
各コース別に設けられたミッションをクリアしながら、出走3回の中でゴールまでの最速タイムを競います。

 タイム計測機は、去年ロボプロ生と共同開発した自動ストップウォッチです。
カウントダウン音「ドレミファソラシド」を発して計測スタート、赤外線センサー+手動ストップによるダブル計測値で信頼性を担保していましたが、
今年はセンサーを産業用にグレードアップしたことでゴール検出の精度と確度が向上し、自動計測率ほぼ100%(去年は50%程度)を達成して、文字通り0.01秒の争いに応えました。

 大会出場者の皆さん、お疲れ様でした。
練習会では幾度となく成功していても、本番では成功率が下がったように見えますね。
特にミッションの難しいアドバンスではこれが顕著で、全体的に速いタイムを出すことに集中しすぎた印象でした。
ミドル、アドバンスでは複数のプログラムを用意し、環境の差異を吸収する安定化と、限界に迫る高速化のセッティングを切り替えるような戦略も考えられましたね。

テキストのないロボットを仕上げるのは大変に難しい作業です。
構想を練り、形にして、試しては改良を繰り返す。これは立派なエンジニアリングです。
記録を残せた人、入賞したマシンにはそれだけの理由があります。
すなわち、失敗するにも理由があるわけで、そこから何かを学ぶことができたならば、皆さんはマシン以上に進化していますよ。

 今年も会場を唸(うな)らせる個性的なロボットが多く登場しましたね。ユニークというだけで人を惹(ひ)きつける魅力があります。
そして、純粋に速さだけを競う『スピードスター』部門も追加し、スピードのみならず、デザインや構造に工夫を凝らしたマシンが集結し、他部門とはまた違った独特の高揚感を醸(かも)し出してくれました!

次回開催する時は、ミッション達成度を争うテクニカル部門なども面白そうですね?!

【プライマリー/ベーシックコースの部】平均2.83秒 延べ完走率67%
  1位 中間  上尾  2.36
  2位 中間  中川  2.41
  3位 小倉南 矢野  2.44
  4位 小倉南 有松  2.49

  5位 小倉南 土井  2.50
  6位 小倉北 翁   2.54
  6位 小倉北 土屋  2.54
  8位 小倉南 古場  2.56
  9位 八幡東 栗屋  2.68
 10位 八幡東 鑓水  2.69
 11位 小倉北 渡邊  2.72
 (他、成功8名、失敗2名)
高解像度の記念写真が欲しい方は教室長まで

【ミドルコースの部】平均4.55秒 延べ完走率56%
  1位 小倉北 中村  3.38
  1位 中間  藤津  3.38
  3位 小倉南 林田  3.59

  4位 東福間 廣渡  3.66
  5位 中間  千葉  3.68
  6位 東福間 徳留  3.74
  7位 東福間 光井  3.85
  8位 小倉南 向野  3.96
  9位 小倉南 高木  4.44
 (他、成功4名、失敗2名)
高解像度の記念写真が欲しい方は教室長まで

【アドバンスコースの部】平均3.10秒 延べ完走率15%
  1位 中間  渡邉(倫) 2.16
  2位 八幡東 樋口  2.33
  3位 小倉北 橋本(慧) 2.78

  4位 小倉南 塚野  3.89
  5位 中間  吉川  4.35
 (他、成功0名、失敗11名)
高解像度の記念写真が欲しい方は教室長まで

【スピードスターの部】平均3.80秒 延べ完走率67%
  1位 小倉南 末廣  3.38
  2位 中間  中村  3.41
  3位 東福間 久保田(陸) 3.81
  4位 東福間 久保田(暖) 4.58
 (他、成功0名、失敗1名)
高解像度の記念写真が欲しい方は教室長まで



2) 中間・小倉北ロボティクス・プロフェッサー(ロボプロ)コース説明会

 中学生・アドバンス1年以上履修生を対象に、9月スタート生を募集します。

 ご興味のある方は、下記いずれかの説明会をご予約下さい。
 ◆8/ 1(日) ムーブ5F 15:30~16:30
 ◆8/22(日) ムーブ5F 15:30~16:30
 ◆9/ 5(日) ムーブ5F 15:30~16:30

 ◆8/ 7(土) ハーモニーホール3F 19:00~20:00
 ◆8/28(土) ハーモニーホール3F 19:00~20:00
 ◆9/11(土) ハーモニーホール3F 19:00~20:00

  - スタート月は3ヶ月毎のみです
  - スタートアップ講座は1日のみ(9/19 or 25予定)です
  - アドバンス進級/継続/ロボプロ進級で悩まれる方はご相談下さい

《コース概要》
 https://kids.athuman.com/robopro/
 http://robocobo.sakura.ne.jp/blog/robotics/robopro_1st_course.pdf
 http://robocobo.sakura.ne.jp/blog/robotics/robopro_2nd_2102.pdf
 http://robocobo.sakura.ne.jp/blog/robotics/robopro_3rd_2102.pdf


3) ロボット教室オンラインサービス[再々掲]
 アカウント登録すると、毎月のロボットの製作手順を動画で見られるロボット教室オンラインサービスが利用できます。
 テキストでは分かりにくい箇所や遊び方などもご覧になれますので、ご活用下さい。
 (休会月は利用できません)

《オンラインサービスご案内PDF》
 http://robocobo.sakura.ne.jp/blog/net/RobotOnlineService.pdf

《アカウント登録URL (PDF記載QRコード)》
 https://form.kintoneapp.com/public/form/show/00008e877a90d5dc03472c81611b94849f6b451581adb93b4b1e993b3fdb7b86


4) 8月景品交換会
 3ヶ月毎の宿題ポイント交換会を下記授業日に開催します。
 ポイントカードを忘れずに、早めに来て下さい。

 [東福間]8/21
 [八幡東]8/21
 [小倉北]8/22
 [中 間]8/28
 [小倉南]8/29


5) 6月課題 高得点者  []内は教室と学年

 ◆プライマリ【16名平均 図形3.2】
   5点…土屋[小倉北1], 矢吹[小倉北 年長], 眞所[小倉南2]

 ◆ベーシック【16名平均 図面2.5+設問1.6=4.1】
  10点…なし
   9点…なし
   8点…なし
   7点…栗本[小倉南2], 土井[小倉南3]
   6点…なし

 ◆ミドル【18名平均 図面3.4+設問1.5=4.9】
  10点…なし
   9点…なし
   8点…中村[小倉北7]
   7点…なし
   6点…千葉[中間6], 藤津[中間5], 原[小倉南5]


東福間・中間・小倉北教室 佐藤 / 八幡東・小倉南教室 中野