はじめに
以前のATtiny13の紹介記事から少しずつATtinyで開発を行っていたのですが、、、
シリアルモニタがないからデバックがひじょーーーにやりずらい!
そこで今回はATtiny13でシリアル通信ができるようにすべく試行錯誤をしていきたいと思います。そして今回は私自身もかなり悩んでこの答えに行きついたの今回は丁寧に説明をしていこうと思います。もし、ATtiny13の開発環境が整っていない方は以下を参照ください。
今回は下記構成で進めたいと思います。5に関しては後編にまとめますね。
- Teratermの導入
- ATtiny用のシリアル通信ライブラリの導入
- シリアル通信用の外部回路説明
- シリアル通信デモ
- Arduinoのアナログ読み取り的な事をでシリアルモニタをしてみる(次回)
では、早速行ってみましょー
準備編
シリアル通信用ソフト(Tera term)のダウンロード
まずはシリアル通信のモニタ用に使用する【Tera term】の導入の解説になります。
この【Tera term】は今回はシリアルモニタの用途として使用しますが、ほかにもtelnetの通信確認などに使用もできるので入れといて損はないと思います。
①ダウンロード
以下のURLからダウンロードを行います。パッケージは最新版で不都合がなければ実行ファイル(.exe)を選べばいいかと思います。
②インストール
実行ファイルをクリックして後は手順通りにOK連打でいいと思います。
■もしかした下記のようなポップアップが上がってくるかと思いますが「詳細」を押して「実行」を行えば大丈夫です。
ライブラリの準備
今回使用するATtiny用のシリアル通信ライブラリはNerd Ralphさんの作ったものになります。
このライブラリは単一ピンでの半二重UART通信になります。そして、送信(TXD)と受信(RXD)を分離させるために次項で説明する外部回路を構成させる必要があります。本稿ではライブラリ導入の説明です。
①以下のURLからライブラリのzipファイルをダウンロードします。
②Arduino_IDEにライブラリをインクルードする。
Arduino_IDEを立ち上げて「スケッチ」⇒「ライブラリをインクルード」⇒「.ZIP形式のライブラリをインクルード」を選択。
先ほどダウンロードした.zipファイルを選択してインクルード。
③ライブラリの中身を修正します
というのはシリアル通信に使用するピンが初期設定だと5になっているので使用するピンによって修正していきたいと思います。今回は2ピン目をシリアル通信用に設定するので以下のようにライブラリを修正します。
まずライブラリが保存されているところにアクセス。以下のリンクにライブラリが入っているフォルダへのアクセス方法を載せております。
修正対象は「Sファイル」になります。メモ帳で開けばいいと思います。
開けましたら、【#define UART_Tx】【#define UART_Rx】を確認してみてください。おそらく以下のように5になっているかと思います。
前述の通り今回は2ピン目で通信したいのでこの部分を2に変更します。
はい、変更したら保存して通信ピンの設定はOKです。
次はシリアル通信のスピードなのですが初期設定では115.2kbpsに設定されています。Tera termでシリアル確認をする時はこのスピードを合わせる必要があるのでスピードを変更したい場合は「Hファイルの」以下の部分を換えてみてください。私は19200bpsに変更しています。
とりあえずこれで導入から設定は終了になります。
シリアル通信用の回路構築
冒頭で説明したようにTXDとRXDを分ける外部回路を構成していきます。
<<材料>>
- ダイオード1個
- NPNトランジスタ1個
- 10kΩ抵抗1個
- シリアル変換器(ここではFT234X)
■デバックするときはこの回路にライターを接続してもOKです。
シリアル通信デモ
デモ用スケッチ書き込み
今回は下記スケッチをATtiny13に書き込んでみてください。書き込み方法は以前の記事を参照していただければと思います。
1 2 3 4 5 6 7 8 9 10 11 12 13 |
#include <BasicSerial3.h> void setup() { } void serOut(const char* str) { while (*str) {TxByte (*str++);} } void loop() { serOut("ATtiny13"); serOut("\n\r"); delay(1000); } |
シリアルモニタテスト
それでは、準備ができたのでTera termを使用してシリアルモニタのテストを行いたいと思いますよ!
①Tera termを開いてシリアル通信の設定を行います。
シリアル変換器(今回だとFT234X)が刺さっているシリアルポート番号です。番号が分からなかったらUSBを抜き差ししてArduino_IDEのシリアルポートで消えたり出てきたりする番号がそれです。
②Tera termの通信スピードを設定します
デフォルトでは115.2kbpsですが、前項で通信スピードの変更をしている方は変更内容に従い設定してください。ここが合ってないと文字化けするので注意です。
通信スピードが設定できて正しく外部回路が接続できていれば下のようにシリアルモニタに【ATtiny13】と表示されるはずです。
トラブルシューティング
- 文字化けする場合:ライブラリの通信スピードとTera termの通信スピード一致確認。
- 日本語が文字化けする場合:Tera termの[端末]から文字コードを変更。
- それでも文字化けする場合:通信スピードを変えてトライアンドエラーしてみる。
- その他表示されない:回路チェック、スケッチの再書き込み、部品の交換
おわりに
今回はBasicSerial3ライブラリを使用したATtiny13のシリアル通信方法を紹介しました。
マイコン開発を行う上で視覚的に変数などを表示できるのは必須だと思うのでこのようなシリアルモニタの技術は知っていて損はないと思います。
次回は最後のアナログ値をシリアルモニタに表示してなにかしら開発していこうと思います!
ではまた次回です~
コメント