Arduino勉強会/0F-lbeDuino誕生
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
[[Arduino勉強会]]
#contents
2015/01/17からのアクセス回数 &counter;
** lbeDuino誕生の理由 [#f5d8ba4a]
安く、ソースデバッガーが使えて、豊富なライブラリーが使え...
[[lbed]]
ですが、Arduinoのシールドを意識しながら、lbeDuinoと言う形...
この記事は、鈴木哲哉さんの著書
[[作って遊べるArduino互換機 >http://www.amazon.co.jp/dp/4...
に強く影響を受けています。
Arduinoのシールドとの変換シールドを作れば、安くて簡単な万...
気軽に電子工作を楽しむ第一歩になると考えたからです。
lbeDuinoでは、プログラムの開発はLpcExpresso Ver.6以降を使...
デバッガには、トラ技のARMデバッガを使用しましたが、LPC-LI...
*** lbeDuinoの作成方針 [#ae716563]
Arduino勉強会では、ProtoSnap Pro Mini を使っているので、...
FTDI USBシリアル変換アダプターを使います。
シリアル変換アダプターを購入されるのなら、
スイッチサイエンスの
[[FTDI USBシリアル変換アダプター(5V/3.3V切り替え機能付き)...
が便利かと思います。
&ref(FTDI_USB_Serial.png);
ピンの使い方は、mbed LPC1114FN28を参考にしました。
&ref(pinout_dip28-20131006-.png);
*** lbeDuinoの回路図 [#ze4e30fb]
手書きで申し訳ありませんが、lbeDuinoの回路を以下に示しま...
回路のミスについて
- AREFをAnalogInに接続
- 3.3VとGNDにパスコンを追加
- TA48M033Fの1, 3, 2ピンに5V, GND, 3.3Vであり、セラミック...
- D13とD10を入れ替えました(2015/02/08)
&ref(lbeDuino_hand_sch.png);
*** lbeDuinoの組み立て [#f2a5d3c5]
出来上がったlbeDuinoは、以下の様になりました。((かっこ悪...
&ref(lbeDuino_brd.png);
*** lbeDuinoの動作確認 [#y9510da1]
Arduinoの動作確認と言えばblinkなので、lbeDuinoでも以下の...
今回Arduino版のlbedと同じスケッチが使えるようにサンプルプ...
lbedのArduino版については、[[Arduino/Arduinoでmbedユーザ...
ledをDigitalOutのインスタンスとして作成し、LEDのオン・オ...
のプログラミングの分かりやすいところです。
#pre{{
#include"lbed.h"
DigitalOut led(D13);
void setup() {}
void loop() {
led = !led;
wait_ms(1000);
}
}}
** lbedユーザライブラリの動作確認 [#f653abcf]
これまで作ったlbed用のユーザライブラリをlbeDuinoで動かし...
*** テキストLCD(TextLCD) [#dfc4313d]
mbedのTextLCDをlbedで動かしてみます。
3.3Vで動作するLCDは、オレンジボードに載せたものだけなので...
動作を確認しました。
| オレンジボード | lbeDuino |h
| p24(rs) | D0 |
| p26(e) | D1 |
| p27(d4) | D2 |
| p28(d5) | D3 |
| p29(d6) | D4 |
| p30(d7) | D5 |
動作確認をしたときの画像は、以下の通りです。
&ref(TextLCD.png);
*** TextLCDの動作確認 [#uc3ea540]
TextLCDの場合も、mbedのTextLCDの例題がそのまま使えます。
Arduino風に書いたTextLCD.cppは、以下の通りです。リセット...
少し調整が必要ですが、なんとか動きそうです。
#pre{{
#include "lbed.h"
#include "TextLCD.h"
DigitalOut led(D13);
TextLCD lcd(D0, D1, D2, D3, D4, D5); // rs, e, d4-7
int count = 0;
void setup() {
lcd.print("Hello World!");
}
void loop() {
lcd.locate(0, 1);
lcd.print("Count=");
lcd.print(count++);
led = !led;
wait_ms(1000);
}
}}
*** シリアル通信 [#h71f9024]
パソコンとのシリアル通信(Serial)をArduinoのシリアルモニ...
シリアルを使う時には、FTDI USBシリアル変換アダプターを接...
&ref(Serial.png);
*** シリアルの動作確認 [#d253f617]
シリアルの動作確認にSerial.cppを作成し、予めArduinoのシリ...
ボーレイトを9600にセットして下さい。
#pre{{
#include "lbed.h"
DigitalOut myled(D13);
Serial pc(D0, D1);
void setup() {
pc.baud(9600);
pc.println("Hello World!");
}
void loop() {
char c = pc.read();
pc.write(c + 1);
myled = !myled;
}
}}
最初にHello Worldを出力し、次に入力した文字の次の文字を返...
&ref(Serial_Monitor.png);
*** DigitalIn [#b5d48648]
LBEDのLPC1114版ではDigitalIn, AnalogInを実装していなかっ...
DigitalInでは、以下のようにタクトスイッチに10KΩの抵抗でプ...
LEDを点灯するプログラムを作成して、動作を確認しました。
&ref(ButtonSwitch_brd.png);
*** DigitalInの動作確認 [#ta879561]
以下のプログラムButtonSwtich.cppを作成し、動作を確認しま...
#pre{{
#include "lbed.h"
// Pin 13 has an LED connected on most lbeDuino boards.
DigitalOut led(D13);
// Pin 7 has an tact switch on bread board.
DigitalIn sw(D7); // #A
// the setup routine runs once when you press reset:
void setup() {
}
// the loop routine runs over and over again forever:
void loop() {
led = !sw; // #B
wait_ms(200); // wait for 200 mili seconds.
}
}}
*** AnalogIn [#ke7ea3db]
AnalogInは、可変抵抗(potensiometer)を使って電圧を変えて...
&ref(PotensioMeter_brd.png);
*** AnalogInの動作確認 [#c57385b4]
AnalogInの動作確認には、電圧が参照電圧ARefの0.1倍になった...
を作って確認しました。
#pre{{
/*
PotentioMeter
Turns on an LED on when potentiometer > 0.33V(0.1).
This example code is in the public domain.
*/
#include "lbed.h"
// Pin 13 has an LED connected on lbeDuino.
DigitalOut led(D13);
// Pin A0 has a analog input.
AnalogIn sensor(A0); // #A
// the setup routine runs once when you press reset:
void setup() {
}
// the loop routine runs over and over again forever:
void loop() {
float value = sensor;
if (value > 0.1) // #B
led = 1;
else
led = 0;
wait_ms(200); // wait for 200 mili seconds.
}
}}
*** Tone [#g5c3fa78]
Toneは、PWMを使用しているため、LPC1114で使えるピンが限ら...
D3, D6, A0がToneとして使用できます。
以下の様にタクトスイッチを押すと圧電ブザーがなるようにブ...
&ref(Buzzer_brd.png);
*** Toneの動作確認 [#a4b8aa26]
以下の様なBuzzer.cppを作成し、タクトスイッチを押すとド、...
します。((何となくドレミに聞こえる感じです))
#pre{{
/*
Buzzer
Sound on an buzzer on when button pressed.
This example code is in the public domain.
*/
#include "lbed.h"
#include "Tone.h"
int duration = 500;
// Pin 7 has an tact switch on lbeDuino.
DigitalIn sw(D7);
// Pin 2 has a buzzer on lbeDuino.
Tone buzzer(D3); // #A
// the setup routine runs once when you press reset:
void setup() {
}
// the loop routine runs over and over again forever:
void loop() {
if (!sw) { // #B
buzzer.tone(262, duration); // ド, 500 msec
wait_ms(500);
buzzer.tone(294, duration); // レ, 500 msec
wait_ms(500);
buzzer.tone(330, duration); // ミ, 500 msec
}
}
}}
*** I2C接続のLCD(AQCM0802) [#se87aeaa]
秋月でも販売しているI2C接続のLCD
((今回はマルツのI2Cセンサーキットに搭載されているものを使...
とmbedの
[[AQCM0802のライブラリ>http://developer.mbed.org/users/ya...
をlbedに移植したものを使用しました。
lbedとの接続は、以下の通りです。
| lbeDuino | AQCM0802ボード |
| 3.3V | 1番(VCC)、2(nRESET) |
| GND | 5番 GND |
| D8(SDA) | 4番(SDA) |
| D9(SCL) | 3番(SCL) |
&ref(I2CLCD_brd.png);
*** I2C接続のLCD(AQCM0802)の動作確認 [#s9833d0b]
以下のI2cLCD.cppを使ってAQCM0802での動作を確認しました。
#pre{{
#include "lbed.h"
#include "AQCM0802.h"
// D13番ピンにLEDを接続
DigitalOut led(D13);
// D8番ピンSDA, D9番ピンSCL
AQCM0802 lcd(D8, D9);
// カウンター
int counter = 0;
void setup() {
lcd.setup();
lcd.print("Hello");
}
void loop() {
led = !led;
lcd.locate(0, 1);
lcd.print("cnt=");
lcd.print(counter++);
wait_ms(1000);
}
}}
** lbeDuinoのソースの取得 [#c64c5f2d]
ここで紹介しましたlbeDuinoのソースは、以下のGitHubから取...
- https://github.com/take-pwave/lbed
lbeDuinoに必要なフォルダーは以下の通りです。
- CMSISv2p00_LPC11xx
- LBED_lbeDuino
- LBED_lbeDuino_USERLIB
- LBED_lbeDuino_MAIN
テストプログラムは、LBED_lbeDuino_MAIN/src
に置いて下さい。
サンプルプログラムは、Examplesにあります。
** lbeDuino2号機 [#k93f8e73]
lbeDuinoは思った以上に使えるので、テクノペンとジャンパー...
&ref(lbeDuino_v2.png);
1号機に対して以下の改良をしました。
- シリアルコネクターをL字型に変更
- LPC-LINKとの接続コネクターを一番端に1つずらした。((シー...
テクノペンのパターンとジャンパー線は、以下の通りです。
&ref(lbeDuino_v2_brd.png);
今回は勇気を出してジャンパー線も公開します。((写真をとる...
&ref(lbeDuino_v2_btm.png);
** この後 [#ze5fc4c0]
lbeDuinoのシールドについては、
- [[Arduino勉強会/0G-lbeDuinoシールドを作る]]
lbeDuinoの開発環境構築手順については、
- [[Arduino勉強会/0I-lbeDuinoの開発環境構築]]
をご覧下さい。
*** おまけ [#p3ef7d31]
最初は、LPC1114FN28でArduinoシールドを使えるボードを探し...
ITショップ「えとせとら」で[[NeXtPino>http://itcorp24.cart...
を見つけました。
((NeXtPinoにLPC-LINKでBlinkプログラムを動かしているところ))
早速購入して、lbedを移植して試してみました。
&ref(NeXtPino.png);
しかし、lbedのライブラリで動作確認を進めていくと、いくつ...
- D13にSWCLKを割り当てているため、LPC-LINKでデバッグでき...
- D0にRESETを割り当てているため、DigitalOutに使えない
** コメント [#bc6b8ae8]
#vote(おもしろかった[5],そうでもない[0],わかりずらい[0])
皆様のご意見、ご希望をお待ちしております。勉強会で分から...
スパム防止に画像の文字列も入力してください。
- SPIのSCLKがD13になるように、D13とD10を入れ替えました。 ...
- 2号機を作りました。 -- [[竹本 浩]] &new{2015-02-12 (木...
- lbeDuino_のプレフィックスを削除しました。 -- [[竹本 浩...
- NeXtPinoの説明を最後の「おまけ」に移動しました。 -- [[...
#comment_kcaptcha
終了行:
[[Arduino勉強会]]
#contents
2015/01/17からのアクセス回数 &counter;
** lbeDuino誕生の理由 [#f5d8ba4a]
安く、ソースデバッガーが使えて、豊富なライブラリーが使え...
[[lbed]]
ですが、Arduinoのシールドを意識しながら、lbeDuinoと言う形...
この記事は、鈴木哲哉さんの著書
[[作って遊べるArduino互換機 >http://www.amazon.co.jp/dp/4...
に強く影響を受けています。
Arduinoのシールドとの変換シールドを作れば、安くて簡単な万...
気軽に電子工作を楽しむ第一歩になると考えたからです。
lbeDuinoでは、プログラムの開発はLpcExpresso Ver.6以降を使...
デバッガには、トラ技のARMデバッガを使用しましたが、LPC-LI...
*** lbeDuinoの作成方針 [#ae716563]
Arduino勉強会では、ProtoSnap Pro Mini を使っているので、...
FTDI USBシリアル変換アダプターを使います。
シリアル変換アダプターを購入されるのなら、
スイッチサイエンスの
[[FTDI USBシリアル変換アダプター(5V/3.3V切り替え機能付き)...
が便利かと思います。
&ref(FTDI_USB_Serial.png);
ピンの使い方は、mbed LPC1114FN28を参考にしました。
&ref(pinout_dip28-20131006-.png);
*** lbeDuinoの回路図 [#ze4e30fb]
手書きで申し訳ありませんが、lbeDuinoの回路を以下に示しま...
回路のミスについて
- AREFをAnalogInに接続
- 3.3VとGNDにパスコンを追加
- TA48M033Fの1, 3, 2ピンに5V, GND, 3.3Vであり、セラミック...
- D13とD10を入れ替えました(2015/02/08)
&ref(lbeDuino_hand_sch.png);
*** lbeDuinoの組み立て [#f2a5d3c5]
出来上がったlbeDuinoは、以下の様になりました。((かっこ悪...
&ref(lbeDuino_brd.png);
*** lbeDuinoの動作確認 [#y9510da1]
Arduinoの動作確認と言えばblinkなので、lbeDuinoでも以下の...
今回Arduino版のlbedと同じスケッチが使えるようにサンプルプ...
lbedのArduino版については、[[Arduino/Arduinoでmbedユーザ...
ledをDigitalOutのインスタンスとして作成し、LEDのオン・オ...
のプログラミングの分かりやすいところです。
#pre{{
#include"lbed.h"
DigitalOut led(D13);
void setup() {}
void loop() {
led = !led;
wait_ms(1000);
}
}}
** lbedユーザライブラリの動作確認 [#f653abcf]
これまで作ったlbed用のユーザライブラリをlbeDuinoで動かし...
*** テキストLCD(TextLCD) [#dfc4313d]
mbedのTextLCDをlbedで動かしてみます。
3.3Vで動作するLCDは、オレンジボードに載せたものだけなので...
動作を確認しました。
| オレンジボード | lbeDuino |h
| p24(rs) | D0 |
| p26(e) | D1 |
| p27(d4) | D2 |
| p28(d5) | D3 |
| p29(d6) | D4 |
| p30(d7) | D5 |
動作確認をしたときの画像は、以下の通りです。
&ref(TextLCD.png);
*** TextLCDの動作確認 [#uc3ea540]
TextLCDの場合も、mbedのTextLCDの例題がそのまま使えます。
Arduino風に書いたTextLCD.cppは、以下の通りです。リセット...
少し調整が必要ですが、なんとか動きそうです。
#pre{{
#include "lbed.h"
#include "TextLCD.h"
DigitalOut led(D13);
TextLCD lcd(D0, D1, D2, D3, D4, D5); // rs, e, d4-7
int count = 0;
void setup() {
lcd.print("Hello World!");
}
void loop() {
lcd.locate(0, 1);
lcd.print("Count=");
lcd.print(count++);
led = !led;
wait_ms(1000);
}
}}
*** シリアル通信 [#h71f9024]
パソコンとのシリアル通信(Serial)をArduinoのシリアルモニ...
シリアルを使う時には、FTDI USBシリアル変換アダプターを接...
&ref(Serial.png);
*** シリアルの動作確認 [#d253f617]
シリアルの動作確認にSerial.cppを作成し、予めArduinoのシリ...
ボーレイトを9600にセットして下さい。
#pre{{
#include "lbed.h"
DigitalOut myled(D13);
Serial pc(D0, D1);
void setup() {
pc.baud(9600);
pc.println("Hello World!");
}
void loop() {
char c = pc.read();
pc.write(c + 1);
myled = !myled;
}
}}
最初にHello Worldを出力し、次に入力した文字の次の文字を返...
&ref(Serial_Monitor.png);
*** DigitalIn [#b5d48648]
LBEDのLPC1114版ではDigitalIn, AnalogInを実装していなかっ...
DigitalInでは、以下のようにタクトスイッチに10KΩの抵抗でプ...
LEDを点灯するプログラムを作成して、動作を確認しました。
&ref(ButtonSwitch_brd.png);
*** DigitalInの動作確認 [#ta879561]
以下のプログラムButtonSwtich.cppを作成し、動作を確認しま...
#pre{{
#include "lbed.h"
// Pin 13 has an LED connected on most lbeDuino boards.
DigitalOut led(D13);
// Pin 7 has an tact switch on bread board.
DigitalIn sw(D7); // #A
// the setup routine runs once when you press reset:
void setup() {
}
// the loop routine runs over and over again forever:
void loop() {
led = !sw; // #B
wait_ms(200); // wait for 200 mili seconds.
}
}}
*** AnalogIn [#ke7ea3db]
AnalogInは、可変抵抗(potensiometer)を使って電圧を変えて...
&ref(PotensioMeter_brd.png);
*** AnalogInの動作確認 [#c57385b4]
AnalogInの動作確認には、電圧が参照電圧ARefの0.1倍になった...
を作って確認しました。
#pre{{
/*
PotentioMeter
Turns on an LED on when potentiometer > 0.33V(0.1).
This example code is in the public domain.
*/
#include "lbed.h"
// Pin 13 has an LED connected on lbeDuino.
DigitalOut led(D13);
// Pin A0 has a analog input.
AnalogIn sensor(A0); // #A
// the setup routine runs once when you press reset:
void setup() {
}
// the loop routine runs over and over again forever:
void loop() {
float value = sensor;
if (value > 0.1) // #B
led = 1;
else
led = 0;
wait_ms(200); // wait for 200 mili seconds.
}
}}
*** Tone [#g5c3fa78]
Toneは、PWMを使用しているため、LPC1114で使えるピンが限ら...
D3, D6, A0がToneとして使用できます。
以下の様にタクトスイッチを押すと圧電ブザーがなるようにブ...
&ref(Buzzer_brd.png);
*** Toneの動作確認 [#a4b8aa26]
以下の様なBuzzer.cppを作成し、タクトスイッチを押すとド、...
します。((何となくドレミに聞こえる感じです))
#pre{{
/*
Buzzer
Sound on an buzzer on when button pressed.
This example code is in the public domain.
*/
#include "lbed.h"
#include "Tone.h"
int duration = 500;
// Pin 7 has an tact switch on lbeDuino.
DigitalIn sw(D7);
// Pin 2 has a buzzer on lbeDuino.
Tone buzzer(D3); // #A
// the setup routine runs once when you press reset:
void setup() {
}
// the loop routine runs over and over again forever:
void loop() {
if (!sw) { // #B
buzzer.tone(262, duration); // ド, 500 msec
wait_ms(500);
buzzer.tone(294, duration); // レ, 500 msec
wait_ms(500);
buzzer.tone(330, duration); // ミ, 500 msec
}
}
}}
*** I2C接続のLCD(AQCM0802) [#se87aeaa]
秋月でも販売しているI2C接続のLCD
((今回はマルツのI2Cセンサーキットに搭載されているものを使...
とmbedの
[[AQCM0802のライブラリ>http://developer.mbed.org/users/ya...
をlbedに移植したものを使用しました。
lbedとの接続は、以下の通りです。
| lbeDuino | AQCM0802ボード |
| 3.3V | 1番(VCC)、2(nRESET) |
| GND | 5番 GND |
| D8(SDA) | 4番(SDA) |
| D9(SCL) | 3番(SCL) |
&ref(I2CLCD_brd.png);
*** I2C接続のLCD(AQCM0802)の動作確認 [#s9833d0b]
以下のI2cLCD.cppを使ってAQCM0802での動作を確認しました。
#pre{{
#include "lbed.h"
#include "AQCM0802.h"
// D13番ピンにLEDを接続
DigitalOut led(D13);
// D8番ピンSDA, D9番ピンSCL
AQCM0802 lcd(D8, D9);
// カウンター
int counter = 0;
void setup() {
lcd.setup();
lcd.print("Hello");
}
void loop() {
led = !led;
lcd.locate(0, 1);
lcd.print("cnt=");
lcd.print(counter++);
wait_ms(1000);
}
}}
** lbeDuinoのソースの取得 [#c64c5f2d]
ここで紹介しましたlbeDuinoのソースは、以下のGitHubから取...
- https://github.com/take-pwave/lbed
lbeDuinoに必要なフォルダーは以下の通りです。
- CMSISv2p00_LPC11xx
- LBED_lbeDuino
- LBED_lbeDuino_USERLIB
- LBED_lbeDuino_MAIN
テストプログラムは、LBED_lbeDuino_MAIN/src
に置いて下さい。
サンプルプログラムは、Examplesにあります。
** lbeDuino2号機 [#k93f8e73]
lbeDuinoは思った以上に使えるので、テクノペンとジャンパー...
&ref(lbeDuino_v2.png);
1号機に対して以下の改良をしました。
- シリアルコネクターをL字型に変更
- LPC-LINKとの接続コネクターを一番端に1つずらした。((シー...
テクノペンのパターンとジャンパー線は、以下の通りです。
&ref(lbeDuino_v2_brd.png);
今回は勇気を出してジャンパー線も公開します。((写真をとる...
&ref(lbeDuino_v2_btm.png);
** この後 [#ze5fc4c0]
lbeDuinoのシールドについては、
- [[Arduino勉強会/0G-lbeDuinoシールドを作る]]
lbeDuinoの開発環境構築手順については、
- [[Arduino勉強会/0I-lbeDuinoの開発環境構築]]
をご覧下さい。
*** おまけ [#p3ef7d31]
最初は、LPC1114FN28でArduinoシールドを使えるボードを探し...
ITショップ「えとせとら」で[[NeXtPino>http://itcorp24.cart...
を見つけました。
((NeXtPinoにLPC-LINKでBlinkプログラムを動かしているところ))
早速購入して、lbedを移植して試してみました。
&ref(NeXtPino.png);
しかし、lbedのライブラリで動作確認を進めていくと、いくつ...
- D13にSWCLKを割り当てているため、LPC-LINKでデバッグでき...
- D0にRESETを割り当てているため、DigitalOutに使えない
** コメント [#bc6b8ae8]
#vote(おもしろかった[5],そうでもない[0],わかりずらい[0])
皆様のご意見、ご希望をお待ちしております。勉強会で分から...
スパム防止に画像の文字列も入力してください。
- SPIのSCLKがD13になるように、D13とD10を入れ替えました。 ...
- 2号機を作りました。 -- [[竹本 浩]] &new{2015-02-12 (木...
- lbeDuino_のプレフィックスを削除しました。 -- [[竹本 浩...
- NeXtPinoの説明を最後の「おまけ」に移動しました。 -- [[...
#comment_kcaptcha
ページ名:
SmartDoc