• 検索結果がありません。

Arduinoで組込み制御

N/A
N/A
Protected

Academic year: 2021

シェア "Arduinoで組込み制御"

Copied!
37
0
0

読み込み中.... (全文を見る)

全文

(1)
(2)

Arduinoで組込み制御、目次

1、Arduinoとは? 2、Arduinoをダウンロードしよう 3、Arduinoのサンプルを使ってみよう 4、フルカラーLEDを点灯させるプログラムを書いてみよう 5、LCDディスプレイで文字を表示してみよう 6、小型DCモータを制御してみよう 7、マトリクスLEDで文字を点灯させよう

(3)

Arduinoとは?①

・Arduinoは、Processingをベースにしたソフト ウェアの開発環境でプログラミングをし、ハー ドウェアを制御することができる、フィジカル コンピューティングのプラットフォームです。 ・フィジカルコンピューティングとは、既存の ディスプレイやキーボードやマウスだけではな く必要に応じてハードウェアを使い、コン ピュータと人間とのコミュニケーションを実現 させるもの、新しいデザインや使い勝手の良い ものを生み出す、といったことです。

(4)

Arduinoとは?②

・Arduinoをもっとわかりやすく言えば、今までよ りも簡単なプログラムでマイコンを制御できて さらに電子部品なども、今までより自由な考え 方で回路を作ることができます。 ・Arduinoは、オープンソースで、Processingはも ちろん「Adobe Flash」、「Max/Msp」でも制御 することができます。 ・Arduino IEDとはソフトウェア開発環境です。

(5)

Arduinoとは?③

・Arduino IDEを使ってプログラムを書き、Arduino 本体にアップロードして実行させます。 ・Arduino IEDは無料でダウンロードできます。 ・Arduino IDEではプログラムをスケッチと呼びま すが、今回はそのままプログラムと書いています。 ・今回の実験はごく一部のプログラムのみの結果で プログラムはまだまだ沢山あります。

(6)

Arduino IDEをダウンロードしよう

・Arduinoのファイル を下のWebアドレス からダウンロード しよう。 ・Webアドレス http://arduino.cc/e n/Main/Software

(7)

ダウンロードしたファイル

・ダウンロードしたファイ ルを解凍し、ファイルを 開こう。 ・すると右のようなファイ ルが格納されています。 ・arduino.exeというファイ ルのショートカットを製 作して、ディスクトップ に貼り付けましょう。

(8)

Arduino IDEを起動させよう

・プログラムを書いたり

(9)

Arduino IDEの中にあるサンプルを

使ってみよう

(10)

Arduino本体のLEDを点灯させる

サンプルプログラム

・File→Examples→ Digital→Blinkでファ イルを開いてみよう。 ・プログラムを確認し 実行してみよう。 ・実行結果に問題がなけ れば、アップロードし てみよう。

(11)

Arduino本体のLEDを点灯させる

プログラムソース

int ledPin = 13; // LED connected to digital pin 13 // The setup() method runs once, when the sketch starts void setup() {

// initialize the digital pin as an output: pinMode(ledPin, OUTPUT);

}

// the loop() method runs over and over again, // as long as the Arduino has power

void loop() {

digitalWrite(ledPin, HIGH); // set the LED on delay(1000); // wait for a second digitalWrite(ledPin, LOW); // set the LED off delay(1000); // wait for a second }

(12)

Arduino本体のLEDが点灯する

プログラムの実行結果

(13)

フルカラーLEDを点灯させる

プログラムを書いてみよう

・新規(New)でファイ ルを開き、プログラム を書いてみよう。 ・先ほどのLEDの点灯と 同じくフルカラーLED のプログラムを確認ボ タンを押して間違えが なければアップロード する。

(14)

フルカラーLEDのプログラムソース

int i; int n_ms = 30; void led_off () { analogWrite(3, 255); // 赤を消す analogWrite(6, 255); // 緑を消す analogWrite(5, 255); // 青を消す } void setup() {

pinMode(4, OUTPUT); // anode common digitalWrite(4, HIGH); // 4番は常時 オン led_off(); } void loop() { // iの値が小さくなるにつれ明るく光る for (i = 255; i > 210; i--) { analogWrite(6, i); delay(n_ms); } led_off(); for(i = 255; i > 150; i-=2) { analogWrite(5, i); delay(n_ms); } led_off(); for(i = 255; i > 200; i--) { analogWrite(3, i); delay(n_ms); } led_off(); }

(15)

フルカラーLEDの実行結果

(16)

フルカラーLEDの実行結果

(17)

フルカラーLEDの結果の感想

・フルカラーLEDが赤色、青色、緑色へと順番に点 灯したら成功です。光る速度を変えてみたり、 色の順番を変えてみたりと、プログラムを変更 してみるのもよいと思います。 ・実際にはフルカラーLEDの色の変化が、目視では わかりづらいので、LEDに光拡散キャップを付 けた方が、色の変化がわかりやすいです。

(18)

LCDディスプレイで文字を

表示してみよう

・16文字×2行のキャ ラクタLDCを使って文 字を表示してみました。 ・今回使用したLCDはバッ クライトなしのもので す。可変抵抗は10KBを 使用しました。

(19)
(20)

LCDディスプレイで文字を

表示するプログラムを書く

・プログラムソース ・確認してアップロード

#include <LiquidCrystal.h> // LiquidCrystal display with: // rs on pin 12 // enable on pin 11 // d0, d1, d2, d3 on pins 5, 4, 3, 2 LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup()

{ // Print a message to the LCD. lcd.print("hello world");

}

void loop() {

(21)

LCDディスプレイで文字を

表示させた実行結果

(22)

LCDディスプレイで文字を

表示させた結果の感想

・Arduinoを使って、LCDディスプレイで文字 を表示させた結果、とても簡単なプログラ ムソースで文字が表示できることが確認で きました。応用でいろいろな計測結果の表 示や情報を表示させることもできるので、 さまざまな用途で使用できると感じました。 また今回はバックライトなしで、1行のみ の表示でしたが、時間があるときに2行の 表示や応用を試してみたいです。

(23)

小型DCモータを制御してみよう

・小型のDCモータを使って 正回転、逆回転の制御し てみました。 ・今回使用した部品は ・小型DCモータ ・モータドライバIC 「TA7291P」 ・可変抵抗10KB ・電池スナップ を使用しました。

(24)
(25)

小型DCモータを制御する

プログラムを書く

・プログラムソース ・確認してアップロード void setup(){ pinMode(1,OUTPUT); //信号用ピン pinMode(2,OUTPUT); //信号用ピン } void loop(){ //アナログ入力:0番ピンの値を2で割 る int val=analogRead(0)/2; //0~511

if(val>=255 && val<=256){ //静止 //LOW,LOWでデジタル出力 digitalWrite(1,LOW);

digitalWrite(2,LOW); }

else if(val>256){ //正転 //HIGH,LOWでデジタル出 力

digitalWrite(1,HIGH);

digitalWrite(2,LOW); //valが大きいほど出力値も大きくな る

analogWrite(3,val-256); //出力値:1~255

}else{ //逆転(val<255) //LOW,HIGH でデジタル出力 digitalWrite(1,LOW); digitalWrite(2,HIGH); //valが小さいほど出力値は大きくな る analogWrite(3,255-val); //出力値:1~255 } }

(26)

小型DCモータを制御した

実行結果

(27)

小型DCモータを制御した実行結果

逆回転(ボリューム左に回す)

(28)

小型DCモータを制御した

結果の感想①

・小型のDCモータを簡単なソースプログラム で制御することができました。ボリューム (可変抵抗)を右に回すと正回転、左に回 すと逆回転、真ん中で停止させるプログラ ムです。ボリュームの回し加減で回転速度 を変えることができます。また十分なパ ワーもあるので実用的な動作をさせるもの に使用できると感じました。

(29)

小型DCモータを制御した

結果の感想②

・応用によっては、ファンを回して制御させ たり、ラジコンのようなものを走らせたり とさまざまなものが動かせるようになりま す。ただし今回使用したモータドライバIC 「TA7291P」は、外部の電源が必要です。 データーシートにある外部電源は5V以上 となっていますが、今回の回路では6Vで も動かず、7V以上の電源でないと動きま せん。そのため今回9Vのアルカリ電池を 外部電源に使用しました。

(30)

マトリクスLEDで文字を

点灯させよう

・マトリクスLEDを 使って文字を点灯 させてみました。 ・今回使用したマト リクスLEDは8×8 の64ドットの赤 色マトリクスLDEで す。抵抗は1kΩを7 個使用しました。

(31)
(32)

マトリクスLEDで文字を点灯させる

プログラムを書く

・プログラムソース ・確認してアップロード boolean matrix[8][8]={ {0,0,0,1,1,0,0,0}, {0,0,1,0,0,1,0,0}, {0,1,0,0,0,0,1,0}, {0,1,0,0,0,0,1,0}, {0,1,0,0,0,0,1,0}, {0,1,1,1,1,1,1,0}, {0,1,0,0,0,0,1,0}, {0,1,0,0,0,0,1,0} }; void setup(){ for(int i=2;i<=17;i++){ pinMode(i,OUTPUT); digitalWrite(i,LOW); } }void loop(){ for(int i=2;i<=9;i++){ digitalWrite(i,HIGH); //行:HIGHで点灯 for(int j=10;j<=17;j++){ if(matrix[i-2][j-10]==1){//点灯条件 digitalWrite(j,LOW); //列:LOWで点灯 } //上のif文のかわりに以下でも可 // digitalWrite(j,!matrix[i-2][j-10]); delayMicroseconds(300);//0.03秒点灯 digitalWrite(j,HIGH);//オフにする } digitalWrite(i,LOW);//オフにする } }

(33)

マトリクスLEDで文字を点灯させた

実行結果

(34)

マトリクスLEDで文字を点灯させた

結果の感想

・これまでの実験よりも配線図がやや複雑で今 回の実験の中で1番大変でした。プログラム ソースはシンプルで、文字の他にも絵なども 点灯させることができます。使用した抵抗は 1kΩですが、値を変えることによって、 LEDの明るさを変えることができます。また 応用などで流れる文字や動きのある絵なども 点灯できます。

(35)

Arduinoで組込み制御を行った

結果の感想

・組み込み制御は、これからもっと進歩して 行く技術だと思っています。ソフト(プロ グラム)とハード(コンピュータ)が、よ り一体となって今までにないものを生み出 し、人々の暮らしに役立つもの、環境にや さしいものなど、あらゆるものがプログラ ムによって制御され使われて行くのではな いだろうかと感じました。また誰でも簡単 にプログラムができる、そんな環境ができ つつあるのではないかと思いました。

(36)

今回使用した部品を購入したお店

と参考にしたWebサイト

・秋月電子通商 ・千石電商 ・デバイスの接続 http://www.geocities.jp/arduino_diecimila/use/index.html#_lcd ・建築発明工作ゼミ2008 http://kousaku-kousaku.blogspot.com/2008/07/arduinoled.html http://kousaku-kousaku.blogspot.com/2008/06/arduino-dcta7291p.html http://kousaku-kousaku.blogspot.com/2008/07/arduinoled.html

(37)

トップページへ

参照

関連したドキュメント

本試験装置ではフィードバック機構を有する完全閉ループ 方式の電気・油圧サーボシステムであり,載荷条件はコンピ

糸速度が急激に変化するフィリング巻にお いて,制御張力がどのような影響を受けるかを

添付)。これらの成果より、ケモカインを介した炎症・免疫細胞の制御は腎線維

 第一の方法は、不安の原因を特定した上で、それを制御しようとするもので

IDLE 、 STOP1 、 STOP2 モードを解除可能な割り込みは、 INTIF を経由し INTIF 内の割り. 込み制御レジスター A で制御され CPU へ通知されます。

、肩 かた 深 ふかさ を掛け合わせて、ある定数で 割り、積石数を算出する近似計算法が 使われるようになりました。この定数は船

町の中心にある「田中 さん家」は、自分の家 のように、料理をした り、畑を作ったり、時 にはのんびり寝てみた

調査の結果を反映し、IoT