*AVRマイコンなページ [#m702a849]

 AVRマイコンなページにようこそ~
 ここではAVRマイコン講座での内容をまとめたり,追加情報を載せたりしています~
 内容について不備,間違い,不足等あれば指摘,追記,修正等どんどんしてください~
 現在製作中のため画像等がないですが余裕ができたら作ってあげていきます~

**AVRマイコンとは? [#x1320e23]
 AVRマイコンとはATMEL社が生産している8bitマイコン(マイクロコントローラ)のことです~
 CPU、メモリ(RAM、ROM)、I/O、データ記憶用のEEPROM、クロック発振回路、タイマーなどが~
 1チップに収められており、書き込まれたプログラムにより制御することが可能です~
 よく似たものにPICがあげられますが,PICと違い内部に発信回路を持っているなど~
 使い勝手が良かったりします~

**AVRの種類 [#k8819fe1]
 昔からある90Sシリーズと、大容量化、I/O拡張のMegaシリーズ、~
 高機能化・低消費電力化・低電圧対応のTinyシリーズがある~
 ・90S*** 
 ・ATMega*** 
 ・ATTiny*** 

**開発環境 [#zcf926c0]
 開発環境として統合開発環境の「AVR Studio」が無料で配布されている~
 また,C言語用のコンパイラとして「WinAVR」も無料で配布されている

**何ができるの? [#waa573c4]
 アイデア次第でいろんなことができますが,~
 今回の講座ではATTiny461を使ったライントレースロボットの開発をメインに~
 説明をしていく予定です~

*AVRマイコン講座 [#r7c63578]
**開発環境を作る [#o31ea185]
 AVRマイコンを使うにあたって開発環境の準備をします~
 コンピュータを使って何かをしたい場合,目的に合ったプログラムを用意しますよね?~
 AVRマイコンも同様でマイコンで何かをしたい場合,プログラムを用意する必要があります~
 ただし,マイコン自身でプログラムを作ることはできないのでパソコンにマイコン用のプログラムを作るための用意をします~
~
 次のページから最新版の「WinAVR」をダウンロードしてきます~
 http://sourceforge.net/project/showfiles.php?group_id=68108 ~
 ダウンロードページに"WinAVR-**********-install.exe"(*はリリースされた日付)~
 があるので最新の日付をダウンロードしてください~
 ダウンロードが済んだら"WinAVR-**********-install.exe"を実行します~
 後はセットアップウィザードに従ってインストールしてください~
 「WinAVR」はAVRマイコン用のC言語コンパイラでC言語で組まれたプログラムを~
 マイコンが理解できる形(マシン語)に変換してくれます~
 

 次にAVRマイコン用の総合開発環境をインストールします~
 総合開発環境はいろいろなコンパイラでの開発をサポートするための環境を提供するものです~
 今回は「AVR Studio」を使います~
 下記のページにある"Software:"コーナーの中から"AVR Studio 4.16 (build 628) "といったものをダウンロードします~
 http://www.atmel.com/dyn/products/tools_card.asp?tool_id=2725 ~
 よく似たものに"AVR Studio 4.16 SP1 (build 638) "がありますがこちらはサービスパックなので間違えないようにしてください~
 こちらは後で使うので一緒にダウンロードしておくと良いです~
 "AvrStudio***Setup.exe"(*はバージョン)を実行します~
 先ほどと同様にセットアップウィザードに従ってインストールしてください~
~
 これで開発環境が整いました~
**ライタって何ですか? [#f6ef0f28]
 さて,開発環境が整ったところで,どうやってマイコンにプログラムを入れるのか?~
 という問題が出てきます~
~
 マイコンにプログラムを入れることを"書き込み","焼き込み"といったりします~
 マイコンのROMにデータを書きもむことから来てるのですが,昔は紫外線を使って~
 ROMを変質させることによって書き込んだため"焼き込む"といった言い方をします~
~
 話が脱線してきたので元に戻しますが~
 この書き込みには"ライタ"と呼ばれるものを利用します~
 ライタにはパラレル,シリアル,USBに接続するものがありそれぞれで書き込み方が違っています~
 開発環境の構築で「AVR Studio」をインストールしましたが一部のライタを用いることで~
 「AVR Studio」からライタを操作してマイコンにプログラムを書き込むことが可能です~
 今回はATMEL社純正のライタである「AVRISP mk?」を使うので「AVR Studio」から書き込みが可能です~
 自分でライタを自作することも可能ですので興味がある人は調べてみてください~
**プログラムを組んでみよう [#b2a3a77b]
 では実際にプログラムを組んで見ましょう~
 「スタート」→「プログラム」→「Atmel AVR Tools」から「AVR Studio」を起動してください~
 次に「project」→「New Project」を選択します~
 ウィンドウが開くので,AVR GCCを選択して「Project name」を決めます~
 今回は例として「sample」というプロジェクトを作ってみます
 ここでCreate folderのチェックを入れるとプロジェクトごとにフォルダが作成されます~
 保存先の指定もここで行います(デフォルトはマイドキュメントになっています)~
 設定したら「Next」で次にいきます~
 次の画面ではデバッグを行うためのシミュレータと使用するマイコンの選択をします~
 今回はATTiny461を使うので「Debug plogram」は「AVR Simulator」を~
 「Device」は「ATTiny461」を選びます~
 選び終わったら「Finish」を押します~
~
 「Finish」を押した後,「sample.c」というファイルが開いた状態でエディタが立ち上がります~
 この「sample.c」の中にプログラムを書いていきます~

 次にサンプルプログラムを書いておきます
 #include <avr\io.h>
 
 int main(void)
 {
     while(1){
     }
     return (0);
 }

 まず,
 #include <avr\io.h>
 ですがこれはAVRマイコンの各種設定等を持っているヘッダーです~
 このプログラムは起動した後何もしません~

**ポートとは何ですか? [#ec1f5250]
 さて,このままでは面白くもなんともないので次に行ってみましょう~
 先ほどのプログラムを改造していくのですが,ここで一つ重要な情報があります~
 AVRマイコンには数本から数十本のピンが出ています~
 このピンは何に使うかというと~
 1,電源及びグランド(0V)~
 2,入出力(H,L)~
 3,A/D変換入力~
 4,アナログ出力~
 5,シリアル通信~
 6,クロック入力~
 7,プログラム書き込み~
 他いろいろな入出力に使われます~
 今回使用しているATTiny461はDIPパッケージで20本のピンを持っており~
 内18本が入出力をサポートしています~
 但し,一本のピンが複数の機能を持っているのでどの機能を使用するか指定が必要です~
 前置きが長くなってしまいましたが~
 ポートとはHightやLowの信号を出したり受けたりするピンのことです~
 ATTiny461ではポートA,Bの2つがありそれぞれ0〜7の8ポート,計16ポートあります~

**LEDを光らせてみよう [#ub5ea3f9]
 では実際にハードを制御してみましょう~
 まずは簡単にLEDを点滅させるプログラムを作ってみましょう~
 上にある何もしないプログラムを改造していきます
 #include <avr\io.h>
 
 int main(void)
 {
     long i;
     while(1){
         //処理の実行を待つ
         for(i=0;i<20000;i++){
         }
         //ポートAの1番を出力に設定する
         DDRA = 1;
         //ポートAの1番の出力を反転する
         PORTA ^= 1;
     }
     return (0);
 }
 これで後は実際に配線を行いマイコンにプログラムを書き込むことでLEDが点滅するようになります~

**A/D変換とは [#ke10cf45]
**センサを使ってみよう [#kc2818a0]


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS