2022年8月30日火曜日

2022年8月報

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


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.23のイラストで分かります。

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


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


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

単にずっと右に曲がろうとしている結果じゃない?
そういう声もあります。
確かに、あまりにうまく壁を伝うので、そういう風にも見えます。
まるで、マイコンで周回路を認識した自律型ロボットみたいです。

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

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

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

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

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

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

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

正に『急がば回れ』!


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

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

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

*4 もしくは、ギアを組み替えて、テキストの1/9減速ドライブを1/1等速ドライブなどにスピードアップする改造も考えられました。
 速いと、ガイドバーの追従性が相対的に低下するので、大回りし易くなりますが、増速しすぎるとトルク(タイヤの回転力)が弱くなるので、必ずしも速くなるとは限りません。


1.4 <アドバンスコース『ロンボ①』>


 《下記を参照下さい》
  http://robocobo.sakura.ne.jp/blog/adv/adv1-1808.pdf


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


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

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

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

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

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

1オクターブの間には、半音(*2)で数えて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> 1コマの絵のように、8×8ドットのパターンとして描画する
<方法3> 上記を洗練し、座標変数(x, y)とfor文を使って実現する


 <方法1><方法2>は、直線を引くだけにしては面倒ですし、変更も大変な作業です。
<方法3>ができるのなら、それは文句なしのスマートな方法ですが、今までは、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の半分しか変化しませんので、斜め線は緩やかになります。
一次関数のグラフ表現では、斜め線の向きを表す 20.5 を“傾き”と呼びます。
y=-x なら -1 のように、マイナスの傾きも考えられます。
プラスの傾きを上り坂と見なせば、マイナスの傾きは下り坂になります。

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

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

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

と書き直しましょう。

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

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

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

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

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

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


*1 MIDI(ミディ)規格など、音楽専用のICチップなら解釈してくれるものもありますが、その中で最終的に数値データに変換されるのは変わりません。

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

*3 電気代などの基本料金に相当します。傾きが従量料金になります。

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

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


1.6 <プロ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() を呼び出しています。


1.7 <プロ3年目コース『六脚ロボット②』>


 “割り込み”の話をしましょう。

 割り込みは便利です。やはり爽快です。イメージ悪いですか?
コンピュータの世界では、良い(無くてはならない)処理手段を指します。

例えば、「合格者はそのうち掲示板に貼り出しますので、その後すぐに手続きして下さい」と言われると、頻繁にチェックしに行かないとなりません。
大半は徒労に終わります。イベント発生後の時間的猶予が短いほど、無駄なチェックを多くする必要があります。
このような処理待ち方式を「ポーリング(polling)」と呼びます。

方や、「合格者には決まり次第電話で伝えますので、それから手続きに来ればよいです」と言ってもらえれば、何も心配せず、他の作業に専念していられますね。
このような処理待ち方式を「割り込み/インタラプト(interrupt)」と呼びます。

 マイコン/CPUは、この「特定ピンの入力変化で割り込み要求を検知 → 現在の処理を中断(状態値を退避) → 割り込み処理へ移行 → 終わると元の処理に戻る」ためのハードウェア機能を備えています。

君らだって、どんなにゲームに熱中していても、電話(聴覚インタラプト)には気づくし、視界内で這い回るゴキブリ(視覚インタラプト)にギョッとするでしょう(*1)。
適当に処理して、ゲーム続行ですね。

パソコンのキーボードやタブレットの画面を触る度にも、OSが指定した割り込み処理が発生しています。
画面を見つめたまま何分間も操作しないくせに、マウスのカーソルの動きがコンマ何秒でも遅れるとイラッとするのが人間です。
ポーリング方式では、キーボードもマウスもタッチ画面も、1分間で600回ずつ以上は調べる必要があるでしょう(*2)。

 キー入力等の、外部要因のイベントに対処する割り込みを「外部割り込み」や「ハードウェア割り込み」と呼びます(*3)。

これに対して、OSシステムコール(サービス要求)や演算例外(ゼロ除算)、メモリアクセス違反等、
プログラム的・CPU内部的要因のイベントに対処する割り込みを「内部割り込み」や「ソフトウェア割り込み」と呼びます。

一定時間の経過を知らせる「タイマー割り込み」は、プログラム的に設定して、CPUチップ内部で発生するイベント処理であっても、
CPUコア外にある専用タイマー回路からの通知を待つ形式なので、外部割り込みの一種に数えられます。

 タイマー割り込みは、一回限りのラーメンタイマーのみならず(*4)、数ミリ秒単位の一定タイミングで短時間処理が必要な用途にも使います。
例えば、疑似アナログ出力やサーボモーター指令、演奏に必要なPWM波形を生成しながら、別のメイン処理を進めることができます(*5)。

Arduinoでは、
#include <MsTimer2.h> でタイマーライブラリを召喚し、
MsTimer2::set(100, my_update); で設定後、
MsTimer2::start(); で開始するだけで、
100ms毎に自動的に my_update() 関数が呼び出されます。簡単!!

六脚ロボット操縦プログラム[HexRobot3/RemoteTest*], [HexRobot4/RemoteWalk*]では、下記のようなコードで、
20ms毎の滑らかなサーボ制御と、100ms毎の十分な(*6)コントローラー操作性という、異なる更新周期を両立させています。

#include <MsTimer2.h>


void setup() {
  MsTimer2::set(100, gatepad_update);
  MsTimer2::start();

}

void loop() {
  servo_update();
  delay(20);
}

void servo_update() {

 《サーボ位置更新(微動)》
}


void gamepad_update() {

  《コントローラー読出し》
}


これくらいなら、MsTimer2ライブラリを使わず、
下記のような時間カウンタ変数で管理しても良いです。

int Time;


void setup() {
}

void loop() {
  if(Time == 5) {
    gamepad_update();  Time = 0;
  }

  servo_update();
  delay(20);  Time++;
}

void servo_update() {

 《サーボ位置更新(微動)》
}


void gamepad_update() {

  《コントローラー読出し》
}


ところが、どうしても一方を30ms毎に、他方を100ms毎に更新したいとなると、
その最大公約数 delay(10) でループさせながら、Time30Time100 のような2変数で管理する面倒さと、コードの読み難さが出てきます。

MsTimer2ライブラリの使用時は制限事項もありますので(*7)、都合の良い方を選択してください。

 六脚(カブトムシ型)ロボットが組み上がり、サーボモーターを滑らかに制御するプログラミング方法論や、コントローラー読出しのタイマー制御、
個別のサーボモーター操縦方式[HexRobot3/RemoteTest*]から、ステートマシン(状態遷移)の考え方を取り入れた自動シーケンス制御[HexRobot4/RemoteWalk*]へのステップアップを経て、
残すは自律制御のセンシング歩行になりました。

来月はロボティクスの名に相応しい総仕上げです。


*1 人間にも、このハードウェア(生来的)割り込みが実装されているかのようです。意識せずとも、敵や獲物の動き(視覚)・足音(聴覚)の変化を即座に察知することができます。
 画像や音声データ処理に係(かか)る計算量を知ると、生物の感覚神経ニューロン(ハードウェア回路)による情報処理能力の高さに思い至ります。

*2 これだけなら大したことは無いですが、忙しいCPUには、メモリアクセスや演奏、通信ポートの監視等、他にタイムリーな仕事が山ほどあるのです…。

*3 Arduinoでは、外部ピンを監視する標準の割り込み関数 attachInerrupt(intno, func, mode) が使えます。
 割り込み処理関数func()内では、delay()が機能しない、millis()の戻り値が増加しない、等の制約があります。

*4 ラーメンタイマーくらいなら、1秒毎にカウントダウン表示する以外することが無いので、タイマー割り込みを使わずとも、delay(1000) を指定秒数分だけ繰り返せば済みます。
 但し、delay() がタイマー割り込みを使用しています。

*5 Arduino UNO用を含め、PWM出力ハードウェアを実装した(一般的)マイコンなら、それを活用したアナログ出力analogWrite()、サーボモーター駆動Servo::write()、演奏tone()等の関数/ライブラリが用意されていますので、通常はタイマー割り込みを駆使したコードをゴリゴリ書く必要はありません。

*6 超音波センサー等、入力デバイスによっては、必要以上に短い周期で読み出そうとしても、
ハード的な計測が間に合わず正しい値を得られないか、
ソフト的な処理に周期以上の時間を要して、他のデバイスの更新周期を乱すことになりかねません。
 接続デバイスのデータシートを見て、適切な頻度でアクセスする心得が必要です。

*7 タイマー回路は数個しかありませんので、MsTimer2ライブラリを使うと、
tone()関数が利用できない、13番ピンと11番ピンからanalogWrite()/PWM出力できない、という制限があります。


2. 8月の課題


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

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

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

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

 <アドバンスコース>
  - 上記授業内容を精読する
  - オリジナル課題プリント(見取図+設問)
  http://robocobo.sakura.ne.jp/blog/HW/RobotA2208-Q.pdf (来月まで分)

 <プロ1年目コース>
  - 上記授業内容を精読する(該当テキストページを見ながら)
  - 下記の手段で、任意の楽曲を演奏する(1日目)
  ・[RTTTL_Kaeru]をベースに、RTTTL楽譜データを書き換え、自動演奏
  ・[TonePS2]をベースに、必要に応じて音程割り当てを変更し、手動演奏

  -《第4回テキストp.11 チャレンジ課題》
  [MatrixGraph4]をベースに、for文2重ループのまま、平行する2本(または直交する4本)の斜め線が同時に平行移動するアニメーションを作る
 または
  -《第4回テキストp.14 チャレンジ課題》
  [MatrixLineMove1]をベースに、for文1つのまま、縦と横2本の線(十字)が同時に平行移動するアニメーションを作る

  -《第4回テキストp.15 チャレンジ課題 拡張》
  [MatrixLineTurn]をベースに、十字線を回転させる
 <プロ2年目コース>
  - 上記授業内容を精読する(該当テキストページを見ながら)
  - 任意の文字・図形を方眼紙にデザインし、座標データを抽出して、[draw*]をベースに自動書記プログラムを作る

 <プロ3年目コース>
  - 上記授業内容を精読する(該当テキストページを見ながら)


3. 7月の解答


 <プライマリーコース>
  http://robocobo.sakura.ne.jp/blog/HW/RobotP2207-A.pdf
 <ベーシックコース>
  http://robocobo.sakura.ne.jp/blog/HW/RobotB2207-A.pdf
 <ミドルコース>
  http://robocobo.sakura.ne.jp/blog/HW/RobotM2207-A.pdf
 <アドバンスコース>
 ⇒テクニカルコンテスト向けマシン注力の為、割愛しました


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


◆小倉南9月・10月・11月は耐震工事の為、山田緑地で開催します。
◆八幡東11/5は【真鶴会館】小倉北区真鶴1-5-15で開催します。

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

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

 ⇒ 9/3, 17,  10/1, 15,  11/5, 19


[東福間プロ]第2・4日原則<学習ルームでこぼこ>
   - 10:00~ プロ1年目
   - 13:00~ プロ2年目
   - 16:00~ プロ3年目

 ⇒ 9/11, 25,  10/9, 23,  11/13, 27


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

 ⇒9/10 第1回 3F会議室2
  9/24 第2回 3F会議室2
  10/8, 22,  11/12, 26


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

 ⇒9/ 4 第1回 5F小セミナー
  9/18 第2回 5F小セミナー
  10/2, 16,  11/6, 20


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

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

 ⇒ 9/3, 17,  10/1, 15,  11/5※, 19

 ※11/5は【真鶴会館】4F 第2会議室で開催します

[小倉南]第2・4日原則<山田緑地 映像室※>
   - 10:30~ ベーシック/プライマリ
   - 13:00~ ミドル
   - 15:00~ アドバンス

 ⇒ 9/11, 25,  10/9, 23,  11/13, 27 ※

 ※9月・10月・11月は耐震工事の為、山田緑地で開催します


5. お知らせ

1) 第12回ロボット教室 全国大会 テクニカルコンテスト優勝

 3年ぶりに東大 安田講堂で8/27(土)開催されました。
 テクニカルコンテスト(アドバンスレース)部門にて、下記3名を含む全国12名がトーナメント形式で戦い、YouTubeでもライブ中継されました。

 テクニカルコンテスト出場者
 [中 間]桑村 悠太郎さん≪優勝≫
      渡邉 倫太郎さん
 [八幡東]樋口 幸志郎さん

 練習通りに走らない本番トラブルの恐ろしさに幾名もが見舞われ、実力を発揮できぬままにコースアウトし、あるいは光センサー不具合でステージから落下する等の悲劇で敗退していく中、
桑村 悠太郎さんがマシンの調子を持ち直し、見事に優勝を果たしました!!

トーナメント全体を通して、王者の貫禄に満ちた高得点を連発し、2位を寄せ付けない圧勝ぶりでした。

 ビデオ予選の段階で、渡邉 倫太郎さんのスムーズな加減速、樋口 幸志郎さんの高い成功率も含めた上で、3名とも全国優勝レベルのスピードであったようで、
結果論ながら、もう少しスピードダウンして安定性に振れば1・2・3位制覇も夢ではなかったと思えるところ、戦略の難しさを思い知ることとなりました。

しかし何より、3名の皆さんがアドバンスコース最後の機会に大活躍されたことを心より祝福いたします。

 他に、年々レベルアップしているとしか思えないアイデアコンテストの方も相当な秀作ぞろいであり、観覧する楽しさ・感動も一入ですから、
ぜひ雰囲気だけでも一度ご視聴いただき、来年の構想に役立てて下さい。

 《全国大会 詳細》
  http://kids.athuman.com/robo/event/convention/2022/national/

 《全国大会 ライブ全編》… 後日ダイジェスト版も制作されます
  https://youtu.be/Y779_hxuxts


2) スペシャル地区イベント 観戦報告(中野 記)

 全国大会に先立ち、九州地区イベントが福岡市科学館サイエンスホールで8/12(金)開催されました。
参加者は少なめ、かつ午前・午後の2部制での開催でしたが、3年ぶりのリアル大会となりました。
 今年はアイデア発表会に加え、ベーシック/ミドルコース向けに改造レース部門が新設されました。

 改造レース部門では6月ロボットの「ロボフィッシュ」/「ロボザウルス」でゴールを目指します。
真っすぐゴールを目指すには、ロボットのクセを見極め、調整に活かせる経験が必要です。
当日は保護者様や先生は一切の手出しが禁止です。頼れるのは己のみ。
練習で得た経験を存分に発揮して、競技に参加してくれました。

【改造レース:ベーシック】
 ‐宮田さん 100点
 ‐吉岡さん 100点
 ‐本田さん  80点
 他、諸富さん

【改造レース:ミドル】
 ‐諸富さん 100点
 他、古賀さん、砂川さん(姉弟)

 アイデア発表会では九州各地から各コース(プライマリ/ベーシック/ミドル/アドバンス)のユニークなロボットが集い、会場を盛り上げてくれました。
 オリジナルロボットの製作には、構想から始まって各所の設計、試作、改善と課題が山積みです。
加えて発表のための準備や練習も必要ですから、かなりハードルの高いチャレンジと言えるでしょう。

 当初ハリボテだったロボットにも動きが加わり、授業を重ねる毎に完成度が増していく様子に、本番に向けて真剣に取り組む姿勢が伺い知れました。
練習では早口で聞き取れなかったプレゼンも、当日は堂々とロボットの紹介を行ってくれていました。

【アイデア:プライマリ】
 ‐亀平さん『ヤドカリロボット』
【アイデア:ベーシック】
 ‐栗本さん『ロボト虫』
【アイデア:ミドル】
 ‐高木さん『カメパックン』
 ‐鑓水さん『パクパクくん』
 ‐諭さん 『水車ロボ』

 地区イベントに参加した皆様、お疲れ様でした。普段の教室とは違った雰囲気に緊張したことと思います。
自己評価はそれぞれあると思いますが、大会に参加してみようと手を挙げた行動力と成果に心から拍手をお送りしたいと思います。

 大会後は皆様の成長を強く感じる機会が多々あり、その瞬間に立ち会えたことを嬉しく思っております。
また来年も開催される予定ですから、今年よりも多くの皆様にご参加いただけることを期待しております!!


3) 中間・小倉北ロボティクス・プロフェッサー(ロボプロ)コース時間帯の一部変更

 関係する方へは8/24メールご案内しておりますが、
中間・小倉北の一部コースで時間帯の変更をお願いした上で、
ロボプロコース10月~の体制を決定しました。

 何卒ご検討・ご対応お願い申し上げます。

 ■10月~時間帯■
 [東福間プロ]第2・4日原則
  - 1年目 10:00-12:30《変更なし》
  - 2年目 13:00-15:30《変更なし》
  - 3年目 16:00-18:30《変更なし》

 [小倉北プロ]第1・3日原則
  - 1年目 12:30-15:00《従前より30分前シフト※》
  - 2年目 15:00-17:30《開講しない予定を見送り60分後シフト》
  - 3年目 15:00-17:30《開講しない予定を見送り》

  ※不都合な方は従前通り13:00-15:30で構いません

 [中間プロ]第2・4土原則
  - 1年目 17:30-20:00《変更なし》
  - 2年目 19:00-21:30《開講しない予定を見送り90分後シフト》
  - 3年目 19:00-21:30《開講しない予定を見送り》


4) 新コース『プレプライマリー』10月~スタート

 プライマリーコースが「ベーシックコース並みに難しい」という現状を受けて、
年中~年長さんが主対象の『プレプライマリー』コースが10月スタートアップより始まります。

 プライマリーコースの易しめロボットを一部下ろす形になりますから、
プライマリーコースの一部ロボットも新作と入れ替わります。

 お月謝等は同じです。ご興味のある方がいらっしゃいましたら、ご検討・ご紹介下さい。

《コース概要》
 http://robocobo.sakura.ne.jp/blog/robot/Pre-Primary_A4.pdf


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

 ◆プライマリ【7名平均 図形4.3】
   5点…亀平[八幡東1], 坂本[八幡東3], 林田[八幡東1]

 ◆ベーシック【14名平均 図面3.2+設問1.7=4.9】
  10点…なし
   9点…なし
   8点…なし
   7点…土屋[小倉北2], 古川[小倉北3]

 ◆ミドル【9名平均 図面3.2+設問2.7=5.9】
  10点…なし
   9点…なし
   8点…柴田[小倉北5]


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