2020年6月30日火曜日

2020年6月報

1.6月授業内容
2.6月の課題
3.5月の解答
4.今後の授業スケジュール
5.お知らせ


1. 6月授業内容


1.0 <スタートアップ(全コース)>


 割愛します。


1.1 <プライマリーコース『チャリダー』>


 割愛します。

1.2 <ベーシックコース『ロボフィッシュ』>


 魚型ロボットです。
1日目で製作が完了し、持ち上げてスイッチを入れると、釣(つ)った魚のように尾びれを元気よく振(ふ)ります。
このロボットを床に置くと・・・前へ進みますね。当たり前でしょうか?
中には、後ろにさがるロボフィッシュもありますよ!

 試(ため)しに、タイヤSの上にある胸(むな)びれを取り外してみます。
すると、うまく進まなくなりました。
それはそうかもしれません、尾びれを左右に動かしているだけですから(*1)。

よくよく観察すると、尾びれを振る度(たび)に、左右の両輪がちょっと前に回転しては後ろにも回転して、その場で体をくねくね方向転換(ほうこうてんかん)させているだけのようです。

 秘密は、ただの飾(かざ)りに見えた胸びれにあったのですね。
この胸びれをタイヤの前方に当てると…、タイヤは前方向には軽く回転しますが、
逆方向には(胸びれのピニオンギヤとタイヤの横みぞが引っ掛かって)ロックが掛かり、後退(こうたい)を阻止(そし)することができます。

ラチェット機構といい、自転車のペダルが前方向にはしっかり漕(こ)ぐことができるものの、
走行中に漕ぐのを止めたり、逆方向に空回りさせたり(*2)することができるのも、この機構のおかげです。

 これで体をくねらせる度に左右のタイヤが少しずつ交互(こうご)に前進し、全体としてスイスイ泳ぐようになりました。
坂道だって、上りますよ!
モーターを逆回転させたって、変わりません(*3)。


なお、モーターの回転を尾びれの往復(おうふく)運動に変えるクランク(*4)という仕組みも大事なポイントですよ。

 2日目最後のゲームは、えさ取り競争!
カラフルなモールやクリップを小魚に見立て、散(ち)りばめます。
ロボフィッシュの口には磁石を貼(は)り付け、うまくえさの方向に泳がせて「ぱくっ!」
一定時間内に多く食べたロボットの勝ち。

みんな、スタートラインは守らないわ、フライングはするわ、手で押すわ、景品の駄菓子(だがし)を賭(か)けて燃えに燃えます。

誰です? えさを手づかみして魚の口に運んだのは?


*1 水中の魚やイルカはそれで周りの水を後方へ押しやって泳げるのですが。

*2 このとき「チチチ…」と音がしますね。ラチェットの作動音です。

*3 側面のロッド3アナの回転方向は逆になりますが、尾びれを左右に振る動きは同じだからです。
 代わりに、胸びれをタイヤの後方に当てると、どうしたって後退するようになります。

*4 実際に使用している部品は『クランク』ではなく『ロッド3アナ』ですが、クランクと同じ作用を働かせています。


1.3 <ミドルコース『ロボザウルス』>


 恐竜型2足歩行ロボットです。ミドルコース最大級の大きさです。
モーター1つで、両脚はもちろん、両手も振り、首も上下させる他、
台車のタイヤの回転を利用してしっぽまで振る凝(こ)った造りで、巨体と相(あい)まって圧巻(あっかん)です。

 両手を振る運動は、カム機構(*1)で実現しています。

赤いベロを出し入れするのに連動して首を上下させたり、しっぽを振ったりするのは、クランク機構によります。

肝心(かんじん)の2足歩行は、回転するクランク(*2)の端につないだ連接ロッド(7アナ)が脚ロッドを押し引きする“てこクランク機構”という仕組みで、両脚の前後および上下への運びを見事に実現しています。

右図に足先の動く軌跡(きせき)を載せました。つま先は白線、かかとは青線で示してあります。
一体化したパーツなのに、つま先は楕円形を描くのに対し、かかとは細い三日月形を描きます。
このように、つま先とかかとの動きが違うからこそ、地面をつま先で効果的に蹴ることができるわけです。

てこクランク機構は、先月の『ロボワン』しかり、ほとんどの動物ロボットの脚リンクに使われています。

 安定して片足を浮かせられるのは、接地した方の片足と、台車の左右両輪とで、“3点支持”が確保されているためであることも学習しました。




自動車やテーブル・椅子など、4点支持の製品が多いですが、実は、4脚より3脚の椅子の方がグラつかないです(*3)。
椅子(の座面)をグラつかないよう固定するということは、脚の先端を、床なり地面なり、同一平面内に置くということです。

数学的な表現になりますが、我々が住む3次元空間内で任意の3点を選ぶと、その3点を通る平面は一意に決まってしまいます。
3点を結ぶことで、初めて“三角形”という決まった平面が生まれます。
(ある1点や2点を通る平面なら、無限に存在しますよね)

ところが、4点以上を選ぶと、全ての点が同一平面内に存在するのは奇跡(きせき)と言えるようになります。
例えば、4点の場合、図に示す通り、異なる4面が存在し得るのです。
どの色の1面を選んでも、仲間外れの1点が出てしまいます。
これが椅子のグラつき(どれか1本だけ浮いた脚)になります。

もちろん、4脚ともピッタリ同じ長さに揃(そろ)えれば(奇跡?!)、平らな床の上では固定されますが、凸凹の地面に置くと、やっぱりグラグラですね。
だから、カメラの“三脚”なんです。

 さて、この恐竜で歩行レースするには・・・スピードが遅いですね。
よく見ると、後ろのタイヤが少し逆回転する瞬間があります。
ということは・・・? ラチェット機構が使えそうですね。

今月のベーシック『ロボフィッシュ』と同じように、タイヤSが前方向しか回らないようにしましょう。かなり推進効率が上がりますよ!


*1 回転体(Tジョイント)の外形に沿って他の部品(腕のTロッド)を押し動かす機械要素。

*2 実際に使用している部品は『クランク』ではなく『ロッド3アナ』ですが、クランクと同じ作用を働かせています。

*3 4点支持の製品が多いのは、倒れにくく安全だからです。

*4 動かすパーツが多かったり、重かったりして、モーターの負担(ふたん)が大きいこと。


1.4 <アドバンスプログラミングコース『ホイールローダー/フォークリフト(1)』>


 ロボットレース大会向けマシン注力の為、割愛します。

 これら建機ロボットだけでなく、多様な方式でミッションを達成するマシンが生まれています…





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


 外付けの電子回路をプログラミングで操る春タームの3ヶ月目です。

 これまでの学習で、ちょっとした電子機器を製作するのに必要な要素技術は揃(そろ)ってきました。あとはアイデア次第です。
世の中の斬新な製品も、殆どは基本機能の組合せであり、その選択や按配(あんばい)こそが“応用(アプリケーション)”として大事なのです(*1)。

入力デバイスとして、
 a) タッチセンサー
 b) 超音波センサー
 c) カラーセンサー
 d) ボリュームセンサー(可変抵抗)
 e) CdSセンサー(光依存性可変抵抗)
 f) 姿勢センサー
 g) タクトスイッチ
 h) 無線コントローラー(ゲームパッド)

出力デバイスとして、
 1) モーター
 2) スピーカー
 3) 単色LED/フルカラーLED
 4) 8x8ドットマトリクスLED
 5) 7セグメントLED
 6) 無線コントローラーのバイブレーター

が登場し、プログラミングで扱ってきました。
これら入力‐出力の組合せに、プログラムの数を掛け合わせた分だけ、アイデアが生まれます。

例えば、今タームだけでも、
a-5) カウンター(野鳥の会・交通量調査で使われる数取器)
b-3) 障害物探知ソナー(距離をLED点灯数で表現)
b-5) 来店カウンター(客入りを数える)
b-5) 自動計測ストップウォッチ
c-2) シンセサイザー?(色を見て音で表現)(*2)
d-3) LED調光器
d-5) デジタル電圧計
e-2) シンセサイザー(周囲の明るさに応じて音の高さが変わる)
e-3) 照度計(明るさメーター)
g-5) スロットマシン(ゲーム)

のようなアプリケーションに触れました。


 つまり、ボタンを押して決まった光や音を出すだけでなく、数値(デジタル/アナログ)で入力できる情報を1~2行の計算式で変換して、別種の物理量をもった現象として出力できるのです。

これができるのは、人間がやりたいことを先ず言葉で表現し、手順を論理的に組み立て、プログラミング言語に書き下す能力と環境が揃っているからです。

 もちろん、タッチセンサーも、タクトスイッチも、超音波センサー、ボリューム、光センサー、LED、7セグ、スピーカーに、モーターも繋いで高機能なロボットを製作することだってできます。

ただ、マイコンの手足(入出力ピン)の数という“物理的限界”がありますし、アナログ入出力が可能なピン数にも限りがありますから(*3)、そのような制約下で如何にうまく機能を実現させるかも、設計の範疇(はんちゅう)です。

扱うマイコンや開発環境によって違いがありますので、一般的には、仕様書を読み解きながら、必要なデバイスとピン接続を選定し、プログラミングで機能を統合させることもエンジニアの営みです。
とても総合力が強化される(頭が良くなる)場面ですので、自らの設計で、電子機器やロボットの製作を早めに経験して、趣味にして欲しいと思います(*4)。

 ここで、カウンター(計数)プログラムのテクニックをおさらいしておきます。
b-5) 来店カウンターにおいて、高速に繰り返すループ関数(メインルーチン)の中で「検出した距離が短かったら、カウントアップ」という論理だけをコーディングすると、客がセンサーの近くにいる間めまぐるしくカウントアップしてしまいます。
短い距離を検出してカウントアップしたら長い距離を検出するまで何もしないで待つ」ことで、一人ずつ数えられるようになりますね。

そのために、while文を使います。
while文は、繰返し機能をもったif文のごとく、条件式が成立する間だけ中身を繰り返します
繰返し命令文にはfor文もありましたが、for文は、決まった回数だけ繰り返す使い方が主であるのに対し、while文は、繰返し回数が不定であるような条件下でよく使われます(*5)。

 なお、a-5) 手押しカウンターの場合も、loop(){ } の中で、

if( digitalRead(D2) == HIGH ) {
  // D2接続スイッチが押されたら
  count++;  // カウントアップ
}

と書くと、スイッチを押している間中カウントアップしてしまいますが、

#include <Button.h>
  // スイッチ(Button)ライブラリ読込み

Button SW = Button(D2, HIGH);
  // D2接続スイッチにSWと命名するおまじない

SW.listen();
          // 押下状態を問合せ

if(
SW.onPress() ) {
  // もし押されてたら
  count++;            // カウントアップ
}

のように onPress() を使えば、一度スイッチを離さないと次のカウントアップがされなくなりますので、便利です(*6)。

このような誰かが用意してくれた便利な関数は、“ライブラリ”という仕組みから呼び出し、準備するためのおまじないを唱えて、大いに利用させてもらいましょう。

 次月からの夏タームは、お待ちかね、サーボモーター式アームロボットの製作です。


*1 電化製品のことを英語で electrical appliances(電気的な応用物)というくらいです。

*2 色相(色味情報)だけを抽出し、色相環でいう角度 0~359°を音の周波数として再生しました。

*3 アナログ入力にはA/D変換器、アナログ出力にはPWM波形生成器という特別な内部回路が必要ですので、全てのピンに機能を持たせることはしません。

*4 仕事や趣味で電子機器やロボットを扱うと、理科(電子回路)、数学、国語・英語(仕様書・説明書)、プログラミング的思考力などが複合して問われます。
そして、技術の日進月歩により、自然に毎日が勉強です。楽しくなりますよ!

*5 while(条件式) は for( ; 条件式; ) と等価ですので、for文の方が高機能であり、while文+α(初期化+後処理) の機能をもちます。

*6 代わりに isPressed() を使えば、digitalRead(D2)==HIGH と同じように、スイッチを押している間中カウントアップすることもできます。


2. 6月の課題


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

 <プライマリーコース>
  - オリジナル図形プリント
  http://robocobo.sakura.ne.jp/blog/HW/RobotP2006-Q.pdf

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

 <ミドルコース>
  - 上記授業内容を精読する
  - オリジナル課題プリント(3面図+設問)
  http://robocobo.sakura.ne.jp/blog/HW/RobotM2006-Q.pdf

 <アドバンスコース>
 ⇒ロボットレース大会向けマシン注力の為、割愛します

 <プロ2年目コース>
  - 上記授業内容を精読する(該当テキストページを見ながら)
  - ロボットレース大会向け計測機器A. B.の開発(仕様設計~)に着手する

 【A. 電池チェッカー】
  電池1本の電圧値とパワーメーター(5~10段階)を表示する
  乾電池/充電池、1/4/5本モード切替、負荷抵抗は10Ω程度

 【B. 超音波スポーツタイマー】
  7秒前よりカウントダウン表示お&音を発し、スタート音と同時に内部タイマー起動
  マシンのゴールライン通過を超音波センサーで検知し、1/100秒単位で表示する


3. 5月の解答


 <プライマリーコース>
  http://robocobo.sakura.ne.jp/blog/HW/RobotP2005-A.pdf
 <ベーシックコース>
  http://robocobo.sakura.ne.jp/blog/HW/RobotB2005-A.pdf
 <ミドルコース>
  http://robocobo.sakura.ne.jp/blog/HW/RobotM2005-A.pdf
 <アドバンスコース>
  http://robocobo.sakura.ne.jp/blog/HW/RobotA2004-A.pdf


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


◆8月第2回目は一週遅れます

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

[東福間]第1・3土原則<学習ルームでこぼこ>
   - 13:30~ ベーシック/プライマリ
   - 15:30~ ミドル
   - 17:30~ アドバンス

 ⇒ 7/4, 18,  8/1, 22※,  9/5, 19

 ※一週遅れます


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

 ⇒7/11 第1回 3F会議室2
  7/25 第2回 3F会議室2
  8/8, 29※,  9/12, 26

 ※一週遅れます


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

 ⇒7/ 5 第1回 4F和室・工芸室
  7/19 第2回 4F和室・工芸室
  8/2, 23※,  9/6, 20

 ※一週遅れます


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

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

 ⇒ 7/4, 18,  8/1, 22※,  9/5, 19

 ※一週遅れます


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

 ⇒ 7/12, 26,  8/9, 30※,  9/13, 27

 ※一週遅れます


5. お知らせ

1) 今夏の九州地区大会・全国大会[再掲]
 残念ながら、下記の通り、大幅に縮小されることになりました。

 ・地区大会(テクニカルコンテスト・アイデア発表会)は中止
 ・全国大会(アイデアコンテスト)は9/6(日)オンライン開催(予定)

 詳細は決まり次第、お知らせします。(7月授業にてチラシ配布予定)


2) 5教室合同ロボットレース大会7/24参戦者 募集中

 現在56名エントリー! あと3名で〆切ります!

 練習会が満席となり、ご不便・ご不安をお掛けしております。
7/2(木)に定員を増やしますので「キャンセル待ち」予約下さい
(ご希望に添えない場合はご容赦下さい)

 練習会は7/21 23:59までキャンセル無料(7/22 0:00確定)ですので、不要な予約が発生しましたら早めにキャンセルお願いいたします


 【日時】
 ‐7/23(木・祝) 予行練習会(全5コマ・任意参加)
 ‐7/24(金・祝) 予行練習会(AM1コマ・任意参加)
 ‐7/24(金・祝) 大会本番 12:30-16:30
 【会場】
  ‐ユメニティのおがた 直方市山部364-4(JR直方駅すぐ)
  ‐7/23(木・祝) リハーサル室
  ‐7/24(金・祝) 小ホール
【練習会スケジュール】
  ‐7/23(木・祝) 午前の部  9:30-11:30
  ‐7/23(木・祝) 昼 の部 12:00-14:00
  ‐7/23(木・祝) 午後の部 14:30-16:30
  ‐7/23(木・祝) 夕 の部 17:00-19:00
  ‐7/23(木・祝) 夜 の部 19:30-21:30
  ‐7/24(金・祝) 当日の部  9:30-11:30
 【競技】
  ‐プライマリ: 4m障害物コース走行(時間計測)
  http://robocobo.sakura.ne.jp/blog/contest/race2020-pri.pdf

  ‐ベーシック: ↑+パイロット取込み
  http://robocobo.sakura.ne.jp/blog/contest/race2020-bas.pdf

  ‐ミドル  : ↑+自動後退してスタートラインに戻る
  http://robocobo.sakura.ne.jp/blog/contest/race2020-mid.pdf

  ‐アドバンス: 6・7月『ロボット建機』改造で“川渡り”ミッション達成
  http://robocobo.sakura.ne.jp/blog/contest/race2020-adv.pdf

  ‐プロ2年目: 計測機器の開発&提供(無料・無償スタッフ)

 【対象(目安)】
  ‐プライマリ: 4月時点プライマリ生、~小3ベーシック生
  ‐ベーシック: 4月時点ベーシック生、~小4ミドル生
  ‐ミドル  : 4月時点ミドル生、~小5アドバンス生
  ‐アドバンス: 6・7月『ロボット建機』履修生(5月までに進級SU済)
  ‐プロ1・2: 6月在籍生
 【費用】
  ‐7月授業料 : 通常分(修了生の方は9,900円/月)
  ‐延長指導料 : 550円/回(可能な授業日を都度ご案内)
  ‐予行練習会 : 7/23…1コマ2,200円※ 7/24…3,300円※
  ‐大会エントリ: 6,600円※

  ※兄弟2人目は1,100円引き

 【表彰】
  ‐各コース1~3位表彰の他、景品授与
 【申込-練習会
  ‐定員・直前まで受付
  ‐7/2(木)に定員を増やしますので「キャンセル待ち」予約下さい
  ‐7/22(水) 0:00以降キャンセル不可(100%頂戴します)
 【申込-大会
  ‐6/22(月)~定員(60名)まで先着順
  ‐キャンセル料は6/22~30%、7/1~50%、7/15~80%
 【申込方法】
  ‐本メール記載の条件に同意の上、全て下記予約サイトより登録下さい

  使いにくいですが…「すべてのメニュー」のまま7/23-24の週までめくって下さい
  《予約サイト》 https://airrsv.net/robocobo/calendar

 【徴収方法】
  9月分月謝に加算して頂戴します
 【中止・変更時】
  ‐情勢により開催できない場合は、各教室での成績を集計し、オンライン表彰式を予定します
  (この場合、大会エントリ料を3,300円、割引・キャンセル0円とします)
  ‐中止した練習会または大会費用は徴収しませんが、授業料・指導料は返金できません
  ‐日程・会場・料金が変更になる場合はご予約を返上し、改めて募集します


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

 ◆プライマリ【7名平均 図形4.6】
   5点…早野[東福間3], 早野[東福間1], 藤原[八幡東2], 諭[小倉北2], 土井[小倉南2]

 ◆ベーシック【16名平均 図面2.8+設問2.4=5.2】
  10点…なし
   9点…小牧[小倉南4]
   8点…武田[八幡東4]
   7点…柴田[小倉北3], 安倍[小倉南5], 高木[小倉南5]

 ◆ミドル【9名平均 図面3.8+設問2.0=5.8】
  10点…中村[東福間5]
   9点…なし
   8点…中村[小倉北6]
   7点…橋本[小倉南3]

 ◆アドバンス【9名平均 図面6.7+設問3.6=10.3】
  16点…山本[中間8], 橋本[小倉南6]
  13点…桑村[中間6], 荒木[小倉北6]


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