2025年3月30日日曜日

2025年3月報

1.3月授業まとめ
2.3月の課題
3.2月の解答
4.4月の授業予告
5.今後の授業スケジュール
6.お知らせ


1. 3月授業まとめ


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


 割愛します。


1.1 <プレプライマリーコース『ロボコング』>


 対象者はいません。


1.2 <プライマリーコース『のびーるハンド』>


 割愛します。

1.3 <ベーシックコース『シカッくん』>


 新作の自動起き上がり&走行ロボです。

 四角い大きなボディと、体の割(わり)に小さなタイヤ。
スマホかタブレットのようにシンプルな見た目です。


腕(うで)を回してスタンドにすると、走行モードに早変わり。
腕をたたんで収納(しゅうのう)モードにすると、バッグに入れて持ち運びしやすいですね。

キーボード付きのタブレットPCに似(に)せたのか・・・



あるいは・・・コイツか?!
 体を支(ささ)えられるように、腕には「回せる」ことと、「固定できる」ことが必要です。
これらは矛盾(むじゅん)しているようですが、腕が一方向だけに回転してくれれば両立(りょうりつ)できそうです。

腕は  後ろ向きに回る  前向きには回らない  

この一方向の回転のみを許(ゆる)す仕組みをラチェットと呼(よ)びます。

1日目のロボットでは、ラチェットは胸(むね)の中央あたりに取り付けられています。
はぐるま(ギアM)ツメ(シャフトペグ)だけで構成され、
はぐるまツメにつっかえる回転方向と、つっかえない回転方向があることが分かります。
腕が後ろ向きにしか回せないおかげで、体を起こした位置(いち)で支えられます。

 さて、2日目に、収納モードから走行モードへ自動で切り替(か)わるように改造します。

まず、1日目に作った内臓(ないぞう)をほとんどバラして、
そこに新たなラチェットカム(*1)、クラッチ(*2)の機構(きこう)を組み込(こ)んで・・・
見た目こそ1日目と大差(たいさ)ありませんが、中身は別物。
フランケンシュタインばりの大手術でした。

 改造も大変ですが、調整(ちょうせい)も大変です。
クラッチのロックが外(はず)れなかったり、ラチェットが噛(か)まなかったり、ギアからバキバキ音がして止まったり・・・
対処(たいしょ)も一様(いちよう)ではありません。

テキスト通りに作ったのに動かないロボットが続出(ぞくしゅつ)しましたが、
これは設計が悪いせいではなく、摩耗(まもう)や精度(せいど)など、パーツの微妙(びみょう)な違(ちが)いで起こります。

問題をよく観察(かんさつ)して、原因(げんいん)を推察(すいさつ)して、対策(たいさく)を考える。
これこそがエンジニアリングなのですが、ちょっと難(むずか)しすぎましたね…。

 2日目の最後に、遊びたい盛(ざか)りのお友だちは早々に改造をあきらめ、リンボーダンス(?)ゲームをしました。

カーテンをぶら下げたゲートを構(かま)え、カーテンに触(ふ)れるようにロボットの腕の角度を調節(ちょうせつ)して進ませます。
スタートラインから狙(ねら)いを定(さだ)めて、よーいドン!!
おっと、ゲートを倒(たお)してはいけませんよ!

腕が固定される角度は、カム(Tジョイント)がロック(ロッド7アナ)を外すタイミングで設定できるので、案外(あんがい)、ゲートの高さが変わっても対応できましたね!


*1 回転する出っぱり(Tジョイント)がレバー(ロッド7アナ)などを押し上げる機構。
 これにより、腕を回すギア同士の噛(か)み合わせロックを外(はず)していますね。

*2 回転を伝える状態(じょうたい)と、伝えない状態を切り替(か)える機構。
 Tジョイントがロッド7アナを押し上げ、クラッチのロック状態が外れると、回転が腕へ伝わらなくなります。


1.4 <ミドルコース『メカポンロボ』>


 対戦型ゲーム機という新ジャンルで4年前に登場した唯一無二のマシンです。





 1日目の手動型ロボットでは、輪ゴムで吊(つ)られた背中のTロッドを押し下げることで、攻撃と防御の両腕を振り下ろしますが、ここに工夫があります。

背中のTロッドはギアM(うす)を中心に、腕はピニオンギア(うす)を中心に回転し、これらのギアは噛(か)み合っています。
歯数24のギアMから歯数8のピニオンギアを回すと、回転が3倍速くなります。
つまり、背中のTロッドを動かした角度の3倍も大きく腕の向きが変わるのです。

その分、Tロッドの動きは重く、腕を振る力は弱くなりますが、君たちの手はモーターより強い力を出せますし、Tロッドの可動範囲(ストローク)にも制約がありますから、この方がすばやく攻撃できて良い感じですね。

防御の隙(すき)を狙ってうまくヒットすると首が飛ぶゲームバランスの設計にも優れ、負けると悔(くや)しくて、ついムキになって熱中してしまう面白さがあります。


 2日目に片側をマイコン反応型に作り替え、動力にモーターを使いました。

モーターは手よりも弱く、そして速く、無制限に回りますから、手動型のように増速せず、ギアM同士を噛み合わせて、等速で腕を回しています
これで手動型に対抗できる腕力と俊敏(しゅんびん)性を備えました。


 さて、バトルプログラミングしたコンピュータとの決闘です。
人間が攻撃しようものなら、必ずその音に反応して反撃してきます。
自分の首が取れようが、手がもげようが、お構いなしに腕を振りかざし、襲ってきます。

そう、その様は、復讐の他に観念を持たない落ち武者の亡霊のように、不気味で、イイ・・・

1.5 <アドバンスコース『メクリン②』>


 前半(1・2日目)の複雑でメカメカしい作りから、シンプルなロボットへと作り変えました。
前半のロボットでページをめくるには、機械的な微調整が不可欠でした。
後半のロボットでは、可動部がモーターに直結されているため、機械的な調節の余地は少なくなりました。

 ページをめくろうとするとき、適度な力でゴムタイヤを紙に押し付ける必要がありました。
後半のロボットでは、タイヤを取り付けた腕を振り下ろした後もモーターを駆動させ続け、この力を生み出しています。
しかし、ずっとタイヤを紙に押し付けたままページをめくってしまうと、紙が折れ曲がってしまい、上手くいきません。
そこで、ロボット本体が左に移動したある時点で、腕モーターの駆動を止め(もしくは弱く持ち上げ)、ページの折れ曲がりを防いでいます。


 後半のロボットの良さは、微調節を機械的に行うのではなく、ソフトウェア的に行える点にあります。
紙を押さえ付ける圧力を調整したければ、モーターの出力値を変更すれば済みます。
圧力を解放する/持ち上げるタイミング等も、プログラムから制御できますね。


 4日目の教室では、「ページめくりを極めるも良し。ロボットを使った遊びを考えるも良し。」として、
一部ではプログラムを改造して、「叩いて、かぶって(の代わりに逃げて)」ゲーム機にして対戦しました。  

この遊びに対応するのに、ロボットの機械的な改造は不要です。
右タッチスイッチを押すと、腕を振り下ろし、相手を叩きます。
左タッチスイッチを押すと、相手の攻撃をかわすためにロボットを左に移動させればよいわけです。

機械構造的には同じでも、プログラムで機能がガラッと変わるのは面白いですね。

 プログラム次第で機能を変更できるのは、コンピュータの最大のメリットです。
小型のコンピュータ(マイコン)が開発される前は、製品ごとに専用設計のICチップを開発していました。
例えば、電卓には電卓専用設計のチップを、時計には時計用、オーディオにはオーディオ用といった具合にです。
専用チップを作るためには、回路図や露光マスクから作り変える必要があるので、時間もお金も多く必要です。
また、一旦チップを作ってしまうと後から機能の追加や変更はできません。その時は、また一から作り直しです。

ところが、マイコンの登場により、この状況は一変しました。
マイコンであれば、多くの機能がプログラムだけで変更できます。
電卓にも洗濯機にも、同じマイコンチップを搭載することが可能になるのです。  
マイコンを使うことで、電気製品の開発コストは下がり、開発期間も短くなりました。



皆さんがよく遊ぶゲーム機も、ゲームごとに本体を買い直す必要はありませんよね。
無料ダウンロードだけでも、いっぱい遊べちゃうわけです。
そこでも、コンピュータとプログラムの恩恵を受けているわけですね。 
昔のゲーム機は1つのゲームしかプレイできないのが当たり前だったんですよ!
(それはそれで新しいハードを手に入れるのがとびきり楽しみな時代でしたが…)


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


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

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

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

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

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

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

センサー情報を2値(デジタル判定)化するだけでも2×2=4通りに場合分けされることのみならず、スマートな動きを実現するには、センサー2個の変化・判断の順序やタイミングなど、気にすることが増えるからです。

 2日目では、センサー1つを様々な位置に取り付け、プログラムを適応させることで、
・ 障害物を避けるロボット[avoider]
・ 机から落ちないロボット[nofall]
・ 机の端を沿うロボット [tablerunner]
壁ぎわを沿うロボット [walltracer]
を実現できることが紹介されています。

あの『ル○バ』に勝るとも劣らず、生き物らしく見えるでしょう。

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

勿論、これらを2つのセンサーで制御すれば、プログラムが高度になる分、よりスマートな動作で報いてくれます。


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

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

こうして自分のロボットにを吹き込んでみれば、君はもうフランケンシュタイン(怪物の創生者)であり、鉄腕アトムのお茶の水博士です。


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

*2 音の伝わる速さとして、空気中で340m/秒、水中で1500m/秒を覚えておきましょう。
 すなわち、地上と水中で計算式が変わりますが、時間から距離が求まります。

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


1.7 <プロ2年目コース『倒立振子ロボット③』>


 今タームの最終月にして、倒立振子ロボットは終(つい)に日の目を見るのか?

 1日目は、この倒立振子ロボットを製作しました。
前後方向にだけ倒れる、左右2輪のリヤカー(大八車)タイプです。

 ここで、振り子の特性について、整理します。
振り子と言えば、今は飾りにしか使われなくなった振り子時計を想起しますね。
振り子は、支点から質点(≒おもりの重心)までの棒の長さによって揺れる周期が決まり、意外に、おもりの重さとは無関係です。
この、一定のリズムで振れる性質を“等時性”と呼び、昔の時計の進み具合に利用していました(*1)。

これを逆さに立てた場合(倒立)も同様に、棒が長いほど、倒れるのに時間が掛かるようになります。
ペンは一瞬で倒れますが、箒(ほうき)は1~2秒、テレビで見る倒木や煙突の倒壊には数秒以上を要しますね。
だから、手のひらに箒を立てることはできても、鉛筆が無理なのは、立て直す時間が足りないからです(人間には…)。

このロボットの高さ20cm程度でも、人間には難しい仕業でしょうから、立てたら凄いですね。
クララが立った(*2)時に匹敵する感動が味わえそうです。

 2日目です。

 不安定な足(タイヤ)で立てる原理は、箒と同じです。傾いた方向(前後)に動けば良いのです。
そのためには、今の状態[現在値を知り、あるべき状態[目標値との誤差を計算し、その誤差に適切な比例係数[ゲインを掛けて、制御量[出力値を発揮することを高速に繰り返すのです。

 ゲイン × 誤差(現在値[入力] - 目標値) = 制御量[出力]

前月で学んだフィードバック制御ですね。常に北を向くように旋回するオムニホイールロボットがそうでした。
北を0°として、方角(角度)のズレ(±)に比例した強さでモーターを正逆回転させれば、強弱の効いた滑らかなフィードバック制御が実現しました。

これを、P(Proportional:比例)制御と呼びます。これが基本です。

しかし、わずかな方角のズレでも素早く戻すようモーターを強力に駆動すると、ブルブルと振動してしまい、いつまでも目標値に収束(しゅうそく)しなくなりました。
1年目で嫌と言うほど経験してきたように、摩擦力が大きなタイヤの回転は、弱いパワーでは停止し易いですので、比例ゲイン Kp を抑えるだけで収束しましたが、振り子の運動は摩擦力が低いのが特徴です。

加えて、垂直付近では、重力による回転トルク(倒す力)がゼロになり、速度(勢い)を抑える外力が消えるため、慣性の法則により、勢い余って反対側に倒れ易くなります。
つまり、P制御だけでは、いつまでもグラグラすることになります(*3)。

 そこで、D(Differential:微分)制御を加えます。

これで、速度を抑える作用が働きます(*4)。
現在の(角)速度を割り出し、目標(角)速度ゼロとの誤差に微分ゲイン Kd を掛けて、制御量に加えます。
D制御は、現在値の変化に機敏に応答する特性があるため、意地悪に手で突ついたり、段差等で不意な外力が加わったりして倒れそうな場合でも、素早く立て直す作用に貢献します。

 3つ目に、I(Integral:積分)制御も加えます。

テキストで「静止に近い状態で作用する微調整」とはぐらかしていますが、高校数学の積分の概念が難しい故です。
簡単に言えば、微妙なズレを続いている時間分積算し、これに積分ゲイン Ki を掛けて、それを正すように作用させます。
短時間的に算出するP制御D制御による制御量が、目標値近傍においてゼロになり、長時間的なズレの補正に作用し辛いからです。

これら3つの要素によるフィードバック方式を『PID制御』と呼びます。

 最後に、「姿勢ゼロ点設定の調整」なんかも持ち出されて、混乱に拍車を掛けます。

これは、ロボットの重心の違いや、姿勢センサーの固定具合によってP制御やI制御の入力となる倒立角度の検出値に生じる誤差など、個体差を補正するものです。
これがなければ、倒れないには倒れないが、下手な一輪車がバランスを保とうとして、ひたすら前に進むような状態になったりします。

 いやー、絶妙な倒立振子ならではの制御ですね。
これでも、まだ、電源電圧によって各種ゲインを調整しなければ、プルプル震えながら立つのがやっとです。
「倒立ロボが、倒立ロボが、立ったー!」と叫びたければ好適な様子ですが。

 ところで、モーター端子に大小のコンデンサが半田付けされているのは、モーター駆動の電磁ノイズが姿勢検出値を乱さないようにするためで、初期のモーターには付いておらず、うまく立てずに暴走しがちでした。

「それで、結局、どのプログラムを走らせれば倒立するの?」
というのが多勢の興味でしたが、曲芸はそう簡単には実現できないのですね。
エンジニアリングの一端を垣間見た気がします。


*1 ロボット教室ミドルコース『チクタクロック』で学習しました。
 電池で動くインテリア時計の振り子は、ただのフェイクです。

*2 昭和アニメ「アルプスの少女ハイジ」中の名ゼリフです。近頃はめっきり通じなくなりました…

*3 バネによる懸架も天然のP制御で、自動車のサスペンションがコイルバネだけだと、段差を乗り越えた後いつまでもボヨンボヨン揺れ続けてしまいます。

*4 高校数学/物理ですが、位置(角度)を時間で微分したものが速度(角速度)になります。
 自動車のサスペンション(天然の地上高制御)機構で言えば、ダンパーに相当し、速い振動を抑えます。
 ダンパーはドアにも取り付けられ、急に開閉すると抵抗を感じますね。


1.8 <プロ3年目コース『二足歩行ロボット③』>


 二足歩行の制御シーケンスをプログラムに落とし込み、ボタン一発で自動歩行させる最終月です。

両足首のサーボモーター3個を個別に制御する手動操縦プログラム[BiRobotTest4_libまで]では、





1) 体を右傾させる     (左足を浮かせる)
2) 着地した右足首を左に捻る(左半身を進める)
3) 体を左傾させる     (右足を浮かせる)
4) 着地した左足首を右に捻る(右半身を進める)
という一連の動作(シーケンス)を繰り返せば前進、逆順で後退できました。

この順をそのままプログラムに記述すれば自動で歩行しますが、もう少し整理して、
a) 腰も足首も捻らず(原点位置で)直立した静止状態を挿入し、
b) 2)と4)の両足首を捻る方向の組合せで前進・後退・左旋回・右旋回の4動作を切り替える
ことを実現したのが、ボタン一発型の自動歩行プログラム[BiRobotTest5_lib]です。

 この機能レベルになると、ある時点ではどうなっており(状態)、何ができて(動作)、次にどうなるか(遷移)をしっかり設計し、プログラム中でも管理する必要がでてきます。

それには、逐次処理的な制御フローを図示するのに向いたフローチャートよりも、
各状態・動作・遷移に注目した制御フローを図示する状態遷移図が向いています。

状態遷移図は、「有限個の状態と遷移と動作の組合せからなる機械モデル」の設計図です。
この機械モデルを有限オートマトン(finite automaton)または有限ステートマシン(finite state machine)と呼びます。
機械モデルの実装はロボットでも、ソフトウェアでも、ピタゴラスイッチでもあり得ます。

 何やら小難しい響きに聞こえますが、プログラムが組めない人でも、テレビのリモコン操作を不思議に思ってなければ、裏で流れる制御ソフトの仕業として感覚的に理解していることです。

例えば、「入力切替」で画面モード(状態)を切り替え(動作・遷移)ますね。
さらに、同じ数字ボタンを押しても、地デジではチャンネルが替わり、ビデオ入力では無効になり、ブラウザではカーソルキーとして働くなど、現在の状態によって、可能な動作と遷移先の状態が変わります

 複雑な制御シーケンスや分岐・繰返し構造を場当たり的に記述していくと、バグによる思わぬ動作不良を招き易くなります。
これを、とり得る状態の数(無限にはない)に分解して、各状態における動作と遷移先の状態を規定していけば、比較的簡単に信頼性の高いシステムが設計できるというアイデアです。

状態遷移図(または表)や、より拡張された表記法である統一モデリング言語(UML)等を利用して、様々な製品が設計されています。

 さて、プログラム中で状態を管理するには、現在および遷移先の状態値(番号・記号)を記憶しておくための変数を用意します。
このような変数名には、"flag", "mode", "state", "step"等の文字列を入れると良いでしょう。
あとは、状態値に応じて、if文やswitch/case文による分岐ブロック{ }内に、動作(関数呼び出し)や状態値の書き換え(遷移)と、それに必要な条件(無条件なら不要)を記述するだけでも形になります。

独学でプログラミングを始めても、全員が発明しそうな必然の工夫です。

今回の二足歩行プログラムには、超音波センサー等の入力(条件)による自律的な状態遷移はありませんが(*1)、
前述の通り、無線コントローラーのボタン操作(条件)により足首の捻る方向(動作)を変え、4つの歩行モードを切り替えています。


 その他、下記のような制御の工夫点がありました。

繰返し周期の多重化
 1つのメインループ loop() 内で、高頻度なサーボモーターの位置更新と、
中頻度なコントローラー操作や超音波センサーからの読出しとディスプレイ更新、
低頻度な音の更新を両立させるテクニックです。


void loop() {
  if (CounterA == 0) {
    xxx.read_gamepad();
// コントローラ読出[100ms毎]
    yyy.ping();       
// 超音波センサ計測[100ms毎]
    updateDisplay();   
// ディスプレイ更新[100ms毎]

    if (CounterB == 0) {
      updateTone();   
// 音の更新[300ms毎]
    }
  }

  updateServo();       
// サーボモータ更新[20ms毎]

  CounterA++;         
// 0→1→2→3→4[20ms毎]
  if (CounterA == 5) {
    CounterA = 0;     
// 0リセット[100ms毎]

    CounterB++;       
// 0→1→2 [100ms毎]
    if (CounterB == 3) {
      CounterB = 0;   
// 0リセット[300ms毎]
    }
  }

  delay(20);   
// 毎秒50回ループ[20ms毎]
}


サーボ移動量の緩和
 上記でコントローラー操作を100ms毎にしか読み出さないのに、サーボモーター位置を20ms毎に更新するのは動きを滑らかにするためですが、
そのために足首は1/5ずつ、腰は(反動で倒れやすいので)1°ずつに毎回の更新量を制限するテクニックです。


diffLF = (targetLF - currentLF)/5; 
// 左足首の移動量/5
diffRF = (targetRF - currentRF)/5; 
// 右足首の移動量/5

currentLF += diffLF;           
// 左足首サーボモータ角度
currentRF += diffRF;           
// 右足首サーボモータ角度

servoLF.write(currentLF);     
// 左足首サーボモータ更新
servoRF.write(currentRF);     
// 右足首サーボモータ更新

if (currentBD < targetBD) {
  currentBD++;                 
// 腰サーボモータ+1°
else if (currentBD > targetBD) {
  currentBD--;                 
// 腰サーボモータ-1°
}
servoBD.write(currentBD);     
// 腰サーボモータ更新



 この二足歩行ロボットは、3個と少ないサーボモーターで多様な歩行動作ができるだけでなく、上体を左右に振り、片足を浮かせて両足首を曲げられるので、シーケンス制御のセンス次第では、ダンスのような動きも見せられるでしょう。
胸のディスプレイ演奏力も武器にして、ロビに勝るエンターテイメントロボに仕上げてみてはどうでしょうか。


*1 目玉に見せかけた超音波センサーが付いていますが、計測した距離に応じてメーター表示や鼓動音を変えているだけであり、歩行制御には関与していません。


2. 3月の課題


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

 <プレプライマリーコース> (プライマリーではありません)
  - オリジナル図形プリント
  https://robocobo.sakura.ne.jp/blog/HW/RobotPP2503-Q.pdf

 <プライマリーコース> (難しければプレプライマリー↑でもOK)
  - オリジナル図形プリント
  https://robocobo.sakura.ne.jp/blog/HW/RobotP2503-Q.pdf

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

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

 <アドバンスコース>
  - 授業まとめを精読する
  - オリジナル課題プリント(見取図+設問)
  https://robocobo.sakura.ne.jp/blog/HW/RobotA2502-Q.pdf (2月配信済み)

 <プロ1年目コース>
  - 授業まとめを精読する(該当テキストページを見ながら)
  - 単一距離センサーロボット[avoider/nofall/tablerunner/walltracer]のいずれかを改良し、
  ダブル距離セ ンサーロボットとして、より洗練された動きを設計・実装する

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

 <プロ2年目コース>
  - 授業まとめを精読する(該当テキストページを見ながら)

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


3. 2月の解答


 <プレプライマリーコース>
  https://robocobo.sakura.ne.jp/blog/HW/RobotPP2502-A.pdf
 <プライマリーコース>
  https://robocobo.sakura.ne.jp/blog/HW/RobotP2502-A.pdf
 <ベーシックコース>
  https://robocobo.sakura.ne.jp/blog/HW/RobotB2502-A.pdf
 <ミドルコース>
  https://robocobo.sakura.ne.jp/blog/HW/RobotM2502-A.pdf
 <アドバンスコース>
  翌テーマ1ヶ月目(来月)に配信します


4. 4月の授業予告

 https://robocobo.sakura.ne.jp/blog/hap/robo-2504.pdf

 <プレプライマリーコース>『キックボーダー』
 <プライマリーコース>『がたごとレスキューたい』
 <ベーシックコース>『ケンドーロボ』
 <ミドルコース>  『ロボキャッチ』
 <アドバンスコース>『ブランカー①』
 <プロ1年目コース>『オムニホイールロボット①』
 <プロ2年目コース>『不思議アイテムII①』
 <プロ3年目コース>『不思議アイテムIII-1①』


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


◆5月は小倉南を除く全教室(東福間・古賀・八幡東・小倉北)で一週ずつ遅れます。
 5月は小倉北⇔小倉南で(同日の為)振替できません。
◆6月も日曜日の教室(東福間プロ・小倉北・南)は一週ずつ遅れます。
小倉南5/11は〔山田緑地〕で開催します。

――――――――――<佐藤教室長>――――――――――

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

 ⇒ 4/5, 19,  5/10※, 24※,  6/7, 21

 ※5月は一週ずつ遅れます

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

 ⇒ 4/13, 27,  5/18※, 6/1※,  6/15※, 29※

 ※5月・6月は一週ずつ遅れます

[サンリブ古賀]第2・4土原則<文化サークル>
   - 10:30~ ベーシック/ミドル/アドバンス

 ⇒ 4/12, 26,  5/17※, 31※,  6/14, 28

 ※5月は一週ずつ遅れます

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

   - 12:30~ プロ1・2年目/卒業制作
   - 15:00~ プロ3年目

 ⇒4/ 6 第1回 5F企画ルーム1
  4/20 第2回 5F企画ルーム1
  5/11※, 25※,  6/8※, 22※

 ※5月は一週ずつ遅れ、小倉南と同日(振替不可)となります
 ※6月も一週ずつ遅れます

――――――――――<中野教室長>――――――――――

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

 ⇒ 4/5, 19,  5/10※, 24※,  6/7, 21

 ※5月は一週ずつ遅れます

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

 ⇒ 4/13, 27,  5/11※, 25,  6/15※, 29※

 ※5/11は農事センター利用不可につき〔山田緑地〕で開催します
 ※6月は一週ずつ遅れます


【振替教室ご利用条件(ロボプロを除く)】――――――――
 振替先の1週間前までにメール下さい(許可制)
 振替手数料550円/回をご負担下さい(お引落し)
 (東福間⇔小倉北のみ無料)
 所定コース内容・時間のみお受けします


6. お知らせ


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

 ◆プライマリ【2名平均 図形2.5】
  高得点なし

 ◆ベーシック【15名平均 図面3.0+設問1.4=4.4】
  10点…なし
   9点…なし
   8点…なし
   7点…福田[八幡東3]
   6点…小川[小倉北3], 姥[小倉南4]

 ◆ミドル【13名平均 図面3.5+設問1.8=5.3】
  10点…なし
   9点…なし
   8点…土屋[小倉北4]
   7点…荒川[小倉北4]


東福間・小倉北・サンリブ古賀教室 佐藤 / 八幡東・小倉南教室 中野