2023年4月28日金曜日

2023年4月報

1.4月授業まとめ
2.4月の課題
3.3月の解答
4.今後の授業スケジュール
5.お知らせ


1. 4月授業まとめ


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


 割愛します。


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


 割愛します。

1.2 <プライマリーコース『がたごとレスキューたい』>


 割愛します。

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


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

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

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

動作タイミングとしては、背後(はいご)に振り構えた竹刀を振り下ろさないよう固定するロックが、相手にぶつかった衝撃(しょうげき)を検知して外れるようロック部品と一体化してスライドするバンパーを前部に取り付けました。

衝突して押しこまれるバンパーを利用する点が、昨年9月の『う王さ王』と似ていますね。

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

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

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

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

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

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

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

剣道家には見えなくなりますが、直進させるのに最も確実なのは、3輪や4輪車にするアイデアでした。


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

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

*3 モーター直結のギアが右タイヤを先に回していることが曲がる原因と分析する人がたまにいて、短絡的な考えの下であることから、そうではないと述べてきましたが、
瞬間的な加速時にはシャフトが僅(わず)かに捻(ねじ)れるはずであり、その影響もあり得そうです。

*4 タイヤLを裏返して嵌(は)め、さらに中央の溝に輪ゴムを巻くと、グリップ力が上がってスリップしにくくなります。


1.4 <ミドルコース『ロボキャッチ』>


 第9回アイデアコンテスト全国大会(2019年)MVP賞作品(当時小3)がベースの、2年前に登場したクレーンゲーム型ロボットです。
UFOキャッチャーを彷彿(ほうふつ)とさせる見た目からもワクワクするテーマですね。
ミドルコースの傑作(けっさく)選に加えましょう。

 しかし、このゲームには、ハンドを閉じて景品をキャッチし、引きずらないように持ち上げ、目標位置まで水平移動する3つの動作が必要です。

その後、景品を下ろし、ハンドを開いて放し、次の景品に向かって戻る動作も必要です。

これをミドルコースで、モーター1個で、掴(つか)んだり、持ち上げたり、移動したり、どうやって実現できたのでしょうか?

 これには、2022年9月の『ロボアーム』と同じ動作原理が使われています。

一言で言えば「差動装置」であり、特にギアを使った装置をディファレンシャル・ギア(differential gear=差動歯車)と呼びます。
ディファレンシャル・ギアとして最も有名なのが自動車の駆動軸に用いられるもので、通称「デフ」と呼ばれます(*1)。

これは、左右両輪の駆動軸(一般車は前輪、高級車・スポーツカーは後輪、一部は前後輪とも)の中央付近に設けられ、
カーブを曲がる時などに左右の回転数の差を許容しながらも、1つしかないエンジン/モーターの回転を絶えず分配するために使われています。

 『ロボキャッチ』では正に、このデフを模した機構を腐心(ふしん)して作り上げており、先生たちをも感嘆させました。

テキストp.7で、マイタギア4枚を対向させて組み上げたギアボックス“自体”を、裏返したタイヤLゴムで包んで回せるようにしています。

このような構造にすると、左右2本の出力軸(シャフト4ポチ)が無負荷(空回り)または等しい負荷(自動車の直進)の時には、中心のギアボックスと一体的に回るだけで、単に1本のシャフトで左右の回転軸を直結した(デフロック)状態と変わりませんが、
ひとたび負荷に差が生じる(片側の回転が重い/カーブを曲がる)と、左右の回転数が異なってきます。

このとき、回転数の比〔左軸:デフ:右軸〕は、デフロック状態を 100:100:100 とすると、
50:100:150 になったり、0:100:200 になったり、-100:50:200 になったりと、〔左軸 + 右軸 = デフ×2〕の関係になります。

つまり、エンジン/モーターでデフを定速回転させている時、左軸が +20 だけ変化すれば、右軸が -20 だけ変化し、その結果が逆回転になってもお構いなしです。
「差動装置」と呼ばれる所以(ゆえん)です。

なぜそうなるかは、デフをゆっくり手で回して観察すれば分かるでしょう。

 パーツによっては、マイタギア4枚で組むと回転が固くなる場合がありますので、
写真のように3枚でコの字に組み、シャフトペグ2本を対向させる代わりにシャフト4ポチを通すとスムーズになります。

パーツ形状の限界から、デフへの入力として自動車同様のシャフトドライブは採用できなかったため、輪ゴムによるベルトドライブを編み出しています。

タイヤLとSのゴムを裏返してできる溝に輪ゴムを掛けて伝達するあたり、小型車のトランスミッション(CVT=無段変速機)に多く採用されている金属ベルトドライブに似ており、これも自動車っぽいマニアックな機構です。

 では、なぜ、『ロボキャッチ』に差動装置が必要だったのでしょうか?

それは、モーターが回転し続けたままアーム/ハンド操作水平移動動力を振り分けるためです。
モーターにとっては「回せるならどっちが回っても構わない」リンク構造になっています。

力学的には、中心のマイタギアを介した「作用・反作用の法則」により、どちらにも同じ回転力(トルク)で出力されますが、その結果として、“楽に”回せる方が(多く)回ります(*2)。

 アームの上げ下げハンドの開閉もまた、マイタギア同士による差動装置になっています。
つまり、マイタギア同士が噛み合って回転を伝える(ハンドを開閉する)のか、
または、もう互いに回せなくなったマイタギア同士が一体となって一緒くたに回転する(アームを上げ下げする)のか、
楽な方の動きが選択されます。

かくして、スイッチを入れると、
1) ハンドが物を掴(つか)む
2) アームを少し持ち上げる
3) アーム全体が移動する
の順に作動します。

所望の位置で止め、今度はスイッチを反転させると、先程の逆順ではなく
4) 先ずはアームを垂(た)らし
5) ハンドを開いて荷物を離し
6) アーム全体を逆方向へ移動する
という一連のクレーン操作を滞(とどこお)りなくこなすのです。

スイッチを入れている間、モーターはずっと一方向に回り続けているだけです。
動作が切り替わるのは、動ける限界の位置に達した(ハンドを閉じ終わる)時や、動きが重くなった(アームを持ち上げて重力がきつい)時です。

マイコンも使わず、機械だけでこんなことができるのですね。

 プログラミングにより、スタートして強制的に移動するクレーンを声に反応させて停止した後、モーターを逆転することで景品を掴み、戻って来させるUFOキャッチャーさながらのゲーム性もナイスです。


*1 ウィキペディア「差動装置」
 https://ja.wikipedia.org/wiki/%E5%B7%AE%E5%8B%95%E8%A3%85%E7%BD%AE

*2 自動車のデフも同じで、これが裏目に出る場合があります。
 その典型が雪道や泥沼での“スタック”で、一方のタイヤが滑りやすい路面で空転し始めると、(その方が楽なので)反対側のタイヤに駆動力が伝わらなくなり、その場から抜け出せなくなります。
 この欠点を回避するため、「デフロック」や「リミテッド・スリップ・デフ=LSD」と呼ばれる追加機構が装備された車両もあります。


1.5 <アドバンスコース『九九ボックス①』>


 電卓も100円ショップで買えて、計算マシンなんて大した価値が無いように思える現代ですが、
コンピュータが世に出回る前、大まじめに複雑な機械式計算機が開発され、高価で販売されていた時代が確かにありました。

『九九ボックス』の計算方式は、回転による足し算がベースという点で、
手回し計算機(日本では「タイガー計算機」が有名)および、
それをモーター駆動化した「モンロー(電動)計算機」を想起させます。

ここは、文章よりも、興味深いYouTube動画で歴史遺産を学びましょう。


■計算機の歴史
【題名】サイエンス・ピックアップ(8) 計算機の歴史から技術の進歩をたどる~東京理科大学近代科学資料館~
【動画】https://www.youtube.com/watch?v=mP8P2wKCujM
【内容】
 東京理科大学にある近代資料館の紹介動画です。
 ここには、人類が計算を工夫して行うために作ってきた道具が展示してあります。
 数を数えるための石ころに始まり、そろばん、計算尺、タイガー計算機、初期の電卓、その他大型計算機などが紹介してあります。
 (手回し計算の体験ができますので、一度訪れてみたいものです)

■手回し計算器の実演
【題名】タイガー機械式計算器
【動画】https://www.youtube.com/watch?v=2aHdInr9_J8
【内容】
 タイガー計算器の実演動画です。
 ダイアルをセットして右側のハンドルを回すと表示部に答えが現れます。 
 ハンドルを回して、ガリガリという動作音と共に答えが表示される様子は、現代の計算器にはない趣(おもむき)です。

■電動計算機の実演
【題名】モンロー計算機 完全マスター Monroe calculator 6N-212
【動画】https://www.youtube.com/watch?v=8WJk8rQse-I
【内容】
 モーターにより全自動化したモンロー計算機の実演動画です。
 数値入力はボタン式になっており、操作性や計算速度が向上しています。
 モータにより各部が動く様子は見ていて飽きません。
 このように複雑な計算を機械部品のみで実現できたことに驚きます。


■タイガー計算機についての詳しい解説動画

【題名】学芸員の展示場ガイド「計算機 Part 3」@大阪市立科学館
【動画】https://www.youtube.com/watch?v=nGAYWAm6QB0
【内容】タイガー計算機の計算方法

【題名】Nippon Calculator HL 21
【動画】https://www.youtube.com/watch?v=A6l53sQ50f0
【内容】機械式計算機の内部が動く様子


■いろいろな計算機器

【題名】学芸員の展示場ガイド「計算機 Part 1」@大阪市立科学館
【動画】https://www.youtube.com/watch?v=wrRJO0BRzfU
【内容】ダイヤル式加減算器とキー式1桁加算器

【題名】学芸員の展示場ガイド「計算機 Part 2」@大阪市立科学館
【動画】https://www.youtube.com/watch?v=at9KqMInPZ8
【内容】スライド式加減算器

【題名】学芸員の展示場ガイド「計算機 Part 4」@大阪市立科学館
【動画】https://www.youtube.com/watch?v=O10iuSTlODs
【内容】キーボード式計算器


1.6 <プロ1年目コース『オムニホイールロボット①』>


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

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

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

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

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

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

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


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

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


1.7 <プロ2年目コース『不思議アイテムII①』>


 春の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階調)を生成しています。


1.8 <プロ3年目コース『不思議アイテムIII-1①』>


 春タームは、赤外線で遊びます。

 赤外線(Infrared Ray, IR)とは何でしょうか。
(人間の)目に見えない光の一つ(波長領域)であって、「目に見える可視光線の中で波長が最も長い赤色光よりもさらに長いために見えない、限られた波長領域の(赤から少し外れた)光」と言えます。

可視光線の波長が約400nm~800nmの範囲であるのに対し、赤外線は800nm~1,000,000nm(1mm)と長く広範囲の波長領域を指し(*1)、波長が長くなるにつれ、近赤外線・中赤外線・遠赤外線と分類されます。

このうち、赤色の可視光線に近い特性をもつ近赤外線は、家電のリモコンや赤外線カメラ、携帯電話間の赤外線通信(もう時代遅れ?)に使われています(*2)。

 さて、市場には、あらゆるリモコンの信号を読み取り、“真似”できるという「学習リモコン」なるものが存在しますね。
佐藤が初めて目にした時は、リモコンの通信方式も知らずに、凄いモノが作れるもんだと感嘆しましたが、
下記の条件のお陰で、Arduino環境でもライブラリが揃っているように、(マイコンがあれば)比較的容易に作成できます。

1) 波長950nm近傍の近赤外線を使う
2) 周波数38kHz前後の明滅パルスを搬送波として使う(*3)
3) 単位時間500μs前後のパルス位置変調(Pulse Position Modulation, PPM)方式で符号化(0/1表現)する
4) 一方的に送り付ける用途(双方向通信ではなく、届いたかどうかは無関心)
5) 主に使用されている送信フォーマットは数種類しかない

1)~3)の共通性によって、単位符号(0/1)が読み取れますので、5)のフォーマットが何でも、プログラム次第で解釈できます。

事実、携帯電話やプリンタ間の写真転送などで使われる双方向のIrDA通信規格とは異なり、赤外線リモコンの通信プロトコル(データフォーマット)には明確な標準規格が無く、各社各様です。

但し、主に使用されているのは下記3方式のようで、SONYフォーマットを除き、1フレーム(1回の送信データ列)当たり、カスタム(メーカー識別)コード16bitデータ(コマンド)コード16bit32bit前後で構成され、約100ms毎に(ボタンが押されている間)繰り返し送信するという類似性があります。

・NECフォーマット     … 主にSONY製以外のAV機器
・家製協(AEHA)フォーマット … 主に一般(白物)家電
・SONYフォーマット     … SONY製品のみ

 このような背景により、マイコンに赤外線LED赤外線受光素子を繋ぐだけで、家電リモコンの信号をプログラム[IRrecvDump]で“傍受”し、プログラム[IRJackEx]で“真似”したり、別のコマンドデータに置き換えて“電波ジャック”したりできるようになります。

実際、扇風機や照明器具等の一般家電では、ブレッドボード上に組んだタクトスイッチをリモコンのボタン代わりにして操作することができました。

複数コードのシーケンス(序列)を認識して作動する家電や、テレビ等の高機能AV機器では(?)成功率が低かったようです。
ライブラリが対応していないだけで、プロトコルや適正タイミングさえ明確に分かれば、Arduinoで再現できるかもしれません。

 また、リモコンのボタン毎の信号を区別できるということは、専用品を作らなくても、付属の汎用リモコンや適当な家電リモコンで、オムニホイール操縦プログラム[IRrobot]のようにロボットを制御(前進・後退・旋回コマンド等)できるということです。

あるいは、プログラム[IRText]のように、文字コードをデータコードに埋め込んで送信し、受信側で取り出して8×8マトリクスLEDに表示することにより、メッセージ伝送もできました。

文字コードを暗号化して、第三者に傍受されても解読不能にすることもできますよ!

 赤外線通信を使って、他にどんなアプリケーション(応用)が考えられるのか、次月も探求して参りましょう。


【出展・参考文献】
▶赤外線リモコンの通信フォーマット
 http://elm-chan.org/docs/ir_format.html
▶赤外線リモコンのフォーマット
 http://www.asahi-net.or.jp/~gt3n-tnk/IR_TX1.html
▶リモコン(ウィキペディア)
 https://ja.wikipedia.org/wiki/%E3%83%AA%E3%83%A2%E3%82%B3%E3%83%B3


*1 広範囲と言っても、0.01nm以下から100,000,000,000,000nm(百km)以上の波長まで連続的に存在する電磁波のうちでは、ごく狭い帯域の(不可視)光線に過ぎません。

*2 光のように真っ直ぐしか飛ばず、電波のようには拡がりませんので、一所懸命リモコンをテレビへ向けなければなりませんね。
 電波式リモコン(SONYおき楽リモコン等)の使い勝手を知ると戻れませんが、赤外線式の方が低コストなのです。

*3 この搬送波1パルスの有無がデータ符号1bit(0/1)を表すわけではありません。
 赤外線の物理的な放射タイミングがこの周期(1/38kHz≒26μs)毎に発生し、実際の放射パルス(の複数個の連続)の有無(の組合せ)によって、1bit(0/1)を表します。
 つまり、赤外線を(物理的な意味で)放射している期間は38kHzで点滅しおり、搬送波を使わず連続点灯させる場合よりも少ない電力で高いピーク輝度を出力できます。
 また、一般に、信号を搬送波に乗せる(搬送波を信号で変調する)方式では、特定の周波数成分だけを拾うフィルタ回路を経由して受信(またはプログラムで信号処理)することにより、混線回避やノイズに強い通信ができるようになります。


2. 4月の課題


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

 <プレプライマリーコース> (プライマリーではありません)
  - オリジナル図形プリント
  http://robocobo.sakura.ne.jp/blog/HW/RobotPP2304-Q.pdf

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

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

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

 <アドバンスコース>
  - 授業まとめを精読する
  - オリジナル課題プリント(見取図+設問)
  http://robocobo.sakura.ne.jp/blog/HW/RobotA2304-Q.pdf (来月まで分)

 <プロ1年目コース>
  - 授業まとめを精読する(該当テキストページを見ながら)

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

  《ハイレベル挑戦》タクトSW4~7個で8音以上の電子ピアノを設計・実装する
  【ヒント】片手5本の指を使った2進法でいくつまで数えられたかな?
       必ずしも2進法に則る必要はない


  - 音のみで出題し、対応するSW4~7個(鍵盤)で回答チェックする『音当てゲーム機』に改造する

  《ハイレベル挑戦》LEDも光らせ、直ぐに対応するSWを押さないと終了する『モグラ叩きゲーム機』を製作する
  【ヒント】random(5, 12) で 5~11の乱数を出せる
       7ピンを共用(入出力切替)すればLED7個+SW7個も可能であるが、回路とプログラミングが難しいので、LED出力4ピン+SW入力4ピンで考える


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


3. 3月の解答


 <プレプライマリーコース>
  http://robocobo.sakura.ne.jp/blog/HW/RobotPP2303-A.pdf
 <プライマリーコース>
  http://robocobo.sakura.ne.jp/blog/HW/RobotP2303-A.pdf
 <ベーシックコース>
  http://robocobo.sakura.ne.jp/blog/HW/RobotB2303-A.pdf
 <ミドルコース>
  http://robocobo.sakura.ne.jp/blog/HW/RobotM2303-A.pdf
 <アドバンスコース>
  http://robocobo.sakura.ne.jp/blog/HW/RobotA2302-A.pdf


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


中間5月は『中間市生涯学習センター』で開催します。(プロ2・3年目は14:30~
◆日曜日の教室(東福間プロ・小倉北・南)8月第1回目を一週ずつ前シフト(盆休み)します。

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

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

 ⇒ 5/6, 20,  6/3, 17,  7/1, 15,  8/5, 19


[東福間プロ]第2・4日原則<学習ルームでこぼこ>
   - 10:00~ プロ1年目《休止》
   - 13:00~ プロ2年目
   - 16:00~ プロ3年目《休止》

 ⇒ 5/14, 28,  6/11, 25,  7/9, 23,  8/6※, 8/27

 ※8/13→8/6シフトします

[中間]第2・4土原則<なかまハーモニーホール>
   - 13:30~ ベーシック/プライマリ
   - 14:30~ プロ2・3年目《5月特例》
   - 15:30~ ミドル
   - 17:30~ アドバンス/プロ1年目
   - 19:00~ プロ2・3年目《5月を除く》

 ⇒5/13※第1回 中間市生涯学習センター2F第4研修室
  5/27※第2回 中間市生涯学習センター1F第1研修室
  6/10, 24,  7/8, 22,  8/12, 26

 ※5/13, 27はハーモニーホール利用不可の為、代替施設で開催します
  プロ2・3年目は14:30~17:00に前シフトします



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

   - 12:30~ プロ1年目
   - 15:00~ プロ2・3年目

 ⇒5/ 7 第1回 5F小セミナー
  5/21 第2回 4F和室・工芸室
  6/4, 18,  7/2, 16,  7/30※, 8/20

 ※8/6→7/30シフトします

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

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

 ⇒ 5/6, 20,  6/3, 17,  7/1, 15,  8/5, 19


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

 ⇒ 5/14, 28,  6/11, 25,  7/9, 23,  8/6※, 8/27

 ※8/13→8/6シフトします


5. お知らせ


1) 第5回ロボプロ全国大会6/11(日) エントリー開始

 2021/7/11(日)以来2年ぶりに、下記3部門で開催されます。


 ■タイムアタックレース部門
 ■テーマパフォーマンス部門

  ①テーマ部門: 今テーマ「自動走行」に沿って制作
  ②フリー部門: 自由にテーマを考え制作

 各自エントリーですが、応募予定者は佐藤まで一報下さい。

【日程】
 ▶ 4/19(水)~5/16(火) エントリー
 ▶ 5/19(金) 予選通過発表
 ▶ 6/11(日) 本選

【開催要項】
 https://kids.athuman.com/robopro/event/convention/2023/pdf/5th_robopro_convention.pdf

【大会HP】
 https://kids.athuman.com/robopro/event/convention/2023/

【過去の大会】
 https://kids.athuman.com/robopro/event/


2) 第13回ロボット教室 全国大会・地区イベント日程[続報]

 昨年に引き続き、2023年も全国大会・スペシャル地区イベントとして開催が決定しました。
 大会特設サイトがオープンしましたので、ご覧下さい。
 https://kids.athuman.com/robo/event/convention/2023/

【開催日程】
 ◆九州地区 8/ 2(水) 福岡市科学館 サイエンスホール
 ◆全国大会 8/26(土) 東京大学 安田講堂(本郷キャンパス内)

【コンテスト内容】
 ◆スペシャル地区イベント
  ①アイデア発表会(全コース)
  ②改造レース(ベーシック/ミドルコース)
  ③オンライン参加企画も実施予定!(全コース)
 ◆全国大会
  ①アイデアコンテスト(全コース)
  ②テクニカルコンテスト(アドバンスコース)

【告知・申込】
 ▶ 4月下旬 大会・地区イベントHPオープン
 ▶ 5月上旬 募集要項公開予定
 ▶ 5/22(月)12:00~6/27(火)17:00 エントリー、観覧申込受付

【過去の大会】
 https://kids.athuman.com/robo/event/


3) 5月景品交換会
 3ヶ月毎の宿題ポイント交換会を下記授業日に開催します。
 ポイントカードを忘れずに、早めに来て下さい。

 [東福間]5/20
 [八幡東]5/20
 [小倉北]5/21
 [中 間]5/27
 [小倉南]5/28


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

 ◆プレプライマリ【3名平均 図形4.7】
   5点…中野[東福間 年長], 星野[小倉北 年中]

 ◆プライマリ【4名平均 図形4.0】
   5点…荒川[小倉北2], 関本[小倉北2]

 ◆ベーシック【19名平均 図面3.3+設問2.5=5.8】
  10点…井上[小倉南2]
   9点…土屋[小倉北2], 有松[小倉南3]
   8点…亀平[八幡東1]
   7点…なし

 ◆ミドル【12名平均 図面2.9+設問1.0=3.9】
  10点…なし
   9点…なし
   8点…なし
   7点…なし
   6点…諭[小倉北4],  渡辺[小倉南5]

 ◆アドバンス【5名平均 図面8.6+設問3.3=11.9】
  16点…藤津[中間6]


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