新規記事の投稿を行うことで、非表示にすることが可能です。
2016年09月24日
A6:5 高度な入力と出力:アナログ入出力 LEDランプ作成
前々回、前回、の『Arduinoをはじめよう 第3版』第4章スケッチ入門 ではLEDをデジタル入出力制御しました
第5章 高度な入力と出力ではアナログ入出力LEDランプを作るようです
Arduinoをはじめよう 第3版 (Make:PROJECTS) 新品価格 |
ページ 実行内容 スケッチ
051 ゆっくり明滅するLED E.5-1
053 ボタンでLEDの明るさを調節する E.5-2
057 アナログ入力に応じてLED点滅レートが変化 E.5-3
057 アナログ入力に応じてLEDの明るさを変える E.5-4
059 アナログ入力ピンの値をコンピュータへ送る E.5-5
第5章の流れは以下のようになっています
E.5-1 アナログ出力
E.5-2 デジタル入力、アナログ出力
E.5-3 アナログ入力、デジタル出力
E.5-4 アナログ入力、アナログ出力
E.5-5 シリアル通信
(1)回路設計
目的: PWM出力でLEDをゆっくり明滅させます
(アナログ出力)
材料: Mac (Arduino IDE), Arduino UNOボード, LED x1,
ブレッドボード, ジャンプワイヤ, 抵抗器(1KΩ)
回路: 回路5-1
ここの抵抗は220Ω以上を用いることになってますが、『Arduinoをはじめよう 互換キット』では200Ωの次に大きいものが1KΩでした
Arduinoをはじめよう 互換キット UNO R3対応互換ボード 初心者専用実験キット 基本部品セット20 in 1 Arduino sidekick basic kit 新品価格 |
(2)プログラミング
※スケッチ は、原書版で公開されているスケッチデータを用います
(以下Example 5-5まで同様)
E5_1_Fade
――――――――――(Example 5-1)――――――――――
// Fade an LED in and out, like on a sleeping Apple computer
const int LED = 9; // the pin for the LED
int i = 0; // We'll use this to count up and down
void setup() {
pinMode(LED, OUTPUT); // tell Arduino LED is an output
}
void loop(){
for (i = 0; i < 255; i++) { // loop from 0 to 254 (fade in)
analogWrite(LED, i); // set the LED brightness
delay(10); // Wait 10ms because analogWrite
// is instantaneous and we would
// not see any change
}
for (i = 255; i > 0; i--) { // loop from 255 to 1 (fade out)
analogWrite(LED, i); // set the LED brightness
delay(10); // Wait 10ms
}
}
―――――――――――――――――――――――――――
(3)実行
白色LEDがゆっくり明るくなったり暗くなったりします
スケッチに"like on a sleeping Apple computer"とありますが、ちょうどMacBookのスリープインジケータライト (SIL)のような動きをします
次は、回路5-1にプッシュボタンを追加し、ボタンの押し方でLEDの点灯や明るさを調節します
(1)回路設計
目的: ブッシュボタンの押し方でLEDの点灯・消灯と明るさを制御する
(デジタル入力、アナログ出力)
材料: Mac (Arduino IDE), Arduino UNOボード, LED x1,
ブレッドボード, ジャンプワイヤ, 抵抗器(1KΩ),
抵抗器(10KΩ), プッシュボタン(タクトスイッチ)
回路: 回路5-2
(2)プログラミング
@ボタンを押してすぐに離した時はLEDの点灯、消灯を行い、
Aボタンを押し続ける(500 ms以上)とLEDの明るさが変化し、離した時点の明るさで固定するようにします
E5_2_ButtonHold
――――――――――(Example 5-2)――――――――――
// Sketch to change the brightness as you hold the button
const int LED = 9; // the pin for the LED
const int BUTTON = 7; // input pin of the pushbutton
int val = 0; // stores the state of the input pin
int old_val = 0; // stores the previous value of "val"
int state = 0; // 0 = LED off while 1 = LED on
int brightness = 128; // Stores the brightness value
unsigned long startTime = 0; // when did we begin pressing?
void setup() {
pinMode(LED, OUTPUT); // tell Arduino LED is an output
pinMode(BUTTON, INPUT); // and BUTTON is an input
}
void loop() {
val = digitalRead(BUTTON); // read input value and store it
// yum, fresh
// check if there was a transition
if ((val == HIGH) && (old_val == LOW)) {
state = 1 - state; // change the state from off to on
// or vice-versa
startTime = millis(); // millis() is the Arduino clock
// it returns how many milliseconds
// have passed since the board has
// been reset.
// (this line remembers when the button
// was last pressed)
delay(10);
}
// check whether the button is being held down
if ((val == HIGH) && (old_val == HIGH)) {
// If the button is held for more than 500 ms.
if (state == 1 && (millis() - startTime) > 500) {
brightness++; // increment brightness by 1
delay(10); // delay to avoid brightness going
// up too fast
if (brightness > 255) { // 255 is the max brightness
brightness = 0; // if we go over 255
// let's go back to 0
}
}
}
old_val = val; // val is now old, let's store it
if (state == 1) {
analogWrite(LED, brightness); // turn LED ON at the
// current brightness level
} else {
analogWrite(LED, 0); // turn LED OFF
}
}
―――――――――――――――――――――――――――
(3)実行
素早くボタンを押すとLEDが点いたり消えたりします
長押しするとLEDがゆっくり明るくなったり暗くなったりし、ボタンから指を離した時の明るさで固定されます
ここでは光センサを用いてアナログ入力を行い、その値に応じてLEDの点滅レートを制御します
(1)回路設計
目的: 光センサでLEDの点滅レートを制御する
(アナログ入力、デジタル出力)
材料: Mac (Arduino IDE), Arduino UNOボード, LED x1,
ブレッドボード, ジャンプワイヤ, 抵抗器(10KΩ),
光センサ
回路: 回路5-3
(2)プログラミング
E5_3_BlinkRate
――――――――――(Example 5-3)――――――――――
// Blink LED at a rate specified by the value of the analogue input
const int LED = 13; // the pin for the LED
int val = 0; // variable used to store the value
// coming from the sensor
void setup() {
pinMode(LED, OUTPUT); // LED is as an OUTPUT
// Note: Analogue pins are
// automatically set as inputs
}
void loop() {
val = analogRead(0); // read the value from
// the sensor
digitalWrite(LED, HIGH); // turn the LED on
delay(val); // stop the program for
// some time
digitalWrite(LED, LOW); // turn the LED off
delay(val); // stop the program for
// some time
}
―――――――――――――――――――――――――――
(3)実行
光センサに当たる光の量によって13番ピンLEDの点滅スピードが変化します
(動画は最後にまとめて示します:Example 5-3)
続いて、PWM出力(アナログ出力)の9番ピンにLEDを接続し、光センサの値に応じてLEDの明るさを制御します
(1)回路設計
目的: 光センサでLEDの明るさを制御する
(アナログ入力、アナログ出力)
材料: Mac (Arduino IDE), Arduino UNOボード, LED x1,
ブレッドボード, ジャンプワイヤ, 抵抗器(10KΩ),
抵抗器(1KΩ), 光センサ
回路: 回路5-4
(2)プログラミング
E5_4_LEDBrightness
――――――――――(Example 5-4)――――――――――
// Set the LED to a brightness specified by the value of the analogue input
const int LED = 9; // the pin for the LED
int val = 0; // variable used to store the value
// coming from the sensor
void setup() {
pinMode(LED, OUTPUT); // LED is as an OUTPUT
// Note: Analogue pins are
// automatically set as inputs
}
void loop() {
val = analogRead(0); // read the value from
// the sensor
analogWrite(LED, val/4); // turn the LED on at
// the brightness set
// by the sensor
delay(10); // stop the program for
// some time
}
―――――――――――――――――――――――――――
(3)実行
光センサに当たる光の量によって9番ピンLEDの明るさが変化します
Example 5-4で第5章の目的であるアナログ入出力LEDランプができました
これを応用すれば周りが暗くなるに従って明るくなるモニターやキーボードバックライトを作れるんですかね
最後に光センサを使ってアナログ入力の値を読み取るSerial monitorの使い方(シリアル通信)を学びます
(1)回路設計
回路5-4に同じ
(2)プログラミング
E5_5_Serial
――――――――――(Example 5-5)――――――――――
// Send the computer the values read from analogue input 0
const int SENSOR = 0; // select the input pin for the
// sensor resistor
int val = 0; // variable to store the value coming
// from the sensor
void setup() {
Serial.begin(9600); // open the serial port to send
// data back to the computer at
// 9600 bits per second
}
void loop() {
val = analogRead(SENSOR); // read the value from
// the sensor
Serial.println(val); // print the value to
// the serial port
delay(100); // wait 100ms between
// each send
}
―――――――――――――――――――――――――――
(3)実行
Arduinoボードにスケッチを書き込み、Arduino IDEでSerial monitorボタンを押すと光センサからの値を表示します
最後に今回のExample 5-1〜5-5の実験の動画を示します
YouTube
以上で、『Arduinoをはじめよう 第3版』第5章のお勉強を終えます
ではまた〜
新品価格 |
Raspberry Pi3 Model B ボード&ケースセット (Element14版, Clear)-Physical Computing Lab 新品価格 |
Arduinoをはじめよう 第3版 (Make:PROJECTS) 新品価格 |
Arduinoをはじめよう 互換キット UNO R3対応互換ボード 初心者専用実験キット 基本部品セット20 in 1 Arduino sidekick basic kit 新品価格 |
新品価格 |
Arduino エントリーキット(Uno版)- Physical Computing Lab 新品価格 |
タミヤ 楽しい工作シリーズ No.216 3ch RCロボット製作セット 70216 新品価格 |
新品価格 |
新品価格 |
新品価格 |
タミヤ 楽しい工作シリーズ No.211 アームクローラー工作セット 70211 新品価格 |
タミヤ 楽しい工作シリーズ No.97 ツインモーターギヤーボックス (70097) 新品価格 |
タミヤ 楽しい工作シリーズ No.106 4チャンネル・リモコンボックス (70106) 新品価格 |
2016年09月20日
A5:4 スケッチ入門:デジタル入出力 LEDランプ作成A
前回の続きです
ページ 実行内容 スケッチ
038 ボタンが押されている間、LEDを点ける E.4-2
040 ボタンを1回押すと点灯を続けるLED E.4-3
042 ボタンを押した時の挙動を改善 E.4-4
043 バウンシングに対応した最終版 E.4-5
Example 4-1ではLEDが1秒ごとに点滅しましたが、
Example 4-2ではボタンを押している間だけLEDが点きます
(1)回路設計
目的: プッシュボタン(センサー)によりLEDの点灯を制御する
材料: Mac (Arduino IDE), Arduino UNOボード, LED x1,
ブレッドボード, ジャンプワイヤ, 抵抗器(10KΩ),
プッシュボタン(タクトスイッチ)
回路: 回路4-2
回路4-1にブッシュボタン制御用ブレッドボードを7番ピンに接続します
この回路に必要な部品は全て『Arduinoをはじめよう 互換キット UNO R3対応互換ボード』に入っていました
Arduinoをはじめよう 互換キット UNO R3対応互換ボード 初心者専用実験キット 基本部品セット20 in 1 Arduino sidekick basic kit 新品価格 |
(2)プログラミング
スケッチ:Example 4-2
上記スケッチ E.4-1同様、原書版で公開されているスケッチデータを用います(以下Example 4-5まで同様)
E4_2_LED_Button
――――――――――(Example 4-2)――――――――――
// Turn on LED while the button is pressed
const int LED = 13; // the pin for the LED
const int BUTTON = 7; // the input pin where the
// pushbutton is connected
int val = 0; // val will be used to store the state
// of the input pin
void setup() {
pinMode(LED, OUTPUT); // tell Arduino LED is an output
pinMode(BUTTON, INPUT); // and BUTTON is an input
}
void loop(){
val = digitalRead(BUTTON); // read input value and store it
// check whether the input is HIGH (button pressed)
if (val == HIGH) {
digitalWrite(LED, HIGH); // turn LED ON
} else {
digitalWrite(LED, LOW);
}
}
―――――――――――――――――――――――――――
(3)実行
実際に動かすと、ボタンを押している間だけLEDが点きます
Example 4-2のようにLEDを点灯させるためにボタンを押し続けなくてはいけないのは大変ですので、Example 4-3ではボタンを1回押すとLEDが点灯し、もう一度押すと消灯するようにしたい
(1)回路設計
Example 4-2に同じ
(2)プログラミング
スケッチ:Example 4-3
E4_3_LED_KeepOn
――――――――――(Example 4-3)――――――――――
// Turn on LED when the button is pressed and keep it on after it is released
const int LED = 13; // the pin for the LED
const int BUTTON = 7; // the input pin where the
// pushbutton is connected
int val = 0; // val will be used to store the state
// of the input pin
int state = 0; // 0 = LED off while 1 = LED on
void setup() {
pinMode(LED, OUTPUT); // tell Arduino LED is an output
pinMode(BUTTON, INPUT); // and BUTTON is an input
}
void loop() {
val = digitalRead(BUTTON); // read input value and store it
// check if the input is HIGH (button pressed)
// and change the state
if (val == HIGH) {
state = 1 - state;
}
if (state == 1) {
digitalWrite(LED, HIGH); // turn LED ON
} else {
digitalWrite(LED, LOW);
}
}
―――――――――――――――――――――――――――
Example 4-2からの変更点を赤字で示しています
(3)実行
ボタンを押すとLEDが点きます・・・が、押した時に点くか消えるかは気分次第というか・・・ランダムなような・・・押している時間依存的なような不安定な挙動をします
これは state = 1 - state; によって
LEDの状態(state)が1(点灯)なら state = 1 - state(=1)=0(消灯)
LEDの状態(state)が0(消灯)なら state = 1 - state(=0)=1(点灯)
としてLEDの状態を変えますが、ボタンを押しているほんのすこしの間にこの状態変化の読み取りが次々と変化し偶然の結果としてどちらかの状態になりLEDが光ったり消えたりすることになります
LEDの点灯を偶然に任せるというのも面白いのですが、ここでは実用的になるように改良してます
Example 4-4ではExample 4-3の不具合をスケッチの改善する
(1)回路設計
Example 4-2に同じ
(2)プログラミング
スケッチ:Example 4-4
E4_4_NewImprovedButton
――――――――――(Example 4-4)――――――――――
// New and improved button press formula!
const int LED = 13; // the pin for the LED
const int BUTTON = 7; // the input pin where the
// pushbutton is connected
int val = 0; // val will be used to store the state
// of the input pin
int old_val = 0; // this variable stores the previous
// value of "val"
int state = 0; // 0 = LED off and 1 = LED on
void setup() {
pinMode(LED, OUTPUT); // tell Arduino LED is an output
pinMode(BUTTON, INPUT); // and BUTTON is an input
}
void loop(){
val = digitalRead(BUTTON); // read input value and store it
// yum, fresh
// check if there was a transition
if ((val == HIGH) && (old_val == LOW)){
state = 1 - state;
}
old_val = val; // val is now old, let's store it
if (state == 1) {
digitalWrite(LED, HIGH); // turn LED ON
} else {
digitalWrite(LED, LOW);
}
}
―――――――――――――――――――――――――――
Example 4-3からの変更点を赤字で示しています
ここでは押す前のボタンの状態をint old_val = 0; で保存して
((val == HIGH) && (old_val == LOW))で押した時のボタンの状態(val)がHIGHでかつ(&&)押す前のボタンの状態(old_val)がLOWの時 state = 1 - stateとすることでボタンを押している間にstateが変化しないようにしています
・・・ボタンでLEDを点けたり消したりするだけでこんなに面倒くさいことになるとは・・・σ(^_^;)
(3)実行
早速実行してみるとExample 4-3の時と違いがわかりませんσ(^_^;)
これはプッシュボタンの機械的な接触の問題でバウンスという現象の影響だそうで、delayを10〜50 msほど入れれば解消されるそうです
Example 4-5でExample 4-4のバウンスの問題を解消する
(1)回路設計
Example 4-2に同じ
(2)プログラミング
スケッチ:Example 4-5
E4_5_DebounceWithButton
――――――――――(Example 4-5)――――――――――
// Another new and improved formula for button presses--with simple debouncing!
const int LED = 13; // the pin for the LED
const int BUTTON = 7; // the input pin where the
// pushbutton is connected
int val = 0; // val will be used to store the state
// of the input pin
int old_val = 0; // this variable stores the previous
// value of "val"
int state = 0; // 0 = LED off and 1 = LED on
void setup() {
pinMode(LED, OUTPUT); // tell Arduino LED is an output
pinMode(BUTTON, INPUT); // and BUTTON is an input
}
void loop(){
val = digitalRead(BUTTON); // read input value and store it
// yum, fresh
// check if there was a transition
if ((val == HIGH) && (old_val == LOW)){
state = 1 - state;
delay(10);
}
old_val = val; // val is now old, let's store it
if (state == 1) {
digitalWrite(LED, HIGH); // turn LED ON
} else {
digitalWrite(LED, LOW);
}
}
―――――――――――――――――――――――――――
Example 4-4からの変更点を赤字で示しています
ここでは state = 1 - state;の後に delay(10);を入れているだけです
(3)実行
ん? 確かにマシになっているように思いますが、まだちょっと不安定なような?
これはプッシュスイッチの問題かもしれないので、とりあえずこれで
ここまで(Example 4-2からExample 4-5)のところを動画でまとめて示します
あまり代わり映えのしない映像なんでアレですが・・・
『Arduinoをはじめよう 第3版』の眼目はArduinoを用いる上での思想や開発の手順だったりします
このブログの内容はそこまで書かないので是非『Arduinoをはじめよう 第3版』を手にとってみてください
一通り読みましたがArduinoを基礎から学習する上でよくできた教科書と思います
ではでは
新品価格 |
Raspberry Pi3 Model B ボード&ケースセット (Element14版, Clear)-Physical Computing Lab 新品価格 |
Arduinoをはじめよう 第3版 (Make:PROJECTS) 新品価格 |
Arduinoをはじめよう 互換キット UNO R3対応互換ボード 初心者専用実験キット 基本部品セット20 in 1 Arduino sidekick basic kit 新品価格 |
新品価格 |
Arduino エントリーキット(Uno版)- Physical Computing Lab 新品価格 |
タミヤ 楽しい工作シリーズ No.216 3ch RCロボット製作セット 70216 新品価格 |
新品価格 |
新品価格 |
新品価格 |
タミヤ 楽しい工作シリーズ No.211 アームクローラー工作セット 70211 新品価格 |
タミヤ 楽しい工作シリーズ No.97 ツインモーターギヤーボックス (70097) 新品価格 |
タミヤ 楽しい工作シリーズ No.106 4チャンネル・リモコンボックス (70106) 新品価格 |
2016年09月16日
A4:4 スケッチ入門:デジタル入出力 LEDランプ作成@
今回は『Arduinoをはじめよう 第3版』の第4章 スケッチ入門にそってデジタル入出力 LEDランプ作成を行います
Arduinoをはじめよう 第3版 (Make:PROJECTS) 新品価格 |
何かを作りながらArduinoの使い方になれましょうということですね
今回の内容はプロジェクト一覧(リンク)の次の部分になります
ページ 実行内容 スケッチ
028 LEDの点滅 E.4-1
038 ボタンが押されている間、LEDを点ける E.4-2
040 ボタンを1回押すと点灯を続けるLED E.4-3
042 ボタンを押した時の挙動を改善 E.4-4
043 バウンシングに対応した最終版 E.4-5
Arduinoのようなマイコンボードの学習方法は大きく3つの段階に分けられます
(1)回路設計
(2)プログラミング
(3)実行
それぞれ行うことは以下の3つです
(1)回路設計でArduinoボードにつないだ回路を組み立て
(2)プログラム(Arduinoではスケッチ)をArduino IDEに入力し
(3)Arduino IDEでArduinoボードにスケッチを書き込み実行する
これから各実験はこの3つに分けて解説します
(1)回路設計
目的: LEDを点滅させてArduinoの動作確認をする(いわゆるLチカ)
材料: Mac (Arduino IDE), Arduino UNOボード, LED x1
回路: 回路4-1
赤色LEDを13番ピン (A: アノード)とGND (K: カソード)に差します
"L”ラベルLEDが同じ13番につながっているので同じ挙動をします
写真: 写真4-1
色が付いていないのでわかりにくいですが赤色LEDです
(2)プログラミング
スケッチ:E.4-1
『Arduinoをはじめよう 第3版』の028ページに本実験に用いるスケッチ Example (E.) 4-1が掲載されています
これをそのままここに書き写すとまずいかもしれないので・・・
さて、どうしようかなと思っていたら、『Arduinoをはじめよう 第3版』の原書『Getting Started with Arduino, 3rd Edition』(O’REILLY)のWebページに本書で用いるスケッチのzipファイルへのリンクがありましたのでそれを参照します
英語なので本書のスケッチとはちょっと違うのですが・・・
E4_1_BlinkingLED1000
―――――――――――――(Example 4-1)―――――――――――――
// Blinking LED
const int LED = 13; // LED connected to
// digital pin 13
void setup()
{
pinMode(LED, OUTPUT); // sets the digital
// pin as output
}
void loop()
{
digitalWrite(LED, HIGH); // turns the LED on
delay(1000); // waits for a second
digitalWrite(LED, LOW); // turns the LED off
delay(1000); // waits for a second
}
―――――――――――――――――――――――――――――――――
C言語や組み込み用のプログラミングをやったことがあれば、「なるほど」となりそうだけど、「ん?こんなんでいいんだっけ?」という感じもします
詳しい解説は『Arduinoをはじめよう 第3版』にまかせるとして、本の内容に合わせます
(3)実行
文章だけだとわかりにくいので動画にまとめました
ArduinoボードをパソコンのUSBでつないでArduino IDEを起動します
Arduino IDEにExample 4-1を書き込んで[Verify]→[Upload]します
これでLEDが1秒ごとに点滅します
後半はdelay timeをいろいろと変えてみてます
この時のスケッチは例えばdelay timeを100 msにしたい場合は以下のスケッチのように赤字のところのみを変えています
E4_1_1_BlinkingLED100
――――――――――(Example 4-1-1)―――――――――
// Blinking LED
const int LED = 13; // LED connected to
// digital pin 13
void setup()
{
pinMode(LED, OUTPUT); // sets the digital
// pin as output
}
void loop()
{
digitalWrite(LED, HIGH); // turns the LED on
delay(100); // waits for a second
digitalWrite(LED, LOW); // turns the LED off
delay(100); // waits for a second
}
―――――――――――――――――――――――――――
このようにしてdelay timeをいろいろ変えてみたときの印象は以下のとおりです
@ HIGH 100, LOW 100 → 点滅が早くなる
A HIGH 10, LOW 10 → ちらつくが点灯し続けて見える(残像現象?)
B HIGH 1, LOW 1 → 点灯し続けて見える
C HIGH 1, LOW 50 → 点灯が弱くなった気がするがチカチカする
D HIGH 1, LOW 5 → 点灯が弱くなった
E HIGH 0.1, LOW 5 → 点灯が明らかに弱くなった
delay timeの組み合わせでLEDの点灯の明るさを調節できることがわかりました
しかし・・・どれくらいの明るさにしたいならdelay timeをどういう組み合わせにすると良いという一般的な比率はあるんやろうか??
因みにですが、
Arduino IDEのファイル ︎ スケッチの例 ︎ 01.Basics ︎Blink
でExample 4-1と同じ動きをさせるスケッチが開きます
他にもサンプルスケッチがいろいろあるので『Arduinoをはじめよう 第3版』を一通り終わったらそちらでお勉強するのもいいかもしれませんね
・・・ってお勉強ばっかりだといつまでたってもジリツロボットできそうにないんだが・・・σ(^_^;)
以上でExample 4-1を終えます
思ったより長くなったので今回はここまで
ではでは〜
新品価格 |
Raspberry Pi3 Model B ボード&ケースセット (Element14版, Clear)-Physical Computing Lab 新品価格 |
Arduinoをはじめよう 第3版 (Make:PROJECTS) 新品価格 |
Arduinoをはじめよう 互換キット UNO R3対応互換ボード 初心者専用実験キット 基本部品セット20 in 1 Arduino sidekick basic kit 新品価格 |
新品価格 |
Arduino エントリーキット(Uno版)- Physical Computing Lab 新品価格 |
タミヤ 楽しい工作シリーズ No.216 3ch RCロボット製作セット 70216 新品価格 |
新品価格 |
新品価格 |
新品価格 |
タミヤ 楽しい工作シリーズ No.211 アームクローラー工作セット 70211 新品価格 |
タミヤ 楽しい工作シリーズ No.97 ツインモーターギヤーボックス (70097) 新品価格 |
タミヤ 楽しい工作シリーズ No.106 4チャンネル・リモコンボックス (70106) 新品価格 |
2016年09月12日
A3:3 Arduinoプラットフォーム:Arduinoセットアップ
『Arduinoをはじめよう 第3版』の3 Arduinoプラットフォームに沿ってArduinoのセットアップをします
ここではMacにArduino IDEをインストールします
@ Arduino - HomeのメニューからDownloadをクリックしてDownloadのページに移動します
A DownloadのページでMac OS X 10.7 Lion or newerをクリックしてSupport the Arduino Softwareのページに移動します
C ここでArduinoソフトウェアへの寄付を募っています
寄付するときは寄付したい金額を選んでCONTRIBUTE & DOWNLOADをクリックします
寄付しないときはJUST DOWNLOADをクリックします
そうするとarduino-1.6.11-macosx.zipのダウンロードが始まります
D ダウンロードされたarduino-1.6.11-macosx.zipをダブルクリックしてArduino(.app)に展開します
E 展開されたArduino(.app)をアプリケーションフォルダに移動します
MacがArduino UNOボードを認識する(動かせるようにする)ためのドライバはMac OS Xが提供するドライバを使うため特にインストールする必要はありません
ここではArduino UNOボードとMacがUSBケーブルで接続されることを確認します
@ Arduinoをはじめよう 互換キット からArduino UNOボード(互換機)とUSBケーブルを取り出します
Arduinoをはじめよう 互換キット UNO R3対応互換ボード 初心者専用実験キット 基本部品セット20 in 1 Arduino sidekick basic kit 新品価格 |
A MacのUSBにつなぎます
B 問題がなければ、ON (LED)が点灯し、L (LED)が1回点滅します
最後にArduino UNOが接続されているポートの選択をします
@ Arduino UNOボードをMacのUSBに接続します
A Arduino(.app)のアイコンをダブルクリックしてArduino IDEを起動します
B ツール メニューからシリアル ポートを開き、または[/dev/tty.usbmodem1411(Arduino/Genuino Uno)]を選択します
C 続いて、ツール メニューのボード:を開き、[Arduino/Genuino Uno]をクリックして選択します
最後に上記【(2) Arduino UNOボード用ドライバの確認】から【(3) Arduino UNO接続ポートの確認】までの流れを動画で確認します
・・・これだけです・・・
ちなみに今回使うArduino UNOボードは互換ボードですがちょっと作りが
ではでは〜
新品価格 |
Raspberry Pi3 Model B ボード&ケースセット (Element14版, Clear)-Physical Computing Lab 新品価格 |
Arduinoをはじめよう 第3版 (Make:PROJECTS) 新品価格 |
Arduinoをはじめよう 互換キット UNO R3対応互換ボード 初心者専用実験キット 基本部品セット20 in 1 Arduino sidekick basic kit 新品価格 |
新品価格 |
Arduino エントリーキット(Uno版)- Physical Computing Lab 新品価格 |
タミヤ 楽しい工作シリーズ No.216 3ch RCロボット製作セット 70216 新品価格 |
新品価格 |
新品価格 |
新品価格 |
タミヤ 楽しい工作シリーズ No.211 アームクローラー工作セット 70211 新品価格 |
タミヤ 楽しい工作シリーズ No.97 ツインモーターギヤーボックス (70097) 新品価格 |
タミヤ 楽しい工作シリーズ No.106 4チャンネル・リモコンボックス (70106) 新品価格 |
2016年09月08日
A2:『Arduinoをはじめよう 第3版』をよむ
『Arduinoをはじめよう 第3版』を読み始めます
表紙をめくると目次の後ではじめにがあり、Michealさんが第2版からの第3版での変更点を書いた後で、Massimoさんの簡単な自分史とともにtinkeringという言葉の重要性を教えてくれます
続いての1イントロダクションには「この本はArduinoに初めて触れる完全な未経験者のために書かれています。」とあります、よし!
次にいきなり「インタラクションデザイン」や「プロトタイピング」や「フィジカルコンピューティング」・・・の言葉が出てきて戸惑いますがよくわからないので読み飛ばします
2Arduinoの流儀ではPrototyping, Tinkering, Patching・・・といった手法や方法について紹介しています・・・思考原理や行動原理みたいなものでしょうか・・・とりあえずTinkeringのイラストなんかが面白いです
3Arduinoプラットフォームから本格的にArduinoの使い方の話が始まります
まず重要なのが、
という流れで、パソコンでArduino IDEというソフトウェアを使ってスケッチという名前のプログラムを作ってArduinoボードへ伝えて動かすようです
続いてArduinoボードの説明があり、次にArduino IDEの説明とインストール方法について、はじめにMac、続いてWindowsについて書かれています
・・・
と、このあたりまでAmazonの『Arduinoをはじめよう 第3版』のイメージのところで読むことができます
というわけで、23ページまでAmazonで無料で読めちゃうわけですが、この本の131ページ以降はオンラインで公開されているArduino 日本語リファレンスを(一部を除き)まとめたものですから、この本を買わないと得られない内容というのは全体の半分弱ということになります
こういう本を読む時は、次の2パターンがあるように思います
@ 本を読みながら内容に沿って随時やることを実行していく
A 全体を読み終えた後でやることを実行に移す
まだ、道具や材料が揃っているかどうか読んでみないとわからないので「A 全体を読み終えた後でやることを実行に移す」で進みます
そのために読了後に実行する内容を章ごとにプロジェクトとしてまとめておきます
実行(実験)する内容は8章までで、最後の9章はトラブルシューティングの方法について書かれています
やったことが必ず成功するというのも大事ですが、失敗から学ぶことも多いとおもいます
その意味で自分でトラブルシューティングできて一人前という気もしますのでここもしっかり頭に入れておきます
9章が終わると付録A〜Cがあり、それぞれ
付録A ブレッドボード
付録B 抵抗器とコンデンサの値の読み方
付録C 回路図の読み方
についての解説があります
「ブレッドボードって何?」からスタートする身としてはありがたい限りです
ここまでが本文と言えるもので、前述しましたが131〜237ページにはArduino公式リファレンスが掲載されており、この中にはArduino言語と標準ライブラリについての記述があります
オンラインで公開されているArduino 日本語リファレンスには本書に載っていない内容もあるようです
また、本家Arduino - Homeでは”Learning”のプルダウンメニューから”Reference”を選択するとReferenceページに入ります
Referenceページでは次の四つを選択できます
Librariesを選択してみましょう
『Arduinoをはじめよう 第3版』に戻るとArduino公式リファレンスに続いて、238〜244ページが索引となっており、この本をちょっとした用語集がわりに使うこともできます
最後に245〜247ページが訳者あとがき、248ページが著者・訳者紹介となっています
これで『Arduinoをはじめよう 第3版』を一通り読み終えました
次回からいよいよ実験に移りたいと思います
はたして?
娘はこれ(Arduino)に興味を持つんでしょうか?σ(^_^;)
ではでは〜
新品価格 |
Raspberry Pi3 Model B ボード&ケースセット (Element14版, Clear)-Physical Computing Lab 新品価格 |
Arduinoをはじめよう 第3版 (Make:PROJECTS) 新品価格 |
Arduinoをはじめよう 互換キット UNO R3対応互換ボード 初心者専用実験キット 基本部品セット20 in 1 Arduino sidekick basic kit 新品価格 |
新品価格 |
Arduino エントリーキット(Uno版)- Physical Computing Lab 新品価格 |
タミヤ 楽しい工作シリーズ No.216 3ch RCロボット製作セット 70216 新品価格 |
新品価格 |
新品価格 |
新品価格 |
タミヤ 楽しい工作シリーズ No.211 アームクローラー工作セット 70211 新品価格 |
タミヤ 楽しい工作シリーズ No.97 ツインモーターギヤーボックス (70097) 新品価格 |
タミヤ 楽しい工作シリーズ No.106 4チャンネル・リモコンボックス (70106) 新品価格 |
2016年09月05日
A1:Arduinoはじめました
アームクローラーに自律させたいと思って、なんかいい方法はないかなあと探していたらArduino(アルデュイーノ)とRaspberry Pi(ラズベリーパイ;ラズパイ)というのが良さそうです
Arduino(アルデュイーノ)
新品価格 |
Raspberry Pi(ラズベリーパイ)
Raspberry Pi3 Model B ボード&ケースセット (Element14版, Clear)-Physical Computing Lab 新品価格 |
Arduinoは組み込みマイコンボードで、Raspberry Piは小型コンピューターといった感じでしょうか
Arduinoはイタリア生まれで、Raspberry Piはイギリス生まれ、
どちらも教育用に開発されたもので初心者でも始めやすいとのことです
・・・本当かなあσ(^_^;)
それで、どっちを使うのかということですが、ArduinoよりRaspberry Piの方が性能が良さそうなんですが、難しそうでちょっと敷居が高いので今回はArduinoを使ってみようと思います
いくつか見たところでは自分達がアームクローラーにさせたい程度の自律行動ならどちらを使ってもできそうなのでArduinoでチャレンジしてみて、ダメだったらRaspberry Piに行こうかなあという「いきあたりばったり」計画で進めます
まずは、何もわからないのでお勉強しなくてはいけません
ネット上にはたくさんの情報がありますが、どれがいいのかわかりません
それにネットで自分の欲しい情報だけ探して、それだけを真似てやってもその基礎となる考え方やその先の応用となるとちょっと心もとないです・・・それも必要になるかどうかもわかりませんが・・・
ブログなどに掲載されているものについてもいつ見ることができなくなるかわかりませんし・・・まあ、心配しすぎなんですが以前そんなようなことが・・・
ある程度できるようになればネット上に散在する情報をもとに自分の思う使い方ができるようになると思いますがまだ無理です
というわけで、いつものようにAmazonさんを物色してみます
なんか、これ(↓)がArduinoの教科書っぽいですね
Arduinoをはじめよう 第3版 (Make:PROJECTS)
Arduinoをはじめよう 第3版 (Make:PROJECTS) 新品価格 |
あと、「よく一緒に購入されている商品」にこれ(↓)が載っていました
Arduinoをはじめよう 互換キット UNO R3対応互換ボード 初心者専用実験キット 基本部品セット20 in 1 Arduino sidekick basic kit
Arduinoをはじめよう 互換キット UNO R3対応互換ボード 初心者専用実験キット 基本部品セット20 in 1 Arduino sidekick basic kit 新品価格 |
他にも「Arduinoをはじめようキット」や「Arduino エントリーキット(Uno版)- Physical Computing Lab」というのもあるみたいです
新品価格 |
Arduino エントリーキット(Uno版)- Physical Computing Lab 新品価格 |
今回はいろいろ入ってて値段も比較的安価な「Arduinoをはじめよう 互換キット UNO R3対応互換ボード 初心者専用実験キット 基本部品セット20 in 1 Arduino sidekick basic kit」を注文してみます
これが、安物買いの銭失いにならないかちと心配・・・
・・・・・・・・・・・・
それで届いたのがこれ
それではこれから頑張って読みます
娘はまだ漢字をあまり読めないのでこの中で大切なところやおもしろそうなところをかいつまんで教えていくことになると思いますが
ではでは〜
新品価格 |
Raspberry Pi3 Model B ボード&ケースセット (Element14版, Clear)-Physical Computing Lab 新品価格 |
Arduinoをはじめよう 第3版 (Make:PROJECTS) 新品価格 |
Arduinoをはじめよう 互換キット UNO R3対応互換ボード 初心者専用実験キット 基本部品セット20 in 1 Arduino sidekick basic kit 新品価格 |
新品価格 |
Arduino エントリーキット(Uno版)- Physical Computing Lab 新品価格 |
Yidarton ミニ 無線wifi 防犯カメラ 監視カメラ アクセサリー付属 赤外線 暗視対応 iPhone Android対応 Micro SD 録画 バッテリー内蔵 1セット 新品価格 |
タミヤ 楽しい工作シリーズ No.216 3ch RCロボット製作セット 70216 新品価格 |
新品価格 |
新品価格 |
新品価格 |
タミヤ 楽しい工作シリーズ No.211 アームクローラー工作セット 70211 新品価格 |
タミヤ 楽しい工作シリーズ No.97 ツインモーターギヤーボックス (70097) 新品価格 |
タミヤ 楽しい工作シリーズ No.106 4チャンネル・リモコンボックス (70106) 新品価格 |