2022年9月29日木曜日

2022年9月報

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


1. 9月授業内容


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


 割愛します。


1.1 <プライマリーコース『メカビートル』>


 割愛します。

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


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

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

 2日目でようやく、衝突(しょうとつ)で押し込まれるバンパーがスライドスイッチを反転させる機構(きこう)を組み付けました。

しかし、中には下記のポイント【レベル1・2・3】が未解決のため、最後までうまく動作しなかった例も散見(さんけん)されました。
スライドスイッチが固いものであったかもしれません。
レベル毎に順を追って、解決していきましょう。

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

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

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

【レベル4】それでもダメなら、もっとスピードアップ!
 7) モーター軸のピニオンギアをギアMに交換する(*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.3 <ミドルコース『ロボアーム』>


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

 動力はいつも通り、電池ボックスに繋(つな)いだモーター1個だけです。
手元で制御できることはせいぜい、スライドスイッチを反転させることくらいです。

なのに、スイッチを入れると、
1) 垂れ下がったハンド(アームの先端)が物を掴(つか)む
2) アームを水平まで持ち上げる
3) アーム全体が回転して反対側へ運ぶ
の順に動作します。
所望の位置で止め、今度はスイッチを反転させると、先程の逆順ではなく
4) 先ずはアームを降ろし
5) ハンドを開いて荷物を離し
6) アーム全体を元の側に回転して戻す
という一連のクレーン操作を熟練したかのようにこなすのです。

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

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

通常は、ウイリーよりも小さい力で済む加速だけに使われますが、
物体(バイク)は素早く加速させようとするほど大きな力を要する慣性の法則(*2)により、あまりに強大な力(エンジン全力)にとっては、ウイリーさせる(前輪を浮き上がらせる)方が“”なのですね(*3)。

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

実際、3段階目のアーム回転動作が軽すぎて、2段階目の持ち上げ動作をスキップしたり、並行動作したりするなど、不安定になる場合がありましたが、
● 土台(ギアボックス)と回転アームの間に輪ゴム(またはホイール抜きタイヤ)を挟む
● アーム天板を装飾して重くする
ことで摩擦を稼ぐと、スムーズに動作しました(*5)。

 完成したロボットで、荷物搬送ゲームをプレイしました。
ロボットの片側エリアからタイヤ(またはホイール)を掴んでは、アームを180°回した先に降ろして得点ゲット!
アームの回転摩擦力を増やして、しっかり持ち上がるようにしておかなければ、地面を擦(こす)ったり障害物に当たったりして落とし易くなります。

単純に思えたスイッチの反転操作に手間取る(必ずしも逆順に動作しないので、細かなやり直しが難しい)一面もありましたね。


*1 接地状況により、ホイールスピン(タイヤを路面上で空転させる)を3つ目に数えることもできます。

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

*3 “楽”に動く方が選ばれるもう1つの原理は、作用・反作用の法則です。
 物が動き始めるには、別の物を押して返ってくる反力をもらわねばなりません。
タイヤのグリップ力が強大で滑らない場合、固い地面はバイクのエンジンパワーに負けることなく、タイヤが蹴るのと同じ力でいくらでも押し返してくれます。
ランニングマシンの上なら、床の方が後方へずれる動きも可能ですが、逃げない相手(動かない地面)に対しては、自分の方が逃げる(加速かウイリー)しかありません。
 ハンドやアームが限界位置まで来ると、それが動かない地面のように振舞って、次の動作へ逃げます。

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

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


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


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

● やわらか輪ゴムブラシ
● 非固定プラスチック&輪ゴムの融合ブラシで詰まらずお掃除
● バック時も安心、タッチセンサー黒で電源シャットダウン
● 掃除機型アトラクション?
● 浅い角度でも壁を検知、丸形バンパー
● ヘッドを左右に振ってゴミを収集、ブラシレス掃除機
● 手押しでブラシが回転、電源いらず、手動式クリーナ
● 高速回転プロペラでゴミを吸引、ハンディークリーナ
● 家具の下など狭い隙間もお掃除、低い全高設計


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


 不思議アイテムの世界も、最終月を迎えました。

 1日目は、“ラーメンタイマー”を作ります。
時間を計る(というより休め!の指示)命令としては delay がありますので、所望の時間だけ静止した後、ブザーでも鳴らせば一先ず完成ですが、経過状況も知りたいのが人情です。

delay(1000) と命令する度に何かをすれば、1秒毎の経過が分かります。
delay(100) を10回繰り返して、0.1秒単位のカッコイイ表示もできます。
秒数を2桁の数字で表したければ putd2、大きな1文字を表示したければ putch、任意の大きさで円や四角を描画したければ circlerectangle、1ドット光らせたければ write、1音を鳴らしたければ play、メロディを奏でたければ play_rtttl、モーターを回したければ rotate等、いろんな命令が紹介されています。

 サンプルプログラムでは、タッチセンサーの入力検出に listenonPress、繰り返しに forwhile、条件分岐に ifswitch-case を使って、初めに秒数やアラーム方法を選ばせる実用的タイマーに仕上げていました。
中には「ピッ、ピッ」と音を発しながら10秒からカウントダウン表示し始める、その名も時限爆弾の CountBom もありました(*1)。

 最終日の2日目は、ちょっと遊んで一息つくのにふさわしい「人工生命とシンセサイザー」がテーマでした。

 人工生命といっても、8x8ドットのそれぞれを生命体(細胞=セル)になぞらえ、周囲の生存セル数に依存した単純な規則によって誕生・生存・死滅を世代展開していく様子を観察して楽しむものです。“ライフゲーム”と呼ばれます。

それの何が面白いといって、“カオス的”なのです。簡単なルールで動いているのに、先行きが読めないのです。
初期状態のちょっとした違いが全く異なる結果を生み、にわかには予測不可能なパターンを繰り広げます。
このような多数の要素が相互に絡み合って状態遷移していくシステムを複雑系と呼びます。

ただ、複雑系には、局所的な要素間の相互作用からは挙動が乱雑で予見できなくても、全体として何らかの秩序や機能の“創発”が見られる場合があります。

現代のコンピュータが、入力信号に従って電流をON/OFFするだけのトランジスタという単純な“条件付きスイッチ”で構成されているように、
実は、周囲の状態に応じて各セルの生死が決まるライフゲームでも、論理回路を構成してコンピュータを再現できること(チューリング完全)が証明されています。

ここから(*2)、生命現象や神経回路網の再現、人工知能の研究へと発展していきました。
コンピュータの登場がこのような楽しみと学問の道を開いたのですね。

ライフゲームの途方もなく奥深い世界は、下記YouTube動画で味わいましょう。

■ THE RECURSIVE COSMOS: Conway's Game of Life - PART 1
 https://youtu.be/yw-j-4xYAN4

■ THE RECURSIVE COSMOS: Conway's Game of Life - PART 2
 https://youtu.be/m4LtaZNHN9E

■ THE RECURSIVE COSMOS: Conway's Game of Life - PART 8
 https://youtu.be/1l5ie_owyik

■ ∞ L I F E
 https://youtu.be/D6aP9S9rEQk


 シンセサイザーの方は、先月の“電子ピアノ”を改造したプログラムです。
無線リンクしたゲームパッドのボタンが鍵盤になっている点は変わりませんが、アナログスティックを倒す量に応じて周波数を増減させる、エフェクター(ピッチシフター)機能が搭載されました。

プログラム上では、“play(NOTE_C4 + effect)”のように、音名を表す記号 NOTE_** にスティック傾倒量 effect を足しています。
“ド”に数値を足すって、どういうことでしょうか?

 先月の1日目に学びました。音名記号は、プログラムの転送前(コンパイル時)に音の周波数に置き換えているのです。
例えば、440Hzの“ラ”ボタンを押しながら、+54相当分スティックを前に倒せば494Hzの“シ”に、-48相当分スティックを引けば392Hzの“ソ”に変わる、という具合です。

 デジタルの世界では、すごく簡単な計算で豊かな効果を演出できる、という一例です。
ロック・ギタリストにでもなった気分で、ブイブイ演奏してみましょう。

 ここまでで、もう、光と音を自在に操れる魔法を手に入れたようなものです。


*1 ジョーク・プログラムなのですが、むき出しの配線や電子基板の中で赤いLED数字がカウントダウンを始めると、かなり物騒な雰囲気を醸し出します。
 テロが心配される国では冗談どころか、誤解から自身を危険に晒すことになるでしょう。
 日本でも、公共の場でいたずらに利用するのは厳に慎みましょう。警察沙汰になるか、配線が切断される被害(?!)に合うこと請け合いです。

*2 ライフゲームそのものというより、上位概念のセル・オートマトンと呼ばれる格子状セルで構成した計算機モデルから。
《ライフゲーム》https://ja.wikipedia.org/wiki/%E3%83%A9%E3%82%A4%E3%83%95%E3%82%B2%E3%83%BC%E3%83%A0


1.6 <プロ2年目コース『アームロボット③』>


 最終月は、サーボモーター式アームロボットを使った仕事(?)編です。

 アームロボットが高精度に動いたとして(*1)、決まった文字を書く自動書記や、決まった位置の荷物を運ぶ自動搬送など、
決め打ち”プログラムで人を楽しませることはできますが、センサー入力による制御がなければ、時計の針と大差ありません。

 台座(ベース)部に超音波センサーを取り付け、荷物までの距離を測れるようにしました。


Ultrasonic xxx(US1);
  // US1接続センサーへのアクセス用インスタンス(オブジェクト変数)xxx生成

long  us = xxx.timing();

float cm = xxx.convert(us, Ultrasonic::CM);
float mm = xxx.convert(us, Ultrasonic::MM);


と書けば、超音波センサーからの時間(マイクロ秒)を us に読み取り、音速から距離を計算し、cmmm に変換してくれます(*2)。

これで、アームロボット自身が荷物までの距離を計測し、掴みに向かうプログラム [ArmRobot5/SensorArmRobot3_4] ができます(*3)。
掴む位置(計測値による動作)が掴んで欲しい位置よりも15mm遠方であれば、setPosition(mm - 15, …) のように補正するだけです。

 あるいは、超音波センサーをハンド部に取り付けて、手を近づければ逃げ、遠ざければ追ってくる不気味なハンド [ArmRobot5/SensorArmRobot2Ans] にして遊ぶこともできます(*4)。

 他に、超音波センサーを使わず、“決め打ち”や手動コントローラーで遊ぶサンプルプログラムが用意されています。

・[ArmRobot6/Block] … 位置と高さを決め打ちした、ブロック積み
 ⇒ 3個くらい積み上げられますか?

・[ArmRobot6/semiAutoArmCustom] … コントローラーによる手動操縦
 ⇒ [ArmRobot3/semiAutoArm] と同等ですが、速度調整(リミット)され、可動範囲を広げています

・[ArmRobot6/UFOcatcher] … UFOキャッチャー
 ⇒ どのような動作か、説明がありませんが、プログラムを解析できますか?

自由に改変してプログラミング力を上げておきましょう。


*1 前回書いたように、プラスチック製の長いアームを付け根のモーターで振り回すので、精度はイマイチですが…

*2 音速を340m/sとすれば、cm(片道距離) = 340 * 100 * us(往復時間) / 1000 / 1000 / 2 で求まります。

*3 旋回角度 0°限定方向です。持ち上げて旋回(搬送)する先は適当に決めます。

*4 もっと生き物っぽさを出したければ、あまりに手を近づけ過ぎるとハンドを閉じては開くという動作を加えて、噛みつき攻撃を表現するのもよいのではないでしょうか。


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


 ロボティクスの名に相応しい六脚(カブトムシ型)ロボットの総仕上げに、
先月第4回までの自動シーケンス制御[HexRobot4/RemoteWalk*]をベースに、
  第5回:障害物センシングによる自律歩行制御[HexRobot5/HexCrawler*]
  第6回:与えたデータ通りのモーション再生制御[HexRobot6/HexMotion*]
を足しました。

本ロボットの制御に使用したプログラミング技術は、

現在値目標値を管理し、一次関数で補間することによるサーボモーターの滑らかな制御
● サーボ制御と異なる周期でのタイマー割り込みによるコントローラー読出し
ステートマシン(状態機械)モデルによる歩行モードおよびシーケンス(ステップ)管理
乱数によるランダム分岐制御
モーションデータ二次元配列への格納とアクセス

など、てんこ盛りです。

ソースコードは700行(コメント・空行を除いても450行)を超え、全体像を把握するにも精神力が要ります(*1)。
それを知りたいと思って、ここを読む人はいないし、その必要もありません。
それぞれの技術をもう一度知りたいと思ったときに、テキストやサンプルプログラムが参考になるでしょう。

今は100%理解しなくても、将来、何らかのロボット制御プログラムを書く段になったとき、この経験や考え方が大いに役立つでしょう。

ここでは、ゲーム制作に役立つ(というより必須の)テクニックをピックアップしておきます。

 じゃんけんプログラムを作りたい場合、コンピュータにグー・チョキ・パーをランダムに出させたいですね。
random(3) でランダムに出てくる 0, 1, 2 を対応させます。
サイコロの目なら、random(6) + 1 または random(1, 7)1~6 が出ます。

ここで知っておくべきことは、ランダムと言っても「真にデタラメな順番ではない」という事実です。
プログラム通りのビット演算しかできないCPUに対して、「何か適当な数字を出して!」は難しい注文なのです。
だから、十分ランダムに見えるように、何かしら“最初の数”をこねくり回す関数で“ちゃんと計算して”出します。

全く適当じゃないですね。これを「疑似ランダム」とか「疑似乱数」といいます。
一回限りのゲームならこれで良いのですが、問題は、プログラムを起動する度に、毎回同じ順番で数(グー・チョキ・パー)が出てくるという現象です。
これは、ゲーム機としては致命的と言って憚(はばか)れないでしょう。

 そのために、疑似乱数列生成関数に“シード値”(種となる初期化番号)を与えて、乱数列を変えられるようになっています(*2)。
Arduinoでは randomSeed(シード値) と書き、シード値はlong型整数(-2147483648~2147483647)です。

randomSeed(0)randomSeed(1) では、その後に呼び出される random() が出す数の順番が異なります。
一方で、シード値が同じなら同じ乱数列になることが“保証される”ので、シード値を毎回ランダムに与えないとなりません!

randomSeed( random(100) ) とやっても無駄です。
毎回起動後に ramdom(100) が同じ値を出すので、どうにかしてランダムな数を“拾ってくる”必要があります。

乱数列を生成するのに乱数が要るって、堂々巡りやん!
そう聞こえますね。

 Arduino等の小規模(組み込みシステム用)マイコン環境では、未接続(オープン)のアナログ入力ピンがあれば、そこから読み取ったアナログ値(ノイズ)をシード値に使う手がよく使われます(*3)。

 randomSeed( analogRead(0) );  // 0番ピンがオープンの場合

もしくは、ゲームのスタートボタン等、幸運にも(?)ユーザーの不定な行動タイミングを読み取るチャンスがあるならば、プログラム開始時からの経過時間をミリ秒単位で返す millis() を使う手もあります。

 pinMode(D2, INPUT_PULLUP);  // D2をタッチセンサー入力ピンに使う設定
 while( digitalRead(D2)==LOW );  // D2が押されるまで待つ
 randomSeed( millis() );  // ランダムな経過時間を取得できる

その他、温度(熱雑音)時刻GPS情報などが取得できるシステムでは、それらが使えます。
いずれにせよ、融通の利かない決定論的コンピュータには、カオスに満ちた外界からの情報が新鮮というわけです(*4)。

ならば、最初から analogRead(0) % 3 でじゃんけん、millis() % 6 でサイコロを振ればいいやん!
そう思いますよね。

6通りのサイコロ程度ならそれで十分かもしれませんが、広範囲の乱数を取得するには、分布の一様性(均等性)が問題となり得ます。
例えば、0~999 までの乱数が欲しい場合、analogRead()0~1023 を出すと言っても、
その時の静電的・電磁的条件によって 400~500 に偏るかもしれませんし、
起動と同時にスタートボタンを連打するせっかちな坊やに1000ミリ秒もの時間の揺らぎはありません。

暗号化の鍵データ生成等、セキュリティ用途にはまた別格の品質(不確定性・予測不可能性)が求められますが、ゲームや一般用途なら randomSeed()random() で十分です(*5)。

 もう分かっていると思いますが、プログラムは自分で書き、デバッグに苦労してみないと“絶対に”身に付きません。
何度もプログラミングして、虫(バグ)に「君の思考は相変わらず浅はかだね」と言われ続け、それに冷徹に向き合い、論理的に解決することでしか本当のスキルにならないのが人間の性(さが)です。

 ということで、来たる3年目コースの最後に、恒例(?)の卒業制作を指示します。
構想を楽しんで、苦しんで、頭脳パワーアップして下さい。


*1 何より、他人の書いたプログラムを読み解くのは面白くないし、苦行です。
 かと言って、自分で書いてデバッグするのはもっと大変ですが…。
 少なくとも、強い興味があるか、必要に迫られた時でないとムリですね。

*2 あくまでソフトウェア(ライブラリ)的な実装で、マイコンのハードウェア機能ではありません。

*3 オープン入力ピンは、他の電気ノード(電源等)に対してハイインピーダンス(高抵抗)かつ静電容量が小さいために、周辺の電磁ノイズに影響されて電位が揺らぎやすい。
 「フローティング」ともいう。

*4 量子コンピュータで量子乱数が扱えるその日まで…。

*5 簡易な電子機器(イルミネーション制御等)には random() が十分過ぎて、プログラムメモリが1KBしか無いようなマイコン(AVR ATtiny13等)に占めるコード量が数十%と邪魔な場合、適当な乱数列生成関数を書くこともあります。


2. 9月の課題


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

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

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

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

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

 <プロ1年目コース>
  - 上記授業内容を精読する(該当テキストページを見ながら)
  - 上記授業内容に紹介した動画(YouTube)を視聴する
  - [CountTimer1](2桁表示+終了メロディ)または
  [CountTimer4](+メロディ選択+ドット順次点灯)をベースに、
  LEDドットパターンや数字表示で「経過秒数が分かる」タイマーを作る
   Lv.1 8個の点を順次点灯または消灯させる8秒タイマー
   Lv.2 60個の点を順次点灯または消灯させる60秒タイマー(ヒント:%演算子)
   Lv.3 表示方法を独自に工夫した3分間(180秒)タイマー
   Lv.4 表示方法を独自に工夫した1~9分間設定モード付きタイマー
  (Lv.3以上を指示/Lv.1~順にクリアしていくと先が見える)

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

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


3. 8月の解答


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


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


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

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

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

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


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

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


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

 ⇒10/ 8 第1回 3F会議室4(和室)
  10/22 第2回 3F会議室4(和室)
  11/12, 26,  12/10, 24※

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


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

   - 12:30~ プロ1年目
   - 15:00~ プロ2・3年目

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


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

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

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

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


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

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

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


5. お知らせ

1) 第12回ロボット教室 全国大会 レポート・フォトギャラリー

 去る8/27(土)、3年ぶりに東大 安田講堂に35名の出場者が集い開催されました全国大会の報告ページが上がりました。

《大会レポート・フォトギャラリー》… 新着
  http://kids.athuman.com/robo/event/convention/2022/national/resultandphotogallery/

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

《大会ライブ全編》… ダイジェスト版は未だのようです
 https://youtu.be/Y779_hxuxts


2) スペシャル地区イベント 開催レポート

 全国大会に先立ち、全国5会場で開催されましたスペシャル地区イベントの報告ページが上がりました。

《イベント開催レポート》… 新着
  http://kids.athuman.com/robo/event/convention/2022/area/resultandphotogallery/


3) 新タブレット機能と価格改定

 10月以降ミドル進級の方より、お届けするタブレットの機能・価格が改定されます。

 市販のAndroidタブレット同様、Wi-Fi / Bluetooth通信に対応します。

 授業では通信を使いませんが、「ネットを使わせるのが心配」より「買うなら卒業後も活用できるものを」の声が反映された結果です。

《価格改定》
    ミドルキット タブレット単体(カバー別)
  現行  19,800     9,900
 ⇒10月~ 23,100    13,200

 既存生の方への割引価格での提供も検討中です。

《コース概要》
 http://robocobo.sakura.ne.jp/blog/robot/A4-2210_mid.pdf


4) アドバンス専用バッグ廃止

 キット原価の高騰などを踏まえた見直しとのことで、
11月以降アドバンス進級の方より、専用バッグが廃止されることになりました。

 《アドバンス進級キット内容》
  現行  追加キット・バインダ・専用バッグ
 ⇒11月~ 追加キット・バインダ・専用タブレットケース(詳細不明)


5) 新コース『プレプライマリー』10月~スタート[再掲]

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

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

 つまづかせない・遊んでもらう構成など、より年中・年長さんに向いた内容として優れています。
 お月謝等は同じです。ご興味のある方がいらっしゃいましたら、ご検討・ご紹介下さい。

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


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

 ◆プライマリ【4名平均 図形4.3】
   5点…亀平[八幡東1], 木村[小倉北 年長], 日力[小倉北3]

 ◆ベーシック【20名平均 図面3.2+設問2.4=5.6】
  10点…なし
   9点…なし
   8点…土屋[小倉北2], 渡邊[小倉北3], 矢野[小倉南3], 吉永[小倉南2]
   7点…井上[東福間2], 眞所[八幡東3], 古川[小倉北3]

 ◆ミドル【14名平均 図面3.4+設問1.9=5.3】
  10点…なし
   9点…なし
   8点…なし
   7点…鑓水[八幡東3], 柴田[小倉北5], 小牧[小倉南6], 渡辺[小倉南5]


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