Relative Content

Monthly Archives: September 2018

Arduino NANO (7) ADS1115 for A/D

経緯 ADS1115を購入して、生体信号のAD変換に利用するつもりだが、うまくいかない( WeMos (b9) ADS1115 for A/D 参考)、正しい電圧が表示されない。 そこで、Arduino NANOのチュートリアルを探して、検証することに。 ハードウェア ADS1115とArduino NANOはI2Cで接続。 ソフトウェア 「参考1」コードそのまま。 #include <Wire.h> #include <Adafruit_ADS1015.h> Adafruit_ADS1115 ads; // Declare an instance of the ADS1115 int16_t rawADCvalue; // The is where we store the value we receive from the ADS1115 float scalefactor = 0.1875F; // This is the scale factor for the default +/- […]

Arduino NANO (6) Heart rate sensor

Arduinoセンサーキットに、Heart rate sensorある。 血中ヘモグロビンの近赤外線吸収の性質を利用して脈拍パルス検出するらしい。 Arduinoとの接続は3線(GND、VCC、アナログ入力)のみ。 「参考1」をみて、まず簡単の試す。ただA0の値を表示。 // Pulse Monitor Test Script int sensorPin = 0; void setup() { Serial.begin(9600); } void loop () { while(1) { Serial.print(analogRead(sensorPin)); Serial.print(‘\n’); } } 指先センサー装着 シリアルプロッターに見える上昇カーブ 安定した状態これはなにもわからない 指はセンサーから離れる時の下降カーブ。 「参考1」を参考して、Smoothingしても、同じ判別不能。困った。 #define samp_siz 4 #define rise_threshold 5 // Pulse Monitor Test Script int sensorPin = 0; void setup() { Serial.begin(9600); } […]

Arduino NANO (5) MAX30102 Pulse Ox Sensor

試み MAX30102 というPulse Ox Sensorを利用して、脈拍と酸素濃度を測る試み。 MAX30100の実例が多いが、MAX30102の実例が少ない。 プログラム 「参考1」のSparkFunのライブラリを利用する。そのライブラリはMAX30105(R,G,IR LED)用だが、MAX30102(欠Green LED)でも利用できる。 OLED表示するため、「参考2」の表示部分を合体した。なんとなく、バグがある様な気がする。 // Sample implementation of the MAX30100 PulseOximeter // Using the following module // http://www.ebay.com/itm/-/391709438817?ssPageName=STRK:MESE:IT // can not gaurantee if the app will work with other implementations of the module. //#include “MAX30100_PulseOximeter.h” #include <U8g2lib.h> #include <Wire.h> #include “MAX30105.h” #include “heartRate.h” #define REPORTING_PERIOD_MS 500 U8G2_SSD1306_128X32_UNIVISION_F_HW_I2C u8g2(U8G2_R0); […]

Arduino NANO (4) Piezoelectric sensor

なぜ Piezoelectric sensorを利用して、住宅内の音声、振動から年配者の介護の補助を考えている。 Piezoelectric sensorが取った情報をAD変換して、簡単にWemosで処理すると思ったが、いろいろ意外なところで躓いた。 何か類似する、簡単に検証できる例がないか探した。 取り込み 「参考1」から、普通のPiezoelectric sensorで、簡単に脈拍を取れると、魅力と思った。 必要な部品が揃うまで時間がかかったが、一応出来た。 いろいろと試したところ 拡大写真 取れた波形。「参考1」の波形には似ているは、DC成分あるから、取り除くが課題。 参考 http://www.ohnitsch.net/2015/03/18/measuring-heart-rate-with-a-piezoelectric-vibration-sensor/

Arduino UNO (9) 2.4 inch LCD Shield

Arduino UNO用のシールドモジュール、2.4インチパラレルTFTモジュールを試した。 センサーの情報を表示するため、1年前も購入したが、なかなか試す機会がなく。 「参考1」から、mcufriend.comの2.4インチシールドモジュールには多数のバリエーションが有る。「参考2」のCHIP IDで対応するLCDドライバーを探せと、「参考3」のライブラリで、LCD_ID_readregで分かるらしい。しかしいろいろと引っかかって、しばらく挫折。 「参考4Mcufriend 2.4インチLCD を使ってみました」を参考に、一応サンプルの動作は数個確認した。 動作に必要なライブラリは次3つ。 いずれもArduinoの標準ライブラリから導入できる。 グラフィックドライブ https://github.com/prenticedavid/MCUFRIEND_kbv https://github.com/adafruit/Adafruit-GFX-Library4線式タッチスクリーン https://github.com/adafruit/Touch-Screen-Library MCUFRIEND_kbv に付属するgraphictest_kbvを実行するところ。なぜか、左右逆になっている? (さらに購入してわかったが、プログラムの問題ではなく、ハードウェアの問題かも。というか以前購入した2個は全部表示逆になっている、その後購入した2個は正しく表示) demoビデオも撮ったけど、ボケっている。 取り敢えず動くと確認した。   参考: http://nopnop2002.webcrow.jp/TFT/ILI9325-Para-1.html http://domoticx.com/arduino-shield-2-4-tft-lcd-touch/ https://github.com/prenticedavid/MCUFRIEND_kbv https://blogs.yahoo.co.jp/hobbyele/64853416.html  

Arduino 101 (5) Inclinometer

人間のアナログ信号ピエゾ、光電方式で取得、AD変換などでデジタル化して、いろいろ悩んでいるところ、なぜかESP8266は繋ぐと、高い確率でPC再起動(リブート)を起こされて、原因不明のまましばらく進展がなし、時間が無駄にし、焦る一方。 安定して動くUNO、NANOを触る時間が増えた。 なぜArduino 101 Arduino 101は傾斜度センサー装着、いつか二輪車を作ると考えているが、行動に移れないまま。 たまたまArduino 101で 傾斜計を作る記事を見て試したくなった。たまたまMulti Function Shieldも持っている。必要ものが全部そろう。試す気になった。 制作 Multi Function ShieldをArduino 101に刺し、参考のプログラムそのまま動く。うれしい。温度も測れる。 平面では0と表示。 傾斜計とした動作するビデオ   参考 https://www.hackster.io/lagsilva/simple-inclinometer-with-arduino-ef4fc2

WeMos (b10) ADS1115 Oscilloscope

前回WeMos (b9) ADS1115 for A/Dで数値の表示ができたが、Oscilloscopeのような表示すべく、改造を試み。 しかし、2月から、WeMos miniの開発中も頻繁にリブートしています。デバイストライバのバージョンを変えたり、OSを変えたりしても改善しない。 そのため、このプログラムは未完成のまま放置。 /* This is set up to use a 128×64 I2C screen, as available here: http://www.banggood.com/buy/0-96-oled.html For wiring details see http://youtu.be/XHDNXXhg3Hg */ #include <SPI.h> #include <Wire.h> #include <limits.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #include <Adafruit_ADS1015.h> #include <math.h> #define WINDOW_SIZE 128 Adafruit_ADS1115 ads; /* Use this for the 16-bit version […]