2024年7月30日火曜日

2024年7月報

1.7月授業まとめ
2.7月の課題
3.6月の解答
4.8月の授業予告
5.今後の授業スケジュール
6.お知らせ


1. 7月授業まとめ


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


 割愛します。


1.1 <プレプライマリーコース『オハナッチ』>


 対象者はいません。


1.2 <プライマリーコース『ウッシーくん』>


 割愛します。

1.3 <ベーシックコース『横綱ロボ』>


 力士ロボットです。1日目で基本形の製作は完了するものの、足を運ぶ度(たび)にヨタヨタと左右に上体を揺(ゆ)らし、足裏はツルツルと滑(すべ)ります。

まるで慣(な)れないスケートリンクで立ち往生(おうじょう)する初心者のような、何とも頼りない横綱(よこづな)です。

 2日目にはシャフトを通して足幅(あしはば)を広げ、輪ゴムやグロメット(ゴム管)で摩擦(まさつ)力を稼(かせ)ぎ、ようやく大地を掴(つか)んで歩む勇(いさ)ましさが出てきました。

 途中、重たいモーターを低い位置に取り付けた基本設計を変え、脚(あし)をひょろ長くして重心を高くしてみましたが、
背が高くなって貫禄(かんろく)は上がるものの、転びやすくなって、相撲取りに大事な安定感はいまいちとなることも試しました。

力士が腰(こし)を低くして取り組むのも、重心を下げて倒れにくくするためですね。


 2日目最後の競技は、当然、相撲試合です!
土俵(どひょう)の上で両者をにらみ合わせ、「はっけよーい、のこった!」

どれも似たような動きしかしていないように見えて、いざ取り組ませると、ロボットの実力差が現れました。
テキストをヒントに改良したロボットが強い結果を残す一方、弱々しい力士は、バランスが悪くて勝手に転ぶか、足がツルツルですぐに相手に押し出されていました。

太い眉(まゆ)を付けて“目力”を上げたり、立派なちょんまげを結(ゆ)ったり、飾(かざ)り付けにこだわっても強くはならなかったね。


1.4 <ミドルコース『ロボベーター』>


 今回はエレベーター!
時々登場する「ロボットというよりも…」シリーズで、毎回とても面白く感動モノです。

製作難易度は高くなく、学習ポイントもさほど高度ではないのですが、
このキットでエレベーターを考案し、アイデアコンテスト全国大会で最優秀賞を獲得した当時小学4年生のアイデアに脱帽です。

 見た目としては、エレベーターのかご(運動部位)が水平から少し傾いてしまいますが、
このことにより、駆動ローラー(タイヤ)をレール柱に押し付け、滑らないように摩擦力を稼(かせ)ぐことができるのです。

このために、かごの重心を一方(モーター搭載側)に偏(かたよ)らせているとも言えます。
かごの水平バランス次第で、好みの摩擦力に調整できるということでもあります。


実際のエレベーターとは方式が異なることも学習しましたが、それは知識であって、実物を模(も)さないことで何より大事な創造力をいかんなく発揮したことが推(お)し量れます。





 1日目では、下降し終えて底に着いてもモーターは唸(うな)りを上げたままになり、上昇し終えると柱から外れて落下するという“恐怖のエレベーター”!
実物なら絶対に乗りたくありません。



2日目でようやく、タッチセンサープログラムの働きにより、地上でも頂上でも自動停止する安心エレベーターになりました。
実物でも、年を追うごとにセンサー類が多くなって安全性が高まっています。




 最後の競技は、高層エレベーターチャレンジ!
安全性はさておき、どこまで柱を高くして昇れたかを競います。

限られたパーツ数で、重たいかごが伝っても折れないギリギリの強度を保ちながら、いかに長く(高く)伸ばすかが工夫のポイントです(*1)。

テキストでは30cmそこそこであるのに対し、3倍、4倍と記録が伸びていき、中には140cmを超えんとする破竹(はちく)の勢いも見られました(*2)。

もうここまでひょろ長くすると、レール柱が竹のように撓(しな)り、今にも大事故になりそうで見ている方もハラハラでしたが、実物を設計するときは安全第一でね。


*1 かごの重心が偏っているので、上昇するほど柱が曲がり、折れやすく/倒れやすくなります。
 土台の一部のタイヤにテキストを敷いて傾きを補正するアイデアもあります。

*2 柱の高さではなく、かごが上昇する行程で測りました。


1.5 <アドバンスコース『ホイールローダー/フォークリフト②』割愛>


 「5教室合同アドバンス競技会」向けマシン注力の為、割愛します。


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


 3ヶ月間のオムニホールロボットを終え、新しいテーマに入りました。
1ヶ月目は、マイコンの出力先として、モーターではなく、光と音を出してみます。

 1日目は“”です。8x8の赤色LEDマトリクスを制御して、ドット絵やアニメーションを試しました。
自らの手でCG(コンピュータグラフィクス)に触れた瞬間ではなかったでしょうか。

 点灯・消灯させるドットを選択するために、中学数学のXY座標系の概念を用い、座標を変えながら繰り返し点灯・消灯する(のを楽にする)ために、for命令文を使いました。
for(i=0; i<=2; i++) {○○}”と書けば、変数iの値が 0, 1, 2 と変わりながら○○を3回実行し、“for (i=10; i>0; i=i-5) {○○}”なら、i = 10, 5 の順に2回しか○○を実行しませんよ。大丈夫でしょうか。
ナイトライダー(*1)風にも簡単に表示できましたね。

 横1ライン分の8つの点を8桁の2進数(01001001など)で表し、これを縦8つ分渡すことで画面表示してくれる関数(*2)を使って、パラパラアニメも制作できました。
2進数01001001に代わり、10進数73としても、16進数49で与えても同じ絵になります。
2進数しか扱えないマイコンへ転送する前(*3)に、01001001に変換されるからです。

 つまるところ、10進数(0~9)は人間に好都合な表記法でしかなく、8本足の火星人なら8進数(0~7)を使うかもしれないのです。
16進数(0~F)というのは、2進数4桁分をちょうど1桁で書けるので、慣れた人には楽なのです。
8進数も、1桁で2進数3桁分なので、コンピュータの分野ではよく使われます。

 2日目は“”も出します。
圧電スピーカー(*4)をつないで、人間の指示に反応できるようタッチセンサーも2個つなぎます。

 タッチセンサーの押下状態を判断してLED表示や音を変えるために、if文を使いました。
一方を押すとカウントアップ、他方を押すとカウントダウン、カウント10になるとメロディ演奏など、「○○なら△△する」という条件付き実行には、“if (○○) {△△}”と書きます。

カウント変数iの値が10, 20, 30, …の時に真になる条件文の書き方は3通りあります。
<初級> if(i==10){動作;} if(i==20){動作;} if(i==30){動作;} …
<中級> if(i==10 || i==20 || i==30 || …){動作;}
<上級> if(i%10 == 0){動作;}

タッチセンサーが押される毎にドット絵の表示位置を変え、合わせて音を出せば、これはもう、ゲーム中のキャラクタ移動ですね。

 さて、本Arduino環境では、単音ながら、RTTTLフォーマット(*5)による楽譜データを与えて任意のメロディを演奏できます。
次月1日目のテキストに詳細が解説されていますが、RTTTLデータは、"曲名デフォルト設定音符列" の3部で構成されます。
スーパーマリオがコインをゲットする音は、"coin:d=4,o=4,b=200:16b6,8e7" というようなデータで与えられます。

デフォルト設定 "d=4,o=4,b=200" では、4分音符、オクターブ4、テンポ200が指定され、音符列において特に指定しない限り、この設定が適用されます。

音符列 "16b6,8e7" は、16分音符オクターブ6のシ、8分音符オクターブ7のミ、の順に鳴らします。
即ち、デフォルト設定 "d=4,o=4" は全く効いていません。

ここで、音符列を "c,d,e,f,g,a,b,c5" とだけ記述すると、4分音符で、オクターブ4から“ドレミファソラシド”と演奏されます。
ソ#(ラ♭)は "g#"、休符は "p" で表します。
付点音符(1.5倍の長さ)は、"c." のように、後に"."を付けます。

 2ヶ月目は、音階と周波数の関係や、一次関数のグラフ描画によるCGの基礎を学び、ゲームパッドで光と音を自在に操るなど、ゲームプログラムの要素を掘り下げます。


*1 人工知能を搭載した喋るスポーツカーが犯罪捜査員マイケルと共に様々な事件を解決するアメリカの1980年代のアクションドラマ。知らない人はYouTubeで。

*2 決まった手順の命令群を1つにまとめて名前を付けたもの。その名前を1回呼ぶだけで複数の命令をまとめて実行してくれるので、プログラムが簡単になる。手続き、サブルーチンとも呼ばれる。

*3 転送してあげる方のPC内部でどう処理されるかは少し難しいので割愛しますが、2進数しか扱えない点は変わりません。

*4 普通のスピーカーがアナログ信号(音声・音楽)を再生するするのに対し、圧電スピーカーは、デジタル信号を省電力で音に変換する作用に長けています。
 いわゆる「ピッ」「ピー」「ピロピロ…」というようなアラーム音ですが、昔のゲーム機のような素朴な演奏もできますよ!

*5 Ring Tone Text Transfer Language(着信音文字列転送言語)の略で、ノキア社が携帯電話の着信メロディ楽譜を記述するために開発した書式。
https://en.wikipedia.org/wiki/Ring_Tone_Transfer_Language


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


 2年目の生徒さんお待ちかね、アームロボットの登場です。
人間の腕のように、複数の関節を曲げて、手先の位置と開閉を自在に操ります(*1)。
自動車の組み立てラインなどで活躍していますね。

 関節の動き(回転)を司るのは、やはりモーターです。
それも、所望の角度分だけサッと回転してピタッと止まれる、サーボモーターの出番です(*2)。
サーボモーターは、民生品では、CD/DVDのトラッキング(*3)や、ラジコン飛行機のエンジンスロットル・フラップの開閉などに使われています。

 サーボモーターには、電源線2本と、目標の位置(回転角)を伝える制御信号線の、計3本が伸びています。
小型ロボット・ホビー用として一般的なサーボモーターの信号線には、回転角に応じたパルス幅 1~2ミリ秒で、50~100HzのPWM矩形波(くけいは)(*4)を与えます。

このサーボモーターは、指示された位置まで全力で回転し、行き過ぎると全力で戻ろうとし、または、
これを小刻みに繰り返して振動(ハンチング)することもあり、瞬発的な電力を消費しますので、別途ACアダプターで電源を供給しました。
高負荷(手で止めたり)や連続で動作させた場合の発熱にも注意が必要です。



 また、原点位置から±90°と可動域が決まっていますので、初期位置に注意して、組み付けていきます。
2回とも時間の大半を製作に当て、アーム部の開閉に2個、ベース部の旋回に1個のサーボモーターと、ハンド部の開閉にマイクロサーボモーター1個の、計4個のサーボモーターを備える本格派の完成です。

無線コントローラー(ゲームパッド)で各関節を操作するプログラムが、ハサミ(グラップル)付きパワーショベルのように、アーム・ハンドの開閉を簡単にさせてくれます。

 次回は、このアームロボットの制御方法について、解明していきます。


*1 手首の関節が無いので、手先の向き(ネジ回し等に必要)は変えられません。

*2 普通のモーターと、回転部に備え付けたエンコーダ(符号化装置)で回転数や角度を検出して、マイコン(プログラム)で制御する方法もありますが、
制御のスピードや精度が要求される用途では、通例、これら(モーター+エンコーダ+制御回路)をパッケージングしたサーボモーターを使います。

*3 CD/DVDのデータ記録ピット(微細な凹凸)は、うずまき状(ブレあり)に並んでおり、再生中レーザースポットを内周から外周へ移動・追従させ続けるトラッキングサーボが必要です。
 加えて、盤面の歪みに応じて上下動し、レーザー焦点を合わせ続けるフォーカシングサーボも必要です。

*4 一周期ごとに、ONとOFFの時間の比(デューティー比)を変えることでアナログ量を表す、デジタルパルス波形のこと。


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


 夏タームに入りました。6本脚の昆虫型ロボットです。

 サーボモーター(MG995)を4個使い、(前後)左脚、(前後)右脚、(左右)中脚ツノの各関節を動かします。
それは即座に、ロボット全体として動きの自由度が4あることを意味します。

単なる関節の多いロボットは、モーター1個+リンク機構(ギア・ロッド・ペグ等)でも作れます。

しかし、モーターが正確な位置決めの可能なサーボ型であり、4個であり、触覚センサー(入力)を2個搭載して動作条件を判断できるマイコン制御であることから、動きに非常に多くのコンビネーション(組合せ)を持たせることができる筈です。

翌月以降のテキストで紹介されるであろう歩行制御プログラムの他にも、
何か面白い(人を笑わせる)モーションを付けることができるかもしれない
という視点で一人想像笑いするような人(不気味?)になって欲しいと思います(*1)。

 一方で、エンジニアの卵としては、4個のサーボモーターを同時に速く(一度に大変位で)回すと、電源容量の不足(電池の出力電圧の低下)から誤動作を引き起こしかねないと心配して、なるべく滑らかに動かす制御を好む姿勢を身に付けます。

決して、全身を激しく揺さぶる『ふ○っしー』のような動きを期待しないことです(*2)。

 今月は2回とも製作編でしたので、詳細を割愛します。


*1 それはクリエイターの最も重要かもしれない視点です。
 成果物を人から見て/使って喜んでもらえると、何より元気が出ます。
 足りない能力を勉強して補う勇気も出ます。

*2 このような“役立たず”だけど鋭い動きの生物型ロボットが人々を楽しませる平和な日は訪れるのでしょうか。
 それには、技術のみならず、安全性・倫理など、解決すべき問題が多くあります。
 技術面では、頭脳(AI)だけではなく、生物のように軽量・省エネで機敏に動かすのも、次世代のロボット開発に必要な視点です。
 それは、必ずしもサーボモーターである必要はなく、人工筋肉と呼ばれるアクチュエーターかもしれません。


2. 7月の課題


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

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

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

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

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

 <アドバンスコース>
 ⇒5教室合同アドバンス競技会向けマシン注力の為、割愛しました

 <プロ1年目コース>
  - 授業まとめを精読する(該当テキストページを見ながら)
  - [MatrixSprite3/4]をベースに、5コマ以上の絵でアニメを作成し、家族と教室に披露する
  - [MatrixSpriteMove2]をベースに、4x4~6x6ドットのキャラクタを画面からはみ出ないよう左右(または上下に)移動制御

  《ハイレベル挑戦》限界以上に移動させようとするとエラー音(メロディ)

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

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


3. 6月の解答


 <プレプライマリーコース>
  https://robocobo.sakura.ne.jp/blog/HW/RobotPP2406-A.pdf
 <プライマリーコース>
  https://robocobo.sakura.ne.jp/blog/HW/RobotP2406-A.pdf
 <ベーシックコース>
  https://robocobo.sakura.ne.jp/blog/HW/RobotB2406-A.pdf
 <ミドルコース>
  https://robocobo.sakura.ne.jp/blog/HW/RobotM2406-A.pdf
 <アドバンスコース>
 ⇒5教室合同アドバンス競技会向けマシン注力の為、割愛しました


4. 8月の授業予告

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

 <プレプライマリーコース>『メカビートル』… 対象者はいません
 <プライマリーコース>『ロボフィッシュ』
 <ベーシックコース>『リトルドッグ』
 <ミドルコース>  『ウォールフォロワー』
 <アドバンスコース>『ロンボ①』
 <プロ1年目コース>『不思議アイテムI-1②』
 <プロ2年目コース>『アームロボット②』
 <プロ3年目コース>『六脚ロボット②』


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


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

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

 ⇒ 8/3, 17,  9/7, 21,  10/5, 19


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

 ⇒ 8/11, 25,  9/8, 22,  10/13, 27


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

 ⇒8/10 第1回 ハピネスなかま別館2F 研修室4B
  8/24 第2回 ハピネスなかま別館1F 研修室2B
  9/14, 28,  10/12, 26

(プロ~9月/アドバンス~11月/ミドル~12月 終了予定)


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

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

 ⇒8/ 4 第1回 5F企画ルーム1・2
  8/18 第2回 5F企画ルーム1・2
  9/1, 15,  10/6, 20


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

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

 ⇒ 8/3, 17,  9/7, 21,  10/5, 19


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

 ⇒ 8/11, 25,  9/8, 22,  10/13, 27


6. お知らせ


1) 5教室合同アドバンス競技会 スケジュール&ルール追記

 アドバンス生向けに企画した『5教室合同アドバンス競技会』を盛り上げるべく、
賞品は辞退しますが、教室長2名・九工大講師3名・プロ生2名も参加表明しました。

 特に、中野と佐藤はこれまで融和的にロボットでガチンコ勝負したことがありませんが、この辺で決着を付けようと思っております笑
 九工大講師も機械科出身、ロボコニスト等、スペシャリストです。

 この乱戦に巻き込まれたいプロ生勇士の参加表明をお待ちしております!
(どの教室・会場で計測しても構いません)

【対象】
 5教室(東福間・中間・八幡東・小倉北・小倉南)のアドバンス生、修了生・プロ生、講師

【計測スケジュール】
 8月授業日&計測会計3回の本番出走のうち、最短タイムを記録します。

 ・8月 1日目 授業日 … マシン開発/計測
 ・8月 2日目 授業日 … マシン開発/計測/8月ロボット製作
 ・8/31土 9:00-12:00 … 計測会 in 北九州パレス2F 第2研修室

 全員の成功を支援するものではありませんので、家庭での開発を計画的に進めて下さい。

【ルール追記】
《競技ルールRev.3 追記版
 https://robocobo.sakura.ne.jp/blog/contest/race2024-adv.pdf

 フォークリフト等による王道方式には無関係ですが、生徒さんのマシン開発状況に鑑み、
コース内構築物の要件を「本体の運搬具(車両等)を除く」とし、“二段亀”方式の容認を明示しました。

 ゴール到達マシンの自走要件は変わりませんので注意して下さい。

【印刷データ】
《コース“川”データ》ご家庭用にお使い下さい
 https://robocobo.sakura.ne.jp/blog/contest/race2024-riverA3.pdf
 https://robocobo.sakura.ne.jp/blog/contest/race2024-riverA4.pdf

 インクジェット染料インク(格安互換インクの多く)では、光センサが黒ライン(川岸)を検出しません。
 光センサを使う場合は、顔料インク or レーザープリンタ or コンビニプリントを利用下さい。

 <ローソン・ファミリーマート手順>
 1)「ネットワークプリント」を選択
 2) ユーザー番号「DA2XCQKMNP」を入力
 3)「文書プリント」を選択
 4)「race2024-riverA3.pdf」をカラー印刷


2) 11月分~月会費の改定(プロを除く)
 本部からも封書・メールをお届けしますが、人件費や原価、物流コスト上昇等を受けた見直しとのことで、
会員様向けサービス拡充と共に、下記の通り改定させて頂くことになりました。
 ご多用のところ恐れ入りますが、何卒ご理解お願い申し上げます。

 <(プレ)プライマリー/ベーシック/ミドル>
  現行: 10,890円(授業料10,340円+教材費550円)
 ⇒改定: 11,550円(授業料11,550円・教材費含む

 <アドバンス>
  現行: 10,670円(授業料10,340円+教材費660円/隔月)
 ⇒改定: 11,550円(授業料11,550円・教材費含む

《要旨ご案内》
 https://ebook.athuman.com/html/MLWSebook/3042/#1
《詳細ご案内》
 https://ebook.athuman.com/html/MLWSebook/3039/#1


3) 来年1月~電子テキスト化&新タブレット移行
 ベーシック/ミドル/アドバンスのテキストが電子化されるのに伴い、対応した新タブレットへ順次移行します。

 <対象>
 ・来年1月以降にベーシック/ミドル進級する全ての方
 ・ベーシック以上で電子テキスト&新タブレット希望者

 <新タブレット仕様>
  画面:10インチ
  Wi-Fi:対応
  用途:電子テキスト閲覧、プログラミング(ミドル/アドバンス)、Lynxアプリ
  価格:16,000円(税込)

 <補足>
 ・既にロボット教室タブレットをお使いの方は買い替え不要/紙テキストを提供します
 ・電子テキストを選択されますと紙テキストへ戻れません/紙と同時提供もできません
 ・ミドル/アドバンス進級時には別途プログラミングキットが必要です

《新タブレットご案内チラシ》
 https://robocobo.sakura.ne.jp/blog/goods/newTabletA4_240723.pdf


4) 8月景品交換会
 3ヶ月毎の宿題ポイント交換会を下記授業日に開催します。
 ポイントカードを忘れずに、早めに来て下さい。

 [東福間]8/17
 [八幡東]8/17
 [小倉北]8/18
 [中 間]8/24
 [小倉南]8/25


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

 ◆プライマリ【11名平均 図形3.2】
   5点…福田[八幡東3], 田中(心)[小倉北 年長]
   4点…中野[東福間2]

 ◆ベーシック【14名平均 図面2.8+設問2.1=4.9】
  10点…なし
   9点…なし
   8点…なし
   7点…棚町[八幡東3], 木村[小倉北2], 井上[小倉南4]
   6点…亀平[八幡東3], 荒川[小倉北4]

 ◆ミドル【9名平均 図面3.4+設問1.4=4.9】
  10点…なし
   9点…なし
   8点…土屋[小倉北4]
   7点…なし
   6点…有松[小倉南5], 吉岡[小倉南4]


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