| 34 | ファームウェアは arduino を使って作成するので、開発環境を構築。 |
| 35 | |
| 36 | === Arduino === |
| 37 | |
| 38 | [https://www.arduino.cc/ arduinoの本家]から開発環境(Arduino IDE)をダウンロードしてインストール。[[br]] |
| 39 | ダウンロードは、[https://www.arduino.cc/en/Main/Software ここ]から、自分の環境に合わせたものを持ってくる。[[br]] |
| 40 | 2017/12/12現在、最新版は 1.8.5。今回は Windows Installer を使った。 |
| 41 | |
| 42 | |
| 43 | === Board Manager === |
| 44 | |
| 45 | 最近は色々なマイコンがarduinoで開発できるようになっていて、対応するボードマネージャーを使えば、環境構築を自動でやってくれる。いい時代になったもんだ、、、[[br]] |
| 46 | 今回使うCPUは Atmel ATTiny85、書き込みは Arduino ISP で行う。 |
| 47 | |
| 48 | 実際の環境設定は以下のサイトが詳しいので、それを参照。 |
| 49 | |
| 50 | [http://make.kosakalab.com/make/electronic-work/arduino-ide-dev/ Arduino IDE で ATtiny 他の開発] |
| 51 | |
| 52 | CPUの開発環境は以下のページを参照。 |
| 53 | |
| 54 | [http://make.kosakalab.com/make/electronic-work/arduino-ide/attiny-dev/ Arduino IDE に ATtiny45/85/2313 他の開発環境を組み込む] |
| 55 | |
| 56 | CPUへの書き込みを行う Arduino ISP は、Arduino UNO R3をArdunio書き込み装置にして使用する。(ややこしいですが) |
| 57 | |
| 58 | [https://www.arduino.cc/en/Tutorial/ArduinoISP Using an Arduino as an AVR ISP (In-System Programmer)] |
| 59 | |
| 60 | これを使えばAVRライターがなくても、arduino対応のCPU設定が簡単にできる。 |
| 61 | |
| 62 | |
| 63 | === 開発環境テスト === |
| 64 | |
| 65 | 開発環境が動作するかをチェックする。[[br]] |
| 66 | |
| 67 | [http://make.kosakalab.com/make/electronic-work/arduino-ide/test_arduinoisp/ 【 Arduino IDE 】ArduinoISP 使い方・書き込みテスト]を参考に行うが、多少違っていた(古い?)ので相違点を記載する。[[br]] |
| 68 | |
| 69 | {{{ |
| 70 | ArduinoISP -> Arduino as ISP(ATTinyCore) |
| 71 | }}} |
| 72 | |
| 73 | 設定は画像のようにする。シリアルポートの設定は、ArduinoISPがつながっているものを選択。 |
| 74 | |
| 75 | [[Image(arduino_isp.png,400)]] |
| 76 | |
| 77 | テスト用のソースは、 |
| 78 | |
| 79 | {{{ |
| 80 | #define PIN 3 |
| 81 | #define DTIME 500 |
| 82 | |
| 83 | void setup() { |
| 84 | pinMode(PIN, OUTPUT); |
| 85 | } |
| 86 | |
| 87 | void loop() { |
| 88 | digitalWrite(PIN, HIGH); |
| 89 | delay(DTIME); |
| 90 | digitalWrite(PIN, LOW); |
| 91 | delay(DTIME); |
| 92 | } |
| 93 | }}} |
| 94 | |
| 95 | これをArduinoISPに以下の様につないで書き込み。 |
| 96 | |
| 97 | [[Image(http://make.kosakalab.com/arduino/use/45_85.gif)]] |
| 98 | |
| 99 | 書き込みが完了すると、LEDが2秒間隔ぐらいで点滅する。[[br]] |
| 100 | 点滅しなかったり、書き込み時にエラーが表示された場合には、設定か回路が間違っているのでチェックする。 |
| 101 | |
| 102 | 本来このプログラムだとは0.5秒間隔で点滅するが、クロックに対するカウンタが合っていないのでこのようになる。[[br]] |
| 103 | これを合わせるために、メニューから"ツール -> ブートローダーを書き込む"を実行し、再度テストプログラムを書き込むと、今度は0.5秒毎に点滅するようになる。 |
| 104 | |
| 105 | |