なごるふ

UnityとかArduinoとか気になったことを

ATTiny85を使ってAE-TYBLE16とシリアル通信する

これまでの検証でBLEモジュールのAE-TYBLE16の使い方がわかってきたので、次はATTiny85をArduinoとしてAE-TYBLE16とのシリアル通信を試してみようと思います。

ATTiny85への書き込みは以前の記事に書いたのと同じです。

開発環境

  • Mac Book (10.13.6)
  • Arduino IDE (1.8.13)

機材一覧

その他 ブレッドボード、ジャンパワイヤなど

ブートローダ書き込み

ATTiny85は初期設定が1MHzのようです。

delay(1000);と記述して1秒待機したはずなのに7~8秒かかってしまうのはそのためで、1MHzのままだとシリアル通信で正しくデータを取得できないようなので8MHzに変更します。

ツールのClock Sourceから8MHz(internal)を選択して、ツールのブートローダを書き込むを実行することで8MHzに変更できるようです。

f:id:nagomi0132:20220115212228p:plain

テストコード

正しく送受信ができるかを確認するため、BLEモジュールからシリアル通信で受け取った文字列を、改行コード毎に返信するようにしています。

/*
 * ATtiny85 PIN
 * 5/A0  U  VCC
 * 3/A3  |  2/A1
 * 4/A2  |  1
 * GND   |  0
 */
 
#include <SoftwareSerial.h>
SoftwareSerial bleSerial(3, 4); // RX, TX

String str = "";

void setup()
{
  bleSerial.begin(9600);
  pinMode(LED, OUTPUT);
}

void loop()
{
  while(bleSerial.available())
  {
      char inChar = bleSerial.read();
      if (inChar == '\n' || inChar == '\r')
      {
        if(0 < str.length())
        {
          bleSerial.println(str);
          str = "";
        }
          break;
      }

      str += inChar;
  }
}

回路作成

ESP32は3.3V電源の供給用として使っています。 f:id:nagomi0132:20220116135254p:plain f:id:nagomi0132:20220116132811j:plain

接続テスト

f:id:nagomi0132:20220116132825p:plain:w250:right 今回は接続を確認するだけなので、太陽誘電のアプリを使いました。

アプリからAE-TYBLE16に接続して、改行コードを設定してテキストを送信すると、送信したテキストと同じ内容が帰ってくることが確認できました。

さいごに

無事にATTiny85をAE-TYBLE16と接続してシリアル通信することができました。

しかし、このままだと時々に通信データに欠損が発生して、文字化けしてしまうようです。

なんとか改善する方法はないか調べてみようと思います。