2009年11月16日月曜日

NetWalkerでArduino

ロボコンでは、会場も狭くて電源の確保も困難・・・ということが多くありませんか。
ということで、小型のPCで安くて・・・と探していたら
NetWalker・・・ぉお!
Arduino動くのか?!
試してみました。コンパイル・・・ちょっとエラーが出ますが、動いちゃいました。
サンプルの動作も確認できました。
乱視の目には厳しいですが、この大きさで、Arduinoの開発が出きるのは、嬉しいです。
ポケットに入れて、ロボットの開発ができちゃいます。

2009年11月8日日曜日

ArduinoでJoyStick

300円でアナログコントローラが売っていたので、買ってきました。Arduinoにつないで、サーボをコントロールしてみます。

DigitalPin7 Servo01
DigitalPin8 Servo02

Analog IN 0 JoyStickの垂直方向の出力
Analog IN 1 JoyStickの水平方向の出力

あとは、電源を適当につないでスケッチ書きました。


#include <Servo.h>

int joyPin1 = 0;
int joyPin2 = 1;
int value1 = 0;
int value2 = 0;
int pos, Szero01=73, Szero02=73;

Servo servo01;
Servo servo02;

void setup() {
  servo01.attach(8);
  servo02.attach(9);
}

int posValue(int data, int zero) {
  return(data/20.5+zero);
}

void loop() {
  value1 = analogRead(joyPin1);
  value2 = analogRead(joyPin2);
  pos = posValue(value1,Szero01);
  servo01.write(pos);
  pos = posValue(value2,Szero02);
  servo02.write(pos);
  delay(10);
}



こんな感じです。

int posValue(int data, int zero) {
return(data/20.5+zero);
}

の部分で、アナログコントローラの出力を、使用するサーボ(今回は、PARALLAX製無限回転サーボ)にあわせて変換しています。

2009年9月4日金曜日

GPS Robot Car Shield

東京海洋大学 で実施されるコンテストで使用するShieldです。
高校生の課題研究テーマで偶然同じような内容を指導していたので,配布の公募に申し込んでおきました。
抽選に当たって,先日送られてきました。ありがとうございます。


早速,イラスト描きました。


これから,ピンなどをハンダ付けしてArduinoに載せてスケッチを書いてみます。

2009年8月30日日曜日

Arduino Pro Mini とLR44でLED点滅(analogWrite())


携帯で撮影したら、90度まわった感じです。
3.3Vバージョンですが、LED結構明るいです。
これなら、フォトインタラプタの駆動も大丈夫な気がします。
LR44が大きく見えませんか?

2009年8月27日木曜日

Arduino Pro Mini


小さいロボットをつくろうと試しています。
IDEも017には、Arduino Pro Miniを選べるようになっています。
とりあえず、13番ピンのLED点滅は確認できました。
図はInkScapeで描いています。テレビ見ながら1時間ぐらいで描けました。

2009年8月11日火曜日

DCモータ駆動シールド

DCモータを制御するための回路を考えていたんだけど
パーツで集めてもけっこうな値段になる。
そんなとき\3,000-以下で2モータ起動しかも2AまでOKというシールドを見つけたので購入しました。
Ardumotoです。
最近は、国内でもいろんなところで販売されているようです。
ピンなどは、手元にあったものをハンダ付けして早速試しました。
・・・本当は、19日の研修会に向けてあせって資料収集してます。

2009年6月20日土曜日

6月15日の研修会

報告が遅くなりました。
6月15日の研修会 多くの方に参加していただいて実施できました。

講師の船田さんのお話は、資料も綺麗で、あっという間に終わってしまって、もっと聞きたい、もっと見たいという内容でした。

Arduinoの楽しそうな世界に憧れを持ちました。
ロボットだけでなくいろんなものを作れるようになりたいです。

午後の実習のライントレーサは、わたしの準備不足で、最後の走行で途中になってしまいました。
モータは、別電源でと思っていたのが失敗の原因でした。用意したモータドライブICが、4.5V以上のモータ駆動電源用なのに、確認しないで単3電池2本の電池ボックスを用意してしまいました。
その後試したのが、動画です。以外にあっけなく動きました。事前に試しておけばみんなで動作確認できた内容です。ごめんなさい。
この次は、夏休みです。今度こそしっかり準備しておきます。懲りずに参加してください。

Roboduino

ArduinoでRobotなのでRoboduinoがいいなぁ・・・と安易にネーミングして
今更検索したら
ありました
Arduino互換のロボット用ボードです。
もうあったんですねー。勉強不足でした。
このボードは、サーボモータが沢山付けられるようです。
2足歩行できるのかなぁ?
・・ところで、このブログのネーミングまずいかなぁ???

2009年6月19日金曜日

Arduinoでライントレーサの動画



センサ1つで動いてます。
モータドライブICの電源も、モータ駆動電源も、Arduinoからとっています。
だめかな?・・と思いましたが、動きました。
PICとかで、ライントレーサ作ったことがある人には、わかる話題でしょうか?
マイコンとモータが同じ電源だと、モータが回った途端、マイコンがリセットしてしまって動作不能・・・となることがあります。

Arduino素晴らしい!!!
簡単!!

実は、研修会でここまで、やりたかったのですが、準備不足でだめでした。
参加した皆さん、作成した電池ボックスを繋いで、回路を変更して試してください。

2009年6月18日木曜日

ArduinoにGPS

ArduinoにGPSを接続できるのか??
秋月に安いGPSがある・・・ということで
Arduinoに付けてデータを利用できるのか?????
買う前に情報収集してます。

まず秋月のGPS
RS232Cレベルコンバータ内蔵 GPSモジュール
安いです。RS-232Cの出力があるので、Arduinoでシリアル通信ができればいいのかな?

Arduinoの説明を見てみたら「Serial: 0 (RX) and 1 (TX). Used to receive (RX) and transmit (TX) TTL serial data. These pins are connected to the corresponding pins of the FTDI USB-to-TTL Serial chip.」とあります。

シリアル信号のRXとTXが、ピン0、ピン1に接続されているようです。

GPSモジュールの説明には
1.GND
2.POWER
3.RS232C IN
4.RS232C OUT
とあるので、
3をArduinoのデジタルピン0
4をArduinoのデジタルピン1
につないでスケッチを書けば良いのでしょうか?

うーん、なんだか意外と動きそうな気がする!
注文して確認してみたい気がしてきた。

2009年6月14日日曜日

モータドライブICは便利!?


この回路、おぼえてますか?
LB1650というICを使って2つのDCモータを制御できる回路です。
LB1650のデータシートは、ここなどから入手できます。
さて、この回路とArduinoをどうつなぐか?
モータ用の電源は、Arduinoとは別に用意して接続します。
IN1 IN2 IN3 IN4にどのような状態にするとモータがどうなるか?

左モータ IN1 IN2
 正転  1  0
 逆転  0  1
ブレーキ 1  1
ブレーキ 0  0

右モータは、同様にIN3 IN4で制御できます。
正転・逆転は、モータとの接続によって変化します。
出来上がった回路に、Arduinoをつないで、スケッチを動かして、思ったのと逆に動いてしまったら、スケッチの1/0を逆にすれば大丈夫です。
pwmも使いたいので
左モータ用 5 6
右モータ用 10 11
と接続することにしました。

スケッチは、FETのライントレーサを手直しして

 

#define LmotorPin1 5 // Right Motor in1 connected to analog pin 5
#define LmotorPin2 6 // Right Motor in2 connected to analog pin 6
#define RmotorPin3 10 // Left Motot in3 connected to analog pin 10
#define RmotorPin4 11 // Left Motot in3 connected to analog pin 11

#define Rpower 100
#define Lpower 100

#define photPin 0
#define ledPin 13

int pt = 0;

void setup() // run once, when the sketch starts
{
pinMode(ledPin, OUTPUT);
pinMode(LmotorPin1, OUTPUT); // sets the analog pin as output
pinMode(LmotorPin2, OUTPUT);
pinMode(RmotorPin3, OUTPUT);
pinMode(RmotorPin4, OUTPUT);
Serial.begin(9600);
}

void loop() // run over and over again
{
pt = readPhot(photPin);
if(pt > 80)
right(50);
else
left(50);
}

int readPhot(int p){
int val = 0;
digitalWrite(ledPin, HIGH);
delay(5);
val = analogRead(p);
Serial.print(val);
Serial.print("\n");
digitalWrite(ledPin, LOW);
return val;
}

void right(int t){
analogWrite(LmotorPin1, Lpower); // sets the LeftMotor on
analogWrite(LmotorPin2, 0);
analogWrite(RmotorPin3, 0);
analogWrite(RmotorPin4, 0);
delay(t);
}

void left(int t){
analogWrite(LmotorPin1, 0); // sets the RightMotor on
analogWrite(LmotorPin2, 0);
analogWrite(RmotorPin3, Rpower);
analogWrite(RmotorPin4, 0);
delay(t);
}


関数にしておいたので、修正も簡単でしたね。

2009年6月13日土曜日

みんなで研修会

15日(月)に研修会をやります。
講師には、船田巧さんをお招きします。

このブログの内容を追体験してもらおうという内容です。

・・・で、パーツを発注・・・秋月でなるべく安く・・・と安いFETをお願いしたら・・・
動かない・・・無知なので、FETの動作電圧まで気が回りませんでした。
今回発注したものは、5Vでは、動作しないもののようでした。
なので、急遽パーツ変更です。1Aまで流せるトランジスタを見つけました。
今日、明日で試作して研修会で実施します。
うまく動くことを神頼み!!

2009年6月12日金曜日

実際に動かしてみた

手元のパーツを使って実際に動かしてみました。



後ろは、UbuntuでArduinoIDEを動かしています。
センサからの情報を確認しながら、スケッチを変更できるのでわかりやすいです。

FETなので、ちょっと動きが悪い(ブレーキが効かない)ところもありますが、ちゃんと走りました。



ブレッドボードの回路はこんな感じです。
いろんな処理をArduinoに任せているので、回路は単純で部品も少なくなっています。

いろんなセンサを載せたくなります。
サーボモータも駆動できるので、アームを付けてものを運べるようにしようなど、アイデア次第で面白いロボットができそうです。

2009年6月10日水曜日

スケッチを、ちょっと手直し

まえと同じ内容ですが
定数と変数、関数を使ってloopの中をすっきり・・・という印象です。

 

/* 定数の設定 */
#define RmotorPin 3 // Right FET connected to analog pin 3
#define LmotorPin 5 // Left FET connected to analog pin 5
#define photPin 0
#define ledPin 13

/* 変数の宣言 */
int pt = 0;
int Rpower = 100;
int Lpower = 100;

/* 関数のプロトタイプ宣言 */
int readPhot(int);
void right(int);
void left(int);

void setup() // run once, when the sketch starts
{
pinMode(ledPin, OUTPUT);
pinMode(RmotorPin, OUTPUT); // sets the analog pin as output
pinMode(LmotorPin, OUTPUT);
Serial.begin(9600);
}

void loop() // run over and over again
{
pt = readPhot(photPin);
if(pt > 80)
right(50);
else
left(50);
}

int readPhot(int p){
int val = 0;
digitalWrite(ledPin, HIGH);
delay(5);
val = analogRead(p);
digitalWrite(ledPin, LOW);
Serial.print(val);
Serial.print("\n");
return val;
}

void right(int t){
analogWrite(RmotorPin, 0); // sets the LeftMotor on
analogWrite(LmotorPin, Lpower);
delay(t);
}

void left(int t){
analogWrite(RmotorPin, Rpower); // sets the RightMotor on
analogWrite(LmotorPin, 0);
delay(t);
}




どうでしょう?
#define
という部分が定数の設定です。
一度決めたら変化しないものは、これで設定できます。
loop
の部分も
センサ読んで
判断する
という内容が読みやすいと思いませんか?

2009年6月9日火曜日

ライントレーサのスケッチ

モータは、3、5
についているものとします。
センサの状況をパソコンに送る命令も残っています。
きちんと動作しない時は、値を確かめてif文の条件式を変更します。

 

int RmotorPin = 3; // Right FET connected to analog pin 3
int LmotorPin = 5; // Left FET connected to analog pin 5
int Rpower = 100;
int Lpower = 100;

int photPin = 0;
int ledPin =13;
int val = 0;

void setup() // run once, when the sketch starts
{
pinMode(ledPin, OUTPUT);
pinMode(RmotorPin, OUTPUT); // sets the analog pin as output
pinMode(LmotorPin, OUTPUT);
Serial.begin(9600);
}

void loop() // run over and over again
{
digitalWrite(ledPin, HIGH);
delay(5);
val = analogRead(photPin);
Serial.print(val);
Serial.print("\n");
digitalWrite(ledPin, LOW);
if(val > 80)
right(50);
else
left(50);
}

void right(int t){
analogWrite(RmotorPin, 0); // sets the LeftMotor on
analogWrite(LmotorPin, Lpower);
delay(t);
}

void left(int t){
analogWrite(RmotorPin, Rpower); // sets the RightMotor on
analogWrite(LmotorPin, 0);
delay(t);
}




白っぽい床などに、黒いビニルテープを貼って、コースを作って走らせてみましょう。
以外に簡単に走行しますね。

ライントレーサとしてまとめる

これまでのことをまとめると、線に沿って走行するロボットが作れます。
光センサのRPR-220は、下向きに取り付けて床の色に反応するようにします。
これで、床の色によってArduinoに異なる値が入力されます。

この値によって、左右のモータのON・OFFをFETでコントロールすると、ライントレーサとして動作します。



FETまわりの配線は省略しました。考えてください。

RPR-220を試すスケッチ

回路ができたのでスケッチを考えます。
LEDを点灯
フォトトランジスタの状態を読み込んで
LEDを消灯
コンピュータへデータを送る
これを繰り返す

こんな感じかな?

スケッチしてみましょう

 

int photPin = 0;
int ledPin = 13;
int val = 0;

void setup() {
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}

void loop() {
digitalWrite(ledPin, HIGH);
delay(5);
val = analogRead(photPin);
delay(5);
digitalWrite(ledPin, LOW);
Serial.print(val);
Serial.print("\n");
delay(990);
}




実行したら、Arduino IDE のseriarl MonitorをONにするとデータが表示されます。
センサの前に色の違う紙をかざしたりして、変化を確認してみましょう。



うまくいきましたか?
あーうっかりしてました。
LED側の抵抗は、電流制限用なので480Ωぐらい
フォトトランジスタ側は、かなり大きめです。いくつか変更して確かめてみてください。

ブレッドボードで配線

RPR-220という素子を例に実際の回路を作ります。
まず、素子のしくみを調べます。
インターネットで検索してデータシートという素子のしくみが説明された文書を入手します。
例えば、ここにあります。
データシートに、LEDとフォトトランジスタのピン配置がかかれています。角の切り欠き部分を目印に配置を確認します。どちら側が、+なのか、どのくらい電流を流せるかなどを確認したら回路を考えます。
まず、LEDは、電流が流れすぎないようにする抵抗をつけて、+とーにつなげば光ので簡単です。
問題は、フォトトランジスタです。ArduinoのANALOG INに接続して変化が大きくなるようにします。抵抗をつないで、その部分をANALOG INに接続します。



LEDは、13番ピンに接続して、必要な時だけ点灯できるようにしてあります。

2009年6月8日月曜日

そろそろセンサのこと

センサは、身の回りの現象をコンピュータに分かってもらうために必要な電子部品です。
ライントレーサをつくる場合、床に描かれた線を見つけるセンサが必要です。
白い床に、黒い線を描いたとします。色を見分けることは、光を見分けることです。
光センサを使います。



この例は、LEDから出た光の反射をフォトトランジスタで捉える反射型センサです。
フォトトランジスタは、FETのゲート電流にあたるものが、光を捉えることで流れます。
簡単に言えば、光を捉えると、電流が流れるものです。

Arduinoには、ANALOG IN と書かれたピンがあります。このピンとセンサを電圧の変化が出るような回路を作って接続します。

電圧が変化する回路???・・・・ですねー

電流計と電圧計の回路との関係を思い出してみましょう。



電流計は、回路に直列に、電圧計は、回路に並列に接続して使用します。
Arduinoは、電圧計のようにセンサと並列に接続するのが一般的です。

関数・・・ってなんだっけ?

関数は、ひとつのスケッチのなかで、同じ操作を繰り返して行いたいときに便利です。
関数名(){
 操作手順;
}
のような形で記述します。

FETでモータをコントロールするロボットを前進させる関数を考えてみます。
前進は、左右のモータを同じ力で回転させれば良いですね。できれば、指定した時間前進するようにしたいです。

forward(前進時間){
 右モータON;
 左モータON;
 指定時間待つ;
}

のような形にしてみます。

実際のプログラムでは

 

int RmotorPin = 3; // Right FET connected to analog pin 3
int LmotorPin = 5; // Left FET connected to analog pin 5
int Rpower = 100;
int Lpower = 100;

void setup() // run once, when the sketch starts
{
pinMode(RmotorPin, OUTPUT); // sets the analog pin as output
pinMode(LmotorPin, OUTPUT);
}

void loop() // run over and over again
{
forward(1000);
stop(100); // wait
forward(500);
stop(200); // wait
}

void forward(int t){
analogWrite(RmotorPin, Rpower); // sets the Motor on
analogWrite(LmotorPin, Lpower);
delay(t);
}

void stop(int t){
analogWrite(RmotorPin, 0); // sets the Motor off
analogWrite(LmotorPin, 0);
delay(t);
}



のようになります。
前進とストップだけです。
左折・右折も同様に考えてみましょう。
パワーも関数で変えられるようにするのも良いアイデアです。
試してみてください。

Arduinoでコントロールする

車体ができたので
Arduinoでコントロールしてみましょう。
以前のFETのスケッチを手直しして

 

int RmotorPin = 3; // Right FET connected to analog pin 3
int LmotorPin = 5; // Left FET connected to analog pin 5
int Rpower = 0;
int Lpower = 0;

void setup() // run once, when the sketch starts
{
pinMode(RmotorPin, OUTPUT); // sets the analog pin as output
pinMode(LmotorPin, OUTPUT);
}

void loop() // run over and over again
{
analogWrite(RmotorPin, Rpower); // sets the Motor on
analogWrite(LmotorPin, Lpower);
Rpower = Rpower + 10 % 256; // power change
Lpower = Lpower + 20 % 256;
delay(100); // wait
}


こんな感じでしょうか?
実際に走らせるときは、前進するようにモータのつなぎ方を変えてください。
速度を変化させながら右に曲がって行くような動きをする・・・のかな??

スケッチは、関数も作れるので、前進、左折、右折の3種類の関数を作れば、いろんな動きをさせることが簡単にできます。

2009年6月7日日曜日

組み立ててみる

タッピングプレートに、
ツインモータギアボックス
ボールキャスタ
タイヤ
を組み立ててみましょう。



これにArduinoと電池BOXを載せれば、初心者用ロボットの完成です。
おっと・・・忘れてました。センサも載せられます。
センサについては、もう少し後で・・・・
とりあえず、モータをFETで駆動する回路をブレッドボードに作って、ロボットに載せてみましょう。

プレート 自動車型ロボットのフレームに使用

ロボットといっても、機動戦士ガンダムやアシモのような、2足歩行ロボットは難しいので、最初は、自動車型のロボットを作ります。
自動車型ロボットで自律型というと床に書かれた線をたどって走るライントレーサーが有名です
模型用のパーツとして穴の開いたプレートがあるので、これをフレームとして利用すると工作が簡単です。



ミュウロボからタッピングプレートという商品が発売されています。
このプレートは、穴に直接ボルトをねじ込んで固定できます。
普通は、ネジとナットを使います。
作業してみればわかりますが、作業がかなり楽になるのでお勧めです。

2009年6月5日金曜日

動き回るArduinoのための準備

スケッチを動かすとき、Arduinoは、USBから電気をもらっています。
ロボットのように動き回るArduino、標準プラグをつけた電池BOXを用意します。
秋月の単3×4本のスイッチ付き電池BOXと2.1mmの標準プラグを用意しました。
電池BOXのコードを標準プラグへハンダ付けします。
中心が+なので、赤いコードを中心の電極へ
周囲の電極へは黒いコードをハンダ付けします。



これで、準備は終わりです。

2009年6月4日木曜日

FETを使ったモータドライブのスケッチ

FETを使ったモータを回転させる回路を紹介したままで
Arduinoのスケッチを考えてませんでした。
モータドライブICのスケッチの前にこちらを考えてみることにしました。

接続は、PWMと書いてあるピンならどこでも良いでしょう。

3番ピンに接続することにします。

int motorpin = 3;
のようにするとピン番号を名前で指定できます。

スケッチのイメージは
指定したピンへPWMの信号を出力する

PWM信号は
analogWrite(pin, value);
で出力できます。

 

int motorPin = 3; // FET connected to analog pin 3
int power = 0;

void setup() // run once, when the sketch starts
{
pinMode(motorPin, OUTPUT); // sets the analog pin as output
}

void loop() // run over and over again
{
analogWrite(motorPin, power); // sets the Motor on
power = power + 10 % 256; // power change
delay(100); // wait
}




powerの値を変えると回転速度が変化します。
うーん、ソースがきれい!!
・・・じゃなく、ソースの表示がきれい!

船田戦闘機日誌さんを参考にさせていただきました。
簡単だし、きれいにソースが表示できます。本当にありがたいことです。

モータドライブICのスケッチ をイメージする

モータドライブICを使った回路ができたので、
Arduinoのスケッチを作ってみます。
2つのモータがそれぞれ接続したピンからの
信号でコントロールされます。
00停止  01正転  10逆転  11ブレーキ
となります。(ICの規格を確認する)
PWMの利用できるピンに接続すれば、回転速度も変えられます。
こんかいは、
モータ1 ピン3 ピン5
モータ2 ピン6 ピン9
と接続しました

スケッチのイメージは、
モータをコントロールするピン番号を最初に設定して
モータ番号と回転方向、回転速度を指定して回転させる
という感じでしょうか

えーと
ピン番号の指定は
#define motor1p1 3
#define motor1p2 5
#define motor2p1 6
#define motor2p2 9
ということでいいかな?

モータを回転させる関数は
motor(番号, 回転方向, 回転速度)
でいきましょう。
うーん・・・番号でモータを指定するなら、ピン番号は配列に入れた方が指定が簡単かも??
いちいちmotor1p1 motor1p2とか書くの面倒だし、番号で判断して分岐というのも???

あーそうだ、モータ番号じゃなくて
motor(motor1p1, motor1p2, 回転方向, 回転速度)
でいいか??
判断もいらないし・・・これで行こう!!
ということでイメージが固まったのでスケッチです。

2009年6月2日火曜日

モータドライブIC

モータをロボットに使うときは、回転と停止だけではなく、回転方向も変えたくなります。
そんなときは、モータドライブICが便利です。



このICは、2つのモータをコントロールできます。
こんな感じです。



IN1~IN4へArduinoから0/1の信号を送ることで2つのモータをコントロールできます。



ブレッドボードでの接続例です。
ちょっと間違いがあるかも??大丈夫かな

便利そうなモータドライブICだけど、電流が1A程度までしか流せません。
大きな力を必要とするときは、FETで同様の回路を自作できます。
工夫して作ってみてください。

模型用モータを回す

モータを回してみる。
ロボットを作るのに、モータは欠かせません。



モータは、電気で回ります。
電気は、電圧と電流というもので考えます。
LEDを点灯することは、ある程度の電圧を与えれば、比較的少ない電流で可能です。
モータは、LEDと比べると、数十~百倍の電流が必要です。
大きな電流を回路にそのまま流すと、電子回路は壊れてしまうことがあります。
Arduinoなども同じです。

そのような時には、大きな電流のOn/Offができる電子部品を使います。
今回はFETという部品を使います。



GDSという記号は、
G:ゲート
D:ドレイン
S:ソース
を表します。

ゲートに電流を流すと、ドレインからソースへ電流が流れ、スイッチのような働きをします。
モータをFETで回す回路は、こんな感じです。(Nチャネル)



Arduinoとは別に電源を用意して、電源+と電源ーへ接続、電源ーは、ArduinoのGNDとも接続して、デジタルピンから制御信号へと接続すれば、Arduinoのスケッチでモータを回すことができます。

2009年5月31日日曜日

ブレッドボード

電子回路のプロトタイピングには、ブレッドボードを使うと簡単です。
パンを切るための板に似ているから・・・「ブレッドボード」らしいです。



中には、こんな感じで電気を流す板(図では赤い線)が入っているようです。(見たことはないですが・・・)



穴に導線や、電子部品(センサや抵抗など)を刺して回路を作ります。



例えば、こんなLEDを点灯させるには、

こんな感じで回路をつくります。

動くか確かめる

Arduinoも手に入れて、環境もインストールできたら、
ちゃーんと動くか試してみましょう。

最近のコンピュータには、USBポートが付いているので
USB-AとUSB-Bがついているコードを用意して(100円ショップで買ってきました)
早速接続しましょう。
Windowsでは、COMポートとして認識されます。
ちょっと面倒な操作をして、ポート番号を確認して設定します。

Ubuntuでは、自動的に

このように確認できます。

メニューから Skechbook - Examples - Digital - Blink と選択してサンプルを開きます。


Arduinoでは、プログラムをスケッチといいます。
このスケッチは、13番ピンに接続したLEDを点滅させます。
なぜ13番なの? というとArduinoに13番ピンに接続したLEDがついているから回路を作る必要がないからです。
さて、動かし方です。
自分のボードを選択します。


以上で設定終了です。

スケッチをダウンロードして実行する

ここをクリックしましょう!
うまくいけばArduinoの13番ピンに接続されたLEDが点滅します。



もし・・・

こんなエラーが出ちゃったときは、
ボードが正しく選ばれているかもう一度確認しましょう

さあ、これで、動くか確かめることができたので、自分のスケッチを楽しめます。

環境を整える

Arduinoは、自分で作ることもできますが、電子工作初心者には、完成品がお薦めです。
わたしは、スイッチサイエンスで購入しました。
Arduinoを用意できたらコンピュータにつないで、Arduinoになにをしてほしいかお願いします。
Arduinoに、お願いするには、スケッチと呼ばれるプログラムを書きます。
スケッチを書いたり、Arduinoに送ったりすることを簡単にできるソフトウェアがArduino HomePageに無償で用意されています。
自分のパソコンの環境にあったものをダウンロードしてインストールしましょう。
WindowsとUbuntuで試しましたが、どちらも簡単に使用可能でした。

準備
Java環境のインストールと環境設定

最新版のダウンロード
Arduino - Softwareページから最新版をダウンロード

インストール作業
ダウンロードのページから NextSteps の Getting Started を選択すると各環境のインストール手順が図とともに詳細に解説されています(英語)。英語といっても、図が豊富ですからわかると思います。

起動しよう
インストールが終了したら起動してみましょう


Ubuntu で Arduinoを起動しました。
開いているファイルは、同時にインストールされるサンプルです。

ここで、うまく起動できない時は、Java環境を再確認しましょう。

Arduino入門

Arduinoってはじめて聞いたという人も多いと思います。
詳細は、Arduino HomePageで確認できます(英語)。
日本語でもいろいろ解説されています。Arduino 日本語リファレンスは、とくにお薦めです。


このイラストはInkscapeで作成しました。

Arduinoは、アイデアをスケッチを描くように、電子回路を作れる環境です。
身の回りにある電気で動くおもちゃを改造したり、クリスマスのイルミネーションをオリジナルにしたり簡単にできちゃうかも?

Arduinoには、電気を出し入れできる穴がたくさん開いています。ここに電線を差し込んで、ちょっとお願いすると、自分のやりたいことができるかも?