2015年8月31日月曜日

8月授業内容

1. 8月授業内容
2. 今月の課題
3. 【変更】9月授業スケジュール
4. 【訂正】10月授業スケジュール(予告)
5. ひと言
6. 本部からお知らせ
について記します。


1. 8月授業内容

<ベーシックコース『ロボシューター』>



 シューター(Shooter)は「撃つ人・装置」の意で、つまり“銃”です。
先月のSLに続き、面白さが分かり易いテーマです(特に男子には)。

 テキスト表紙に、銃身に沿って輪ゴムを引き伸ばした写真が載っているので、
てっきり輪ゴムを飛ばすと思い込んだ人も多かったでしょうが、違いました。
もっとリアルに、弾(ロッド5アナ)を複数込めて、連射もできます。
音も「カシャン、カシャン」と、マシンガン風です。

 輪ゴムは、弾を押し出すエネルギー(*1)の貯蔵素子で、
このエネルギーを充填(じゅうてん)する装置が、モーターと回転するロッド3アナです。

ロッド3アナが1回転する毎(*2)に、
引っ掛かるロッド15アナが輪ゴムを引き伸ばしながら後方へ下がったり、
引っ掛かりが外れて前方へ勢いよく引き戻されたりを繰り返します。



 しかし、音がカッコイイ割りに、発射される弾の勢いたるや、1mがせいぜい。
輪ゴムが弱いと、連射しても、ポロポロ垂れる動物のうんちのようです。

「もっと輪ゴムを強くすればいい!」
当然、そう思います。輪ゴムを2,3本掛けてみます。
ところが、モーターの力不足で止まってしまいましたね。
新品電池6本フルで、何とか引っ張って、2m位飛んだでしょうか。

 ここでも、電池パワーは大事なポイントですが、限界は知れています。
もっと抜本的に飛ばす改造をした人がいます。
手に持ち構えて3~4m、テーブル上で弾を滑らせると5m以上は飛んでいきました。
このときの輪ゴム本数は5本前後!

どうやって引っ張らせたのでしょうか?
このまとめを毎回しっかり読んでいる人なら分かりますね。
たびたび紹介している“減速(げんそく)”という方法です。
授業の最後でも伝えました。

読み始めたばかりで分からない人も、下の説明の通りにギア交換して、劇的な変化を味わってみましょう。君の改造力が大幅にアップしますよ!
(あきらめると、次回も電池パワーだけに頼ることになります)




<強化改造方法>

 ギア(歯車)は、小が大を回すと回転が遅くなりますが、その分、回転力が強くなるのです。テキストでも、

  モーターのピニオンギア(歯数8) ⇒ ベベルギア(歯数24)

3倍遅く/強くしていますが、もっと遅く/強くするために、

  ベベルギアと同軸(両側)のピニオンギア ⇒ ピニオンギア ⇒ ピニオンギア

の箇所を、

  ベベルギアと同軸(両側)のピニオンギア ⇒ ギアM(歯数24)

に交換(*3)しましょう。

これで、更に3倍(全体で3×3=9倍も)遅く/強く(*4)なります。
「カシャン、カシャン」の音も遅くなりますが、その分、強力に輪ゴムを引っ張れますよ。
いよいよ人に向けて撃たないように!

*1 弾性(だんせい)エネルギーといいます。火薬の爆発エネルギーの代わりです。

*2 このような回転体の外形に沿って動きに変化をつける機構をカムと呼びます。
 自動車エンジンの吸気・排気を切り替える弁の開け閉めに使われています。


*3 三連水車ならぬ、三連ピニオンギアの所です。
 ロッド3アナの回転軸の位置は変わりませんので、改造は簡単ですが、回転方向の変化を観察し、スイッチを入れる向きに注意します。


*4 ロッド3アナの強い回転力で本体が分解し易くなるので、紐でくくるか、側面をペグとロッドで補強しましょう。
 ベベルギアも、ワッシャー3~4枚(またはブッシュやグロメット)でしっかりピニオンギアと噛み合わせないと、ガリガリ音がして歯を削ってしまいますよ。
 特に、スイッチを逆向きに入れないよう注意!


<ミドルコース『親子マーチ』>

 親(前輪)と子(後輪)がタンデムを組んだ4輪車ロボットには違いありませんが、モーターはタイヤを一切回しません。
モーターの仕事は、親の腕(クランク)を回すことで子を引き寄せたり遠ざけたりするだけです。

 とは言え、親とて足は自由回転するタイヤ。親子とも前後しながら、付かず離れずを繰り返すだけで全体としては進まず、下手な二人三脚のようで滑稽です。
1日目はここまで。

 さて、この親子をうまく前進させる仕掛けが何か必要です。
進まない親子ロボットを観察すると、腕の伸縮運動(*5)に連動して、
タイヤが前へ後ろへ交互に回っており、移動量は差し引きゼロです。
このタイヤを、前方向へは回るが後ろ方向へは回らないようにできれば
もはや進む他に道はありませんよね!

そうです、4月の『シャクロボ』のタイヤにも施した、ラチェットによる回転方向制御と同じです。
2日目テキストの通り、タイヤに(逆回転を阻止する)ストッパーを当てただけで、前輪を止めて後輪を進め、後輪を止めて前輪を進める動作を繰り返すようになり、今までが嘘のようにテンポよく進めるようになりました。
二人三脚というより、またしても尺取虫の要領ですね。



 輪ゴムでストッパーの押し付け力を調整します。
あまりに強く押し当て、前方向にも回りにくくなった失敗例もありましたが、軽く当てるだけで、10°~ 20°の急な坂道すら、ずり下がらずに登れるようになりました。
回転を一方向に制限するだけの仕掛けがこんなにも有用(*6)なのですね。

 授業最後の競技は、先月に続いて、綱引き!

ロボット同士を紐でつないで引っ張ります。

“負けない”ためには、後ろにずり下がらないことが大事ですが、あまりストッパーを強くすると前進の抵抗にもなります。

そこで、斜め後方に垂らしたタイヤ(の角)を引きずるアイデアが生まれました。
これも、前進抵抗の少ない強力なストッパーとして功を奏し、うまく取り付けた方が有利な展開を見せました。
理にかなった素晴らしいアイデアでした。


*5 クランク機構を用いて、モーターからの回転運動を往復運動に換えて実現しています。
 今月の理科実験(中級)でも学習したテーマでした。


*6 自転車のペダル(正確には後輪のハブ内)にもラチェットが組み込まれています。
 このおかげで、ペダルを休めても車輪は空回り(ペダルの逆回転に相当)することができます。
 自転車の画期的な技術革新と言われています。


<アドバンスコース『ロボ・サッカー』>

 2ヶ月目の授業です。
アドバンスコース修了生には、最終テーマとなりました。

 今月は、ボールをシュートするのに、ロボット前面でただ押す(ヘディング?)のではなく、ちゃんと蹴るアーム(*7)を組み付けます。

このため、ライントレーサ型の左右2モーター独立駆動を止め、前進とアームの駆動に別個のモーターを割り当てます。
直進のみになりますが、光センサーを用いて、黒ラインの“上”にいる間だけ前進し、ラインが途切れた位置で自動停止させます。
このような光センサーの使い方もあるのですね。

 アームも、テキストでは音(拍手)を合図に蹴り出し、「カチッ」という内部の機械音に反応して自動終了するよう、音センサーを組み付けていますが、機械音の出方とセンサー感度とのマッチングが難点でしたね。

手動のスイッチ操作をOKとしました。
走行用の光センサーを兼用して、走行停止と共に自動的にアームを蹴り出す動作に移行する工夫例(*8)も見られました。




 最後の競技は、各自のロボットがPK戦もどきのシュートで得点数を競いました。
黒テープの端で自動停止した際のアーム位置を予想してボールを置き、30cm先のゴールを目掛けてシュートを繰り出します。

3種のボールで3投ずつ、計9回のシュートを蹴りました。
5人の間に、ノーミスの9点~1点まで大差がつきましたが、
得点が低い人の主因は、「ロボットがうまく動かない」ことにありました。

 アドバンスは難しいですね。
4面図による製作から、センサー類の調整、独自の戦略と改造まで、レベルの高い作業が要求されるロボットでした。

これぞアドバンス! 修了した人に相応しいテーマでした。
ロボ・プロコースに進むと、さらに新世界が広がります。
もっと色んなことを知り、不思議に思い、難問からも決して逃れずに立ち向かってくれることを期待します。

*7 アームと呼ぶと“ハンド”を取られそうですが、ブルドーザーのバケットに見えても、本ロボットは像がモデルですので、そう呼ぶわけにもいきません。
 前足はタイヤだし、鼻は別にあるし、牙ですかね…。


*8 光センサーには出力端子が2つあり、黒/白判定に応じて通電する端子が切り替わる機能を応用しました。もしかして、接続ミスによる偶然の産物でしたか?
 アームの停止には、スイッチOFFか、音センサーの反応が必要なことは変わりません。


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

 光と音の世界に入って、2ヶ月目です。

 1日目は、“音”の続きです。
前回は、楽譜データをRTTTL形式で1曲分丸ごと与えることで自動演奏させましたが、今回は手動演奏です。つまり、電子ピアノですね。

ゲームパッドの16個のボタン(=鍵盤)に任意の音階を割り振り、好きな楽曲を演奏できます。
プログラム上の書き換えだけで済むので、自分が演奏し易いオリジナル鍵盤に仕立てることなど、朝飯前です。

 さて、正しい音程で奏でるには、プログラム上で“ド・レ・ミ…”に相当する記号“NOTE_C4, NOTE_D4, NOTE_E4, …”を使って指示すれば良いので簡単ですが、そもそもマイコンが“ドレミ”で分かるのかという問題があります。

実は分からない(*9)ので、プログラムの転送前(コンパイル時)に、ドレミを音の周波数に置き換えているのです。
例えば、オクターブ4の“ラ”は周波数440Hzなので、記号"NOTE_A4"を数値440に変換しています。
オクターブ5の“ラ”(NOTE_A5)は2倍の880Hz、逆にオクターブ3の“ラ”(NOTE_A3)なら半分の220Hzです。

1オクターブの間には、半音(*10)で数えて12音ありますので、難しい計算になりますが、音程が半音上がると、周波数は約1.059倍になり、1オクターブ上がって(半音12個分、1.059を12回掛けて)2倍の周波数になる関係です。

“シ”と“ド”の間には黒鍵がないので半音、周波数が約1.059倍になる関係です。
“ド”と“レ”の間には黒鍵があるので全音、周波数は約1.059×1.059=1.122倍の関係です。
人間にはこんな計算やってられませんね。やはり記号を使いましょう。

 ゲームのキャラクタのように、上下左右ボタンでLEDマトリクス上の十字や任意の表示パターンを動かす毎に異なる音を出したり、パッドを振動させたりするプログラムにも触れました。

描画の始点(左上)となる座標(x, y)の値に基づき、パターンが画面の端に当たったかを判定するために、OR表現を用いたif文“if( x<0 || x>5 ) {○○}”を学びました。
これは、「もし、x<0 または x>5 なら、○○を実行せよ」という意味です。

パターンが画面からはみ出ないよう始点の座標(x, y)の値を有効範囲に制限するために、constraint命令を使用しました。

 2日目は、“光”を計算で操ります。
既に、直線を描画する方法をいくつか知っています。

<方法1> 1点ずつ座標を指定して、8ドットを順に点灯させる
<方法2> 上記を洗練し、座標変数(x, y)とfor文を使って実現する
<方法3> 1コマの絵のように、8×8ドットのパターンとして描画する

 <方法1>と<方法3>は、直線を引くだけにしては面倒ですし、変更も大変な作業です。
<方法2>ができるのなら、それは文句なしのスマートな方法ですが、
x座標のみを変えながら水平線か、y座標のみを変えながら垂直線を描くのが精一杯ではなかったでしょうか。

斜めに線を引くには、1ドット毎に難しい座標計算が必要そうです。
これを楽にするために、一次関数(中学2年数学)の考え方を導入しました。

x座標とy座標との間にある定まった関係を式で表したもので、例えば、画面の対角線を引く場合は、y=x という関係式を与えます。
「yとxの値は常に等しい」という意味ですが、「yはxと同一に変化する」とも読み取れます。
ここで、“ for (x=0; x<8; x++) { y=x; } ”のようにx値を変化させると、(x, y)は(0, 0)→(1, 1)→・・・→(7, 7) と変化しますので、これらのドットを順次点灯すれば良いのです。

y=2x なら、yはxの2倍大げさに変化しますので、斜め線は急峻にそり立ち、
y=0.5x なら、yはxの半分しか変化しませんので、斜め線は緩やかになります。
一次関数のグラフ表現では、斜め線の向きを表す 2 や 0.5 を“傾き”と呼びます。
y=-x なら -1 のように、マイナスの傾きも考えられます。
プラスの傾きを上り坂と見なせば、マイナスの傾きは下り坂になります。

 また、y=x+4 や y=3x-2 のように、最後に定数を足し引きすると、元の y=x や y=3x の直線を上下(y座標方向)に数値の分だけ平行移動させた位置に描くことになります。
一次関数のグラフ表現では、直線の上下移動を表すこの定数を“ 切片(せっぺん) ”と呼び、これは x=0 のときのyの初期値のようなものです。

 このように、数学では一次関数の式を y=ax+b(傾きa、切片b)の形で表しますので、プログラムにおいても直線描画に限らず、for文でx値を変化させながらy値を計算する手法(*11)がよく取られます。

<方法2> 一次関数とfor文を使って描画する

と書き直しましょう。

 なお、直線描画に限っては、もっと便利なline命令が用意されていました。

<方法4> 直線の始点座標(x1, y1)と終点座標(x2, y2)をline命令に与える

これを使えば、 内部で<方法2>を代行してくれます。

 このように、特にCG(コンピュータグラフィクス)の分野では、誰かが用意してくれた便利なプログラム群(*12)を利用するのが当然のことです。そうしないと大変過ぎてやってられません。


 最後に、コンピュータ内部で文字を管理し、表示するための文字コードについて軽く学習しましたが、今回は、テキストに説明している以上のことを割愛します。

 本当に、ロボ・プロは内容が盛り沢山ですね。テキストを見ながら、なるべく曖昧な点を残さぬよう、しっかり復習と課題に取り組んでください。

*9 音楽専用のICチップなら解釈してくれるものもあります。

*10 ピアノの鍵盤で、黒鍵を含めた隣同士の鍵の音程のこと。
 五線譜や音符に付く#や♭は、半音上げ下げする記号。


*11 yの計算結果が小数になる場合でも、変数yをint(整数)型で宣言していれば自動的に整数に切り捨てられますので、整数のみが許されるCG座標を表すのに便利です。
 <例> 6.25 ⇒ 6、0.81 ⇒ 0


*12 一般に、ライブラリ(library)と呼びます。有用な書物を集めた図書館ですね。


2. 今月の課題

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

 <ベーシックコース>
  △ 今月は4面図・見取図スケッチを免除しています
  〇 上記授業内容を分かるまで音読する
   (概ね3年生以上/低学年は補助 or クイズ出題形式で)
  〇もっと遠くまで弾が飛ぶよう改造
  〇 テキストp.17の空間図形問題にチャレンジ

 <ミドルコース>
  ◎ 専用方眼紙にロボットの4面図をスケッチ(1日目)
  〇テキスト最終ページにロボットの見取図をスケッチ
   (難しければ、写真撮影したものか、テキスト表紙を模写してもよい)
  ◎ 上記授業内容を分かるまで音読する

 <アドバンスコース>
  〇 上記授業内容を分かるまで音読する

 <プロフェッサーコース>
  ◎ 上記授業内容を分かるまで音読する(該当するテキストページを見ながら)
  ◎ TonePS2をベースに、必要に応じて音程割り当てを変更し、任意の曲目演奏(1日目)
  ◎ SpriteMovePS1をベースに、4x4ドット以上の自作パターンを上下左右ボタンで画面からはみ出ないよう移動制御(1日目)
  ◎ MatrixLineTurnをベースに、for文とline命令を使って十字線を回転させる


3. 【変更】9月授業スケジュール


[東福間]
 ・9/ 5  9:00~ 理科実験・中級 第1回
 ・9/ 5 10:30~ ロボ・ミドル  第1回
 ・9/ 5 13:30~ ロボ・ベーシック第1回
 ・9/ 5 15:30~ ロボ・アドバンス第1回(時間シフト)

 ・9/12 14:00~ ロボ・プロ   第1回
 ・9/13 10:00~ ロボ・プロ スタートアップ(第1.5期生)

 ・9/26 15:30~ ロボ・プロ   第2回
 ・9/26  9:00~ 理科実験・中級 第2回
 ・9/26 10:30~ ロボ・ミドル  第2回
 ・9/26 13:30~ ロボ・ベーシック第2回
 ・9/26 18:30~ ロボ・アドバンス第2回

 ※9/12 福津・宗像地区 土曜日学校
 ※9/19 5連休(9/19~23)を考慮


[小倉北]
 ※PM内容を変更しました。

 ・9/ 6 10:00~ ベーシック第1回 @4F和室
 ※9/ 6 13:00~ ベーシック第2回 @4F和室(予備)

 ・9/20 10:00~ ベーシック第2回 @5F企画ルーム2
 ※9/20 13:00~ 予備(振替・体験) @5F企画ルーム2


4. 【訂正】10月授業スケジュール(予告)


[東福間]
 ※10/10から変更しました。ご協力ありがとうございます。

 ※10/ 3  9:00~ 理科実験・中級 第1回
 ※10/ 3 10:30~ ロボ・ミドル  第1回
 ※10/ 3 13:30~ ロボ・ベーシック第1回
 ※10/ 3 15:30~ ロボ・アドバンス第1回(時間シフト)

 ・10/24  9:00~ 理科実験・中級 第2回
 ・10/24 10:30~ ロボ・ミドル  第2回
 ・10/24 13:30~ ロボ・ベーシック第2回
 ・10/24 15:30~ ロボ・アドバンス第2回(時間シフト)

 ・10/11 10:00~ ロボ・プロ   第1回
 ・10/25 10:00~ ロボ・プロ   第2回

 ・11/15 10:00~ ロボ・プロ   第1回
 ・11/29 10:00~ ロボ・プロ   第2回

 ・12/13 10:00~ ロボ・プロ   第1回
 ・12/27 10:00~ ロボ・プロ   第2回

[小倉北]
 ※10/25振替日を追加しました。

 ・10/ 4 10:00~ ベーシック第1回 @和室
 ・10/ 4 13:00~ ミドル  第1回 @企画ルーム2

 ・10/18 10:00~ ベーシック第2回 @和室
 ・10/18 13:00~ ミドル  第2回 @企画ルーム2

 ※10/25 15:00~ ベーシック第2回 @茶室(振替用)

 ・11/ 8 10:00~ ベーシック第1回 @和室
 ・11/ 8 13:00~ ミドル  第1回 @企画ルーム1

 ・11/22 10:00~ ベーシック第2回 @和室
 ・11/22 13:00~ ミドル  第2回 @和室

 ・12/ 6 10:00~ ベーシック第1回 @和室
 ・12/ 6 13:00~ ミドル  第1回 @企画ルーム2

 ・12/20 10:00~ ベーシック第2回 @和室
 ・12/20 13:00~ ミドル  第2回 @企画ルーム2


5. ひと言

 夏休みを如何お過ごしでしたか? 盆休みにご家族で帰省や旅行をされた方も多いでしょう。
 我が家でも、涼しい寝床を求めてノコノコと南阿蘇へキャンプに出かけたものの、強雨に見舞われ、涼しいというよりジメジメした一晩を過ごしました。
 でも、いいんです。要は「思い出に残ったもん勝ち!」です。勉強も、印象(脳裏にイメージすること)が大事ですね。


6. 本部からお知らせ

8月22日(土)に開催されました全国大会の30分番組を
キッズステーションにて放映予定です。

 ■9/26(土) 14:30~15:00(初回放送)
  ■9/27(日) 18:00~18:30(リピート放送)

 通常ですと、キッズステーションに契約されている世帯に限り視聴ができますが、スカパー、スカパープレミアムサービスで無料視聴もできるようです。 

東福間・小倉北教室 佐藤