Physical Computing

Network and Information, Senshu Univ.

Menu
  • Home
  • Tips
  • About
  • admin

Category: Class materials

#4 Digital Input

October 10, 2016
| No Comments
| Class materials

講義日: 2016.10.11 今回の講義の目的は、外部から情報をマイコンで受け取る方法をマスターすることです。ただし、今回扱うのはデジタル信号です。具体的には、スイッチが押されたことをマイコンで検知する、ということをやります。 目次 I. Basics of Switch II. Practical Work I. Basics of Switch Switch スイッチというのは、電線を連結したり、切断したりするためのデバイスです。ボタンということもあります。スイッチは、様々な種類が存在しますが、よく使うものはタクトスイッチと、トグルスイッチです。 タクトスイッチ(tactile switch)とは、通常ボタンの形状をしていて、押すと電線が連結され、離すと切断されます。 写真のタクトスイッチはとても小さくて、5ミリ角くらいです。このタイプのものは、そのままブレッドボードに差し込んで使うことができます。 足が4つ付いていますね。これらの足は、2つずつの2グループに分かれていて、同一のグループに属する足は、常に通電されています。どの足とどの足が繋がっているかは、背面にマークがあることが多いです。写真の製品の場合には、背面に線が書いてあって、繋がっている足がわかります。 タクトスイッチが押された時にLEDが光る回路は以下のようになります。電源と抵抗の間にあるのが、タクトスイッチの記号です。 トグルスイッチ(toggle switch)とは、電線の連結と切断を切り替えられるようにしてあるスイッチです。どちらかを選択すると、他を選択し直すまで同じ状態を保ちます。 スイッチの電子部品記号は、いくつかあります。この講義では以下の2つを使います。 おまけとして、ディップスイッチの写真も載せておきます。これは、複数のトグルスイッチが1つのパッケージになったものです。 How to Connect a Tactile Switch スイッチは、直感的にわかりやすいデバイスですが、マイコンへの入力として使うときには少し注意が必要です。以下のように回路を作ると、タクトスイッチが押されたかどうかをマイコンで検知できそうですよね。 しかし、これはやってはいけません。タクトスイッチが押されているときには、dp16が3.3Vにつながりますから検知できます。しかし、タクトスイッチが離されているときには、dp16はどこにも繋がっていない状態になります。このような状態を、オープンになっていると呼び、マイコンのピンでは電圧が測定できません。 そこで、代わりに以下のような回路を組みます。 こうすると、タクトスイッチが押されている時には、dp16では3.3Vが計測され、離されている時には、0Vが計測されます。タクトスイッチが離されている時には、dp16はGNDにだけつながっているので、0Vになるわけです。タクトスイッチが押されている時には、この回路は並列回路になりますから、dp16にも10KΩの抵抗にも同じ3.3Vがかかります。 このような回路をプルダウン回路と呼び、10KΩの抵抗をプルダウン抵抗と呼びます。 プルダウン回路とは逆に、タクトスイッチが離されている時に3.3Vが計測され、押されている時に0Vとなる回路も作れます。 これをプルアップ回路と呼び、10KΩの抵抗をプルアップ抵抗と呼びます。この場合、スイッチが離されている時に3.3Vが計測されます。タクトスイッチを押した状態では、並列回路になります。タクトスイッチが押された状態で、その両端の電圧を計ると0Vです。よってdp16にも0Vがかかります。0Vになる理由は、スイッチはオンの時は、ただの電線と同じと考えてよく、10KΩの抵抗に3.3Vがかかるからです。 Digital Input それでは実際に回路を作って試してみましょう。プルダウン回路にしてみます。 プログラムは、以下の通りです。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include "mbed.h"
 
DigitalIn mytactile(dp16);
Serial pc(USBTX, USBRX); // tx, rx
 
int main() {
    while(1) {
        if(mytactile.read() == 1) {
            pc.printf("high\n");
        }
        else {
            pc.printf("low\n");
        }
        wait(0.1);
    }
}
 

PC側で、ターミナルを起動して、シリアル通信の結果を表示できるようにしてください。LPC824のリセットボタンを押してプログラムをスタートさせ、適当にタクトスイッチを押してみると、以下のような結果が得られるはずです。 DigitalIn mytactile(dp16);は、dp16でデジタル信号の入力を待つための宣言です。mytactile.read()で、その時のdp16の状態を読み取っています。結果は、1か0です。 Chattering 以下のような回路を作りました。 これは、タクトスイッチをプルダウン回路で作り、dp17にLEDをつないだものです。プログラムは、以下のように作ったとしましょう。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include "mbed.h"
 
DigitalIn mytactile(dp16);
DigitalOut myled(dp17);
 
int main() {
    myled = 0;
    while(1) {
        if(mytactile.read() == 1) {
            if(myled == 1) {
                myled = 0;
            }
            else {
                myled = 1;
            }                
        }
        wait(0.1);
    }
}
 

このプログラムは、タクトスイッチが押されるたびにLEDが点灯したり消灯したりすることを意図して作られています。 しかし、実際に実験してみると、思ったようには動きません。タクトスイッチを押しても、LEDの状態が変わらないことがあります。これは、スイッチを使うときに起きるチャタリング(chattering)という現象が原因です。 mbedの公式ページにもjim hamblenという人が解説を書いてくれていますから、時間があったら見ておきましょう。 […]

Read More »

Posted in Class materials Tagged mbed, physical computing, 専修大学

#3 Digital Output

September 26, 2016
| No Comments
| Class materials

講義日: 2016.10.4 今回の講義の目的は、マイコンの使い方を理解することと、デジタルIOの使い方をマスターすることです。 I. Basics of Microcontroller II. mbed OS III. Practical Work I. Basics of Microcontroller まず、マイコンについて基本的なことを説明しておきます。マイコンは、以下の写真のような見た目をしています。 写真のマイコンは、細長い形をしていて両側に足が出ていますが、形状はいろいろなものが存在します。多くの場合、黒いプラスティックのパッケージになっています。このプラスティックのパッケージの中に、マイコン本体が封入されています。よって、マイコン本体は、もっと小さなものです。 マイコンからは、ゲジゲジの足のようなものが出ています。これをピン(pin)、あるいは端子と呼びます。マイコンは、このピンを通じて電源供給を受けたり、他の部品と連携したりします。 LPC824のマイコンボードを見ると、5mm四方ほどの黒い正方形のマイコンが実装されているのがわかります。ピンが四方についていますが、ものすごく小さくてプロトタイプを作る際には使いづらいことが多いです。そのため、マイコンボードは、ピンから配線を延ばしてブレッドボードに差し込みやすいような形状にしているのです。実際の製品にするときには、マイコンボードは使わずに、よりコンパクトな基盤にします。 Microcontroller Board 以下のリンクをみてください。これは、Switch Science LPC824ボードの公式ページです。 https://developer.mbed.org/platforms/Switch-Science-mbed-LPC824/ このWebページはとても重要ですから、からなずブックマークなどをして、すぐにアクセスできるようにしておきましょう。特に以下の図が重要です。 この図は、LPC824のピンの説明図です。どの場所に、どういう機能のピンがあるのかを説明した地図のようなものです。幾つか重要なピンに関して説明しておきます。 VBUS: このピンには、USBから供給される5Vが来ています。他の電子部品に5Vを供給したいときには、ここを電源とします。 VIN: このピンからマイコンに直接電源を供給することができます。USBから電源が供給されているときには、このピンに3.3Vがかかっています。その場合、ここから他の電子部品に3.3Vを供給することができます。 GND: グランド、つまりマイナスです。 dp2からdp25と書かれているピンは、いろいろな用途に使うことができます。dp2、dp15、およびdp18からdp24は、少し特殊なピンで、アナログ信号の入力に使います。このあたりのことは、おいおい説明することにしましょう。 Switch Science LPC824 ここで、Switch Science LPC824について、もう少し説明しておきます。LPC824というのはマイコンの名前で、マイコンボードの名前はSwitch Science LPC824です。マイコンボードの名前は長いので、この講義では単にLPC824と呼びます。 LPC824というマイコンは、ARM社が設計したCortex-M0+というアーキテクチャがベースとなっています。以下のような特徴があります。 32bitマイコン フラッシュメモリ: 32kB RAM: 8kB 動作クロック: 30MHz フラッシュメモリは、プログラムを格納する場所です。RAMは、プログラム中で使用する配列や変数を格納する場所です。 Arduinoという有名なマイコンボードの規格がありますが、Arduino UNOで使われているATMega328の場合には、以下のような仕様になっています。 […]

Read More »

Posted in Class materials Tagged mbed, physical computing, 専修大学

#2 Let’s Play with LED

September 26, 2016
| No Comments
| Class materials

講義日: 2016.9.27 今回の講義の目標は、LEDを光らせることです。電子回路がどういうものかのかを体感してみましょう。 目次 I. Basics of Electronic Circuit II. Devices III. LED IV. Practical Work I. Basics of Electronic Circuit この講義では、マイコンボードを中心にした電子回路(electronic circuit)を作っていきます。電子回路とは何か、ということはあまり難しく考えないことにしましょう。ここでは、様々な電子部品を電線で結んだものとしておきます。当然、電気を流します。 もう少し正確に言うと、電子部品に電圧をかけて電流を流すということになります。電子部品は、電流が流れて初めて仕事をしてくれます。小学校の時に、豆電球を光らせる実験をしたことと思います。あれです。電流はプラス極からマイナス極に流れます。電線をうまくつなぐことで、電子回路を作ります。 Voltage and Current 電圧の強さは、ボルト(V)という単位で表します。電流の量は、アンペア(A)という単位で表します。一般的に、電圧を強くすればするほど、電流は多く流れます。1.5Vの電池1つで豆電球を光らせるより、2つの電池を直列につないで3Vにした方が、豆電球は明るく光るのでしたよね。 しかし、電流を阻害するものがあります。それが抵抗です。プラスとマイナスの間に繋がれた抵抗が大きくなればなるほど、流れる電流は少なくなります。抵抗の大きさは、オーム(Ω)という単位で表します。 電圧と電流と抵抗の間には、有名なオームの法則という関係が成り立っています。電圧をE、電流をI、抵抗をRで表した時、以下の関係が成り立っています。 E = R×I これは式の変形を行うと、以下のようにも表せます。 I = E/R 多くの場合、抵抗を使って電流を制御することになるので、上の式の方が直感的に理解しやすいですね。つまり、抵抗R(分母)を大きくすればするほど、電流Iは小さくなります。 では、逆にRをどんどん小さくしていくと、どんなことが起こるのでしょうか。Rが0に近づくと、Iは無限大に近づいていきます。電池のプラス極とマイナス極を電線で直接結ぶと、ちょうどこのような状況になります。電線自体にもわずかながら抵抗はあるのですが、とても小さいです。このような時、回路は短絡している、あるいはショートしているといいます。ショートすると大量の電流が電子回路に流れ、電子部品は破壊され、電池は熱を発して最悪の場合発火したり爆発したします。特にリチウムイオン充電池を使っている場合には危険です。 回路は絶対にショートさせてはいけません! ショートさせないためには、適切な場所に適切な大きさの抵抗を入れる必要があります。 Serial and Parallel Circuit 回路には、直列回路(serial circuit)と並列回路(parallel circuit)があります。豆電球の例で考えましょう。豆電球を直列につなぐとは、以下のようにすることです。 豆電球は、光を発する抵抗だと考えましょう。よって、回路はショートしていません。 並列につなぐとは、以下のようにすることです。 豆電球を直列でつなぐのと、並列でつなぐのとでは、どのような違いがあったか思い出しましょう。 直列につなぐと、豆電球を1つだけつないだ時よりも暗く光ります。 並列の場合には、1つの時と明るさが変わりません。 電池の持ちは、直列の場合には豆電球を1つだけつないだ時と同じですが、並列の場合には早く無くなってしまいます。 2つの抵抗を直列につないだ場合、全体の抵抗値は2つの抵抗値の合計になります。豆電球の場合も同じで、1つつなぐよりも2つつないだ方が、より抵抗が大きくなります。抵抗が大きいのですから、オームの法則から計算できるように、回路全体を流れる電流は小さくなります。よって、豆電球は弱く光ります。同じ豆電球を2つ直列につないだ場合、それぞれの豆電球にかかる電圧は、電池の電圧の1/2となります。 […]

Read More »

Posted in Class materials Tagged mbed, physical computing, 専修大学

#1 Introduction

September 19, 2016
| No Comments
| Class materials

講義日: 2016.9.20 フィジカルコンピューティング開発論と応用演習(PC)はセットになっています。PC開発論で説明したことを、応用演習で実験します。この講義資料は、PC開発論と応用演習の両方で使用します。 目次 I. Introduction II. Practical Work I. Introduction Home Work フィジカルコンピューティング開発論の1回目では、夏期課題の発表を行います。 What’s physical Computing? フィジカルコンピューティングとは何か、ということから始めましょう。”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 […]

Read More »

Posted in Class materials Tagged mbed, physical computing, 専修大学

Posts navigation

Previous 1 … 17 18

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.