MethodSCRIPTの導入、デモンストレーション、質疑応答
OEMサプライヤーとして、PalmSensは独自のソフトウェアがいかに重要であるかを認識しています。当社では、独自のソフトウェアをより簡単かつ効率的に作成するためのソフトウェア開発キット(SDK)をいくつか用意してお客様をサポートしています。EmStat Picoのリリースにより、お客様による当社のポテンショスタットモジュールの効率的なプログラミングは新たなレベルに達しました。この小型ポテンショスタットは、PalmSens 社が開発したプログラミング言語 MethodSCRIPT を介してソフトウェアと通信しており、お客様はほとんどすべてのプログラミングプラットフォームでアプリケーションのソフトウェアを書くことができます。このウェビナーでは、PSTrace から MethodSCRIPT コードを抽出する方法、測定器をハイバネートさせる方法、トリガー後に測定を実行する方法などをご紹介します。
MethodSCRIPTのエキスパートであるHielke VeringaとLutz Stratmann博士がMethodSCRIPTの簡単な紹介を行い、その後ライブデモと質疑応答を行います。
ウェビナーで使用した3つの PSMethod ファイルを下のボタンからダウンロードしてください。仮想)EmStat Pico または EmStat4M モジュールを接続し、MethodSCRIPT Sandbox エディタに移動します。3つのMethodSCRIPTの例も以下に示します。
例題へスクロールダウンMethodSCRIPT ウェビナーのタイムスタンプ
- 00:00 最後の参加者を待つ
- 01:45 講演者の紹介
- 03:34 MethodSCRIPT の紹介
- 08:35 3つのMethodSCRIPT例のデモンストレーション
- 09:39 最初の例オンボードストレージに保存されたSensit BTによるSWV
- 10:45 オンボードストレージから最初の測定をロード
- 11:46 第二の例i2Cを使用したSensit BTの温度測定、トリガーボタンで開始
- 15:12 i2Cのその他の使用例
- 15:47 第三の例EmStat4M 開発キットでのピーク検出
- 19:30 緑と赤のLEDでフィードバック
- 22:08 概要
- 22:53 休止モードとは何ですか?
- 24:20 質疑応答セッション開始
- 24:49 3つの測定を行い、1つだけのデータをメモリに保存できますか?
- 26:05 オンボードのリアルタイムクロックの使用例はありますか?
- 27:36 タイマーに基づいて測定を開始することは可能ですか?
- 28:34 MethodSCRIPTは複数のメソッドを連続して実行できますか?
- 30:40 ループの中でループができますか?
- 31:30 PSTraceにおけるMethodSCRIPTとスクリプティングの違いは何ですか?
- 34:18 PSTrace スクリプトウィンドウから MethodSCRIPT を作成できますか?
- 35:02 MethodSCRIPTとPSTraceスクリプトウィンドウの組み合わせ
- 37:15 C# Software Development Kit を使うときと MethodSCRIPT を使うとき 49:09 MethodSCRIPTでピークフィッティングはできますか?
MethodSCRIPTの例1:センシットBTのSWV、内部ストレージに保存
e set_gpio_cfg 0x1E 2 file_open "https://assets.palmsens.com/Measurements/14-04-2022/SWV-10-49-16-0.dmeas" 1 set_script_output 3 var c var p var f var g set_pgstat_chan 1 set_pgstat_mode 0 set_pgstat_chan 0 set_pgstat_mode 2 set_max_bandwidth 200 set_range_minmax da -400m 400m set_range ba 59n set_autoranging ba 59n 59n set_e -300m cell_on meas_loop_swv p c f g -300m 300m 10m 100m 5 pck_start pck_add p pck_add c pck_add f pck_add g pck_end endloop on_finished: file_close cell_off
注意現在の PSTrace バージョン(5.9.4206)では、MethodSCRIPT Sandbox 測定で作成された内部ストレージからの測定値をロードすることができません。これらのファイルはSDKサンプルで開く必要があります。PSTrace 5.10では、この問題は修正されています。PSTrace5.10のBETAバージョンはmy.palmsens.comからダウンロードできます。
MethodSCRIPTの例2:i2Cを使用したSensit BTの温度測定、トリガーボタンで開始
e
############# Hibernate and wait for button push #############
#Hibernate in low power mode, wake up on WAKE pin event (button push)
#Could also have used get_gpio on with GPIO pin if saving power wasn't a concern
hibernate 0x07i 60
############# Declare measurement variables variables #############
var c
var p
var f
var g
############# I2C Temperature measurement initialisation #############
# Declare variables for Temperature measurement
# Most significant bits
var m
# Least significant bits
var l
# Acknowledge
var a
# Array with Write data
array w 2
# Array with Read data
array r 2
# Status register
var s
# Configure I2C GPIOs and set it to 100k clock, 7 bit address
set_gpio_cfg 0x0300i 2
i2c_config 100k 7
# Configure the sensor for 16bit mode with continuous conversion
store_var a 0i ja
array_set w 0i 0x03i
array_set w 1i 0x80i
i2c_write 0x48i w 2 a
############# Measurement initialisation #############
set_pgstat_chan 0
set_pgstat_mode 2
set_max_bandwidth 200
set_range_minmax da -400m 400m
set_range ba 59n
set_autoranging ba 59n 59n
set_e -300m
cell_on
############# Run measurement #############
# Perform SWV measurement from -300 mV to 300 mV at 5 Hz
meas_loop_swv p c f g -300m 300m 10m 100m 5
############# Get I2C temperature #############
# Check if temperature sensor is ready
store_var s 0x80i ja
i2c_write_byte 0x48i 0x02i a
i2c_read_byte 0x48i s a
bit_and_var s 0x80i
# Ignore if temperature sensor not ready.
if s != 0x80i
# Read temperature values
i2c_write_byte 0x48i 0x00i a
i2c_read 0x48i r 2 a
array_get r 0i m
array_get r 1i l
# Convert to degrees Celcius
bit_lsl_var m 8i
add_var m l
if m > 0x8000i
sub_var m 0x10000i
endif
int_to_float m
div_var m 128
endif
############# Send measurement package #############
pck_start
# Sweep potential
pck_add p
# Current
pck_add c
# Temperature
pck_add m
pck_end
endloop
on_finished:
cell_off
MethodSCRIPT の例 3: EmStat4M 開発キットでのピーク検出
e
############# Declare measurement variables variables #############
var c
var p
var f
var g
############# Init peak detect #############
# Declare variables
var n
var i
var m
var l
array a 100i
array b 100i
store_var n 0i ja
store_var m 0 ba
store_var l 1M ba
############# Configure LED pins #############
set_gpio_cfg 0x7 1
set_gpio 0x0
############# Measurement initialisation #############
set_pgstat_chan 0
set_pgstat_mode 2
set_max_bandwidth 200
set_range_minmax da -400m 400m
set_range ba 59n
set_autoranging ba 59n 59n
set_e -300m
cell_on
############# Run measurement #############
# Perform SWV measurement from -300 mV to 300 mV at 5 Hz
meas_loop_swv p c f g -300m 300m 10m 100m 5
# Store measurement data in array
array_set a n p
array_set b n c
add_var n 1i
endloop
############# Simple peak search algorithm #############
# As an example, we just determine max and min value
# Many applications will need a more sophisticated algorithm
store_var i 0i ja
loop i < n
array_get b i c
if c > m
copy_var c m
endif
if c < l
copy_var c l
endif
add_var i 1i
endloop
############# Send measurement data #############
store_var i 0i ja
loop i < n
array_get a i p
array_get b i c
pck_start
pck_add p
pck_add c
pck_add m
pck_add l
pck_end
add_var i 1i
endloop
############# Decision time #############
#subtract "min" value from "max" to get the relative peak height
sub_var m l
# Enable red LED if peak > nA, otherwise enable green LED
if m > 2n
set_gpio 0x1
else
set_gpio 0x2
endif
############# Turn cell off, even if aborted #############
on_finished:
cell_off