2022年7月28日木曜日

2022年7月報

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


1. 7月授業内容


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


 割愛します。

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


 割愛します。

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


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

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

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

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

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


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

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

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


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


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

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

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

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


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





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



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




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

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

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

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


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

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


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


 テクニカルコンテスト向けマシン注力の為、割愛します。

1.5 <プロ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.6 <プロ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.7 <プロ3年目コース『六脚ロボット①』>


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

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

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

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

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

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

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

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


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

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


2. 7月の課題


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

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

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

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

 <アドバンスコース>
 ⇒テクニカルコンテスト向けマシン注力の為、割愛しました

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

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

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

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


3. 6月の解答


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


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


◆全教室8月第1回目を一週ずつ前シフト(盆休み)します。
◆小倉南8/28は農事センター1F A区画で開催します。

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

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

 ⇒ 7/30※, 8/20,  9/3, 17,  10/1, 15

 ※8/6→7/30シフトします

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

 ⇒ 8/7※, 28,  9/11, 25,  10/9, 23

 ※8/14→8/7シフトします

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

 ⇒8/ 6※第1回 3F会議室2
  8/27 第2回 3F会議室2
  9/10, 24,  10/8, 22

 ※8/13→8/6シフトします

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

 ⇒7/31※第1回 5F小セミナー
  8/21 第2回 4F和室・工芸室
  9/4, 18,  10/2, 16

 ※8/7→7/31シフトします

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

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

 ⇒ 7/30※, 8/20,  9/3, 17,  10/1, 15

 ※8/6→7/30シフトします

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

 ⇒8/ 7※第1回 2F A研修室
  8/28 第2回 1F A区画(エレベーターホール前)
  9/11, 25,  10/9, 23

 ※8/14→8/7シフトします


5. お知らせ

1) 第12回ロボット教室 全国大会 8/27(土) 進出

 テクニカルコンテスト(アドバンス)部門にて、3名が選抜されました。
 [中 間]桑村 悠太郎さん 渡邉 倫太郎さん
 [八幡東]樋口 幸志郎さん

 同部門では、九州地区から上記3名のみです! 全国優勝を期待します!

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


2) 中間・小倉北ロボティクス・プロフェッサー(ロボプロ)コース説明会

 中学生・アドバンス1年以上履修生を対象に、9月スタート生を募集します。

 ご興味のある方は、下記いずれかの説明会をご予約下さい。
 ◆8/ 6(土) ハーモニーホール3F 20:00~20:40
 ◆8/27(土) ハーモニーホール3F 20:00~20:40
 ◆9/10(土) ハーモニーホール3F 20:00~20:40

 ◆9/ 4(日) ムーブ5F 12:10~12:50

  - スタート月は3ヶ月毎のみです
  - スタートアップ講座は1日のみ(9/18 or 24予定)です
  - アドバンス進級/継続/ロボプロ進級で悩まれる方はご相談下さい

《コース概要》
 https://kids.athuman.com/robopro/
 http://robocobo.sakura.ne.jp/blog/robotics/robopro_1st_course.pdf
 http://robocobo.sakura.ne.jp/blog/robotics/robopro_2nd_2102.pdf
 http://robocobo.sakura.ne.jp/blog/robotics/robopro_3rd_2102.pdf


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

 [東福間]8/20
 [八幡東]8/20
 [小倉北]8/21
 [中 間]8/27
 [小倉南]8/28


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

 ◆プライマリ【7名平均 図形3.6】
   5点…木村[小倉北 年長]

 ◆ベーシック【20名平均 図面3.0+設問2.1=5.1】
  10点…なし
   9点…土屋[小倉北2]
   8点…原[小倉南3], 吉岡[小倉南2]
   7点…藤原[八幡東4]

 ◆ミドル【13名平均 図面3.6+設問1.2=4.8】
  10点…なし
   9点…藤津[中間6]
   8点…諭[小倉北4]
   7点…なし


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