SFC デザイン言語WS(電子工作)第3回「電子工作の作法」
-
Upload
makoto-hirahara -
Category
Technology
-
view
435 -
download
1
Transcript of SFC デザイン言語WS(電子工作)第3回「電子工作の作法」
13
通電チェック
レンジを2000Kに合わせ、通電チェックしたい両端にリード棒をあてる。
1ならば非通電、それ以外の値なら通電している。
通電していると音が鳴るテスターもある。
レンジスイッチを「 」などに合わせ
て、リード棒をあてる。
19
直流電流を測る
Aー…200mレンジダイアルを に合わせ、回路の両端にあてる
測定するレンジが不明な
場合は、大きなレンジか
ら徐々に下げて測る。
可変抵抗を回してLEDの
明るさを変えると、電流
値も変わる。
0.35mA ~ 9.25mA
21
オームの法則とは
オームの法則(オームのほうそく、Ohm's law)とは、導電現象で抵抗に流れ
る電流とそれによって発生する電位差に関する法則である。(wikipediaより)
電流(I) = 電圧(V) ÷ 抵抗(R)
電圧(V) = 抵抗(R) × 電流(I)
抵抗(R) = 電圧(V) ÷ 電流(I)
22
オームの法則の利用例
LEDを適切に光らせるための抵抗値を計算する。
LEDを電圧2.0V、電流20mA で使いたい。
電源は5.0V。
抵抗(R) = 電圧(V) ÷ 電流(I)
150Ω = (5.0V - 2.0V) ÷ 0.02A
150Ω を使用する。
5mm赤色LED OSDR5113A
◆本体:透明着色タイプ
◆直径:5mm
◆発光色:赤色
◆VF:2.0V(IF=20mAにおける標準値)
◆最大電流:30mA
24
いろいろなマイコンボード
マイコンボードとは小さなコンピュー
ター(マイコン)と入出力装置が1枚
の基板にまとまっている物。
パソコンで言うと、CPU・メモリ・入
出力(マウスやディスプレイに繋がる
ポート)・電源などを備えていて、プ
ログラムが可能。
ラピッドプロトタイピングのためのマ
イコンボードはいろいろある。
mbed Arduino
maple Gainer
raspberrypi konashi
25
Arduinoとは
Arduino(アルドゥイーノ)は、AVRマイ
コンと入出力ポートを備えたマイコン
ボードと、Arduino言語の開発環境か
ら構成されるシステム。
仕様が公開されている オープンハード
ウェアなので、パーツを集めて自作す
る事もできる。Arduino UNO R3
26
バリエーション
Arduino Leonardo LilyPad Arduino Arduino Robot Arduino Esplora
A-Star 32U4 Micro Da Vinci 32U TinyDuino 8Pino
互換機
Arduinoブランド
29
Mac(ドライバのインストール)
1. Arduino UNOをUSBケーブルでMacに繋ぐ
(何も表示されなければそのまま次のページへ)
2. ダイアログ表示 [新しいネットワークインターフェースが接続されました]
3. [ネットワーク環境設定] ボタンを押して、設定ウィンドウを開き、[適用]
30
Mac(シリアルポートとボードの選択)
1. http://arduino.cc/en/Main/Software からMacOSX用のファイルをDL
2. DLしたファイルを解凍して、Arduino.appをApplicationsに移動
3. Arduino.appを起動(Javaが入っていない場合は、インストールする)
4. メニュー[ツール][シリアルポート]から
/dev/tty.usbmodem123/, /dev/cu.usbmodem123/ を選択
USBのポートと機器によって決まる文字列。
5. メニュー[ツール][ボード]から [Arduino Uno] を選択
31
Windows 7
1. http://arduino.cc/en/Main/Software からWindows用のファイルをDL。展開する。
2. Arduino UNOをUSBケーブルでMacに繋ぐ
3. [コントロールパネル][システム][デバイスマネージャー]
4. Arduino UNOまたは不明なデバイス、として見つかるのでプロパティを開き [ド
ライバーの更新]をクリック
5. [一覧または特定の場所からインストールする] を選び、ダウンロードしたフォル
ダの中の [drivers] を選択する
6. ArduinoUNO.infがインストールされる。
7. ポート(COMとLPT)にArduinoUNO R3が表示されている事とポート番号を確
認する。
32
Windows 8
http://mag.switch-science.com/2013/02/05/use_uno_on_win8/
1. ダウンロードしたファイルを[Program Files]などに移動
2. Arduino IDE を起動
3. メニュー[ツール][シリアルポート]からさっき確認したCOM番号を選択。
4. メニュー[ツール][ボード]から [Arduino Uno] を選択
36
ピン番号の変更
pinMode(13, OUTPUT);
digitalWrite(13, HIGH);
digitalWrite(13, LOW);
pinMode(12, OUTPUT);
digitalWrite(12, HIGH);
digitalWrite(12, LOW);
37
マイコンボードに書き込む
→のボタンをクリック。
プログラムがコンパイルされ、
Arduinoに書き込まれます。
書き込みが終わると、自動的に起動
して、プログラムを実行する。
LEDが1秒ごとに点滅すれば成功。
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin 13 as an output.
pinMode(12, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(12, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(12, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
38
Blinkのコード
39
スケッチの処理の流れ
setup() 最初の1回だけの処理
変数の初期化、ピンの設定など
loop() 繰り返し行う処理
センサーの読み取り、LEDのOn/Offなど
宣言部
・変数の宣言
・ライブラリの読み込みなど
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin 13 as an output.
pinMode(12, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(12, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(12, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
40
Blinkのコード
// の行はコメント。
プログラムの挙動には影響しない。
どのような処理をしているか等のメモを書く
範囲指定の場合は、/* ~ */
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin 13 as an output.
pinMode(12, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(12, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(12, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
41
Blinkのコード
{ } で囲まれた範囲が、setup()
という名前で呼び出される。
Arduinoの起動時に1回呼ばれ
るので、初期化処理を行う。
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin 13 as an output.
pinMode(12, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(12, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(12, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
42
Blinkのコード
pinModeは、ピンの使い方を指定する関数。
12番ピンをOUTPUT(出力)として使う。
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin 13 as an output.
pinMode(12, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(12, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(12, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
43
Blinkのコード
loop()は、繰り返し呼び出される関数。
センサーの読み取りやLEDの点等など、主要
な機能はここに書く。
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin 13 as an output.
pinMode(12, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(12, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(12, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
44
Blinkのコード
digitalWrite()は、指定したピンの状態を設定します。
HIGHは5Vを流し、LOWは電圧をかけない。
// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin 13 as an output.
pinMode(12, OUTPUT);
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(12, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(12, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
45
Blinkのコード
delay()は、指定された時間だけ処理を止める。
時間の単位はミリ秒。1ミリ秒は1/1000秒。
46
Blinkのコードを改造
void setup() {
pinMode(12, OUTPUT);
}
void loop() {
digitalWrite(12, HIGH);
delay(200);
digitalWrite(12, LOW);
delay(200);
}
点灯200msec, 消灯200msec
0.2秒毎に点滅する。
47
Blinkのコードを改造
void setup() {
pinMode(12, OUTPUT);
}
void loop() {
digitalWrite(12, HIGH);
delay(1);
digitalWrite(12, LOW);
delay(9);
}
点灯1msec, 消灯9msec
高速で点滅するため、10%の明るさに見える。
50
サンプルスケッチ
Arduino IDE のメニュー
[ファイル]-
[スケッチの例]-
[02.Digital]-
[Button] を開く。
const int ledPin = 13;
const int ledPin = 12;
52
スケッチの説明const int buttonPin = 2;
const int ledPin = 12;
// variables will change:
int buttonState = 0; // variable for reading the pushbutton status
void setup() {
// initialize the LED pin as an output:
pinMode(ledPin, OUTPUT);
// initialize the pushbutton pin as an input:
pinMode(buttonPin, INPUT);
}
buttonPinを2番ピン
ledPinを12番ピンと設定する
53
スケッチの説明const int buttonPin = 2;
const int ledPin = 12;
// variables will change:
int buttonState = 0;
void setup() {
// initialize the LED pin as an output:
pinMode(ledPin, OUTPUT);
// initialize the pushbutton pin as an input:
pinMode(buttonPin, INPUT);
}
buttonPinの状態を記憶する。
HIGH = 1, LOW = 0
54
スケッチの説明const int buttonPin = 2;
const int ledPin = 12;
// variables will change:
int buttonState = 0;
void setup() {
// initialize the LED pin as an output:
pinMode(ledPin, OUTPUT);
// initialize the pushbutton pin as an input:
pinMode(buttonPin, INPUT);
}
ledPinを出力モードに
buttonPinを入力モードに設定
55
スケッチの説明void loop() {
buttonState = digitalRead(buttonPin);
if (buttonState == HIGH) {
// turn LED on:
digitalWrite(ledPin, HIGH);
}
else {
// turn LED off:
digitalWrite(ledPin, LOW);
}
}
buttonPinの状態を読み取り、
buttonStateへ格納
56
スケッチの説明void loop() {
buttonState = digitalRead(buttonPin);
if (buttonState == HIGH) {
// turn LED on:
digitalWrite(ledPin, HIGH);
}
else {
// turn LED off:
digitalWrite(ledPin, LOW);
}
}
buttonStateがHIGHならば、
ledPinをHIGH(LEDを点灯)
57
スケッチの説明void loop() {
buttonState = digitalRead(buttonPin);
if (buttonState == HIGH) {
// turn LED on:
digitalWrite(ledPin, HIGH);
}
else {
// turn LED off:
digitalWrite(ledPin, LOW);
}
}
buttonStateがHIGHでなければ、
ledPinをLOW(LEDを消灯)
60
参考サイト
• Arduino リファレンス
http://www.arduino.cc/en/Reference/HomePage
• Arduino 日本語リファレンス
http://www.musashinodenpa.com/arduino/ref/
• なんでも作っちゃう、かも。
http://arms22.blog91.fc2.com/blog-entry-297.html
61
参考書籍
• Arduinoをはじめよう 第2版 (Make:PROJECTS)
• Prototyping Lab ―「作りながら考える」ためのArduino実践レシピ
(Make:PROJECTS)
• Access to Materials -デザイン/アート/建築のためのマテリアルコンピュー
ティング入門
• わかる!電子工作の基本100
• 作る・できる/基礎入門 電子工作の素