&ref(temp1.jpg,zoom,250x200); &ref(temp2.jpg,zoom,250x200); *概要 [#m164d184] キーボードとして認識される、ちょっと変わった USB 温度計です。 USB コネクタに接続して、別のキーボードの COLOR(RED){ScrollLock キーを4連打}すると、現在の温度が文字として入力されます。疑似的にキーボードを押すことで文字を出力していますので、メモ帳や検索欄など、どこにでも入力できます。Digispark 上のマイコン Tiny85 に内蔵された温度センサーを使っています。 *使い方 [#kb2f1c2a] -Digispark を USB 端子に挿しこみ、文字が入力できるところにカーソルを合わせて、キーボードの COLOR(RED){ScrollLock キーを,1秒以内に4回}押してください。現在の温度が表示されます。 -Digispark 上の LED は ScrollLock の状態に連動して点滅します。 -ScrollLock ランプがついたままの状態にすると、1分間に1回温度が表示され続けます。 *作り方 [#q75a266f] **書き込みツールの準備 [#o06091de] Digispark にファームウェア(HEXファイル)を書き込むツールを準備してください。 -RaspberryPi, Linux, FreeBSD の場合: [[Digispark+gcc Lチカチュートリアル(RaspberryPi, Linux, FreeBSD 版):http://milkandlait.blogspot.jp/2017/08/digisparkgcc-lfreebsd.html]] を参考に、書き込みツール micronucleus を作成して下さい。 # micronucleus --run ファイル名.hex で書き込めます。 -Windows の場合: [[DigiSpark に対応した Arduino の統合開発環境:https://sourceforge.net/projects/digistump/files/DigisparkArduino-Win32-1.0.4-May19.zip/download]] に含まれる micronucleus.exe を使えば、上と同じ手順で Windows PC からも書き込めます。 **温度センサーの校正 [#f605d7d5] 今回使った Tiny85 に内蔵された温度センサーは、チップごとにばらつきが大きいため、はじめに校正する必要があります。現在の室温がわかる温度計を用意してください。 +校正用ファームウェアの書き込み~ ZIP ファイル中の temp-cal.hex を Digispark に書き込みます。 # micronucleus --run temp-cal.hex +温度センサー値の確認~ Digispark を USB コネクタに挿しこむと、キーボードとして認識されて、5秒ごとに温度センサーの値が出力されます。メモ帳などに入力して値を確認します。 +COLOR(RED){3分以上待機する(重要)}~ センサーの値が安定するまで 3分~5分間程度かかります。必ず安定してから読み取ってください。 +使うファームウェアの決定~ COLOR(RED){センサーの値から現在の室温 を引き算します}。その値のラベルの付いたファームウェアを使ってください。~ (例) センサーの値が 310 で現在の室温が26℃の場合は、310-26=284 なので、temp-284.hex を使います。小数になった場合は四捨五入してください。 **ファームウェアの書き込み [#kb4c588b] 上記の手順で選んだファームウェアを書き込めば完成です。 # micronucleus --run temp-284.hex *ダウンロード [#n3dd64cc] &ref(Digispark-temp-1.0.zip); -Digispark をキーボードとして認識させるファームウェアと、ScrollLock 状態の読み取りには [[Code and Life-USB HID keyboard with V-USB:http://codeandlife.com/2012/06/18/usb-hid-keyboard-with-v-usb/]] のコードを使わせていただいています。