なんかいろいろこんぴゅーたかんけいのなぐりがき

なんか勉強しているこんぴゅーた関係のことのメモやそれ以外のことを書こうかなあ...

logs

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ATmega328Pで自作Arduino


今日はATmega328とかコンデンサとか使ってブレッドボードにArduinoを自作した。

作り方は、ニコニコ動画で見つけたコレ↓に詳しく説明されている。



上の動画は非常に分かりやすいが、自分が今回作っていてつまずいたところをメモしておく。

電解コンデンサの向き:アノード(足が長いほう)を+にカソード(足が短いほう)をGNDに差すとうまくいった。また、私の使用した電解コンデンサのアノードとカソードの足の長さの差が大きかったので足の短いカソード側がブレッドボードに刺さらなかったのでアノード側の足を少し爪切り(ニッパなんて持ってません)で切って、長さを調節した。

ブートローダを書き込むときの回路:
 http://www.geocities.jp/arduino_diecimila/avr-writer/index.html#top
上のURLのサイトに載っているスタンド・アローン・ライタの図を参考にして配線するとうまくいった。


Fuseに書き込む値:
 まずは配線が載っていた先のサイトを参考にソフトをダウンロードして、GUIのあるソフトを起動するわけで、Fuseの欄でReadボタンを押すと値が読まれ、ただしく配線できていることが分かるが、この値を書き換えてWriteボタンを押してFuseの値の書き換えをしなければならない。で早速Fuseって何?って状態になるわけだが、ググッてみると、Fuseはそれぞれ

hFuse->フューズビットHIGH
lFuse->フューズビットLOW
eFuse->フューズビットEx

のことで、それぞれ8ビットからなるフラグのようで、これらのビットを切り替えることでなにやらいろいろと設定をしているようだ。まあ細かいことはどうでもいい。知りたいことはArduinoに最初に乗っているATmega328ではどんな値がFuseに設定されているのかということ。

で、それも調べてみると、サイトによっては違う値を示している場合もあるが、いろいろなサイトを見て回った結果

hfuse = DA
lfuse = FF
efuse = 05
unlock = 3F
lock = 0F

が正しいと思う。(もちろん保障はしない)

lock,unlockていうのはどうやらLock Bit欄でWriteすることにより、何かをロックできるようだが、多分きちんと設定しなくてもLockBitはなんとかなりそう。

ブートローダを書き込み中にフリーズする:
 Command line Option を -P ft0 にしていますか?
 私の場合 -P ft0 -B 4800 のままにしてる書き込み途中にフリーズした


このやりかたで、16MHzになっているのか?:
 ATmegaは出荷された時点では低速モードの8MHzになっているらしい、でもArduinoに乗っているAtmega328は16MHzで動作している、ということで、自作するArduinoも16MHzにしたい。ということなんだけど、この16MHzとか8MHzとかを設定はFuseの値で行うようなので、上のほうに書いたFuseの値をWriteしていれば多分16MHzで動くのでは、と思う。多分ね。



それで、今気づいたんだけど、上のほうにリンク張ったサイト、新しくなってた!!
しかもそこにはちゃんとATmega328Pの場合のFuse値とか載ってた!!!orz
http://www.geocities.jp/arduino_diecimila/bootloader/index.html


なんかむなくしなってきたし、まとめに入ろう。

 ATmega328とその他もろもろでArduinoを自作した。
 費用は、USB付で2000円くらい。USBはずして、ブレッドボードを使わずにユニバーサル基盤を使えば、1000円もいかないと思われる。つまり完成品を買うよりお得。ただし、配線が下手だと本物よりでかくなるorz。
 
 作成時間は3時間くらい。でもなれれば1時間もかからないだろう。ブートローダを焼くのが面倒だったらブートローダ導入済みのATmega328Pも売られているのでそれを買うのも手。500円くらいで買える。ちなみに今回使ったのはもちろんブートローダ未導入のもので、秋月で250円でした(安)。
 
 難易度は、電子工作を全くしたことがなかった私が、Arduinoを買って、Arduinoで遊んで(具体的にどんなことをしていたかはこのブログを読んでいってもらえば分かると思う。あたりまえだが、念のために言っておくと、私はArduinoとPCの通信でPythonを使っているが、Arduinoの自作にPythonの知識は全くいらない。)1週間たたないうちに作ってしまえるレベル。

 それでは最後に写真を貼って終わりということで。

P1080594.jpg

 
スポンサーサイト

トラックバックURL

http://ilovevim.blog42.fc2.com/tb.php/50-0851c2df

この記事へのトラックバック

この記事へのコメント

コメント投稿フォーム

Paging Navigation

Navigations, etc.

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。