2.今月の課題
3.今後の授業スケジュール
4.お知らせ
1. 9月授業内容
1.0 <スタートアップ(全コース)>
割愛します。
1.1 <プライマリーコース『メカビートル』>
割愛します。
1.2 <ベーシックコース『ジャイアントホッパー』>
バッタ型ロボットです。ギアを介(かい)してモーターが駆動(くどう)するのは、本体の側面で時計の針のように回転するロッド3アナだけです。
それだけなのに、後ろ脚(あし)を折り曲げたり、伸ばしたりを繰り返し、尺取り虫のように前進します。どうしてでしょうか?
ロッド3アナが1回転毎に後ろ脚を跳(は)ね上げています。
このような回転体に当てることによる周期的な運動機構をカムと呼び、例えば、自動車のエンジンが吸気と排気を切り替えるために使われています。
後ろ脚が跳ね上がる時に関節(かんせつ)が折れ曲がって、後ろのタイヤLを前方へ引きずります。
この時、本体は進みませんが、次に輪ゴムの力で脚が伸びる時、後ろのタイヤLは微動(びどう)だにせず、前輪のタイヤSが転がりながら本体を前へ進めます。
後ろのタイヤLは回転しないのに、どうして前進するよう都合(つごう)良く引きずられたり踏(ふ)み止まったりしてくれるのでしょうか?
タイヤLは回転しないのですよ。だったら、タイヤLは動かず、後ろ脚の屈伸(くっしん)運動に合わせて本体(前輪)が前後に往復(おうふく)するだけではないでしょうか?
(尺取り虫も、次の一歩を迷ってそのような動きをすることがありますね)
それは摩擦力(まさつりょく=すべらせない力)の効(き)き方が違うからです。
ちょっと難しいのですが、脚を折り曲げる(引っ込める)時は、タイヤLを斜(なな)め前方上向きに引き上げる力が働き、重い本体を後退(こうたい)させるほどの地面との摩擦力はなくなります。
その結果、タイヤLの方が引きずられるのですが、逆に脚を伸ばす時は、斜め後方下向きに蹴(け)り出すので、地面との摩擦力が強力に働き、すべらずに本体を推進(すいしん)させるのです。
消しゴムをノートに軽く当てた場合と強く押し付けた場合とでは、すべらせるのに必要な力が全然違いますよね?
また、消しゴムをノートに斜めに当てると、引く時は軽くすべりますが、押す時は摩擦力を強く感じますね。タイヤLにも同じように作用しているのです。
タイヤLが地面から跳ね上がるほどのパワーがあれば分かりやすいのですが、ずっと地面を引きずっていますので、見た目では分かりません。
タイヤLを消しゴムだと思ってください。
タイヤLを回転しないよう止めている理由が分かったでしょうか?
試しに、自由回転するようクランクを取り外してみてください。
最後の競技は“バッタレース”をしました。スピード勝負です。
推進はゴムの張力(ちょうりょく)、そのゴムにエネルギーを充填(じゅうてん)するのがモーターの仕事と言えますから、ゴムはきつく、モーターはパワフルに、というのが理想ですが、限界もあります。
究極は、有限なモーターパワーをロッド3アナの回転トルク(脚の力)に振るか回転数(脚のスピード)に振るかでギア比を決めたり、それに適した輪ゴムの掛(か)け方や本数を探ったりするのが戦略です。
これまでに下記のような素晴らしい改造が生まれています。
1) モーター軸のピニオンギア ⇒ ギアMへ交換(脚が3倍速く動く)(*1)
2) 側面のロッド3アナ回転中心を端っこ ⇒ 中心へ変更(脚が2倍速く動く)(*2)
3) 2)のロッド3アナに、ロッド5アナを被せ、2)の弱点を解消(*3)
4) タイヤLに代わり、グロメットをはめて、後ろ脚を軽量化(*4)
5) タイヤLのクランク(回転止め)に代わり、(前方向のみ回転させる)ラチェット機構を取り付けて、スーッとすべるように前進する(*5)
登坂(とうはん)チャレンジも、面白い競技になります。
テキスト通りのロボットでは、坂がきつくなると、後ろ足(タイヤL)の摩擦力が減(へ)ってすべったり、せっかく蹴(け)っても次に蹴るまでに前足(タイヤS)が後ずさりしたりして、あまり登れません。
過去には、後ろ足を重くしたり、腹(はら)で支えたり、前足にもラチェット機構を取り付けたり(!)して、すべり止めの改良が様々に生まれていました。
ベーシックコースの総仕上げにもなりそうな、奥の深いロボットでした。
*1 力は1/3に弱くなり、モーターが力負けして停止しやすい弱点がありますので、あまり欲張(よくば)れません。
*2 回転半径が半分(2アナ分⇒1アナ分)になるので、動きの幅(ストローク)が半分になり、あまりスピードアップしない弱点があります。
*3 ロッド5アナの中心を回転軸としても、回転半径を2アナ分とれ、ストロークを減らさずに脚を2倍速く動かせます。
*4 バッタらしい力強い脚に見えなくなりますが、電池が弱くても動きやすいですね!
*5 これだけで圧倒的に速くなります。ミドルコースレベルの改造です。
1.3 <ミドルコース『ダンゴム』>
新ミドル(プログラミング)コース最初の本番は、変形ロボットです。
と言っても、変形させるプログラムがあるわけではありません。
このロボットは旧ミドルコースからあり、ラチェット機構によって、ダンゴムシのように多数の足で歩いたり、丸まったりします。
マイコンは、モーターの正逆回転/停止のトリガリング(切替タイミング)や継続時間を手動スイッチ操作に代わって制御するのみですので、プログラム編はテキストに委(ゆだ)ねます。
●ロボットの動き
モーターは回転する力しか生み出しませんね。
その回転する力でロボットの足を動かし前進するのか、本体を変形させる(丸まる)のかはどこで決まるのでしょうか。
1日目のロボットは丸まらず、スイッチを切り替えても前進・後退するだけです。
(これだけでも、虫嫌いな人をゾクゾクさせるには十分な仕上がりですが)
2日目のテキストに丸まるためのミソが隠(かく)されています。
●丸まる改造
テキストに倣(なら)い、写真のようにラチェットをギアに噛ませてみました。
これでスイッチを入れると…、前に進んだり、丸まったりしましたね。
なぜ2通りの働きをするのか、皆さんは既(すで)に理解していると思います。
スイッチを一方に入れて前進するのは変わりませんが、逆方向に入れるとラチェットがギアに噛み、後退する代わりに変形するようになりました。
ここで、1つ疑問が浮かびます。
ラチェットが噛むと、そのギアは回転できなくなり、ロボットがその場に止まったまま動けなくなるだけではないでしょうか?
ちょうど車のタイヤを回らないように固定した場合のイメージです。
●力の逃げ道
写真のように、赤矢印のギアを回した場合、隣のギアへ回転が伝わります。
青矢印のギアは回転する以外に動きようがないですね。
そこで、ギアの土台を変えてみます。
写真のように、ビーム2本にシャフトを1本通し、ハサミのようにクロスさせます。
シャフトにギアを通し、もう1組のシャフトとギアを上部のビーム1本だけに通して噛み合わせます。
(実際に作って体験してみることが理解への一番の近道です)
赤矢印の示すシャフトを回してみます。当然、青矢印のシャフトも回転すると思います。
同時に、なんとなく上部のビームもオレンジ矢印の向きに回転しようとしませんか?
赤矢印のシャフトを急に回そうとするほど(*1)、オレンジ矢印のビームもつられて回りやすいと思います。
この場合、赤矢印の回す力は、青矢印のギアを回すか、オレンジ矢印のビームを回すかの2通り、“逃げ道”があるわけです。
力の逃げ道がいくつかある場合、より簡単に動かせる(抵抗が小さい)方に逃げます。
その結果、青矢印のギアが回ったり、オレンジ矢印のビームが回ったりします。
回しやすさ(抵抗)が同程度の場合は、両方とも回ることになります。
ここで、力の逃げ道の1つを閉ざすとどうなるでしょうか。
写真の赤丸のように、ストッパーを取り付けてみました。
このストッパーの役割は、ダンゴムの(ギアと噛んだ)ラチェットと同じで、接触しているギアを回らなくしています。
この状態で、赤矢印のシャフトを回してみてください。
上部のビームをオレンジ矢印の向きにダイレクトに回転させる感じがすると思います。
なぜそうなるのでしょうか?
赤矢印の力の逃げ道として、ストッパーを破壊して青矢印のギヤを回すより、ビームを回した方がはるかに楽(抵抗が小さい)ですね。
その結果、青矢印のギアのギアを回すことなく、ビームを回すことに専念するのです。
これがダンゴムを後退させるか、丸めるかを分かつ仕組みの原理です。
7月の『シュート君』、昨年2月の『サカアガリン』にも使われていました。
●丸まる仕組み
力の逃げ道がダンゴムの変形にどのように作用しているのかを見ていきましょう。
モーター軸(ピニオンギア)をM、側面のギアMを左からA,B,C,Dと名付けます。
ギアDに注目すると、これはラチェットにより回らなくなっています。
全てのギアは噛み合っていますので、このままではモーターMは回転できません。
ここで何が起こるでしょう。力は“逃げ道”を常に探しています。
スイッチを入れると、ピニオンギアMは回転しようとしますが、ラチェットにより固定された一連のギアを回すことはできません。
代わりに、モーター(頭部)自身が赤矢印の向きに回ることで、ピニオンギアMがべベルギアの周りを回ることができますね。
ある程度までモーター(頭部)が回転すると、写真の青丸のように、ダンゴムの頭と胸のパーツ同士がぶつかってしまい、回転できなくなります。
逃げ道は他にないでしょうか?
実験した2本のビーム同士のように、頭⇔胸以外にも、胸⇔腹、腹⇔尻の間に、折れ曲がる関節がありますね。
これらが折れ曲がることで、ギアAはBの周りを、BはCの周りを、CはDの周りを回る仕事ができ(*2)、その結果、ダンゴムは丸まっているのです。
さて、ダンゴムが丸まる仕組みは以上ですが、丸まる動作に不必要なギアがあります。
それは、ギアA,B,C,Dのうち、どれを指しているでしょうか?
ダンゴムは、3つの関節で分けられた頭・胸・腹・尻の4部位それぞれに、ギアA,B,C,Dが取り付けられ、関節の両側のギアが互いの周りを回ろうとする(*3)力で折れ曲がっています。
だから、一見無駄がなさそうですが、この力の伝達に寄与(きよ)していないギアがあります。
つまり、それを外しても丸まる動作に影響はありません(*4)。それはどれでしょうか。
そのギアの記号と不必要な理由、そのギアの別の役割を考えてみてください。
*1 物体を素早く加速させようとするほど、それを妨げようとする抗力が大きくなり、その分、大きな力を要します。慣性の法則といいます。
*2 実際は、回転方向を整えるために、間にピニオンギアを介していますが、関節を挟んだギア同士が互いの周りを回る作用としては同様に考えられます。
*3 どちらがどちらの周りを回っていると考えるかは、基準(カメラの設置場所=動いていないと感じる方)によって変わる相対的なものです。
*4 ギアA,B,C,Dは両側面にあることに注意してください。両側セットで考えます。
1.4 <アドバンスコース『バグモジョラ(2)』>
後半の3・4日目は、完成したバクモジュラでテキストp.18の課題に挑戦してもらいました。
バグモジュラを壁に向かって歩かせ、タッチスイッチで壁への衝突を検知すると後ろ向きに歩き、スタートラインへ戻るといったものです。
この動作を実現させるプログラムを考えてもらいました。
一度分かれば簡単、分かろうとしなければ難しいですね。
タッチスイッチはいつ押されるか分かりませんので、ずっと監視し続ける必要があります。
このような処理には、繰り返し命令「ループ」を使います(左図)。
生徒さんから「IF」を使うという声も出てきました。これも正解です。
ただし、「IF」ではタッチスイッチの状態を1回調べると処理を終えるため、「ループ」の中で使う必要があります(右図)。
どのみち「ループ」が必要なら、短い書き方がスマートですね。
プログラムを転送してバグモジュラを動かしてみると、まっすぐ歩かせるのは案外に難しかったですね。
左右の足の推進力を調整できれば、バグモジュラの方向を修正できます。
この問題解決には、2つの視点からのアプローチが考えられます。
1) 脚の位相や足先の摩擦力などを調整する、機械的なアプローチ
2) 左右の脚の運動量をプログラムから調整する、制御的なアプローチ
1) は多くの生徒さんが実践していました。
各脚で向きをずらしたり、足先の形状やグロメットの取り付け方を工夫することで、推進力が変わります。
片側3本ずつあり、反対側の状態にも相互に影響し合いますから、全体の脚が生み出す推進力を位相の組合せで調整するのは困難を極めましたね。
地面に着いたり離れたりする部品の摩擦力による調整も、思うように効かせられませんでした。
2) の方法はアドバンスコースならではです。
バグモジュラの左右の脚は、それぞれ独立したモーターで駆動しています。
左右で推進力に差があるのならば、強い方の脚を時々休めてあげれば良いというアイデアです。
例えば、左に曲がりやすければ、左脚に比べて右脚の推進力が大きいと考えられます。
この場合、右脚のモーターの回転数を落とすか、右脚の動きを間欠(時々停止)運転することで、左右の推進力のバランスを調整できます。
この2つの解決法は対照的ですね。
機械的なアプローチでは、何度もロボットを分解しては、ギアの噛み合い(位相)をずらしたり、足先を作り変えてみたりと手間がかかります。
良い調整なんて無いのかもと疑いたくなります。
制御的なアプローチでは、機械の調整はそこそこにして、プログラム上の数字を何回か変更するだけでベストな値が見えてきます。
毎回、制御的なアプローチが近道とは限りませんよ。機械的なアプローチの方が能率的な場合も大いにあります。
状況に合わせて、どちらの解決手段が向いているか見極めましょう。
1.5 <プロ1年目コース『不思議アイテムI-1(3)』>
不思議アイテムの世界も、最終月を迎えました。
1日目は、“ラーメンタイマー”を作ります。
時間を計る(というより休め!の指示)命令としては delay がありますので、所望の時間だけ静止した後、ブザーでも鳴らせば一先ず完成ですが、経過状況も知りたいのが人情です。
delay(1000) と命令する度に何かをすれば、1秒毎の経過が分かります。
delay(100) を10回繰り返して、0.1秒単位のカッコイイ表示もできます。
秒数を2桁の数字で表したければ putd2、大きな1文字を表示したければ putch、任意の大きさで円や四角を描画したければ circle や rectangle、1ドット光らせたければ write、1音を鳴らしたければ play、メロディを奏でたければ play_rtttl、モーターを回したければ rotate等、いろんな命令が紹介されています。
サンプルプログラムでは、タッチセンサーの入力検出に listen と onPress、繰り返しに for や while、条件分岐に if や switch-case を使って、初めに秒数やアラーム方法を選ばせる実用的タイマーに仕上げていました。
中には「ピッ、ピッ」と音を発しながら10秒からカウントダウン表示し始める、その名も時限爆弾の CountBom もありました(*1)。
最終日の2日目は、ちょっと遊んで一息つくのにふさわしい「人工生命とシンセサイザー」がテーマでした。
人工生命といっても、8x8ドットのそれぞれを生命体(細胞=セル)になぞらえ、周囲の生存セル数に依存した単純な規則によって誕生・生存・死滅を世代展開していく様子を観察して楽しむものです。“ライフゲーム”と呼ばれます。
それの何が面白いといって、“カオス的”なのです。簡単なルールで動いているのに、先行きが読めないのです。
初期状態のちょっとした違いが全く異なる結果を生み、にわかには予測不可能なパターンを繰り広げます。
ここから(*2)、生命現象や神経回路網の再現、人工知能の研究へと発展していきました。
コンピュータの登場がこのような楽しみと学問の道を開いたのですね。
シンセサイザーの方は、先月の“電子ピアノ”を改造したプログラムです。
無線リンクしたゲームパッドのボタンが鍵盤になっている点は変わりませんが、アナログスティックを倒す量に応じて周波数を増減させる、エフェクター(ピッチシフター)機能が搭載されました。
プログラム上では、“play(NOTE_C4 + effect)”のように、音名を表す記号 NOTE_** にスティック傾倒量 effect を足しています。
“ド”に数値を足すって、どういうことでしょうか?
先月の1日目に学びました。音名記号は、プログラムの転送前(コンパイル時)に音の周波数に置き換えているのです。
例えば、440Hzの“ラ”ボタンを押しながら、+54相当分スティックを前に倒せば494Hzの“シ”に、-48相当分スティックを引けば392Hzの“ソ”に変わる、という具合です。
デジタルの世界では、すごく簡単な計算で豊かな効果を演出できる、という一例です。
ロック・ギタリストにでもなった気分で、ブイブイ演奏してみましょう。
ここまでで、もう、光と音を自在に操れる魔法を手に入れたようなものです。
*1 ジョーク・プログラムなのですが、むき出しの配線や電子基板の中で赤いLED数字がカウントダウンを始めると、かなり物騒な雰囲気を醸し出します。
テロが心配される国では冗談どころか、誤解から自身を危険に晒すことになるでしょう。
日本でも、公共の場でいたずらに利用するのは厳に慎みましょう。警察沙汰になるか、配線が切断される被害(?!)に合うこと請け合いです。
*2 ライフゲームそのものというより、上位概念のセル・オートマトンと呼ばれる格子状セルで構成した計算機モデルから。
2. 今月の課題
<スタートアップ(全コース)>
特にありません
<プライマリーコース>
- オリジナル図形プリント
<ベーシックコース>
- オリジナル課題プリント(3面図+設問)
- 上記授業内容を精読する(概ね3年生以上/低学年は補助の下で)
<ミドルコース>
- オリジナル課題プリント(3面図+設問)
- 上記授業内容を精読する
<アドバンスコース>
- オリジナル課題プリント(見取図+設問)
- 上記授業内容を精読する
<プロ1年目コース>
- 上記授業内容を精読する(該当テキストページを見ながら)
- [CountTimer4]をベースに、LEDドットパターンや数字表示で「経過秒数が分かる」タイマーを作る
Lv.1 8個の点を順次点灯または消灯させる8秒タイマー
Lv.2 60個の点を順次点灯または消灯させる60秒タイマー(ヒント:%演算子)
Lv.3 表示方法を独自に工夫した3分間(180秒)タイマー
Lv.4 表示方法を独自に工夫した1~9分間設定モード付きタイマー
(Lv.3以上を指示/Lv.1~順にクリアしていくと先が見える)
3. 今後の授業スケジュール
◆八幡東11/2→11/9へ一週ずれます。
――――――――――【佐藤教室長】――――――――――
[東福間]第1・3土原則<学習ルームでこぼこ>
- 13:30~ ベーシック/プライマリ
- 15:30~ ミドル
- 17:30~ アドバンス
⇒ 10/5, 19, 11/2, 16, 12/7, 21
[中間]第2・4土原則<なかまハーモニーホール>
- 13:30~ ベーシック/プライマリ
- 15:30~ ミドル
- 17:30~ アドバンス
⇒10/12 第1回 3F会議室2
10/26 第2回 3F会議室2
11/9, 23, 12/14, 28※
※12/28はハーモニーホール利用不可の為、代替施設(未定)で開催します。
[小倉北]第1・3日原則<ムーブ>
- 10:30~ ベーシック/プライマリ
- 13:00~ ミドル/ロボプロ1年目[暫定]
- 15:00~ アドバンス
⇒10/ 6 第1回 5F企画1・2
10/20 第2回 5F企画1・2
11/3, 17, 12/1, 15
――――――――――【中野教室長】――――――――――
[八幡東]第1・3土原則<レインボープラザ4F>
- 13:30~ ベーシック/プライマリ
- 15:30~ ミドル
- 17:30~ アドバンス
⇒ 10/5, 19, 11/9※, 16, 12/7, 21
※原則日11/2がレインボープラザ利用不可の為、一週ずらします。
[小倉南]第2・4日原則<総合農事センター2F>
- 10:30~ ベーシック/プライマリ
- 13:00~ ミドル(/ロボプロ1年目)
- 15:00~ アドバンス
⇒ 10/13, 27, 11/10, 24, 12/8, 22
4. お知らせ
1) 消費税率アップ10/1以降に頂戴する月謝等について、増税分を加算させて頂きます。
(10月分月謝について、9/30までは8%、10/1以降は10%で頂戴します)
【授業料+テキスト代】
・~ ミドルコース 10,260円 ⇒ 10,450円
・アドバンスコース 10,044円 ⇒ 10,230円
・ロボプロコース 13,608円 ⇒ 13,860円
【振替手数料】
・~アドバンスコース 540円 ⇒ 550円
・ロボプロ コース 1,080円 ⇒ 1,100円
2) 宿題プリントA4化と各自印刷のお願い
下記理由により、全員配布しておりましたA3図面用紙の全員配布を廃止し、
段階的にA4化と各自印刷へ移行したく、ご理解・ご協力お願い申し上げます。
【廃止理由】
- 本部からのA3図面用紙の支給廃止
- 宿題の(任意)提出率に鑑みた、紙資源の節約
- プリント・解答の迅速な開示と、支給洩れの解決
【移行措置】
- 12月までA4化したプリントを全員配布します
- 来年1月から月報等に記したプリントを各自印刷して頂きます
3) 北九州高専 秋のオープンキャンパスのご案内
高専ロボコンや、におい計測ロボット「はなちゃん」などで有名な北九州高専にて、オープンキャンパスが開催されます。
モノづくりが好きな中学生の皆さんは、この機会に高専を体験してみていはいかがですか?
当日は一日高専生として模擬授業に参加できますので、受験へのヒントやモチベーションにつながることと思います。
(1コマ45分の授業が3回あり、興味のある授業を選択できます)
【日時】10月12日(土) 受付 12:00~
模擬授業・部活動見学等 13:00~16:00
【対象】中学生
(保護者の方もぜひ/引率はいたしません)
事前申込み・参加費は不要です。詳しくは下記案内をご覧ください。
https://www.kct.ac.jp/jyuken/opencampus.html
https://www.kct.ac.jp/data/images/jyuken/opencampus/20190823-083300.jpg
お問合せ先
北九州工業高等専門学校
093-964-7232 info@kct.ac.jp
4) 8月課題 高得点者 []内は教室と学年
◆プライマリ【14名平均 図形3.9】
5点…早野(冴)[東福間 年長], 神崎[中間1], 中島[中間1],
柴田[小倉北2], 鑓水[小倉北 年長], 星野[小倉北 年長],
村上(夏)[小倉南2], 村上(怜)[小倉南2]
◆ベーシック【14名平均 図面2.7+設問1.5=4.2】
10点…なし
9点…なし
8点…橋本[小倉南2]
7点…なし
6点…なし
◆ミドル【17名平均 図面2.6】
5点…なし
4点…中村[東福間4], 竹内[小倉北5], 重藤[八幡東8], 宮尾[八幡東6], 森崎[八幡東4], 塚野[小倉南4]
東福間・中間・小倉北教室 佐藤 / 八幡東・小倉南教室 中野