2017年10月31日火曜日

2017年10月報

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


1. 10月授業内容


1.0 <スタートアップ>



 割愛します。




  [三輪車ロボをモーター駆動化した独自改造の好例]


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



 割愛します。





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



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

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


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

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


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

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


 最後の競技は「一本!」勝負。早く竹刀を振り下ろし、相手に当てた方が勝ちです。
バンパーを長くして早めに相手を検知し、それ以上に竹刀を長くしてリーチを伸ばすことも一つの指針ですが(*2)、あまり欲張ると重くなって、動作にキレがなくなりましたね。

案外、ノーマル仕様の小柄なボディの方が、体格のいい先輩たちを打ち負かしていました。


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

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

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


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

*2 自分と相手のバンパーが当たるようだと、相手からも早く検知されるので、相手と高さを変えない限り、あまり有利とは言えません。

*3 モーター直結のギアが右タイヤを先に回していることが曲がる原因と分析する人もいましたが、そうではなく、左右のグリップ力のバランスを崩している面が影響していると考えられます。


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



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

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

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


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

まして、バッティングマシンのスイッチを手動でオンにする1日目のロボットでは、全くと言っていいほど玉に当たりません。


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

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

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

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



 さて、肝心のバッティング精度ですが、ピッチングが安定しない中、タイミングだけは再現性を出せるので、二者間の距離や投球角度(*3)を調整すれば、5回中1回くらいは当てられるようになりました。
ピッチングを安定化させた人なら、90%以上の確度で当たっていました。

こうして我々人間は、機械化の恩恵に与(あずか)るわけですね。


*1 その大きな理由は、ぐにゃぐにゃに曲がっていても構わない延長ケーブルを使って、瞬時に電気エネルギーを遠くへ輸送できるからです。
 自動車も、電気化するほどコントロール性に優れます。

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

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


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



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





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


 ついに、仕上げの3年目コースに入りました。

 いきなり1日目から、垂涎の的たるフルカラーLCD(液晶ディスプレイ)に触れます。

ドット数は160×128と、一昔前のガラケー画面並みですが、それでも、1・2年目でそれなりに遊べた8×8ドット赤色(1ビット単色)LEDマトリクスが320個も入るドット数で、さらに24ビットフルカラーですから、320×24=7680倍の情報量です(*1)。
本格的なゲームも作れる解像度ですから(*2)、CPUとメモリを相当に喰いそうですが、一段とレベルの高いCGプログラミングに応えてくれそうです。


 といっても、直線や四角形・円などを描画するのは、8×8マトリクス同様の関数が用意されていますから、考え方は同じです。
同じような使い方でもCGがキレイになり、さらにカラー指定関数や引数が増えて楽しくなっただけです。損はありませんね。

 2日目では、テキスト文字表示関数 TFT::text("文字列",x,y) を使って、画面上に任意のメッセージを書いてみました。色も大きさも簡単に変えられます。
やはり、アルファベット1文字か数字2桁がやっとの8×8マトリクスとは表現力が格段に違いますね。もう戻れません(*3)。





 決まったプログラム描画ばかりじゃつまらないので、「各種センサーからの入力情報を処理して表示に反映させよう!」という段取りも、もはや定番です。

タッチセンサータクトスイッチ等のデジタル入力なら digitalRead()可変抵抗ボリューム等のアナログ入力なら analogRead() で読み取れます。

超音波距離センサーなら、便利な関数ライブラリを利用しましょう(*4)。
テレビを録画したければ、お気に入りのレコーダーの説明書を読んで使い方が分かれば良いだけで、レコーダーの構造を解析する必要はないのと同じです。

 もう、ゲームが作りたくてウズウズし始めましたか? それを理解度のパラメータにしてください。


*1 背景色 TFT::background(B値,G値,R値) や線の色 TFT::stroke(B値,G値,R値) などの指定関数には、RGB各値を0~255(8ビット256通り)で指定して、24ビット1677万通りの色分けができますが、LCDの実際の能力は16ビット65,536色までのようです。

*2 Nintendoゲームボーイ 160×144ドット×2ビット(モノクロ4階調)~6ビット(56色) よりも豊かでしょう。
 ゲームボーイアドバンスで 240×160ドット×15ビット(32768色)、
 DSは上下画面とも256×192ドット×18ビット(26万色)、
 3DS/2DSは上(下)画面 400(320)×240ドット×24ビット(1677万色) と進化しています。

*3 人間とは、そういう生き物です。幸福は、ステップを踏んで徐々に味わうのがコツなのに、いきなり最先端のスマホや3Dゲームで遊ぶ幼子(おさなご)は不憫(ふびん)です。
 こうして、テクノロジーが進化し続けない限り、幸せが続かない人間生活が続くのですね…。

*4 従来、1・2年目では RPlib::ussRead() を使ってきましたが、今回は NewPing::ping_cm() を使っています。
 委細(いさい)の仕事をAさんに頼むかBさんに頼むかの違いで、使い易い方を選べば良いのです。


2. 今月の課題


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

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

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

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

 <アドバンスプログラミングコース>
  - 上記授業内容を精読する

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


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


◆八幡東11/4 → 11/11へシフトしています。
◆小倉北11/5はムーブ5F企画ルーム1・2です。
◆中 間11/11はハーモニーホール3F会議室4(和室)です。

◆中 間ミドル時間を11月~変更(15:15→15:30)させて頂きます。
◆東福間ミドル時間を12月~変更(10:30→15:30)に極力ご協力下さい。

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

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

[東福間]第1・3土原則
 (~2017年11月)
   - 10:30~ ミドル/アドプロ
   - 13:30~ ベーシック/プライマリ
  (- 15:30~ ミドル/アドプロ第2部)

 (2017年12月~)
   - 10:30~ アドプロ(/ミドル臨時)
   - 13:30~ ベーシック/プライマリ
   - 15:30~ ミドル(/アドプロ臨時)

 (2018年4月~予定)
   - 13:30~ ベーシック/プライマリ
   - 15:30~ ミドル
   - 17:30~ アドプロ

 ⇒ 11/4, 18,  12/2, 16,  1/6, 20


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

 ⇒ 11/12, 26,  12/10, 24,  1/14, 28


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

 ⇒11/11 第1回 3F会議室4(和室)
  11/25 第2回 3F会議室2
  12/9, 23,  1/13, 27


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

 ⇒11/ 5 第1回 5F企画1・2
  11/19 第2回 5F小セミ
  12/3, 17,  1/7, 21※

 ※1/21は『商工貿易会館(シティプラザ)』で開催します。


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

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

 ⇒ 11/11, 25,  12/9, 23,  1/13, 27


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

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

 ⇒ 11/11!※, 18,  12/2, 16,  1/6, 20

 ※11/4は施設使用不可により一週シフトします。


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

 ⇒ 11/12, 26,  12/10, 24,  1/14, 28


4. お知らせ

1) オリジナル電子工作 はんだ付け講座

 宿題ポイント交換用の景品として、電池チェッカー等の電子工作キットを支給して参りますが、興味津々な一方で、半田付け作業の不慣れがネックのようです。
 今回の講座は、本格的な電子工作には欠かせない半田付けの練習から、使えて楽しい電子機器の製作までを短時間で履修し、持ち帰り頂きます。
 必要物は全てキットに含まれますので、準備物はありません。
 電子工学の道に目覚める運命(!?)の生徒さんに強くお薦めします。

【対象】
 ロボット/プロ教室に通う生徒さん・兄弟姉妹 小3~高校生

【定員】
 6組×2=12名(ご家族同伴可)

【日時】下記いずれかの部(2時間)
 ・AMの部 11/23(木) 10:00~12:00
 ・PMの部 11/23(木) 14:00~16:00

【会場】
 北九州市立男女共同参画センター(ムーブ)4F 工芸室

【工作名】
 『明るさセンサー式LED常夜灯』

【内容】
 付属の半田ごてセットを使って、電子部品やICのはんだ付け作業を練習した後、実用的なLED常夜灯を製作して持ち帰ります。
  http://robocobo.sakura.ne.jp/blog/lab/lab0-1710.pdf

【参加料】
 5,500円(受講料3,500円+キット代2,000円)

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

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

【申込条件】
 - 講座指定の半田ごてセットを使用頂きます。お子様の占有物にしてあげて下さい。
  進行上、お手持ち品の持込みはご遠慮下さい。

 - 半田ごては熱器具です。扱いを誤ると火傷・火災の恐れがあります。
  持ち帰り頂きますので、ご家庭での取り扱いルールをお決め下さい。

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


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

  ◆プライマリ【6名平均 図面4.8】
   5点…筋田[東福間2], 河原[中間1], 渡邉[中間1], 長友[八幡東 年長], 林田[小倉南 年長]

  ◆ベーシック【28名平均 図面2.3+設問2.7=5.0】
   10点…なし
   9点…なし
   8点…宮尾[八幡東4], 森崎[八幡東2], 糸山[小倉北3]
   7点…川村[中間4], 荒木[小倉北3]

  ◆ミドル【15名平均 図面3.1+設問2.6=5.7】
   10点…吉良[小倉南6]
   9点…田中[東福間5], 橋本[小倉南3], 原[小倉南4]
   8点…なし


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