Arduino勉強会/0C-米粒Arduinoを使ってみる
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
[[Arduino勉強会]]
#contents
2014/08/31からのアクセス回数 &counter;
** 米粒Arduinoを使ってみる [#h1ac9493]
Arduino勉強会のメンバーの岡野さんに米粒大のAVR ATtiny10を...
調べて見るとArduino用にライブラリーを提供している人もいる...
使ってみることにしました。
*** Atmel Studioの入手 [#l8130e02]
ATTiny10に書き込むには、Atmel Studio6を使ってAVR MkIIの...
必要があるのですが、最新の6.2にはtoolメニューにAVR Tools ...
そこで、以下のサイトから6.1betaをダウンロードしました。
- http://atmel-studio.software.informer.com/6.1b/
*** ライターの変換モジュール [#lf0343c5]
ATtiny10はとても小さいので、秋月の実装モジュールを運良く...
((在庫切れの場合が多いです))
変換基板も秋月にありますので、自分でハンダ付けすることも...
- http://akizukidenshi.com/catalog/g/gP-03659/
最初に用意したのは、ATtiny10へのライターとATtiny10との変...
配線は、
[[米粒AVR(ATtiny10)をArduino IDEで使う。暫定レポート2>ht...
を参考にさせて頂きました。
&ref(convert_writer_pin.png,,75%);
変換モジュールの結線は、以下の通りです。
| AVR MkII | ATtiny10 |
| 1: MISO | 1: D0/A0 |
| 2: VCC | 5: VCC |
| 3: SCK | 3: D1/A1 |
| 5: RESET | 6: RESET |
| 6: GND | 2: GND |
ピン配置は、以下の画像を参照してください((http://make.kos...
- &ref(attiny10_ISP.png,,50%);
*** ライターの動作確認 [#j54e8181]
変換モジュールができたので、正しく動作することをAtmelStud...
良く例題にでているのは、D0にLEDを接続するものですが、これ...
そこで、D2にLEDを接続するように修正しました。
#pre{{
#include <avr/io.h>
#include <util/delay.h>
int main() {
DDRB = 0xff;
for ( ; ; ) {
PORTB |= 4;
_delay_ms(500);
PORTB &= 0xfb;
_delay_ms(500);
}
}
}}
書込には、Tools Device Programmingを選択し、Tool: AVRISP ...
Production fileでビルドされたelfファイルを指定して、Progr...
書き込む時には、ATtiny10に5Vの電源を供給し、書き込み後は...
する必要があります。
&ref(th_Atmel_Studio_programer.jpg);
*** 電源とUSBシリアル変換モジュール [#x9780305]
ATtiny10への電源供給とUSBシリアル変換を行うために、マルツ...
[[【MPL2303SA】超小型USBシリアル・モジュール>http://www.m...
を使用しました。
MPL2303SAのピン配置は、以下の通りです。
&ref(MPL2303SA_meishou.jpg);
*** LED点灯の様子 [#f0d81410]
MPL2303SAとATtiny10をつないで、LEDを点滅している様子です。
LED点灯のプログラムで、128Byteになります。ATtiny10のフラ...
1024Byteなので、約1割を使ってLEDの点滅が動いています。
&ref(LED_setting.png);
** ATtiny10をArduino IDEで使う [#dd9f1e58]
世の中にはすごい人がいるもので、ATtiny10をArduino IDEでプ...
kosakalabの方がその方法を公開されています。
- [[米粒AVR(ATtiny10)をArduino IDEで使う。暫定レポート2>...
MacとWindowsに対応していますが、ここではMacの方法のみを簡...
+ ATtiny用定義ファイル群([[attiny.zip>http://make.kosakal...
+ [[AVR-GCCコンパイラー>http://www.obdev.at/products/cros...
+ Arduino IDEの内容を以下の手順でターミナルから変更($ は...
#pre{{
$ cd /Applications/Arduino.app/Contents/Resources/Java/ha...
$ mv avr avr-original
$ ln -s /usr/local/CrossPack-AVR /Applications/Arduino.a...
}}
*** 使い方 [#k247e73b]
準備ができたので、Arduino IDEでATtiny10のスケッチを作成し...
- 「ツール」→「マイコンボード」→「ATtiny10 (Internal 8MHz...
- 「ツール」→「書込装置」→「AVRISP mkII」を選択します
LED点滅を書き込みます。最初の例題との違いが分かるように点...
ledの番号は2を使います。
#pre{{
int led = 2;
void setup() {
pinMode(led, OUTPUT);
}
void loop() {
digitalWrite(led, HIGH);
delay(200);
digitalWrite(led, LOW);
delay(200);
}
}}
実際に書き込んで動作している様子です。
&ref(ATtiny10_blink.png);
** シリアル通信(送信のみ)を試す [#fc05e5aa]
LED点滅だけでは、つまらないのでシリアル通信をしようと
「スケッチの例題」→「04.Communication」→「ASCIITable」
をコンパイルするとエラーになってしまいました。ATtiny10に...
モジュールがないので、当たり前と言えばその通りです。
それでSoftSerialを使って見たのですが、こちらも未対応でエ...
調べて見るとATtinyでシリアル通信(送信)を実行した人がい...
- [[米粒AVRでシリアル通信(ただし送信だけ)>http://s2jp.c...
ここで紹介されているシリアル関数を使ってArduino IDEからHe...
作って見ました。
#pre{{
#define led 2
void setup() {
serialBegin();
pinMode(led, OUTPUT);
}
void loop() {
digitalWrite(led, HIGH);
delay(1000);
digitalWrite(led, LOW);
delay(1000);
// 直接文字を出力しないとタイミングがずれて文字化けする
serialWrite('H');
serialWrite('e');
serialWrite('l');
serialWrite('l');
serialWrite('o');
serialWrite(' ');
serialWrite('W');
serialWrite('o');
serialWrite('r');
serialWrite('l');
serialWrite('d');
serialWrite('!');
serialWrite('\n');
}
}}
ここで、タブにTinySerialを追加します。
#pre{{
#include <avr/io.h>
#include <util/delay.h>
#define DELAY 500
// 9600bps
#define SERIAL_TIME_PER_BIT1 104
#define SERIAL_TIME_PER_BIT2 102
#define SERIAL_TX_PIN PB1
void serialBegin() {
CCP = 0xD8;
CLKMSR = 0x00;
CCP = 0xD8;
CLKPSR = 0x00;
DDRB |= _BV(SERIAL_TX_PIN);
PORTB |= _BV(SERIAL_TX_PIN);
}
void serialWrite(uint8_t data) {
PORTB &= ~(_BV(SERIAL_TX_PIN)); // start bit
_delay_us(SERIAL_TIME_PER_BIT1);
uint8_t i;
for(i=1;i;i<<=1) {
if(data&i) {
PORTB |= _BV(SERIAL_TX_PIN);
}
else {
PORTB &= ~(_BV(SERIAL_TX_PIN));
asm volatile ("nop");
}
_delay_us(SERIAL_TIME_PER_BIT2);
}
PORTB |= _BV(SERIAL_TX_PIN); // stop bit
_delay_us(SERIAL_TIME_PER_BIT1);
}
}}
書き込む前に、ATtinyの3番(D1)とMPL2303SAの4番(RXD)を...
ATtiny10への書込が成功したら、上記の線を結線し、MPL2303SA...
LEDが点滅した後、Hello World!が表示(たまに文字化けがあり...
&ref(Hello_World.png);
*** タイミングのずれ? [#pd9b81b3]
ここで、なぜSerialWriteをforループで書かないのか疑問がで...
入れると文字化けしたり、止まったりするのです。
((原因不明です。))
以下がForループを使ったスケッチです。
#pre{{
#define led 2
char *msg = "Hello World!\n";
void setup() {
serialBegin();
pinMode(led, OUTPUT);
}
void loop() {
digitalWrite(led, HIGH);
delay(1000);
digitalWrite(led, LOW);
delay(1000);
for (char *s = msg; *s; s++)
serialWrite(*s);
}
}}
** bitDuinoに切替 [#cce04460]
Twitterにこのページを紹介したら、まりすさんからbitDuinoを...
- [[世界最小?のArduino互換ボードを作ってみた(暫定版)>htt...
コンパイルサイズも小さく、動かなかったForループを使ったス...
Forループのスケッチは、以下の通りです。
#pre{{
#define led 2
static char *msg = "Hello World!\n";
void setup() {
serialBegin();
pinMode(led, OUTPUT);
}
void loop() {
digitalWrite(led, HIGH);
delay(1000);
digitalWrite(led, LOW);
delay(1000);
for (char *s = msg; *s; s++)
serialWrite(*s);
}
}}
** コメント [#w726b0b6]
#vote(おもしろかった[45],そうでもない[0],わかりずらい[3])
皆様のご意見、ご希望をお待ちしております。勉強会で分から...
スパム防止に画像の文字列も入力してください。
- まりす(@maris_HY)さんに教えて頂いたbitDuinoを使ってみ...
#comment_kcaptcha
終了行:
[[Arduino勉強会]]
#contents
2014/08/31からのアクセス回数 &counter;
** 米粒Arduinoを使ってみる [#h1ac9493]
Arduino勉強会のメンバーの岡野さんに米粒大のAVR ATtiny10を...
調べて見るとArduino用にライブラリーを提供している人もいる...
使ってみることにしました。
*** Atmel Studioの入手 [#l8130e02]
ATTiny10に書き込むには、Atmel Studio6を使ってAVR MkIIの...
必要があるのですが、最新の6.2にはtoolメニューにAVR Tools ...
そこで、以下のサイトから6.1betaをダウンロードしました。
- http://atmel-studio.software.informer.com/6.1b/
*** ライターの変換モジュール [#lf0343c5]
ATtiny10はとても小さいので、秋月の実装モジュールを運良く...
((在庫切れの場合が多いです))
変換基板も秋月にありますので、自分でハンダ付けすることも...
- http://akizukidenshi.com/catalog/g/gP-03659/
最初に用意したのは、ATtiny10へのライターとATtiny10との変...
配線は、
[[米粒AVR(ATtiny10)をArduino IDEで使う。暫定レポート2>ht...
を参考にさせて頂きました。
&ref(convert_writer_pin.png,,75%);
変換モジュールの結線は、以下の通りです。
| AVR MkII | ATtiny10 |
| 1: MISO | 1: D0/A0 |
| 2: VCC | 5: VCC |
| 3: SCK | 3: D1/A1 |
| 5: RESET | 6: RESET |
| 6: GND | 2: GND |
ピン配置は、以下の画像を参照してください((http://make.kos...
- &ref(attiny10_ISP.png,,50%);
*** ライターの動作確認 [#j54e8181]
変換モジュールができたので、正しく動作することをAtmelStud...
良く例題にでているのは、D0にLEDを接続するものですが、これ...
そこで、D2にLEDを接続するように修正しました。
#pre{{
#include <avr/io.h>
#include <util/delay.h>
int main() {
DDRB = 0xff;
for ( ; ; ) {
PORTB |= 4;
_delay_ms(500);
PORTB &= 0xfb;
_delay_ms(500);
}
}
}}
書込には、Tools Device Programmingを選択し、Tool: AVRISP ...
Production fileでビルドされたelfファイルを指定して、Progr...
書き込む時には、ATtiny10に5Vの電源を供給し、書き込み後は...
する必要があります。
&ref(th_Atmel_Studio_programer.jpg);
*** 電源とUSBシリアル変換モジュール [#x9780305]
ATtiny10への電源供給とUSBシリアル変換を行うために、マルツ...
[[【MPL2303SA】超小型USBシリアル・モジュール>http://www.m...
を使用しました。
MPL2303SAのピン配置は、以下の通りです。
&ref(MPL2303SA_meishou.jpg);
*** LED点灯の様子 [#f0d81410]
MPL2303SAとATtiny10をつないで、LEDを点滅している様子です。
LED点灯のプログラムで、128Byteになります。ATtiny10のフラ...
1024Byteなので、約1割を使ってLEDの点滅が動いています。
&ref(LED_setting.png);
** ATtiny10をArduino IDEで使う [#dd9f1e58]
世の中にはすごい人がいるもので、ATtiny10をArduino IDEでプ...
kosakalabの方がその方法を公開されています。
- [[米粒AVR(ATtiny10)をArduino IDEで使う。暫定レポート2>...
MacとWindowsに対応していますが、ここではMacの方法のみを簡...
+ ATtiny用定義ファイル群([[attiny.zip>http://make.kosakal...
+ [[AVR-GCCコンパイラー>http://www.obdev.at/products/cros...
+ Arduino IDEの内容を以下の手順でターミナルから変更($ は...
#pre{{
$ cd /Applications/Arduino.app/Contents/Resources/Java/ha...
$ mv avr avr-original
$ ln -s /usr/local/CrossPack-AVR /Applications/Arduino.a...
}}
*** 使い方 [#k247e73b]
準備ができたので、Arduino IDEでATtiny10のスケッチを作成し...
- 「ツール」→「マイコンボード」→「ATtiny10 (Internal 8MHz...
- 「ツール」→「書込装置」→「AVRISP mkII」を選択します
LED点滅を書き込みます。最初の例題との違いが分かるように点...
ledの番号は2を使います。
#pre{{
int led = 2;
void setup() {
pinMode(led, OUTPUT);
}
void loop() {
digitalWrite(led, HIGH);
delay(200);
digitalWrite(led, LOW);
delay(200);
}
}}
実際に書き込んで動作している様子です。
&ref(ATtiny10_blink.png);
** シリアル通信(送信のみ)を試す [#fc05e5aa]
LED点滅だけでは、つまらないのでシリアル通信をしようと
「スケッチの例題」→「04.Communication」→「ASCIITable」
をコンパイルするとエラーになってしまいました。ATtiny10に...
モジュールがないので、当たり前と言えばその通りです。
それでSoftSerialを使って見たのですが、こちらも未対応でエ...
調べて見るとATtinyでシリアル通信(送信)を実行した人がい...
- [[米粒AVRでシリアル通信(ただし送信だけ)>http://s2jp.c...
ここで紹介されているシリアル関数を使ってArduino IDEからHe...
作って見ました。
#pre{{
#define led 2
void setup() {
serialBegin();
pinMode(led, OUTPUT);
}
void loop() {
digitalWrite(led, HIGH);
delay(1000);
digitalWrite(led, LOW);
delay(1000);
// 直接文字を出力しないとタイミングがずれて文字化けする
serialWrite('H');
serialWrite('e');
serialWrite('l');
serialWrite('l');
serialWrite('o');
serialWrite(' ');
serialWrite('W');
serialWrite('o');
serialWrite('r');
serialWrite('l');
serialWrite('d');
serialWrite('!');
serialWrite('\n');
}
}}
ここで、タブにTinySerialを追加します。
#pre{{
#include <avr/io.h>
#include <util/delay.h>
#define DELAY 500
// 9600bps
#define SERIAL_TIME_PER_BIT1 104
#define SERIAL_TIME_PER_BIT2 102
#define SERIAL_TX_PIN PB1
void serialBegin() {
CCP = 0xD8;
CLKMSR = 0x00;
CCP = 0xD8;
CLKPSR = 0x00;
DDRB |= _BV(SERIAL_TX_PIN);
PORTB |= _BV(SERIAL_TX_PIN);
}
void serialWrite(uint8_t data) {
PORTB &= ~(_BV(SERIAL_TX_PIN)); // start bit
_delay_us(SERIAL_TIME_PER_BIT1);
uint8_t i;
for(i=1;i;i<<=1) {
if(data&i) {
PORTB |= _BV(SERIAL_TX_PIN);
}
else {
PORTB &= ~(_BV(SERIAL_TX_PIN));
asm volatile ("nop");
}
_delay_us(SERIAL_TIME_PER_BIT2);
}
PORTB |= _BV(SERIAL_TX_PIN); // stop bit
_delay_us(SERIAL_TIME_PER_BIT1);
}
}}
書き込む前に、ATtinyの3番(D1)とMPL2303SAの4番(RXD)を...
ATtiny10への書込が成功したら、上記の線を結線し、MPL2303SA...
LEDが点滅した後、Hello World!が表示(たまに文字化けがあり...
&ref(Hello_World.png);
*** タイミングのずれ? [#pd9b81b3]
ここで、なぜSerialWriteをforループで書かないのか疑問がで...
入れると文字化けしたり、止まったりするのです。
((原因不明です。))
以下がForループを使ったスケッチです。
#pre{{
#define led 2
char *msg = "Hello World!\n";
void setup() {
serialBegin();
pinMode(led, OUTPUT);
}
void loop() {
digitalWrite(led, HIGH);
delay(1000);
digitalWrite(led, LOW);
delay(1000);
for (char *s = msg; *s; s++)
serialWrite(*s);
}
}}
** bitDuinoに切替 [#cce04460]
Twitterにこのページを紹介したら、まりすさんからbitDuinoを...
- [[世界最小?のArduino互換ボードを作ってみた(暫定版)>htt...
コンパイルサイズも小さく、動かなかったForループを使ったス...
Forループのスケッチは、以下の通りです。
#pre{{
#define led 2
static char *msg = "Hello World!\n";
void setup() {
serialBegin();
pinMode(led, OUTPUT);
}
void loop() {
digitalWrite(led, HIGH);
delay(1000);
digitalWrite(led, LOW);
delay(1000);
for (char *s = msg; *s; s++)
serialWrite(*s);
}
}}
** コメント [#w726b0b6]
#vote(おもしろかった[45],そうでもない[0],わかりずらい[3])
皆様のご意見、ご希望をお待ちしております。勉強会で分から...
スパム防止に画像の文字列も入力してください。
- まりす(@maris_HY)さんに教えて頂いたbitDuinoを使ってみ...
#comment_kcaptcha
ページ名:
SmartDoc