2016年7月28日木曜日

7月授業内容

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


1. 7月授業内容


1.0 <スタートアップ>


 割愛します。


1.1 <プライマリーコース『ロボダック』>



 割愛します。





1.2 <ベーシックコース『ウォーカータクシー』>


 2015年7月のミドルコースで登場した人力車ロボットです。推進手段は二足歩行です。

 交互に前後する二足で前進するには、前→後ろへ移動する足で地面を蹴(け)り、後ろ→前へ移動する足はなるべく地面と干渉しないような方策が必要です。
両足が等しく地面と接触していると、前進する力と後退する力が拮抗(きっこう)し、その場でモジモジするだけです。

 二足歩行ロボットには、2015年4月の『ぐるぐる進む君』がありました。
これも、1日目ではモジモジ君に過ぎませんでしたが、2日目に重心制御を取り入れることで、両足が接地したまま摺(す)り足をすることに成功しました。


 今回のロボットは、側面の上下2本のクランクが常に同じ角度を向きつつ(同位相)回転することで、脚(ロッド15アナ)を垂直に保ったまま円運動させています(*1)。

左右の脚では、180°ずらした角度(逆位相)のために高低差が激しく変化しますので、片足ずつ浮かせる方式と思いきや、両足が常に接地し(*2)、スムーズに歩きません
(微妙に前進する場合は、たまたま前進に有利な重心移動や摩擦が効いています)

また、片足を上げた分だけそちらへ大きく傾くので、倒れやすく不安定です。

 これを片足ずつ浮かせる秘訣(ひけつ)が、左右両輪を付けた“リヤカー”です。
ただ牽引(けんいん)しているだけではなく、リヤカー両輪+片足の3点支持を実現しています。
(二足歩行ロボットとしては、ちょっと反則技のような気もしますが…)

 物体は、3点以上で支持することで、姿勢を安定に保てます
カメラ用の三脚や三輪車のほか、自転車やバイクが停止時につく足やスタンドも同じ理由ですね。
リヤカーをつなぐと、胴体を直立させたまま片足ずつ持ち上げ、快調に前進歩行するようになりました。

中には、胴体を寝かせて頭部をタイヤで支え、滑らないよう工夫した脚を回して進む独自の改造もありましたが、これも3点支持です。


3点支持によらないアイデアとしては、脚の向きが変化しない平行リンク(*1)の性質をうまく利用し、両脚の位相を揃えて回し、寝かせた胴体の底面(背中)を地面に付かせたり、水平に浮かして少しだけ前に運んだりしながら進むアイデア(*3)が見られました。


さらには、1日目の二足歩行ロボットの足裏をタイヤで支えただけで、後ろへ運ぶ側のタイヤを止めたまま、前に運ぶ側のタイヤだけを転がし、しっかり歩いて行く不思議なロボットも出現しました。
本来は前後に等しく自由回転するはずのタイヤが、重心や摩擦力のバランスの崩れによってどちらかに多く回る現象は珍しくありませんが、ここまで完全に停止⇔回転を切り替えることは難しく、講師陣3名を唸(うな)らせた素晴らしい発見でした(*4)。

 最後は牽引力を競うべく、長机を傾けて、上り坂に挑戦してもらいました。
足裏がプラスチックのままでは滑りやすく、背が高いと後方へ転倒しやすいので、胴体を寝かせたタイプが有利でしたが、これも直立二足歩行ロボットの難しさを物語っています。



*1 平行リンクと呼ぶ機構で、長方形が潰れて平行四辺形になるように、リンク外形を変えられます。スペースワールドのラッキーバスにも使われています。

*2 片足では重心の真下(両足の中間点)を支えられないので、反対の足が接地するまで傾きます。シャフトを横に通すなど、足裏を内側に広げると、片足でも立てるようになります。

*3 先月の『がたごとレスキュー隊』の4脚を全て同じ向きに揃えたロボットに相当。

*4 胴体(タイヤ)の左右への傾きと重心移動による、左右タイヤの回転(軸)摩擦力の差によるものと思われます。上り坂でも後退しないほどの停止トルクを得るには、2015年12月の『ロボフィッシュ』で学んだラチェット機構を用いれば良いでしょう。


1.3 <ミドルコース『シュート君』>


 ロボット教室カリキュラムとして初登場のキックロボットです。
当時小学2年生のアイデアコンテスト出品作がベースです。(マジでスゴイ…)


 本作品は、モーター1本の正⇔逆回転で、下記をやってのけます。
A) 腕 : 振り   ⇔ 振り(戻し)
B) 膝 : 伸ばし  ⇔ 曲げ
C) 脚 : 蹴り   ⇔ 引っ込め
D) 胴体: 右ひねり ⇔ 左ひねり(戻し)

この動作を語る上で、3月の『ロボアーム』を外せません。
これらの動作は、自動車ロボットのモータータイヤのような固定の連動関係ではなく、バイクの加速(タイヤの回転)とウイリー(前輪の浮き上がり)のような、負荷の軽い順に可動域を使い果たす関係です。

要は、「回し易いやつから回せるだけ回しちゃおう」と、モーターの力が次々と逃げ道を探すのです。

ロボアーム』では、
E) ハンド: 掴み   ⇔ 放し
F) アーム: 持ち上げ ⇔ 降ろし
G) 本体 : 右旋回  ⇔ 左旋回
動作順“逆再生”されなかったり、そもそも曖昧に同時発生したりしました。
負荷の大小関係が(重力を見方にするか敵にするかで)逆転したり、はっきり定まらなかったりする場合の現象です。

シュート君』では、A~Dの動作がいずれも一瞬で完了するので、これらの順序(つまり負荷の大小)にあまり気を配らず、むしろ同時動作した方がキッカーとして様になると考えて設計しているのでしょう。

 大事なことは、どの動作にも可動範囲(限界)を定めていることです。
そうでなければ、腕や胴体が360°回り続ける化け物になってしまいます(*5)。
いましたよね? 背中のペグを見落として、上半身だけ高速スピンする妖怪が…。



 2日目の最後に、パーツでボールとゴールを作って、2人ペアでPK戦をしました。
スイッチを正逆に切り替えながらも、可動限界があるので入れっ放しにならないよう、スライドスイッチとタッチセンサー、輪ゴムを上手く利用したコントローラーの設計も秀逸ですね。


*5 本当は、Aの腕自体に回転限界はなく、B・C・Dの制限から決まります。Aは、モーター(胴体)に対するモーターシャフト(背骨)の回転量だけで決まり、モーターシャフトの回転を合同で消費するB・C・Dとは異なります。地面に対して、胴体Dと一体のモーター自身が回転するため、理解を難しくしています。


1.4 <ロボプロコース『不思議アイテム(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回しか○○を実行しませんよ。大丈夫でしょうか。
ナイトライダー(*6)風にも簡単に表示できましたね。


 横1ライン分の8つの点を8桁の2進数(01001001など)で表し、これを縦8つ分渡すことで画面表示してくれる関数(*7)を使って、パラパラアニメも制作できました。
2進数01001001に代わり、10進数73としても、16進数49で与えても同じ絵になります。
2進数しか扱えないマイコンへ転送する前(*8)に、01001001に変換されるからです。

 つまるところ、10進数(0~9)は人間に好都合な表記法でしかなく、8本足の火星人なら8進数(0~7)を使うかもしれないのです。
16進数(0~F)というのは、2進数4桁分をちょうど1桁で書けるので、慣れた人には楽なのです。
8進数も、1桁で2進数3桁分なので、コンピュータの分野ではよく使われます。


 2日目は“”も出します。
圧電スピーカー(*9)をつないで、人間の指示に反応できるようタッチセンサーも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フォーマット(*10)による楽譜データを与えて任意のメロディを演奏できます。
次月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の基礎を学び、ゲームパッドで光と音を自在に操るなど、ゲームプログラムの要素を掘り下げます。


*6 人工知能を搭載した喋るスポーツカーが犯罪捜査員マイケルと共に様々な事件を解決するアメリカの1980年代のアクションドラマ。知らない人はYouTubeで。

*7 決まった手順の命令群を1つにまとめて名前を付けたもの。その名前を1回呼ぶだけで複数の命令をまとめて実行してくれるので、プログラムが簡単になる。手続き、サブルーチンとも呼ばれる。

*8 転送してあげる方のPC内部でどう処理されるかは少し難しいので割愛しますが、2進数しか扱えない点は変わりません。

*9 普通のスピーカーがアナログ信号(音声・音楽)を再生するするのに対し、圧電スピーカーは、デジタル信号を省電力で音に変換する作用に長けています。いわゆる「ピッ」「ピー」「ピロピロ…」というようなアラーム音ですが、昔のゲーム機のような素朴な演奏もできますよ!

*10 Ring Tone Text Transfer Language(着信音文字列転送言語)の略で、ノキア社が携帯電話の着信メロディ楽譜を記述するために開発した書式。
https://en.wikipedia.org/wiki/Ring_Tone_Transfer_Language


2. 今月の課題

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

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

 <ベーシックコース>
  ○ 4面図スケッチ(専用方眼紙)
  ○ 見取図スケッチ(テキスト最終ページ/難しければ写真の模写から)
  ○ 上記授業内容を分かるまで音読する
   (概ね3年生以上/低学年は補助 or クイズ出題形式で)

 <ミドルコース>
  △(長尺につきスケッチ免除)
  ◎ 上記授業内容を分かるまで音読する

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

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


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


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

 8月は7/30, 8/20です。9~11月は原則通りの予定です。


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

 8月は8/7, 28です。9~11月は原則通りの予定です。


[中間]第2・4土
   - 13:30~ ロボ・ベーシック/プライマリ

 ・8/ 6 第1回 2F会議室1
 ・8/27 第2回 3F会議室2

 9~11月は原則通りの予定です。


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

 ・7/31 第2回(7月)
  10:00~ 5F小セミ
  13:00~ 5F小セミ
  15:00~ 5F小セミ

 ・8/ 7 第1回(by 八幡東教室 中野先生)
  10:00~ 5F小セミ
  13:00~ 5F小セミ
  15:00~ 5F小セミ

 ・8/21 第2回
  10:00~ シティプラザ501会議室
  13:00~ シティプラザ501会議室
  15:00~ シティプラザ501会議室

 8/21は代替施設『商工貿易会館(シティプラザ)』での開催となります。
 9~11月は原則通りの予定です。


4. お知らせ


●オリジナル電子工作講座(保護者同伴の小3も受付けます!)

 8/22(月)に空席あります。保護者様の同伴を条件に小3も受付けます。
 電子工作・回路学習に欠かせないデジタルマルチテスターをプレゼント!

【対象】
 ロボット/プロ/理科実験教室に通う小3~高校生 1日8組16名
 (保護者同伴可、小3は同伴必須)

【日時】下記いずれか一日
 ・8/10(水) 9:30~15:00 満席御礼
 ・8/22(月) 9:30~15:00 空席あり

【会場】
 北九州イノベーションギャラリー(KIGS) 工房(スペースワールド駅 徒歩5分)

【工作名/タイトル】
 『RCドレミ ~限定版~』/「鉛筆一本で音と光を操ろう!」


【内容】
 電子部品と発振回路の原理を実験を通して学び、身近な物をオルガン鍵盤にしてしまうガジェットを製作して遊びます。

【参加料】
 7,500円(受講料5,400円+材料費2,100円)

【講師】
 中野 司・佐藤 誉夫

【申込方法】
 メールにてお申込み下さい。

【申込条件】
 ・原則として、8月お引落し額(9月分)に加算して徴収させて頂きます。
 キャンセル・欠席により空席が発生した場合は返金できません。
 (キットと製作テキストのみお渡しします)
 ・学習の場につき、同伴者は保護者1名のみ(小4~任意・途中退場可)とし、受講生以外のお子様はご遠慮下さい。


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

2016年6月29日水曜日

6月授業内容

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


1. 6月授業内容


1.0 <スタートアップ>


 割愛します。


1.1 <プライマリーコース『アルペンくん』>



 割愛します。







1.2 <ベーシックコース『がたごとレスキュー隊』>


 救助ロボットです。


1日目では、何の変哲もなさそうな4輪車に留まりましたが、車体底面の地上高(自動車用語でロードクリアランス)が低いため、少しの段差で引っ掛かってしまい、がたごと道はとても無理のようですね。
それでも、ちょっとした工夫があるのです。それはスピードが“遅い”ことです。

 ギアボックスをよく観察してみましょう。
モーター軸のピニオンギア(歯数8)が先ずベベルギア(歯数24)を回し、続いてベベルギアと同軸(つまり等速)のピニオンギア(歯数8)がギアM(歯数24)を回しています。
タイヤはこのギアMと同軸(等速)です。

歯数8のギアが歯数24のギアを回す構成が2段ありますので、1段目で1/3に減速、2段目でさらに1/3に減速することになり、モーターの回転を1/3×1/3=1/9に減速してタイヤを回しています。
つまり、モーターが9回転してタイヤがやっと1回転する遅さです。

 遅いだけなら、何のメリットがあるのでしょう?
実は回転する力(トルク)が9倍になるという恩恵があるのです。
試しに、タイヤを外したシャフトを手でギュッと摘まんでみてください。
大人でも止められない程に強力ですよ。レスキュー隊として頼もしい力強さが準備できました。


 2日目では、ロードクリアランスの問題を解決します。
もっと大径のタイヤを装着できればよいのですが、タイヤLで最大ですので、代案が必要です。
そうです、タイヤSをクロールする手のように装着するのは、瞬間的に地上高を上げる効果も狙っているためです。
バタバタと騒々しいですが、これで多少の凹凸は乗り越えられるようになりました。


あとは、4脚の取り付け方向ですね。
4脚とも揃えるのか、左右は揃えて前後でずらすのか、全てを90°ずつずらすのか。
後者ほど、いずれかの脚が地面を掻いている期間が長く、推進効率に優れそうですが。


 最後の競技は、がたごとレース!
がれきに見立てた木材を敷き、成功率20%の難関コースを乗り越えて救助に向かえるかどうかを競います。


丸太を前に立ち往生し、脚がもげるなど、「救助隊が必要な救助隊」が多い中、4脚の向きを全てずらしたロボットの成功が目立ちました(*1)。

4脚とも揃えたロボットでは、どの脚も着地していない間に、せっかく乗り上げた丸太を底面で滑り下りてしまいました。

左右または前後の2脚ずつ揃えたロボットでは、丸太に乗り上げて傾いた胴体をさらに傾かせ、転覆するか、でんぐり返っていました。


 ただ、路面の起伏や摩擦状況により最適な構成が変わり得ますので、脚を揃えるのが常に不利と思わないようにしてください。
激しい凹凸を乗り越えるだけなら、4脚一斉に胴体を持ち上げた方が有利のはずです。
その後、胴体着地する間に滑り落ちないよう工夫すれば最強かもしれません。


*1 胴体と干渉(かんしょう)しないようクリアランスを確保しつつタイヤLに換装(かんそう)するなど、独自の工夫を凝らして走破した人もいました。


1.3 <ミドルコース『プログラミングカー』>


 “プログラミング”と“カー”にそそられます。
“カー”だけに製作も理解も難しくはありませんが、生みの親で、アイデアコンテストで最優秀賞に選ばれた当時小学6年生に脱帽です。


 他のロボットでも、本体の製作時に動作をプログラミングする要素はありますが、本体(ハードウェアプログラム(ソフトウェア)媒体を明確に分離した点で、唯一無二のロボットです。

 プログラムとは何でしょう。一連の動作や演目などの手順(表)ですね。
本体の設計を変更することなく、プログラムだけで動作を決定できる利点があります。
ゲーム機やアプリのアップデート等が最たる活用例ですね。
コンピュータ類に限らず、テレビ、エアコン、冷蔵庫、洗濯機、炊飯器まで、現代の殆どの電気製品がプログラムに則り動作しています。

 本ロボットのプログラム媒体は、赤いロッドを繋ぎ合わせた一本の棒で、その幅(1~3本分)により、右折・直進・左折を指令します。
走行用モーター動力をプログラムロッドの送り用ローラーにも分配しているところがナイスです。

黎明期のコンピュータも、パンチカードと言って、無数のパンチ穴を開けた何十メートルもの紙を送ってプログラムやデータをセーブ・ロードしていましたが、その様を彷彿とさせます。
また、ロッドを円形に組めば無限ループを実現でき、永遠とジグザグ走行や8の字走行を繰り返すこともできます。


 2日目最後の競技に、三角コーンやテープで指示されたジグザグコースを無事に完走するプログラムを設計してもらいました。

このとき、試行錯誤を重ねながら仕上げるのも現実的な成功方法なのですが、計算によって一発成功を狙う科学的方法も追求して欲しいと思い、1日目に余力のある人に挑戦状を掲げました。


【お題】
 ロッド1穴分(約1cm)送る毎にロボットが何cm進むか?(小数第1位まで)
ただし、ロッドを送るタイヤS直径を38mm、本体を推進させるタイヤL直径を51mmとする。

【解答】
 タイヤSとLの1回転あたりの移動距離(変位)の比は、円周長の比であり、これは直径の比に等しく、38:51である。
ここで、ギア構成により、タイヤLの回転数はタイヤSの3倍である。
よって、タイヤLによる変位は、タイヤSに比して 3×51/38≒4.026倍となるので、
本ロボットは、ロッド1穴分(約1cm)あたり約4.0cm進む

 実際は、各所のスリップの影響により誤差が出ますが、例えば、55cmのロッドでは220cmのコース取りをプログラミングできるという“アタリ”が付けられるようになり、最初から成功に近づける可能性が高まるのです。

算数/数学が得意な人は、円周率3.14やπ(パイ)を持ち出して面倒な計算をしても同じ答が出ることを確認し、比を用いた考え方を深めてください。


1.4 <ロボプロコース『オムニホイールロボット(3)』>


 オムニホイールロボットの3ヶ月目、最終月です。

 知的ロボットに必要な「感じて」「考えて」「動く」機能のうち、先月までは「考えて」「動く」だけでした。
いや、「考える」といっても、定めたプログラム通りに動くだけで、せいぜい次の動作に移行する秒数を計っているだけでした。
想像してみてください。いくら“脳ミソ”があっても、外界との接点が無ければ(目も耳も鼻も触覚さえも!)、意識は闇の中…。息が詰まりそうですね。

 1日目では、「感じる」触覚を与えます。
丸い本体の前部(頭部?)に左右のタッチセンサーを取り付け、そこから針金(触角?)を2本伸ばします。まるでテントウムシですね。
針金に何かが触れると、タッチセンサーがONになって…、どうなる?
それはプログラム次第ですね。ここが本コースの面白いところです。

右の触角に触れるとちょっと後ずさり、左の触角に触れると旋回するなど、自由に設計できます。
これだけでも、ロボット掃除機を想わせる動きになります。
どうです?あのスゴイ家電の動作も、こんな感じで実現できてしまうのですよ!
自ら判断して動いてくれるので、生物のような賢さや可愛らしさが出てきます。

 これを実現するプログラミング要素を学びました。
もし、○○だったら△△して、そうでなければ××する”ような判断と行動のルールを与えるもので、“if ○○ { △△ } else { ×× }”の形式で記述します。
条件分岐といって、プログラムには大切な要素です。
これがなければ、ゲームソフトも紙芝居がせいぜいです。


 最終日の2日目は、ラジコン操縦プログラムを転送して、「考える」賢さをコントローラ操縦者に委ね、パイロン走行や『恐怖の鉄橋渡り』、しまいにサッカー対戦など、教室ロボカップを開催して走らせ回りました。



この過程で、プログラムの条件分岐を使用して、高速走行モードに入るボタンが決められていることを悪用(?)して、パラメータを改造したり、さらに禁断の“スピードリミッタ解除”にまで及んだ人もいましたが(*2)、机上では速すぎて落下の恐怖が付きまといましたね(*3)。

 以上、3ヶ月にわたり、オムニホイールの走行原理やプログラミングの基礎を学びました。
特に、同じボタンやタッチセンサーでも、押されてどう反応するかはプログラム次第であるという点が、従来のロボット教室パーツにはない新鮮な体験だったと思います。
次回以降のテーマでも、マイコンに様々な判断と命令を担わせて、面白いマシンを製作して参りましょう。


*2 実際の自動車でも、そういうことが(やろうと思えば)できます。エンジン/モーターの最大パワーは変わらないものの、アクセル操作に対する応答特性を変える走行モード切替が付いている車もあります。

*3 実際、落下→分解→修理が続出しました。反省…。


2. 今月の課題

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

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

 <ベーシックコース>
  ○ 4面図スケッチ(専用方眼紙)
  ○ 見取図スケッチ(テキスト最終ページ/難しければ写真の模写から)
  ○ 上記授業内容を分かるまで音読する
   (概ね3年生以上/低学年は補助 or クイズ出題形式で)

 <ミドルコース>
  △(長尺につきスケッチ免除)
  ○ ロッド1穴分(約1cm)送る毎にロボットが何cm進むか計算する(1日目)
  ◎ 上記授業内容を分かるまで音読する

 <プロフェッサーコース>
  ◎ 上記授業内容を分かるまで音読する
  ◎ サンプルプログラム[Sensor3]をベースに、テキストp.23フローチャートのアルゴリズムを実現する(1日目)


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


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

 7・9・10月は原則通り、8月は7/30, 8/20の予定です。


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

 7・9・10月は原則通り、8月は8/7, 28の予定です。


[中間]第2・4土
   - 13:30~ ロボ・ベーシック/プライマリ

 ・7/ 9 第1回 2F会議室1
 ・7/23 第2回 2F会議室1

 7・9・10月は原則通り、8月は8/6, 27の予定です。


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

 ・7/ 3 第1回 ※部屋変更
  10:00~ 5F小セミ
 ※13:00~ 4Fサポータールーム
 ※15:00~ 4Fサポータールーム

 ・7/31 第2回
  10:00~ 5F小セミ
  13:00~ 5F小セミ
  15:00~ 5F小セミ

 プライマリは幼児向け6ヶ月コースです。
 7月はムーブフェスタの為、7/3, 31です。7/15はありません!
 8月は原則通り8/7, 21ですが、8/21は代替施設『商工貿易会館(シティプラザ)』での開催となります。
 9・10月は原則通りの予定です。


4. お知らせ


●全国大会(既報)

 6月授業でベーシック・ミドルコースのアイデアコンテスト全国大会の案内冊子を配りました。
オリジナルロボットを考案し、7/21(木)九州本部必着にて、所定の応募用紙・プレゼン動画(3分以内)を提出します。
ベーシック・ミドル部門別で選抜しますので、ほぼ1回ずつのチャンス!
何人か試作動画を送ってくれ、アドバイスもしております。有志は果敢に挑戦して下さい。

 8/20(土)に東京大学で開催の第6回ロボット教室全国大会は、生徒さん・ご家族を優先に、下記HP上で観覧申込みもできます。7/4(月)正午~受付開始です。

http://kids.athuman.com/robo/event/convention/2016/


●オリジナル電子工作講座

 八幡東教室の中野先生と協力し、ロボット教室→プロコースの間を繋ぎ、コンピュータ制御の基礎となるデジタル回路を学べる電子工作講座を開講します!
 先ずは年に数回の不定期開催とし、来年より定期のシリーズ講座化を目指します。

【対象】
 ロボット/プロ/理科実験教室に通う小4~高校生 1日8組16名(保護者同伴可)

【日時】下記いずれか一日
 ・8/10(水) 9:30~15:00
 ・8/22(月) 9:30~15:00

【会場】
 北九州イノベーションギャラリー(KIGS) 工房(スペースワールド駅 徒歩5分)

【工作名/タイトル】
 『RCドレミ ~限定版~』/「鉛筆一本で音と光を操ろう!」


【内容】
 電子部品と発振回路の原理を実験を通して学び、身近な物をオルガン鍵盤にしてしまうガジェットを製作して遊びます。

【参加料】
 7,500円(受講料5,400円+材料費2,100円)

【講師】
 中野 司・佐藤 誉夫

【申込方法】
 7月授業でチラシを配布し、7/20~メールにて募集、7/27決定(抽選)します。
 ご反響メール歓迎します!

【申込条件】
 ・原則として、8月お引落し額(9月分)に加算して徴収させて頂きます。
 キャンセル・欠席により空席が発生した場合は返金できません。
 (キットと製作テキストのみお渡しします)

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

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


●TV出演情報

 プロコースのアドバイザー 千葉工業大学 未来ロボット技術研究センター所長 古田貴之先生がTV出演される予定です。是非ご覧下さい。

 7月3日(日) 21:00~23:09 フジテレビ系列「Mr.サンデー」
http://www.fujitv.co.jp/mrsunday/index.html


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

2016年5月31日火曜日

5月授業内容

1.5月授業内容
2.今月の課題
3.今後の授業スケジュール
4.ひと言


1. 5月授業内容


1.0 <スタートアップ>



 割愛します。
写真のギアトレーンは、生徒さん自身による、自動車を増速(テキスト設計の減速比1/9から緩和)させた改造例です。
どちらが速く走るか、分かりますか?


1.1 <プライマリーコース『ロボコング』>











 割愛します。


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


 おそうじロボットです。
90°ずつ向きをずらした9本の赤い“ブラシ”を高速回転させる様がにくいですね!
吸引こそしませんが、あのロボット掃除機『ルンバ』を彷彿(ほうふつ)とさせます。


 掃除機として、大事な工夫点があります。
ブラシは高速回転させたいが、本体の走行スピードは…?
疾走(しっそう)されては困るので、ゆっくりタイヤを回さなくてはなりませんね。
この相反する要求をどうやって1つのモーターで実現するかです。

部品配置は、モータータイヤブラシ の順に並んでいます。
回転速度は、速い遅い速い です。
つまり、モーターを一旦減速してタイヤを回した後、増速してブラシに伝える構成が必要であり、それが筐体(きょうたい)の側面に並んだ大小6枚のギアの役割なのです。

3連のピニオンギア(歯数8)がタイヤと同軸のギアL(歯数40)を回すので、1/5に減速されます。
その後、ギアM(歯数24)を経由してブラシと同軸のピニオンギア(歯数8)を回します。
途中のギアMは気にせず(*1)、ギアLピニオンギア と考えて、5倍の増速になります。
つまり、1/5×5=1で、モーターと同じ回転数(等速)に戻してブラシを回しているのですね。


 2日目最後の競技は、ガチンコおそうじ対決!
対向させた2体の進路上に、小さく丸めた紙片を散りばめ、「よーいドン!」でゴミの争奪戦(!?)です。
両者がぶつかり、動かなくなった時点で内部に取り込めたゴミの数を競います。

皆さん、対戦になると燃えるのよね~。
「インチキ!」「フライングした!」「約束と違う!」だの、レフェリーがいないと勝負が付かず大変です。
時間いっぱい改造に勤(いそ)しむ人もいて、なかなか決勝戦までたどり着きませんでした。


 このロボットで苦心するのは、赤いブラシが(当然に)固いプラスチック部品であり、柔軟性がないので、筐体との隙間にゴミが挟まってブラシが止まりやすいことです。
高速回転(増速)させる分、回転力(トルク)が弱いので、たやすく停止します。

この問題を解決しようと、すばらしいチャレンジも見られました。
ブラシの毛(クロスジョイント)が固いのは仕方がないので、シャフトに“半固定”し、毛一本一本の回転力を弱めるアイデアです(*2)。


1) クロスジョイントをシャフト(十字形断面)の回りに固定するのではなく、自由にぶら下がるよう、十字穴ではなく丸穴に通す
2) クロスジョイント同士が密着するよう、ブッシュやグロメットで隙間を埋める

これには、
・詰まらない限り、全ての毛がシャフトと一緒に回転する
・詰まった毛だけ止まり、ブラシ全体の回転を止めない
という設計思想がしっかり体現されています。

肝心のゴミ取り性能は、時間内では今一歩でしたが、何か問題に直面した時、限られた部材(キット)の中でも何か解決方法がある」という好例です。



 他には、毛として、回転シャフトに輪ゴム結束バンドをくくり付けてはどうでしょう。
内部の汚れが問題になるほどゴミが取れてしまうかもしれませんよ。


*1 ギアMを気にして計算しても、40/24×24/8=40/8=5 と同じです。間にギアMを挟んでいる理由は、回転方向と位置を調整するためです。

*2 スリップトルク(滑り摩擦力を利用した回転力伝達)や、トルクリミッター(回転力制限装置)呼ばれる機械要素です。


1.3 <ミドルコース『アメンロボ』>


 アメンボのような動きで進みますが、推進原理は異なります。
ミドルコース随一と言っていいくらい、突き詰めれば高度な学習テーマに満ちた、難しいロボットです。

 4脚キャスター付き椅子のように、X字に交差させたロッドの先端4箇所に、自在に向きを変えるタイヤSを取り付け、ロッドの交差点に本体を載せています。

 1日目では、モーターで回転するクランク機構(*3)により、ロッドのX字を閉じたり開いたりする動きを実現しました。
製作はこれでほぼ完成なのですが、タイヤSはその向きがX字の開閉に合わせて阿波踊りの手先のように自在変化するだけで、一向に進む気配がありません。
どうしたものでしょう。2日目までの課題にしてみました。

 よく観察すると、タイヤは向きを変えているだけでなく、少し転がっては逆方向に戻る動きも見られますので、学習経験を生かして、
ラチェット機構により回転を一方向に制限してやればいい」
というアイデアもありますが、前進させるまでには至らないようです(*4)。


 2日目のテキストを配り、前輪同士と後輪同士をくくるように2本の輪ゴムをキャスターの根元に掛けました。
するとどうでしょう。輪ゴムがキャスターを内側に引っ張ることで、タイヤの向きが前後方向に“ほぼ”揃いました

スイッチを入れてみると、1日目が嘘のようにスイスイ進みます。
X字の開閉に合わせて、床面との摩擦により、前後輪とも、ハの字平行逆ハの字の形を繰り返します。

X字を開く力は、左右両輪を前方に向かって開かせ(逆ハの字)、
特に後輪(*5)が平泳ぎで水を(スケーティングで雪や氷を)掻くように、推進力に変換されています。

X字を閉じる力は、左右両輪を前方に向かって閉じさせ(ハの字)、
特に前輪(*5)で地面を抱き込んで後方へ追い遣(や)るように、推進力に変換されています。

輪ゴムの弾性力により、
(1) タイヤを前後方向に緩やかに揃える
(2) 地面との摩擦力でタイヤの向きが変化するのを少しだけ許す
ことが功を奏しているのです。

 実際は、ここに書く程に簡単ではなく、X字リンクの歪みやタイヤの摩擦からくる開閉の重たさ、輪ゴムの強さ(*6)に起因して、推進させるまでに苦労し、競技する余裕もない難題でした。

 ラチェットは使いませんが、タイヤが後ろに転がる瞬間があるようなら、それを阻止することで推進効率が上がるかもしれません(*7)。


*3 回転軸の回りで円形運動する別の回転軸をジョイント(関節)とするリンク機構で、回転運動⇔往復運動を変換する。手回しハンドル、自転車のペダル、ピストン式エンジンが主な利用例。

*4 過去に考案した生徒さんがいましたが、そもそもタイヤの向きがバラバラなので失敗しました。

*5 X字の開閉によってキャスターが前方へ運ばれる方。

*6 輪ゴムが弱ければタイヤの向きが定まらず、強ければモーターの力負けで停止します。

*7 下手をすると前進の摩擦も増えて効率が下がるかもしれません。


1.4 <ロボプロコース『オムニホイールロボット(2)』>


 1ヶ月目に製作したオムニホイール(Omnidirectional Wheel;全方向車輪)ロボットの動きの原理を理解し、思い通りの動きをプログラム上で指示できるようになるまでの2ヶ月目の授業です。

 1日目は、改めてオムニホイール(車輪)の仕組みを考察し、3つの車輪を任意の速さ・向きに回したときの進行方向が“力(ベクトル)の合成”によって求まることを学びました。

ここでのベクトルは、車輪の回転の向き速さを、それぞれ矢印の向き長さで(紙面上に)表したものです。

2つのベクトルの合成は、まず作用点(ベクトルの始点)を重ねて、それが平行四辺形の2辺を形成するようにもう2辺を描き足し、作用点から発した対角線(=合力)の向き長さで表します。

3つのベクトルを合成するには、任意の2つを合成した後、その合力と残りのベクトルをさらに合成します。

様々な練習問題を製図して解きつつ、プログラムの数値に反映して動きを確かめ、どんな3輪の回転の組合せでも、ロボットの進行方向を求めることができるようになりました。


 2日目に、ロボットの回転する動きを考察します。
1日目では、進行方向を割り出すことができましたが、ロボットが向きを変えずに移動(=並進運動)する場合は、これで十分でした。

しかし、実際は互いに離れた3輪による作用点(ベクトルの始点)を一点(例えば、ロボットの中心)に集めて合成するために、本体が回転しようとする力(モーメント)を扱うことができませんでした。

例えば、3輪とも同じ速さで時計回りに回転させる場合、ベクトルの合成結果は長さゼロの“点”となって、ロボットが移動しないことを言い当てますが、実際の動きは、移動こそしないものの、その場でぐるぐる回り続けます。
この回る動き(=回転運動)を予測できるようにします。

 レンチやスパナを想い起こしてください。
支点回転中心)のある物体に対し、支点から離れた場所作用点)に、(支点に向かう向きとは異なる)力を加えると、物体は支点の周りで回転します。
この物体を回そうとする作用力を“モーメント”といいます。

支点と作用点の間の距離を単に“長さ”と呼ぶと、

 [モーメント]=[長さ]×[力の大きさ]

という関係があり、長いほど回す作用が強くなるという、てこの原理を表しています。

オムニホイールは、3輪とも円周上(円形ボードの縁)に取り付けられているため、円形ボードの中心を支点としてロボットの回転を考えたとき、各ホイールまでの長さ]が全て等しいので、オムニホイールロボットの[モーメント]を推し量る上では、[力の大きさ](今回はホイールの回転スピード)だけ考慮すればよいことになります。

 難しく述べましたが、簡単には、時計回り反時計回りの回転スピードを差し引きして、ゼロなら回転せず、ゼロ以外ならその値の分だけ優勢な方向に回転する、と言えるのです。

オムニホイールロボットがカーブの軌跡を描いて移動するとき、並進運動だけで実現すれば、飛来するUFOのように向きを変えず、並進運動+回転運動を組み合わせれば、自動車のように自然に曲がることもできるのです。

3つのオムニホイールが生み出す、どんな複雑なロボットの動きも、
ベクトルの合成”で求まる並進運動と、
モーメントの合成”で求まる回転運動とに分解して説明できるのです。

 最終の3ヶ月目では、このロボットに“触覚”と“頭脳”を植え付け、ロボカップに通ずる自律型ロボットに仕上げます。


2. 今月の課題

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

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

 <ベーシックコース>
  ○ 4面図スケッチ(専用方眼紙)
  ○ 見取図スケッチ(テキスト最終ページ/難しければ写真の模写から)
  ○ 上記授業内容を分かるまで音読する
   (概ね3年生以上/低学年は補助 or クイズ出題形式で)

 <ミドルコース>
  ○ 4面図スケッチ(専用方眼紙)
  ○ 見取図スケッチ(テキスト最終ページ)
  ◎ 上記授業内容を分かるまで音読する

 <プロフェッサーコース>
  ◎ 上記授業内容を分かるまで音読する
  ◎ テキストp.23のチャレンジ課題3を製図して動きを予測し、サンプルプログラム[Challenge2]をベースに数値を書き換え、確認する


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


[東福間]第1・3土
   - 10:30~ ロボ・ミドル
   - 13:30~ ロボ・ベーシック

 6・7・9月は原則通り、8月は7/30, 8/20の予定です。


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

 6・7・9月は原則通り、8月は8/7, 28の予定です。


[中間]第2・4土
   - 13:30~ ロボ・ベーシック/プライマリ

 ・6/11 第1回 3F会議室2
 ・6/25 第2回 3F会議室2

 6・7・9月は原則通り、8月は8/6, 27の予定です。


[小倉北]第1・3日
   - 10:00~ ロボ・ベーシック
   - 13:00~ ロボ・ミドル
   - 15:00~ ロボ・ベーシック第2部

 ・6/ 5 第1回
 ・6/19 第2回
  10:00~ 5F小セミ(ベーシック/プライマリ)
  13:00~ 5F小セミ(ミドル)
  15:00~ 5F小セミ(ベーシック/プライマリ第2部)

 プライマリは幼児向け6ヶ月コースです。
 6・9月は原則通り、7月はムーブフェスタの為、7/3, 31となりました。予定変更で申し訳ありません。
 8月は原則通り8/7, 21ですが、8/21は代替施設『商工貿易会館(シティプラザ)』での開催となります。


4. ひと言

 今年もベーシック・ミドルコースのアイデアコンテスト全国大会の時期が近づいてきました。6月授業で案内冊子を配ります。
オリジナルロボットを考案し、7/21(木)九州本部必着にて、所定の応募用紙・プレゼン動画(3分以内)を提出します。
ベーシック・ミドル部門別で選抜しますので、ほぼ1回限りのチャンス!
有志は果敢に挑戦して下さい。

 8/20(土)に東京大学で開催の第6回ロボット教室全国大会は、生徒さん・ご家族を優先に、下記HP上で観覧申込みもできます。7/4(月)正午~受付開始です。

http://kids.athuman.com/robo/event/convention/2016/

詳細はご遠慮なくお問合せ下さい。


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

2016年4月30日土曜日

4月授業内容

1.4月授業内容
2.今月の課題
3.今後の授業スケジュール
4.ひと言


1. 4月授業内容


1.0 <スタートアップ/プライマリーコース>



 割愛します。


1.1 <ベーシックコース『ケンドーロボ』>



 文字通り、剣道のように竹刀(しない)を振るロボットです。
剣道には、ここぞという時に、前進と「面!」の2つの俊敏な動きが必要です。

 1日目では、モーターで左右両輪を駆動し、前進・後退できるようにしましたが、竹刀は手動で前後に振り動かせるだけです。
竹刀を自動的に振るには動力源動作タイミングを与えなくてはなりません。
2日目に解決します。

 動力源として、モーターを前進に利用してしまっているため、輪ゴム(の弾性力)を利用します。
前面に引っ掛けた輪ゴムが、竹刀を後方へ振り構えるほど引っ張られます。

動作タイミングとしては、背後に振り構えた竹刀を振り下ろさないよう固定するロックが、相手にぶつかった衝撃を検知して外れるようロック部品と一体化してスライドするバンパーを前部に取り付けました。
衝突して押し込まれるバンパーを利用する点が、先月の『う王さ王』と似ていますね。

 このロックがうまく外れるための工夫が設計されています。それは“スピード”です。
スピードがあればこそ、ぶつかった衝撃が大きくなり、ちゃんと検知できるのです。


だから、今回のロボットはちょろちょろと速く走り、捕まえるのが大変ではありませんでしたか?
設計上の違いは、モーター軸に取り付けるのがいつものピニオンギアではなく、もっと大きなギアMでしたね。
こうしてモーターの回転数を落とさずにタイヤに伝え、速く走らせていたのです(*1)。



 最後の競技は「一本!」勝負。早く竹刀を振り下ろし、相手に当てた方が勝ちです。
バンパーを長くして早めに相手を検知し、それ以上に竹刀を長くしてリーチを伸ばすことが一つの指針ですが、あまり欲張ると重くなって、動作にキレがなくなりましたね。
案外、ノーマル仕様の小柄なボディの方が、体格のいい先輩たちを打ち負かしていました。

 なお、ケンドーロボ同士を対面させて、いざ取り組もうと発進させても、真っ直ぐ進まずに相手を打てないと悩むことがありました。

左右のタイヤは同一シャフトで直結しており、必ず等しく回転するので(*2)、一旦走り出した後はほぼ直進するのですが、最初の急加速する瞬間は、大きな力(タイヤのグリップ力)が地面にかかり、摩擦や重心バランスの関係で、どちらかのタイヤが多めにスリップしてしまうことが原因です。

底にパーツを付けて、地面との摩擦スリップバランスを取ることで直進したり、バランスを崩すことで曲がったりするようにも調整できましたね。


*1 同じ大きさのギア同士は、回転速度が同じに保たれます。このことを「減速しない」と言います。先月の『う王さ王』の改造例としても紹介しました。

*2 モーターのギア(出力軸)が右タイヤを先に回していることが曲がる原因と分析する人もいましたが、そうではなく、左右の重心バランスを崩している面が影響していると考えられます。


1.2 <ミドルコース『ロボバッター』>


 ピッチャーとバッターの2部構成です。
モーターは1つだけなので、その動力はバッターに譲って、ピッチングは輪ゴムを使います。
逆に設計することもできますが、この方がコントロールし易いのでしょう。

 ピッチャーロボ(ピッチングマシン)の構造は、中世の戦争で利用された投石器そのものです。
いろんな物を投げ飛ばして、飛距離を観察してみました。
そこそこ重い物(ギアの塊)で体積が同程度なら、軽い方が遠くまで飛びました。
限られた輪ゴムのパワー(弾性エネルギー)で加速させ易いためです。

同程度に軽い物(ボール状に丸めたA5用紙)なら、堅く丸めて体積を小さくした方が飛びました。
空気抵抗を受け難くなるためですね。

 さて、投げられた物をバッティングするのは至難の業です。
バットを振るタイミングの問題もありますが、そもそもピッチングが安定せず、同じ物を投げても飛距離がばらばら。
玉が加速中にバスケット(ピッチャーの手)の中で動いてしまい、飛ばす方向やスピードが変わるからと考えられます(*3)。
まして、バッティングマシンのスイッチを手動でオンにする1日目のロボットでは、全くと言っていいほど玉に当たりません。


 2日目にこれを自動化します。
電池ボックスから出たケーブルは、先ずはピッチャーに備え付けたタッチセンサー(黒)を経由させ、延長ケーブルを通して遠くのバッターに接続します。
こうして、ピッチャーが玉を投げ終わった瞬間にバッター内のモーターが回り始め、バットを自動的に振るようになります。

 さらに、いつまでもバットをぶん回し続けているのも格好悪いので、振り終わった位置にタッチセンサー(グレー)を備え付け、モーターを止めます。
これでバットを一回転分振るだけの、省エネ野球部になりました。

 電池ボックス ⇒ タッチセンサー(黒) ⇒ タッチセンサー(グレー) ⇒ モーター

のような直列接続により、両方のセンサーがオンになる間だけ通電する仕組みができ上がります。

 さて、肝心のバッティング精度ですが、ピッチングが安定しない中、タイミングだけは再現性を出せるので、二者間の距離や投球角度(*4)を調整すれば、5回中1回くらいは当てられるようになりました。
こうして我々人間は、機械化の恩恵に与(あずか)るわけですね。


*3 つまり、バスケットの中でぐらつかない大きさの玉にすることが、ピッチングを安定化するためのコツです。

*4 同じ初速度でも、投げ上げる角度によって飛距離が変わります。一般に45°が最も飛ぶと言われますが、実際は玉によって異なる空気抵抗を受けるため、40°前後になるようです。初速度と角度は、アームが止まった(ピッチャーの手を離れた)瞬間で決まります。


1.3 <ロボプロコース『オムニホイールロボット(1)』>


 春タームとして、オムニホイール(Omnidirectional Wheel;全方向車輪)ロボットを製作し、リモコン操縦するまでの1ヶ月目の授業です。

 1日目は製作です。
2層の円形ボードにモーター、オムニホイール、マイコンボード、無線モジュール、電池ボックスを組み付け、配線コネクタを差し込んでいきます。
殆どの作業がネジ留めですが、組み付ける順番の解決と、手先の器用さが要求されます。
日常において、あまり経験しない作業なので、悩みながらもパズルのようで楽しかったのではないでしょうか。


パソコンからサンプルプログラムを転送し、3つのホイールを指示通りの速さ・向きに回せることを確認して終了しました。

 2日目に、ゲームパッド(プレステ用と同等!)と無線通信リンクを確立し、パソコンからラジコンプログラムを転送すると、アナログスティック(*5)を倒した分だけの速さで前後左右に移動することを確認しました。

また、調整用プログラムを転送してロボットの動きを観察し、個体差(重心やホイールの摩擦力の違い)による進行方向のズレを補正するための調整値(*6)を割り出しましたが、これは今回の学習テーマの本質ではありませんので、あまり気にしなくて良いです。


 どのスティックをどれだけ倒したか、どのボタンを押したかにより、ロボット(3つのモーター)をどの向き(電流の+-)にどれくらいの速さ(電圧)で動かすかは、全てあなた(プログラム)が決めることです。
マイコンは、得意な計算・判断だけを、あなたに代わってあなたが決めたルール通りに素早く実行し、各部品に必要な命令(数値による指示)を間違いなく出してくれる便利な道具と考えてください。

 オムニホイールの特徴は、黒い樽型ローラーの作用により、普通のタイヤとしての進行方向(回転方向)とは垂直の横方向(ホイールの回転軸方向)にズルズルっと滑ることです。
このホイールが120°間隔で3つ装着されることにより、自由自在に移動・旋回できそうなことは分かりましたが、これを力学的・数学的にどのように捉え、プログラム上の数値にどのように反映すべきかについては、次回で学びます。


*5 アナログ(連続量)はデジタル(離散量)の対義語ですが、アナログスティックは、倒した向き・強さを -128 ~ 127 など、マイコンが扱いやすい整数(とびとびの値=離散量)に変換しているため、厳密にはデジタル式なのですが、ON/OFF判定だけの○×△□ボタンと違って、最小値~最大値を十分細かく刻んで表しているため、人間には滑らかな連続量で制御しているように感じられます。

*6 プログラム上の調整値“0.9f”などは、数学でいう実数(連続量)に相当し、細かな小数で計算するための拡張された表現方法ですが、これもマイコン内部で扱う以上、厳密にはデジタル値(離散量)です。


2. 今月の課題

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

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

 <ベーシックコース>
  ○ 4面図スケッチ(専用方眼紙)
  ○ 見取図スケッチ(テキスト最終ページ/難しければ写真の模写から)
  ○ 上記授業内容を分かるまで音読する
   (概ね3年生以上/低学年は補助 or クイズ出題形式で)

 <ミドルコース>
  △(長尺につきスケッチ免除)
  ◎ 上記授業内容を分かるまで音読する

 <プロフェッサーコース>
  ◎ 上記授業内容を分かるまで音読する
  ◎ テキストp.24のサンプルプログラム[Remote2]をベースに、次の機能を実装する
   ・「高速モード」よりも俊敏な「超高速モード」を追加する
   ・安全対策の為、L1/R1ボタンの両押し時に「超高速モード」に入る


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


[東福間]第1・3土
   -  9:00~ 理科実験・中級
   - 10:30~ ロボ・ミドル
   - 13:30~ ロボ・ベーシック

 5~7月は原則通り、8月は7/30, 8/20の予定です。


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

 5月は5/15, 29です。6・7月は原則通り、8月は8/7, 28の予定です。


[中間]第2・4土
   - 13:30~ ロボ・ベーシック/プライマリ

 ・5/14 第1回 2F会議室1
 ・5/28 第2回 3F会議室3

 5~7月は原則通り、8月は8/6, 27の予定です。


[小倉北]第1・3日
   - 10:00~ ロボ・ベーシック
   - 13:00~ ロボ・ミドル
   - 15:00~ ロボ・ベーシック第2部(5月~)

 ・5/ 8 第1回
 ・5/22 第2回
  10:00~ 5F小セミ(ベーシック/プライマリ)
  13:00~ 5F小セミ(ミドル)
  15:00~ 5F小セミ(ベーシック/プライマリ第2部)

 ・5/29 第2回 臨時
  10:00~ なし
  13:00~ 4F和室(ミドル by 八幡東教室 中野先生)
  15:00~ 4F和室(ベーシック/プライマリ)

 プライマリは幼児向け6ヶ月コースです。
 6・7月は原則通り、8月は7/31, 21の予定です。
 7月はムーブフェスタの為、6/2まで確定できません。代理施設での開催となる可能性があります。


4. ひと言

 太い協力関係にある八幡東教室の中野先生と、『マイコン・電子工作・プログラミング』をタネにした臨時講座を開けないか、検討を始めます。
高度なプロフェッサーコースまでいかなくても、小学生が気軽に作れて、感動できて、持ち帰れる…そんなワクワクする講座を考えます。
 たまにはブロックを離れて、また違った視点からロボットを捉え、センスを磨いてプロコースに進んで頂けたらとの思いで、このGWに模索します。


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

2016年3月28日月曜日

3月授業内容

1.3月授業内容
2.今月の課題
3.今後の授業スケジュール
4.ひと言


1. 3月授業内容


1.0 <スタートアップ/プライマリーコース>


 割愛します。


1.1 <ベーシックコース『う王さ王』>


 “右往左往”をもじっていますので、この四字熟語を知っていれば動作は想像に難くなかったでしょう。

赤色に目立つ巨大なバンパーを前後に装着した四輪車が、どうも前後(横から見れば左右)の壁にぶつかる度にスイッチバックして、行ったり来たりを繰り返すようだ、
とまでは予想できましたが、1日目のテキストでは、「スライドスイッチを手動で切り替えて実現するのは大変だね」で終わり、核心部分はお預けです。


 2日目でようやく、衝突で押し込まれるバンパーがスライドスイッチを反転させる機構を組み付けました。
しかし、中には下記のポイント【レベル1・2・3】が未解決のため、最後までうまく動作しなかった例も散見されました。
リニューアルされたばかりのスライドスイッチの個体差による場合もあります。
レベル毎に順を追って、解決していきましょう。

【レベル1】最低限…
 1) テキストを良く見て、正確に作ること(絶妙に設計されており、自己流では困難)
 2) スライドスイッチのツマミを挟む部品をしっかり組み付けましたか?(ぐらつくようではダメ)(*1)

【レベル2】スライドスイッチが硬い人は…
 3) スイッチを数十回左右に切り替えて、少し柔らかくする(モーターを外して!)


【レベル3】壁から受ける衝撃を強めるために…
 4) 摩擦を減らす(タイヤをゆるめる)
 5) スピードアップ(電池4→5本)
 6) 重くする(荷物をのせる・ぐらつかないように)(*1)


【レベル4】それでもダメなら、もっとスピードアップ!
 7) モーター軸のピニオンギアをギアMに交換する(ベベルギアの横のブッシュ2つを外せばかみ合うはず)(*2)
 8) 左右に走らせる幅を広めにとる(加速に時間がかかる)

【レベル5】それでダメでも、まだある!
 9) 硬いスイッチを弱い衝突力でも動かせるようにするには…?(てこの原理)(*3)

どうです?「ダメだー」と思っても、これだけ、いや、まだ他にもありそうです(*4)。
【レベル2・3・4・5】どれか1つでもOKかもしれません。
特に【レベル4】は簡単にできますし、これで動作しないことは無いでしょう。


 授業中、最後まで諦めずに何とか動かそうと奮闘した生徒さんほど、目からウロコなのではないでしょうか。
解決方法が身に染みると思いますので、ロボットを壊す前に、是非トライしてください。

 本来、【レベル3】を自ら考案するのがミドルコース進級レベル、【レベル4】がミドルコース内レベル、【レベル5】がアドバンス進級レベルです。
自分の改造力にしてください。


*1 “ぐらつかない”ことは、大事なポイントです。衝突エネルギーが“ぐらぐら”で失われるからです。自動車のエンジンルームがつぶれやすく、車内への衝撃を和らげるのとは逆の考え方です。

*2 ピニオンギア(歯数8)をギアM(歯数24)に替えるので、3倍の増速になります。実際は摩擦のせいでそこまで速くなりませんが、かなりスピードアップします。

*3 大幅に作り変える必要があるでしょう。

*4 例えば、走行中に輪ゴムを巻いて、スイッチ切替用エネルギーとして補助的に使うなど。


1.2 <ミドルコース『ロボアーム』>


 ミドルコース中、1・2番を争う傑作に位置付けたい、摩訶不思議なロボットが巡ってきました!


 動力はいつも通り、スイッチ付きの電池ボックスに繋いだモーター1個です。
手元で制御できることはせいぜい、スライドスイッチを反転させることくらいです。
なのに、スイッチを入れると、
1) 垂れ下がったハンド(アームの先端)が物を掴む
2) アームを水平まで持ち上げる
3) アーム全体が回転して反対側へ運搬する
の順に動作します。

所望の位置で止め、今度はスイッチを反転させると、先程の逆順ではなく、
4) 先ずはアームを降ろし
5) ハンドを開いて荷物を離し
6) アーム全体を元の側に回転して戻す
という一連のクレーン操作を熟練したかのようにこなすのです。

スイッチを入れている間、モーターはずっと一方向に回り続けているだけです。不思議ですね。

 これは言わば、バイクがアクセルをあおり過ぎてウイリーしてしまうのと同じ原理です。
バイクのエンジンが生み出した力は、バイク全体を加速させることと、
前輪を浮き上がらせることの2方向に使い道が残されているのです(*5)。
力の逃げ道といった方が感覚的には分かり易いでしょう。

通常は、ウイリーよりも小さい力で済む加速だけに使われますが、
「物体は素早く加速させようとするほど大きな力を要する」慣性の法則(*6)により、あまりに強大な力にとっては、ウイリーさせる方が“”なのですね。

 ロボットアームでは、慣性の法則は殆ど効いていませんので、負荷(アームに掛かる重力や、ジョイントの摩擦)の軽い順に可動範囲を使い果たし、力が次々と逃げ道を探すのです(*7)。


実際、3段階目のアーム回転動作が軽すぎて、2段階目の持ち上げ動作をスキップしたり、並行動作したりするなど、不安定になる場合がありましたが、
・ 土台と回転アームの間に輪ゴムを挟む
・ アーム自体を装飾して重くする
ことで摩擦を稼ぐと、スムーズに動作しました(*8)。


 最後の競技は、勿論、荷物搬送!
ロボットの片側エリアから、用意した荷物(タイヤSホイール等)を掴んでは、アームを180°回した先に降ろすことができた回数を競いました。

単純に思えたスイッチの反転操作に手間取る(必ずしも逆順に動作しないので、細かなやり直しが難しい)一面もあり、3分間で9回が優勝記録(小倉北教室)でした。


*5 接地状況により、ホイールスピン(タイヤを路面に擦り付ける)を3つ目に数えることもできます。

*6 高校物理で学ぶ、〔力=質量×加速度(F = m・a)〕です。

*7 アームの「上げ・下げ」に必要な力は重力が大きく関係しますが、ハンドの「掴む・離す」はほぼ同じ力で済みます。だから、「掴む→上げる」の順だし、「下げる→離す」の順になるのです。アームの旋回には、これらより大きな抵抗(摩擦力)が働けば、動きの順序に一貫性が生まれます。

*8 〔摩擦力=摩擦係数×荷重〕なので、輪ゴムと、重くすることの両方が効果的です。氷上では重たい力士でもツルツル滑ってしまいますよね。


1.3 <ロボプロコース『不思議アイテムII(3)』>


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

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

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

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

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

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


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


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


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

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

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


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

*10 音の伝わる速さとして、空気中で340m/秒、水中で1500m/秒を覚えておきましょう。

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


2. 今月の課題

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

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

 <ベーシックコース>
  ○ 4面図スケッチ(専用方眼紙)
  ○ 見取図スケッチ(テキスト最終ページ/難しければ写真の模写から)
  ○ 上記授業内容を分かるまで音読する
   (概ね3年生以上/低学年は補助 or クイズ出題形式で)

 <ミドルコース>
  ×(長尺につきスケッチ免除)
  ◎ 上記授業内容を分かるまで音読する

 <プロフェッサーコース>
  ◎ 上記授業内容を分かるまで音読する
  ○ 単一距離センサーロボット[avoider/nofall/tablerunner/walltracer]のいずれかを改良し、ダブル距離センサーロボットとして、より洗練された動きを設計・実装する

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


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


[東福間]第1・3土
   -  9:00~ 理科実験・中級
   - 10:30~ ロボ・ミドル
   - 13:30~ ロボ・ベーシック

 4~7月まで原則通りの予定です。


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

 4・6・7月は原則通り、5月は 5/15, 29 となります。


[中間]第2・4土
   - 13:30~ ロボ・ベーシック/プライマリ/4月スタートアップ

 ・4/ 9 第1回 3F会議室3
 ・4/23 第2回 2F会議室1

 4~7月まで原則通りの予定です。


[小倉北]第1・3日
   - 10:00~ ロボ・ベーシック
   - 13:00~ ロボ・ミドル
   - 15:00~ ロボ・ベーシック第2部(5月~)

 ・4/ 3 第1回
  10:00~ 5F小セミ(ベーシック/プライマリ)
  13:00~ 5F小セミ(ミドル/4月スタートアップ)

 ・4/17 第2回
  10:00~ 5F大セミ(ベーシック/プライマリ/4月スタートアップ)
  13:00~ 4F和室 (ミドル)

 プライマリは幼児向け6ヶ月コース、スタートアップは初月コースです。
 4・6・7月は原則通り、5月は 5/8, 22 となります。
 7月はムーブフェスタの為、6/2まで確定できません。代理施設での開催となる可能性があります。


4. ひと言

 3月はご転勤の時節でした。小倉北教室から4名もの生徒さんが転出されます。
寂しい限りですが、転属先の教室でも頑張って、いつかまた成長した姿を見せに帰ってきて欲しいと思います。


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