フィジカルコンピューティング開発論(PC開発論)と応用演習(PC)はセットになっています。PC開発論で説明したことを、応用演習で実験します(ただし、そうでない回もあります)。この講義資料は、PC開発論と応用演習の両方で使用します。
目次
- 1.1 イントロダクション
- 1.2 使用するツール
- 1.3 回路図
- 1.4 演習時間に行う実習
- 1.5 実習
- 1.6 宿題
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で言えば,メニューやボタンの形や色,配置などに関する技術です。芸術・感性が入っているいることに違和感を持つかもしれません。しかし,スマートフォンの開発にはそのデザインが決定的な意味を持ちます。また,フィジカルコンピューティングの守備範囲には、デジタルアートと呼ばれるような分野も含まれます。
この講義で扱う内容は、少し上記のフィジカルコンピューティングの定義をはみ出しているように思います。「人間と物理世界とのインタラクションがあるようなコンピュータ処理」ではないものも扱うからです。その辺は、あまり深く考えないようにします。
ネットワーク情報学部は、工学部ではありません。我々は、組込みシステム技術の基礎となる電子電気や物理学、制御理論といったことを専門とするわけではないのです。よって、これらの基礎的な知識・技術に関してはできる限り簡素に、最低限の事柄のみを扱うことにします。その代わり、我々は、発想する力を最重要事項として扱います。
講義の目的
この講義の目的は、発想する力を養う ことです。そしてそれは、勝手な妄想ではなく、確かな技術と手法に基づかなければなりません。その基礎として、幾つかのサブゴールを設定します。
- マイコンとデバイスを使った簡単な電子回路を理解する。
- マインドマップを使って、アイディアを他人に説明する。
- 自由な発想で作品を構想する。
- Pythonを使って数百行規模のプログラムを作成する。
- 他人の作品を評価し、優れている点、改善できる点を議論する。
これらのサブゴールを達成していき、最終的には社会に価値をもたらすシステムやサービスを発想する力を獲得することが最終的な目的です。
組込みシステム
組込みシステム(embedded systems)とは、機器に組み込まれるコンピュータシステムのことです。具体的な例を挙げると、家電製品やスマートフォン、車載機器等になります。コンピュータが組み込まれた機器自体を、組込みシステムと呼ぶこともあります。つまり、家電製品は、組込みシステムです。
組込みシステムの市場は非常に大きく、また成長しています。中でも自動車は、本格的に組込みシステムとなりつつあります。現在、自動車のエンジンは、ほぼ全てコンピュータによって制御されています。これは、排ガスをより少なくし、効率よくエネルギーを取り出すためです。また、プリクラッシュセイフティという考え方に基づき、自動車が衝突しそうな危ない状況に陥った時、運転者に警告をしたり、自動的にブレーキをかけたりすることができるようになりました。これらも全て、コンピュータによる処理です。完全自動運転が実現するのも夢ではないかもしれません。
マイコン
この講義では、ARMという会社が設計したマイコンを使用します。マイコンとは、マイクロコントローラの略で、コンピュータの一形態です。パソコンにおけるCPUのようなものですが、メインメモリやネットワーク機能などが、コンピュータの心臓部と一体になっています。マイコンは、エアコンや電子レンジといった家電製品や、自動車のエンジンやブレーキを制御する車載機器、スマートフォン等に利用されています。用途により、車載用マイコンや家電用マイコンのような区別があり、多種多様です。
ARM社は、自社で製造を行わない、いわゆるファブレス(工場を持たないという意味)のマイコンメーカーです。設計だけを行って、そのライセンスを色々な会社に売っています。ARM社はイギリスの会社ですが、2016年の夏にソフトバンクに買収されたことで話題になりました(これは本当に大変なことですよ!)。マイコンの世界は複雑で、例えば、AppleがiPhoneに搭載しているAシリーズというマイコンを例に説明すると、A12はARMをベースにAppleが拡張をして、それをTSMC(台湾)という会社が製造していると言われています(Appleは詳細を発表しないので)。TSMCはARMとは正反対で、設計はしないけれどもファブレスメーカーの依頼に応じて製造だけを行うメーカーです。
いわゆるパソコンのCPUメーカーは、ほぼインテルだけになりました(一部AMDのCPUも使われています)。一方、マイコンのメーカーは、非常に多くあります。有名なところでは、Qualcomm(アメリカ)、ルネサス(日本、NEC+日立+三菱系統)、Freescale(アメリカ、Motorola系統)、Samsung(韓国)、NXP(オランダ、Phillips Semiconductor系統)、TI(アメリカ)、Atmel(アメリカ)、Infineon(ドイツ、Siemens系統)、STMicroelectronics(フランス+イタリア、Thomson系統)、ブロードコム(アメリカ)などのメーカーがあります。
かつて日本は、半導体の製造で高い世界シェアを持っていました。このような文脈で「半導体」という言葉を使った時には、主にマイコンとメモリ(DRAM及びフラッシュメモリ)を指します。1990年頃には、NECや東芝、日立製作所、富士通、三菱電機などのメーカーが、世界のトップ企業とし存在感を持っていたのです。しかし、現在の半導体市場における日本企業は、ルネサスが車載マイコンで、キオクシア(旧東芝メモリ)がフラッシュメモリで、それぞれ大きなシェアを持っているくらいになってしまいました。
マイコンは、組込みシステムの心臓部なので、どのような機器に組み込まれるかによって、求められる性質が異なります。例えば、炊飯器や低価格の電子レンジのような家電製品の場合には、そんなに大きなメモリや計算能力を求められないので、8bitマイコンや16bitマイコンで十分です。これらのマイコンは、1個50円から100円程度の価格です。1個数百円で売られているUSBメモリにもマイコンは入っていますから、この価格優位性はとても重要なことなのです。一方、スマートフォンの場合には、もう既にパソコン(PC)と同じような性能が求められますから、心臓部には最新の64bitマイコンが使われます。64bitマイコンは、16bitマイコンと比較してはるかに高価です。
1.2 使用するツール
この講義では、以下のようなツールを使います。
- Raspberry Pi: マイコンボード。マイコンを使いやすくした基盤。
https://www.raspberrypi.org/ - Python: プログラミング言語。
- coggle: 図を使った発想支援のためのツールです。
https://coggle.it/ - 半田ごて
- マルチメータ: テスタのことです。
この講義では、マイコンボードと、実験に必要となる部品がセットになった、「Raspberry Piをはじめようキット2020」を使います。Raspberry Piをはじめようキットは、Switch Scienceで販売していますから、第1回応用演習(9/24)までに各自購入しておいてください。注文のためのURLは別途知らせます。※ この段落の内容は変更になりました。
Raspberry Pi
Raspberry Piは、イギリスに拠点を置くRaspberry Pi Foundationによって開発されているマイコンボードです。ARMベースのマイコンを搭載しています。Raspberry Piにはいくつかのタイプがありますが、この授業ではRaspberry Pi Zeroというタイプを使います。

Raspberry Pi Zeroに使われているマイコンには、1GHzで動作するシングルコアのCPUと512MBのメモリが備わっています。みなさんが使っているMacBookと比較すると、とても非力なコンピュータであることがわかります。しかし、組込みシステムに使われるマイコンとしては、これでも高機能な方だといえます。
Python
Raspberry Piではいくつかのプログラミング言語を利用可能ですが、この授業ではPythonを使います。Pythonは比較的新しい言語ですが、AIの分野でよく使われるようになり、最近ではWebアプリの開発などにも広く使われるようになってきました。今後も利用範囲は広がっていくと思われます。
Coggle
Coggleはマインドマップのような図を描くためのツールです。アイディアをまとめたり、それを他者に伝えたりする際に使用します。無料のアカウントでは3つまでプライベートな図を作成できます。授業で作成するような図はプライベートではなくパブリックで問題ありません。
1.3 回路図
フィジカルコンピューティングでは、電子回路を設計して実装する必要があります。電子回路の設計には回路図という図表現を使います。
回路図は、以下のような見た目をしています。

上記の回路図は、以下の4つのパーツ(部分)から構成されています。

電源のプラス側にはTのような記号を使います。Tの上には電圧を記載します。この例では+5Vとなっています。グランド(あるいはグラウンド)は、電源のマイナス側と思えば良いです。抵抗器とLEDに関しては、来週説明します。
グランドは電源のプラス側よりも下に描くようにします。図の上では、電気は上から下へと流れるイメージです。
回路図で使用される記号(上記の説明ではパーツ)は、正式には電気用図記号と呼ばれています。電気用図記号はJISで定められた規格があります(JIS C0617)。国際規格はIECで定められていて(IEC 60617)、JISの規格とIECの規格は同じです。
JIS C0617が定められる前は、JIS C0301という規格が使われていました。実は、上記の例で使用している記号はこのJIS C0301で定められた記号です。これは、まだ古い記号の方が広く使われているためです。この授業は電子回路の授業ではないので、あまりその辺は厳密に扱いません。なんとなく広く使われている記号を使用することとします。
1.4 演習時間に行う実習
木曜日の応用演習の時間には実験を行います。講義資料の実習というセクションに実験すべきことが説明されています。レポートとして報告すべき作業には、「実験1.」や「実験2.」のような見出しが振られています。それ以外の部分は、作業を行って確認するだけで良いです。
実験レポート
実験を行ったら、必ず実験レポートを作成します。ここでは、この講義における実験レポートの書き方を説明します。レポートの書き方は、講義によって異なりますから注意してください。
一回の演習で、複数の実験を行います。実験レポートは、演習単位で提出してもらいますから、各実験レポートには複数の実験が含まれることとなります。また、実験レポートは、「である調」で書きます。
実験レポート毎に書く事柄は以下の通りです。
- 第何回の演習か
- 実験日
- 実験者の氏名(場合によっては、複数人になります)
- 実験全体を通じての感想
実験毎に書く事柄は以下の通りです。
- 実験の概要(実験1などの項番を振る)
- できるだけ短い文章で、どんな実験なのかを説明します。
- 実験の方法
- ここには必ず写真を入れます。電子回路を使った実験の場合には、回路全体の写真を撮ります。
- プログラムがある場合には、ここに入れます。
- 予想される結果(必要ない時もあります)
- 実験を行った時間(実験を開始した時間と終了した時間)
- 実験結果
- ここには必ず写真か、PC画面のスクリーンショットを入れます。
一般的な実験レポートでは、実験結果の後に考察が必要となります。しかし、この講義の場合には、指示がなければ考察を入れる必要はありません。その代わりに実験全体を通じての感想を書いてもらっています。
実験レポートは、Google Classroomに提出してもらいます。提出期限は原則、その演習を行った日の23:59までです。
実験レポートは、実験と並行して書いてください。後でまとめて書いてはいけません。写真を撮ったり、値を記録したりしながらレポートを埋めていき、実験が終了したら全体の文章を見直して手直しするという順序で作成します。
1.5 実習
9/24の第1回応用演習ではRaspberry Piを使えるようにOSのインストールをします。これは実験ではないので、実験レポートではなくインストールの結果を報告してもらいます。
インストールの方法に関しては、以下のページを参照してください。
https://www.ne.senshu-u.ac.jp/~iida/pc/?p=1434
1.6 宿題
以下の資料を読んで、Unixコマンドの使い方を勉強してきてください。
https://www.ne.senshu-u.ac.jp/~iida/pc/?p=1454
特に提出してもらうものはありませんが、これができていないと来週からの学修が進められなくなるので、必ず9/29(火)のフィジカルコンピューティング開発論の授業までに読んでおいてください。
— by 石井 健太郎、沼 晃介、飯田 周作 専修大学ネットワーク情報学部