読書とプログラミングを中心とした覚書ブログMENUサイトマップSTINGER読書とプログラミングを中心とした覚書ブログ読書とプログラミングについて、日々経験したことを忘れないようにするため、極力ブログに記録を残すように頑張る。UNO等のArduinoボードを購入すると、USB端子に直接接続するだけですぐArduinoの開発が始められとてもお手軽です。今回どうしてもコンパクトで省電力な装置を作る必要があり、AVRマイクロコントローラーのATmega328PへブートローダーとArduinoスケッチを書き込む方法を調べました。IDEのバージョンにより手順が異なっているみたいなので、私の開発環境の場合の手順を整理しておこうと思います。最初に種明かしをすると、MiniCoreオフィシャルサイトの手順を信じれば問題ないという結論になったので、この一言でこの記事でいいたいことは完結してしまいます。最後に開発の準備は4ステップこの手順で使用するArduinoコアはArduinoオフィシャルサイトではなく有志によりメンテナンスされているらしいMiniCoreを使います。MiniCoreのサイトで解説されているドキュメントに従って順に進めていくことになるのですが、おおまかにArduino開発環境の準備には、全体像として以下4ステップになります。以降では順に補足をしていきます。必要な部品をそろえるブレッドボードに部品を搭載してパソコンに接続するブートローダーを書き込むArduinoスケッチを開発して書き込む必要な部品をそろえるマイクロコントローラー(ATmega328P)を使ったArduino開発に必要な最小の部品を以下に列挙。これ以外にワイヤー、ブレッドボードが必要。Arduino用Arduinoを書き込み装置にするために使用しますので、どのArduinoボードでも大丈夫だと思われます。ATmega328P開発できるマイクロコントローラーはMiniCoreのサイトでリストされてますが、ブレッドボードで使えて、はんだ付けしやすいDIP形状のこのチップにしました。10kΩ抵抗リセットピン(RESET)をプルアップ接続するために用意。本番回路を組み立てた後もスケッチの書き換えをすることになるので、常に抵抗を組み込んだほうが無難と思われる。今回はタイミングを要求する処理ではなくATmega328Pの内部発振器を使う予定なので水晶とコンデンサーは省略してもよいらしい。水晶とセットでGNDへ接続時に利用。ブレッドボードに部品を搭載してパソコンに接続するなぜか大事なパソコンとの接続方法についてはMiniCoreのサイトにはガイドされてません。ここについては、Arduinoオフィシャルサイトのこちらに書き込み回路について図を使った解説がありますので、こちらの手順で組み立てます。図中にはATmega168となってますが、ピン配置はATmega168とATmega328で同一です。UNOの方からUSBケーブルでパソコンに接続して完成。ブートローダーを書き込む特に悩むこともなく、ArduinoオフィシャルサイトとMiniCoreのサイトの解説通りに手を動かすとできました。UNOへ書き込みます。UNOを使いAtmega328へブートローダーを書き込みます。[ブートローダを書き込む]を選ぶこれで無事ATmega328PはArduinoとして動作するようになりました。IDEで開発したスケッチをATmega328Pへ書き込む練習をします。Arduinoオフィシャルサイトの手順では、USBシリアル変換をする別の回路を紹介してますが、書き込み回路をブートローダと共通にしたほうが楽です。そのためスケッチの書き込みについては、Arduinoオフィシャルサイトの手順ではなく、MiniCoreのサイトで紹介されていた手順にしました。IDEで次のいずれかの操作で、「書き込み装置を使って書き込む」モードで書き込みます。[書き込み装置を使って書き込む]を選ぶシフトキーを押しながらアップロードアイコン(右→アイコン)を押す試しにスケッチ例から適当なスケッチを選んで無事書き込み&動作確認できれば完了。最後に以上でブートローダの書き込みから、スケッチの開発に進める手順は終了となります。Arduinoでの開発はまだ慣れてない部分が多く、たぶん忘れたころに別プロジェクトで同じところで悩むと思われ、その際に思い出すポイントは残せたんじゃないかと思います。UNOへ刺せるシールドにしておけば十分だと思われます。すると、誰かが同じことをやっていそうだし、買ったほうが早くて安いかもしれない。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。「子ども見守りサービス」をDIYで自作する最近「子ども見守りサービス」が注目されているようです。...Attiny13Aの工場出荷時の書き込みエラーを対策Attiny13Aは工場出荷時に低速の動作周波数になってる模様です。CodeでPHPファイルのフォーマッタを使うセットアップArduinoでロータリーエンコーダーの動作確認ArduinoJavaのmatches()が期待する動作にならない落とし穴JavaATmega328へArduinoを書き込むArduinoATmega328へArduinoを書き込む読書とプログラミングについて、日々経験したことを忘れないようにするため、極力ブログに記録を残すように頑張る。当サイト(読書とプログラミングを中心とした覚書ブログ)は、Amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイト宣伝プログラムである、Amazonアソシエイト・プログラムの参加者です。