2017年4月26日水曜日

2017年4月報

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


1. 4月授業内容


1.0 <スタートアップ>



 割愛します。




1.1 <プライマリーコース『ロビット』>



 割愛します。




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



 ロボ・ボートの略ですね。ネーミングもさることながら、オールをこぐ動きもナイスです。


 この動きは、棒の中央付近(支点)をあまり動かないように固定し、一端(力点)をこぐように回すと、他端(作用点)も同様に回る性質を利用しています。



ただし、支点の位置によって、作用点の動きを大きく(速く)したり、代わりに働く力を大きくしたり、自在に調整できます。

大事なことは、速さ両方を増やすことはできずどちらか欲しい方を好きなだけ増やせる(*1)ということです。
これを『てこの原理』といいます。


 支点が真ん中にあれば力も速さも変わらず、力点と作用点が対等に“闘う”ことができます(*2)。
天びんや公園のシーソーは、力点と作用点(区別は不要)に同じくらいの重さの物や人をのせて、バランスを取るものです。


重さの異なるもの同士なら、重い方が支点の近くに寄ることでバランスが取れます。
シーソーでは、大人が中央寄りに座りますよね。


 支点が作用点の方に近ければ力点を大きく動かさないといけない代わりに、力点に加えた力よりも大きな力が作用点に働きます
『てこの原理』と言えば、通常はこちらの利用方法を指し、ペンチや枝切りばさみ、缶切り、せん抜きなど、固いものを切ったり動かしたりする道具に利用されています。

 逆に、支点が力点の方に近ければ力点に大きな力が必要になる(重く感じるようになる)代わりに、作用点を大きく(速く)動かすことができます
ボートをこぐオールはこちらの利用方法で、結構大きな力が要(い)る代わりに、一こぎですーっと進むことができます。

『ロボート』でも同じです。オール(シャフト)の先を延長して速く進ませることもできますが、あまり欲張っても、モーターの負担(ふたん)が増えるので逆効果でした。

オール(シャフト)の根元は、輪ゴムでクランク(*3)の先と結び、人間の手のように柔(やわ)らかく“水面”をこぐ設計もうまいです。



 2日目の最後に、ボートレースでスピードを競いました。
一見どれも同じような動きに見えて、いざ地面(水面?)に放つと、速さには3~4倍以上の開きがありました。

下記の点に注意したロボートが速かったようです。

●手で押した勢い(惰性=だせい)でもスムーズに進むこと
(前後のタイヤSを手で回して、固くないこと)

●しっかりした輪ゴムでオールを留(と)める
(伸びきった輪ゴムでは何回転もねじれて先端のタイヤSに力が入らない)

●あまり欲張って、オールを長くし過ぎたり、先端をタイヤLに替(か)えたりしない
(てこの原理により、モーターが力負けして速く回せない)


*1 例えば、力を倍に増やして得をすれば、速さが半分に減って損をします。世の中、うまくできていますね。

*2 物体が静止している時、重力が働いている地球上では必ず、何か2つ以上の力が対立しながらバランスを取っています。

*3 実際に使用している部品は『クランク』ではなく『クロスジョイント』ですが、クランクと同じ作用を働かせています。


1.3 <ミドルコース『あがってゴーゴー号』>


 ジェットコースターです。
必要な動力は、コースター(乗り物)を頂上まで持ち上げることのみです。あとは“下り”だけですね。

 コースターを引き上げる方式として、主流なのは、地上と頂上の間を周回する長いチェーンにコースター下部のツメを引っ掛ける方式ですが、
過激なものは、圧縮空気やリニアモーターで平地から一気に加速させ、惰性(だせい)で昇らせてしまいます。(乗ってみたい…)


今回は、コースター下部のラックギアが、一列に並んで回転するギアMの上部と噛み合い、昇っていきます。
一連のギアMをチェーンと見立てれば、主流の方式に似ていますね。

 1日目は、傾斜したレール上を頂上まで昇らせるところまでです。
重要ポイントは、
1) ラックギアと噛み合うギアMはすべて、
2) 同じ速さで、
3) 同じ方向に、
回転させることです。


なぜ、直径の異なるギアMピニオンギアを交互(こうご)に噛み合わせているのか?
だって、隣(とな)り合うギア同士は逆回転する宿命にありますからね。
逆回転するピニオンギアとラックギアを接触させるわけにはいきません。


 2日目は、下りのレールを付け足しました。
乗り物としては、これこそが醍醐味(だいごみ)ですものね!
小さい部品を駆使して、頂上部を滑(なめ)らかに形成します。


 下りながらスピードが増すのは、物理学的に言えば、頂上で満タンになった位置エネルギー(高さ)が、下るにつれて運動エネルギー(速さ)に変わっていくからです。

最下点では位置エネルギーが最小、運動エネルギーが最大です。
その後、机の上をしばらく滑走し、摩擦で机とコースターを僅(わず)かに暖めながら止まります。

位置エネルギー ⇒ 運動エネルギー ⇒ 熱エネルギー へと変換されました。


 実際のコースターでは、何度か上昇と下降を繰り返す中で、位置エネルギーと運動エネルギーの交換が起こりますが、その和は(摩擦損失を無視すれば)常に一定であるというのが、中学3年理科で習う『エネルギー保存則』です。

振り子やブランコが高さと速さを交換しながら運動を続けるのも同じ原理です。




 授業の最後に、コースターに人形パーツを乗せて無事に下ることができるか、安全性を至上命令に、スリリングなコースを建設してもらいました。
地上(机上)の高さ以下、奈落の底へと続く下りレールを延長した改造例もありましたが、果たして乗員の運命や如何に。


















1.4 <プレ・アドバンスコース『ライントレーサー』>


 今月アドバンス進級した方の、次月からの本コースに向けた練習テーマです。
とは言え、全国大会競技に通ずるアドバンスコースの醍醐味テーマです。
初めてモーターを2個使用し、初めての光センサーで制御します。

 もはや組立手順は載っていません。
完成図(四面図)や配線図を参考に、自力で機能を実装していきます。
光センサーの仕組みも学習しました。


 2日目のマシンは、黒テープの(光センサーによる白黒検知の境界)に沿って、左右の駆動輪を細かく切り替えながら自律的にコースを周回します。
ミドルコース『ウォールフォロワー』に比べて、2モーターの高速制御によるスムーズな走行を見せつけてくれました。

コースアウトすることも少なく、安定感にまだ余裕がありましたね。
それはそうです、光センサーという立派な半導体制御回路を使っているのですから、輪ゴムに負けるわけにはいきません。

 ただ、全国競技レベルには程遠いですよ。
コースアウトするかしないか、ぎりぎりまでスピードを上げ、光センサーとモーターの応答速度の限界まで追求しますよ。


1.5 <アドバンスコース『ステップチャレンジャー』>


 2ヶ月目の授業です。


 前月2日目に製作した、4輪駆動の台車の“上”のエレベーターに4本脚を取り付け、一旦上昇させたエレベーターを下降させることで4脚を直立させ、台車を浮き上がらせるアイデアです。

4本脚で立ったロボットは、
1) 安定した姿勢で立ち、特に、横や後方へ倒れないこと
2) 前脚を後方へ蹴り、前方へ倒れる初動(動作の契機)を遠隔操作で与えること
3) 4脚が前方へ倒れることで、台車を前方の段差の上面へ水平に落とし込むこと
が実現されています。

各機構がどのように実装されているかについては十分承知のことと思いますが、
それぞれが高度で、特に重要な意味をもつ仕組みと考えるのではなく、
ただの4輪車では乗り越えられない段差を克服するためのロボットとして、
アイデアを寄せ集めた一例に過ぎないと捉えてください。

 どんな複雑な機械も、論理も、プログラムも、1つ1つは単純な構成要素を組み合わせて成立しています。
但し、目的の機能を達成するために、個々の要素アイデアに分解して統合し、実現するプロセスこそが高度なのであり、人間の尊い知的営みなのですから、毎回、何か一つでもオリジナルアイデアで代替し、改良し、同等以上の機能を実現してみましょう。

それらの試行が集積して君の本当の力となりますから、難しくても、遅れても、先ずはテキストに紹介された機能を再現してみましょう。
ロボット教室なのですから、苦しくは、ないでしょ?


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


 春タームの3ヶ月に入りました。外付けの電子回路をプログラミングで操ります。


 これまでも、マイコン(頭脳)の外側にある、モーターやLED表示器などの出力デバイス(手足)、タッチセンサーなどの入力デバイス(感覚)をプログラム制御してきました。

しかし、それらは、単体で所望の入出力デバイスとして機能する完結品で、ハードウェア的作業としては“つなぐだけ”でした。
ここで、もっと、自ら回路を設計し、動かすためのロボット実装スキルを学び始めましょう。


 1日目は、電子工作において最も基本的な部品である、LED抵抗を使っての点灯実験です。
回路の土台としては、実験やプロトタイピング(試作)に便利なブレッドボードを用います(*1)。

LED(Light Emitting Diode,発光ダイオード)も、点けるだけなら豆電球同様、マイコンは要りませんね。
しかし、小学校理科に登場しない、下記の知識が必要です。
LED電極には極性(+/-)がある
過大電流で切れやすいので、保護抵抗を入れる(*2)
保護抵抗値を大きくするほど電流が絞られ、暗くなる

マイコンなら、点滅を制御できますね。
8番ピンに繋いだLEDを1秒間だけ点灯するなら、下記のようなプログラムになります。

pinMode(8, OUTPUT);    //8番ピン出力モード設定
digitalWrite(8, HIGH); //8番ピンON
delay(1000);          //そのまま1000ms放置
digitalWrite(8, LOW);  //8番ピンOFF


たったこれだけで!
お、面白い…。マイコンには“手足”をたくさん繋げられます。
LED本数を増やして、流れるイルミネーションに挑戦です。

 しかし、LED本数に比例して、プログラム行数が増えていきます(*3)。
LED3本0.5秒毎に順次点灯・消灯させるだけで、下記になります。

pinMode(6, OUTPUT);    //6番ピン出力モード設定
pinMode(7, OUTPUT);    //7番ピン出力モード設定
pinMode(8, OUTPUT);    //8番ピン出力モード設定
digitalWrite(6, HIGH); //6番ピンON
delay(500);            //そのまま500ms放置
digitalWrite(7, HIGH); //7番ピンON
delay(500);            //そのまま500ms放置
digitalWrite(8, HIGH); //8番ピンON
delay(500);            //そのまま500ms放置
digitalWrite(6, LOW);  //6番ピンOFF
delay(500);            //そのまま500ms放置
digitalWrite(7, LOW);  //7番ピンOFF
delay(500);            //そのまま500ms放置
digitalWrite(8, LOW);  //8番ピンOFF


8~10本ともなると、とんでもない量になりました。
点灯パターンを作るのも変更するのも大変な労力です(*4)。
こんなやり方で、キャラクタが跳び回るゲームなぞ作れる訳がないですね。

for文を使って書き直します。

int n;  //整数型変数n宣言
for(n=6; n<=8; n++) {    //n=6, 7, 8
  pinMode(n, OUTPUT);    //n番ピン出力モード設定
  digitalWrite(n, HIGH); //n番ピンON
  delay(500);            //そのまま500ms放置
}
for(n=6; n<=8; n++) {    //n=6, 7, 8
  digitalWrite(n, LOW);  //n番ピンOFF
  delay(500);            //そのまま500ms放置
}

このプログラム行数は、LEDが3本でも10本でも変わりません。“繰返しパワー”ですね!

 さて、時間制御プログラムを走らせて眺めているだけでは飽きますので、もっとインタラクティブ(interactive,人間の操作が関わる)な電子回路にしましょう。
ゲーム機に近づきます。


タクトスイッチ(押しボタン)を押している間だけLED点灯させます。
“フツー”のスイッチですね。マイコン要らず、簡単です。
回路の実装も動作も予想の範囲内で、感動もありません。

 では、同じスイッチを使って、押すとLEDが消える回路を作れるでしょうか。
動作が逆なだけなのに、難しいですね。途端に電気回路の知識が必要になります(*5)。

しかし、「私がスイッチを押したら消して」と誰かに申し付ける方法もあります。
if文を使って、マイコンにやらせましょう。

pinMode(5, INPUT);      //5番ピン入力モード設定
pinMode(8, OUTPUT);      //8番ピン出力モード設定
if( digitalRead(5) == HIGH ) {  //もし5番ピンに入力(スイッチ押下)あれば
  digitalWrite(8, LOW);  //8番ピンOFF(LED消灯)
} else {  //さもなければ
  digitalWrite(8, HIGH); //8番ピンON(LED点灯)
}

これは凄いフリーダムです。自分専属の執事を従えたようなものです。
繰返し命令時間命令を組み合わせれば、押している間だけ消すのも、1回押せば永遠に滅すのも、暫くして復帰するのも、フラッシュ明滅するのも、5分であらゆるスイッチに変身できます。
スイッチ1個でLED3本を同期させるも、時間差でアニメーションさせるも、スイッチ3個で暗号キーを照合させるも、“神”となった君の手中です。



 緑色LED3本の代わりに、フルカラーLEDR,G,B端子を差せば、“光の3原色”の組合せで、2×2×2=8色(デジタルRGB)表現できます。
digitalWrite(8, HIGH) に代わり、analogWrite(8, 128) と書けば、8番ピンの色を50%(128/255)に落とすなど、256×256×256=1677万色(アナログRGB)表現が可能になります(*6)。


 光に飽きたら、です。
tone(A5, 440, 2000) と書き直し、A5ピンにスピーカを繋げば、440Hzの“”が2秒間鳴ります。タクトスイッチは、もう、電子ピアノの鍵盤なのです。

まさに全能です。マイコンなしで電子回路の機能を変更するのは、大変な手間なんですよ。


*1 電子部品の抜き差しが自由で、はんだを使わず、差し込むだけで部品同士を接続できるため。

*2 順(電流が流れる)方向に電圧を上げていくと急激に流れ始めるダイオードの一般的な性質により、焼損しないよう、電源と直列に100~1kΩを入れます。

*3 いや、可能な点灯パターンは爆発的に増えます。「指数関数的に増大する」と表現します。

*4 「コピペのプロになる!」なんて、末恐ろしいことを言わないように…。

*5 かように、マイコンを使わず、要素的な電子部品(受動素子)だけで機能(受動回路)を設計する方が、高度な知識や経験を必要とする面もあります。
「江戸時代のからくり人形より、現代のロボットの方が簡単」とも言えます。

*6 パソコンやテレビと同じ“フルカラー”と称される色数ですが、あくまで机上の計算値であり、電圧に対するLED輝度の非線形領域の使用により、そこまでの再現性はありません。
 また、デジタル回路の塊であるマイコンには、真のアナログ信号は扱えないので、PWM制御(1年目1月)により擬似的にアナログ電圧(各ピン256階調)を生成しています。


2. 今月の課題

 次回授業日までに完了してください。
 ◎は必須、○は推奨、△は任意です。○△は能力に応じます。

 <スタートアップ/プライマリーコース>
  特にありません

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

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

 <アドバンス/プレ・アドバンスコース>
  ○ 上記授業内容を精読する

 <プロ2年目コース>
  ◎ 上記授業内容を精読する(該当テキストページを見ながら)
  ◎ タクトSW7個で“ドレミファソラシ”7音の電子ピアノ[ElectroPiano1改](第2回テキストp.19~20)を完成させる

   《ハイレベル挑戦》タクトSW4~7個で8音以上の電子ピアノを設計・実装する

    【ヒント】片手5本の指を使った2進法でいくつまで数えられたかな?
         必ずしも2進法に則る必要はない


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


 8/13(日)を休む為、東福間プロ・小倉北・南教室の8月第1回は一週前倒しになります。

 日付の()は臨時、!は原則外、?は予定の意です。

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

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

 ・5/6, 20, (28※),  6/3?, 17?,  7/1?, 15?

        ※全コース臨時10:30~


[東福間プロ]第2・4日原則
   - 12:45~ プロ2年目

 ・5/14, 28,  6/11, 25,  7/9, 23,  8/6!, 27


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

 ・5/13 第1回 3F会議室2
 ・5/27 第2回 3F会議室2
 ・6/10, 24,  7/8, 22


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

 ・5/ 7 第1回 5F小セミ
 ・5/21 第2回 4F工芸室&和室
 ・6/4, 18,  7/2?, 16?,  7/30!?, 8/20?

 7月はムーブフェスタの為、6/2まで確定できません。代理施設での開催となる可能性があります。


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

[とばた]第2・4土原則<ウェルとばた8F>
   - 第2・4土 13:00~ 全コース(プロを除く) 時間が30分早くなりました

 ・5/13, 27,  6/10, 24,  7/8(10:00), 22


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

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

 ・5/6, 20,  6/3, 17,  7/1, 15


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

 ・5/14, 28,  6/11, 25,  7/9, 23,  8/6!, 27


4. お知らせ

 1) 電池について
  ・単4乾電池4本(+ダミー1本)、または充電池5本(6V)を推奨します。
   プロ本体は単3×6本、コントローラは単4×3本です。
  ・電池不足が多く見受けられ、進行上の支障となっております。
   電池チェッカー・予備電池を用意し、自ら残量の管理を。
  ・教室サービス時、原則として電池代4本108円+診断料108円を頂きます。

 2) 宿題ポイント交換会【ベーシック・ミドルのみ/5月~アドバンス対応】
  5月第1回「授業前」に景品交換します。その後も3ヶ月毎に予定します。

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

  ◆ベーシック【20名平均 図面6.8】
   10点…川村[中間3], 橋本[小倉北2]
    9点…佐藤[東福間3], 谷川[八幡東2], 原[小倉北3]
    8点…田中[東福間4], 宮尾[八幡東3], 荒木[小倉北2], 大橋[小倉北3], 杉本[小倉北4]

  ◆ミドル【15名平均 図面2.7+設問2.5=5.1】
   10点…なし
    9点…なし
    8点…岩熊[中間5], 山本[中間4], 辻[小倉北5]
    7点…江平[小倉北6], 吉良[小倉北5]


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

2017年3月29日水曜日

2017年3月報

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


1. 3月授業内容


1.0 <プライマリーコース『のびーるハンド』>



 割愛します。







1.1 <ベーシックコース『ロボリン君』>



 第5回アイデアコンテスト全国大会(2015年)ミドルコース最優秀賞作品(当時小3)がベースの、ロボット教室カリキュラムとして初登場のボーリングロボットです。

 最優秀賞作品とは言え、いやー、参りました。何がって、書くことがないんです。
2時間悩(なや)んで、何も出てきません。(こんなことは初めて…)

モーター軸が直接、腕に見立てたLロッドを回すだけですので、ギアトレーンも動力リンクも、何もなし。



 デザイン性は秀逸(しゅういつ)ですので、雰囲気(ふんいき)は満点です。
これはもう、ボーリング大会で盛り上がるしかありません。
ボーリング場さながら、各自のレーンを横にずらっと並べ、下記のレギュレーションにて点数を競いました。

1) ピンは5本(ピニオンギアうす + シャフト3~4ポチ)
2) ピン位置はスコアボード前4ポチ分の範囲内(レイアウトは自由)
3) ボール形状は自由(ロボットパーツのみ使用)
4) 2投球×5フレーム(全ストライクで最高70点)


 30点超えで優勝する人、1~2点で終わる人など、さまざま。
何ゲームやっても、あまり変わりません。偶然や運ではないようです。

下記が勝敗を分けたようです。

・投球ロボットが左右に向きを変えられるか(2日目テキスト)
ボールは幅広い方がやはり有利
腕をぐるっと回した後にボールに当てるか(腕の加速を待たず、スイッチONですぐに当てる位置だと、ボールが遅くてピンまで届かない)

 ゲーム中は、いつにも増(ま)して、歓喜(かんき)の雄叫(おたけ)び、途中棄権(きけん)、悔(くや)し涙など、人間ドラマに溢(あふ)れました。
君たちは、まだまだ、遊び足りないんだね。


1.2 <ミドルコース『ステアリングカー』>


 機械の王道たる、自動車です。ロボット教室の生徒なら、絶対に造って欲しい一台です。

 しかし、これまで幾度となくロボット本体にタイヤ4輪を付けて転がしてきたのに、なぜ今さら“”なんでしょうか?
そのポイントは曲がる仕掛け(ステアリング)、つまり、ハンドル(英語ではステアリングホイール)を回すと左右の前輪が同期して向き(舵角)を変えるメカニズムです。

このメカニズムは3点から構成されています。


(1) ラック&ピニオン方式
 円形のピニオンギアを直線状のラックギアと噛み合わせ、ハンドル操作による回転運動を左右方向の直線運動に変換し、前輪の舵角(だかく)を変えます。

 このラックギア(洗濯板みたいなやつ;通じるかな…)は、今までロボット顔面の付け髭(ひげ)くらいにしか利用する機会のなかった人にとっては、初めて日の目を見ました!
これが本来の使い方ですよ!

 この仕組みは、プラモデルで自動車を組み立てたことのある人なら知っていたでしょうが(*1)、実車と同じ(*2)です。


(2) 平行リンク
 左右のタイヤの舵角が揃(そろ)う仕組みは、平行リンクと呼ばれる機構です。
左右に動くラックギアが平行リンクの外形を長方形にしたり、それを潰(つぶ)して平行四辺形にしたりしますが、いずれにせよ、4辺は平行のままですね。


(3) ユニバーサル・ジョイント(自在継ぎ手)
 ピニオンギアを回転させるシャフト(水平方向)と、ハンドルを回転させるシャフト(後方斜め上方向)は、同一直線上になく、途中で折れ曲がって接続しています。
ハンドルを上下左右に揺らしても問題なく操舵(そうだ)できます(*3)。

 チェーンや多数のギアを介さず、駆動力を数本のシャフト(棒)で遠方の異なる方向に伝達できる点で、これは大発明なのです。
なぜそのようなことができるのか、言葉で説明するよりじっくり観察しましょう(*4)。






 さて、学ぶべき点の多いリアルなモデルカーでしたが、授業最後の競技は“運転技能”。
マリオカートで鍛えてるって言ったって、車庫入れしたこと、ないでしょ?

教習所さながら、狭い角を曲がり、障害物を避け、脱輪にも注意しながら、狭いスペースに縦列(じゅうれつ)駐車するまでの時間を競いました。

操縦性を高め、速く走らせるポイントは以下の通り。

・あまりかがまずに済むよう、ステアリングシャフトをびよ~んと延長
・電池ボックス/スライドスイッチを延長ケーブルでつないでリモコン化(2日目テキスト)
アクセルペダル代わりにタッチセンサー(黒)を直列に挿入し、前進⇔後退の切り替え時のみスライドスイッチを操作
・全長(前後輪の軸間距離)を縮め、小回りに(*5)
・直進時のスピードアップに、減速比の緩和(*6)

 やはり、バックでの運転には慣れていないようで、“切り返し”時にハンドルを逆に回して、どつぼにはまる例も…。
タイムには数倍の開きがありましたが、崖から落ちずに駐車できただけ命拾いしました!


*1 若者の車離れが叫ばれる昨今、自動車のプラモデル製作経験は少ないようですね…。

*2 どの自動車カタログにも逐一「ステアリング形式: ラック&ピニオン式」のように書かれています。もう、「その他に一体何があるんだ!?」っていうくらいに。
 学んだ仕組みに実感が沸きますので、是非、Webカタログを見てみましょう。
できればお使いの車を検索して。スペック中の諸元表にあります。
 <参考> http://www.suzuki.co.jp/car/alto/detail/spec.html

*3 実車でも“チルト・ステアリング”といって、運転者の背丈に合わせてハンドルの上下位置を調整できるようになっているものがあります。
 また、サスペンションにより上下に揺れる車輪へエンジン動力を伝えるドライブシャフトにも使われています。

*4 さらに興味が湧いたら、インターネットで調べてみましょう。問題点もあります。
 <参考> https://ja.wikipedia.org/wiki/%E8%87%AA%E5%9C%A8%E7%B6%99%E6%89%8B

*5 自動車用語で、「ホイールベースが短いので、最小回転半径が小さい」と言います。
 今月の中間教室で初見した、この真っ当なアイデアの体現と効果に驚かされました。

*6 初期では1/5(ピニオンギア⇒ギアL)ですが、1/3(ピニオンギア⇒ギアM)等に変えて速くできます。


1.3 <アドバンスコース『ステップチャレンジャー』>


 1ヶ月目の授業です。高い段差を乗り越えられる究極の4輪車を目指します。



 1日目は、台車となる4輪車を製作し、前輪駆動(現在の自動車の主流)と4輪駆動(オフロード車、雪国で主流)とで、乗り越えられる段差を比較しました。
当然、前輪が浮いても後輪で後押しできる4輪駆動車の方が能力が高かったですが、さほど大きな違いが見られなかったのは何故でしょうか。


スポーツカーばりに車体底面の地上高(ロードクリアランス)が低すぎて、段差の角に当たり易いからです。
雪道はまあまあイケますが、凸凹道はムリですね。ジープの車高が高いのはこのためです。
(そういえば佐藤は昔、軍用ジープを乗り回す怪しい大学生でした…)

 2日目は、台車の“上”にエレベーターを製作しました。
アドバンスコースで増えたラックギア6個を並べた2本のギザギザレールがいい感じですね。
それにしても、このエレベーターは何を持ち上げるのでしょうか?
台車は高い段差を乗り越えられるようになるのでしょうか?
2ヶ月目のお楽しみです。


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


 冬タームの最終月を「ウルトラソニックロボット」で仕上げます。

 自律型ロボットといえば、障害物や段差を感知して、衝突や落下を回避しながら進むものを先ず想起するのではないでしょうか。
お掃除ロボット『ル○バ』などもそうですね。

感知に最も良く使われるのが、この超音波センサーです(*1)。
イルカやコウモリ等の生物から魚群探知機まで、反射音(方向・時間・強弱・周波数)の状態や変化を探ることで、視覚の代わりに(時にはそれ以上に)なるのです。

反響定位(エコーロケーション)と呼ばれますが、本ロボットや一般の障害物センサーでは、そこまでの解析能力はありません。
特定方向の(一定以上の大きさの障害物から)反射音が返ってくる時間(=距離)だけを計測しています(*2)。


 1日目では、2つのセンサーを別々にモニターすることでの可能性を垣間(かいま)見ました。
センサー1つでも、手をかざせば近寄り、近づけすぎると後ずさるなどプログラムできますが、両目のように左右に並べれば、左右の(状況の違いが分かる)感覚を生み出せます。

左右での感知距離(dist1, dist2)の差に応じて旋回させれば、かざした手の方向にフラフラと追跡するまでになりました[step3]。
しかし、2つの距離情報を扱うのは、プログラムの条件文(判定式や分岐)が複雑になります。




 2日目では、センサー1つを様々な位置に取り付け、プログラムを適応させることで、
・ 障害物を避けるロボット[avoider]
・ 机から落ちないロボット[nofall]
・ 机の端を沿うロボット [tablerunner]
壁ぎわを沿うロボット [walltracer]
が実現できることを経験しました。

あの『ル○バ』に勝るとも劣らず、生き物らしく見えたでしょ?

 センサーで拾うたった1つの値と、それを条件に動作を分ける論理(プログラム)とで、これだけの(これ以上の)ことができます。
どれも、プログラミングのレベルに大差ありません。

ちょっと難しく見える“おまじない”や数値処理上の工夫(*3)がありますが、核心の論理“if(条件) {動作1;} else {動作2;}”は、非常に単純明快で必然的なものです。

もっと場合分け(条件分岐)したければ、“if(条件1) {動作1;} else if(条件2) {動作2;} else if(条件3) {動作3;} else {動作4;}”等ですね。

怖(おじ)けずに、自分のロボットにを吹き込んでみてください。
君こそがフランケンシュタイン(怪物の創生者)であり、鉄腕アトムのお茶の水博士なのですから。

プロ1年目修了おめでとうございます。


*1 GHz級クロックの電子回路など、技術の発達した現在では、光(電磁波)を用いたレーザー距離計やGPSセンサーも安価に手に入るようになりましたが、生物の感覚器官ではとても追いつけません。視覚が光を利用するのとは別の話ですよ。

*2 音の伝わる速さとして、空気中で340m/秒、水中で1500m/秒を覚えておきましょう。
 すなわち、地上と水中で計算式が変わりますが、時間から距離が求まります。

*3 dist/=10; または dist=dist/10; で dist値 1~99[cm] を 0~9(整数) に粗くし、大雑把に扱えるようにしています。
 例えば、if(dist==1) と書くだけで 10~19[cm] の範囲を指定することができるようになります。


1.5 <プロ2年目コース『倒立振子ロボット(3)』>


 今タームの最終月にして、倒立振子ロボットは終(つい)に日の目を見るのか?


 1日目は、この倒立振子ロボットを製作しました。
前後方向にだけ倒れる、左右2輪のリヤカー(大八車)タイプです。

 ここで、振り子の特性について、整理します。
振り子と言えば、今は飾りにしか使われなくなった振り子時計を想起しますね。
振り子は、支点から質点(≒おもりの重心)までの棒の長さによって揺れる周期が決まり、意外に、おもりの重さとは無関係です。
この、一定のリズムで振れる性質を“等時性”と呼び、昔の時計の進み具合に利用していました(*1)。


これを逆さに立てた場合(倒立)も同様に、棒が長いほど、倒れるのに時間が掛かるようになります。
ペンは一瞬で倒れますが、箒(ほうき)は1~2秒、テレビで見る倒木や煙突の倒壊には数秒以上を要しますね。
だから、手のひらに箒を立てることはできても、鉛筆が無理なのは、立て直す時間が足りないからです(人間には…)。

このロボットの高さ20cm程度でも、人間には難しい仕業でしょうから、立てたら凄いですね。
クララが立った時に匹敵する感動が味わえそうです。

 2日目です。


 不安定な足(タイヤ)で立てる原理は、箒と同じです。傾いた方向(前後)に動けば良いのです。
そのためには、今の状態[現在値を知り、あるべき状態[目標値との誤差を計算し、その誤差に適切な比例係数[ゲインを掛けて、制御量[出力値を発揮することを高速に繰り返すのです。

 ゲイン × 誤差(現在値[入力] - 目標値) = 制御量[出力]

前月で学んだフィードバック制御ですね。常に北を向くように旋回するオムニホイールロボットがそうでした。
北を0°として、方角(角度)のズレ(±)に比例した強さでモーターを正逆回転させれば、強弱の効いた滑らかなフィードバック制御が実現しました。

これを、P(Proportional:比例)制御と呼びます。これが基本です。

しかし、わずかな方角のズレでも素早く戻すようモーターを強力に駆動すると、ブルブルと振動してしまい、いつまでも目標値に収束(しゅうそく)しなくなりました。
1年目で嫌と言うほど経験してきたように、摩擦力が大きなタイヤの回転は、弱いパワーでは停止し易いですので、比例ゲイン Kp を抑えるだけで収束しましたが、振り子の運動は摩擦力が低いのが特徴です。

加えて、垂直付近では、重力の水平成分がゼロになり、速度(勢い)を抑える外力が消えるため、慣性の法則により、勢い余って反対側に倒れ易くなります。
つまり、P制御だけでは、いつまでもグラグラすることになります(*2)。

 そこで、D(Differential:微分)制御を加えます。

これで、速度を抑える作用が働きます(*3)。
現在の(角)速度を割り出し、目標(角)速度ゼロとの誤差に微分ゲイン Kd を掛けて、制御量に加えます。
D制御は、現在値の変化に機敏に応答する特性があるため、意地悪に手で突ついたり、段差等で不意な外力が加わったりして倒れそうな場合でも、素早く立て直す作用に貢献します。

 3つ目に、I(Integral:積分)制御も加えます。

テキストで「静止に近い状態で作用する微調整」とはぐらかしていますが、高校数学の積分の概念が難しい故です。
簡単に言えば、微妙なズレを続いている時間分積算し、これに積分ゲイン Ki を掛けて、それを正すように作用させます。
短時間的に算出するP制御D制御による制御量が、目標値近傍においてゼロになり、長時間的なズレの補正に作用し辛いからです。

これら3つの要素によるフィードバック方式を『PID制御』と呼びます。


 最後に、「姿勢ゼロ点設定の調整」なんかも持ち出されて、混乱に拍車を掛けます。

これは、ロボットの重心の違いや、姿勢センサーの固定具合によってP制御やI制御の入力となる倒立角度の検出値に生じる誤差など、個体差を補正するものです。
これがなければ、倒れないには倒れないが、下手な一輪車がバランスを保とうとして、ひたすら前に進むような状態になったりします。


 いやー、絶妙な倒立振子ならではの制御ですね。
これでも、まだ、電源電圧によって各種ゲインを調整しなければ、プルプル震えながら立つのがやっとです。
「倒立ロボが、倒立ロボが、立ったー!」と叫びたければ好適な様子ですが。

 うまく立てずに暴走するのは、どうやら、モーター駆動の電磁ノイズが姿勢検出値を乱しているのが原因と思われます。コンデンサ付きモーターの使用が必須のようです。

「それで、結局、どのプログラムを走らせれば倒立するの?」
というのが多勢の興味でしたが、曲芸はそう簡単には実現できないのですよ。
エンジニアリングの一端を垣間見た気がします。


*1 ロボット教室ミドルコース『チクタクロック』で学習しました。
 電池で動くインテリア時計の振り子は、ただのフェイクです。

*2 プログラム中のパラメータを色々いじってみると面白いと思いますよ。

*3 高校数学/物理ですが、位置(角度)を時間で微分したものが速度(角速度)になります。


2. 今月の課題

 次回授業日までに完了してください。
 ◎は必須、○は推奨、△は任意です。○△は能力に応じます。

 <プライマリーコース>
  特にありません

 <ベーシックコース>
  ○ オリジナル課題プリント(3面図のみ/設問なし)

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

 <アドバンスコース>
  ○ 上記授業内容を精読する

 <プロ1年目コース>
  ◎ 上記授業内容を精読する(該当テキストページを見ながら)
  ◎ 左右センサーの感知距離の差が小さければ、その(小さい方の)値に応じて前後に動くか停止し[step1_answer]、
   差が大きければ、近い方の障害物(手)を向くように旋回する[step2_answer]、
   計5つの動作を切り替えるプログラムに合成する[解答例step3は難読なので頼らないこと]
  ◎ 単一距離センサーロボット[avoider/nofall/tablerunner/walltracer]のいずれかを改良し、ダブル距離センサーロボットとして、より洗練された動きを設計・実装する

   例えば、
   ・壁と壁の間を往復するプロ版“う王さ王”[avoider改]
   ・左/後退/右から安全な方向を選ぶ    [nofall改]
   ・左/直進/右を選びつつ崖っぷちを沿う  [tablerunner改]
   ・左/直進/右を選びつつ壁伝いに迷路を進む[walltracer改]

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


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


 日付の()は臨時、!は原則外、?は予定の意です。

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

 ・4/1, 15,  5/6?, 20?,  6/3?, 17?


[東福間プロ]第2・4日原則
   - 12:45~ プロ2年目

 ・4/9, 23,  5/14, 28,  6/11, 25


[中間]第2・4土原則
   - 13:30~ ベーシック/プライマリ
   - 15:15~ ミドル(/アドバンス振替)

 なかまハーモニーホール
 ・4/ 8 第1回 3F会議室2
 ・4/22 第2回 3F会議室3
 ・5/13, 27,  6/10, 24


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

 ムーブ
 ・4/ 2 第1回 5F小セミ
 ・4/16 第2回 5F小セミ
 ・5/7, 21,  6/4, 18


―――――――――― 振替提携教室 ――――――――――
 振替希望は1週間前までにお願いします(許可制)
 振替手数料540円/回をご負担下さい(お引落し)
 所定コースのみお受けします

[八幡東]第1・3土原則
   - 13:30~ ベーシック
   - 15:30~ ミドル
   - 17:30~ アドバンス

 レインボープラザ4F by 中野司先生
 ・4/1, 15,  5/6, 20,  6/3, 17


[とばた]第2・4土原則
   - 第2・4土 13:30~ 全コース(プロを除く)

 ウェルとばた8F by 菅本進先生
 ・4/8, 22,  5/13, 27,  6/10, 24


[小倉南]第2・4日原則【4月正式開校】
   - 10:30~ ベーシック/プライマリ
   - 13:00~ ミドル  /アドバンス

 総合農事センター2F by 中野司先生
 ・4/9, 23,  5/14, 28,  6/11, 25


4. お知らせ

 1) メール配信元ドメイン変更・ブログ読者登録リセット
  4月~メール発信元ドメインを変更(ezweb.ne.jp→gmail.com)予定です。
  Gmailが拒否する特殊なアドレスから変更をお願いすることがあります。
  また、ブログ読者登録も毎年4月にリセット・再招待させて頂く予定です。

 2) 電池について
  ・単4乾電池4本(+ダミー1本)、または充電池5本(6V)を推奨します。
  ・電池不足が多く見受けられ、進行上の支障となっております。
   電池チェッカー・予備電池を用意し、自ら残量の管理を。
  ・教室サービス時、原則として電池代4本108円+診断料108円を頂きます。

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

  ◆ベーシック【17名平均 図面2.6+設問2.9=5.6】
   10点…なし
    9点…荒木[小倉北2]
    8点…橋本[小倉北2], 大橋[小倉北3], 内田[小倉北3], 谷川[八幡東2]

  ◆ミドル【20名平均 図面2.9+設問1.8=4.6】
   10点…なし
    9点…佐藤[小倉北7], 吉良[小倉北5]
    8点…下田[八幡東6]


東福間・中間・小倉北教室 佐藤