LightSensor1
objectPage http://www.yama-lab.org/fwb4pi/index.php?Servo1 or http://www.yama-lab2.org/dp-1/index.php?Servo1
device yamaRasPiDp9_1 or yamaRasPiDp9_2 start after no write for 10 min.
command: set readInterval=300000
command: set execInterval=0
command: set reportLength=25
command: program i2cServo
program: dim thisTable
program: dim thisRowLabel
program: dim thisColumnLabel
program: '
program: ' init i2c
program: ex("pi4j", "i2c use 1")
program: '
program: ' init servo driver, PCA9685... https://www.adafruit.com/products/815
program: ex("pi4j", "i2c write1 0x40,0xfa,0x00")
program: ex("pi4j", "i2c write1 0x40,0xfb,0x00")
program: ex("pi4j", "i2c write1 0x40,0xfc,0x00")
program: ex("pi4j", "i2c write1 0x40,0xfd,0x00")
program: ex("pi4j", "i2c write1 0x40,0x01,0x04") ' set mode-2 out drive
program: ex("pi4j", "i2c write1 0x40,0x00,0x01") ' set mode-1 restart disabled, internal clock, auto-increment disabled, nomal, ALLCALL
program: sms=ex("pi4j", "i2c read1 0x40,0x00") 'read current mode-1
program: sm=s2i(sms)
program: nsm=0x007f & sm 'new mode, wake up
program: delay(50)
program: ex("pi4j", "i2c write1 0x40,0x00,"+nsm)
program: delay(50)
program: '
program: ' init frequency
program: sms=ex("pi4j", "i2c read1 0x40,0x00") 'read current mode-1
program: sm=s2i(sms)
program: nsm=(0x007f & sm)|0x0010 'new mode, sleep
program: delay(50)
program: ex("pi4j", "i2c write1 0x40,0x00,"+nsm) '... sleep, set the sleep mode on, restart disabled 40> 00+ 10+
program: ex("pi4j", "i2c write1 0x40,0xfe,0x65") 'set the pwm frequency prescale register 40> fe+ 70+
program: ex("pi4j", "i2c write1 0x40,0x00,"+sm) 'recover the mode-1 register, .... wake up. 40> 00+ 00+
program: smi=sm | 0x0080 ' restart enabled, no auto incremental, nomal, no all call
program: delay(50)
program: ex("pi4j", "i2c write1 0x40,0x00,"+smi) ' set the mode-1 register to incremental mode. 40> 00+ a1+
program: delay(50)
program: '
program: ex("service","clear sendBuffer")
program: for i=1 to 30
program: sensorPageUrl="http://www.yama-lab.org/fwb4pi/index.php?LightSensor1"
program: sensorPage=ex("connector", "getpage "+sensorPageUrl)
program: sensorPageR=getResultPart(sensorPage)
program: parseCsv(sensorPageR, thisTable, thisRowLabel, thisColumnLabel)
program: ix=getindex(thisTable, thisRowLabel, thisColumnLabel("device"),"=","light")
program: rv=thisTable(ix,thisColumnLabel("v"))
program: ex("service","putSendBuffer device=light, Date="+ex("service","getCurrentDate.")+", rv="+rv)
program: if rv>10 then 'move ch0 to center
program: {
program: ' ex("pi4j", "i2c write4 0x40,0x06,0x96,0x00")
program: ex("pi4j", "i2c write1 0x40,0x06,0x00")
program: ex("pi4j", "i2c write1 0x40,0x07,0x00")
program: ex("pi4j", "i2c write1 0x40,0x08,0x96")
program: ex("pi4j", "i2c write1 0x40,0x09,0x00")
program: }
program: else
program: {
program: ' ex("pi4j", "i2c write4 0x40,0x06,0x258,0x00")
program: ex("pi4j", "i2c write1 0x40,0x06,0x00")
program: ex("pi4j", "i2c write1 0x40,0x07,0x00")
program: ex("pi4j", "i2c write1 0x40,0x08,0x58")
program: ex("pi4j", "i2c write1 0x40,0x09,0x01")
program: }
program: delay(10000)
program: next i
program: ex("pi4j", "i2c close.")
program: ex("service","sendResults.");
command: end i2cServo
command: run i2cServo
result:
device=light, Date=2018/10/18/ 19:30:26, rv=20
device=light, Date=2018/10/18/ 19:30:36, rv=20
device=light, Date=2018/10/18/ 19:30:46, rv=20
device=light, Date=2018/10/18/ 19:30:57, rv=20
device=light, Date=2018/10/18/ 19:31:7, rv=20
device=light, Date=2018/10/18/ 19:31:17, rv=20
device=light, Date=2018/10/18/ 19:31:27, rv=20
device=light, Date=2018/10/18/ 19:31:38, rv=20
device=light, Date=2018/10/18/ 19:31:48, rv=20
device=light, Date=2018/10/18/ 19:31:58, rv=20
device=light, Date=2018/10/18/ 19:32:8, rv=20
device=light, Date=2018/10/18/ 19:32:18, rv=20
device=light, Date=2018/10/18/ 19:32:29, rv=20
device=light, Date=2018/10/18/ 19:32:39, rv=20
device=light, Date=2018/10/18/ 19:32:49, rv=20
device=light, Date=2018/10/18/ 19:32:59, rv=20
device=light, Date=2018/10/18/ 19:33:9, rv=20
device=light, Date=2018/10/18/ 19:33:20, rv=20
device=light, Date=2018/10/18/ 19:33:30, rv=20
device=light, Date=2018/10/18/ 19:33:40, rv=20
device=light, Date=2018/10/18/ 19:33:50, rv=20
device=light, Date=2018/10/18/ 19:34:0, rv=20
device=light, Date=2018/10/18/ 19:34:11, rv=20
device=light, Date=2018/10/18/ 19:34:21, rv=20
device=light, Date=2018/10/18/ 19:34:31, rv=20
currentDevice="yamaRasPiDp9_1",Date=2018/10/18/ 19:34:41