Changes between Version 4 and Version 5 of epics/bbb/debian/thermometer/attiny


Ignore:
Timestamp:
12/12/17 17:17:30 (7 years ago)
Author:
Tetsuya Michikawa
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • epics/bbb/debian/thermometer/attiny

    v4 v5  
    103103これを合わせるために、メニューから"ツール -> ブートローダーを書き込む"を実行し、再度テストプログラムを書き込むと、今度は0.5秒毎に点滅するようになる。
    104104
     105== 測定用ファームウェア ==
    105106
     107=== TinyWireM ===
     108
     109今回は ATTiny85 + ADT7410なので、前回と同じようにADT7410のサンプルソースを[https://github.com/adafruit/TinyWireM TinyWireM]に対応させる方法で作成する。[[br]]
     110前回と違うのは、TinyWireMが"ライブラリマネージャー"でインストールできるようになっている点。[[br]]
     111ライブラリマネージャーは、メニューから"スケッチ -> ライブラリをインクルード -> ライブラリを管理"で表示されるダイアログで"tinywire"で検索すると表示される。
     112
     113[[Image(arduino_lib.png,400)]]
     114
     115これをインストール。
     116
     117=== ADT7410 ===
     118
     119ADT7410用のライブラリもライブラリマネージャーでインストールできるが、使われているのがATMega用のWire(I2C)ライブラリなので、そのままでは使用できない。[[br]]
     120なので、これを基にWireをTinyWireMに変更したライブラリを作成した。[[br]]
     121
     122元のライブラリは[https://github.com/FaBoPlatform/FaBoTemperature-ADT7410-Library FaBoPlatform/FaBoTemperature-ADT7410-Library][[br]]
     123作成したライブラリファイルは[attachment:ADT7410-TinyWire-Library.zip ADT7410-TinyWire-Library.zip]として置いておくので、必要ならダウンロードして使用すること。
     124
     125=== Firmware ===
     126
     127Firmwareは、以前作成したものとほぼ同じ。[[br]]
     128
     129{{{
     130#include <TinyWireM.h>
     131#include <USI_TWI_Master.h>
     132#include <SoftwareSerial.h>
     133#include <ADT7410_TinyWireM.h>
     134
     135ADT7410_TinyWireM ADT7410;
     136SoftwareSerial SwSerial(3, 4); // RX, TX
     137
     138void setup() {
     139  SwSerial.begin(9600);
     140  ADT7410.begin();
     141}
     142
     143void loop() {
     144  float temp = ADT7410.readTemperature();
     145  SwSerial.print("T:");
     146  SwSerial.print(temp, 4);
     147  SwSerial.print("\r\n");
     148  delay(5000);
     149}
     150}}}
     151
     1525秒毎にセンサから読み取ったデータを温度に変換し、文字列としてUSBシリアルに出力する。[[br]]
     153以前のソースコードでは、メモリの使用量の問題でprintを使わずに自前でfloatを出力していたが、新しいバージョンではほとんど変わらなかったので、ソースコードを簡素化した。