2017年8月31日木曜日

2017年8月報

1.8月授業内容
2.今月の課題
3.今後の授業スケジュール
4.お知らせ


1. 8月授業内容


1.0 <スタートアップ>


 割愛します。




1.1 <プライマリーコース『モッテクテク』>


 割愛します。










1.2 <ベーシックコース『リトルドッグ』>



 愛犬ロボットと銘打(めいう)つ、4足歩行ロボットです。
側面で同じ向きに回転する4枚のギアLがそれぞれの足を動かします。
ギアL上に挿(さ)すペグSの位置だけで、各足を運ぶタイミング(*1)や動きの大きさ(*2)をそれぞれ変えられるので、
4足の運び方による進み方の違いを観察するのにうってつけの教材です。


 1日目の製作を終えた段階では、うまく歩けない子犬が続出しました。
特に、左右で足の動きが同じだと、おかしな仕草(しぐさ)になります。
横から見て回転するような屈伸(くっしん)運動になり、前へつんのめって顔面を打つマヌケ犬か、100円で前後上下に動く乗り物のようです。全く進みません。

しっかり歩ける犬かどうかは、坂道チャレンジで良く分かりましたね。


 4足の運びに正解が決まっているわけではなく、重心やスピード、足の跳(は)ね方によって変わりますが(*3)、まずは左右も前後もタイミングを90~180°ずらしてみましょう。



片足ずつ、後ろ足のゴム(グロメット)で上手に地面を蹴(け)ることができれば進むでしょう(*4)。
また、バランス(重心)や足(前後)の運び方、グロメットの取り付け状態など、左右で違いがあるとまっすぐ歩きませんので、注意します。

うまくいけば、トコトコと愛らしい小走りが見られます。
電池が弱いとヨボヨボの老犬に見えました。


*1 位相(いそう)と呼び、角度 0~360°で表します。

*2 ギアLのペグ穴には、内側の穴(中心に近い)と外側の穴(中心から遠い)があり、テキストでは外側にペグを挿していますが、内側に挿すと、足の動きが小さく、小股(こまた)歩きになります。
 スピードが遅くなるので、力は増え、坂道を上る時や綱引きに有利です。

*3 同じ動物(犬)でも、スピードによって4足の運びを何種類も使い分けていることがテキストp.21のイラストで分かります。

*4 足を後方へ運ぶ瞬間が速くなるようなスイッチの向き(テキストp.16)に入れます。
 ただし、ペグSを4足分ともギアLの内側の穴に挿すだけで逆向きに変わったりして、進み方を予想するのはとても難しいので、いろいろ試して観察しましょう。


1.3 <ミドルコース『ウォールフォロワー』>


 壁伝いロボットという意味です。
右回り専用ながら、前方の右側面から生えたガイドバー(昆虫っぽいので、触角と呼びます)が段ボールなどの壁面を正確にたどりながら周回します。

単にずっと右に曲がろうとしている結果じゃない?

そういう声もあります。
確かに、あまりにうまく壁を伝うので、そういう風にも見えます。
まるで、マイコンで周回路を認識した自律型ロボットみたいです。

 実際のところ、このロボットは、左タイヤはずっと回転したまま、右タイヤを回転させたり止めたり制御することで、直進右旋回(せんかい)の2つのモードを自動的に切り替えているのです。

制御機構は、壁面に押されて引っ込んだり、壁面から離れると輪ゴムの復元(ふくげん)力で元の位置まで出っ張ったりする触角が、右タイヤへの動力を断続させるクラッチレバーのような働きを担(にな)うことで実現しています。
これは面白い!(*1)

 輪ゴムの掛け方が強すぎると、まっすぐな壁を沿うにも右旋回モードが解除されず、壁に正面を向けて行き詰まるか、触角を擦(す)り付けるようにたどたどしく進みました。

逆に弱すぎると、直進モードから右旋回モードに移行しにくくなり、コーナーを過ぎても直進し続けるか、反応が鈍くて大回りしてしまいましたね。

自重(*2)と走行スピードに見合った輪ゴムの復元力が、壁面への追従性を決めていました。




 最後の競技は、名付けて『ウォールフォロワーGP』!
開いた段ボールをひし形に潰して床に固定し、鈍角(どんかく)と鋭角(えいかく)コーナーのでき上がり!
右回りに周回するタイムを計測します。

直角(90°)や鈍角(>90°)はスマートに曲がれても、鋭角(<90°)ですぐに曲がり始めると、右タイヤが引っ掛かってタイムをロスします。
輪ゴムを緩(ゆる)めに掛け、少し遅れて大回りする方が早く曲がれるというのが、セッティングの要(かなめ)なのでした(*3)。

正に『急がば回れ』!


*1 このロボットを初めて見た先生も感心しましたが、同様に工学畑(オタク?)の大学生講師らも本アイデアに唸(うな)ることしきりでした。
 機械式の単純なメカニズムで高度な制御を実現する“機能美”にくすぐられているのです。センスある君も感動したよね!?

*2 作用・反作用の法則により、マシンの横方向の摩擦力(=重さ×タイヤの摩擦係数)以上には触角を壁面に押し付けることはできません。
 つまり、輪ゴムを強く掛けすぎると、触角が押し込まれずに(右旋回モードのまま)壁に寄せ(タイヤをスリップさせ)続けようとし、ギクシャクします。



*3 タイヤをぶつけないよう、曲がり角を少し過ぎてからターンするなんて、サイコーにクールです!
 他に、触角を延長したり、ガイドローラーをマイタギアから直径の大きなギアLに換えたりして壁面からの距離を空け、コース取りを大回りにした工夫も見られました。










1.4 <アドバンスコース『ロボエレファン』>


 2ヶ月目の授業にして、従来アドバンスコースの最終月となりました。


7月にライントレーサ九州地区予選への取り組みを優先したこともあり、消化不良となりましたが、
本来は、ボール前で自動停止し、音に反応してシュートする象型サッカーロボを組み上げ、PK戦に持ち込む流れです。

 ボールをシュートするのに、ロボット前面でただ押すのではなく、ちゃんと蹴るアーム(*1)を組み付けます。


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



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

さらに、音センサーのジャック(出力)に光センサーのプラグ(電源入力)を繋ぐ構成により、走行停止と共に自動的にアーム動作に移行する工夫(*2)がされています。

 この完成した一連の動作を列挙すると、
1) ロボエレファンを黒ライン上に置き、スイッチを入れる
2) 手を叩くと走り出す
3) 黒ラインが途切れた所で自動停止
4) 走行停止と同時に、アームを所定位置まで引き戻してから自動停止
5) 手を叩くと、輪ゴムの力でアームを蹴り出し、目前のボールをシュート
6) そのままアームを所定位置まで引き戻してから自動停止

どうです?
光センサーや音センサー単体では大した機能を持ちませんが、これらとモーター2個の結線関係、および、機械的な動きに工夫を凝らすことで、マイコン・プログラミングに頼らずとも、ここまで高度な処理ができるのですよ。

 いや、世の流れは、マイコン・プログラミングです。
結線関係なんかに悩まず、光センサーも音センサーもモーター2個も全てマイコンに繋げれば、あとは 2)~6) をプログラミングするだけです。
シュートするタイミングや回数など、もっと自由かつ簡単に変更できます。

現代の電化製品(その昔はマイコンで動いてなかった炊飯器や洗濯機など)も、プログラムで思うがままに動かせるから、多機能な割に設計が簡単です。

 というわけで、9月からアドバンスプログラミング(アドプロ)コースに変わりますが、皆さんに肝に銘じておいて欲しいことがあります。

それは、与えられた部品が何をしてくれるかではなく、利用できる機能の組合せで何ができるかを考えることが、とても大事ということです。
(例えば、全国大会アイデアコンテストへの挑戦)

実は、世の中のあらゆる複雑な処理系(機械や電子システム)も、ごく単純な機能要素を多数組み合わせて動作しています。
ブロックで作るロボットのみならず、コンピュータの動作原理もそうですし、我々の脳ミソだって、そうかもしれません。

 確かに、マイコン・プログラミングでの機能実現は難しかったことを簡単にしますが、もっと凄いこと(究極、人間と将棋や会話をするAI)をやろうとした時など、プログラミングの最中にも同じようなこと(どのプログラム部品をどう組み合わせるか)が問われます。

それは、これまでのロボット教室と変わらない点です(*3)。
今後のテキストで、いろんな面白いロボットが紹介されますが、真似るべきところは真似て、自分なら何が作れるか、アイデアを温めながら授業に臨んでください。


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

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

*3 佐藤や中野は、幼少からのプログラミング学習が必ずしも思考を豊かにするわけではないと思っています。
 ハードウェア(リアル)上の工夫の泥臭さを知らず、ソフトウェア(バーチャル)的解法しか思い付かなくなる面では、寧ろ邪魔です。
 ブロックキットで経験を積み、算数が数学に変わる学齢になって、抽象的な思考能力も備わってきた皆さんには、良い刺激となるでしょう。


1.5 <プロ2年目コース『アームロボット(2)』>



 サーボモーター式アームロボット2ヶ月目の授業です。

 1日目は、無線コントローラー(ゲームパッド)を使って手動操縦します。

主に2種類の制御プログラムが登場しました。

1) [ArmRobot2/ArmControl]
 アーム部の開閉に2個(S0,S1)、ベース部の旋回に1個(S2)、ハンド部の開閉に1個(S3)の、計4個のサーボモーターを備えていますから、これらの回転角を、左右アナログスティックの上下および左右傾倒量に対応させて、独立に制御する方式です。
 アームロボットの「どのモーターをどちらに動かすか」だけの制御ですから、プログラムもシンプルで分かり易いのですが、S2, S3 はそれで問題ないとして、S0(肘=ひじ)と S1(肩)の「どちらをどれだけ動かせばハンド部を目標の位置にリーチできるか」は熟練の技が必要で、操作性はイマイチ良くありません。

 サーボモーター制御命令は、VarSpeedServo::write(角度) です(*1)。


2) [ArmRobot3/semiAutoArm]
 半自動という名のプログラムです。手動操縦ながら、自動支援制御を行なっています。
 先ず、S2(旋回)は独立のまま変わりませんが、S3(ハンド開閉)がボタン一発動作になっています(*2)。
 次に、S0(肘)と S1(肩)が協調動作し、ユーザーはハンド部の高さ(z)と、中心からの水平距離(d)に集中して操作できるようになりました。
 移動中は、高校数学の三角関数(余弦定理)(d, z) を満たす S0 と S1 の回転角を絶えず計算し続けています。
 これにより、一定の高さで水平移動したり、水平位置を変えずに高さだけ変えたりすることができ、より細かな仕事に向きそうです(*3)。

 ハンド開閉命令は、ArmRobot::gripperCatch() / gripperRelease() です。
 位置制御命令は、ArmRobot::setPosition(水平距離, 高さ, 旋回角度) です。
 これらの中で、各サーボモーターの回転角を計算し、VarSpeedServo::write(角度) を呼び出しています。



 2日目は、自動操縦に挑みます。
といっても、[ArmRobot3/AutoArmCatch] のように、setPosition() を書き連ねれば簡単ですね。荷物の自動搬送クレーンができちゃいます(*4)。

 “自動書記”[ArmRobot4/draw*] を試しましょう。ハンド部を外し、ペンホルダーに付け替えます。


テキストに説明がありませんが(*5)、setPosition(水平距離d, 高さz, 旋回角度r) は、dを半径とした円(柱)座標系の位置制御関数です。
紙面に文字や記号を書くときは、中学数学で慣れ親しんだXY直交座標系で座標(x, y)を指定したいですね。


心配ありません。ArmRobot::traceLine(始点座標, 終点座標) により、始点終点を結ぶ直線(線分)上を移動してくれます(*6)。
このとき、ArmRobot::penDown() しておけば線を引き、ArmRobot::penUp() しておけばペンが空中を飛びます。


各座標のデータ、つまり(x, y)2値の集合は、2 × P_NUM(頂点数)分の多次元配列 point[P_NUM][2] に格納しています。
これと、ペンの上下動データ配列 pen_status[P_NUM - 1]for文で順次読み取りながら、自動書記が進行します。

 プラスチック製長いアームを付け根のモーターで振り回すので、精度はイマイチですが、大きめに書けば鑑賞に堪えますかね?!


*1 ライブラリ名::関数名() の意です。クラス名::メソッド名() とも呼びます。

*2 全力で掴もうとしますので、卵は割れちゃうかもしれませんね。

*3 人間がさっと腕を伸ばして物を掴めるのも、赤ん坊の頃から肩や肘など複数の関節を協調させる動作に熟達してきた証です。

*4 まだセンサー入力によるフィードバック制御を搭載しておらず、危険ですが…。

*5 それどころか、XYZ直交座標系の関数であるかの如く誤った図解があります。申し訳ありません。

*6 三平方の定理・三角関数で(x, y)を(d, r)に座標変換し、setPosition() を呼び出しています。


2. 今月の課題


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

 <プライマリーコース>
  - オリジナル図面プリント

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

 <ミドルコース>
  - オリジナル課題プリント(3面図+設問)
  - 上記授業内容を精読する

 <アドバンスコース>
  - オリジナル課題プリント(見取図+設問)
  - 上記授業内容を精読する

 <プロ2年目コース>
  - 上記授業内容を精読する(該当テキストページを見ながら)
  - 自動書記プログラム用の文字を方眼紙にデザインし、座標データを抽出する


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


 中 間ミドル時間を11月~変更(15:15→15:30)させて頂きます。
 東福間ミドル時間を12月~変更(10:30→15:30)に極力ご協力下さい。

 日付の()は臨時、!は原則外、?は予定の意です。

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

[東福間]第1・3土原則
 (~2017年11月)
   - 10:30~ ミドル/アドプロ
   - 13:30~ ベーシック/プライマリ
  (- 15:30~ ミドル/アドプロ第2部)

 (2017年12月~)
   - 10:30~ アドプロ(/ミドル臨時)
   - 13:30~ ベーシック/プライマリ
   - 15:30~ ミドル(/アドプロ臨時)

 (2018年4月~予定)
   - 13:30~ ベーシック/プライマリ
   - 15:30~ ミドル
   - 17:30~ アドプロ

 ⇒ 9/2, 16,  10/7, 21,  11/4, 18


[東福間プロ]第2・4日原則
   - 12:45~ プロ2年目
   - 15:30~ プロ3年目

 ⇒ 9/10, 24,  10/8, 22,  11/12, 26


[中間]第2・4土原則<なかまハーモニーホール>
 (~2017年10月)
   - 13:30~ ベーシック/プライマリ
   - 15:15~ ミドル(/アドプロ振替)

 (2017年11月~)
   - 13:30~ ベーシック/プライマリ
   - 15:30~ ミドル
   - 17:30~ アドプロ

 ⇒ 9/ 9 第1回 3F会議室4(和室)
   9/23 第2回 3F会議室2
  10/14※, 28,  11/11, 25

 ※10/14はハーモニーホール利用不可の為、代替施設(未定)で開催します。


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

 ⇒ 9/ 3 第1回 5F小セミ
   9/17 第2回 5F小セミ
  10/1, 15,  11/5, 19


――――――――――【菅本教室長】――――――――――

[とばた]第2・4土原則<ウェルとばた8F>
   - 13:00~ 全コース(プロを除く)

 ⇒ 9/9, 23,  10/14, 28,  11/11, 25


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

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

 ⇒ 9/2, 16,  10/7, 21,  11/11!, 18


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

 ⇒ 9/10, 24,  10/8, 22,  11/12, 26


4. お知らせ

1) ロボット教室 全国大会
  8/26(土) 全国大会の模様をライブ動画でご覧になりましたでしょうか。
 今年度よりプライマリーコース部門も新設され、1000人を超える観客の中、立派にスピーチした年長さんの姿も見られました。

  九州地区からは、吉良拓真君(小倉南教室)が特別賞を受賞しました。
 全国大会に選ばれるだけでも凄いですが、更に賞を頂くとは本当に素晴らしいことです。

  来年度を見据えてですが、テキストに似た作品をエントリーすると、全国大会は厳しそうです。
 ベーシック・ミドルコースでは、ギアの仕組みを利用して、動きが大きく変化するようなものが主流となっておりました。
 動物や昆虫、モグラ叩きゲーム機など、動きに特徴があるものを考えて製作すれば、全国大会出場のチャンスが広がると思います。

  アドバンスコースはプログラミング化しますので、どのように変化するか分かりませんが、近年の受賞歴を見れば、何かが作れるロボット(今年はミサンガ、昨年はコピー機など)が評価され易いでしょう。

 全国大会2017の結果を記します。

【MVP】
 大阪・狭山池前教室 花園明良君 小4「ロボットはしご車」(ミドル/昨年のベーシックに続き2連覇!)

【テクニカルコンテスト】
 優勝 岐阜・西可児教室      熊谷拓海君 小5
 2位 和歌山・和歌山ビッグ愛教室 中尾 航君 中3(敗者復活)
 3位 埼玉・越谷中央教室     大島壮太君 小6

【アイデアコンテスト】
■最優秀賞
 プライマリー 愛知・大高青山教室 勝又皇晴君 年長「はっしーくん」
 ベーシック  大阪・狭山池前教室 田中良和君 小4「弓引きロボット」
 ミドル   神奈川・鷺沼駅前教室 宮下陽人君 小6「バトルロボット」
 アドバンス  東京・高砂教室   竹田侑平君 中1「高速回転式ミサンガ製造ロボット」

■ヴイストン特別賞
 愛知・名古屋西下萱津教室 加藤仁悠君 小6「うちわコントロールカー」(ミドル)
 愛知・大高青山教室    柘植奏汰君 小6「桃太郎誕生ロボ」(ベーシック)

■変なホテル特別賞
 愛知・豊成教室 田中桃子さん 小4「ドレミロボット」(ベーシック)

■ハピロボ特別賞
 福岡・小倉南教室 吉良拓真君 小6「チクチクサソリロボット」(ミドル)

■シャープ特別賞
 愛知・東山公園教室 福岡東馬君 小5「グローブロボット」(ミドル)

■ヒューマン特別賞
 宮城・仙台上杉教室 高橋星凪君 小2「ベガスロボット」(ベーシック)アドプロキット贈呈
 滋賀・石部教室   森地脩翔君 小4(テクニカルコンテスト第4位)ロボプロキット贈呈


2) アドバンスプログラミング(アドプロ)コース開始
  9月~東福間・八幡東・小倉北・小倉南アドバンス→アドプロ編入に続き、
 11月~中間でも新設します。振替にご利用下さい。

 2年間コースですが、途中の時間変更はない予定です。

 アドプロ進級・編入の方は、ロボットをプログラミングするためのマイコン、タブレット端末など、追加キットが支給されます。
 別途ご案内の通り、追加キット代をご負担下さい。

 お月謝は下記の通りです。初月はスタートアップ講座(SU)が必須となります。
 ◆初月  …9,720(授業料)+648(SUテキスト代)=10,368円
 ◆次月以降…9,720(授業料)+324(隔月テキスト代)=10,044円/月


3) オリジナル電子工作講座『RCドレミ』
 昨年8・10月に続き、今年も北九州イノベーションギャラリー(KIGS)で8/22-23両日に開催し、早々に満席を頂き、盛況裏に終了しました。
 https://www.kigs.jp/event/2017/06/212.php
 (公平性の為、ご案内を控えました)

 ご要望がございましたら、9/30(土), 10/29(日)での開催を検討させて頂きます。
 受講料は7,500円程度になります。また、新ネタを披露できるよう鋭意努力中です…


4) 7月課題 高得点者
 全国大会への取り組みを奨励し、7月の図面・設問プリントは休止しました。


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