Arduinoはじめました。2012年08月21日 01:31
はじめました。
PICは以前からなんやかんやといじっていたり、AVRもそういえばブログには書いてなかったけどLチカ程度はやってたりする。
そんな中、流行りのArduinoについに手を出してみたわけである。
なぜかというと安かったので。衝動買いである。千石の2階で見つけて衝動を受けて、とりあえず秋葉原を一回り(aitendoの方まで)した上で衝動が覚めなかったので衝動買いである。
これがそれ。Freeduinoという互換機のようである。

キットなので組み立てる。

説明書は無いものの、基板のシルク印刷に頼るだけで詰まるところもほとんど無く無事に組み立てられた。やはりキットとして売っているものはこの辺が楽でいい。
とはいうものの多少のトラップはあったので、注意とか感想とか色々書いておく。
まあそんなこんなで完成したのでPCにつなげてみる。…何も起こらない。
冷静になって基板をよく見る。そういえばEXTUSBなる3ピンヘッダがある。外部電源とUSBパワーの切り替えだろう。USBっぽい方に付属のジャンパを挿して再度繋ぐ。
今度は無事電源が光った。ドライバインストールのウィンドウが出るがとりあえずキャンセル。なんだかLEDが1秒おきくらいにチカッチカッと点滅しているのでまあどうやら正常っぽい。
さてここからが大変だった。
まずPCに繋げていいのか(繋げちゃったけど)とか、ドライバが要るのかとか、そのインストール方法とか、その辺のことが全く分からない。
検索してもどうもそういうのは見つけづらくて、ちゃんと繋げられた後のことばかり書いてある。
結局参考にしたのはここ…からリンクを辿った本家ページ(英語)である。
日本語の資料くらい探せばあると思うんだけど見つけられなかった。先のページもインストール手順については「ドライバも必要なので、英語のガイドだけど頑張って読もう!!」の一言だけである。
でその手順というのが、WindowsXPの場合で言えば、
たった3行で済むんだからみんな書いといてくれよ…。
環境によって多少変わるとは思うけど大まかな流れは分かるわけだし。
気を取り直してスケッチ(Arduinoのプログラムのことをスケッチと呼ぶ)を書きこもう。
まずこのボードはArduinoでいうと何なんだろう。Freeduino V1.22とか書いてあるのでこれでググる。いまいち確からしい情報が見つからないがどうもATmega168使用のDiecimilaっぽい。
それを設定して、blink(基板についてるLEDが点滅する)のスケッチを書き込む。動かない。というよりコンパイルエラーだ。
これは何かおかしい。実はArduinoのソフトは以前ATtiny2313に何か書こうとしたときにダウンロードしたものなのだが、その時色々いじっていてそれが悪さをしている可能性が高い。バージョンアップしているらしいし折角なので新しいのを入れてみる。
そして再度書き込み。動かない。ただし今度はコンパイルには成功している。書き込みも成功したと言い張っているのだが、
stk500_getsync( ): not in sync: resp=0x00
というエラーが出ている。調べるといろんな環境で出る原因不明のエラーだというので色々と対処法を試してみたのだがやはり動かない。
と、ここでふと別のボードの設定で書き込みを試してみる。
stk500_getsync( ): not in sync: resp=0x00
…同じエラー。…ということは…?
石をよく見てみれば

うわ違うじゃん168じゃなくて328じゃん。
というわけでボード設定をATmega328使用のDuemilanoveというものに変えたら難なく成功。
どうもFreeduinoという名前で色々なArduinoの互換機が出ているようである。
さっき見つけたATmega168使用のDiecimila互換機もあり、これはATmega328使用のDuemilanove互換機だったようである。
そしてblinkに続いてfade(適切なピンに接続したLEDがPWMでじわっと明滅する)の書き込みにも成功。どうやら最初の峠を越えたようである。
これで俺もアルデュイナーだぜ!
PICは以前からなんやかんやといじっていたり、AVRもそういえばブログには書いてなかったけどLチカ程度はやってたりする。
そんな中、流行りのArduinoについに手を出してみたわけである。
なぜかというと安かったので。衝動買いである。千石の2階で見つけて衝動を受けて、とりあえず秋葉原を一回り(aitendoの方まで)した上で衝動が覚めなかったので衝動買いである。
これがそれ。Freeduinoという互換機のようである。

キットなので組み立てる。

説明書は無いものの、基板のシルク印刷に頼るだけで詰まるところもほとんど無く無事に組み立てられた。やはりキットとして売っているものはこの辺が楽でいい。
とはいうものの多少のトラップはあったので、注意とか感想とか色々書いておく。
- 抵抗が1個だけ違う
入っている抵抗は6本の1kΩと1本だけ10kΩ。しかも悪いことに茶黒赤金と茶黒橙金でよく似ている。
1kΩと200Ωの抵抗のカラーコードが紛らわしいからと220Ωに変更したRCDライタはよく考えられてたんだなあ。 - 抵抗の番号が飛んでいる
7本しかないのにR12とかある。謎。 - 抵抗値が書いてない抵抗がある
Rledとだけ。LED用の抵抗で抵抗値はLEDに合わせて適宜選んでねってことだと気づくのに大分かかった。
もっともキットに入ってるのは1kΩだけなので迷いようはないのだが。 - コンデンサも紛らわしい
こっちはシルク側が。「100n」がいくつも並んでいる中1個だけ「10n」が混じっている。
はめていって数が足りなくなって気づいた。 - 穴間隔がいまいち
抵抗の穴間隔は短い。0.3インチしかなくて、キットに入っているよくあるサイズ(大きい方)の抵抗は微妙にきつい。
コンデンサの穴間隔は広い。電解もセラミックも大開脚しておさまりが悪い。
あと電源のコネクタの穴が妙に大きくて(2~3mm)、どこにハンダ付けするか迷った。
結局縁の方にちょこっとつける形になったがまあ安定しているようだし多分USBで事足りる。 - 3端子レギュレータの足曲げが困難
放熱板をねじ止めできるように基板に穴が開いているのだが、そこに合うように曲げようとすると足のかなり付け根のところから曲げる必要があるのだが、我が家のペンチは太くて無理だった。
またそもそも綺麗に穴に合わせるのは難しそう。 - 水晶発振子は最後に付けるべきではない
熱とかに強そうな部品を最初に、弱そうな部品を最後にと付けていたら水晶発振子がほぼ最後になってしまったが、周りに背の高い部品がある中付けるのは至難の業だった。 - 使わない穴が結構ある
USBコネクタのそばの穴(miniじゃないBコネクタ用)とか、なんか丸に囲まれた穴(パターンカット用?)とか、水晶発振子の真ん中の穴(コンデンサ内蔵の3本足発振器用)とか。
この基板がわりと汎用なのだと気づいたのはわりと後のこと。 - ピンヘッダが曲がった
穴にわりと遊びがあるのに気付かなかったのが敗因。 - RXとTXのLEDの色を変えればよかった
指示通りに作るのが癪だったので密やかな反抗として、キットには全て緑色のLEDが入っていたのをその辺にあった赤と橙のLEDに変えてみた。
ただ、4つあるうちのRXとTXはセットだから色合わせとこうかなと思ったのは間違いだった。
送受信で色を変えておけば送信中か受信中か分かったのに。
両面スルーホール基板だから付けかえるの面倒そうだし
まあそんなこんなで完成したのでPCにつなげてみる。…何も起こらない。
冷静になって基板をよく見る。そういえばEXTUSBなる3ピンヘッダがある。外部電源とUSBパワーの切り替えだろう。USBっぽい方に付属のジャンパを挿して再度繋ぐ。
今度は無事電源が光った。ドライバインストールのウィンドウが出るがとりあえずキャンセル。なんだかLEDが1秒おきくらいにチカッチカッと点滅しているのでまあどうやら正常っぽい。
さてここからが大変だった。
まずPCに繋げていいのか(繋げちゃったけど)とか、ドライバが要るのかとか、そのインストール方法とか、その辺のことが全く分からない。
検索してもどうもそういうのは見つけづらくて、ちゃんと繋げられた後のことばかり書いてある。
結局参考にしたのはここ…からリンクを辿った本家ページ(英語)である。
日本語の資料くらい探せばあると思うんだけど見つけられなかった。先のページもインストール手順については「ドライバも必要なので、英語のガイドだけど頑張って読もう!!」の一言だけである。
でその手順というのが、WindowsXPの場合で言えば、
- ArduinoをUSBポートに挿す
- USBシリアル変換チップのドライバを要求されるので、~\arduino-x.x.x\drivers\FTDI USB Driversから探させる
- シリアルポートのドライバを要求されるので、同じ場所から探させる
たった3行で済むんだからみんな書いといてくれよ…。
環境によって多少変わるとは思うけど大まかな流れは分かるわけだし。
気を取り直してスケッチ(Arduinoのプログラムのことをスケッチと呼ぶ)を書きこもう。
まずこのボードはArduinoでいうと何なんだろう。Freeduino V1.22とか書いてあるのでこれでググる。いまいち確からしい情報が見つからないがどうもATmega168使用のDiecimilaっぽい。
それを設定して、blink(基板についてるLEDが点滅する)のスケッチを書き込む。動かない。というよりコンパイルエラーだ。
これは何かおかしい。実はArduinoのソフトは以前ATtiny2313に何か書こうとしたときにダウンロードしたものなのだが、その時色々いじっていてそれが悪さをしている可能性が高い。バージョンアップしているらしいし折角なので新しいのを入れてみる。
そして再度書き込み。動かない。ただし今度はコンパイルには成功している。書き込みも成功したと言い張っているのだが、
stk500_getsync( ): not in sync: resp=0x00
というエラーが出ている。調べるといろんな環境で出る原因不明のエラーだというので色々と対処法を試してみたのだがやはり動かない。
と、ここでふと別のボードの設定で書き込みを試してみる。
stk500_getsync( ): not in sync: resp=0x00
…同じエラー。…ということは…?
石をよく見てみれば

うわ違うじゃん168じゃなくて328じゃん。
というわけでボード設定をATmega328使用のDuemilanoveというものに変えたら難なく成功。
どうもFreeduinoという名前で色々なArduinoの互換機が出ているようである。
さっき見つけたATmega168使用のDiecimila互換機もあり、これはATmega328使用のDuemilanove互換機だったようである。
そしてblinkに続いてfade(適切なピンに接続したLEDがPWMでじわっと明滅する)の書き込みにも成功。どうやら最初の峠を越えたようである。
これで俺もアルデュイナーだぜ!
Post time : 2012年08月21日 01:31│Comments(0)