初投稿です,至らない点があると思いますがよろしくお願いします.
Qiita記事のうまい書き方があればご指南ください.
想定環境はMac,VSCode,PlatformIO IDEです.
0. はじめに
面倒な方は読み飛ばして1. 環境構築へ飛んでください.
VSCodeもPlatformIO IDEも導入済みだよって人は2. へ
ATTiny13Aみたいな超小さなマイコンにプログラムを書き込みたい!
そう思う頃が誰にでもあると思います.
しかし,Google先生に聞いてみると,書き込みにはArduinoをライタにするといいよ!
そのためにはArduino IDEを使って〜〜〜みたいなお話になります.
いやだ
たぶんある程度プログラムを書いたことがある人はこう考えます.
Arduino IDE じゃなくて 自分の使ってるエディタで作業したい!
僕の場合は VSCode を使っているので コーディングからなにからなにまで VSCode で完結させたいわけです.
VSCode では PlatformIO 用の拡張 PlatformIO IDE が存在し,これを使うことでArduinoにプログラムを書き込むことができます.M5Stackとかでも書き込めますね.
これを利用しない手はありません.ATTinyにだって書き込めるはず.
1. PC側の環境構築
1.1 VSCode をインストールする
そのへんの解説記事を参考にVSCodeを導入します(丸投げ)
1.2 PlatformIO IDE を導入する
拡張機能検索でPlatformIOと入力したら一番上に出てくると思います.
2. Arduino Uno と ATTiny13A側の準備
2.1 Arduino Uno を ATTiny のライタに改造する①
まず,Arduino IDEを起動します.
使うのは1度だけな上,プログラムは書かないのでArduino IDEを使ってもいいのです.
起動したら以下のようにして,ArduinoをArduinoISPとして利用するためのスケッチ例を読み込みます.
このスケッチをArduino Unoに書き込みましょう.
2.2 Arduino Uno を ATTiny のライタに改造する②
配線を行います.
ついでにLチカ用の配線もしてしまいましょう.
ATTiny13A のピンアサインはこうなっているみたいです.
データシートからパクってきました.
もしかすると手元にあるATTiny13Aと微妙に模様みたいなやつの位置が違うかもしれません.
左上に丸い穴が開いているように見ればこの図と同じようになります.
というわけで以下のように配線します.
これでATTiny13Aにプログラムを書き込む準備(とLチカさせる準備)ができました!
3. プログラムを書き込む
3.1 プロジェクト(スケッチ?)の作成
3.2 プログラミング
Lチカ用のプログラムを書き込みます.
この記事ではLチカを目標としていますので,Arduinoのライブラリを使用しています.
本当は#include <avr/io.h>
とかしたほうがいいと思います.
#include <Arduino.h>
#define LED 3
void setup()
{
pinMode(LED, OUTPUT);
}
void loop()
{
digitalWrite(LED, HIGH);
/*
1000 / 9.6 = 104.166...
*/
delay(104);
digitalWrite(LED, LOW);
delay(104);
}
注意点として,ATTiny13Aはデフォルトで9.6MHzで動作するという点があります.
そのため,1秒ごとに点いて,消えてを繰り返したい場合は1000[msec]を9.6で割った値にしなければなりません.(小数点以下を切り捨てているので厳密には1秒にはなりませんね)
3.3 platformio.ini を編集
これをやらないと詰みます.
おそらくここで詰まった人が結構いるのではないでしょうか?
ここに設定方法が書いてあります.
これを参考に以下のように設定しましょう.
最初から書き込まれてるやつは消していいです.
[env:attiny13]
platform = atmelavr
board = attiny13
framework = arduino
upload_protocol = stk500v1
upload_flags =
-P$UPLOAD_PORT
-b$UPLOAD_SPEED
; ****を適切な値に書き換えましょう
upload_port = /dev/tty.usbmodem****
upload_speed = 19200
upload_port
についてですが,ここにArduinoが刺さっているポートを指定します.
調べ方なのですが,端末などでls -l /dev/tty.*
とやればいいと思います.
と思ったのですが
どうやらupload_port
は指定しなくてもいいっぽいですね.
もし,指定せずに書き込めなかった場合は試してみてください.
3.4 書き込み
VSCodeの左下のツールバーにある
これをクリックしましょう.
もしくは,F1
キーで出現するやつにuploadって入力して出てくるやつでもいいと思います.
ターミナル派の人はpio run -t upload
です.
VSCode内のTerminalに SUCCESS って出たら成功していると思います.
3.5 やったぜ。
青いLEDとレッドクリアなブレッドボードがかっこいいですね.
以上となります.