Arduino勉強会/0G-lbeDuinoシールドを作る
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
[[Arduino勉強会]]
#contents
2015/01/25からのアクセス回数 &counter;
ここは、
[[Arduino勉強会/0F-lbeDuino誕生]]で紹介した
LPC1114FN28を使ったmbedライクなクラスライブラリLBEDとArdu...
lbeDuino用のシールド作成ページです。
** バッテリーシールドを作る [#ud0e6045]
[[作って遊べるArduino互換機 >http://www.amazon.co.jp/dp/4...
でも最初に紹介されているのがバッテリー(移動用電源)シー...
これまであまり必要性を感じていなかったのですが、作ってみ...
と感じました。
&ref(battery_shield_I2cLCD.png);
バッテリーシールドの回路を
[[作って遊べるArduino互換機 >http://www.amazon.co.jp/dp/4...
図5−4から引用します。
&ref(battery_shield_sch.png);
*** 必要な部品 [#c08471ad]
lbeDuinoは、3.3Vで動くので、HT7750Aの代わりにHT7733Aを使...
データシートの回路はHT7750Aと同じでした。
| 品名 | 秋月コード | 数量 | 備考 |h
| DC/DCコンバータ HT7733A | I-02799 | 1 | 4個入り |
| 整流用ショットキーダイオード 1S4 | I-00127 | 1 | |
| 電解コンデンサー47μF | P-03120 | 1 | |
| 電解コンデンサー22μF | P-03177 | 1 | 今回は10μFを2個で...
| 積層セラミックコンデンサー0.1μF | P-04064 | 1 | 10個入...
| 小型スライドスイッチ | P-02736 | 1 | 4個入り |
| インダクター(47μH1.2A) | P-04047 | 1 | 4個入り|
| 電池ボックス 単4x2本用 | P-02245 | 1 | |
| ピンソケット 1x6 | C-04045 | 2 | |
| ピンソケット 1x8 | C-04046 | 2 | |
| 両面スルホール・ガラス・ユニバーサル基板 Cタイプ | P-...
*** テクノペンで配線 [#z30e8567]
lbeDuinoをユニバーサル基板のCタイプと同じサイズにしたのに...
[[テクノペン>http://akizukidenshi.com/catalog/g/gT-06356/]]
を使って配線したいと考えていました。
((テクノペンは、冷蔵庫で保管して下さい))
秋月から両面スルホール・ガラス・ユニバーサル基板の画像を...
描いて、テクノペンで同じようになぞって、ドライヤーで乾燥...
&ref(technopen.png);
*** 部品を付けたバッテリーシールド [#aa5aeadc]
基板に部品をハンダ付けして、完成したバッテリーシールドで...
&ref(battery_shield.png);
*** 電池1本でも大丈夫 [#b9266aa6]
データシートに0.7Vから変換するとあったので、電池1本で試し...
当たり前ですが、ちゃんと3.3Vがでています。これなら電池付...
&ref(one_battery.png);
** I2C LCDとボタンの入出力シールド [#k0809038]
lbeDuinoの基板では、通常のLCDは載らないので、
[[ストロベリーリナックスのI2C LCD>https://strawberry-linu...
を使って入出力シールドを作ります。
((変換基板でユニバーサル基板で使えるようになっているのが...
必要な部品は以下の通りです。
((抵抗は、470Ω、1KΩ、4.7KΩ、10KΩを買っておくと便利です))
| 品名 | 秋月コード | 数量 | 備考 |h
| I2C低電圧キャラクタ液晶モジュール(16x2行) | | 1 ...
| タクトスイッチ(白)| P-03648 | 1 | |
| タクトスイッチ(黒)| P-03647 | 1 | |
| 抵抗4.7KΩ| R-25472 | 2 | 100本入り |
*** ピン配置 [#xa76f29a]
最初に部品の配置と接続するピンを決め、ジャンパーする線を...
以下のスケッチの青線がジャンパー線です。
&ref(I2cLCDShield_sketch.png);
*** ブレッドボードで動作を確認 [#b6a85956]
回路が正しく動くかブレッドボードで確認します。
&ref(I2cLCDShield_brd.png);
テストに使うプログラムI2cLCDShield.cppは、以下の通りです。
#pre{{
#include "lbed.h"
#include "AQCM0802.h"
// D13番ピンにLEDを接続
DigitalOut led(D13);
// D8番ピンSDA, D9番ピンSCL
AQCM0802 lcd(D8, D9);
// タクトスイッチ
DigitalIn sw1(D2);
DigitalIn sw2(D3);
void setup() {
sw1.mode(PullUp);
sw2.mode(PullUp);
lcd.setup();
lcd.print("I2C LCD");
}
void loop() {
led = !led;
lcd.locate(0, 1);
if (!sw1) {
lcd.print("SW1 On ");
}
else if (!sw2) {
lcd.print("SW2 On ");
}
else {
lcd.print("All Off");
}
wait_ms(1000);
}
}}
*** ユニバーサル基板の配線パターン [#l79b4833]
次に秋月の両面ユニバーサル基板の画像に配線図を書き込みま...
&ref(I2cLCDShield_pattern.png);
*** 部品を載せて完成 [#v2482fee]
テクノペンで描いた配線の上から部品の載せます。
タクトスイッチを押すと下の行にSW1 Onと表示します。
&ref(I2cLCDShield_Test.png);
** Arduino-lbeDuino変換シールド [#l16d5577]
[[Arduino勉強会/0H-アイロンプリントのすすめ]]で作成したAr...
特にlbeDuino用に作ったシールドがそのまま3.3VのUncompatino...
Arduino-lbeDuino変換シールを載せ、その上にバッテリーシー...
&ref(change_battery.png);
** SDカードシールド [#o280960c]
[[作って遊べるArduino互換機 >http://www.amazon.co.jp/dp/4...
に倣って、秋月電子で販売されているマイクロSDカードスロッ...
lbeDuino用のSDカードシールドを作ってみました。((ここでもA...
&ref(SD_Card_shield.png);
テクノペンを使った配線は、以下の通りです。
&ref(SD_Card_shield_brd.png);
*** Arduinoで動作確認 [#ha36f081]
最初は、Arduinoのスケッチを使って、動作確認をしました。
Arduino IDEでファイル→スケッチの例→SD→Dataloggerを選択し...
スケッチをすべてコピー&ペーストで、新規のスケッチに複製...
29行目のchipSelectを4にします。
#pre{{
const int chipSelect = 4;
}}
Arduinoにスケッチをアップロードすると、
SDカードにアナログピンの数値をどんどん書き込んでいきます...
&ref(SD_logger_output.png);
SDカードをPCに入れると、DATALOG.TXTというファイルができて...
これで、SDカードシールドが正しく動作することが確認できま...
*** SDライブラリの移植 [#oe5868ed]
別途紹介する予定ですが、ArduinoのSDライブラリをlbeDuino用...
((最初のバージョンは、chipSelectをD4に固定しております。))
&ref(lbeDuino_SDCard.png);
以下のSDCard_Info.cppを作成して、SDカードの情報をシリアル...
#pre{{
#include "lbed.h"
#include "SD.h"
const int chipSelect = D4;
void setup() {
/*
SD.begin(chipSelect);
File dataFile = SD.open("test.txt", FILE_WRITE);
// if the file is available, write to it:
if (dataFile) {
dataFile.println("test");
dataFile.close();
}
*/
Serial pc(D0, D1);
pc.baud(9600);
pc.print("\nInitializing SD card...");
Sd2Card card;
SdVolume volume;
SdFile root;
if (!card.init(SPI_HALF_SPEED, chipSelect)) {
pc.println("initialization failed. Things to ch...
pc.println("* is a card is inserted?");
pc.println("* Is your wiring correct?");
pc.println(
"* did you change the chipSelect pin ...
return;
} else {
pc.println("Wiring is correct and a card is pre...
}
// print the type of card
pc.print("\nCard type: ");
switch (card.type()) {
case SD_CARD_TYPE_SD1:
pc.println("SD1");
break;
case SD_CARD_TYPE_SD2:
pc.println("SD2");
break;
case SD_CARD_TYPE_SDHC:
pc.println("SDHC");
break;
default:
pc.println("Unknown");
}
// Now we will try to open the 'volume'/'partition' ...
if (!volume.init(card)) {
pc.println(
"Could not find FAT16/FAT32 partition...
return;
}
// print the type and size of the first FAT-type vol...
uint32_t volumesize;
pc.print("\nVolume type is FAT");
pc.print(volume.fatType(), DEC);
pc.println();
volumesize = volume.blocksPerCluster(); // clusters ...
volumesize *= volume.clusterCount(); // we'll ...
volumesize *= 512; // SD card blo...
pc.print("Volume size (bytes): ");
pc.print(volumesize);pc.println();
pc.print("Volume size (Kbytes): ");
volumesize /= 1024;
pc.print(volumesize);pc.println();
pc.print("Volume size (Mbytes): ");
volumesize /= 1024;
pc.print(volumesize);pc.println();
pc.println("\nFiles found on the card (name, date an...
root.openRoot(volume);
// list all files in the card with date and size
root.ls(LS_R | LS_DATE | LS_SIZE);
}
void loop() {
}
}}
Mac OSXの場合、SDカードにゴミ箱やスポットライトの情報が隠...
以下の様に出力されました。
&ref(SD_Info_monitor.png);
** 非接触温度計TMP006シールド [#hcc2aca4]
[[作って遊べるArduino互換機 >http://www.amazon.co.jp/dp/4...
で紹介されているTMP006シールドをlbeDuino用に作成しました。
&ref(th_TMP006_shield.jpg);
いつものようにテクノペンで基板のパターンをかきました。
&ref(TMP006_shield_brd.png); &ref(TMP006.png);
テストに使用するライブラリは、mbedの
[Sam Kirsch氏のTMP006_lib>http://developer.mbed.org/users...
をlbeDuinoに移植して使いました。
((インクルードファイルをmbed.hからlbed.hに変えるだけです))
最初、値が正しく求まりませんでした。この原因はLBEDのI2C.r...
温度を表示するスケッチは、以下の通りです。
#pre{{
#include "lbed.h"
#include "TMP006.h"
#include "AQCM0802.h"
#define Address (0x40<<1)
// D8番ピンSDA, D9番ピンSCL
TMP006 sensor(D8, D9, Address);
AQCM0802 lcd(D8, D9);
void setup() {
lcd.setup();
sensor.config(Address, 8);
}
void loop() {
lcd.locate(0, 0);
lcd.print("DieTemp: ");
lcd.print(sensor.readDieTempC(Address), 2);
lcd.locate(0, 1);
lcd.print("ObjTemp: ");
lcd.print(sensor.readObjTempC(Address), 2);
wait_ms(1000);
}
}}
** コメント [#dfc025b7]
#vote(おもしろかった[10],そうでもない[0],わかりずらい[0])
皆様のご意見、ご希望をお待ちしております。勉強会で分から...
スパム防止に画像の文字列も入力してください。
- Arduino-lbeDuino変換シールドとマイクロSDカードシールド...
- I2C.readに大きなバグがありました。lbeDuinoのI2C, LM73は...
- LM73の再テストを行い動作を確認しました -- [[竹本 浩]] ...
#comment_kcaptcha
終了行:
[[Arduino勉強会]]
#contents
2015/01/25からのアクセス回数 &counter;
ここは、
[[Arduino勉強会/0F-lbeDuino誕生]]で紹介した
LPC1114FN28を使ったmbedライクなクラスライブラリLBEDとArdu...
lbeDuino用のシールド作成ページです。
** バッテリーシールドを作る [#ud0e6045]
[[作って遊べるArduino互換機 >http://www.amazon.co.jp/dp/4...
でも最初に紹介されているのがバッテリー(移動用電源)シー...
これまであまり必要性を感じていなかったのですが、作ってみ...
と感じました。
&ref(battery_shield_I2cLCD.png);
バッテリーシールドの回路を
[[作って遊べるArduino互換機 >http://www.amazon.co.jp/dp/4...
図5−4から引用します。
&ref(battery_shield_sch.png);
*** 必要な部品 [#c08471ad]
lbeDuinoは、3.3Vで動くので、HT7750Aの代わりにHT7733Aを使...
データシートの回路はHT7750Aと同じでした。
| 品名 | 秋月コード | 数量 | 備考 |h
| DC/DCコンバータ HT7733A | I-02799 | 1 | 4個入り |
| 整流用ショットキーダイオード 1S4 | I-00127 | 1 | |
| 電解コンデンサー47μF | P-03120 | 1 | |
| 電解コンデンサー22μF | P-03177 | 1 | 今回は10μFを2個で...
| 積層セラミックコンデンサー0.1μF | P-04064 | 1 | 10個入...
| 小型スライドスイッチ | P-02736 | 1 | 4個入り |
| インダクター(47μH1.2A) | P-04047 | 1 | 4個入り|
| 電池ボックス 単4x2本用 | P-02245 | 1 | |
| ピンソケット 1x6 | C-04045 | 2 | |
| ピンソケット 1x8 | C-04046 | 2 | |
| 両面スルホール・ガラス・ユニバーサル基板 Cタイプ | P-...
*** テクノペンで配線 [#z30e8567]
lbeDuinoをユニバーサル基板のCタイプと同じサイズにしたのに...
[[テクノペン>http://akizukidenshi.com/catalog/g/gT-06356/]]
を使って配線したいと考えていました。
((テクノペンは、冷蔵庫で保管して下さい))
秋月から両面スルホール・ガラス・ユニバーサル基板の画像を...
描いて、テクノペンで同じようになぞって、ドライヤーで乾燥...
&ref(technopen.png);
*** 部品を付けたバッテリーシールド [#aa5aeadc]
基板に部品をハンダ付けして、完成したバッテリーシールドで...
&ref(battery_shield.png);
*** 電池1本でも大丈夫 [#b9266aa6]
データシートに0.7Vから変換するとあったので、電池1本で試し...
当たり前ですが、ちゃんと3.3Vがでています。これなら電池付...
&ref(one_battery.png);
** I2C LCDとボタンの入出力シールド [#k0809038]
lbeDuinoの基板では、通常のLCDは載らないので、
[[ストロベリーリナックスのI2C LCD>https://strawberry-linu...
を使って入出力シールドを作ります。
((変換基板でユニバーサル基板で使えるようになっているのが...
必要な部品は以下の通りです。
((抵抗は、470Ω、1KΩ、4.7KΩ、10KΩを買っておくと便利です))
| 品名 | 秋月コード | 数量 | 備考 |h
| I2C低電圧キャラクタ液晶モジュール(16x2行) | | 1 ...
| タクトスイッチ(白)| P-03648 | 1 | |
| タクトスイッチ(黒)| P-03647 | 1 | |
| 抵抗4.7KΩ| R-25472 | 2 | 100本入り |
*** ピン配置 [#xa76f29a]
最初に部品の配置と接続するピンを決め、ジャンパーする線を...
以下のスケッチの青線がジャンパー線です。
&ref(I2cLCDShield_sketch.png);
*** ブレッドボードで動作を確認 [#b6a85956]
回路が正しく動くかブレッドボードで確認します。
&ref(I2cLCDShield_brd.png);
テストに使うプログラムI2cLCDShield.cppは、以下の通りです。
#pre{{
#include "lbed.h"
#include "AQCM0802.h"
// D13番ピンにLEDを接続
DigitalOut led(D13);
// D8番ピンSDA, D9番ピンSCL
AQCM0802 lcd(D8, D9);
// タクトスイッチ
DigitalIn sw1(D2);
DigitalIn sw2(D3);
void setup() {
sw1.mode(PullUp);
sw2.mode(PullUp);
lcd.setup();
lcd.print("I2C LCD");
}
void loop() {
led = !led;
lcd.locate(0, 1);
if (!sw1) {
lcd.print("SW1 On ");
}
else if (!sw2) {
lcd.print("SW2 On ");
}
else {
lcd.print("All Off");
}
wait_ms(1000);
}
}}
*** ユニバーサル基板の配線パターン [#l79b4833]
次に秋月の両面ユニバーサル基板の画像に配線図を書き込みま...
&ref(I2cLCDShield_pattern.png);
*** 部品を載せて完成 [#v2482fee]
テクノペンで描いた配線の上から部品の載せます。
タクトスイッチを押すと下の行にSW1 Onと表示します。
&ref(I2cLCDShield_Test.png);
** Arduino-lbeDuino変換シールド [#l16d5577]
[[Arduino勉強会/0H-アイロンプリントのすすめ]]で作成したAr...
特にlbeDuino用に作ったシールドがそのまま3.3VのUncompatino...
Arduino-lbeDuino変換シールを載せ、その上にバッテリーシー...
&ref(change_battery.png);
** SDカードシールド [#o280960c]
[[作って遊べるArduino互換機 >http://www.amazon.co.jp/dp/4...
に倣って、秋月電子で販売されているマイクロSDカードスロッ...
lbeDuino用のSDカードシールドを作ってみました。((ここでもA...
&ref(SD_Card_shield.png);
テクノペンを使った配線は、以下の通りです。
&ref(SD_Card_shield_brd.png);
*** Arduinoで動作確認 [#ha36f081]
最初は、Arduinoのスケッチを使って、動作確認をしました。
Arduino IDEでファイル→スケッチの例→SD→Dataloggerを選択し...
スケッチをすべてコピー&ペーストで、新規のスケッチに複製...
29行目のchipSelectを4にします。
#pre{{
const int chipSelect = 4;
}}
Arduinoにスケッチをアップロードすると、
SDカードにアナログピンの数値をどんどん書き込んでいきます...
&ref(SD_logger_output.png);
SDカードをPCに入れると、DATALOG.TXTというファイルができて...
これで、SDカードシールドが正しく動作することが確認できま...
*** SDライブラリの移植 [#oe5868ed]
別途紹介する予定ですが、ArduinoのSDライブラリをlbeDuino用...
((最初のバージョンは、chipSelectをD4に固定しております。))
&ref(lbeDuino_SDCard.png);
以下のSDCard_Info.cppを作成して、SDカードの情報をシリアル...
#pre{{
#include "lbed.h"
#include "SD.h"
const int chipSelect = D4;
void setup() {
/*
SD.begin(chipSelect);
File dataFile = SD.open("test.txt", FILE_WRITE);
// if the file is available, write to it:
if (dataFile) {
dataFile.println("test");
dataFile.close();
}
*/
Serial pc(D0, D1);
pc.baud(9600);
pc.print("\nInitializing SD card...");
Sd2Card card;
SdVolume volume;
SdFile root;
if (!card.init(SPI_HALF_SPEED, chipSelect)) {
pc.println("initialization failed. Things to ch...
pc.println("* is a card is inserted?");
pc.println("* Is your wiring correct?");
pc.println(
"* did you change the chipSelect pin ...
return;
} else {
pc.println("Wiring is correct and a card is pre...
}
// print the type of card
pc.print("\nCard type: ");
switch (card.type()) {
case SD_CARD_TYPE_SD1:
pc.println("SD1");
break;
case SD_CARD_TYPE_SD2:
pc.println("SD2");
break;
case SD_CARD_TYPE_SDHC:
pc.println("SDHC");
break;
default:
pc.println("Unknown");
}
// Now we will try to open the 'volume'/'partition' ...
if (!volume.init(card)) {
pc.println(
"Could not find FAT16/FAT32 partition...
return;
}
// print the type and size of the first FAT-type vol...
uint32_t volumesize;
pc.print("\nVolume type is FAT");
pc.print(volume.fatType(), DEC);
pc.println();
volumesize = volume.blocksPerCluster(); // clusters ...
volumesize *= volume.clusterCount(); // we'll ...
volumesize *= 512; // SD card blo...
pc.print("Volume size (bytes): ");
pc.print(volumesize);pc.println();
pc.print("Volume size (Kbytes): ");
volumesize /= 1024;
pc.print(volumesize);pc.println();
pc.print("Volume size (Mbytes): ");
volumesize /= 1024;
pc.print(volumesize);pc.println();
pc.println("\nFiles found on the card (name, date an...
root.openRoot(volume);
// list all files in the card with date and size
root.ls(LS_R | LS_DATE | LS_SIZE);
}
void loop() {
}
}}
Mac OSXの場合、SDカードにゴミ箱やスポットライトの情報が隠...
以下の様に出力されました。
&ref(SD_Info_monitor.png);
** 非接触温度計TMP006シールド [#hcc2aca4]
[[作って遊べるArduino互換機 >http://www.amazon.co.jp/dp/4...
で紹介されているTMP006シールドをlbeDuino用に作成しました。
&ref(th_TMP006_shield.jpg);
いつものようにテクノペンで基板のパターンをかきました。
&ref(TMP006_shield_brd.png); &ref(TMP006.png);
テストに使用するライブラリは、mbedの
[Sam Kirsch氏のTMP006_lib>http://developer.mbed.org/users...
をlbeDuinoに移植して使いました。
((インクルードファイルをmbed.hからlbed.hに変えるだけです))
最初、値が正しく求まりませんでした。この原因はLBEDのI2C.r...
温度を表示するスケッチは、以下の通りです。
#pre{{
#include "lbed.h"
#include "TMP006.h"
#include "AQCM0802.h"
#define Address (0x40<<1)
// D8番ピンSDA, D9番ピンSCL
TMP006 sensor(D8, D9, Address);
AQCM0802 lcd(D8, D9);
void setup() {
lcd.setup();
sensor.config(Address, 8);
}
void loop() {
lcd.locate(0, 0);
lcd.print("DieTemp: ");
lcd.print(sensor.readDieTempC(Address), 2);
lcd.locate(0, 1);
lcd.print("ObjTemp: ");
lcd.print(sensor.readObjTempC(Address), 2);
wait_ms(1000);
}
}}
** コメント [#dfc025b7]
#vote(おもしろかった[10],そうでもない[0],わかりずらい[0])
皆様のご意見、ご希望をお待ちしております。勉強会で分から...
スパム防止に画像の文字列も入力してください。
- Arduino-lbeDuino変換シールドとマイクロSDカードシールド...
- I2C.readに大きなバグがありました。lbeDuinoのI2C, LM73は...
- LM73の再テストを行い動作を確認しました -- [[竹本 浩]] ...
#comment_kcaptcha
ページ名:
SmartDoc