パステル実験室

アクセスカウンタ

zoom RSS Arduinoを使ってみる

<<   作成日時 : 2012/11/23 23:00   >>

ブログ気持玉 0 / トラックバック 3 / コメント 0

今更ながらArduinoを弄る事になった。先日、とりあえず本体と拡張ボードが必要ということで、ちょっと検索してマルツさんにて
  • Arduino UNO
  • サンハヤトの「UB-ARD03-P」
  • サンハヤトの「UB-ARD01」
を手配しておいた。
とりあえずIDEを試す環境が必要だということで、仮想XPを一つ専用にこしらえてダウンロードして展開。展開した先のディレクトリのarduino.exeを起動して「スケッチの例」からお決まりのLED点滅サンプルらしきものを開く。なるほど、以前からちらほら聞いていたとおりで、setup()で初期化、loop()がメインループか。ビルドして書き込んでみるととりあえずうごいたようだ。さて、だいたい普通ならビルドしたファイルがあれこれ出来ていそうなものだけど、ソースコードのディレクトリを開いても何も無い。あれこれ見ていて分かってきたことだけメモ。
ソースは環境変数で指定したテンポラリのディレクトリ(C:\Documents and Settings\Administrator\Local Settings\Temp\)にフォルダができて、この中に展開されている。自分で作った.inoファイルは
void setup();
void loop();
の2行が追加されて、拡張子が.cppになって生成されている。

基本的にライブラリはソースコードで持っているように見える。オブジェクトとして持ってリンクするだけのほうが良さそうなものだけど、今はCPUも速いし、Arduinoでそれほど巨大なプログラムをビルドすることもないからかまわないということか。試しに自分で作ったものと、サンプルのものを交互にビルドしてみたら、この中に両方のソースコードが展開されている。なんとも不思議なことだけど、そういうものなのだろう。この下にHEXファイルもできている。これを生のATMEGAに書き込めば動くのだろうかな。ビルドされたファイルを表に残さないというのもArduinoを使うだけという立場ならいいのだろうけど、なんだか落ち着かないけども。

ちなみに拡張ライブラリは結局C++のクラスとして実装されていて、
  • xxx.h
  • xxx.cpp
  • keyword.txt
の三つのファイルで構成されている。keyword.txtは、キーワードと色のペアを記述しておけば、IDE上で該当するキーワードが色付きで表示されるというもので、たとえば、EEPROMのkeyword.txtはこんな感じ。

#######################################
# Datatypes (KEYWORD1)
#######################################

EEPROM KEYWORD1

#######################################
# Methods and Functions (KEYWORD2)
#######################################

#######################################
# Constants (LITERAL1)
#######################################

てな具合に、KEYWORD1、KEYWORD2、LITERAL1なんていうものに区分けしておけばいい。
他は普通のソースファイル。
例えばEEPROMだと、EEPROM.hはこんな調子。
#ifndef EEPROM_h
#define EEPROM_h

#include <inttypes.h>

class EEPROMClass
{
public:
uint8_t read(int);
void write(int, uint8_t);
};

extern EEPROMClass EEPROM;

#endif

で、EEPROM.cppではメンバの定義なんかをやっている。
があると、このexternを見てEEPROMというインスタンスを勝手に生成してくれるようで、
void loop()
{
int val = analogRead(0) / 4;
EEPROM.write(addr, val);
addr = addr + 1;
if (addr == 512)
addr = 0;
delay(100);
}

と、こんな調子でいけるようだ。
  • 基本機能なライブラリの類は展開した先の\hardware\arduino\cores\arduino
  • 拡張機能的なライブラリの類は\librariesにいろいろある
ちなみに、本当のmainとなる、main.cppも標準ライブラリのところに並んでいて、中身は単純。なるほどね。
#include <Arduino.h>

int main(void)
{
init();

#if defined(USBCON)
USBDevice.attach();
#endif

setup();

for (;;) {
loop();
if (serialEventRun) serialEventRun();
}

return 0;
}

テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

トラックバック(3件)

タイトル (本文) ブログ名/日時
プラダ 財布
Arduinoを使ってみる パステル実験室/ウェブリブログ ...続きを見る
プラダ 財布
2013/07/06 22:59
プラダ トート
Arduinoを使ってみる パステル実験室/ウェブリブログ ...続きを見る
プラダ トート
2013/07/09 06:29
VISVIM 通販
Arduinoを使ってみる パステル実験室/ウェブリブログ ...続きを見る
VISVIM 通販
2013/07/09 23:03

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
Arduinoを使ってみる パステル実験室/BIGLOBEウェブリブログ
文字サイズ:       閉じる