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]


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

2017年2月28日火曜日

2017年2月報

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


1. 2月授業内容


1.0 <スタートアップ>



 割愛します。


(タッチセンサー黒とグレーの機能を調べた後、自ら直列につないで現象を確かめる年長さん)


1.1 <ベーシックコース『クルクルクリエイター』>



 第4回アイデアコンテスト全国大会(2014年)ベーシックコース最優秀賞作品「御家紋(ごかもん)くん」(当時小2)がベースの、ロボット教室カリキュラムとして初登場の自動お絵かきマシンです。

このアイデアは凄(すご)いですね。そして難(むずか)しいですね。
作るのも、動かすのも、アドバンスコース、いや、それ以上かもしれません(*1)。
詳(くわ)しい原理は難しすぎるので、「いっそベーシックコースで、深く考えずに、いろいろ試(ため)して遊びましょう」といった感じです。


 単純なギアの回転運動(*2)から、コースター紙に随分(ずいぶん)と複雑な模様(もよう)を描(か)けるもんだな、と思いましたか?
そうです、それは大事な発見です(*3)。

しかも、下記を変えることで、また模様が変わります。
A) 回転するギアLとギアM3枚のペグ穴のうち、どこに2個のペグSを挿(さ)すか
B) ペンホルダーのロッド15アナとロッド9アナのどこに2個のペグSを挿(さ)すか

A)では、主に模様が変わります。B)では、主に大きさが変わります。


回転台を回らなくする改造(テキストp.24)で、ペン先の軌跡(きせき)が見えてきますが、これだけでは面白くないですね。
ペン先を回すのとは違うタイミングで台紙を回転させることで、複雑な模様が表れているのです。



 模様が複雑すぎて美しくないと思う場合は、ペン先の動きをもっと単純化しましょう。
ペン先の動きが複雑なのは、ギアLとギアMの回転数が異なり、2個のペグSが異なるタイミングで回るからです。
ギアMへ回転を伝える中間のギアLを外して、ギアMを回転しないよう固定すると、よりシンプルな幾何学(きかがく)模様になります。



ペン先が一度描いた軌跡に戻ったら(*4)、ペンの色と、A)B) を変えて、また描きます(*5)。
この方が綺麗(きれい)ですね。オリジナルのコースターを描いて、家族や友達にプレゼントしましょう。油性ペンがいいよ。


*1 どんな模様になるかを予想するのは、高校生でも、大学生でも、大人でも(先生でも)超難しいです。

*2 本当に大事なのは、ギア上に留(と)めたペグの周回運動をリンク棒(ロッド)で取り出していることです。

*3 単純な動作でも、たくさん組み合わせると、複雑な処理や現象が実現します。
 神経細胞が集まって脳を形作るように、電卓やコンピュータも、「~の反対!(NOT)」と「両方ともOK?(AND)」のたった2種類の信号処理部品を組み合わせて作ることができます。
 だから、この世の地形や現象、人間の行動さえも、単純な法則の組合せで成り立っているとする研究があり、今も続いています。

*4 回転数の比は、回転台:ギアL:ギアM = 1/5:1/3:5/9 = 9:15:25 なので、コースター紙が9回転して元の軌跡に戻ります。

*5 一度ペンを外して、回転台を空回しさせてからまた描くだけでも、模様が重なっていい感じになります。


1.2 <ミドルコース『クルクルメリーゴーランド』>



 2013年10月ベーシックコース『ロボ・ザ・メリーゴーランド』の復刻版です。

 遊園地アトラクションの代表格、メリーゴーランド、いいですね。
英語的に正しくは「メリー・ゴー・ラウンド」、日本語では「回転木馬」とも言います。
ヨーロッパでは、蒸気機関の時代から親しまれてきました。
華やかに回る光景に大人も癒される、何ともノスタルジックな遊具です。

 機械の内部は見たことがなくても、経験からステージの回転と馬の上下運動がリンクしていることは分かるでしょう。
およそ唯一の回転動力源を利用した、アナログな機械だと予測がつきます。

ロボットを製作する上で、「実物に沿った構造か?」は大事ではなく、
「モーター動力を種々の回転運動や上下運動に分配するにはどういう方法があるか?」
を考えるきっかけにできれば良いと思います。


 先ず、地面に寝かせたタイヤLの中心にモーター軸シャフトを挿して、中央の回転塔を直立させます。
スイッチを入れると、タイヤLを固定脚にして、回転塔(モーター本体)がゆっくり回りますので、これをステージ中央の穴に挿すことで、ステージも一体化して回ります(*1)。

すると、そのステージの回転を支える円周上配置のタイヤS4輪が回り、各タイヤSの回転がステージ上の小物を動かします(*2)。

タイヤの回転が動力源に再利用されているわけで、シャフトやギヤの連結だけが動力伝達手段ではないことを伝えています。


 また、ステージ上の小物は、タイヤSの回転から、次のようなバリエーション豊かな運動を実現しています。

・椅子  … マイタギア(傘歯車)で軸方向を水平→垂直変換して回転
・馬1, 鳥 … ロッド3アナによるカム作用(*3)で上下
・馬2   … その両方による間欠回転


 これらの運動は全て、タイヤSの回転を通して、間接的にモーターの負荷(ふか)となりますが、回転塔内にコンパクトに収めた3段3:1減速ギヤボックス(1/3×1/3×1/3=1/27)が十分な回転トルクを出しますので、力の問題はありません。



小物やステージがスムーズに動かない(カクカク動く)場合は、下記の摩擦力に注意します。

・ステージが回らない ⇒ 中央のタイヤLがしっかり接地し(摩擦:)、ステージ下のタイヤSが軽く回る(摩擦:)よう調整

・小物が動かない ⇒ 直下のタイヤSを手で回してみて、小物の支柱がスムーズに上下/回転する(摩擦:)よう調整


 ベーシックからミドルに昇格したのも頷(うなず)けるほど、突き詰めれば考察ポイントの多いテーマでした。
ちょっと、メリーゴーランドに乗りたくなったでしょ?(先生も…)


*1 だから、ステージ中央の穴に挿してタイヤLが浮くようならダメですね。

*2 実物では、回転ステージ下の狭い空間ではなく、天井のクランクから馬の支柱を吊り下げていることが多いようです。

*3 回転部品(ロッド3アナ)の外形をなぞるジョイント部(シャフトと先端のマイタギア)が生む、周期的な往復運動を利用したリンク作用


1.3 <アドバンスコース『バグモジョラ』>



 2ヶ月目の授業です。3日目は、戦車型リモコン(手動操縦)に代わり、光センサー(自動操縦)を実装しました。
これで黒いラインを自動的に辿ることができるようになりました。
このようなロボットを“自律型ロボット”といいます。
「自分で律する(コントロールする)」という意味です。
「自立(自分の稼ぎで生計を立てる)」ではありませんよ。

 一口に黒いラインを辿るといっても、どのようなメカニズムでしょうか

光センサーの構造と機能をおさらいします。
裏面にある2つの“目”は、一方が発光ダイオード(赤外線)で、他方がフォトダイオード(受光部)です。
家電リモコンの送信部受信部がセットになったようなもので、赤外線が白地で反射するか黒地で吸収されるかに応じて、■印と●印の2つの出力ジャック(左右のモーターを接続)のいずれか一方に入力電流を通すよう切り替えます。


だから出力の“オフ”期間はなく、“白でオン”になるモーターと“黒でオン”になるモーターが絶えず交互に動作する状況を利用してコントロールしているはずです。
コントロールとは、状況を判断しながら複数の状態を切り替え続けることだからです。

 ということは、黒いラインのどこを辿るのか
(白と黒の境界)ですね。2つの出力ジャックを差し替えることで、左端が好きなロボットと、右端が好きなロボットに性格が分かれますよ。



 4日目は、最後の競技に向けたロボットの最終調整です。
黒いライン上で出くわした2匹のバグモジョラ(♂)が、そこのけそこのけ、パワーバトルを繰り広げます。

進路を脱線した方が負け。勝つための工夫と効果について考察します。

1) 重くする
  しっかり歩けるよう重心バランスに注意すれば、摩擦力・慣性力を上げるので吉でしょう。
 慣性(かんせい)力は説明していませんが、バイクが車に弾き飛ばされるのは、この力のためです。

2) 足裏にゴムを付ける
  摩擦力を上げるので吉です。いくらパワーがあっても、床が滑ってはダメですね。

3) 長い角を付ける
  「相手に早くリーチできる」という理由から、過去に見受けられましたが、
 「相手から見ても自分に早くリーチする」こと(相対性)になります。
 これだけなら“おあいこ”ですが、寧ろ自分にとって“”です。
 てこの原理により、相手の力が軽く角先にかかるだけで、自分の進路が容易に変えられてしまうからです(*1)。


 今月は長いですね…。まだ続けます。なぜ4本脚を6本脚に増やしたか

a) ムシだから(ごもっとも!)

b) 左3脚と右3脚とは独立駆動(モーター2個、つまり自由度2)であり、
 特に旋回中は片側の脚だけで推進力を生む必要があるところ、片側2脚では、
 前に戻る脚を浮かせて後方へ蹴る足の推進力を妨げないように姿勢を安定させることが難しいから

c) 直進時においても、下記2点に起因して、左右の脚の角度(位相)が固定的な相関関係をもたない(いつも同位相とか逆位相とは言えない)ため、やはり片側の脚ごとに推進力の確保が必要となるから(*2)
 ・手動操縦または自動操縦による左右モーターの非同期的オン/オフ
 ・左右モーターの個体差負荷変動による回転数のズレ

 ちょっと難しいですが、「なぜ?」という疑問を突き詰めると、これだけの言葉が出てきます。
先生もかなり頭をひねって書きましたので、「本当かな?」「どういうことかな?」と疑問をもちながら読んで、ロボットを改良したり質問をまとめたりしてください。


*1 このように、観念的アイデアが物性的効果に結び付かないことはよくありますので、常に深く考えてみましょう。
 そのためには、経験と失敗から学ぶ(ヒントを探る)姿勢が大切です。

*2 4脚のまま左右が同位相だと、前後方向に屈伸運動をするだけ。


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


 センサー類を駆使する、冬タームの2ヶ月目です。

 1日目のテーマは、「ベースロボットの組み立て」です。
何のことはない、左右両輪(2モーター)を独立駆動して、前進・後退・左右旋回を自在にこなす土台のロボットを製作します(*1)。

戦車型ラジコンプログラム[Tank]を転送して操縦したり、時間制御プログラムで決まったコース(円・四角・8の字など)を自動的に走らせることはできますが、まだセンサー類が無いので、外界からの入力情報を基に考える”ことはできません

 2日目のテーマが、「カラーセンサーロボット」です。


 その1つ目は、「ライントレーサー」です。
カラーセンサーを下向きに取り付け、地面の明暗(白黒)情報だけを処理し、黒いライン(の縁)をたどるロボット[Tracer]に仕立てます。
「白なら右へ、黒なら左へ」旋回するように片輪を交互に駆動する制御方式は、アドバンスコースのテクニカルコンテストと同じですね。

マイコンが認識する明度(明るさの数値)は、環境光反射率はもちろん、センサーの個体差電源電圧(*2)にも左右されるため、各々のロボットで閾(しきい)値 colorIsBlack(1000) を変更する必要がありました(*3)。


 2つ目は、「カラートレーサー」です。
カラーセンサーをヘッドライトのように前向きに取り付け、前方景色の色相(色味)情報だけ(*4)を処理し、特定の色に向かうロボット[ColorTracer]に仕立てます。

サンプルプログラム中、色相 h を使って“if(h>180 && h<270) {前進せよ;} else {停止せよ;}”となっています。
これは、数学的には 180°<h<270°のことで、色相環(先月第2回テキストp.12)で確かめると“”ですね。
”なら“if(h>60 && h<150) …”くらいでしょうか。
”は難しいです。2つの変域 0°≦h<30°, 300°<h<360°がありますので、“もし(hが0以上 かつ hが30未満)または(hが300超 かつ hが360未満)ならば”のように論理的に記述しなければなりません。
if( (h>0 && h<30) || (h>300 && h<360) ) …”となります(*5)。

走り方(タイミング、スピード、軌跡など)に変化をもたせて、好きな色を見ると近づいて行く愛らしいロボット(闘牛?)に仕上げてみましょう。
鳴く”と面白そうですね。

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


*1 これだけで普通の自動車(1エンジン)を遥かに凌駕する自由度を獲得できるのですから、将来は電気自動車に替わっていくわけです。

*2 パソコンからのUSB給電の場合と、電池駆動とで数値が変わるという…盲点があります。

*3 アドバンスコースの光センサーにも、+ドライバーで回せる感度調整つまみがあります。
 プロでは、よりスマートに、調整用プログラム[ColorSensor2]実行中、Arduino“シリアルモニタ”を起動し、USBケーブル経由で白地と黒ライン上の数値をモニタリングし、その中間値を閾値として設定することもできます。

*4 1ドットカメラなので、人間なら瞼(まぶた)を瞑(つむ)ったまま外光の色を感じるようなものです。

*5 論理積(AND)演算子 && は、論理和(OR)演算子 || より優先順位が高い(先に演算される)ので、“if(h>0&&h<30||h>300&&h<360)…”と続けて書いてもOKですし、h=0~359の値しか取らないので、実は“if(h<30 || h>300)…”だけでもOKです。


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



 倒立振子? 2ヶ月目ですが、まだまだ、もったいぶりますよ。
自転車のムラタセイサク君や、一輪車のムラタセイコちゃんが誇らしげにCMに登場してからまだ10年そこそこ、ホットな技術なのです。順を追いましょう。

 1ヶ月目で、チップに集積された3種の姿勢センサーのうち、加速度センサー角速度センサーの機能を学びました。
今月の1日目は、残りの磁気センサーで遊びました。

 磁気センサーの面白いところは、ロボットに目や耳(カラーセンサーや超音波センサー)が無くても地磁気を検出して方角が分かることです。
地球上には重力もありますので、加速度センサーで“鉛直下向き”は分かりますが、水平方向は区別が付きません。
角速度センサーを使った積分プログラムにより、どれだけ回転したかが分かりましたが、累積誤差がつきもので次第にずれが拡大していくことと、そもそも初期状態(例えば北向き)は与えてやらねば方角が分からない欠点がありました。

その点、地磁気ならば、いつ、どこで、どんな姿勢で電源を入れても、立ちどころに北が分かります。
先の2センサー同様、3軸(XYZ)検知できますので、姿勢(傾き)までも分かるのです(*1)。
一見万能で、他のセンサーは不要のように聞こえますが、精度がイマイチ低いのです。
方位磁石でご存知の通り、磁場の揺らぎや場所により、微妙に異なる方角を指します(*2)。

コンパス程度の用途なら構いませんが、曲芸を披露するには不十分でしょう。
瞬間的な姿勢変化への追従は、加速度・角速度センサーの方が格段に優れていますので、こちらをメインに用いながら、地磁気センサーやGPSで長時間的な補正を掛けていくナビゲーションシステムのような利用法が適しています。

 さて、ここまでの出力手段は、LEDマトリクスや7セグへの“表示”だけでしたが、「感じて、考えて、動く」のがロボットです。運動能力を与えましょう。

少ないハードでも、高い自由度で動き回れるロボットの形態と言えば、3輪のオムニホイールロボットですね。
2日目にこれを組み立て、マイコンボード、I/Fシールドに姿勢検出シールドを搭載します。

動くと、やはり面白いことになります。
どういう向きに置き直してもクルッと回って北の方角を向きたがる奴[MagCtrlOmni/2]とか、磁石に付いて行こうとする奴[MagCtrlOmni3]とか、どうしても我々人間の目には生命感が映ります。

 ここで、「向きを検知して表示するのもモーターを回すのも同じようにできるけど、やっぱり動いた方が面白いよね!」と実感することだけが目的ではありません。
出力先がディスプレイなら、処理結果を送るだけで、ちゃんと表示されたかどうかなど調べる必要はありませんが、
物体の運動には様々な外乱要因が加わりますので、「あるべき状態(目標値)」と「今の状態(現在値)」にズレが生じることを前提にしなければ、高精度な制御はできません。

このズレを最小化するよう頑張り続ける方式を“フィードバック制御”と呼びます。
片や、決められた手順や時間・回数分だけ逐次実行して、結果を省みない無責任な処理方式を“シーケンス制御”と呼びます。
タッチセンサーやボタンの押下状態(1ビット=2値)を調べて条件分岐するくらいでは、とてもフィードバック制御と言えません。

身の回りの製品では、
シーケンス制御 … 目覚まし時計、炊飯器、洗濯機(一部の高機能品を除く)
フィードバック制御 … エアコン、給湯器、CD/DVDプレーヤ、車の自動ブレーキ(*3)

など、やはり賢そうな機械ほどフィードバック制御が多用されています。

 北を向くだけのプログラム[MagCtrlOmni*]では、北を0°として扱いますので、方角のズレ(±)の角度分だけモーターを正逆回転させれば、強弱の効いた滑らかなフィードバック制御が(たまたま)実現しましたが、
これを、わずかな方角のズレでも素早く戻すようモーターを強力に駆動すると、振り子のように振動してしまい、いつまでも目標値に収束(しゅうそく)しなくなります(*4)。

つまり、「理想と現実のズレを解消しようとがむしゃらに努力すれば必ず報われるほど、甘くはない」という真理を突き付けられる訳です。
悲しいですね。もう一段、スマートさが必要なんです。

制御工学(理論)において、目標値とのズレを「誤差」、出力値の大きさを決めるために誤差に掛ける係数を「フィードバックゲイン」(または単にゲイン利得)と呼びます。
ゲインを増やすほど素早くなりますが、必要以上に大きくして、ギクシャクした動きや振動にならないよう注意します。

 地磁気センサー(X,Y軸)に代わり、角速度センサー(Z軸)を使って、下記のプログラムが紹介されています。
・[AngCtrlOmni] … 元の向きに戻ろうとする
・[AngCtrlOmniTrun] … 360°回って、その向きを維持しようとする
・[AngCtrlOmniTrun10rpm] … 10rpm(毎分10回転)で回ろうとする

プログラム中、現在の角(速)度 ang目標値 Ref誤差 Errゲイン Kp が見つかります。

大事なのは、「確定的な結果の保証よりも、現在の状態を客観的に知り、目標に近づこうと働き続ける」点です。
心に響きましたか?(佐藤にも突き刺さりました…)

 次月こそ、いよいよ倒立振子ロボットの製作です。


*1 正確には、原理上、磁力線方向(南北に向かう水平な直線)の軸回りの傾きは感知できません。

*2 近くに磁石や、磁力を発生するスピーカーや電線があると、方位磁針が迷いますね。
 これを逆手にとってプログラム処理すれば、電子コンパスプログラム[MagCompassMatrix]が磁石の方を追いかけたり、磁石を近づける距離で音程が変わるテルミンのような楽器[MagneticTone]も簡単に実現できます。

*3 車を持ち出したら、エンジン燃焼、カーエアコン、定速走行、スリップ防止など、枚挙に暇(いとま)がありませんが。

*4 手のひらに箒(ほうき)を逆さに立てる時など、皆さんも無意識に同じことをやっていますよ。ずっと全速力で手を動かすマヌケはいませんよね。


2. 今月の課題

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

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

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

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

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

 <プロ1年目コース>
  ◎ 上記授業内容を精読する(該当テキストページを見ながら)
  ◎ カラートレーサープログラム[ColorTracer]を改変し、
   赤(好き!)へ突進、青(怖い!)からはゆっくり後ずさり、
   それ以外では停止するロボットに仕立てる

   《ハイレベル挑戦》さらに、緑(臭い!)で旋回する動作を足せるかな?

   【注意】色は色相 h で表し、赤:h<15 or h>315、青:195<h<255、緑:75<h<135 等で与えます。
    動作を足すほど不意に動き回って危険ですので、特に後退時はスピードを抑え、
    忙(せわ)しすぎる場合は反応する色相範囲を狭めて(停止範囲を広げて)下さい。

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


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


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

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

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


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

 ・3/12, 26,  4/9, 23,  5/14, 28


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

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

 ※大小ホールイベント開催で駐車場が不足します。送迎の計画をお願いします。


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

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


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

[八幡東]第1・3土原則
   - 13:30~ ベーシック/ミドル(~3月)

   - 13:30~ ベーシック(4月~)
   - 15:30~ ミドル  (4月~)
   - 17:30~ アドバンス(4月~)

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


[とばた]第2・4土原則/第3土臨時
   - 第2・4土 13:30~ 全コース
   -(第3  土 10:00~ 全コースは廃止)

 ウェルとばた8F by 菅本進先生
 ・3/11, 25,  4/8, 22,  5/13, 27


[小倉南]第2・4日原則【4月正式開校】
   - 13:00~ ベーシック/ミドル振替(3月予定変更)

   - 10:30~ ベーシック/プライマリ(4月~)
   - 13:00~ ミドル  /アドバンス(4月~)

 総合農事センター2F B研修室 by 中野司先生
 ・3/12, 26,  4/9, 23,  5/14, 28


4. お知らせ

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

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

 3) 小倉南教室(総合農事センター/中野司先生)4月正式開校
  ・転属はミドルコース以上とさせて頂きます。
   ベーシックコース生は、ミドル進級までお待ち下さい。
  ・同一運営ではありませんので、弊教室とは各種サービス条件が異なります。詳細はお問合せ下さい。
  ・転属希望は前々月までにメール下さい。許可制です。
   人数調整の為、数ヶ月お待ち頂く場合があります。
   また、将来的に教室を移転する場合があります。

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

 5) 1月課題 高得点者(八幡東教室は未集計)  []内は教室と学年

  ◆ベーシック【17名平均 図面2.8+設問3.4=6.2】
   10点…荒木[小倉北2]
    9点…橋本[小倉北2], 大橋[小倉北3], 佐藤[東福間3]
    8点…なし

  ◆ミドル【19名平均 図面3.2+設問1.6=4.9】
   10~9点…なし
     8点…数住[小倉北4], 中島[小倉北4]
     7点…岩熊[中間5], 佐藤[小倉北7]


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