Physical Computing

Network and Information, Senshu Univ.

Menu
  • Home
  • Tips
  • About
  • admin

Month: October 2021

5 デジタル入力

October 25, 2021
| No Comments
| Class materials

今回の講義の目的は、外部の情報をマイコンでキャッチする方法をマスターすることです。ただし、今回扱うのはデジタル信号です。具体的には、スイッチが押されたことをマイコンで検知する、ということをやります。 目次 5.1 スイッチ 5.2 デジタル入力 5.3 チャタリング 5.4 実習 5.1 スイッチ スイッチというのは、電線を連結したり切断したりするためのデバイスです。ボタンということもあります。スイッチには様々な種類が存在しますが、よく使うものはタクトスイッチと、トグルスイッチです。 タクトスイッチ(tactile switch)とは、ボタンの形状をしていて、押すと電線が連結され、離すと切断されます。 写真のタクトスイッチはとても小さくて、5ミリ角くらいです。このタイプのものは、そのままブレッドボードに差し込んで使うことができます。 足が4つ付いていますね。これらの足は、2つずつの2グループに分かれていて、同一のグループに属する足は、常に通電するようになっています。どの足とどの足が繋がっているかは、背面にマークがあることが多いです。写真の製品の場合には、背面に線が書いてあって、繋がっている足がわかります。マルチメータを使ってどの足とどの足が通電しているか確認しておきましょう。 タクトスイッチが押された時にLEDが光る回路は以下のようになります。電源と抵抗の間にあるのが、タクトスイッチの記号です。 タクトスイッチをブレッドボードに挿す時には以下のように真ん中の仕切りをまたぐようにすると良いでしょう。 トグルスイッチ(toggle switch)とは、電線の連結と切断を切り替えられるようにしてあるスイッチです。どちらかを選択すると、他を選択し直すまで同じ状態を保ちます。 スイッチの電子部品記号は、いくつかあります。この講義では以下の2つを使います。 おまけとして、ディップスイッチの写真も載せておきます。これは、複数のトグルスイッチが1つのパッケージになったものです。 5.2 デジタル入力 スイッチの状態を感知するというのは、マイコンにとってはデジタル信号の入力を行うことです。ピンにかかる電圧は3.3Vか0Vのどちらかになり、3.3Vならば1、0Vならば0という数値で認識します。 スイッチは、直感的にわかりやすいデバイスですが、マイコンへの入力として使うときには少し注意が必要です。以下のように回路を作ると、タクトスイッチが押されたかどうかをマイコンで検知できそうに思いますよね。 しかし、これは正しくありません。タクトスイッチが押されているときには GPIO 17 が3.3Vにつながりますから正しく検知できます。しかし、タクトスイッチが離されているときには、GPIO 17はどこにも繋がっていない状態になります。このような状態を、ピンがオープンになっていると言い、マイコンのピンの電圧は周りのピンの影響を受けて安定しません。すると、ピンの電圧が3.3Vと計測された場合に、スイッチが押されていて3.3Vにつながっているのかオープンで安定しないために3.3Vとなっているのかが見分けられません。 また、以下のような回路もよく見られる間違いです。 この回路では、スイッチを押したときに3.3Vとグランドがショートしてしまうので大変危険です。火花が飛んだり、導線が焼き切れて焦げた匂いがしたり、回路やマイコンボードが破損する恐れがあります。 正しくは以下のような回路を組みます。回路に使われる抵抗は、10kΩがよいでしょう。 GPIO 17 をデジタル入力として使用する際には、マイコンの中では以下のようなことが行われています。これはピンをデジタル入力として使う場合で、前回実験したデジタル出力の場合には当てはまりません。 GPIO 17 をデジタル入力に使っている時には、 GPIO 17 の先は非常に大きな抵抗を介してグランドに接続されています。図では仮に3MΩ(メガオーム)としています。このような状態をハイインピーダンスと呼びます。 GPIO 17 の内部では、マイコンがこの大きな抵抗にかかる電圧を計測しています。 この例では、10KΩの抵抗と3MΩの抵抗は並列に接続されていますね。並列に接続されているということは、どちらにも同じ電圧がかかるということです。タクトスイッチが押されると、並列回路の部分に3.3Vの全てがかかるはずです。よって、 GPIO 17 では3.3Vが計測されます。タクトスイッチが離されている時には、抵抗に電流は流れませんので両端で電圧差はなく、 GPIO 17 はGROUNDと同じ電圧になりますから0Vになるわけです。 このような回路をプルダウン回路と呼び、10KΩの抵抗をプルダウン抵抗と呼びます。 […]

Read More »

Posted in Class materials

4 デジタル出力

October 18, 2021
| No Comments
| Class materials

今回の講義の目的は、マイコンボードの回路・ブレッドボードの回路について理解することと、先週少し触れたGPIOのデジタル出力の使い方をマスターすることです。 4.1 マイクロコントローラの基礎 4.2 デジタル信号・アナログ信号 4.3 GPIO 4.4 デジタル出力 4.5 電圧・電流・抵抗を計測する 4.6 実習 4.1 マイクロコントローラの基礎 まず、マイコンについて基本的なことを説明しておきます。マイコンは、一般に以下の写真のような見た目をしています。 写真のマイコンは、細長い形をしていて両側に足が出ていますが、形状はいろいろなものが存在します。多くの場合、黒いプラスティックのパッケージになっています。このプラスティックのパッケージの中に、マイコン本体が封入されています。よって、マイコン本体は、もっと小さなものです。 マイコンからは、ゲジゲジの足のようなものが出ています。これをピン(pin)、あるいは端子と呼びます。マイコンは、このピンを通じて電源供給を受けたり、他の部品と連携したりします。 Raspberry Pi に搭載されているマイコンは、以下の写真に示す場所にあります。 マイコンからは小さなピンが出ていますが、ものすごく小さくてプロトタイプを作る際には使いづらいことが多いです。そのため、マイコンボードは、ピンから配線を延ばして回路を作りやすい形状にしているのです。実際の製品にするときには、マイコンボードは使わずに、よりコンパクトな基板にすることが多いです。 Raspberry Pi 3 Model A+ に搭載されているマイコンは、Broadcom社のBCM2837B0です。BCM2837B0はクアッド(4)コア/クアッドスレッドです。 メモリ: 512MB CPUクロック: 1.4GHz マイクロコントローラには、メモリ、CPU、GPU、通信モジュールなどがセットになって入っています。こういうLSIを SoC (System On Chip) と呼びます。 4.2 デジタル信号・アナログ信号 電気の世界における信号とは、時間とともに変化する電圧によって情報を表すことです。デジタル信号とは、2つの電圧によって0と1を表現したもので、例えば、0Vが0で3.3Vが1のように表現します。 実際の電子回路では、1.5V未満なら0、1.5V以上なら1のように、ある閾値(しきいち)を定めて判断しています。閾値とは境界となる値のことで、この場合は1.5Vが閾値ということです。しかし、今は、そこまで意識する必要はありません。 アナログ信号の場合には、電圧の大きさで何かの大きさや量を表現します。例えば、部屋の明るさの場合には、光量を知りたいですよね。陽が昇れば徐々に明るくなり、陽が暮れれば徐々に暗くなります。夜中に電気をつければ突然明るくなったりもします。部屋の明るさを光センサを使って連続的に計測して電圧の変化に変換したもの、それがアナログ信号です。 4.3 GPIO 前回、Raspberry PiのGPIOについて簡単に説明しました。ここでは、デジタル入出力・アナログ入出力という観点からもう少し詳しく説明します。以下にGPIOのピン配置図を再掲します。 GPIO 0 から GPIO 27 までは、入出力に使える汎用的なピンであると前回説明しましたが、 Raspberry Pi […]

Read More »

Posted in Class materials

3 Let’s Play with LED

October 12, 2021
| No Comments
| Class materials

今回の講義の目標は、LEDを光らせることです。電子回路がどういうものかを体感してみましょう。先週配ったLEDと抵抗を使います。 目次 3.1 電子回路 3.2 デバイス 3.3 LED 3.4 GPIO 3.5 LEDを光らせる 3.6 デジタル出力(を先取り) 3.7 実習 3.1 電子回路 この講義では、マイコンボードを中心にした電子回路(electronic circuit)を作っていきます。電子回路とは何か、ということはあまり難しく考えないことにしましょう。ここでは、様々な電子部品を電線で結んだものとしておきます。当然、電気を流します。 もう少し正確に言うと、電子部品に電圧をかけて電流を流すということになります。電子部品は、電流が流れて初めて仕事をしてくれます。小学校の時に、豆電球を光らせる実験をしたことと思います。あれです。電流はプラス極からマイナス極に流れます。電線をうまくつなぐことで、電子回路を作ります。 電圧と電流 電圧の強さは、ボルト(V)という単位で表します。電流の量は、アンペア(A)という単位で表します。一般的に、電圧を強くすればするほど、電流は多く流れます。1.5Vの電池1つで豆電球を光らせるより、2つの電池を直列につないで3Vにした方が、豆電球は明るく光るのでしたよね。 しかし、電流を阻害するものがあります。それが抵抗です。プラスとマイナスの間につながれた抵抗が大きくなればなるほど、流れる電流は少なくなります。抵抗の大きさは、オーム(Ω)という単位で表します。 電圧と電流と抵抗の間には、有名なオームの法則という関係が成り立っています。電圧を E 、電流を I 、抵抗を R で表した時、以下の関係が成り立っています。 E = R × I これは式の変形を行うと、以下のようにも表せます。 I = E / R 多くの場合、電圧は決まっていて抵抗を使って電流を制御することになるので、 I = E / R の方が直感的に理解しやすいですね。つまり、抵抗 R (分母)を大きくすればするほど、電流 I は小さくなります。 では、逆に R […]

Read More »

Posted in Class materials

2 Raspberry Pi の使い方

October 4, 2021
| No Comments
| Class materials

目次 2.1 Raspberry Pi をWi-Fiネットワークに接続する 2.2 ライブラリのアップデート 2.3 Pythonの準備 2.4 Raspberry PiをWebサーバにしてみる 2.5 簡単なWebページを作る 2.6 テンプレートエンジンを使う 2.7 テンプレートエンジン応用 2.8 実習 2.1 Raspberry Pi をWi-Fiネットワークに接続する 先週の宿題では Raspberry Pi にUSB経由でログインしました。今日は、 Raspberry Pi を無線LANに接続します。 Raspberry Pi を無線LANに接続するための方法は、 Google Classroom に資料をアップロードしてありますので、それを参照してください。 2.2 ライブラリのアップデート 2.2以降は必ず「2.1 Raspberry Pi をWi-Fiネットワークに接続する」を終えてから進めてください。 まず始めに Raspberry Pi OS にインストールされているソフトウェアやライブラリのアップデートを行います。 aptはソフトウェアパッケージ管理ツールです。ソフトウェアのインストール・更新・削除等には、aptを使用すると覚えておくと役に立ちます。apt updateでパッケージ一覧の更新、apt upgradeで更新可能なパッケージを更新します。 以下のように聞かれたらエンターキーを押します。(何も入力しないでエンターキーを押すと、大文字で示されているデフォルト回答(以下の例では「Y」)が入力されたことになります。) sudo apt upgradeには少し時間がかかります。 […]

Read More »

Posted in Class materials

Recent Posts

  • NE22の学生さんたちへ
  • 13 発表会
  • 12 発表準備
  • 11 実装
  • 10 要素テスト

Archives

  • July 2022
  • January 2022
  • December 2021
  • November 2021
  • October 2021
  • September 2021
  • January 2021
  • December 2020
  • November 2020
  • October 2020
  • September 2020
  • January 2020
  • December 2019
  • November 2019
  • October 2019
  • September 2019
  • August 2019
  • January 2019
  • December 2018
  • November 2018
  • October 2018
  • September 2018
  • January 2018
  • December 2017
  • November 2017
  • October 2017
  • September 2017
  • July 2017
  • January 2017
  • December 2016
  • November 2016
  • October 2016
  • September 2016

Categories

  • Announcement
  • Class materials
  • Tips
  • Uncategorized

Meta

  • Log in
  • Entries RSS
  • Comments RSS
  • WordPress.org

Physical Computing 2023 | Powered by WordPress.