第1回

1 イントロダクション

フィジカルコンピューティング開発論(PC開発論)と応用演習(PC)はセットになっています。PC開発論で説明したことを、応用演習で実験します(ただし、そうでない回もあります)。PC開発論と応用演習の講義資料は、相互に使用することがあります。

1.1 はじめに

フィジカルコンピューティングとは

フィジカルコンピューティングとは何か、ということから始めましょう。”Physical Computing“という言葉は、Tom Igoe(トム アイゴ)によって最初に使われたと思われます。New York University で彼が担当する講義のサイト(https://itp.nyu.edu/physcomp/)には以下のような説明があります(現在のサイトの説明はアップデートされていますが、大まかな内容としては同じです)

“Physical Computing is an approach to computer-human interaction design that starts by considering how humans express themselves physically. Computer interface design instruction often takes the computer hardware for given ― namely, that there is a keyboard, a screen, speakers, and a mouse or trackpad or touchscreen ― and concentrates on teaching the software necessary to design within those boundaries. In physical computing, we take the human body and its capabilities as the starting point, and attempt to design interfaces, both software and hardware, that can sense and respond to what humans can physically do.”

この授業では、フィジカルコンピューティングを以下のように定義します。

「フィジカルコンピューティングとは、人間と物理世界とのインタラクションがあるようなコンピュータ処理を、人間の身体的特徴にもとづき実現することである。 New York 大学(Tom Igoe)の教育プログラムの名前が語源。広範な概念を含み組み込みシステムデジタルアート教育思想などに関係する。」

上記の定義にもあるようにフィジカルコンピューティングは、組み込みシステムと呼ばれるシステムと関係があります。技術的な側面から見た場合には組み込みシステムそのものであるとも言えます。フィジカルコンピューティングは以下のような要素から構成されると考えます。

ユーザインターフェイスの技術とは使いやすいユーザインターフェイスとはどのようなものかを様々な側面から考察し体系化した技術です。例えばWebで言えばメニューやボタンの形や色配置などに関する技術です。芸術・感性が入っているいることに違和感を持つかもしれません。しかしスマートフォンの開発にはそのデザインが決定的な意味を持ちます。またフィジカルコンピューティングの守備範囲には、デジタルアートと呼ばれるような分野も含まれます。

この講義で扱う内容は、少し上記のフィジカルコンピューティングの定義をはみ出しているように思います。「人間と物理世界とのインタラクションがあるようなコンピュータ処理」ではないものも扱うからです。その辺は、あまり深く考えないようにします。

ネットワーク情報学部は、工学部ではありません。私たちは、組み込みシステム技術の基礎となる電子電気や物理学、制御理論といったことを専門とするわけではないのです。よって、これらの基礎的な知識・技術に関してはできる限り簡素に、最低限の事柄のみを扱うことにします。その代わり、我々は、発想する力を最重要事項として扱います。

講義の目的

この講義の目的は、発想する力を養うことです。そしてそれは、勝手な妄想ではなく、確かな技術と手法に基づかなければなりません。その基礎として、幾つかのサブゴールを設定します。

これらのサブゴールを達成していき、最終的には社会に価値をもたらすシステムやサービスを発想する力を獲得することが最終的な目的です。

1.2 使用するツール

この講義では、以下のようなツールを使います。

この講義では、購入した Raspberry Pi 3 Model A+ を使います。

Raspberry Pi

Raspberry Pi は、イギリスに拠点を置く Raspberry Pi Foundation によって開発されているマイコンボードです。ARMベースのマイコンを搭載しています。 Raspberry Pi にはいくつかのタイプがありますが、この授業では Raspberry Pi 3 Model A+ というタイプを使います。

Python

Raspberry Pi ではいくつかのプログラミング言語を利用可能ですが、この授業ではPythonを使います。Pythonは比較的新しい言語ですが、AIの分野でよく使われるようになり、最近ではWebアプリの開発などにも広く使われるようになってきました。今後も利用範囲は広がっていくと思われます。

Coggle

Coggleはマインドマップのような図を描くためのツールです。アイディアをまとめたり、それを他者に伝えたりする際に使用します。無料のアカウントでは3つまでプライベートな図を作成できます。授業で作成するような図はプライベートではなくパブリックで問題ありません。

1.3 実習レポートについて

毎回の授業資料には、その回の授業で行うべき実習が書かれています。みなさんは、実習を行うとともに、そのときの記録をレポートにまとめてください。しばらくすると慣れてくると思いますが、作業をどんどん進めるというのではなく、どんな記録を残せばよいレポートになるか考えて、立ち止まって記録をしながら作業を進めるほうが、結果的に効率的にレポートが仕上がります。(おそらく、その方法のほうが、理解も進むと思われます。)

実習レポートは、 Google Classroom の課題として課されますので、実習ごとに、以下の内容をまとめてください。予想される結果という項目があるので、作業を始める前に予想を記録してから始めることが必要です。

Classroomの課題には締め切り期日が設定されていません。しかし、授業終了時の18:00頃には、いったん課題を提出してください。これにより教員はその日の進捗を知ることになります。その後、なるべく早く課題の達成度をレポートの得点として返却します。この得点が60点未満である場合は、その日の実習をクリアしたことにはならず、再提出が求められます。最終的に授業に合格するためには、すべてのレポートが60点以上でクリアしていることが必要ですので、授業中にはクリアできなかった回の実習は、後日進める必要があります。

なお、授業中にうまく進めることができずに、低い得点でレポートが返却されたとしても、あまりめげずにあとでもう1度取り組んでください。実習が進んでもう1度提出をすればよりよい得点がつけられると思いますが、成績計算には最終的につけられた得点のみを使用しますので、最初の授業時間内の提出の得点が低くても気にすることはありません。また、60点以上の得点でも、さらによい得点を目指してレポートを再提出するのもOKです。

1.4 Raspberry Pi OS のインストールについて

Raspberry Pi OS のインストールが、1開発論の宿題として課されていると思います。第2回応用演習ではOSインストール済みの Raspberry Pi を使って作業を進めていくので、インストール作業を進めておいてください。方法については、以下の開発論のページを参照してください。

Raspberry Pi OS のインストール