Arduino/ProtoSnap Pro Miniを試す
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
[[FrontPage]]
#contents
2013/12/31からのアクセス回数 &counter;
Arduinoやmbedが急速に普及し、ハードや制御とは全く縁のない...
活用しています。
ここでは、ブレッドボードでの配線も面倒という方にお薦めの...
参考にするのは、このボードの開発元のsparkfunの
[[ProtoSnap Pro Mini QUickstart Guide>https://www.sparkfu...
です。
** 最初の一歩 [#x645d9b7]
新しく何かをするときには、動き出すまでの「最初の一歩」が...
ProtoSnap Pro Miniには、Arduinoを試すために必要な以下のも...
- Arduino UNOをブレッドボードで使えるサイズに小さくしたAr...
- パソコンと通信したりプログラムを書き込む時に使用する通...
- タクトスイッチ
- 光センサー
- カラー(RGB)LED
- ブザー
&ref(ProtoSnap_Pro_Mini.png);
*** 最初は切り離さずに使う [#ya94b343]
これらの部品は切り離してブレッドボードでの実験の部品とし...
予め各部品はArduino Pro Miniとつながっており、箱から出し...
部品とArduino Pro Miniのピンの接続は以下のようになってい...
| 部品のピン | Arduino Pro Miniのピン |h
| ボタン | 7 |
| 光センサー | A0 |
| 緑のLED | 5 |
| 青のLED | 6 |
| 赤のLED | 3 |
| ブザー | 2 |
** ArduinoとFTDIドライバーのインストール [#k1f15d25]
[Arduinoのダウンロードサイト>http://arduino.cc/en/Main/So...
私の場合Mac OS Xなので、arduino-1.0.5-macosx.zipをダウン...
Windowsの場合には、FTDIのドライバーをインストールする必要...
[[FTDIのサイト>http://www.ftdichip.com/Support/Documents/...
** LEDピカピカを動かす [#r1216baf]
Arduino IDEの素晴らしい機能にサンプルプログラムを読み込み...
これを使えば、プログラムをタイピングすることなくArduino上...
*** 例題スケッチのロード [#f8a975a0]
Arduinoでは、Arduinoを制御するプログラムのことをスケッチ...
例題プログラムとしてLEDをピカピカさせるBlinkスケッチをロ...
ファイル→スケッチの例→01.basics→Blinkを選択すると、以下の...
&ref(Blink_src.png);
*** プログラムの書き込み [#db9f245b]
プログラムの書き込みの前にUSBミニBケーブルでPCとProtoSnap...
この時Arduino Pro Miniの赤いLEDが点灯していることを確認し...
続いて、ツール→マイコンボード→Arduino UNOを選択します。((...
プログラムの書き込みはUSBで接続されている通信ボードFTDI B...
通信を行う際には、シリアルポートを指定する必要があります。
ルール→シリアルポート→/dev/tty.usbserial-xxxxxxというポー...
最後に先の画面説明で赤で囲った書き込み用ボタンをクリック...
プログラムのコンパイルを行った後、下部のメッセージに「マ...
Arduino Pro Miniの緑のLEDがピカピカ点滅していることを確認...
これで、Arduino IDEの環境が正しく動き、Arduinoのスケッチ...
** スイッチとLEDを連携させる [#hadb06a2]
続いてProtoSnap Pro Miniに付いている部品の使ってみましょ...
Arduinoの日本語のマニュアルが武蔵野電波のホームページ
[[Arduinoマニュアル>http://www.musashinodenpa.com/arduino...
に公開されていますので、分からない場合は参照して下さい。
ボタンスイッチのピン番号は7、LEDのピン番号は13に割り当て...
デジタルの入力や出力を行う関数としてpinModeとdigitalRead,...
これらを使ってボタンが押された時にLEDが点灯するスケッチを...
Arduino IDEからファイル→新規ファイルを選択し、以下のスケ...
貼り付けてください。
#pre{{
int buttonPin = 7; // ボタンは 7番ピンにつながっています
int ledPin = 13; // LEDは 13番ピンにつながっています
int buttonStatus; // ボタンの状態を保持するための変数
void setup() {
pinMode(buttonPin, INPUT); // ボタンピンを入力として初...
pinMode(ledPin, OUTPUT); // LEDピンを出力として初期設定
}
void loop() {
/* 最初にボタンの状態を読み込みます
HIGH = ボタンが押されていない状態
LOW = ボタンが押されている状態 */
buttonStatus = digitalRead(buttonPin);
if (buttonStatus == LOW) {
digitalWrite(ledPin, HIGH); // ボタンが押されていた...
}
else {
digitalWrite(ledPin, LOW); // そうでなければLEDを消す
}
}
}}
先ほどと同様に書き込みボタンをクリックしてスケッチをArdui...
ボタンを押すとLEDが点灯することを確認してください。
ボタンを押したときにLOWになっている理由を説明します。
ボタンの回路は、以下の様になっています。D7の先に10KΩの抵...
D7の先にスイッチがつながっています。
スイッチが押されていない時にD7をHIGHとするために、抵抗が...
抵抗といいます。スイッチを押すとスイッチの先のGNDにつなが...
スイッチの値となるのです。
&ref(LED_sch.png);
** カラー(RGB)LEDで色づけ [#z42d6f07]
LEDの色を変えるには、LEDのオンとオフを繰り返すPWMという方...
この時のオンとオフの割合でLEDの色合いを調節しています。Ar...
アナログと名前が付いていますが、実際にはデジタル制御でア...
先ほどのスケッチを以下のスケッチと入れ替えて、Arduinoに書...
#pre{{
int redPin = 3; // 赤色のLED
int greenPin = 5; // 緑色のLED
int bluePin = 6; // 青色のLED
void setup() {
/* カラー(RGB)LEDを出力として初期化 */
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
analogWrite(redPin, 0); // 赤色を常にオン
analogWrite(greenPin, 255); //緑色を完全にオフ
analogWrite(bluePin, 220); // 青色を少しオン
}
void loop() {
/* LEDの色合いを少しずつ変えます */
/* 最初に赤が点灯し、だんだん暗くなっていき、最後に消え...
for (int brightness=0; brightness<=255; brightness++) {
analogWrite(redPin, brightness);
delay(5); // delay a bit for visibility
}
/* 次に逆に赤色がだんだん明るくなります */
for (int brightness=255; brightness>=0; brightness--) {
analogWrite(redPin, brightness);
delay(5); // delay a bit for visibility
}
}
}}
*** どうして0の時にLEDがオンになるのか [#c0766804]
Arduino Pro MiniのLEDの回路は、以下の様になっています。青...
Greenと書かれたLEDの向きがGNDに向かっていますので、ピンが...
&ref(Pro-Mini_sch.png);
それに対して、カラー(RGB)LEDの回路を見ると、LEDの向きがVC...
これだとピンの値がLOWの時にLEDが点灯します。
それで、明るさを調整する時に指定する値(0-255)が逆になっ...
&ref(RGB_LED_sch.png);
** 光センサーの電圧を測ってみる [#l1649c79]
これまでは、デジタルピンを使ってきましたが、電圧を読み込...
アナログピンの電圧を読み込むときには、analogRead関数を使...
光センサーは、A0のアナログピンにつながっていますので、光...
先ほどのスケッチを以下のスケッチと入れ替えて、Arduinoに書...
#pre{{
int lightPin = A0; // 光センサーはA0につながっている
int lightReading; // 光センサーからの値を保持する変数
void setup() {
/* シリアル通信の速度を9600ボーにセットし、最初にHello…...
Serial.begin(9600);
Serial.println("Hello world, let's read some light sens...
}
void loop() {
lightReading = analogRead(lightPin); // 光センサーから...
Serial.println(lightReading, DEC); // 読み込んだ値をシ...
delay(250); // 次の読み込みまで待つ
}
}}
結果を見るには、Arduino IDEのシリアルモニターを使用します。
ツール→シリアルモニターを選択し、シリアルモニターを開きま...
以下の様な画面が表示されますので、通信速度が9600 baudにな...
明るさによって出力される値が変わりますので、試してみてく...
&ref(SerialMonitor.png);
** ブザーを使って音を出す [#r1571551]
ブザーを使った例題は分かりづらいので、Arduino in Actionの...
シリアルモニターを使ってド、レ、ミ、ソ、ラの音を1, 2, 3, ...
ブザーの出力は2番ピンを使い、tone関数を使って音の高さと鳴...
#pre{{
// Tone
int toneDuration = 40; // 音のでる間隔
int speakerPin = 2; //ブザーのピン番号
int index = 0;
int tones[]={262,294,330,392,440}; // ド、レ、ミ、ソ、ラ
void setup() {
/* シリアル通信の速度を9600ボーにセットし、最初にHello…...
Serial.begin(9600);
Serial.println("Input [1-5]!");
}
void loop() {
index = Serial.read();
if (index >= '1' && index <= '5') {
index = index - '1';
tone(speakerPin, tones[index], toneDuration);
}
delay(500); // 次の読み込みまで待つ
}
}}
シリアルモニターに123 123 4321232と入力してみてください。...
** コメント [#d7367842]
#vote(おもしろかった[18],そうでもない[1],わかりずらい[1])
皆様のご意見、ご希望をお待ちしております。
#comment_kcaptcha
終了行:
[[FrontPage]]
#contents
2013/12/31からのアクセス回数 &counter;
Arduinoやmbedが急速に普及し、ハードや制御とは全く縁のない...
活用しています。
ここでは、ブレッドボードでの配線も面倒という方にお薦めの...
参考にするのは、このボードの開発元のsparkfunの
[[ProtoSnap Pro Mini QUickstart Guide>https://www.sparkfu...
です。
** 最初の一歩 [#x645d9b7]
新しく何かをするときには、動き出すまでの「最初の一歩」が...
ProtoSnap Pro Miniには、Arduinoを試すために必要な以下のも...
- Arduino UNOをブレッドボードで使えるサイズに小さくしたAr...
- パソコンと通信したりプログラムを書き込む時に使用する通...
- タクトスイッチ
- 光センサー
- カラー(RGB)LED
- ブザー
&ref(ProtoSnap_Pro_Mini.png);
*** 最初は切り離さずに使う [#ya94b343]
これらの部品は切り離してブレッドボードでの実験の部品とし...
予め各部品はArduino Pro Miniとつながっており、箱から出し...
部品とArduino Pro Miniのピンの接続は以下のようになってい...
| 部品のピン | Arduino Pro Miniのピン |h
| ボタン | 7 |
| 光センサー | A0 |
| 緑のLED | 5 |
| 青のLED | 6 |
| 赤のLED | 3 |
| ブザー | 2 |
** ArduinoとFTDIドライバーのインストール [#k1f15d25]
[Arduinoのダウンロードサイト>http://arduino.cc/en/Main/So...
私の場合Mac OS Xなので、arduino-1.0.5-macosx.zipをダウン...
Windowsの場合には、FTDIのドライバーをインストールする必要...
[[FTDIのサイト>http://www.ftdichip.com/Support/Documents/...
** LEDピカピカを動かす [#r1216baf]
Arduino IDEの素晴らしい機能にサンプルプログラムを読み込み...
これを使えば、プログラムをタイピングすることなくArduino上...
*** 例題スケッチのロード [#f8a975a0]
Arduinoでは、Arduinoを制御するプログラムのことをスケッチ...
例題プログラムとしてLEDをピカピカさせるBlinkスケッチをロ...
ファイル→スケッチの例→01.basics→Blinkを選択すると、以下の...
&ref(Blink_src.png);
*** プログラムの書き込み [#db9f245b]
プログラムの書き込みの前にUSBミニBケーブルでPCとProtoSnap...
この時Arduino Pro Miniの赤いLEDが点灯していることを確認し...
続いて、ツール→マイコンボード→Arduino UNOを選択します。((...
プログラムの書き込みはUSBで接続されている通信ボードFTDI B...
通信を行う際には、シリアルポートを指定する必要があります。
ルール→シリアルポート→/dev/tty.usbserial-xxxxxxというポー...
最後に先の画面説明で赤で囲った書き込み用ボタンをクリック...
プログラムのコンパイルを行った後、下部のメッセージに「マ...
Arduino Pro Miniの緑のLEDがピカピカ点滅していることを確認...
これで、Arduino IDEの環境が正しく動き、Arduinoのスケッチ...
** スイッチとLEDを連携させる [#hadb06a2]
続いてProtoSnap Pro Miniに付いている部品の使ってみましょ...
Arduinoの日本語のマニュアルが武蔵野電波のホームページ
[[Arduinoマニュアル>http://www.musashinodenpa.com/arduino...
に公開されていますので、分からない場合は参照して下さい。
ボタンスイッチのピン番号は7、LEDのピン番号は13に割り当て...
デジタルの入力や出力を行う関数としてpinModeとdigitalRead,...
これらを使ってボタンが押された時にLEDが点灯するスケッチを...
Arduino IDEからファイル→新規ファイルを選択し、以下のスケ...
貼り付けてください。
#pre{{
int buttonPin = 7; // ボタンは 7番ピンにつながっています
int ledPin = 13; // LEDは 13番ピンにつながっています
int buttonStatus; // ボタンの状態を保持するための変数
void setup() {
pinMode(buttonPin, INPUT); // ボタンピンを入力として初...
pinMode(ledPin, OUTPUT); // LEDピンを出力として初期設定
}
void loop() {
/* 最初にボタンの状態を読み込みます
HIGH = ボタンが押されていない状態
LOW = ボタンが押されている状態 */
buttonStatus = digitalRead(buttonPin);
if (buttonStatus == LOW) {
digitalWrite(ledPin, HIGH); // ボタンが押されていた...
}
else {
digitalWrite(ledPin, LOW); // そうでなければLEDを消す
}
}
}}
先ほどと同様に書き込みボタンをクリックしてスケッチをArdui...
ボタンを押すとLEDが点灯することを確認してください。
ボタンを押したときにLOWになっている理由を説明します。
ボタンの回路は、以下の様になっています。D7の先に10KΩの抵...
D7の先にスイッチがつながっています。
スイッチが押されていない時にD7をHIGHとするために、抵抗が...
抵抗といいます。スイッチを押すとスイッチの先のGNDにつなが...
スイッチの値となるのです。
&ref(LED_sch.png);
** カラー(RGB)LEDで色づけ [#z42d6f07]
LEDの色を変えるには、LEDのオンとオフを繰り返すPWMという方...
この時のオンとオフの割合でLEDの色合いを調節しています。Ar...
アナログと名前が付いていますが、実際にはデジタル制御でア...
先ほどのスケッチを以下のスケッチと入れ替えて、Arduinoに書...
#pre{{
int redPin = 3; // 赤色のLED
int greenPin = 5; // 緑色のLED
int bluePin = 6; // 青色のLED
void setup() {
/* カラー(RGB)LEDを出力として初期化 */
pinMode(redPin, OUTPUT);
pinMode(greenPin, OUTPUT);
pinMode(bluePin, OUTPUT);
analogWrite(redPin, 0); // 赤色を常にオン
analogWrite(greenPin, 255); //緑色を完全にオフ
analogWrite(bluePin, 220); // 青色を少しオン
}
void loop() {
/* LEDの色合いを少しずつ変えます */
/* 最初に赤が点灯し、だんだん暗くなっていき、最後に消え...
for (int brightness=0; brightness<=255; brightness++) {
analogWrite(redPin, brightness);
delay(5); // delay a bit for visibility
}
/* 次に逆に赤色がだんだん明るくなります */
for (int brightness=255; brightness>=0; brightness--) {
analogWrite(redPin, brightness);
delay(5); // delay a bit for visibility
}
}
}}
*** どうして0の時にLEDがオンになるのか [#c0766804]
Arduino Pro MiniのLEDの回路は、以下の様になっています。青...
Greenと書かれたLEDの向きがGNDに向かっていますので、ピンが...
&ref(Pro-Mini_sch.png);
それに対して、カラー(RGB)LEDの回路を見ると、LEDの向きがVC...
これだとピンの値がLOWの時にLEDが点灯します。
それで、明るさを調整する時に指定する値(0-255)が逆になっ...
&ref(RGB_LED_sch.png);
** 光センサーの電圧を測ってみる [#l1649c79]
これまでは、デジタルピンを使ってきましたが、電圧を読み込...
アナログピンの電圧を読み込むときには、analogRead関数を使...
光センサーは、A0のアナログピンにつながっていますので、光...
先ほどのスケッチを以下のスケッチと入れ替えて、Arduinoに書...
#pre{{
int lightPin = A0; // 光センサーはA0につながっている
int lightReading; // 光センサーからの値を保持する変数
void setup() {
/* シリアル通信の速度を9600ボーにセットし、最初にHello…...
Serial.begin(9600);
Serial.println("Hello world, let's read some light sens...
}
void loop() {
lightReading = analogRead(lightPin); // 光センサーから...
Serial.println(lightReading, DEC); // 読み込んだ値をシ...
delay(250); // 次の読み込みまで待つ
}
}}
結果を見るには、Arduino IDEのシリアルモニターを使用します。
ツール→シリアルモニターを選択し、シリアルモニターを開きま...
以下の様な画面が表示されますので、通信速度が9600 baudにな...
明るさによって出力される値が変わりますので、試してみてく...
&ref(SerialMonitor.png);
** ブザーを使って音を出す [#r1571551]
ブザーを使った例題は分かりづらいので、Arduino in Actionの...
シリアルモニターを使ってド、レ、ミ、ソ、ラの音を1, 2, 3, ...
ブザーの出力は2番ピンを使い、tone関数を使って音の高さと鳴...
#pre{{
// Tone
int toneDuration = 40; // 音のでる間隔
int speakerPin = 2; //ブザーのピン番号
int index = 0;
int tones[]={262,294,330,392,440}; // ド、レ、ミ、ソ、ラ
void setup() {
/* シリアル通信の速度を9600ボーにセットし、最初にHello…...
Serial.begin(9600);
Serial.println("Input [1-5]!");
}
void loop() {
index = Serial.read();
if (index >= '1' && index <= '5') {
index = index - '1';
tone(speakerPin, tones[index], toneDuration);
}
delay(500); // 次の読み込みまで待つ
}
}}
シリアルモニターに123 123 4321232と入力してみてください。...
** コメント [#d7367842]
#vote(おもしろかった[18],そうでもない[1],わかりずらい[1])
皆様のご意見、ご希望をお待ちしております。
#comment_kcaptcha
ページ名:
SmartDoc