2016年3月28日月曜日

3月授業内容

1.3月授業内容
2.今月の課題
3.今後の授業スケジュール
4.ひと言


1. 3月授業内容


1.0 <スタートアップ/プライマリーコース>


 割愛します。


1.1 <ベーシックコース『う王さ王』>


 “右往左往”をもじっていますので、この四字熟語を知っていれば動作は想像に難くなかったでしょう。

赤色に目立つ巨大なバンパーを前後に装着した四輪車が、どうも前後(横から見れば左右)の壁にぶつかる度にスイッチバックして、行ったり来たりを繰り返すようだ、
とまでは予想できましたが、1日目のテキストでは、「スライドスイッチを手動で切り替えて実現するのは大変だね」で終わり、核心部分はお預けです。


 2日目でようやく、衝突で押し込まれるバンパーがスライドスイッチを反転させる機構を組み付けました。
しかし、中には下記のポイント【レベル1・2・3】が未解決のため、最後までうまく動作しなかった例も散見されました。
リニューアルされたばかりのスライドスイッチの個体差による場合もあります。
レベル毎に順を追って、解決していきましょう。

【レベル1】最低限…
 1) テキストを良く見て、正確に作ること(絶妙に設計されており、自己流では困難)
 2) スライドスイッチのツマミを挟む部品をしっかり組み付けましたか?(ぐらつくようではダメ)(*1)

【レベル2】スライドスイッチが硬い人は…
 3) スイッチを数十回左右に切り替えて、少し柔らかくする(モーターを外して!)


【レベル3】壁から受ける衝撃を強めるために…
 4) 摩擦を減らす(タイヤをゆるめる)
 5) スピードアップ(電池4→5本)
 6) 重くする(荷物をのせる・ぐらつかないように)(*1)


【レベル4】それでもダメなら、もっとスピードアップ!
 7) モーター軸のピニオンギアをギアMに交換する(ベベルギアの横のブッシュ2つを外せばかみ合うはず)(*2)
 8) 左右に走らせる幅を広めにとる(加速に時間がかかる)

【レベル5】それでダメでも、まだある!
 9) 硬いスイッチを弱い衝突力でも動かせるようにするには…?(てこの原理)(*3)

どうです?「ダメだー」と思っても、これだけ、いや、まだ他にもありそうです(*4)。
【レベル2・3・4・5】どれか1つでもOKかもしれません。
特に【レベル4】は簡単にできますし、これで動作しないことは無いでしょう。


 授業中、最後まで諦めずに何とか動かそうと奮闘した生徒さんほど、目からウロコなのではないでしょうか。
解決方法が身に染みると思いますので、ロボットを壊す前に、是非トライしてください。

 本来、【レベル3】を自ら考案するのがミドルコース進級レベル、【レベル4】がミドルコース内レベル、【レベル5】がアドバンス進級レベルです。
自分の改造力にしてください。


*1 “ぐらつかない”ことは、大事なポイントです。衝突エネルギーが“ぐらぐら”で失われるからです。自動車のエンジンルームがつぶれやすく、車内への衝撃を和らげるのとは逆の考え方です。

*2 ピニオンギア(歯数8)をギアM(歯数24)に替えるので、3倍の増速になります。実際は摩擦のせいでそこまで速くなりませんが、かなりスピードアップします。

*3 大幅に作り変える必要があるでしょう。

*4 例えば、走行中に輪ゴムを巻いて、スイッチ切替用エネルギーとして補助的に使うなど。


1.2 <ミドルコース『ロボアーム』>


 ミドルコース中、1・2番を争う傑作に位置付けたい、摩訶不思議なロボットが巡ってきました!


 動力はいつも通り、スイッチ付きの電池ボックスに繋いだモーター1個です。
手元で制御できることはせいぜい、スライドスイッチを反転させることくらいです。
なのに、スイッチを入れると、
1) 垂れ下がったハンド(アームの先端)が物を掴む
2) アームを水平まで持ち上げる
3) アーム全体が回転して反対側へ運搬する
の順に動作します。

所望の位置で止め、今度はスイッチを反転させると、先程の逆順ではなく、
4) 先ずはアームを降ろし
5) ハンドを開いて荷物を離し
6) アーム全体を元の側に回転して戻す
という一連のクレーン操作を熟練したかのようにこなすのです。

スイッチを入れている間、モーターはずっと一方向に回り続けているだけです。不思議ですね。

 これは言わば、バイクがアクセルをあおり過ぎてウイリーしてしまうのと同じ原理です。
バイクのエンジンが生み出した力は、バイク全体を加速させることと、
前輪を浮き上がらせることの2方向に使い道が残されているのです(*5)。
力の逃げ道といった方が感覚的には分かり易いでしょう。

通常は、ウイリーよりも小さい力で済む加速だけに使われますが、
「物体は素早く加速させようとするほど大きな力を要する」慣性の法則(*6)により、あまりに強大な力にとっては、ウイリーさせる方が“”なのですね。

 ロボットアームでは、慣性の法則は殆ど効いていませんので、負荷(アームに掛かる重力や、ジョイントの摩擦)の軽い順に可動範囲を使い果たし、力が次々と逃げ道を探すのです(*7)。


実際、3段階目のアーム回転動作が軽すぎて、2段階目の持ち上げ動作をスキップしたり、並行動作したりするなど、不安定になる場合がありましたが、
・ 土台と回転アームの間に輪ゴムを挟む
・ アーム自体を装飾して重くする
ことで摩擦を稼ぐと、スムーズに動作しました(*8)。


 最後の競技は、勿論、荷物搬送!
ロボットの片側エリアから、用意した荷物(タイヤSホイール等)を掴んでは、アームを180°回した先に降ろすことができた回数を競いました。

単純に思えたスイッチの反転操作に手間取る(必ずしも逆順に動作しないので、細かなやり直しが難しい)一面もあり、3分間で9回が優勝記録(小倉北教室)でした。


*5 接地状況により、ホイールスピン(タイヤを路面に擦り付ける)を3つ目に数えることもできます。

*6 高校物理で学ぶ、〔力=質量×加速度(F = m・a)〕です。

*7 アームの「上げ・下げ」に必要な力は重力が大きく関係しますが、ハンドの「掴む・離す」はほぼ同じ力で済みます。だから、「掴む→上げる」の順だし、「下げる→離す」の順になるのです。アームの旋回には、これらより大きな抵抗(摩擦力)が働けば、動きの順序に一貫性が生まれます。

*8 〔摩擦力=摩擦係数×荷重〕なので、輪ゴムと、重くすることの両方が効果的です。氷上では重たい力士でもツルツル滑ってしまいますよね。


1.3 <ロボプロコース『不思議アイテムII(3)』>


 冬タームの最終月を「ウルトラソニックロボット」で仕上げます。

 自律型ロボットといえば、障害物や段差を感知して、衝突や落下を回避しながら進むものを先ず想起するのではないでしょうか。
お掃除ロボット『ル○バ』などもそうですね。

感知に最も良く使われるのが、この超音波センサーです(*9)。
イルカやコウモリ等の生物から魚群探知機まで、反射音(方向・時間・強弱・周波数)の状態や変化を探ることで、視覚の代わりに(時にはそれ以上に)なるのです。

反響定位(エコーロケーション)と呼ばれますが、本ロボットや一般の障害物センサーでは、そこまでの解析能力はありません。
特定方向の(一定以上の大きさの障害物から)反射音が返ってくる時間(=距離)だけを計測しています(*10)。

 1日目では、2つのセンサーを別々にモニターすることでの可能性を垣間(かいま)見ました。
センサー1つでも、手をかざせば近寄り、近づけすぎると後ずさるなどプログラムできますが、両目のように左右に並べれば、左右の(状況の違いが分かる)感覚を生み出せます。

左右での感知距離(dist1, dist2)の差に応じて旋回させれば、かざした手の方向にフラフラと追跡するまでになりました[step3]。
しかし、2つの距離情報を扱うのは、プログラムの条件文(判定式や分岐)が複雑になります。


 2日目では、センサー1つを様々な位置に取り付け、プログラムを適応させることで、
・ 障害物を避けるロボット[avoider]
・ 机から落ちないロボット[nofall]
・ 机の端を沿うロボット [tablerunner]
壁ぎわを沿うロボット [walltracer]
が実現できることを経験しました。
あの『ル○バ』に勝るとも劣らず、生き物らしく見えたでしょ?


 センサーで拾うたった1つの値と、それを条件に動作を分ける論理(プログラム)とで、これだけの(これ以上の)ことができます。
どれも、プログラミングのレベルに大差ありません。


ちょっと難しく見える“おまじない”や数値処理上の工夫(*11)がありますが、核心の論理“if(条件) {動作1;} else {動作2;}”は、非常に単純明快で必然的なものです。

もっと場合分け(条件分岐)したければ、“if(条件1) {動作1;} else if(条件2) {動作2;} else if(条件3) {動作3;} else {動作4;}”等ですね。

怖(おじ)けずに、自分のロボットにを吹き込んでみてください。
君こそがフランケンシュタイン(怪物の創生者)であり、鉄腕アトムのお茶の水博士なのですから。


*9 GHz級クロックの電子回路など、技術の発達した現在では、光(電磁波)を用いたレーザー距離計やGPSセンサーも安価に手に入るようになりましたが、生物の感覚器官ではとても追いつけません。視覚が光を利用するのとは別の話ですよ。

*10 音の伝わる速さとして、空気中で340m/秒、水中で1500m/秒を覚えておきましょう。

*11 dist/=10; または dist=dist/10; で dist値 1~99[cm] を 0~9(整数) に粗くし、大雑把に扱えるようにしています。例えば、if(dist==1) と書くだけで 10~19[cm] の範囲を指定することができるようになります。


2. 今月の課題

 次回授業日までに完了してください。
 ◎は必須、○は推奨、△は任意です。○△は能力に応じます。

 <スタートアップ/プライマリーコース>
  特にありません

 <ベーシックコース>
  ○ 4面図スケッチ(専用方眼紙)
  ○ 見取図スケッチ(テキスト最終ページ/難しければ写真の模写から)
  ○ 上記授業内容を分かるまで音読する
   (概ね3年生以上/低学年は補助 or クイズ出題形式で)

 <ミドルコース>
  ×(長尺につきスケッチ免除)
  ◎ 上記授業内容を分かるまで音読する

 <プロフェッサーコース>
  ◎ 上記授業内容を分かるまで音読する
  ○ 単一距離センサーロボット[avoider/nofall/tablerunner/walltracer]のいずれかを改良し、ダブル距離センサーロボットとして、より洗練された動きを設計・実装する

   例えば、
   ・壁と壁の間を往復するプロ版“う王さ王”[avoider改]
   ・左/後退/右から安全な方向を選ぶ    [nofall改]
   ・左/直進/右を選びつつ崖っぷちを沿う  [tablerunner改]
   ・左/直進/右を選びつつ壁伝いに迷路を進む[walltracer改]


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


[東福間]第1・3土
   -  9:00~ 理科実験・中級
   - 10:30~ ロボ・ミドル
   - 13:30~ ロボ・ベーシック

 4~7月まで原則通りの予定です。


[東福間プロ]第2・4日
   -  9:45~ ロボ・プロ1年目

 4・6・7月は原則通り、5月は 5/15, 29 となります。


[中間]第2・4土
   - 13:30~ ロボ・ベーシック/プライマリ/4月スタートアップ

 ・4/ 9 第1回 3F会議室3
 ・4/23 第2回 2F会議室1

 4~7月まで原則通りの予定です。


[小倉北]第1・3日
   - 10:00~ ロボ・ベーシック
   - 13:00~ ロボ・ミドル
   - 15:00~ ロボ・ベーシック第2部(5月~)

 ・4/ 3 第1回
  10:00~ 5F小セミ(ベーシック/プライマリ)
  13:00~ 5F小セミ(ミドル/4月スタートアップ)

 ・4/17 第2回
  10:00~ 5F大セミ(ベーシック/プライマリ/4月スタートアップ)
  13:00~ 4F和室 (ミドル)

 プライマリは幼児向け6ヶ月コース、スタートアップは初月コースです。
 4・6・7月は原則通り、5月は 5/8, 22 となります。
 7月はムーブフェスタの為、6/2まで確定できません。代理施設での開催となる可能性があります。


4. ひと言

 3月はご転勤の時節でした。小倉北教室から4名もの生徒さんが転出されます。
寂しい限りですが、転属先の教室でも頑張って、いつかまた成長した姿を見せに帰ってきて欲しいと思います。


東福間・中間・小倉北教室 佐藤