ミニプロジェクト

ミニプロジェクト

今週から3週にわたってミニプロジェクトを行います。最初はほぼノーヒントで前提知識のないところから、答えを見つけ出すことを目指します。そのため、実習中何を調べても何を使ってもよいです。第1-2週でグループに分かれて答えを模索し、第3週に見つけて実装した答えを発表します。完答できなくても、発表会にはできたところまでを最大限アピールする発表を行ってください。

お題

まずは、昨年度2022年度の石鎚プロジェクトの成果ビデオをご覧ください。(下記リンクのページの中ほどのビデオ)

https://www.ne.senshu-u.ac.jp/~proj2022-04/

ビデオを見てわかる通り、このプロジェクトではたいへん多数のLEDをパフォーマンスの演出に利用しています。そして、弾き語りをしているパフォーマーの足元に注目してください。感圧センサが配置してあり、足で踏むとLEDの光りかたが変わるようです!パフォーマー(人間)のタイミングで装置の光りかた(計算方法)を変える入力を受け付ける、まさにフィジカルコンピューティングと言えます。みなさんには、この装置のクローンを作ってもらいたいと思います。

とはいえ、何から始めればよいのでしょうか(何をどうすればよいのでしょうか)。。少しだけヒントを出すと、このLED装置には光りかたを変えるリモコンが付属しているそうなのですが、石鎚プロジェクトのみなさんは、リモコン信号を解析したうえで、 Raspberry Pi を使って感圧センサの読みとりとリモコン信号の送出を制御するシステムを独自に作ったそうです。このことを参考にしてください。慣れるためのサブ問題を個人実習として用意していますので、まずは個人実習1からやってみるといいと思います。また、グループ内で知恵を出し合って、知識を共有して、答えを導き出してください。

石鎚プロジェクトのみなさんの厚意により受け継いだLED装置とそのリモコン、それから、リモコン信号の生成と解析のための送信器(LED)と受信器をお渡しします。これらと Raspberry Pi を使って、先輩たちのような(あるいは何かの部分は先輩たちを超える)作品を作ってください!

発表会(発表の方法)

第3週の5限の時間に発表会を行います。(第3週の4限の時間は発表前の最終調整にあててよいです。)発表会は2部構成として、第1部はスライドを用いた口頭発表・第2部は展示会方式のデモ展示とします。

第1部の口頭発表は、グループごとに教卓のスクリーンの所まできてもらって、PowerPointやKeynoteで作成したスライドを投影して発表を行います。発表時間は各グループ5分以内とします。調べたり解析をしたりしてわかったこと・作成した作品のシステム構成・第2部で行うデモ展示の見どころ・第2部ではどこでデモ展示を行うか・あればその他必要と思う情報、というようなことから必要なものを選んで5枚程度のスライドにまとめることを想定しています。しかし、発表時間5分以内であればこれに限りません。

第2部のデモ展示は、教室を展示会会場に見立てて、各グループの座席にて展示を行います。展示で示すことは、LED装置の実機を用いたシステムの動作デモです。たとえ解析がうまくいかなくて最終的な答えにたどり着いていなくても、デモ展示を工夫したり装飾をがんばったりして、第2部はなんかすごいなという発表を行うことも可能ではないかと思いますので、グループ内で分担しあって、効果的なデモも追求してください。デモをする人とデモを見学しに行く人に前後半で分かれて、見学の人は好きな展示を見に行くという方式をとります。第1部のスライド口頭発表を、第2部の実機デモを見に行きたくなるようにつなげられるとよいと思います。また、今回の質問タイムは第2部のデモ展示での自由対話でのみ行うこととします。第1部の発表を聞いて疑問に思ったことも、この第2部で質問するようにしてください。

作品に使うセンサについて

みなさんはまだ、先輩が使っていた感圧センサのようなセンサはもっておらず、スイッチとCdSがあるだけだと思います。これは現時点ではしかたがないので、スイッチやCdSセルを感圧センサに見立てて作品を作ってください。感圧センサではなく、〇〇センサを最終的には使うことにするみたいな、独自のストーリーを考えてもらってもよいです。その場合も、いまはスイッチかCdSセルで代用して作品を作ってください。

3週間の提出物

1週目・2週目には提出物はありません。一方、3週目には発表会を行いますが、「口頭発表のスライド」に加えて「ミニプロジェクト報告書」の提出を課します。「口頭発表のスライド」はグループで1人が提出すればOK(ほかの人は白紙で提出してOK)ですが「ミニプロジェクト報告書」はグループメンバーそれぞれに提出してもらいます。

したがって、第3週に向けては、実装・プレゼンとデモの準備に加えて、ミニプロジェクト報告書の下書きを書き進めておくとよいと言えます。Classroomの課題ファイルにスライドと報告書のファイルを作成してありますので、そこに必要事項を書き加えてください。

また、この期間にも前回までと同様の実習課題も用意しています(↓主に作品づくりの最初のとっかかりを得るための課題です)。これも、「ミニプロジェクト報告書」に記載して報告してください。

個人実習1 リモコン受信器に慣れよう

配付したリモコン受信器は下記リンクの製品です。使いかたはデータシートを読むなりして理解しましょう。

https://akizukidenshi.com/catalog/g/gI-06487/

使いかたを理解して回路を組むことができたら、次はプログラムを書きます。まずは、受信器が反応したら、コンソールに何かを出力するとかのプログラムから始めましょう。うまくいっていれば、プログラムを起動した状態で、グループごとに配付したリモコンを受信器に向けていずれかのボタンを押すと、反応があるはずです。

それができたら、次は、LEDを別途つないで、リモコン受信器が反応したらLEDを光らせるというプログラムを作ってみましょう。さらにそれができたら、今度は最初にリモコン受信器が反応してからタイマーで3秒間LEDを光らせ続ける(それを繰り返す)というプログラムも作ってみましょう。これには意図があります。2つのプログラムは同じようなプログラムに思えますが、よく観察するとLEDの光かたに違いがあると思います。これは、リモコン信号を解析する1つの鍵です。2つのプログラムを繰り返し実行して比べながら、何が起きているのか考察してください。

個人実習2 リモコン通信

受信器に慣れたら、次は送信器も扱いたいと思います。ミニプロジェクトの最終的な作品には送信器でLED装置用の信号を送ることが必要になるはずです。配付したリモコン送信器は下記リンクの製品なのですが、見ると書いてあるとおり、実はリモコン送信器とはLED(目に見えない赤外線の光を出すLED)なのです。

https://akizukidenshi.com/catalog/g/gI-04298/

なので、こちらの使いかたは、通常のLEDと同じです。抵抗を直列にはさんでGPIOピンから制御します。同じく抵抗をはさまないと一瞬で壊れますから注意してください。

回路を組むことができたら、赤外線LEDを光らせるプログラムを書きましょう。それができたら、グループ内の別の人に協力してもらって(※)、個人実習1の受信器のプログラムを起動してもらって、そこにLEDを向けてプログラムを実行してみます。受信器のプログラムが反応すれば成功で、これはつまり、あなたの Raspberry Pi と友だちの Raspberry Pi が通信していると言っても間違いではありません。(リモコン信号の解析が進めば、任意のリモコンのコマンドを2つの Raspberry Pi で交換通信することも可能です。)

※この実習を行うときは、同じ Raspberry Pi に送信器と受信器の回路を組むのではなく、必ず別の人の Raspberry Pi で受信器の回路を組む必要があります。詳しいことは省略しますが、同じ Raspberry Pi に送信器と受信器の回路を組むと、本当は信号が届いていないのに電線のノイズを通って、信号が届いたかのような反応をしてしまうことがあり混乱します。