気ままにIoTメモ

Iotに関わること関わらないこと備忘録

プログラミング

圧力センサ(2)

引き続きFSRのメモ。 重り(75g)×2+台(68g)=218g 重りには釣りに使われるオモリを使っています。 重りを置いてからの抵抗値の変化を測定しました。 測定は250Hzで分圧値をArduinoのAD変換(10bit)により測定し、測定値から抵抗値を算出しました。 回路は圧力セ…

I2C制御16bit ADC MCP3425(2)

I2C制御16bit ADCであるMCP3425用のライブラリを作ったので、使い方のメモ。 まずはモジュールのインストール npm install i2c npm install q var Adc = require('./adc'); // adc = new Adc({gain:1, accuracy:16}); adc.updateConfig({gain:8}); adc.start…

I2C制御16bit ADC MCP3425(1)

秋月に1個250円で売っているI2C制御16bit ADCのMCP3425に関するメモ。 特徴 2.7V〜5.5V動作 精度により測定周波数が変わる(16bit精度では15 SPS) 内部に2.048V±0.05%(Vref)の基準電圧 ×1・×4・×8のPGA Vin = (Vin+) - (Vin-)の 差動入力が測定可能 測定…

共用体を使わないワード設定(C/C++)

MCP3425のArduino用ライブラリに使われている1ワードのデータを設定する方法が簡単だったのでメモ。 void getResult(int16_t *dataPtr) { ((char*)dataPtr)[1] = read(); ((char*)dataPtr)[0] = read(); } データの読み込みは1バイトずつで、測定データは2バ…

I2C接続小型キャラクタLCDモジュール(2)

I2Cで制御するLCD用のライブラリを作ったので、使い方のメモ。 回路図はI2C接続小型キャラクタLCDモジュール(1)を参考にしてください。 まずは使っているモジュールのインストール。 npm install i2c npm install q サンプルコード var Lcd = requi…

リアルタイム用グラフライブラリ Epoch

A general purpose real-time charting library for building beautiful, smooth, and high performance visualizations. 公式いわく、美しく、滑らかで高いパフォーマンスの可視化のための汎用リアルタイムグラフライブラリ「Epoch」 ブラウザの更新をしな…

C++用CSVライブラリ

研究では主にシミュレーション結果をdouble型のcsvファイルで保存します。 Pythonだとpandasがあるのでcsvを読み込むのが簡単なのですが、c++で欲しい感じのcsvライブラリが無かったので作りました。 次のようなファイルを ,x,y 0,1.1,1.00E+00 1,1.2,2.00E+…

シリアル通信から標準出力へ

Arduinoやmbedなどでセンシングした値をシリアル通信で確認するのは簡単なのですが、保存に少しつまづいたのでメモ。 シリアル通信で送られてきた値を確認する方法はArduino IDEのSerial Monitorやscreenコマンドを使う方法など色々あります。 Mac の screen…

Socket.IOでデバイス⇔サーバー⇔ブラウザ通信

Socket.IOで以下のような1対1のリアルタイム通信をしてみました。 (※今回はラズパイではなくMac上のターミナルでテストしています) 重要なコードだけ記載しておきます。 デバイス側はSocket.IOでサーバ・クライアント間通信とほぼ同じ。 jsonデータを送…

ラズパイでスイッチ入力(割り込み)

前回のラズパイでのスイッチ入力に続いて割り込みバージョンを試してみました。 var wpi = require('wiring-pi'); wpi.setup('wpi'); var led_pin = 7; var sw_pin = 1; wpi.pinMode(led_pin, wpi.OUTPUT); wpi.pinMode(sw_pin, wpi.INPUT); wpi.pullUpDnCon…

ラズパイでスイッチ入力

定番のLチカに続いてスイッチ入力をしてみました。 var wpi = require('wiring-pi'); wpi.setup('wpi'); var led_pin = 7; var sw_pin = 0; wpi.pinMode(led_pin, wpi.OUTPUT); wpi.pinMode(sw_pin, wpi.INPUT); wpi.pullUpDnControl(sw_pin,wpi.PUD_UP); va…

ラズパイのスペック確認

GPIO使う時にスペック知っておく必要があるので確認しました。 var wpi = require('wiring-pi'); console.log("board revision: " + wpi.piBoardRev()); var board = wpi.piBoardId(); console.log("model : " + wpi.PI_MODEL_NAMES[board['model']]); conso…

vimrcの設定

最近ラズパイをいじり始めたのでラズパイ用に最小のvimrcを用意しました。 簡単な編集なら十分ラズパイ内でできるようになりました。 " 更新自動読み込み set autoread " 相対行表示 set relativenumber " シンタックスハイライト機能をオン syntax enable s…

ドットインストール

以前紹介したPaaSのIsaaxでもNode.jsが利用されていたので、 そろそろNode.jsを学んだほうが良いかなと思い勉強を始めることにしました。 ドットインストール http://dotinstall.com/ 1動画3分として基礎的な事を教えてくれる学習サイトなんですが、思ってい…

もののけ姫こだま

拍手が段々とリズミカルになると言うことは体験した事があると思います。演奏がスゴイから巻き起こる拍手なのですが、演奏のように指揮者がいないにも関わらずテンポが揃うというスゴイ現象でもあります(非線形屋さんは演奏より拍手に感動する)。 このよう…

Javascriptテスト

Javascriptが動かせるようなのでテスト TESTER = document.getElementById('tester'); Plotly.plot( TESTER, [{ x: [1, 2, 3, 4, 5], y: [1, 2, 4, 8, 16] }], { margin: { t: 0 } } ); <script src="https://cdn.plot.ly/plotly-1.2.0.min.js"></script> <div id="tester" style="width:600px;height:250px;"></div> <script> TESTER = …