Arduino勉強会/03-ProtoSnap Pro Miniを使ってみる(その2)
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
[[Arduino勉強会]]
#contents
2014/02/16からのアクセス回数 &counter;
こちらは、次回2月22日の勉強会の資料と補足情報です。
** パソコンからArduinoにデータを送る [#h90e4a6e]
前回の光センサーの例題では、Arduinoからパソコンに読み込ん...
今回は、パソコンから数字を送ってProtoSnap Pro Miniの圧電...
[[Arduino/ProtoSnap Pro Miniを試す]]で紹介した「ブザーを...
この例題は、ド、レ、ミ、ド、ラの5つの音に対して、パソコ...
指定された音をArduinoから鳴らすという簡単なものです。
音階と周波数については、以下のページが見やすいです。
- [[音階と周波数>http://hpcgi3.nifty.com/prismwave/wiki/w...
音の出力には、tone関数を使います。
以下のスケッチをコピー&ペーストして、Arduinoに書き込んで...
#pre{{
// Tone
int toneDuration = 40; // 音のでる間隔(40ミリ秒)
int speakerPin = 2; //ブザーのピン番号
int index = 0; // 何番目の配列かを示す値(...
char ch; // パソコンから読み込んだ...
int tones[]={262,294,330,392,440}; // ド、レ、ミ、ソ、ラ
void setup() {
/* シリアル通信の速度を9600ボーにセットし、最初にHello…...
Serial.begin(9600);
Serial.println("Input [1-5]!");
}
void loop() {
ch = Serial.read(); // パソコンから1文字読み込む
if (ch >= '1' && ch <= '5') { // 読み込んだ値が1...
index = ch - '1'; // 1の文字...
tone(speakerPin, tones[index], toneDuration);
}
delay(500); // 次の読み込みまで待つ
}
}}
次に、パソコンのArduino IDEのシリアルモニターを開きます。
Arduino IDEのツールメニューからシリアルモニターを選択(CT...
ここで、右下の転送速度が9600 baud(ボーと呼びます)になっ...
シリアルモニターの入力欄に123 123 4321232と入力してみてく...
&ref(Serial_monitor.png);
** ProcessingとArduinoの連携 [#gf5677a0]
2回目の勉強会でパソコンとArduinoを連携させることはできな...
Arduinoの兄弟プロジェクトProcessingを使ってArduinoの光セ...
*** Processingのダウンロード [#gf357580]
最初にProcessingを以下のサイトからバージョン1.5.1をダウン...
https://processing.org/download/?processing
&ref(Download_site.png);
Windowsの場合、ダウンロードしたzipファイルを解凍すると、p...
** 光センサーの値をパソコンに送る [#a6073b1e]
前回の光センサーの例題では、センサーから読み取った値を文...
Processingの例題では、読み込んだ値をそのまま送ります。
((注意:delayの値を100より小さくするとスケッチの書き込み...
#pre{{
int lightPin = A0; // 光センサーはA0につながっている
int lightReading; // 光センサーからの値を保持する変数
void setup() {
/* シリアル通信の速度を9600ボーにセットし、最初にHello…...
Serial.begin(9600);
}
void loop() {
lightReading = analogRead(lightPin); // 光センサーから...
Serial.write(lightReading); // 読み込んだ...
delay(100); // 次の読み込みまで待つ
}
}}
スケッチのArduinoへの書込が完了したら、シリアルモニターを...
メニューからツール→シリアルモニターを選択して、なにやら変...
これは、光センサーの値をそのままパソコンに送っているため...
&ref(Light-Sensor-value.png);
&color(red){確認が終わったら、必ずシリアルモニターを閉じ...
** Arduinoから送られた値をパソコンで表示 [#vc413b38]
processingを起動してみましょう。何となくArduino IDEと似て...
&ref(processing-startup-win.png);
*** Processingのスケッチ [#jd49494c]
ProcessingでArduinoからの情報を受け取る例題として、File→e...
今回は、これを少し変更してみます。
以下のスケッチをProcessingにコピー&ペーストしてください。
((コピー&ペーストで最後の}を入れ忘れるとFound one too man...
#pre{{
/**
* Simple Read
* シリアルポートから値を読み込み、四角の色を変える例題で...
*/
import processing.serial.*;
Serial myPort; // シリアルポートを保持する変数myPortを宣...
int val; // 読み込んだ値を保持する変数valを宣言しま...
void setup()
{
size(200, 200);
// MacだとSerial.list()[0]がシリアルポートになっていま...
// Windowsでは、Serial.list()[0]がCOM1なので、Arduinoで
// 使っているシリアルポートをSerial.list()[n]のnを調節...
// ください.
String portName = Serial.list()[0];
println(portName); // COMnを確認するために、portNam...
myPort = new Serial(this, portName, 9600); // シリ...
}
void draw()
{
if ( myPort.available() > 0) { // データが送られてきたら
val = myPort.read(); // シリアルポートmyPort...
}
background(255); // 背景色を白にセット
fill(val); // 読み込んだ値で...
rect(50, 50, 100, 100); // 四角を表示
}
}}
Arduinoの例題ではCOMnをセットしましたが、Processingでは、...
スケッチの以下の部分の数字を調節してみてください。
#pre{{
String portName = Serial.list()[0];
}}
ArduinoとProcessingを動かしてみて下さい。画面に以下のよう...
に反応して色が変わるのが分かります。
&ref(processing_draw.png);
今回は、これでお終いです。
次回は、いよいよProtoSnap Pro Miniをバラバラにして、ブレ...
** 補足 [#h068a5a8]
2月22日のArduino勉強会で気づいた点、説明が不足していた部...
*** 配列って何 [#sf3b9e34]
変数は、値を保持する入れ物(箱)だと説明しましたが、配列...
#pre{{
tones[n]
}}
のようにn番目の数字をカギ括弧[]で括って使います。配列のイ...
&ref(array.png);
パソコンから読み込んだ文字chから'1'を引くことでtonesのイ...
ASCIIコードで0から9の数字が連続して定義されていることを...
#pre{{
index = ch - '1'; // 1の文字...
}}
*** 文字コードって何 [#a90dba90]
「ブザーを使って音を出す」の例題では、パソコンから送られ...
((これをインデックスと言います))indexに変える部分で文字コ...
ASCIIコードで文字コードについて説明します。
((MacOS等のターミナルソフトでman asciiとして出力された表...
&ref(ascii-code.png);
パソコンでは、人が使っている文字をパソコンで理解できる数...
ASCIIコードでは65という数値で表されます。光センサーの値を...
ASCIIコードの最初の方は、制御コードと言って目に見えない文...
このような文字コードを使ってパソコンが文字を表示している...
** コメント [#bc6b8ae8]
#vote(おもしろかった[5],そうでもない[0],わかりずらい[3])
皆様のご意見、ご希望をお待ちしております。勉強会で分から...
スパム防止に画像の文字列も入力してください。
#comment_kcaptcha
終了行:
[[Arduino勉強会]]
#contents
2014/02/16からのアクセス回数 &counter;
こちらは、次回2月22日の勉強会の資料と補足情報です。
** パソコンからArduinoにデータを送る [#h90e4a6e]
前回の光センサーの例題では、Arduinoからパソコンに読み込ん...
今回は、パソコンから数字を送ってProtoSnap Pro Miniの圧電...
[[Arduino/ProtoSnap Pro Miniを試す]]で紹介した「ブザーを...
この例題は、ド、レ、ミ、ド、ラの5つの音に対して、パソコ...
指定された音をArduinoから鳴らすという簡単なものです。
音階と周波数については、以下のページが見やすいです。
- [[音階と周波数>http://hpcgi3.nifty.com/prismwave/wiki/w...
音の出力には、tone関数を使います。
以下のスケッチをコピー&ペーストして、Arduinoに書き込んで...
#pre{{
// Tone
int toneDuration = 40; // 音のでる間隔(40ミリ秒)
int speakerPin = 2; //ブザーのピン番号
int index = 0; // 何番目の配列かを示す値(...
char ch; // パソコンから読み込んだ...
int tones[]={262,294,330,392,440}; // ド、レ、ミ、ソ、ラ
void setup() {
/* シリアル通信の速度を9600ボーにセットし、最初にHello…...
Serial.begin(9600);
Serial.println("Input [1-5]!");
}
void loop() {
ch = Serial.read(); // パソコンから1文字読み込む
if (ch >= '1' && ch <= '5') { // 読み込んだ値が1...
index = ch - '1'; // 1の文字...
tone(speakerPin, tones[index], toneDuration);
}
delay(500); // 次の読み込みまで待つ
}
}}
次に、パソコンのArduino IDEのシリアルモニターを開きます。
Arduino IDEのツールメニューからシリアルモニターを選択(CT...
ここで、右下の転送速度が9600 baud(ボーと呼びます)になっ...
シリアルモニターの入力欄に123 123 4321232と入力してみてく...
&ref(Serial_monitor.png);
** ProcessingとArduinoの連携 [#gf5677a0]
2回目の勉強会でパソコンとArduinoを連携させることはできな...
Arduinoの兄弟プロジェクトProcessingを使ってArduinoの光セ...
*** Processingのダウンロード [#gf357580]
最初にProcessingを以下のサイトからバージョン1.5.1をダウン...
https://processing.org/download/?processing
&ref(Download_site.png);
Windowsの場合、ダウンロードしたzipファイルを解凍すると、p...
** 光センサーの値をパソコンに送る [#a6073b1e]
前回の光センサーの例題では、センサーから読み取った値を文...
Processingの例題では、読み込んだ値をそのまま送ります。
((注意:delayの値を100より小さくするとスケッチの書き込み...
#pre{{
int lightPin = A0; // 光センサーはA0につながっている
int lightReading; // 光センサーからの値を保持する変数
void setup() {
/* シリアル通信の速度を9600ボーにセットし、最初にHello…...
Serial.begin(9600);
}
void loop() {
lightReading = analogRead(lightPin); // 光センサーから...
Serial.write(lightReading); // 読み込んだ...
delay(100); // 次の読み込みまで待つ
}
}}
スケッチのArduinoへの書込が完了したら、シリアルモニターを...
メニューからツール→シリアルモニターを選択して、なにやら変...
これは、光センサーの値をそのままパソコンに送っているため...
&ref(Light-Sensor-value.png);
&color(red){確認が終わったら、必ずシリアルモニターを閉じ...
** Arduinoから送られた値をパソコンで表示 [#vc413b38]
processingを起動してみましょう。何となくArduino IDEと似て...
&ref(processing-startup-win.png);
*** Processingのスケッチ [#jd49494c]
ProcessingでArduinoからの情報を受け取る例題として、File→e...
今回は、これを少し変更してみます。
以下のスケッチをProcessingにコピー&ペーストしてください。
((コピー&ペーストで最後の}を入れ忘れるとFound one too man...
#pre{{
/**
* Simple Read
* シリアルポートから値を読み込み、四角の色を変える例題で...
*/
import processing.serial.*;
Serial myPort; // シリアルポートを保持する変数myPortを宣...
int val; // 読み込んだ値を保持する変数valを宣言しま...
void setup()
{
size(200, 200);
// MacだとSerial.list()[0]がシリアルポートになっていま...
// Windowsでは、Serial.list()[0]がCOM1なので、Arduinoで
// 使っているシリアルポートをSerial.list()[n]のnを調節...
// ください.
String portName = Serial.list()[0];
println(portName); // COMnを確認するために、portNam...
myPort = new Serial(this, portName, 9600); // シリ...
}
void draw()
{
if ( myPort.available() > 0) { // データが送られてきたら
val = myPort.read(); // シリアルポートmyPort...
}
background(255); // 背景色を白にセット
fill(val); // 読み込んだ値で...
rect(50, 50, 100, 100); // 四角を表示
}
}}
Arduinoの例題ではCOMnをセットしましたが、Processingでは、...
スケッチの以下の部分の数字を調節してみてください。
#pre{{
String portName = Serial.list()[0];
}}
ArduinoとProcessingを動かしてみて下さい。画面に以下のよう...
に反応して色が変わるのが分かります。
&ref(processing_draw.png);
今回は、これでお終いです。
次回は、いよいよProtoSnap Pro Miniをバラバラにして、ブレ...
** 補足 [#h068a5a8]
2月22日のArduino勉強会で気づいた点、説明が不足していた部...
*** 配列って何 [#sf3b9e34]
変数は、値を保持する入れ物(箱)だと説明しましたが、配列...
#pre{{
tones[n]
}}
のようにn番目の数字をカギ括弧[]で括って使います。配列のイ...
&ref(array.png);
パソコンから読み込んだ文字chから'1'を引くことでtonesのイ...
ASCIIコードで0から9の数字が連続して定義されていることを...
#pre{{
index = ch - '1'; // 1の文字...
}}
*** 文字コードって何 [#a90dba90]
「ブザーを使って音を出す」の例題では、パソコンから送られ...
((これをインデックスと言います))indexに変える部分で文字コ...
ASCIIコードで文字コードについて説明します。
((MacOS等のターミナルソフトでman asciiとして出力された表...
&ref(ascii-code.png);
パソコンでは、人が使っている文字をパソコンで理解できる数...
ASCIIコードでは65という数値で表されます。光センサーの値を...
ASCIIコードの最初の方は、制御コードと言って目に見えない文...
このような文字コードを使ってパソコンが文字を表示している...
** コメント [#bc6b8ae8]
#vote(おもしろかった[5],そうでもない[0],わかりずらい[3])
皆様のご意見、ご希望をお待ちしております。勉強会で分から...
スパム防止に画像の文字列も入力してください。
#comment_kcaptcha
ページ名:
SmartDoc