n_shinichi’s blog

日々の備忘録、 趣味のあれこれなど紹介 (すみません、メニュー、リンク、カテゴリー分けがうまくできてません、★記事一覧★で見てください...) NHK魔改造の夜ではDンソーのベテランアドバイザーってことで出ました♪

MENU

赤外線シリアル通信  M5stick ⇔ ATtiny テスト

赤外線シリアル通信

  M5stick ⇔ ATtiny 双方向通信テストやってみた。

 

通信手順の流れ

 ・M5stickからAttinyへ電池電圧の問い合わせ要求コマンド送信

   →Attinyで受信コマンド識別 → 電圧送信

    →M5stickで受信、コマンド識別 → 電池電圧データ格納

 ・Attinyのチップ温度通信も手順は同じ

 

こちらはその時の様子。

 

先日、M5stick単体で赤外線シリアル通信がうまくできそうか

試した。

思ったより、、、

 簡単に通信ができることは確認した。

 

赤外線リモコン通信は・・・

いくつもフォーマットあるけど一番メジャーなNECフォーマットで

だいたい1回の通信50msほど掛かる。これを双方向通信で送受信を繰り返すと

妙な待ちが入ってしまう(この辺はライブラリの中身よく見てないので

ちゃんとわかってないんだけど)のでさらに遅くなる。

毎秒数セットの送受信がやっとだった。

でもって割込みで通信処理に占有されてるっぽい時間が長いので他の

処理が定期処理だと狂ってくる。

これはモータ制御なんか並列に動いてると影響出てくる。まずい。

 

その点、、、

赤外線シリアル通信、同じ38kHzキャリア使って

2400bpsは安定していける。・・・・1ビット約0.5ms

 2バイト通信【アドレス(コマンド)で1バイト、データ1バイト】で

 行うなら20ビット程度、10ms程で送れる・・・・速い。

 割込みで占有される時間も短く他の制御への影響小さい。

 

でもってシリアル通信の方がメモリーの消費も少なく、

 関数の動きも速い。元々シリアルは遥かに高いボーレートで使うのが

 普通なので当たり前だけど。

 

赤外線リモコン通信のライブラリ、とにかく遅い。

 そもそもテレビのチャンネル切り替えとか人の操作に

 対応できればいいリモコンの通信方式なのでそれ自体には全く問題ない。

 

●M5stickの これまでIR_Remote  

  赤外線リモコン通信のためにユーザが割込み設定するところ

  受信があったら読み取っておく

●M5stickの IR_Serial 

  赤外線シリアル通信のためにユーザが割込み設定するところ

  38kHz搬送波作るところ。 Serial通信自体はもとよりある。

  ビット演算子使ってちょいと処理は簡単に速くもできる・・・



 

 自分がそのしくみでマイクロロボの操縦等々やろうとしたことが間違ってた。

 無理があった。

 リモコンフォーマットは秒単位送信のみの片道通信の仕様。

 マイクロロボで考えている、、、

  数台の双方向通信毎秒数十回の双方向通信には使いにくいの

  当たり前・・・

 

 

赤外線シリアル通信

 基本操作テストはそれなりにうまく行ったので

 これからプロトコル...的なしくみ造り込んでいこう。

 

実際にはほぼI2Cの通信風なことをシリアルでやるだけなのだけど。