2018年7月31日火曜日

2018年7月報

1.7月授業内容
2.今月の課題
3.今後の授業スケジュール
4.お知らせ


1. 7月授業内容


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


 割愛します。


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


 割愛します。


1.2 <ベーシックコース『親子マーチ』>


 親(前輪)と子(後輪)がタンデムを組んだ4輪車ロボットには違いありませんが、モーターはタイヤを一切(いっさい)回しません
モーターの仕事は、親の腕(クランク)を回すことで子を引き寄せたり遠ざけたりするだけです。


とは言え、親とて足は自由回転するタイヤ。親子とも前後しながら、付かず離れずを繰り返すだけで全体としては進まず、下手(へた)な二人三脚のようで滑稽(こっけい)です。
1日目はここまで。


 さて、この親子をうまく前進させる仕掛(しか)けが何か必要です。
進まない親子ロボットを観察すると、腕の伸縮(しんしゅく)運動(*1)に合わせて、タイヤが前へ後ろへ交互(こうご)に回っており、移動量は差し引きゼロです。

このタイヤを、「前方向へは回るが後ろ方向へは回らない」ようにできれば、もはや進む他(ほか)に道はありませんよね!

知る人ぞ知る、「ラチェット機構(きこう)による回転方向の制限(せいげん)」です。


2日目テキストの通り、タイヤの逆回転を阻止(そし)するストッパーを当てただけで、「前輪を止めて後輪を進め、後輪を止めて前輪を進める」動作を繰り返すようになり、今までが嘘(うそ)のようにテンポよく進めるようになりました。

二人三脚というより、尺取虫(しゃくとりむし)の要領(ようりょう)ですね。


 輪ゴムでストッパーの押し付け力を調整します。
あまりに強く押し当て、前方向にも回りにくくなった失敗例もありましたが、軽く当てるだけで、10°くらいの急な坂道すら、ずり下がらずに上れるようになりました。


回転を一方向に制限するだけの仕掛けが、こんなにも有用なのですね(*2)。
テキストに頼らず、独自のすばらしい発明の数々も生まれていました。


 授業最後の競技は、上り坂チャレンジ!

長机を下記のレベルに傾け、ラチェット(ストッパー)の実装アイデアと性能を競います。
・レベル1 … 約10°;成功率70%の普通レベル
・レベル2 … 約15°;成功率30%のハイレベル
・レベル3 … 約20°;成功率5%の達人レベル
・レベル神 … 約25°;成功率1%の神レベル!


坂を上るためには、まず、後ろにずり下がらないことが大事です。
ストッパーがちゃんとタイヤに当たるようになっていれば、ほぼレベル1クリアです。

ですが、あまりにストッパーを強くすると、前進の抵抗(ていこう)にもなります。
レベル2のきつい坂をクリアするには、ロボットを軽く手で押しても進むスムーズさが必要になります。


 レベル3にもなると、重心が後ろの子ロボットに寄(よ)り、親ロボットのタイヤに掛(か)かる荷重(かじゅう)が軽くなって滑(すべ)ったり浮(う)いたりし、子ロボットを引き上げられなくなります
こうなると、「親ロボットを重くする」のが思い付くアイデアですが、ロボット全体が重くなるのも上り坂には辛(つら)いですよねぇ。




実は、『てこの原理』を応用すれば、「軽いおもりでタイヤに重い荷重を掛ける」なんて魔法も使えるのです。
親ロボットの鼻をピノキオみたいに長く伸ばして、その先に少しおもりを付けましょう。
25°くらいまで上れちゃいますよ。












*1 クランク機構を用いて、モーターからの回転運動を往復(おうふく)運動に変えて実現しています。


*2 自転車のペダル(正確には後輪のハブ内)にもラチェットが組み込まれています。
 このおかげで、ペダルを休めても車輪は空回り(ペダルの逆回転に相当)することができます。
 自転車の画期的な技術革新と言われています。


1.3 <ミドルコース『テケテケドリ』>


 第5回アイデアコンテスト全国大会(2015年)ベーシックコース最優秀賞作品(小3)がベースの、ダチョウロボットです。


その静的デザインのみならず、足取りや首振りなどの動的アクションに設計センスの高さが光ります。
隙(すき)あらば余剰パーツで武器を製造する過激派の男子には受けないかもしれない、実に可愛らしいだけのロボットに見えますが、高橋智隆先生のお眼鏡に適(かな)い、ミドルコースに登場したのには訳があると考えるべきでしょう。


 ダイナミックに動くダチョウ本体には、動力源のモーターが内蔵されておらず、回転する“長い”シャフトで動力を伝える点が斬新です。


このような動力伝達装置をドライブシャフト(またはプロペラシャフト)と呼び、世の産業機械ではよく使われています。
道路に目を向ければ、トラックやスポーツカーが、前部のエンジンから遠い後輪を回すのに利用しています(*1)。
二輪車(自転車・バイク)ではチェーンで後輪を駆動するのが普通ですが、ドライブシャフトを利用する例もあります。

 ドライブシャフトを採用する最大のメリットは、可動部(車輪・脚)を、大きくて重たい動力源(エンジン・モーター)から切り離し、軽くコンパクトにできることです。
胴体の軽量化が、テケテケドリに軽快なステップを歩ませるのに貢献しています。


また逆に、テケテケドリの周回コースの中心に置く箱(土台)に、電池ボックスやモーターが内蔵され重くなることで、跳ね回るテケテケドリを駆動しながらも安定して支えることが可能になります(*2)。

こうして、2足歩行ロボットにとって肝心の、
左右のバランスをとること
軽く作ること
の双方を実現しながら、さらに動力エネルギーまで伝える“一石三鳥”の働きを1本のシャフトが担っているのです。すばらしい機能美です。


 とは言え、戦車の砲塔(ほうとう)のように、土台の上でシャフトを振り回す旋回部(回転塔)の高さがテケテケドリと合わず、シャフトが水平でない場合は、躓(つまづ)きがちでしたね。
左右の脚に掛かる荷重のバランスが崩れたり、床材によっては、足裏のグロメット(ゴム)との摩擦力が過度に効いたりすることが原因です。

上手に歩む条件を探り出せば、かなり快調(怪鳥?)になります。


 写真は、何ともメカメカしい、中野先生の渾身(こんしん)の改造作(2017年1月)です。
ドライブシャフトを等速ユニバーサルジョイントに変えて、テケテケドリの上下動を吸収し、多少の段差も乗り越えられるようにしました(*3)。
もっとも、ユニバーサルジョイントの自由度の高さが、左右に倒れないよう支える機能を失わせるため、回転塔とトリの背中を平行リンクで結び、上下動しても常に直立させています。
テキストのままでは、ノート1冊分の段差を上ろうにも、すぐに後ろにコケてしまいますが、これは数cmの凹凸も平気です。


 さて、ダチョウ側に目を惹(ひ)かれがちですが、中央の回転塔にも、普段あまり見かけない面白い機構が備わっています。
ドライブシャフトからダチョウを取り外して、スイッチを右(プラグと反対)側に入れると、回転塔が時計回りに勢いよく回転します。


この回転が不思議なのは、ダチョウを取り付けて歩かせている時と比べると、逆回りで、しかもかなり高速なことです。
ここから、回転塔内のギアトレーンが、テケテケドリの歩むスピードや周回方向を決定付けている訳ではないことが分かります。


さらに、勢いよく回る回転塔を手で止めてみても、さもお構いなしと言わんばかりに、モーターは軽快に回り続けます。変ですね。
回転部(ギアやタイヤ)を無理矢理止めてしまえば、モーターも唸(うな)りを上げたまま止まってしまうのが常(つね)のはずです。

但し、このとき、ドライブシャフトは回転しており、これまで止めようとすると、さすがにモーターも苦しそうです。


 実は、これは差動歯車装置の一種であり、モーターの回転は、シャフトの回転でも、回転塔の旋回でも、どちらでも消費できる機構になっており、次の関係が成立しています。

 モーター回転数(スイッチ右) = シャフト回転数(ダチョウ前進方向) + 回転塔の時計回り回転数(ダチョウ後退方向)

だから、モーター回転数100%を使って、シャフトだけ回転しても、回転塔だけが旋回しても、50%ずつ分け合うのでも、合計100%になりさえすれば何でも可能なのです(*4)。面白いですね。

テケテケドリを外して、なぜ回転塔の方がほぼ100%で回ろうとするのかは、負荷(摩擦力)の差で決まります。
つまり、ドライブシャフトを回すよりも楽になっているからで、設計や部品が異なれば逆になっても不思議ではありません。


*1 トラックの荷台の下で、走行に合わせてクルクル回る鉄の棒を見たことがあるでしょう。

*2 テケテケドリが片脚を浮かしても立っていられるようになります。

*3 同一直線上に並ばない(回転軸がずれた)ドライブシャフト同士を繋ぐ継手(つぎて)として、ユニバーサルジョイント(自在継手)というジョイント機構が産業利用されていますが、これはミドルコースで別の機会に学びます。

*4 モーター100% = シャフト110% - 回転塔10%(反時計回り)の関係すら可能です。


1.4 <アドバンスプログラミングコース『ホイールローダー/フォークリフト(2)』>



 《割愛し、テクニカルコンテスト(ライントレーサー)研究と成果を纏めます》
  http://robocobo.sakura.ne.jp/blog/robot/adv1-1807.pdf




1.5 <プロ3年目コース『六脚ロボット(1)』>


 終に、現コース生にとって最後の夏タームに入りました。6本脚の昆虫型ロボットです。


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

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

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

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

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

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

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


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

*2 このような“役立たず”だけど鋭いロボットを世に送り出す先覚者、高橋智隆先生に期待したいところです。
 生物型ロボットの動きは、まだまだトロいですね。頭脳(AI)だけではなく、生物のように省エネで機敏に動かすのも、次世代のロボット技術が狙う分野です。
 それは、必ずしもサーボモーターである必要はなく、人工筋肉と呼ばれるアクチュエーターかもしれません。


2. 今月の課題


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

 <プライマリーコース>
  - オリジナル図形プリント

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

 <ミドルコース>
  - オリジナル課題プリント(3面図+設問)
  - 上記授業内容を精読する

 <アドバンスプログラミングコース>
  特にありません(ライントレーサー全国進出枠、獲ったどー!)

 <プロ3年目コース>
  - 卒業作品を構想する


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


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

[東福間]第1・3土原則
   - 13:30~ ベーシック/プライマリ
   - 15:30~ ミドル
   - 17:30~ アドプロ

 ⇒ 8/4, 18,  9/1, 15,  10/6, 20


[東福間プロ]第2・4日原則
   - 15:30~ プロ3年目

 ⇒ 8/12, 26,  9/9, 23(卒業),  10/14, 28(卒業作品製作・発表会予定)


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

 ⇒8/11 第1回 ハーモニーホール3F会議室2
  8/25 第2回 ハーモニーホール3F会議室2
  9/8, 22,  10/13, 27


[小倉北]第1・3日原則<ムーブ>
   - 10:00~ ベーシック/プライマリ
   - 13:00~ ミドル
   - 15:00~ アドプロ(/ロボプロ2018年9月~)

 ⇒8/ 5 第1回 ムーブ5F小セミ
  8/19 第2回 ムーブ5F小セミ
  9/2, 16,  10/7, 21


――――――――――【菅本教室長】――――――――――

[とばた]第2・4土原則<ウェルとばた8F>
   - 13:00~ 全コース(プロを除く)

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


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

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

 ⇒ 8/4, 18,  9/1, 15,  10/6, 20


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

 ⇒ 8/12, 26,  9/9, 23,  10/14, 28


4. お知らせ

1) ロボット教室 九州地区大会
 7/26(木)福岡市科学館 サイエンスホールで開催されました。

 福岡の他、山口~沖縄各県の教室から参加があり、250名を超える観覧の中、
ライントレーサによるスピード競技(38名・欠場2名)や、創作ロボットの発表(15名)、高橋智隆氏のユーモラスな講演と写真撮影・サイン会が続き、盛況でした。

 今年は昨年以上(動員数2倍)に盛り上がったように、来年はもっと盛り上がるでしょうし、当教室としても更に取り組みを強化して参ります。

 出場者の皆さん、お疲れ様でした。



 【テクニカルコンテスト部門】
  [東福間]中原・久保・時安
  [中 間]杉本<1位6'43>・山本・岩熊
  [八幡東]下田<2位6'76>松尾<3位7'04>・池本
  [小倉北]井上<5位7'64>榊<7位7'98>・劉<11位9'24>・江平<12位9'35>・早川<14位10'40>・山田<17位12'26>・関<18位14'85>・中村・数住・上村
  [小倉南]辻<6位7'84>・大川・吉良


 【アイデアコンテスト部門】
  [中 間]ミドル…大塚『トカゲロボット』
  [八幡東]ベーシック…倉富『ウインチX』


 テクニカルコンテスト部門は、昨年の惨敗の雪辱を果たし、全国大会出場枠(上位3/36名)を我らが教室で独占した他、上位7位に6名が入るなど、圧勝しました!

 引き続き、アイデア部門の審査結果(発表期日8/9)に期待します。

 地区大会の様子を動画で撮影しておりますので、研究用に活用下さい。
 下記URLからダウンロードしてご覧下さい。
 https://www.dropbox.com/sh/e1jco87mtp0epmj/AACxkWmodnMruMAZe7qg3dJpa?dl=0


2) 全国大会 観覧申込み - 8/1(水)17:00~定員まで ※

 ※Web申込みサイト
  http://kids.athuman.com/robo/event/convention/2018/

 【注意】
 ・全国大会は 8/25(土) 東京大学 安田講堂です
  本部からの受付メールを受信可能なアドレスを入力下さい
 ・全国大会出場者のご家族様は観覧できますが、出場の選考洩れに備える場合は申込み下さい


3) 7/29オリジナル電子工作講座『RCドレミ』終了

 台風12号の接近が心配される中、7/29(日) 9:55~15:45 ムーブ4F工芸室にて、7組の方に参加頂きました。
 電気抵抗値を音の高さに変換できる原理を学び、オルガン回路を組んで演奏したり、
音で判定できる導通テスターや水分センサー、明るさセンサーに改造したりして遊びました。


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

 アドプロ1年以上履修生・外部生を対象に、小倉北教室で今秋9月~開講します。
 小6以上の方へご案内メール差し上げました(5/31, 7/28)。

 ご興味のある方は、下記いずれかの説明会にお越し下さい。
 ◆8/ 5(日) ムーブ5F 15:15~ / 16:30~(小倉北アドプロ生向け)
 ◆8/19(日) ムーブ5F 15:15~ / 16:30~(小倉北アドプロ生向け)

  - 各時間先着8名まで/事前にご予約下さい
  - 募集は9月と3月のみです
  - 9月スタートには8/20までにお申込み下さい
  - アドプロ進級/継続/ロボプロ進級で悩まれる方はご相談下さい


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

 ◆プライマリ【3名平均 図形2.7】
   5点…なし
   4点…なし

 ◆ベーシック【23名平均 図面2.6+設問2.8=5.3】
  10点…森崎[八幡東3]
   9点…柴田[小倉北3]
   8点…下木[八幡東3], 林田[小倉南1]

 ◆ミドル【22名平均 図面3.1+設問2.3=5.4】
  10点…なし
   9点…荒木[小倉北4]
   8点…田中[東福間6]


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

2018年6月28日木曜日

2018年6月報

1.6月授業内容
2.今月の課題
3.今後の授業スケジュール
4.お知らせ


1. 6月授業内容


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


 割愛します。


1.1 <プライマリーコース『チャリダー』>


 割愛します。


1.2 <ベーシックコース『ロボモンキー』>



 手ながザルが綱(つな)を渡(わた)ります。

重い本体をぶら下げたまま長い手を動かさなくてはならないので、モーターとギアには相応(そうおう)の負荷(ふか)が掛(か)かり、「ガリガリッ」と嫌(いや)な音を立てるだけで、なかなか進まない人もいました。


このガリガリ音は、ベベルギアの噛(か)み合わせが緩(ゆる)いために滑(すべ)っている音で、ギアの歯をどんどん削(けず)ってしまいます。
モーターに削れた黄色い粉(こな)が付いていたでしょう。

そうならないように、テキストp.6でワッシャーを3枚使うよう、青字の部品名・個数で書かれています

写真だけを見てワッシャーを1枚しか入れないのは、何のために必要な部品かを考えていない(ワッシャーがぐらぐらでも気にしない)結果です。
組み付けるすべての部品に(飾りも含めて)意味がありますので、常に追求しましょう。

ワッシャーが足りないと、ベベルギアとピニオンギアうすの間に隙間(すきま)が空き、ベベルギアがしっかり固定されない状態にあります。


すると、モーターからの強い回転力を受けた時に、写真のオレンジ矢印で示す方向にベベルギアがずれ、モーター軸(じく)のピニオンギアと噛み合わなくなってしまいます。
この状態がまさにガリガリ音の発生源となるのです。

 さて、ギアがしっかり噛み合ったら、もう一つ大事な電池パワーさえ十分ならば、スイスイと綱渡りするモンキーが見られます。


この手の動きにも注目してください。
モーターによって回転しているのは、目玉の横のクランクまでですが、手の先は綱渡りするのに都合(つごう)よく、
右手で綱をたぐり寄(よ)せているときは、左手を浮(う)かせて後ろに運び、次には反対の手で同様に進むことを交互(こうご)に繰(く)り返しています。

このような動きを変換する仕組みを“リンク機構(きこう)”と呼び、もっと上級のコースで改(あらた)めて研究しますが、まずは「確かにそうなるよね」と思えるまで観察してみましょう。
そうすると、2日目で手の振(ふ)れ幅(はば)を大きくしてスピードアップした改造(p.19)も、感覚的に理解できるでしょう。

 なお、実際にスピードアップできるかどうかは、やはり電池パワーによります。
てこの原理により、「速く動かそうとするほど、力が弱くなる」宿命(しゅくめい)がありますので、力の弱いモーター(電池)から欲張(よくば)って速い動きを取り出そうとしても、逆に遅(おそ)くなるか止まってしまうことがありましたね。
(ガリガリ音で進まないのは、別の話ですよ)

ということは? 弱い電池でも動かす方法があるってこと?

いつもはロボットを速くする改造に気を取られますが、遅くすることで得(え)られるメリットもあるのですよ。
ギアで減速(げんそく)するのでも、手足を短くするのでも、それを自分の手で実験して確かめてみてください。


1.3 <ミドルコース『チクタクロック』>



 振り子時計です。ロボットというより、からくり仕掛けを匂わせます。
皆さんの家には振り子時計があるでしょうか?
先生はオークションで手に入れました・・・昭和40年代のホンモノを。

 1日目は、時計の針をモーターで「ウィーン」と回しました。味気ないですね。
これに振り子を付け足して揺(ゆ)らしても、摩擦(まさつ)のせいで時間と共に減衰(げんすい)しますので、揺れ続けるには、振り子へのエネルギー供給が別途(べっと)必要です。


通常(?)は電磁石が使われます。だから、振り子時計の裏には、モーター用の電池と電磁石用の電池が2本入るようになっていることが多いですね。
時計の針と振り子は全く相関(そうかん)なく、独立して動いています・・・それは、ニセモノです!





 本来、振り子時計の振り子は飾りではなく、一定の周期で振れる性質(等時性=とうじせい)を利用した、時のリズムを正確に刻(きざ)むための肝要(かんよう)な仕掛けです。
電池やモーターが無い時代から動いていた時計、エネルギー源としてはゼンマイがよく使われていました。





 2日目は、時計の針を、巻き上げたおもり(位置エネルギー)で回しました。
ただし、それだけでは、時計の針が目まぐるしく回り、あっという間におもりが着地しておしまいです。
時のリズムに合わせて、与えたエネルギーを少しずつ使い、少しずつ針を進める仕掛け(脱進機=だっしんき)が必要です。


チクタクロックの脱進機は、実際の時計用とは少し違いますが、このシンプルな部品構成で脱進機の役割を立派(りっぱ)に果(は)たしています。
すでに脱進機を知っていた人も、この機構はなかなか思い付かなかったのではないでしょうか。

何しろ、おもり(タイヤL)が少しだけ下がる分の微弱(びじゃく)な位置エネルギーで、針の回転振り子の加勢(かせい)を滞(とどこお)りなく繰り返す、微妙(びみょう)なエネルギー収支(しゅうし)バランスが必要です(*1)。
テキストの設計はやはり絶妙(ぜつみょう)です。

 テキスト通りに組み上げると、随所(ずいしょ)からチクタク音が聞こえてきました。
そうです、いわゆるチクタク音の正体は脱進機だったのです。
初めて電池とモーターを使わないマシン、新鮮です。


 振り子の長さで音のリズム(時計の速さ)を変えることもできます。
振り子時計の基本原理が詰(つ)まっています。

このチクタク音を長く持続させるポイントは2つ。
・振り子を長く(重さは関係ない)
・おもりの位置エネルギーを高く(巻き付ける紐を長く)

このうち、振り子を長くすることで重くなると、どうしても摩擦や、振らせるのに必要な力(慣性モーメント)を増やし、脱進機によるエネルギー供給が足りず停止しがちです。
その場合は、おもりを重くするか、巻き付け半径を大きくする(*2)と有効です。


工夫すれば、160cmの紐で100秒以上のチクタク音を奏でることができます(*3)。
この音、レトロでいいですね。


*1 収支とは、出し入れのこと。おもりが出す位置エネルギーを脱進機に入れ、摩擦熱(音も含む)として消費していきますが、
このエネルギー(≒力)が必要以上に大きいと、振り子を無駄(むだ)に加勢してエネルギーを浪費(ろうひ)し、逆に小さいと、止まってしまいます。

*2 てこの原理により、おもりを重くするのと同様に回転力(トルク)が増しますが、その分速く垂れ下がります。

*3 *2とは逆に、巻き付け半径を小さくし(おもり降下速度を落とし)、弱くなったトルクでも動くよう脱進機のギアLをギアMに替えて(振り子の振れ幅を小さくして)、標準的な机上の高さにも拘(かかわ)らず100秒を超えた小倉北教室の井上君(小4)もあっぱれでした。


1.4 <アドバンスプログラミングコース『ホイールローダー/フォークリフト(1)』>


 ほぼテクニカルコンテスト(ライントレーサー)研究に時間を割いている為、割愛します。
 これら建機ロボットも面白いのですが…


1.5 <プロ3年目コース『不思議アイテムIII-1(3)』>



 授業中はアルゴリズムを深堀りする時間が取れないため、ここでは先月(第4回)の、赤外線ビームが飛来する方角を推定するプログラムについて考えてみます。

 赤外線受光素子を搭載したオムニホイールロボットを360°旋回させ、10°刻みで配列 int A[36] に記憶させたところ、

int A[ ] = {
  0,0,0,0,0,0,0,0,0, 
//  0~ 80°
  1,1,1,1,1,1,1,1,1, 
// 90~170°
  0,0,0,0,0,0,0,0,0, 
//180~260°
  0,0,0,0,0,0,0,0,0 };
//270~350°


で初期化した状態と同じだったとします。
ここで、配列中の各値(1/0)は、赤外線の受光有無を表します(*1)。

for( s=0; s<36; s++ ) { 
//開始位置を探す
  if( A[s]==1 )  break;
}
for( e=s+1; e<36; e++ ) { 
//終了位置を探す
  if( A[e]==0 )  break;
}


で、検出開始インデックス s=9, 検出終了インデックス e=18 が得られますから、飛来角度は (s + e)*10/2 = 135°と正しく得られます。

同じアルゴリズムで、

int B[ ] = {
  1,1,1,1,1,1,1,0,0, 
//  0~ 80°
  0,0,0,0,0,0,0,0,0, 
// 90~170°
  0,0,0,0,0,0,0,0,0, 
//180~260°
  0,0,0,0,0,0,0,1,1 };
//270~350°


の場合はどうでしょうか。
s=0, e=7 となり、飛来角度を35°と推定してしまいます。
実際は 340(-20)°~ 70°の中心値 25°と推定すべきです。

先に終了位置を探しておきましょう。

for( e=0; e<36; e++ ) { 
//終了位置を探す
  if( B[e]==0 )  break;
}
for( s=e+1; s<36; s++ ) { 
//開始位置を探す
  if( B[s]==1 )  break;
}


これで、s=34, e=7 と正しい値が得られますが、最初のデータ A[ ] に対しては s=9, e=0 となって、中心角度を 225°と誤ってしまいます。

やはり、終了位置は開始位置の後に探しましょう。

for( e=0; e<36; e++ ) { 
//先ず終了期間まで進める
  if( A[e]==0 )  break;
}

for( s=e+1; s<36; s++ ) { 
//先に開始位置を探す
  if( A[s]==1 )  break;
}
for( e=s+1; e<36; e++ ) { 
//次に終了位置を探す
  if( A[e]==0 )  break;
}


これで、A[ ] については問題ありませんが、今度は B[ ] に対して、s=34 は良いとして、e=36 で終わってしまいます。

もう一周させましょう。

for( e=0; e<36; e++ ) { 
//先ず終了期間まで進める
  if( B[e]==0 )  break;
}
for( s=e+1; s<36; s++ ) { 
//先に開始位置を探す
  if( B[s]==1 )  break;
}
for( e=s+1; e<72; e++ ) { 
//次に終了位置を探す(最長2周分)
  if( B[e%36]==0 )  break;
}


出ました! お助けヒーロー演算子“%”の登場です!
例えば、2周目で e=40 の時、B[e] は不正アクセスになりますが、B[e%36] と書いて B[4] を正しく参照できます。

これで、B[ ] でも s=34, e=43 となり、((s + e)*10/2) % 360 = 385 % 360 = 25°と正しく求められます。

int C[ ] = {
  1,1,1,1,1,1,1,1,1, 
//  0~ 80°
  0,0,0,0,0,0,0,0,0, 
// 90~170°
  0,0,0,0,0,0,0,0,0, 
//180~260°
  0,0,0,0,0,0,0,0,0 };
//270~350°


に対しても、s=36, e=45 で 45°と一応(*2)正しく機能します。

(;´▽`A`` ふぅ、安心ですかぁ?

 さらに考えるならば、自然界の計測値にはノイズ混入が付き物であり、赤外線も壁などで乱反射して届いたり、部品などに当たって瞬間的に遮蔽(しゃへい)されたりするでしょうから、所々0⇔1が入れ替わることも前提にした方が信頼性が高まります。

サンプルプログラム[IRSeekerSt2], [IRSeekerSt3]では、「同じ値が3連続以上」のような条件を位置検出に加えていますが、この仕様の是非はともかく、いい加減に作ったバグだらけのコードに見えますので(*3)、前例の配列仕様に則った改良例を記しておきます。

int D[ ] = {
  0,1,1,1,1,0,1,1,1, 
//  0~ 80°
  0,1,1,0,0,0,1,0,0, 
// 90~170°
  0,0,0,0,1,0,0,0,0, 
//180~260°
  0,0,0,0,0,0,0,1,0 };
//270~350°


のようなノイズ混入データに対して、

for( e=0; e<36; e++ ) { 
//先ず終了期間(e=12)まで進める
  if( D[e]==0 && D[(e+1)%36]==0 && D[(e+2)%36]==0 )  break;
}
for( s=e+3; s<72; s++ ) { 
//先に開始位置(s=37)を探す
  if( D[s%36]==1 && D[(s+1)%36]==1 && D[(s+2)%36]==1 )  break;
}
for( e=s+3; e<72; e++ ) { 
//次に終了位置(e=48)を探す
  if( D[e%36]==0 && D[(e+1)%36]==0 && D[(e+2)%36]==0 )  break;
}


では s=37, e=48 となり、((s + e)*10/2) % 360 = 425 % 360 = 65°と求まります。感覚的にも合いそうですね。

 どうです? この程度のことでも、突き詰めると高度でしょう?
ゲームのバグに文句を言う前に、抜け目の無いプログラムを書くことの難しさを知ってください。
そして、失敗が成功を生むように、バグをたくさん出して成長してください。

 赤外線の飛来角度が推定できたならば、姿勢センサーを搭載して(*4)、その方角に向き直る可愛らしいペット(怖い軍事ロボット?)の完成です。

プログラム中、MPU6050::getMotion6(&ax, &ay, &az, &gx, &gy, &gz) により、z軸(鉛直方向)周りでの(水平回転)角速度 gz を取り出し、これを微少単位時間毎に積算(高校数学の時間積分)して角度を算出しています(*5)。


 第5回の内容では、赤外線追従ロボットへ改造しました。
姿勢センサーは外しましたが、赤外線受光素子を左右斜め前方に2個取り付け、その受光レベルの強弱で(*6)、ボール代わりの赤外線ビーコンマシン(モーター無し空回りオムニホイールベース)に向かって走ります。


ボールマシンに接触したしたことを前部に取り付けたタッチセンサー(+針金)で検知して、一旦止まります。


 さらに第6回の内容で、サッカー(1人プレイヤー)ロボットへ発展させました。
両アームの間にボールマシンを抱えたまま、カラーセンサー(+覗き円筒)でゴール代わりの青い紙面を見つけるまで旋回し、ドリブルシュートするプレイです。


高度な制御に見えますが、赤外線やカラーセンサーの機能(デバイス+ライブラリ)を利用した恩恵が大きいのであって、フローチャートやプログラム[RobotSoccer]を見ても理解し易いように、さほど複雑なアルゴリズムではありません。

プログラムの難しさは、意外な所にあったりします。





 ここで授業時間が終わりました。サッカー個人プレイ大会を次回に持ち越します。


*1 実際のサンプルプログラムでは、赤外線受光強度の指標となる受信データ長が90以上か否かで判定しています。

*2 一応と言ったのは、s=36 を直接的に見つけたのではなく、一周して見つからなかったから s=36 で止まった結果であり、それでも、
どこかに必ず‘1’がある前提ならば、アルゴリズム上 s=0 を見過ごしたことになるので、ちょうど問題なく機能する特例のケースになるからです。
 このようなトリッキーなアルゴリズム仕様は、何か改変をする際にバグを生み易いので、スッキリ美しい(無駄のない)コードではあるものの、安全上は好ましくありません。

*3 思考が複雑になるので、テキストでは触れてない所ですが、バグの解析に時間を取られた身として、開発側に苦言を伝えておきます。

*4 元より、この方法論により、360°旋回スキャンや10°刻み計測ができていますので、本当は話の順番が逆なのですが。

*5 姿勢センサーについては、2年目コース2017年1月の記事を参照。
 http://higashi-fukuma-robot.blogspot.com/2017/01/

*6 強弱の2値(1ビット)だとしても、左右で2ビット4通りの情報が得られますから、左曲がり・右曲がり・直進・旋回(ビーコン探索)のような動作へ割り振れます。


2. 今月の課題


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

 <プライマリーコース>
  - オリジナル図形プリント

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

 <ミドルコース>
  - オリジナル課題プリント(3面図+設問)
  - 上記授業内容を精読する

 <アドバンスプログラミングコース>
  特にありません(ライントレーサー頑張るぞー!)

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


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


◆小倉北7/1はムーブ4Fで開催します。
◆小倉北7/15は『北九州パレス(勤労青少年文化センター)』で開催します。
◆中間7/28は『中間市生涯学習センター』で開催します。

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

[東福間]第1・3土原則
   - 13:30~ ベーシック/プライマリ
   - 15:30~ ミドル
   - 17:30~ アドプロ

 ⇒ 7/7, 21,  8/4, 18,  9/1, 15


[東福間プロ]第2・4日原則
   - 15:30~ プロ3年目

 ⇒ 7/8, 22,  8/12, 26,  9/9, 23


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

 ⇒7/14 第1回 ハーモニーホール3F会議室2
  7/28※第2回 生涯学習センター2F第4研修室
  8/11, 25,  9/8, 22

 ※7/28は代替施設『中間市生涯学習センター』で開催します。


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

 ⇒7/ 1 第1回 ムーブ4F和室・工芸室
  7/15※第2回 北九州パレス2F第1研修室
  8/5, 19,  9/2, 16

 ※7/15は代替施設『北九州パレス(勤労青少年文化センター)』で開催します。


――――――――――【菅本教室長】――――――――――

[とばた]第2・4土原則<ウェルとばた8F>
   - 13:00~ 全コース(プロを除く)

 ⇒ 7/14, 28,  8/11, 25,  9/8, 22


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

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

 ⇒ 7/7, 21,  8/4, 18,  9/1, 15


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

 ⇒ 7/8, 22,  8/12, 26,  9/9, 23


4. お知らせ

1) 5教室合同アイデア発表会
 7/26(木)福岡市科学館でアイデアコンテスト九州地区大会(第2回)が開催されます。
 全国大会はレベルが高すぎますので、発表をするも聞くも、あまり気負わず親子で楽しみましょう!

 その前に、小倉北教室の昼休み時間にアイデア発表会を開催しますので、親子で是非ご参加下さい。
 先ずは宣言しちゃって、やる気になってみよう! 頑張ってロボットをひねり出そう!

 ■7/1(日) 11:45-12:45 男女共同参画センター(ムーブ)4F 和室
 【発表シート】6月第2回授業で配布した『コンセプト発表用 連想シート』または任意の紙面
  http://robocobo.sakura.ne.jp/blog/convention/ConceptSheet.pdf
 【発表内容】「こんな(名前の)ロボット作ろうかなと思ってます」程度の意気込み(ロボットは不要)
 【発表形式】1人1分程度(プロジェクター・マイク使用)

 ■7/15(日) 11:45-12:45 北九州パレス2F 第1研修室
 【発表シート】7月第1回授業で配布する『アイデアシート』または任意の紙面※
  http://robocobo.sakura.ne.jp/blog/convention/IdeaSheet.pdf
 【発表内容】「こんな(動きの)ロボットを作るつもりです」程度の意志表明(ロボット披露も可※)
 【発表形式】1人2分程度(プロジェクター・マイク使用)

 ※地区大会応募に向けてロボットをほぼ完成させておく必要があります


2) 5教室合同ライントレーサー予行演習会
 7/26(木)テクニカルコンテスト九州地区予選に出場できるアドプロ生向けに、
 本番同様の模擬コースを用意して、下記の教室時間を無料開放します。(振替手数料も無し)
 奮って参加下さい!
 - 退場時間は自由です
 - 振替利用の場合は事前連絡ください
 - 追加利用の場合は事前連絡不要です

 ・7/ 1日 小倉北     ムーブ4F 15:00-21:00
 ・7/ 7土 八幡東レインボープラザ4F 17:30-21:00
 ・7/ 8日 小倉南  農事センター2F 10:30-16:00
 ・7/14土 なかまハーモニーホール3F 17:30-21:30
 ・7/15日 小倉北  北九州パレス2F 15:00-20:30 ※場所ご注意
 ・7/21土 八幡東レインボープラザ4F 17:30-21:00
 ・7/22日 小倉南  農事センター2F 10:30-16:00


3) 地区・全国大会 応募スケジュール
 ◆地区大会 観覧申込み - 6/25(月)12:00~7/5(木)19:00 ※
 ◆テクニカル部門 応募 - 7/2(月)10:00~7/18(水)18:00 ※
 ◆アイデア地区大会 応募 - 7/17(火)大会本部必着にて、所定の応募用紙を郵送
 ◆アイデア全国大会 応募 - 7/19(木)九州本部必着にて、所定の応募用紙・プレゼン動画(3分以内)を郵送
 ◆全国大会 観覧申込み - 8/1(水)17:00~定員まで ※

 ※Web申込みサイト
  http://kids.athuman.com/robo/event/convention/2018/

 【注意】
 ・6月第1回授業日に配布した赤い案内冊子をご精読下さい
  http://robocobo.sakura.ne.jp/blog/convention/RobotConv2018.pdf
 ・地区大会は 7/26(木) 福岡市科学館サイエンスホールです
 ・全国大会は 8/25(土) 東京大学 安田講堂です
 ・アイデア部門の地区大会は予選ではなく、発表会の位置付け(全国大会と別)です
 ・テクニカル部門の地区大会は予選(全国大会進出に必須)です
 ・テクニカル出場・観覧のWeb申込みは教室で代行できません
  本部からの受付メールを受信可能なアドレスを入力下さい
 ・全国大会出場者の保護者様は観覧できますが、出場の抽選洩れに備えて念の為申込み下さい


4) 夏休みオリジナル電子工作講座『RCドレミ』
 ロボット教室→プロコースの間を繋ぎ、楽しみながら電子回路の基礎をゼロから学べる本格派講座です。
 電子工作・回路学習に欠かせないデジタルマルチテスターをプレゼント!
 http://robocobo.sakura.ne.jp/blog/lab/RCdoremi2018.pdf
 ↑本文と同一内容


【工作名/タイトル】
 『RCドレミ ~限定版~』/「鉛筆一本で音と光を操ろう!」
【内容】
 電子部品と発振回路の原理を実験を通して学び、身近な物をオルガン鍵盤にしてしまうガジェットを製作して遊びます。
【講師】中野・佐藤
【会場】北九州市立男女共同参画センター(ムーブ)4F 工芸室
【日時】7/29(日) 10:00~15:30(昼休み12:30-13:30)
【対象】小4~高校生 10名(保護者同伴可)
【費用】8,100円(受講料6,000円+材料費2,100円)
【申込方法】メールにてお申込み下さい。7/15〆切・先着順です。
【申込条件】
 - 原則として、8月お引落し額(9月分)に加算して徴収させて頂きます。
  7/15~キャンセル・欠席により空席が発生した場合は返金できません。
  (キットと製作テキストのみお渡しします)

 - 別日にKIGS主催イベントとしても実施予定ですが、KIGS決定に則り参加料が異なります。(一般参加の公平性のため、ご案内しません)
  今回の講座(限定版)は、内容・部品においてKIGSイベントと差別化を図っており、電子工学の道に目覚める運命(!?)の生徒さんに強くお薦めします。

 - 学習の場につき、同伴者は保護者1名のみ(任意・途中退場可)とし、受講生以外のお子様はご遠慮下さい。


5) 夏休み短期講座(ロボプロ/理科)
 いつものロボット教室とは異なる刺激を。夏休みの自由研究にもどうぞ。
 http://robocobo.sakura.ne.jp/blog/lab/SummerProgram2018.pdf

【内容】↑PDFをご覧下さい
【講師】中野・佐藤
【会場】北九州パレス(勤労青少年文化センター) 2F
【申込方法】メールにてお申込み下さい。7/10〆切・先着順です。
【申込条件】
 - 原則として、8月お引落し額(9月分)に加算して徴収させて頂きます。
  7/10~キャンセル・欠席により空席が発生した場合は返金できません。
  (キットと製作テキストのみお渡しします)

 - 学習の場につき、同伴者は保護者1名のみ(任意・途中退場可)とし、受講生以外のお子様はご遠慮下さい。

 A. ロボットエンジニア養成ゼミナール(ロボットプログラミング)
 【日時】8/2(木), 9(木), 16(木) 10:00~12:00 全3日間
 【対象】小3~中学生 12名(保護者同伴可)
 【費用】21,600円(税込・キット代10,800円込)
     キット・プログラムを持ち帰り、自宅PCでも研究できます
 【注意】ロボティクス・プロフェッサー(ロボプロ)コース相当の内容です。
     将来の検討用・体験講座※としてもどうぞ。
    ※ロボプロ生・今秋スタート生には特に必要ありません
    ※今秋開講の小倉北教室で体験授業の開催予定はありません/説明会のみ

 B. 人工イクラを作ってみよう
 【日時】8/2(木) 14:00~15:30
 【対象】小学生 12名(保護者同伴可)
 【費用】3,780円(税込)

 C. たおれない家を建てよう
 【日時】8/9(木) 14:00~15:30
 【対象】小学生 12名(保護者同伴可)
 【費用】3,780円(税込)

 D. 君には名探偵の素質があるか?
 【日時】8/16(木) 14:00~15:30
 【対象】小学生 12名(保護者同伴可)
 【費用】3,780円(税込)


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

 ◆プライマリ【4名平均 図形3.5】
   5点…板脇[小倉北1], 柴田[小倉北1]

 ◆ベーシック【27名平均 図面2.2+設問1.9=4.1】
  10点…柴田[小倉北3] →偏差値76!
   9点…なし
   8点…橋本[小倉南1]
   7点…なし

 ◆ミドル【22名平均 図面2.6+設問2.4=5.0】
  10点…なし
   9点…なし
   8点…今橋[小倉南5], 杉本[小倉南6], 橋本[小倉南4], 原[小倉南5]
   7点…田中[東福間6], 荒木[小倉北4]


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

2018年5月30日水曜日

2018年5月報

1.5月授業内容
2.今月の課題
3.今後の授業スケジュール
4.お知らせ


1. 5月授業内容


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


 割愛します。



1.1 <プライマリーコース『ロボシーソー』>


 割愛します。




1.2 <ベーシックコース『ベイスピナー』>



 ロボットというより玩具(がんぐ)と呼べそうな、コマ回しマシーンです。

タッチセンサーを押してコマを加速させている間は、コマが本体に留(とど)まり、加速を止(や)めた途端(とたん)、回転の勢(いきお)いで自動的にコマが飛び出るという優(すぐ)れものです。
いつものキットで、アイデア次第(しだい)ではこんなのも作れるという新鮮(しんせん)な驚(おどろ)きを感じさせます。

 さて、コマ回しを成立させるメカニズムは、マシーンとコマの双方(そうほう)にあります。


 マシーン側に必要なのは、できる限り高速にコマを回転させることです。
本体上部に取り付けたギアLが、どえらい速さで回りますね。
どれくらい速いのでしょうか? モーターの回転と同じでしょうか?
だったら、モーターにシャフトを一本つき刺(さ)して、ギアLを付ければ済(す)む話です。

 実際は、ギアの噛(か)み合わせを工夫して、回転スピードを上げています
これを増速(ぞうそく)といいます。写真を見てください。


〔 モーター=ギアM① ピニオンギア①=ギアM② ピニオンギア②=ギアL 〕
の順に回転を伝えていますね。

ここで、“=”は、同一のシャフトに通して一緒に回転しているため、回転スピードが変わらないことを表しています。

一方、“⇒”は「大きいギアが小さいギアを回している」箇所(かしょ)であり、ここで回転スピードが上がるのです。


 どれくらい上がるかは、ギアの歯数の比(ひ)で決まります。歯数を(数字)で表すと、
本体内部で、ギアM(24) ⇒ ピニオンギア(8)の3倍増速が2段と、
本体上部で、ギアL(40) コマのギアM(24)の5/3(=1.666…)倍増速があります。
つまり、3×3×5/3=15倍の増速作用があります。

ギアの組み替え次第で、計算上はこれ以上の増速比を出せますが、今回の15倍速でも、モーターの回転速度は無負荷(むふか=空回り状態)時よりだいぶ遅(おそ)くなり、
「重くしたコマの加速にも少し時間がかかる」くらいマシーンの限界能力に近いですから、これ以上に欲張(よくば)っても大差ない(*1)かもしれません。
全エネルギーをコマの回転運動に使い尽(つ)くすという意味では、とてもピュアなマシーンです。


 コマ側に必要なのは、いかに安定して回転が長時間続く形にするかという点です。
ロボットキットの中から、軸(じく)としてシャフト、回転体として円形部品(*2)を選択するという制約下(せいやくか)では、
1) コマを重く(なるべく直径を大きく、かつ外周部を重く(*3))
2) 重心を低く(なるべく重い部品を下の方へ(*4))
という2点をポイントとしておきますが、
あまりに重すぎると、マシーンで十分加速できなくなったり、
あまりに低すぎると、回転中に地面に接触しやすくなったりしますので、バランスを追求する根気強さが勝負を分けます。


 さて、2日目の最後に、各自のコマ回し時間を競いました。
地面の材質(ザラザラの机か、ツルツルの床か)にも左右されますが、上記2点を押さえたコマなら、30秒以上回り続けることができました。
各自が試行錯誤(しこうさくご)する中で、50秒を超え、1分を超え、ついに100秒に迫(せま)るものまで登場しました。


逆に、弱かった電池をさらに消耗(しょうもう)して、最後には加速できなくなるという苦杯(くはい)をなめた人もいましたね。

 市販品のコマとは違って、自(みずか)ら色々と部品を組み替えて試せる点においては、遊びながら考えさせる優れた教材になったと思います。
学術的にも、コマの原理は、何年も勉強し続ける人もいるくらいとても奥深いもの。
高校物理を学んで、また改(あらた)めて興味を持ってもらえたらいいですね。


*1 限界に近いながらも、2015年5月の生徒さんが、コマ上端のギアM(24)をピニオンギア(8)に替えて、さらに3倍(トータル45倍!)の増速比を稼(かせ)いで100秒を可能にする加速方法を編(あ)み出しました。
ジェットエンジンの始動のように、加速完了まで10秒以上かけて回転音が高まるようなカッコイイもので、先生が披露すると、その方法が皆さんを虜(とりこ)にしていましたね。

 今回の中間教室2年生も、先生の支援を取り入れて、ギアL(40)⇒ピニオンギア(8)の5倍増速×2段=25倍で92秒を達成し、2位の50秒を圧倒していました。
理論を体現した結果であり、正に科学の勝利ですね!

*2 必ずしもタイヤ・ギアのような円形部品を使う必要はなく、回転軸(シャフト)に対して対称となるような配置(点対称)なら、他の部品でも使えます。
例えば、タイヤLのホイール穴にペグを4本挿(さ)して重くした工夫例がありました。


*3 回転エネルギーをたくさん貯(た)められるようになります。このことを物理学で「慣性(かんせい)モーメントが大きい」と言います。

*4 過去には、重心を高く作ったことで不利なふらつき(歳差(さいさ)運動)を、下部に履(は)かせたホイールの縁(ふち)と地面との低摩擦な接触で抑制(よくせい)し、好記録を出した工夫例も見られました。


1.3 <ミドルコース『ヤジロボベエ』>



 ピンと張った紐(ひも)を伝(つた)うロボットですが、1日目はロープウェイ、2日目は一輪車でサーカスの綱渡りをするようなロボットと、形態を大きく変えます。
ここまで作り変えるテーマは、他にありません。面白いですね!

 学習ポイントは“重心”です。
ロープウェイ型ロボットは、ローラーだけ紐の上に掛けて、重い本体を吊(つ)り下げていますから、重心は、見た目通り、本体の中心部にあって、支点(紐と接するローラーの最下点)より下に位置します。


重心に集中して重力が掛かると考えてよいため、(その直上の)支点も真下に引っ張られるものの、紐に引っ掛けられて(上向きの力で吊られて)いるので、安定して支えられます。
ゴンドラが風に煽(あお)られて、重心が支点の真下からずれても、しばらく揺(ゆ)れるだけで、また元の安定した姿勢に収まります


 ここで、このゴンドラを逆立ちさせるように、ローラーの上端を紐の上に置こうとしたら、どうなるでしょうか?
支点(紐との接点)より上にきた重心が重力で引っ張られる結果、横にコロッと半回転しながら落下してしまいます。

サーカスの綱渡りもこの状態であり、本来は非常に不安定なところ、横に伸ばした両腕や長い棒を傾けつつ、上手にバランスを取っています。
このロボットに、そこまで期待できませんね。


 ところが、2日目のロボット『ヤジロボベエ』は、これを見事にやってのけます。
一輪車に乗った彼の重い胴体は、支点よりかなり高い位置にあって、逆立ちしたゴンドラ同様に不安定そうですが、なかなかどうして、バランスの取れたロボットなら、多少のロープの揺れもお構いなく、スイスイと渡ってしまいます。
なぜでしょうか?


変わったところと言えば、ハの字形をした長い棒を持っていることです。
それがどうして? 綱渡りサーカスの長い棒と同じじゃない?
いえいえ、ハの字形に垂れ下がった棒の両端に、重い電池ボックスやタイヤを取り付けているところがミソなのです。


これにより、ロボットの重心を支点より下に引き下げることができます。
紐の真下には部品が何もないのに? それでも構いません。
計算上、このロボットの重心は、紐の下の空中に位置することになり、これにより、彼をゴンドラ同様に安定させているのです。



 やじろべえを知っていますか? 同じ原理です。
おもりや棒の長さを調整して左右のバランスを取ることが重要ですが、それだけではありません。

一定以上に傾かず、支点もしっかり固定されているシーソーなら、左右のバランスだけ気にすればよいので、重さの代わりに、支点からの長さ(座る位置)を調整してもよいのですが、足場の危(あや)ういやじろべえは、さらに、重心が支点の下にあることが必要です。

ですから、あまり棒を短くすると、重心がどんどん上がって、支点に近づくほど不安定になってしまいますので、要注意です。

 皆さんのヤジロボベエは、紐の上で上手にバランスを取ることができましたか?
おもりの追加や、棒の長さで調整できることは分かったと思いますが、なぜ長さの調節でもバランスが取れるのか、不思議ではありませんか?

有名な“てこの原理”ですが、おもりに働く重力(重さ)と、支点からの距離(長さ)が関係しています。
説明を簡単にするために、シーソーを使って考えてみましょう。


 図では、支点から1mの距離で、両端に1kgのおもりを置いています。
この場合、左右で重さも長さも等しいので、シーソーはバランス(均衡(きんこう)状態)を取れます。


 次の図では、おもりの重さは変えずに、支点からの距離を右側だけ変えてみました。
すると、シーソーは傾きますね。

このように、重さだけではなく、支点からおもりまでの距離によっても、支点に作用する力が変わってきます。
支点を中心に物体(シーソーの板)を回転させようとする力を回転力(トルク)と呼びます。

 実は、〔 トルク = 押す力(重さ) × 支点からの距離(長さ) 〕で決まります。
傾いたシーソーの支点に働くトルクを計算してみましょう。

 左側のおもりによるトルク = 1kg ×  1m =  1[kg・m] 反時計回り
 右側のおもりによるトルク = 1kg × 0.5m = 0.5[kg・m]  時計回り

やはり、左側のトルクの方が強く、シーソーは左に傾くことが分かります。

 左右のトルクを同じ(向きは逆)にすれば、シーソーはバランスを取れます。

最後の図ではどうでしょう。計算してみましょう。

 左側のおもりによるトルク = 1kg ×  1m = 1[kg・m] 反時計回り
 右側のおもりによるトルク = 2kg × 0.5m = 1[kg・m]  時計回り

等しくなりましたね。この場合、シーソーはバランスを取れるのです。

 ヤジロボベエのバランス調整にも同じことが言えます。
おもりを付け足す代わりに、棒を長く伸ばして(おもりを支点から遠ざけて)も、トルク(傾こうとする力)を増やすことができるのです。


1.4 <アドバンスプログラミングコース『コピーロボット(2)』>



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




1.5 <プロ3年目コース『不思議アイテムIII-1(2)』>


 もっと赤外線で遊びます。

 赤外線データを送受信できるようになりましたので、これを大砲の弾に見立て(*1)、戦車ロボット(オムニホイール)に搭載してサバイバル戦を繰り広げます。


戦車ゲームプログラム[IRtankFire]では、ライフ数(life)や当たり判定閾値(hit_rate)の変数が用意され、ゲーム性を簡単にカスタマイズできます。

皆さんの意見により、life = 3 → 5, hit_rate = 60 → 45 へ変更しました。

加えて、
発砲すると、その効果音と反動効果の演出処理にマイコンが専念するため、連射し続ければ不死身になる!
という“クソゲー”要素を排するために、プログラムのループ250回(約2.5秒)に1回しか打てないよう改良しました。

いや、ライフが減るほど移動速度が上がって有利になる(*2)のだから、連射周期も短くなるようにしたい!
という声を反映し、life*50回のループ毎に1回打てるように改変しました。

勝負事になると、途端に活き活きと意見するようになる男子諸君でした。
実際、バトルを観戦しているだけでも白熱した楽しさが伝わってきます。
テクノロジー(赤外線通信・プログラミング)の投入により、エンターテイメントロボットとして、オムニホイールもここまで進化したかという感です。

 さて、赤外線を使って、このようなゲームが成立するのは、赤外線が照射方向に真っ直ぐ飛ぶ性質を備えているからです。
このことを「指向性が高い」と言います。

ここで波長がメートル級の電波を使ってしまうと、砲塔がどこを向いていようが、発射したビームが部屋中に拡散し、敵・見方の見境(みさかい)も無く全員を攻撃するテロリストになります。

 それならば、次のアプリケーションとして、赤外線の発信源の方向を特定し、回避したり追従したりできるでしょうか?

指向性があるとは言え、実際には、懐中電灯の光の如く、発信源(赤外線LEDやリモコン)から円錐ビーム状にある程度拡がります(*3)。
実験してみると、赤外線LEDの方向から±45°で90°(距離によっては±90°で180°も!)の範囲で受信してしまいます。
そのような赤外線の飛来方向を高精度に特定できるでしょうか?


「できない」と諦(あきら)めたら終わりです。
「入手できる複数の情報を最大限に活用して、その裏に隠された本質を抽出できるアルゴリズム(処理手順)が無いか?」を考えます。

一発の計測では無理だが、複数回の計測により受信角度の範囲が分かり、発信源はその中心の方角にあると推定できる」というアイデアですね。


オムニホイールの操舵性を活かし、その場でぐるぐる旋回させながら、受信できる角度と強度(*4)を記憶していきます。まるでレーダーのようですね。

「言うは易し」ですが、360°を10°刻みで記憶するにも36個の変数が必要です。
int range[36] のような配列に格納すれば、for文を使ってスキャンや集計が簡単になりますね(*5)。

 戦車バトルが結構面白くて盛り上がり、延長戦をしていたら時間が足りなくなりました。
次回に続け、さらに赤外線の追従アルゴリズムを探求します。


*1 本当はレーザー砲と言いたいところですが、発砲のタイミングで後退りする演出(慣性の法則・作用反作用の法則)が入っていますので、重量物(物理的な弾)を発射させていると妄想すべきでしょう。

*2 107行目 omniBot.move(xx/3/life, yy/3/life, ww/3/life); です。


*3 レーザー光/赤外線なら、殆ど拡散せず、遠くの壁に小さなスポットを映します。
 例えば、CDのピックアップ部(読み取り装置)には、盤上の微小ピット(1μm以下)を読み取るために、赤外線レーザー(波長780nm)が使われています。

*4 実際は強度ではなく、赤外線コマンドの受信データ長(rawlen)を記録します。
 受信確度が高いほど、完全なデータ長100に近い値が得られることを利用します。

*5 例えば、a[100]のうち、最大値をmaxに記憶するには、max=a[0]; for(i=1; i<100; i++){if(max < a[i]) max=a[i];} で、
 平均値をavgに記憶するには、sum=0; for(i=0; i<100; i++) sum+=a[i]; avg=sum/100; です。


2. 今月の課題


 <スタートアップ(全コース)>
  特にありません(アドバンスプログラミング生は2017年9月報を参照)

 <プライマリーコース>
  - オリジナル図形プリント

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

 <ミドルコース>
  - オリジナル課題プリント(3面図+設問)
  - 上記授業内容を精読する

 <アドバンスプログラミングコース>
  - オリジナル課題プリント(見取図+設問)
  - 上記授業内容を精読する

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


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


◆小倉北6/17は『商工貿易会館(シティプラザ)』で開催します。
◆中間6/23は『中間市生涯学習センター』で開催します。

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

[東福間]第1・3土原則
   - 13:30~ ベーシック/プライマリ
   - 15:30~ ミドル
   - 17:30~ アドプロ

 ⇒ 6/2, 16,  7/7, 21,  8/4, 18


[東福間プロ]第2・4日原則
   - 15:30~ プロ3年目

 ⇒ 6/10, 24,  7/8, 22,  8/12, 26


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

 ⇒6/ 9 第1回 ハーモニーホール3F会議室2
  6/23※第2回 生涯学習センター2F第4研修室
  7/14, 28※,  8/11, 25

 ※6/23は代替施設『中間市生涯学習センター』で開催します。
 ※7/28もハーモニーホール利用不可の為、代替施設(未定)で開催します。


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

 ⇒6/ 3 第1回 ムーブ5F小セミ
  6/17※第2回 シティプラザ7F
  7/1※, 15※,  8/5, 19

 ※6/17は代替施設『商工貿易会館(シティプラザ)』で開催します。
 ※7月はムーブフェスタの為、6/2まで確定できません。代理施設での開催となる可能性があります。


――――――――――【菅本教室長】――――――――――

[とばた]第2・4土原則<ウェルとばた8F>
   - 13:00~ 全コース(プロを除く)

 ⇒ 6/9, 23,  7/14, 28,  8/11, 25


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

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

 ⇒ 6/2, 16,  7/7, 21,  8/4, 18


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

 ⇒ 6/10, 24,  7/8, 22,  8/12, 26


4. お知らせ

1) ロボット教室全国大会 8/25(土) 東京大学 安田講堂
 アイデア・テクニカル(ライントレーサ)コンテストの時期が近づいてきました。6月第1回授業日に案内冊子を配ります。

 ◆アイデア部門:7/19(木)九州本部必着にて、所定の応募用紙・プレゼン動画(3分以内)を郵送
 ◆テクニカル部門:7/2(月)10:00~7/18(水)18:00までにWeb申込み

 《全国大会 観覧申込み - 8/1(水)17:00~定員まで》
  http://kids.athuman.com/robo/event/convention/2018/


2) ロボット教室九州地区大会 7/26(木) 福岡市科学館サイエンスホール
 全国大会に先立ち、九州地区大会も開催されます。
(発表練習会の位置付けであり、全国大会の予選ではありません)
 発表練習のみならず、他教室の面白アイデアを伺うチャンス!
 福岡県内の皆さんには、地の利があります。ご家族で参加しましょう!

 ◆アイデア地区大会:7/17(火)大会本部必着にて、所定の応募用紙を郵送

 《地区大会 観覧申込み - 6/25(月)12:00~7/5(木)19:00》
  http://kids.athuman.com/robo/event/convention/2018/


3) 5教室合同アイデア発表会
 アイデア地区大会・全国大会への応募を後押しするべく、
 東福間・中間・八幡東・小倉北・小倉南5教室合同でアイデア発表会を開催予定です。
 決定次第お知らせします。

 ■アイデア発表会
  7/ 1(日) 11:45-12:45 男女共同参画センター(ムーブ)予定
 ■発表練習会
  7/15(日) 11:45-12:45 男女共同参画センター(ムーブ)予定


4) 教室としての取り組みスタンス
 コンテストへの出品・発表は、創作力や理解力など、ロボットの総合力を一気に高めるチャンスです。
 ご家族行事として参加下さい。

 特にアドプロ生は、原則として全員テクニカル(ライントレーサ)部門に出場して頂きます。
 今年から、プログラミング対応規定に変わりました。
 昨年の非プログラミング規定に挑戦した人は、敗北感を糧に(?)、返り咲きを誓いましょう!
 (アイデア部門への出品も可能ですので、希望者はお伝え下さい)

 どの部門の挑戦者も、7月テキストのカリキュラムを割愛して、コンテスト作品に注力しても構いません。
 アドプロコースでは、6・7月で2体のロボット(建機)を作り分けますので、6月分のみ製作して終わっても構いません。


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

 ◆プライマリ【4名平均 図形4.8】
   5点…板脇[小倉北1], 柴田[小倉北1], 米山[小倉北2]

 ◆ベーシック【24名平均 図面3.5+設問1.7=5.1】
  10点…なし
   9点…久保田(雄)[小倉北5]
   8点…柴田[小倉北3]
   7点…下木[八幡東3], 藤野[八幡東3], 森崎[八幡東3], 竹内[小倉北4]

 ◆ミドル【22名平均 図面2.4+設問2.1=4.5】
  10点…荒木[小倉北4] →偏差値76!
   9点…なし
   8点…なし
   7点…福政[八幡東4], 大橋[小倉北5]


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