中村和志のLinuxでarduino開発のページ
Break the hate chain. No more kill!
Ubuntu10.04 LTSで確認したが、Ubuntu9.10以降なら以下の通りで
開発環境が揃う。
#しかも正確にはarduinoではなく、互換機のfreeduinoだ。
sudo add-apt-repository ppa:arduino-ubuntu-team
sudo apt-get update
sudo apt-get install arduino
依存関係でJavaもinstallされるので、回線によっては時間が掛かる。
サンプルを動かしてみる
- USBケーブルでarduinoを開発PCに繋ぐ。
- アプリケーション->プログラミング->arduino を起動
- Tools->Board->Arduino Duemilanove or Nano w/ ATmega328
※使っているarduinoの機種を選ぶ
- Tools->Serial Port->/dev/ttyU〜
※接続してるポートを選ぶ。大抵USBのはず
それでは一番簡単なプログラムを動かしてみる。
- File->Examples->Digital->Blink
- 横三角(Verify)アイコンをclickしてコンパイル
- 右矢印(Upload)アイコンをclickしてarduinoに読み込ませる
読み込んだら、自動的に走り出してpin13のLEDが点滅を始めると思う。
ってか実はFreeduinoの場合、出荷状態で予めこのプログラムが書き込まれている
ので、電源を入れるだけでLEDが点滅する。
ジャンパピンはUSBバスパワー側で十分。
次に簡単な「LEDの輝度を変化させる」ってのをやってみる。
- LEDを、Digitalの9番pinに+側(通常、足が長い)を、もう一方をGND
(Digitalの14番pin)に接続する。
- File->Examples->Analog->Fading を動かす。
LEDが「だんだん」明るくなっては暗くなる、を繰り返します。
Digital出力pinなのにだんだん(analogに)変化するとは一体??
目にも止まらないぐらい高速にON/OFFして、そのduty比を変化させることで
制御してます(PWM制御)。
次はAnalog入力を読んでみましょう。
読んだAnalog入力に応じてモータを回してみましょう。
Arduino(に限らず大抵のマイコン)は、直接モータを駆動する程の電流を
流せません。内部の回路が焼き切れてしまいます。そこでモータドライバ
と呼ばれるICを制御することで、モータを間接的に制御します。
今回はモータドライバICとしてTA7291SGを使いました。データシートはここ。
http://www.semicon.toshiba.co.jp/openb2b/websearch/productDetails.jsp?partKey=TA7291SG
ブレッドボード
Arduinoの仕様
arduinoで嬉しいこと
- 開発母艦にWindows不要。Linuxで開発できる。
- ROMライタやJTAGデバッガICEも不要。USB接続でFlush ROMを焼いてくれる。
- USB直結なので、USB-シリアル変換も不要。変換器の相性に振り回されない。
- ベンダに依存しない。今回もFreeduinoというArduino互換機を使いましたし、
開発環境も、Windows, Mac, Linux等で動作します。
中村和志のLinuxページ
中村和志のページ
このページはリンク フリーです。
無断でリンクして構いません。
また上記のWWWページ以下の内容について、正確を期すよう努力は致しますが、
全くの無保証です。ここで得た情報は、全て自分の責任でご利用下さい。
For questions or comments, please send mail to:
kaz@kobe1995.net