-
Notifications
You must be signed in to change notification settings - Fork 12
TMG39931
Nishikori Koji edited this page Feb 24, 2022
·
5 revisions
照度/カラー/近接センサ
コードURL: https://github.com/gfd-dennou-club/iotex-esp32-mrubyc/blob/master/mrblib/models/tmg39931.rb
サンプルコード: https://github.com/gfd-dennou-club/iotex-esp32-mrubyc/blob/master/example/master.rb.tmg39931
TMG39931.new(i2c)
- i2c : I2Cクラスのオブジェクト
example
i2c = I2C.new(22, 21)
tmg39931 = TMG39931.new(i2c)
TMG39931.init()
example
if !tmg39931.init
puts 'Device not found. Check wiring.'
else
...
end
TMG39931.setup_recommended_config_for_proximity()
example
tmg39931.setup_recommended_config_for_proximity
TMG39931.set_proximity_interrupt_threshold(low, high)
- low : 測定範囲の下限
- high : 測定範囲の上限
example
tmg39931.set_proximity_interrupt_threshold(25, 150) # 5cm未満で近接イベントが発生
TMG39931.set_adc_integration_time(atime)
- atime : 積分時間の設定(0xdbで103ms)
example
tmg39931.set_adc_integration_time(0xdb) # 積分時間: 103ms
TMG39931.enable_engines(enable_bits)
- enable_bits : 起動するエンジンをbitで指定(定義されたハッシュENABLE[]を利用可能)
- PON: PowerON
- AEN: ALS Enable
- PEN: Proximity Enable
- WEN: Wait Enable
- AIEN: ALS Interrupt Enable
- PIEN: Proximity Interrupt Enable
- GEN: Gesture Enable
- PBEN: Pattern Burst Enable
example
tmg39931.enable_engines(TMG39931::ENABLE[:PON] | TMG39931::ENABLE[:PEN] | TMG39931::ENABLE[:PIEN] | TMG39931::ENABLE[:AEN] | TMG39931::ENABLE[:AIEN])
TMG39931.get_status()
- AVALID: ALS Valid
- PVALID: Proximity Valid
- GINT: Gesture Interrupt
- PBINT: Pattern Burst Interrupt
- AINT: ALS Interrupt
- PINT: Proximity Interrupt
- PGSAT: Proximity/Gesture Saturation
- CPSAT: Clear Photodiode Saturation
example
if (tmg39931.get_status & (TMG39931::STATUS[:PINT] | TMG39931::STATUS[:AVALID])) != 0 # センサの状態確認
...
end
TMG39931.get_proximity_raw()
example
proximity_raw = tmg39931.get_proximity_raw
TMG39931.get_rgbc_raw()
example
data = tmg39931.get_proximity_raw
TMG39931.get_lux(rgbc)
- rgbc : rgbcデータを配列で与える。与えなければrgbcデータを取得してからluxに変換
example
data = tmg39931.get_proximity_raw
lux = tmg39931.get_lux(data)
TMG39931.get_cct(rgbc)
- rgbc : rgbcデータを配列で与える。与えなければrgbcデータを取得してからcctに変換
example
data = tmg39931.get_proximity_raw
cct = tmg39931.get_cct(:ata)
TMG39931.clear_proximity_interrupts
example
tmg39931.clear_proximity_interrupts
その他のメソッドもarduinoの実装を参考に実装しているが、実行確認不十分のため解説しない