[[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/ 20:1:15, rv=20 device=light, Date=2018/10/18/ 20:1:25, rv=20 device=light, Date=2018/10/18/ 20:1:36, rv=20 device=light, Date=2018/10/18/ 20:1:47, rv=20 device=light, Date=2018/10/18/ 20:1:57, rv=20 device=light, Date=2018/10/18/ 20:2:8, rv=20 device=light, Date=2018/10/18/ 20:2:18, rv=20 device=light, Date=2018/10/18/ 20:2:28, rv=20 device=light, Date=2018/10/18/ 20:2:39, rv=20 device=light, Date=2018/10/18/ 20:2:49, rv=20 device=light, Date=2018/10/18/ 20:2:59, rv=20 device=light, Date=2018/10/18/ 20:3:9, rv=20 device=light, Date=2018/10/18/ 20:3:19, rv=20 device=light, Date=2018/10/18/ 20:3:30, rv=20 device=light, Date=2018/10/18/ 20:3:42, rv=20 device=light, Date=2018/10/18/ 20:3:52, rv=20 device=light, Date=2018/10/18/ 20:4:2, rv=20 device=light, Date=2018/10/18/ 20:4:12, rv=20 device=light, Date=2018/10/18/ 20:4:23, rv=20 device=light, Date=2018/10/18/ 20:4:33, rv=20 device=light, Date=2018/10/18/ 20:4:43, rv=20 device=light, Date=2018/10/18/ 20:4:53, rv=20 device=light, Date=2018/10/18/ 20:5:3, rv=20 device=light, Date=2018/10/18/ 20:5:14, rv=20 device=light, Date=2018/10/18/ 20:5:24, rv=20 currentDevice="yamaRasPiDp9_1",Date=2018/10/18/ 20:5:34 device=light, Date=2018/10/18/ 20:6:31, rv=20 device=light, Date=2018/10/18/ 20:6:41, rv=20 device=light, Date=2018/10/18/ 20:6:52, rv=20 device=light, Date=2018/10/18/ 20:7:2, rv=20 device=light, Date=2018/10/18/ 20:7:12, rv=20 device=light, Date=2018/10/18/ 20:7:22, rv=20 device=light, Date=2018/10/18/ 20:7:32, rv=20 device=light, Date=2018/10/18/ 20:7:43, rv=20 device=light, Date=2018/10/18/ 20:7:53, rv=20 device=light, Date=2018/10/18/ 20:8:3, rv=20 device=light, Date=2018/10/18/ 20:8:13, rv=20 device=light, Date=2018/10/18/ 20:8:23, rv=20 device=light, Date=2018/10/18/ 20:8:34, rv=20 device=light, Date=2018/10/18/ 20:8:44, rv=20 device=light, Date=2018/10/18/ 20:8:54, rv=20 device=light, Date=2018/10/18/ 20:9:7, rv=20 device=light, Date=2018/10/18/ 20:9:17, rv=20 device=light, Date=2018/10/18/ 20:9:27, rv=20 device=light, Date=2018/10/18/ 20:9:37, rv=20 device=light, Date=2018/10/18/ 20:9:48, rv=20 device=light, Date=2018/10/18/ 20:9:58, rv=20 device=light, Date=2018/10/18/ 20:10:8, rv=20 device=light, Date=2018/10/18/ 20:10:18, rv=20 device=light, Date=2018/10/18/ 20:10:29, rv=20 device=light, Date=2018/10/18/ 20:10:39, rv=20 currentDevice="yamaRasPiDp9_1",Date=2018/10/18/ 20:10:49