mirror of
https://github.com/eclipse/upm.git
synced 2025-03-14 20:47:30 +03:00
python_examples: Reformatted, self-checking, executable
* Moved body of each python example to main. This allows for basic load module testing for CI * General cleanup of python modules (crlf/tabs/prints/etc) * Chmod'ed to 755 to allow running examples without specifying the python interpreter * Added ctest for loading python2/3 modules * Added jniclasscode pragma for java swig interface files. * Updated check_examplenames.py module to check all languages vs. a cxx example name * Added tests for checking python module and test loading * Added 'make test' to travis-ci run (run ctests) * Print a more meaningful message when not building cxx docs into python modules * Updated check_clean.py to only check java wrapper files * ENABLED ctests for UPM * Deleted using_carrays.py python example - this is covered by other examples Signed-off-by: Noel Eck <noel.eck@intel.com>
This commit is contained in:
parent
62718daf0b
commit
2f78d9f62b
@ -33,8 +33,10 @@ before_script:
|
||||
script:
|
||||
- echo "CC=$CC BUILDJAVA=$BUILDJAVA NODE010=$NODE010 NODE012=$NODE012 NODE4=$NODE4 NODE5=$NODE5 NODE_ROOT_DIR=$NODE_ROOT_DIR"
|
||||
- git clone https://github.com/intel-iot-devkit/mraa.git $MRAA_ROOT
|
||||
- mkdir -p $MRAA_BUILD && cd $_ && cmake -DBUILDSWIGJAVA=$BUILDJAVA -DBUILDSWIGNODE=OFF -DBUILDSWIGPYTHON=OFF -DFIRMATA=ON -DENABLEEXAMPLES=OFF -DCMAKE_INSTALL_PREFIX:PATH=$MRAA_INSTALL $MRAA_ROOT && make install
|
||||
- cd $UPM_ROOT && mkdir $UPM_BUILD && cd $_ && PKG_CONFIG_PATH=$MRAA_INSTALL/lib/pkgconfig cmake -DNODE_ROOT_DIR:PATH="${NODE_ROOT_DIR}" -DBUILDSWIGJAVA=$BUILDJAVA -DBUILDEXAMPLES=ON -DBUILDJAVAEXAMPLES=$BUILDJAVA -DCMAKE_INSTALL_PREFIX:PATH=$UPM_INSTALL .. && make install
|
||||
- mkdir -p $MRAA_BUILD && cd $_ && cmake -DBUILDSWIGJAVA=$BUILDJAVA -DBUILDSWIGNODE=OFF -DBUILDSWIGPYTHON=ON -DFIRMATA=ON -DENABLEEXAMPLES=OFF -DCMAKE_INSTALL_PREFIX:PATH=$MRAA_INSTALL $MRAA_ROOT && make install
|
||||
- cd $UPM_ROOT && mkdir $UPM_BUILD && cd $_ && PKG_CONFIG_PATH=$MRAA_INSTALL/lib/pkgconfig cmake -DNODE_ROOT_DIR:PATH="${NODE_ROOT_DIR}" -DBUILDSWIGJAVA=$BUILDJAVA -DBUILDEXAMPLES=ON -DBUILDJAVAEXAMPLES=$BUILDJAVA -DBUILDTESTS=ON -DCMAKE_INSTALL_PREFIX:PATH=$UPM_INSTALL ..
|
||||
- make install
|
||||
- LD_LIBRARY_PATH=$MRAA_INSTALL/lib:$UPM_INSTALL/lib:$LD_LIBRARY_PATH PYTHONPATH=$UPM_INSTALL/lib/python2.7/site-packages/:$MRAA_INSTALL/lib/python2.7/dist-packages/ ctest --output-on-failure -E examplenames_js
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
|
@ -1,73 +1,72 @@
|
||||
# Mapping C++ sample files to Java sample files
|
||||
a110x-intr.cxx A110X_intrSample.java
|
||||
a110x.cxx A110XSample.java
|
||||
adc121c021.cxx ADC121C021Sample.java
|
||||
adxl345.cxx Adxl345Sample.java
|
||||
biss0001.cxx BISS0001Sample.java
|
||||
bmpx8x.cxx BMPX8XSample.java
|
||||
buzzer-sound.cxx Buzzer_soundSample.java
|
||||
cjq4435.cxx CJQ4435Sample.java
|
||||
ds1307.cxx DS1307Sample.java
|
||||
enc03r.cxx ENC03RSample.java
|
||||
es08a.cxx ES08ASample.java
|
||||
button.cxx ButtonSample.java
|
||||
groveehr.cxx GroveEHRSample.java
|
||||
groveled.cxx GroveLEDSample.java
|
||||
grovelinefinder.cxx GroveLineFinderSample.java
|
||||
light.cxx LightSample.java
|
||||
grovemoisture.cxx GroveMoistureSample.java
|
||||
relay.cxx RelaySample.java
|
||||
rotary.cxx RotarySample.java
|
||||
grovescam.cxx GROVESCAMSample.java
|
||||
slide.cxx SlideSample.java
|
||||
speaker.cxx SpeakerSample.java
|
||||
vdiv.cxx VDivSample.java
|
||||
water.cxx WaterSample.java
|
||||
grovewfs.cxx GroveWFSSample.java
|
||||
guvas12d.cxx GUVAS12DSample.java
|
||||
h3lis331dl.cxx H3LIS331DLSample.java
|
||||
hcsr04.cxx HCSR04Sample.java
|
||||
hm11.cxx HM11Sample.java
|
||||
hmc5883l.cxx Hmc5883lSample.java
|
||||
htu21d.cxx HTU21DSample.java
|
||||
itg3200.cxx Itg3200Sample.java
|
||||
jhd1313m1-lcd.cxx Jhd1313m1_lcdSample.java
|
||||
joystick12.cxx Joystick12Sample.java
|
||||
lcm1602-i2c.cxx Lcm1602_i2cSample.java
|
||||
ldt0028.cxx LDT0028Sample.java
|
||||
lol.cxx LoLSample.java
|
||||
lsm303.cxx LSM303Sample.java
|
||||
m24lr64e.cxx M24LR64ESample.java
|
||||
max44000.cxx MAX44000Sample.java
|
||||
mic.cxx MicrophoneSample.java
|
||||
mma7455.cxx MMA7455Sample.java
|
||||
mma7660.cxx MMA7660Sample.java
|
||||
mpl3115a2.cxx MPL3115A2Sample.java
|
||||
mpr121.cxx MPR121Sample.java
|
||||
mpu9150.cxx MPU9150Sample.java
|
||||
mq2.cxx MQ2Sample.java
|
||||
mq303a.cxx MQ303ASample.java
|
||||
mq5.cxx MQ5Sample.java
|
||||
groveledbar GroveLEDBar
|
||||
nrf24l01-receiver.cxx NRF24L01_receiverSample.java
|
||||
nrf24l01-transmitter.cxx NRF24L01_transmitterSample.java
|
||||
nunchuck.cxx NUNCHUCKSample.java
|
||||
otp538u.cxx OTP538USample.java
|
||||
ppd42ns.cxx PPD42NSSample.java
|
||||
pulsensor.cxx PulsensorSample.java
|
||||
rfr359f.cxx RFR359FSample.java
|
||||
rotaryencoder.cxx RotaryEncoderSample.java
|
||||
rpr220-intr.cxx RPR220_intrSample.java
|
||||
rpr220.cxx RPR220Sample.java
|
||||
ssd1308-oled.cxx SSD1308_oledSample.java
|
||||
ssd1327-oled.cxx SSD1327_oledSample.java
|
||||
st7735.cxx ST7735Sample.java
|
||||
stepmotor.cxx StepMotorSample.java
|
||||
tm1637.cxx TM1637Sample.java
|
||||
tp401.cxx TP401Sample.java
|
||||
tsl2561.cxx TSL2561Sample.java
|
||||
ttp223.cxx TTP223Sample.java
|
||||
ublox6.cxx Ublox6Sample.java
|
||||
uln200xa.cxx ULN200XASample.java
|
||||
wt5001.cxx WT5001Sample.java
|
||||
yg1006.cxx YG1006Sample.java
|
||||
# Mapping examples across provided languages
|
||||
a110x.cxx A110XSample.java a110x.js a110x.py
|
||||
a110x-intr.cxx A110X_intrSample.java a110x-intr.js a110x-intr.py
|
||||
adc121c021.cxx ADC121C021Sample.java adc121c021.js adc121c021.py
|
||||
adxl345.cxx Adxl345Sample.java adxl345.js adxl345.py
|
||||
biss0001.cxx BISS0001Sample.java biss0001.js biss0001.py
|
||||
bmpx8x.cxx BMPX8XSample.java bmpx8x.js bmpx8x.py
|
||||
button.cxx ButtonSample.java button.js button.py
|
||||
buzzer-sound.cxx Buzzer_soundSample.java buzzer-sound.js buzzer-sound.py
|
||||
cjq4435.cxx CJQ4435Sample.java cjq4435.js cjq4435.py
|
||||
ds1307.cxx DS1307Sample.java ds1307.js ds1307.py
|
||||
enc03r.cxx ENC03RSample.java enc03r.js enc03r.py
|
||||
es08a.cxx ES08ASample.java es08a.js es08a.py
|
||||
groveehr.cxx GroveEHRSample.java groveehr.js groveehr.py
|
||||
groveledbar.cxx GroveLEDBar.java groveledbar.js groveledbar.py
|
||||
groveled.cxx GroveLEDSample.java groveled.js groveled.py
|
||||
grovelinefinder.cxx GroveLineFinderSample.java grovelinefinder.js grovelinefinder.py
|
||||
grovemoisture.cxx GroveMoistureSample.java grovemoisture.js grovemoisture.py
|
||||
grovescam.cxx GROVESCAMSample.java grovescam.js grovescam.py
|
||||
grovewfs.cxx GroveWFSSample.java grovewfs.js grovewfs.py
|
||||
guvas12d.cxx GUVAS12DSample.java guvas12d.js guvas12d.py
|
||||
h3lis331dl.cxx H3LIS331DLSample.java h3lis331dl.js h3lis331dl.py
|
||||
hcsr04.cxx HCSR04Sample.java hcsr04.js hcsr04.py
|
||||
hm11.cxx HM11Sample.java hm11.js hm11.py
|
||||
hmc5883l.cxx Hmc5883lSample.java hmc5883l.js hmc5883l.py
|
||||
htu21d.cxx HTU21DSample.java htu21d.js htu21d.py
|
||||
itg3200.cxx Itg3200Sample.java itg3200.js itg3200.py
|
||||
jhd1313m1-lcd.cxx Jhd1313m1_lcdSample.java jhd1313m1-lcd.js jhd1313m1-lcd.py
|
||||
joystick12.cxx Joystick12Sample.java joystick12.js joystick12.py
|
||||
lcm1602-i2c.cxx Lcm1602_i2cSample.java lcm1602-i2c.js lcm1602-i2c.py
|
||||
ldt0028.cxx LDT0028Sample.java ldt0028.js ldt0028.py
|
||||
light.cxx LightSample.java light.js light.py
|
||||
lol.cxx LoLSample.java lol.js lol.py
|
||||
lsm303.cxx LSM303Sample.java lsm303.js lsm303.py
|
||||
m24lr64e.cxx M24LR64ESample.java m24lr64e.js m24lr64e.py
|
||||
max44000.cxx MAX44000Sample.java max44000.js max44000.py
|
||||
mic.cxx MicrophoneSample.java mic.js mic.py
|
||||
mma7455.cxx MMA7455Sample.java mma7455.js mma7455.py
|
||||
mma7660.cxx MMA7660Sample.java mma7660.js mma7660.py
|
||||
mpl3115a2.cxx MPL3115A2Sample.java mpl3115a2.js mpl3115a2.py
|
||||
mpr121.cxx MPR121Sample.java mpr121.js mpr121.py
|
||||
mpu9150.cxx MPU9150Sample.java mpu9150.js mpu9150.py
|
||||
mq2.cxx MQ2Sample.java mq2.js mq2.py
|
||||
mq303a.cxx MQ303ASample.java mq303a.js mq303a.py
|
||||
mq5.cxx MQ5Sample.java mq5.js mq5.py
|
||||
nrf24l01-receiver.cxx NRF24L01_receiverSample.java nrf24l01-receiver.js nrf24l01-receiver.py
|
||||
nrf24l01-transmitter.cxx NRF24L01_transmitterSample.java nrf24l01-transmitter.js nrf24l01-transmitter.py
|
||||
nunchuck.cxx NUNCHUCKSample.java nunchuck.js nunchuck.py
|
||||
otp538u.cxx OTP538USample.java otp538u.js otp538u.py
|
||||
ppd42ns.cxx PPD42NSSample.java ppd42ns.js ppd42ns.py
|
||||
pulsensor.cxx PulsensorSample.java pulsensor.js pulsensor.py
|
||||
relay.cxx RelaySample.java relay.js relay.py
|
||||
rfr359f.cxx RFR359FSample.java rfr359f.js rfr359f.py
|
||||
rotary.cxx RotarySample.java rotary.js rotary.py
|
||||
rotaryencoder.cxx RotaryEncoderSample.java rotaryencoder.js rotaryencoder.py
|
||||
rpr220.cxx RPR220Sample.java rpr220.js rpr220.py
|
||||
rpr220-intr.cxx RPR220_intrSample.java rpr220-intr.js rpr220-intr.py
|
||||
slide.cxx SlideSample.java slide.js slide.py
|
||||
speaker.cxx SpeakerSample.java speaker.js speaker.py
|
||||
ssd1308-oled.cxx SSD1308_oledSample.java ssd1308-oled.js ssd1308-oled.py
|
||||
ssd1327-oled.cxx SSD1327_oledSample.java ssd1327-oled.js ssd1327-oled.py
|
||||
st7735.cxx ST7735Sample.java st7735.js st7735.py
|
||||
stepmotor.cxx StepMotorSample.java stepmotor.js stepmotor.py
|
||||
tm1637.cxx TM1637Sample.java tm1637.js tm1637.py
|
||||
tp401.cxx TP401Sample.java tp401.js tp401.py
|
||||
tsl2561.cxx TSL2561Sample.java tsl2561.js tsl2561.py
|
||||
ttp223.cxx TTP223Sample.java ttp223.js ttp223.py
|
||||
uln200xa.cxx ULN200XASample.java uln200xa.js uln200xa.py
|
||||
vdiv.cxx VDivSample.java vdiv.js vdiv.py
|
||||
water.cxx WaterSample.java water.js water.py
|
||||
wt5001.cxx WT5001Sample.java wt5001.js wt5001.py
|
||||
yg1006.cxx YG1006Sample.java yg1006.js yg1006.py
|
||||
|
42
examples/python/a110x.py
Normal file → Executable file
42
examples/python/a110x.py
Normal file → Executable file
@ -24,28 +24,30 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_a110x as upmA110x
|
||||
|
||||
# Instantiate a Hall Effect magnet sensor on digital pin D2
|
||||
myHallEffectSensor = upmA110x.A110X(2)
|
||||
def main():
|
||||
# Instantiate a Hall Effect magnet sensor on digital pin D2
|
||||
myHallEffectSensor = upmA110x.A110X(2)
|
||||
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
# This function lets you run code on exit, including functions from myHallEffectSensor
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# This function lets you run code on exit, including functions from myHallEffectSensor
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
while(1):
|
||||
if (myHallEffectSensor.magnetDetected()):
|
||||
print "Magnet (south polarity) detected."
|
||||
else:
|
||||
print "No magnet detected."
|
||||
time.sleep(1)
|
||||
|
||||
|
||||
while(1):
|
||||
if (myHallEffectSensor.magnetDetected()):
|
||||
print "Magnet (south polarity) detected."
|
||||
else:
|
||||
print "No magnet detected."
|
||||
time.sleep(1)
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
48
examples/python/ad8232.py
Normal file → Executable file
48
examples/python/ad8232.py
Normal file → Executable file
@ -24,31 +24,33 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_ad8232 as upmAD8232
|
||||
|
||||
# Instantiate a AD8232 sensor on digital pins 10 (LO+), 11 (LO-)
|
||||
# and an analog pin, 0 (OUTPUT)
|
||||
myAD8232 = upmAD8232.AD8232(10, 11, 0)
|
||||
def main():
|
||||
# Instantiate a AD8232 sensor on digital pins 10 (LO+), 11 (LO-)
|
||||
# and an analog pin, 0 (OUTPUT)
|
||||
myAD8232 = upmAD8232.AD8232(10, 11, 0)
|
||||
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
# This function lets you run code on exit, including functions from myAD8232
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# This function lets you run code on exit, including functions from myAD8232
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
# Output the raw numbers from the ADC, for plotting elsewhere.
|
||||
# A return of 0 indicates a Lead Off (LO) condition.
|
||||
# In theory, this data could be fed to software like Processing
|
||||
# (https://www.processing.org/) to plot the data just like an
|
||||
# EKG you would see in a hospital.
|
||||
while(1):
|
||||
print myAD8232.value()
|
||||
time.sleep(.001)
|
||||
|
||||
|
||||
# Output the raw numbers from the ADC, for plotting elsewhere.
|
||||
# A return of 0 indicates a Lead Off (LO) condition.
|
||||
# In theory, this data could be fed to software like Processing
|
||||
# (https://www.processing.org/) to plot the data just like an
|
||||
# EKG you would see in a hospital.
|
||||
while(1):
|
||||
print myAD8232.value()
|
||||
time.sleep(.001)
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
90
examples/python/adafruitms1438-stepper.py
Normal file → Executable file
90
examples/python/adafruitms1438-stepper.py
Normal file → Executable file
@ -24,65 +24,65 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_adafruitms1438 as upmAdafruitms1438
|
||||
|
||||
def main():
|
||||
# Import header values
|
||||
I2CBus = upmAdafruitms1438.ADAFRUITMS1438_I2C_BUS
|
||||
I2CAddr = upmAdafruitms1438.ADAFRUITMS1438_DEFAULT_I2C_ADDR
|
||||
|
||||
# Import header values
|
||||
I2CBus = upmAdafruitms1438.ADAFRUITMS1438_I2C_BUS
|
||||
I2CAddr = upmAdafruitms1438.ADAFRUITMS1438_DEFAULT_I2C_ADDR
|
||||
M12Motor = upmAdafruitms1438.AdafruitMS1438.STEPMOTOR_M12
|
||||
MotorDirCW = upmAdafruitms1438.AdafruitMS1438.DIR_CW
|
||||
MotorDirCCW = upmAdafruitms1438.AdafruitMS1438.DIR_CCW
|
||||
|
||||
M12Motor = upmAdafruitms1438.AdafruitMS1438.STEPMOTOR_M12
|
||||
MotorDirCW = upmAdafruitms1438.AdafruitMS1438.DIR_CW
|
||||
MotorDirCCW = upmAdafruitms1438.AdafruitMS1438.DIR_CCW
|
||||
# Instantiate an Adafruit MS 1438 on I2C bus 0
|
||||
myMotorShield = upmAdafruitms1438.AdafruitMS1438(I2CBus, I2CAddr)
|
||||
|
||||
## Exit handlers ##
|
||||
# This stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
# Instantiate an Adafruit MS 1438 on I2C bus 0
|
||||
myMotorShield = upmAdafruitms1438.AdafruitMS1438(I2CBus, I2CAddr)
|
||||
# This function lets you run code on exit,
|
||||
# including functions from myMotorShield
|
||||
def exitHandler():
|
||||
myMotorShield.disableStepper(M12Motor)
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
## Exit handlers ##
|
||||
# This stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
# Setup for use with a stepper motor connected to the M1 & M2 ports
|
||||
|
||||
# This function lets you run code on exit,
|
||||
# including functions from myMotorShield
|
||||
def exitHandler():
|
||||
myMotorShield.disableStepper(M12Motor)
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
# set a PWM period of 50Hz
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
# disable first, to be safe
|
||||
myMotorShield.disableStepper(M12Motor)
|
||||
|
||||
# configure for a NEMA-17, 200 steps per revolution
|
||||
myMotorShield.stepConfig(M12Motor, 200)
|
||||
|
||||
# Setup for use with a stepper motor connected to the M1 & M2 ports
|
||||
# set speed at 10 RPM's
|
||||
myMotorShield.setStepperSpeed(M12Motor, 10);
|
||||
myMotorShield.setStepperDirection(M12Motor, MotorDirCW)
|
||||
|
||||
# set a PWM period of 50Hz
|
||||
# enable
|
||||
print "Enabling..."
|
||||
myMotorShield.enableStepper(M12Motor)
|
||||
|
||||
# disable first, to be safe
|
||||
myMotorShield.disableStepper(M12Motor)
|
||||
print "Rotating 1 full revolution at 10 RPM speed."
|
||||
myMotorShield.stepperSteps(M12Motor, 200)
|
||||
|
||||
# configure for a NEMA-17, 200 steps per revolution
|
||||
myMotorShield.stepConfig(M12Motor, 200)
|
||||
print "Sleeping for 2 seconds..."
|
||||
time.sleep(2)
|
||||
print "Rotating 1/2 revolution in opposite direction at 10 RPM speed."
|
||||
|
||||
# set speed at 10 RPM's
|
||||
myMotorShield.setStepperSpeed(M12Motor, 10);
|
||||
myMotorShield.setStepperDirection(M12Motor, MotorDirCW)
|
||||
myMotorShield.setStepperDirection(M12Motor, MotorDirCCW)
|
||||
myMotorShield.stepperSteps(M12Motor, 100)
|
||||
|
||||
# enable
|
||||
print "Enabling..."
|
||||
myMotorShield.enableStepper(M12Motor)
|
||||
print "Disabling..."
|
||||
|
||||
print "Rotating 1 full revolution at 10 RPM speed."
|
||||
myMotorShield.stepperSteps(M12Motor, 200)
|
||||
# exitHandler runs automatically
|
||||
|
||||
print "Sleeping for 2 seconds..."
|
||||
time.sleep(2)
|
||||
print "Rotating 1/2 revolution in opposite direction at 10 RPM speed."
|
||||
|
||||
myMotorShield.setStepperDirection(M12Motor, MotorDirCCW)
|
||||
myMotorShield.stepperSteps(M12Motor, 100)
|
||||
|
||||
print "Disabling..."
|
||||
|
||||
# exitHandler runs automatically
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
82
examples/python/adafruitms1438.py
Normal file → Executable file
82
examples/python/adafruitms1438.py
Normal file → Executable file
@ -24,60 +24,60 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_adafruitms1438 as upmAdafruitms1438
|
||||
|
||||
def main():
|
||||
# Import header values
|
||||
I2CBus = upmAdafruitms1438.ADAFRUITMS1438_I2C_BUS
|
||||
I2CAddr = upmAdafruitms1438.ADAFRUITMS1438_DEFAULT_I2C_ADDR
|
||||
|
||||
# Import header values
|
||||
I2CBus = upmAdafruitms1438.ADAFRUITMS1438_I2C_BUS
|
||||
I2CAddr = upmAdafruitms1438.ADAFRUITMS1438_DEFAULT_I2C_ADDR
|
||||
M3Motor = upmAdafruitms1438.AdafruitMS1438.MOTOR_M3
|
||||
MotorDirCW = upmAdafruitms1438.AdafruitMS1438.DIR_CW
|
||||
MotorDirCCW = upmAdafruitms1438.AdafruitMS1438.DIR_CCW
|
||||
|
||||
M3Motor = upmAdafruitms1438.AdafruitMS1438.MOTOR_M3
|
||||
MotorDirCW = upmAdafruitms1438.AdafruitMS1438.DIR_CW
|
||||
MotorDirCCW = upmAdafruitms1438.AdafruitMS1438.DIR_CCW
|
||||
# Instantiate an Adafruit MS 1438 on I2C bus 0
|
||||
myMotorShield = upmAdafruitms1438.AdafruitMS1438(I2CBus, I2CAddr)
|
||||
|
||||
## Exit handlers ##
|
||||
# This stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
# Instantiate an Adafruit MS 1438 on I2C bus 0
|
||||
myMotorShield = upmAdafruitms1438.AdafruitMS1438(I2CBus, I2CAddr)
|
||||
# This function lets you run code on exit,
|
||||
# including functions from myMotorShield
|
||||
def exitHandler():
|
||||
myMotorShield.disableMotor(M3Motor)
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
## Exit handlers ##
|
||||
# This stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
# Setup for use with a DC motor connected to the M3 port
|
||||
|
||||
# This function lets you run code on exit,
|
||||
# including functions from myMotorShield
|
||||
def exitHandler():
|
||||
myMotorShield.disableMotor(M3Motor)
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
# set a PWM period of 50Hz
|
||||
myMotorShield.setPWMPeriod(50)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
# disable first, to be safe
|
||||
myMotorShield.disableMotor(M3Motor)
|
||||
|
||||
# set speed at 50%
|
||||
myMotorShield.setMotorSpeed(M3Motor, 50)
|
||||
myMotorShield.setMotorDirection(M3Motor, MotorDirCW)
|
||||
|
||||
# Setup for use with a DC motor connected to the M3 port
|
||||
print ("Spin M3 at half speed for 3 seconds, "
|
||||
"then reverse for 3 seconds.")
|
||||
myMotorShield.enableMotor(M3Motor)
|
||||
|
||||
# set a PWM period of 50Hz
|
||||
myMotorShield.setPWMPeriod(50)
|
||||
time.sleep(3)
|
||||
|
||||
# disable first, to be safe
|
||||
myMotorShield.disableMotor(M3Motor)
|
||||
print "Reversing M3"
|
||||
myMotorShield.setMotorDirection(M3Motor, MotorDirCCW)
|
||||
|
||||
# set speed at 50%
|
||||
myMotorShield.setMotorSpeed(M3Motor, 50)
|
||||
myMotorShield.setMotorDirection(M3Motor, MotorDirCW)
|
||||
time.sleep(3)
|
||||
|
||||
print ("Spin M3 at half speed for 3 seconds, "
|
||||
"then reverse for 3 seconds.")
|
||||
myMotorShield.enableMotor(M3Motor)
|
||||
print "Stopping M3"
|
||||
|
||||
time.sleep(3)
|
||||
# exitHandler runs automatically
|
||||
|
||||
print "Reversing M3"
|
||||
myMotorShield.setMotorDirection(M3Motor, MotorDirCCW)
|
||||
|
||||
time.sleep(3)
|
||||
|
||||
print "Stopping M3"
|
||||
|
||||
# exitHandler runs automatically
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
48
examples/python/adc121c021.py
Normal file → Executable file
48
examples/python/adc121c021.py
Normal file → Executable file
@ -24,32 +24,34 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_adc121c021 as upmAdc121c021
|
||||
|
||||
# Instantiate an ADC121C021 on I2C bus 0
|
||||
busID = upmAdc121c021.ADC121C021_I2C_BUS
|
||||
I2CAddr = upmAdc121c021.ADC121C021_DEFAULT_I2C_ADDR
|
||||
def main():
|
||||
# Instantiate an ADC121C021 on I2C bus 0
|
||||
busID = upmAdc121c021.ADC121C021_I2C_BUS
|
||||
I2CAddr = upmAdc121c021.ADC121C021_DEFAULT_I2C_ADDR
|
||||
|
||||
myAnalogDigitalConv = upmAdc121c021.ADC121C021(busID, I2CAddr)
|
||||
myAnalogDigitalConv = upmAdc121c021.ADC121C021(busID, I2CAddr)
|
||||
|
||||
## Exit handlers ##
|
||||
# This stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
## Exit handlers ##
|
||||
# This stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
# This lets you run code on exit,
|
||||
# including functions from myAnalogDigitalConv
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# This lets you run code on exit,
|
||||
# including functions from myAnalogDigitalConv
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
# get the data every 50 milliseconds
|
||||
while(1):
|
||||
val = myAnalogDigitalConv.value()
|
||||
voltsVal = myAnalogDigitalConv.valueToVolts(val)
|
||||
print "ADC value: %s Volts = %s" % (val, voltsVal)
|
||||
time.sleep(.05)
|
||||
|
||||
|
||||
# get the data every 50 milliseconds
|
||||
while(1):
|
||||
val = myAnalogDigitalConv.value()
|
||||
voltsVal = myAnalogDigitalConv.valueToVolts(val)
|
||||
print "ADC value: %s Volts = %s" % (val, voltsVal)
|
||||
time.sleep(.05)
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
82
examples/python/adxl335.py
Normal file → Executable file
82
examples/python/adxl335.py
Normal file → Executable file
@ -24,55 +24,57 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_adxl335 as upmAdxl335
|
||||
|
||||
myAnalogAccel = upmAdxl335.ADXL335(0, 1, 2)
|
||||
def main():
|
||||
myAnalogAccel = upmAdxl335.ADXL335(0, 1, 2)
|
||||
|
||||
print "Please make sure the sensor is completely still."
|
||||
print "Sleeping for 2 seconds"
|
||||
time.sleep(2)
|
||||
print "Please make sure the sensor is completely still."
|
||||
print "Sleeping for 2 seconds"
|
||||
time.sleep(2)
|
||||
|
||||
## Exit handlers ##
|
||||
# This stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
## Exit handlers ##
|
||||
# This stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
# This function lets you run code on exit,
|
||||
# including functions from myAnalogAccel
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# This function lets you run code on exit,
|
||||
# including functions from myAnalogAccel
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
print "Calibrating..."
|
||||
myAnalogAccel.calibrate()
|
||||
|
||||
x = upmAdxl335.new_intPointer()
|
||||
y = upmAdxl335.new_intPointer()
|
||||
z = upmAdxl335.new_intPointer()
|
||||
|
||||
print "Calibrating..."
|
||||
myAnalogAccel.calibrate()
|
||||
aX = upmAdxl335.new_floatPointer()
|
||||
aY = upmAdxl335.new_floatPointer()
|
||||
aZ = upmAdxl335.new_floatPointer()
|
||||
|
||||
x = upmAdxl335.new_intPointer()
|
||||
y = upmAdxl335.new_intPointer()
|
||||
z = upmAdxl335.new_intPointer()
|
||||
while (1):
|
||||
myAnalogAccel.values(x, y, z)
|
||||
outputStr = "Raw Values: X: {0} Y: {1} Z: {2}".format(
|
||||
upmAdxl335.intPointer_value(x), upmAdxl335.intPointer_value(y),
|
||||
upmAdxl335.intPointer_value(z))
|
||||
print outputStr
|
||||
|
||||
aX = upmAdxl335.new_floatPointer()
|
||||
aY = upmAdxl335.new_floatPointer()
|
||||
aZ = upmAdxl335.new_floatPointer()
|
||||
myAnalogAccel.acceleration(aX, aY, aZ)
|
||||
outputStr = ("Acceleration: X: {0}g\n"
|
||||
"Acceleration: Y: {1}g\n"
|
||||
"Acceleration: Z: {2}g").format(upmAdxl335.floatPointer_value(aX),
|
||||
upmAdxl335.floatPointer_value(aY),
|
||||
upmAdxl335.floatPointer_value(aZ))
|
||||
print outputStr
|
||||
|
||||
while (1):
|
||||
myAnalogAccel.values(x, y, z)
|
||||
outputStr = "Raw Values: X: {0} Y: {1} Z: {2}".format(
|
||||
upmAdxl335.intPointer_value(x), upmAdxl335.intPointer_value(y),
|
||||
upmAdxl335.intPointer_value(z))
|
||||
print outputStr
|
||||
print " "
|
||||
|
||||
myAnalogAccel.acceleration(aX, aY, aZ)
|
||||
outputStr = ("Acceleration: X: {0}g\n"
|
||||
"Acceleration: Y: {1}g\n"
|
||||
"Acceleration: Z: {2}g").format(upmAdxl335.floatPointer_value(aX),
|
||||
upmAdxl335.floatPointer_value(aY),
|
||||
upmAdxl335.floatPointer_value(aZ))
|
||||
print outputStr
|
||||
time.sleep(.2)
|
||||
|
||||
print " "
|
||||
|
||||
time.sleep(.2)
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
29
examples/python/adxl345.py
Normal file → Executable file
29
examples/python/adxl345.py
Normal file → Executable file
@ -23,19 +23,22 @@
|
||||
from time import sleep
|
||||
import pyupm_adxl345 as adxl345
|
||||
|
||||
# Create an I2C accelerometer object
|
||||
adxl = adxl345.Adxl345(0)
|
||||
def main():
|
||||
# Create an I2C accelerometer object
|
||||
adxl = adxl345.Adxl345(0)
|
||||
|
||||
# Loop indefinitely
|
||||
while True:
|
||||
# Loop indefinitely
|
||||
while True:
|
||||
adxl.update() # Update the data
|
||||
raw = adxl.getRawValues() # Read raw sensor data
|
||||
force = adxl.getAcceleration() # Read acceleration force (g)
|
||||
print "Raw: %6d %6d %6d" % (raw[0], raw[1], raw[2])
|
||||
print "ForceX: %5.2f g" % (force[0])
|
||||
print "ForceY: %5.2f g" % (force[1])
|
||||
print "ForceZ: %5.2f g\n" % (force[2])
|
||||
|
||||
adxl.update() # Update the data
|
||||
raw = adxl.getRawValues() # Read raw sensor data
|
||||
force = adxl.getAcceleration() # Read acceleration force (g)
|
||||
print "Raw: %6d %6d %6d" % (raw[0], raw[1], raw[2])
|
||||
print "ForceX: %5.2f g" % (force[0])
|
||||
print "ForceY: %5.2f g" % (force[1])
|
||||
print "ForceZ: %5.2f g\n" % (force[2])
|
||||
# Sleep for 1 s
|
||||
sleep(1)
|
||||
|
||||
# Sleep for 1 s
|
||||
sleep(1)
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
46
examples/python/adxrs610.py
Normal file → Executable file
46
examples/python/adxrs610.py
Normal file → Executable file
@ -24,32 +24,36 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_adxrs610 as sensorObj
|
||||
|
||||
# Instantiate a ADXRS610 sensor on analog pin A0 (dataout), and
|
||||
# analog A1 (temp out) with an analog reference voltage of
|
||||
# 5.0
|
||||
sensor = sensorObj.ADXRS610(0, 1, 5.0)
|
||||
def main():
|
||||
# Instantiate a ADXRS610 sensor on analog pin A0 (dataout), and
|
||||
# analog A1 (temp out) with an analog reference voltage of
|
||||
# 5.0
|
||||
sensor = sensorObj.ADXRS610(0, 1, 5.0)
|
||||
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
# This function lets you run code on exit
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
# This function lets you run code on exit
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
# set a deadband region around the zero point to report 0.0 (optional)
|
||||
sensor.setDeadband(0.015);
|
||||
# set a deadband region around the zero point to report 0.0 (optional)
|
||||
sensor.setDeadband(0.015);
|
||||
|
||||
# Every tenth of a second, sample the ADXRS610 and output it's
|
||||
# corresponding temperature and angular velocity
|
||||
# Every tenth of a second, sample the ADXRS610 and output it's
|
||||
# corresponding temperature and angular velocity
|
||||
|
||||
while (1):
|
||||
while (1):
|
||||
print "Vel (deg/s):", sensor.getAngularVelocity()
|
||||
print "Temp (C):", sensor.getTemperature()
|
||||
time.sleep(.1)
|
||||
time.sleep(.1)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
81
examples/python/aeotecdsb09104.py
Normal file → Executable file
81
examples/python/aeotecdsb09104.py
Normal file → Executable file
@ -24,65 +24,50 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_ozw as sensorObj
|
||||
|
||||
# This function lets you run code on exit
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
def main():
|
||||
# This function lets you run code on exit
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
|
||||
defaultDev = "/dev/ttyACM0"
|
||||
if (len(sys.argv) > 1):
|
||||
defaultDev = "/dev/ttyACM0"
|
||||
if (len(sys.argv) > 1):
|
||||
defaultDev = sys.argv[1]
|
||||
print "Using device", defaultDev
|
||||
print "Using device", defaultDev
|
||||
|
||||
# Instantiate an Aeotec DSB09104 instance, on device node 12. You
|
||||
# will almost certainly need to change this to reflect your own
|
||||
# network. Use the ozwdump example to see what nodes are available.
|
||||
sensor = sensorObj.AeotecDSB09104(12)
|
||||
# Instantiate an Aeotec DSB09104 instance, on device node 12. You
|
||||
# will almost certainly need to change this to reflect your own
|
||||
# network. Use the ozwdump example to see what nodes are available.
|
||||
sensor = sensorObj.AeotecDSB09104(12)
|
||||
|
||||
# The first thing to do is create options, then lock them when done.
|
||||
sensor.optionsCreate()
|
||||
sensor.optionsLock()
|
||||
# The first thing to do is create options, then lock them when done.
|
||||
sensor.optionsCreate()
|
||||
sensor.optionsLock()
|
||||
|
||||
# Next, initialize it.
|
||||
print "Initializing, this may take awhile depending on your ZWave network"
|
||||
# Next, initialize it.
|
||||
print "Initializing, this may take awhile depending on your ZWave network"
|
||||
|
||||
sensor.init(defaultDev)
|
||||
print "Initialization complete"
|
||||
sensor.init(defaultDev)
|
||||
print "Initialization complete"
|
||||
|
||||
print "Querying data..."
|
||||
print "Querying data..."
|
||||
|
||||
while (True):
|
||||
while (True):
|
||||
sensor.update()
|
||||
|
||||
print "Watts, Channel 1:",
|
||||
print sensor.getWattsC1(),
|
||||
print "W"
|
||||
print "Watts, Channel 1: %0.03f W" % sensor.getWattsC1()
|
||||
print "Watts, Channel 2: %0.03f W" % sensor.getWattsC2()
|
||||
print "Watts, Channel 3: %0.03f W" % sensor.getWattsC3()
|
||||
|
||||
print "Watts, Channel 2:",
|
||||
print sensor.getWattsC2(),
|
||||
print "W"
|
||||
print "Energy, Channel 1: %0.03f kWh" % sensor.getEnergyC1()
|
||||
print "Energy, Channel 2: %0.03f kWh" % sensor.getEnergyC2()
|
||||
print "Energy, Channel 3: %0.03f kWh" % sensor.getEnergyC3()
|
||||
|
||||
print "Watts, Channel 3:",
|
||||
print sensor.getWattsC3(),
|
||||
print "W"
|
||||
|
||||
print "Energy, Channel 1:",
|
||||
print sensor.getEnergyC1(),
|
||||
print "kWh"
|
||||
|
||||
print "Energy, Channel 2:",
|
||||
print sensor.getEnergyC2(),
|
||||
print "kWh"
|
||||
|
||||
print "Energy, Channel 3:",
|
||||
print sensor.getEnergyC3(),
|
||||
print "kWh"
|
||||
|
||||
print "Battery Level:",
|
||||
print sensor.getBatteryLevel(),
|
||||
print "%"
|
||||
print
|
||||
print "Battery Level: %d\n" % sensor.getBatteryLevel()
|
||||
time.sleep(3)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
76
examples/python/aeotecdw2e.py
Normal file → Executable file
76
examples/python/aeotecdw2e.py
Normal file → Executable file
@ -24,57 +24,59 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_ozw as sensorObj
|
||||
|
||||
# This function lets you run code on exit
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
def main():
|
||||
# This function lets you run code on exit
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
|
||||
defaultDev = "/dev/ttyACM0"
|
||||
if (len(sys.argv) > 1):
|
||||
defaultDev = "/dev/ttyACM0"
|
||||
if (len(sys.argv) > 1):
|
||||
defaultDev = sys.argv[1]
|
||||
print "Using device", defaultDev
|
||||
print "Using device", defaultDev
|
||||
|
||||
# Instantiate an Aeotec Door/Window 2nd Edition sensor instance, on
|
||||
# device node 10. You will almost certainly need to change this to
|
||||
# reflect your own network. Use the ozwdump example to see what nodes
|
||||
# are available.
|
||||
sensor = sensorObj.AeotecDW2E(10)
|
||||
# Instantiate an Aeotec Door/Window 2nd Edition sensor instance, on
|
||||
# device node 10. You will almost certainly need to change this to
|
||||
# reflect your own network. Use the ozwdump example to see what nodes
|
||||
# are available.
|
||||
sensor = sensorObj.AeotecDW2E(10)
|
||||
|
||||
# The first thing to do is create options, then lock them when done.
|
||||
sensor.optionsCreate()
|
||||
sensor.optionsLock()
|
||||
# The first thing to do is create options, then lock them when done.
|
||||
sensor.optionsCreate()
|
||||
sensor.optionsLock()
|
||||
|
||||
# Next, initialize it.
|
||||
print "Initializing, this may take awhile depending on your ZWave network"
|
||||
# Next, initialize it.
|
||||
print "Initializing, this may take awhile depending on your ZWave network"
|
||||
|
||||
sensor.init(defaultDev)
|
||||
print "Initialization complete"
|
||||
sensor.init(defaultDev)
|
||||
print "Initialization complete"
|
||||
|
||||
print "Querying data..."
|
||||
|
||||
while (True):
|
||||
print "Querying data..."
|
||||
|
||||
while (True):
|
||||
if (sensor.isDeviceAvailable()):
|
||||
print "Alarm status:",
|
||||
print sensor.isAlarmTripped()
|
||||
print "Alarm status:",
|
||||
print sensor.isAlarmTripped()
|
||||
|
||||
print "Tamper Switch status:",
|
||||
print sensor.isTamperTripped()
|
||||
print "Tamper Switch status:",
|
||||
print sensor.isTamperTripped()
|
||||
|
||||
print "Battery Level:",
|
||||
print sensor.getBatteryLevel(),
|
||||
print "%"
|
||||
print "Battery Level:",
|
||||
print sensor.getBatteryLevel(),
|
||||
print "%"
|
||||
|
||||
print
|
||||
print
|
||||
else:
|
||||
print "Device has not yet responded to probe."
|
||||
print "Try waking it, or wait until it wakes itself if ",
|
||||
print "configured to do so."
|
||||
|
||||
print
|
||||
print "Device has not yet responded to probe."
|
||||
print "Try waking it, or wait until it wakes itself if ",
|
||||
print "configured to do so."
|
||||
|
||||
print
|
||||
|
||||
time.sleep(1)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
64
examples/python/aeotecsdg2.py
Normal file → Executable file
64
examples/python/aeotecsdg2.py
Normal file → Executable file
@ -24,51 +24,52 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_ozw as sensorObj
|
||||
|
||||
# This function lets you run code on exit
|
||||
def exitHandler():
|
||||
def main():
|
||||
# This function lets you run code on exit
|
||||
def exitHandler():
|
||||
print "Turning switch off and sleeping for 5 seconds..."
|
||||
sensor.off()
|
||||
time.sleep(5)
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
|
||||
defaultDev = "/dev/ttyACM0"
|
||||
if (len(sys.argv) > 1):
|
||||
defaultDev = "/dev/ttyACM0"
|
||||
if (len(sys.argv) > 1):
|
||||
defaultDev = sys.argv[1]
|
||||
print "Using device", defaultDev
|
||||
print "Using device", defaultDev
|
||||
|
||||
# Instantiate an Aeotec Smart Dimmer Gen2 instance, on device node
|
||||
# 9. You will almost certainly need to change this to reflect your
|
||||
# own network. Use the ozwdump example to see what nodes are
|
||||
# available.
|
||||
sensor = sensorObj.AeotecSDG2(9)
|
||||
# Instantiate an Aeotec Smart Dimmer Gen2 instance, on device node
|
||||
# 9. You will almost certainly need to change this to reflect your
|
||||
# own network. Use the ozwdump example to see what nodes are
|
||||
# available.
|
||||
sensor = sensorObj.AeotecSDG2(9)
|
||||
|
||||
# The first thing to do is create options, then lock them when done.
|
||||
sensor.optionsCreate()
|
||||
sensor.optionsLock()
|
||||
# The first thing to do is create options, then lock them when done.
|
||||
sensor.optionsCreate()
|
||||
sensor.optionsLock()
|
||||
|
||||
# Next, initialize it.
|
||||
print "Initializing, this may take awhile depending on your ZWave network"
|
||||
# Next, initialize it.
|
||||
print "Initializing, this may take awhile depending on your ZWave network"
|
||||
|
||||
sensor.init(defaultDev)
|
||||
print "Initialization complete"
|
||||
sensor.init(defaultDev)
|
||||
print "Initialization complete"
|
||||
|
||||
# turn light on
|
||||
print "Turning switch on, then sleeping for 5 secs"
|
||||
sensor.on();
|
||||
time.sleep(5);
|
||||
# turn light on
|
||||
print "Turning switch on, then sleeping for 5 secs"
|
||||
sensor.on();
|
||||
time.sleep(5);
|
||||
|
||||
print "Querying data..."
|
||||
dim = False;
|
||||
while (True):
|
||||
print "Querying data..."
|
||||
dim = False;
|
||||
while (True):
|
||||
# put on a light show...
|
||||
if (dim):
|
||||
sensor.setLevel(25)
|
||||
sensor.setLevel(25)
|
||||
else:
|
||||
sensor.on()
|
||||
sensor.on()
|
||||
|
||||
dim = not dim;
|
||||
|
||||
@ -94,3 +95,6 @@ while (True):
|
||||
|
||||
print
|
||||
time.sleep(5)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
56
examples/python/aeotecss6.py
Normal file → Executable file
56
examples/python/aeotecss6.py
Normal file → Executable file
@ -24,45 +24,46 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_ozw as sensorObj
|
||||
|
||||
# This function lets you run code on exit
|
||||
def exitHandler():
|
||||
def main():
|
||||
# This function lets you run code on exit
|
||||
def exitHandler():
|
||||
print "Turning switch off and sleeping for 5 seconds..."
|
||||
sensor.off()
|
||||
time.sleep(5)
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
|
||||
defaultDev = "/dev/ttyACM0"
|
||||
if (len(sys.argv) > 1):
|
||||
defaultDev = "/dev/ttyACM0"
|
||||
if (len(sys.argv) > 1):
|
||||
defaultDev = sys.argv[1]
|
||||
print "Using device", defaultDev
|
||||
print "Using device", defaultDev
|
||||
|
||||
# Instantiate an Aeotec Smart Switch 6 instance, on device node 11.
|
||||
# You will almost certainly need to change this to reflect your own
|
||||
# network. Use the ozwdump example to see what nodes are available.
|
||||
sensor = sensorObj.AeotecSS6(11)
|
||||
# Instantiate an Aeotec Smart Switch 6 instance, on device node 11.
|
||||
# You will almost certainly need to change this to reflect your own
|
||||
# network. Use the ozwdump example to see what nodes are available.
|
||||
sensor = sensorObj.AeotecSS6(11)
|
||||
|
||||
# The first thing to do is create options, then lock them when done.
|
||||
sensor.optionsCreate()
|
||||
sensor.optionsLock()
|
||||
# The first thing to do is create options, then lock them when done.
|
||||
sensor.optionsCreate()
|
||||
sensor.optionsLock()
|
||||
|
||||
# Next, initialize it.
|
||||
print "Initializing, this may take awhile depending on your ZWave network"
|
||||
# Next, initialize it.
|
||||
print "Initializing, this may take awhile depending on your ZWave network"
|
||||
|
||||
sensor.init(defaultDev)
|
||||
print "Initialization complete"
|
||||
sensor.init(defaultDev)
|
||||
print "Initialization complete"
|
||||
|
||||
# turn light on
|
||||
print "Turning switch on, then sleeping for 5 secs"
|
||||
sensor.on();
|
||||
time.sleep(5);
|
||||
# turn light on
|
||||
print "Turning switch on, then sleeping for 5 secs"
|
||||
sensor.on();
|
||||
time.sleep(5);
|
||||
|
||||
print "Querying data..."
|
||||
print "Querying data..."
|
||||
|
||||
while (True):
|
||||
while (True):
|
||||
sensor.update()
|
||||
|
||||
print "Switch status:",
|
||||
@ -85,3 +86,6 @@ while (True):
|
||||
|
||||
print
|
||||
time.sleep(3)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
44
examples/python/ak8975.py
Normal file → Executable file
44
examples/python/ak8975.py
Normal file → Executable file
@ -24,36 +24,40 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_mpu9150 as sensorObj
|
||||
|
||||
# Instantiate an AK8975 on I2C bus 0
|
||||
sensor = sensorObj.AK8975()
|
||||
def main():
|
||||
# Instantiate an AK8975 on I2C bus 0
|
||||
sensor = sensorObj.AK8975()
|
||||
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
# This function lets you run code on exit
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
# This function lets you run code on exit
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
sensor.init()
|
||||
sensor.init()
|
||||
|
||||
x = sensorObj.new_floatp()
|
||||
y = sensorObj.new_floatp()
|
||||
z = sensorObj.new_floatp()
|
||||
x = sensorObj.new_floatp()
|
||||
y = sensorObj.new_floatp()
|
||||
z = sensorObj.new_floatp()
|
||||
|
||||
while (1):
|
||||
while (1):
|
||||
sensor.update()
|
||||
sensor.getMagnetometer(x, y, z)
|
||||
print "Magnetometer: MX: ", sensorObj.floatp_value(x),
|
||||
print "Magnetometer: MX: ", sensorObj.floatp_value(x),
|
||||
print " MY: ", sensorObj.floatp_value(y),
|
||||
print " MZ: ", sensorObj.floatp_value(z)
|
||||
|
||||
print
|
||||
|
||||
time.sleep(.5)
|
||||
time.sleep(.5)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
33
examples/python/apa102.py
Normal file → Executable file
33
examples/python/apa102.py
Normal file → Executable file
@ -21,28 +21,29 @@
|
||||
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_apa102 as mylib
|
||||
|
||||
# Instantiate a strip of 30 LEDs on SPI bus 0
|
||||
ledStrip = mylib.APA102(30, 0, False)
|
||||
def main():
|
||||
# Instantiate a strip of 30 LEDs on SPI bus 0
|
||||
ledStrip = mylib.APA102(30, 0, False)
|
||||
|
||||
## Exit handlers ##
|
||||
# This stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
## Exit handlers ##
|
||||
# This stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
# Register exit handlers
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
# Register exit handlers
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
print "Setting all LEDs to Green"
|
||||
ledStrip.setAllLeds(31, 0, 255, 0)
|
||||
print "Setting all LEDs to Green"
|
||||
ledStrip.setAllLeds(31, 0, 255, 0)
|
||||
|
||||
print "Setting LEDs between 10 and 20 to Red"
|
||||
ledStrip.setLeds(10, 20, 31, 255, 0, 0)
|
||||
|
||||
print "Setting LED 15 to Blue"
|
||||
ledStrip.setLed(15, 31, 0, 0, 255)
|
||||
print "Setting LEDs between 10 and 20 to Red"
|
||||
ledStrip.setLeds(10, 20, 31, 255, 0, 0)
|
||||
|
||||
print "Setting LED 15 to Blue"
|
||||
ledStrip.setLed(15, 31, 0, 0, 255)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
38
examples/python/apds9002.py
Normal file → Executable file
38
examples/python/apds9002.py
Normal file → Executable file
@ -24,27 +24,29 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_apds9002 as upmApds9002
|
||||
|
||||
# Instantiate a Grove Luminance sensor on analog pin A0
|
||||
myLuminance = upmApds9002.APDS9002(0)
|
||||
def main():
|
||||
# Instantiate a Grove Luminance sensor on analog pin A0
|
||||
myLuminance = upmApds9002.APDS9002(0)
|
||||
|
||||
## Exit handlers ##
|
||||
# This stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
## Exit handlers ##
|
||||
# This stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
# This lets you run code on exit, including functions from myLuminance
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# This lets you run code on exit, including functions from myLuminance
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
while(1):
|
||||
print "Luminance value is {0}".format(
|
||||
myLuminance.value())
|
||||
|
||||
time.sleep(1)
|
||||
|
||||
while(1):
|
||||
print "Luminance value is {0}".format(
|
||||
myLuminance.value())
|
||||
|
||||
time.sleep(1)
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
80
examples/python/at42qt1070.py
Normal file → Executable file
80
examples/python/at42qt1070.py
Normal file → Executable file
@ -24,56 +24,56 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_at42qt1070 as upmAt42qt1070
|
||||
|
||||
# functions
|
||||
def printButtons(touchObj):
|
||||
buttonPressed = False
|
||||
buttons = touchObj.getButtons()
|
||||
def main():
|
||||
# functions
|
||||
def printButtons(touchObj):
|
||||
buttonPressed = False
|
||||
buttons = touchObj.getButtons()
|
||||
|
||||
sys.stdout.write("Buttons Pressed: ")
|
||||
for i in range(7):
|
||||
if (buttons & (1 << i)):
|
||||
sys.stdout.write(str(i) + " ")
|
||||
buttonPressed = True
|
||||
sys.stdout.write("Buttons Pressed: ")
|
||||
for i in range(7):
|
||||
if (buttons & (1 << i)):
|
||||
sys.stdout.write(str(i) + " ")
|
||||
buttonPressed = True
|
||||
|
||||
if (not buttonPressed):
|
||||
sys.stdout.write("None")
|
||||
if (not buttonPressed):
|
||||
sys.stdout.write("None")
|
||||
|
||||
print " "
|
||||
print " "
|
||||
|
||||
if (touchObj.isCalibrating()):
|
||||
print "Calibration is occurring."
|
||||
if (touchObj.isCalibrating()):
|
||||
print "Calibration is occurring."
|
||||
|
||||
if (touchObj.isOverflowed()):
|
||||
print "Overflow was detected."
|
||||
if (touchObj.isOverflowed()):
|
||||
print "Overflow was detected."
|
||||
|
||||
# Global code that runs on startup
|
||||
|
||||
# Global code that runs on startup
|
||||
I2C_BUS = upmAt42qt1070.AT42QT1070_I2C_BUS
|
||||
DEFAULT_I2C_ADDR = upmAt42qt1070.AT42QT1070_DEFAULT_I2C_ADDR
|
||||
|
||||
I2C_BUS = upmAt42qt1070.AT42QT1070_I2C_BUS
|
||||
DEFAULT_I2C_ADDR = upmAt42qt1070.AT42QT1070_DEFAULT_I2C_ADDR
|
||||
# Instantiate an AT42QT1070 on I2C bus 0
|
||||
myTouchSensor = upmAt42qt1070.AT42QT1070(I2C_BUS,
|
||||
DEFAULT_I2C_ADDR)
|
||||
|
||||
# Instantiate an AT42QT1070 on I2C bus 0
|
||||
myTouchSensor = upmAt42qt1070.AT42QT1070(I2C_BUS,
|
||||
DEFAULT_I2C_ADDR)
|
||||
# Exit handlers
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# Exit handlers
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
# This function lets you run code on exit, including functions from myTouchSensor
|
||||
atexit.register(exitHandler)
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
# Print the button being touched every 0.1 seconds
|
||||
while(1):
|
||||
myTouchSensor.updateState()
|
||||
printButtons(myTouchSensor)
|
||||
time.sleep(.1)
|
||||
|
||||
|
||||
# This function lets you run code on exit, including functions from myTouchSensor
|
||||
atexit.register(exitHandler)
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
|
||||
# Print the button being touched every 0.1 seconds
|
||||
while(1):
|
||||
myTouchSensor.updateState()
|
||||
printButtons(myTouchSensor)
|
||||
time.sleep(.1)
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
40
examples/python/bh1750.py
Normal file → Executable file
40
examples/python/bh1750.py
Normal file → Executable file
@ -24,27 +24,31 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_bh1750 as sensorObj
|
||||
|
||||
# Instantiate a BH1750 sensor using defaults (I2C bus (0), using
|
||||
# the default I2C address (0x23), and setting the mode to highest
|
||||
# resolution, lowest power mode).
|
||||
sensor = sensorObj.BH1750()
|
||||
def main():
|
||||
# Instantiate a BH1750 sensor using defaults (I2C bus (0), using
|
||||
# the default I2C address (0x23), and setting the mode to highest
|
||||
# resolution, lowest power mode).
|
||||
sensor = sensorObj.BH1750()
|
||||
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
# This function lets you run code on exit
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
# This function lets you run code on exit
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
# Every second, sample the BH1750 and output the measured lux value
|
||||
# Every second, sample the BH1750 and output the measured lux value
|
||||
|
||||
while (True):
|
||||
while (True):
|
||||
print "Detected Light Level (lux):", sensor.getLux()
|
||||
time.sleep(1)
|
||||
time.sleep(1)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
44
examples/python/biss0001.py
Normal file → Executable file
44
examples/python/biss0001.py
Normal file → Executable file
@ -24,29 +24,31 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_biss0001 as upmMotion
|
||||
|
||||
# Instantiate a Grove Motion sensor on GPIO pin D2
|
||||
myMotion = upmMotion.BISS0001(2)
|
||||
def main():
|
||||
# Instantiate a Grove Motion sensor on GPIO pin D2
|
||||
myMotion = upmMotion.BISS0001(2)
|
||||
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
# This function lets you run code on exit, including functions from myMotion
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# This function lets you run code on exit, including functions from myMotion
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
# Read the value every second and detect motion
|
||||
while(1):
|
||||
if (myMotion.value()):
|
||||
print "Detecting moving object"
|
||||
else:
|
||||
print "No moving objects detected"
|
||||
time.sleep(1)
|
||||
|
||||
|
||||
# Read the value every second and detect motion
|
||||
while(1):
|
||||
if (myMotion.value()):
|
||||
print "Detecting moving object"
|
||||
else:
|
||||
print "No moving objects detected"
|
||||
time.sleep(1)
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
42
examples/python/bma220.py
Normal file → Executable file
42
examples/python/bma220.py
Normal file → Executable file
@ -24,32 +24,36 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_bma220 as sensorObj
|
||||
|
||||
# Instantiate an BMA220 using default parameters (bus 0, addr 0x0a)
|
||||
sensor = sensorObj.BMA220()
|
||||
def main():
|
||||
# Instantiate an BMA220 using default parameters (bus 0, addr 0x0a)
|
||||
sensor = sensorObj.BMA220()
|
||||
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
# This function lets you run code on exit
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
# This function lets you run code on exit
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
x = sensorObj.new_floatp()
|
||||
y = sensorObj.new_floatp()
|
||||
z = sensorObj.new_floatp()
|
||||
x = sensorObj.new_floatp()
|
||||
y = sensorObj.new_floatp()
|
||||
z = sensorObj.new_floatp()
|
||||
|
||||
while (1):
|
||||
while (1):
|
||||
sensor.update()
|
||||
sensor.getAccelerometer(x, y, z)
|
||||
print "Accelerometer: AX:", sensorObj.floatp_value(x),
|
||||
print "Accelerometer: AX:", sensorObj.floatp_value(x),
|
||||
print " AY:", sensorObj.floatp_value(y),
|
||||
print " AZ:", sensorObj.floatp_value(z)
|
||||
|
||||
time.sleep(.5)
|
||||
time.sleep(.5)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
46
examples/python/bma250e.py
Normal file → Executable file
46
examples/python/bma250e.py
Normal file → Executable file
@ -24,32 +24,33 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_bmx055 as sensorObj
|
||||
|
||||
# Instantiate a BMP250E instance using default i2c bus and address
|
||||
sensor = sensorObj.BMA250E()
|
||||
def main():
|
||||
# Instantiate a BMP250E instance using default i2c bus and address
|
||||
sensor = sensorObj.BMA250E()
|
||||
|
||||
# For SPI, bus 0, you would pass -1 as the address, and a valid pin for CS:
|
||||
# BMA250E(0, -1, 10);
|
||||
# For SPI, bus 0, you would pass -1 as the address, and a valid pin for CS:
|
||||
# BMA250E(0, -1, 10);
|
||||
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
# This function lets you run code on exit
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
# This function lets you run code on exit
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
x = sensorObj.new_floatp()
|
||||
y = sensorObj.new_floatp()
|
||||
z = sensorObj.new_floatp()
|
||||
x = sensorObj.new_floatp()
|
||||
y = sensorObj.new_floatp()
|
||||
z = sensorObj.new_floatp()
|
||||
|
||||
# now output data every 250 milliseconds
|
||||
while (1):
|
||||
# now output data every 250 milliseconds
|
||||
while (1):
|
||||
sensor.update()
|
||||
|
||||
sensor.getAccelerometer(x, y, z)
|
||||
@ -63,4 +64,7 @@ while (1):
|
||||
print sensor.getTemperature(True), "F"
|
||||
|
||||
print
|
||||
time.sleep(.250)
|
||||
time.sleep(.250)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
42
examples/python/bmc150.py
Normal file → Executable file
42
examples/python/bmc150.py
Normal file → Executable file
@ -24,29 +24,30 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_bmx055 as sensorObj
|
||||
|
||||
# Instantiate a BMC150 instance using default i2c bus and address
|
||||
sensor = sensorObj.BMC150()
|
||||
def main():
|
||||
# Instantiate a BMC150 instance using default i2c bus and address
|
||||
sensor = sensorObj.BMC150()
|
||||
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
# This function lets you run code on exit
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
# This function lets you run code on exit
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
x = sensorObj.new_floatp()
|
||||
y = sensorObj.new_floatp()
|
||||
z = sensorObj.new_floatp()
|
||||
x = sensorObj.new_floatp()
|
||||
y = sensorObj.new_floatp()
|
||||
z = sensorObj.new_floatp()
|
||||
|
||||
# now output data every 250 milliseconds
|
||||
while (1):
|
||||
# now output data every 250 milliseconds
|
||||
while (1):
|
||||
sensor.update()
|
||||
|
||||
sensor.getAccelerometer(x, y, z)
|
||||
@ -62,4 +63,7 @@ while (1):
|
||||
print " uT"
|
||||
|
||||
print
|
||||
time.sleep(.250)
|
||||
time.sleep(.250)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
38
examples/python/bme280.py
Normal file → Executable file
38
examples/python/bme280.py
Normal file → Executable file
@ -24,27 +24,28 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_bmp280 as sensorObj
|
||||
|
||||
# Instantiate a BME280 instance using default i2c bus and address
|
||||
sensor = sensorObj.BME280()
|
||||
def main():
|
||||
# Instantiate a BME280 instance using default i2c bus and address
|
||||
sensor = sensorObj.BME280()
|
||||
|
||||
# For SPI, bus 0, you would pass -1 as the address, and a valid pin for CS:
|
||||
# BME280(0, -1, 10);
|
||||
# For SPI, bus 0, you would pass -1 as the address, and a valid pin for CS:
|
||||
# BME280(0, -1, 10);
|
||||
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
# This function lets you run code on exit
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
# This function lets you run code on exit
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
while (1):
|
||||
while (1):
|
||||
sensor.update()
|
||||
|
||||
print "Compensation Temperature:", sensor.getTemperature(), "C /",
|
||||
@ -57,4 +58,7 @@ while (1):
|
||||
print "Humidity:", sensor.getHumidity(), "%RH"
|
||||
|
||||
print
|
||||
time.sleep(1)
|
||||
time.sleep(1)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
46
examples/python/bmg160.py
Normal file → Executable file
46
examples/python/bmg160.py
Normal file → Executable file
@ -24,32 +24,33 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_bmx055 as sensorObj
|
||||
|
||||
# Instantiate a BMP250E instance using default i2c bus and address
|
||||
sensor = sensorObj.BMG160()
|
||||
def main():
|
||||
# Instantiate a BMP250E instance using default i2c bus and address
|
||||
sensor = sensorObj.BMG160()
|
||||
|
||||
# For SPI, bus 0, you would pass -1 as the address, and a valid pin for CS:
|
||||
# BMG160(0, -1, 10);
|
||||
# For SPI, bus 0, you would pass -1 as the address, and a valid pin for CS:
|
||||
# BMG160(0, -1, 10);
|
||||
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
# This function lets you run code on exit
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
# This function lets you run code on exit
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
x = sensorObj.new_floatp()
|
||||
y = sensorObj.new_floatp()
|
||||
z = sensorObj.new_floatp()
|
||||
x = sensorObj.new_floatp()
|
||||
y = sensorObj.new_floatp()
|
||||
z = sensorObj.new_floatp()
|
||||
|
||||
# now output data every 250 milliseconds
|
||||
while (1):
|
||||
# now output data every 250 milliseconds
|
||||
while (1):
|
||||
sensor.update()
|
||||
|
||||
sensor.getGyroscope(x, y, z)
|
||||
@ -63,4 +64,7 @@ while (1):
|
||||
print sensor.getTemperature(True), "F"
|
||||
|
||||
print
|
||||
time.sleep(.250)
|
||||
time.sleep(.250)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
42
examples/python/bmi055.py
Normal file → Executable file
42
examples/python/bmi055.py
Normal file → Executable file
@ -24,29 +24,30 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_bmx055 as sensorObj
|
||||
|
||||
# Instantiate a BMI055 instance using default i2c bus and address
|
||||
sensor = sensorObj.BMI055()
|
||||
def main():
|
||||
# Instantiate a BMI055 instance using default i2c bus and address
|
||||
sensor = sensorObj.BMI055()
|
||||
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
# This function lets you run code on exit
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
# This function lets you run code on exit
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
x = sensorObj.new_floatp()
|
||||
y = sensorObj.new_floatp()
|
||||
z = sensorObj.new_floatp()
|
||||
x = sensorObj.new_floatp()
|
||||
y = sensorObj.new_floatp()
|
||||
z = sensorObj.new_floatp()
|
||||
|
||||
# now output data every 250 milliseconds
|
||||
while (1):
|
||||
# now output data every 250 milliseconds
|
||||
while (1):
|
||||
sensor.update()
|
||||
|
||||
sensor.getAccelerometer(x, y, z)
|
||||
@ -62,4 +63,7 @@ while (1):
|
||||
print " degrees/s"
|
||||
|
||||
print
|
||||
time.sleep(.250)
|
||||
time.sleep(.250)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
40
examples/python/bmi160.py
Normal file → Executable file
40
examples/python/bmi160.py
Normal file → Executable file
@ -24,28 +24,29 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_bmi160 as sensorObj
|
||||
|
||||
# Instantiate a BMI160 instance using default i2c bus and address
|
||||
sensor = sensorObj.BMI160()
|
||||
def main():
|
||||
# Instantiate a BMI160 instance using default i2c bus and address
|
||||
sensor = sensorObj.BMI160()
|
||||
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
# This function lets you run code on exit
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
# This function lets you run code on exit
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
x = sensorObj.new_floatp()
|
||||
y = sensorObj.new_floatp()
|
||||
z = sensorObj.new_floatp()
|
||||
x = sensorObj.new_floatp()
|
||||
y = sensorObj.new_floatp()
|
||||
z = sensorObj.new_floatp()
|
||||
|
||||
while (1):
|
||||
while (1):
|
||||
sensor.update()
|
||||
sensor.getAccelerometer(x, y, z)
|
||||
print "Accelerometer: AX: ", sensorObj.floatp_value(x),
|
||||
@ -63,4 +64,7 @@ while (1):
|
||||
print " MZ: ", sensorObj.floatp_value(z)
|
||||
|
||||
print
|
||||
time.sleep(.5)
|
||||
time.sleep(.5)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
46
examples/python/bmm150.py
Normal file → Executable file
46
examples/python/bmm150.py
Normal file → Executable file
@ -24,32 +24,33 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_bmx055 as sensorObj
|
||||
|
||||
# Instantiate a BMP250E instance using default i2c bus and address
|
||||
sensor = sensorObj.BMM150()
|
||||
def main():
|
||||
# Instantiate a BMP250E instance using default i2c bus and address
|
||||
sensor = sensorObj.BMM150()
|
||||
|
||||
# For SPI, bus 0, you would pass -1 as the address, and a valid pin for CS:
|
||||
# BMM150(0, -1, 10);
|
||||
# For SPI, bus 0, you would pass -1 as the address, and a valid pin for CS:
|
||||
# BMM150(0, -1, 10);
|
||||
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
# This function lets you run code on exit
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
# This function lets you run code on exit
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
x = sensorObj.new_floatp()
|
||||
y = sensorObj.new_floatp()
|
||||
z = sensorObj.new_floatp()
|
||||
x = sensorObj.new_floatp()
|
||||
y = sensorObj.new_floatp()
|
||||
z = sensorObj.new_floatp()
|
||||
|
||||
# now output data every 250 milliseconds
|
||||
while (1):
|
||||
# now output data every 250 milliseconds
|
||||
while (1):
|
||||
sensor.update()
|
||||
|
||||
sensor.getMagnetometer(x, y, z)
|
||||
@ -59,4 +60,7 @@ while (1):
|
||||
print " uT"
|
||||
|
||||
print
|
||||
time.sleep(.250)
|
||||
time.sleep(.250)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
38
examples/python/bmp280.py
Normal file → Executable file
38
examples/python/bmp280.py
Normal file → Executable file
@ -24,27 +24,28 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_bmp280 as sensorObj
|
||||
|
||||
# Instantiate a BMP280 instance using default i2c bus and address
|
||||
sensor = sensorObj.BMP280()
|
||||
def main():
|
||||
# Instantiate a BMP280 instance using default i2c bus and address
|
||||
sensor = sensorObj.BMP280()
|
||||
|
||||
# For SPI, bus 0, you would pass -1 as the address, and a valid pin for CS:
|
||||
# BMP280(0, -1, 10);
|
||||
# For SPI, bus 0, you would pass -1 as the address, and a valid pin for CS:
|
||||
# BMP280(0, -1, 10);
|
||||
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
# This function lets you run code on exit
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
# This function lets you run code on exit
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
while (1):
|
||||
while (1):
|
||||
sensor.update()
|
||||
|
||||
print "Compensation Temperature:", sensor.getTemperature(), "C /",
|
||||
@ -55,4 +56,7 @@ while (1):
|
||||
print "Computed Altitude:", sensor.getAltitude(), "m"
|
||||
|
||||
print
|
||||
time.sleep(1)
|
||||
time.sleep(1)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
56
examples/python/bmpx8x.py
Normal file → Executable file
56
examples/python/bmpx8x.py
Normal file → Executable file
@ -24,36 +24,38 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_bmpx8x as upmBmpx8x
|
||||
|
||||
# Load Barometer module on i2c
|
||||
myBarometer = upmBmpx8x.BMPX8X(0, upmBmpx8x.ADDR);
|
||||
def main():
|
||||
# Load Barometer module on i2c
|
||||
myBarometer = upmBmpx8x.BMPX8X(0, upmBmpx8x.ADDR);
|
||||
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
# This function lets you run code on exit, including functions from myBarometer
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# This function lets you run code on exit, including functions from myBarometer
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
# Print the pressure, altitude, sea level, and
|
||||
# temperature values every 0.1 seconds
|
||||
while(1):
|
||||
outputStr = ("pressure value = {0}"
|
||||
", altitude value = {1}"
|
||||
", sealevel value = {2}"
|
||||
", temperature = {3}".format(
|
||||
myBarometer.getPressure(),
|
||||
myBarometer.getTemperature(),
|
||||
myBarometer.getAltitude(),
|
||||
myBarometer.getSealevelPressure()))
|
||||
|
||||
print outputStr
|
||||
time.sleep(.1)
|
||||
|
||||
# Print the pressure, altitude, sea level, and
|
||||
# temperature values every 0.1 seconds
|
||||
while(1):
|
||||
outputStr = ("pressure value = {0}"
|
||||
", altitude value = {1}"
|
||||
", sealevel value = {2}"
|
||||
", temperature = {3}".format(
|
||||
myBarometer.getPressure(),
|
||||
myBarometer.getTemperature(),
|
||||
myBarometer.getAltitude(),
|
||||
myBarometer.getSealevelPressure()))
|
||||
|
||||
print outputStr
|
||||
time.sleep(.1)
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
42
examples/python/bmx055.py
Normal file → Executable file
42
examples/python/bmx055.py
Normal file → Executable file
@ -24,29 +24,30 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_bmx055 as sensorObj
|
||||
|
||||
# Instantiate a BMX055 instance using default i2c bus and address
|
||||
sensor = sensorObj.BMX055()
|
||||
def main():
|
||||
# Instantiate a BMX055 instance using default i2c bus and address
|
||||
sensor = sensorObj.BMX055()
|
||||
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
# This function lets you run code on exit
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
# This function lets you run code on exit
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
x = sensorObj.new_floatp()
|
||||
y = sensorObj.new_floatp()
|
||||
z = sensorObj.new_floatp()
|
||||
x = sensorObj.new_floatp()
|
||||
y = sensorObj.new_floatp()
|
||||
z = sensorObj.new_floatp()
|
||||
|
||||
# now output data every 250 milliseconds
|
||||
while (1):
|
||||
# now output data every 250 milliseconds
|
||||
while (1):
|
||||
sensor.update()
|
||||
|
||||
sensor.getAccelerometer(x, y, z)
|
||||
@ -68,4 +69,7 @@ while (1):
|
||||
print " uT"
|
||||
|
||||
print
|
||||
time.sleep(.250)
|
||||
time.sleep(.250)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
76
examples/python/bno055.py
Normal file → Executable file
76
examples/python/bno055.py
Normal file → Executable file
@ -24,57 +24,58 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_bno055 as sensorObj
|
||||
|
||||
# Instantiate an BNO055 using default parameters (bus 0, addr
|
||||
# 0x28). The default running mode is NDOF absolute orientation
|
||||
# mode.
|
||||
sensor = sensorObj.BNO055()
|
||||
def main():
|
||||
# Instantiate an BNO055 using default parameters (bus 0, addr
|
||||
# 0x28). The default running mode is NDOF absolute orientation
|
||||
# mode.
|
||||
sensor = sensorObj.BNO055()
|
||||
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
# This function lets you run code on exit
|
||||
def exitHandler():
|
||||
print "Exiting..."
|
||||
sys.exit(0)
|
||||
# This function lets you run code on exit
|
||||
def exitHandler():
|
||||
print "Exiting..."
|
||||
sys.exit(0)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
mag = sensorObj.new_intp()
|
||||
acc = sensorObj.new_intp()
|
||||
gyr = sensorObj.new_intp()
|
||||
syst = sensorObj.new_intp()
|
||||
mag = sensorObj.new_intp()
|
||||
acc = sensorObj.new_intp()
|
||||
gyr = sensorObj.new_intp()
|
||||
syst = sensorObj.new_intp()
|
||||
|
||||
w = sensorObj.new_floatp()
|
||||
x = sensorObj.new_floatp()
|
||||
y = sensorObj.new_floatp()
|
||||
z = sensorObj.new_floatp()
|
||||
w = sensorObj.new_floatp()
|
||||
x = sensorObj.new_floatp()
|
||||
y = sensorObj.new_floatp()
|
||||
z = sensorObj.new_floatp()
|
||||
|
||||
print "First we need to calibrate. 4 numbers will be output every"
|
||||
print "second for each sensor. 0 means uncalibrated, and 3 means"
|
||||
print "fully calibrated."
|
||||
print "See the UPM documentation on this sensor for instructions on"
|
||||
print "what actions are required to calibrate."
|
||||
print
|
||||
print "First we need to calibrate. 4 numbers will be output every"
|
||||
print "second for each sensor. 0 means uncalibrated, and 3 means"
|
||||
print "fully calibrated."
|
||||
print "See the UPM documentation on this sensor for instructions on"
|
||||
print "what actions are required to calibrate."
|
||||
print
|
||||
|
||||
while (not sensor.isFullyCalibrated()):
|
||||
while (not sensor.isFullyCalibrated()):
|
||||
sensor.getCalibrationStatus(mag, acc, gyr, syst)
|
||||
print "Magnetometer:", sensorObj.intp_value(mag),
|
||||
print " Accelerometer:", sensorObj.intp_value(acc),
|
||||
print " Gyroscope:", sensorObj.intp_value(gyr),
|
||||
print " System:", sensorObj.intp_value(syst),
|
||||
time.sleep(1)
|
||||
time.sleep(1)
|
||||
|
||||
print
|
||||
print "Calibration complete."
|
||||
print
|
||||
print
|
||||
print "Calibration complete."
|
||||
print
|
||||
|
||||
# now output various fusion data every 250 milliseconds
|
||||
# now output various fusion data every 250 milliseconds
|
||||
|
||||
while (True):
|
||||
while (True):
|
||||
sensor.update()
|
||||
|
||||
sensor.getEulerAngles(x, y, z)
|
||||
@ -103,3 +104,6 @@ while (True):
|
||||
|
||||
print
|
||||
time.sleep(.25);
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
20
examples/python/button.py
Normal file → Executable file
20
examples/python/button.py
Normal file → Executable file
@ -23,13 +23,17 @@
|
||||
import time
|
||||
import pyupm_grove as grove
|
||||
|
||||
# Create the button object using GPIO pin 0
|
||||
button = grove.Button(0)
|
||||
def main():
|
||||
# Create the button object using GPIO pin 0
|
||||
button = grove.Button(0)
|
||||
|
||||
# Read the input and print, waiting one second between readings
|
||||
while 1:
|
||||
print button.name(), ' value is ', button.value()
|
||||
time.sleep(1)
|
||||
# Read the input and print, waiting one second between readings
|
||||
while 1:
|
||||
print button.name(), ' value is ', button.value()
|
||||
time.sleep(1)
|
||||
|
||||
# Delete the button object
|
||||
del button
|
||||
# Delete the button object
|
||||
del button
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
34
examples/python/buzzer.py
Normal file → Executable file
34
examples/python/buzzer.py
Normal file → Executable file
@ -23,23 +23,27 @@
|
||||
import time
|
||||
import pyupm_buzzer as upmBuzzer
|
||||
|
||||
# Create the buzzer object using GPIO pin 5
|
||||
buzzer = upmBuzzer.Buzzer(5)
|
||||
def main():
|
||||
# Create the buzzer object using GPIO pin 5
|
||||
buzzer = upmBuzzer.Buzzer(5)
|
||||
|
||||
chords = [upmBuzzer.DO, upmBuzzer.RE, upmBuzzer.MI, upmBuzzer.FA,
|
||||
upmBuzzer.SOL, upmBuzzer.LA, upmBuzzer.SI, upmBuzzer.DO,
|
||||
upmBuzzer.SI];
|
||||
chords = [upmBuzzer.DO, upmBuzzer.RE, upmBuzzer.MI, upmBuzzer.FA,
|
||||
upmBuzzer.SOL, upmBuzzer.LA, upmBuzzer.SI, upmBuzzer.DO,
|
||||
upmBuzzer.SI];
|
||||
|
||||
# Print sensor name
|
||||
print buzzer.name()
|
||||
# Print sensor name
|
||||
print buzzer.name()
|
||||
|
||||
# Play sound (DO, RE, MI, etc.), pausing for 0.1 seconds between notes
|
||||
for chord_ind in range (0,7):
|
||||
# play each note for one second
|
||||
print buzzer.playSound(chords[chord_ind], 1000000)
|
||||
time.sleep(0.1)
|
||||
# Play sound (DO, RE, MI, etc.), pausing for 0.1 seconds between notes
|
||||
for chord_ind in range (0,7):
|
||||
# play each note for one second
|
||||
print buzzer.playSound(chords[chord_ind], 1000000)
|
||||
time.sleep(0.1)
|
||||
|
||||
print "exiting application"
|
||||
print "exiting application"
|
||||
|
||||
# Delete the buzzer object
|
||||
del buzzer
|
||||
# Delete the buzzer object
|
||||
del buzzer
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
33
examples/python/cjq4435.py
Normal file → Executable file
33
examples/python/cjq4435.py
Normal file → Executable file
@ -25,22 +25,25 @@ from __future__ import division
|
||||
import time
|
||||
import pyupm_cjq4435 as upmCjq4435
|
||||
|
||||
# Instantiate a CJQ4435 MOSFET on a PWM capable digital pin D3
|
||||
myMOSFETsensor = upmCjq4435.CJQ4435(3)
|
||||
def main():
|
||||
# Instantiate a CJQ4435 MOSFET on a PWM capable digital pin D3
|
||||
myMOSFETsensor = upmCjq4435.CJQ4435(3)
|
||||
|
||||
myMOSFETsensor.setPeriodMS(10)
|
||||
myMOSFETsensor.enable(True)
|
||||
|
||||
myMOSFETsensor.setPeriodMS(10)
|
||||
myMOSFETsensor.enable(True)
|
||||
# start with a duty cycle of 0.0 (off) and increment to 1.0 (on)
|
||||
for i in range(11):
|
||||
myMOSFETsensor.setDutyCycle(i / 10)
|
||||
time.sleep(.1)
|
||||
time.sleep(1)
|
||||
|
||||
# start with a duty cycle of 0.0 (off) and increment to 1.0 (on)
|
||||
for i in range(11):
|
||||
myMOSFETsensor.setDutyCycle(i / 10)
|
||||
time.sleep(.1)
|
||||
time.sleep(1)
|
||||
# Now take it back down
|
||||
# start with a duty cycle of 1.0 (on) and decrement to 0.0 (off)
|
||||
for i in range(10, -1, -1):
|
||||
myMOSFETsensor.setDutyCycle(i / 10)
|
||||
time.sleep(.1)
|
||||
time.sleep(1)
|
||||
|
||||
# Now take it back down
|
||||
# start with a duty cycle of 1.0 (on) and decrement to 0.0 (off)
|
||||
for i in range(10, -1, -1):
|
||||
myMOSFETsensor.setDutyCycle(i / 10)
|
||||
time.sleep(.1)
|
||||
time.sleep(1)
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
52
examples/python/collision.py
Normal file → Executable file
52
examples/python/collision.py
Normal file → Executable file
@ -24,34 +24,36 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_collision as upmcollision
|
||||
|
||||
# The was tested with the Collision Sensor
|
||||
# Instantiate a Collision on digital pin D2
|
||||
mycollision = upmcollision.Collision(2)
|
||||
def main():
|
||||
# The was tested with the Collision Sensor
|
||||
# Instantiate a Collision on digital pin D2
|
||||
mycollision = upmcollision.Collision(2)
|
||||
|
||||
## Exit handlers ##
|
||||
# This stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
## Exit handlers ##
|
||||
# This stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
# This lets you run code on exit,
|
||||
# including functions from myGrovecollision
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# This lets you run code on exit,
|
||||
# including functions from myGrovecollision
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
collisionState = False
|
||||
print "No collision"
|
||||
|
||||
while(1):
|
||||
if (mycollision.isColliding() and not collisionState):
|
||||
print "Collision!"
|
||||
collisionState = True
|
||||
elif (not mycollision.isColliding() and collisionState):
|
||||
print "No collision"
|
||||
collisionState = False
|
||||
|
||||
collisionState = False
|
||||
print "No collision"
|
||||
|
||||
while(1):
|
||||
if (mycollision.isColliding() and not collisionState):
|
||||
print "Collision!"
|
||||
collisionState = True
|
||||
elif (not mycollision.isColliding() and collisionState):
|
||||
print "No collision"
|
||||
collisionState = False
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
38
examples/python/curieimu.py
Normal file → Executable file
38
examples/python/curieimu.py
Normal file → Executable file
@ -30,27 +30,31 @@ mraa.addSubplatform(mraa.GENERIC_FIRMATA, "/dev/ttyACM0")
|
||||
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_curieimu as curieimu
|
||||
sensor = curieimu.CurieImu()
|
||||
|
||||
## Exit handlers ##
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
def main():
|
||||
sensor = curieimu.CurieImu()
|
||||
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
## Exit handlers ##
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
while(1):
|
||||
sensor.updateAccel();
|
||||
while(1):
|
||||
sensor.updateAccel();
|
||||
|
||||
outputStr = "acc: gX {0} - gY {1} - gZ {2}".format(
|
||||
sensor.getAccelX(), sensor.getAccelY(),
|
||||
sensor.getAccelZ())
|
||||
print outputStr
|
||||
outputStr = "acc: gX {0} - gY {1} - gZ {2}".format(
|
||||
sensor.getAccelX(), sensor.getAccelY(),
|
||||
sensor.getAccelZ())
|
||||
print outputStr
|
||||
|
||||
time.sleep(1)
|
||||
time.sleep(1)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
40
examples/python/cwlsxxa.py
Normal file → Executable file
40
examples/python/cwlsxxa.py
Normal file → Executable file
@ -24,28 +24,29 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_cwlsxxa as sensorObj
|
||||
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
def main():
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
# This function lets you run code on exit
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
# This function lets you run code on exit
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
print "Initializing..."
|
||||
print "Initializing..."
|
||||
|
||||
# Instantiate an CWLSXXA instance, using A0 for CO2, A1 for
|
||||
# humidity and A2 for temperature
|
||||
sensor = sensorObj.CWLSXXA(0, 1, 2)
|
||||
# Instantiate an CWLSXXA instance, using A0 for CO2, A1 for
|
||||
# humidity and A2 for temperature
|
||||
sensor = sensorObj.CWLSXXA(0, 1, 2)
|
||||
|
||||
# update and print available values every second
|
||||
while (1):
|
||||
# update and print available values every second
|
||||
while (1):
|
||||
# update our values from the sensor
|
||||
sensor.update()
|
||||
|
||||
@ -58,4 +59,7 @@ while (1):
|
||||
print "CO2:", sensor.getCO2(), "ppm"
|
||||
|
||||
print
|
||||
time.sleep(1)
|
||||
time.sleep(1)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
42
examples/python/dfrec.py
Normal file → Executable file
42
examples/python/dfrec.py
Normal file → Executable file
@ -24,28 +24,29 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_dfrec as sensorObj
|
||||
|
||||
# Instantiate a DFRobot EC sensor on analog pin A0, with a ds18b20
|
||||
# temperature sensor connected to UART 0, and a device index (for
|
||||
# the ds1820b uart bus) of 0, and an analog reference voltage of
|
||||
# 5.0.
|
||||
sensor = sensorObj.DFREC(0, 0, 0, 5.0)
|
||||
def main():
|
||||
# Instantiate a DFRobot EC sensor on analog pin A0, with a ds18b20
|
||||
# temperature sensor connected to UART 0, and a device index (for
|
||||
# the ds1820b uart bus) of 0, and an analog reference voltage of
|
||||
# 5.0.
|
||||
sensor = sensorObj.DFREC(0, 0, 0, 5.0)
|
||||
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
# This function lets you run code on exit
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
# This function lets you run code on exit
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
# Every 2 seconds, update and print values
|
||||
while (True):
|
||||
# Every 2 seconds, update and print values
|
||||
while (True):
|
||||
sensor.update()
|
||||
|
||||
print "EC =", sensor.getEC(), "ms/cm"
|
||||
@ -53,4 +54,7 @@ while (True):
|
||||
print ", Temperature = ", sensor.getTemperature(), "C"
|
||||
print
|
||||
|
||||
time.sleep(2)
|
||||
time.sleep(2)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
66
examples/python/dfrorp.py
Normal file → Executable file
66
examples/python/dfrorp.py
Normal file → Executable file
@ -24,45 +24,49 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_dfrorp as sensorObj
|
||||
|
||||
# Instantiate a DFRobot ORP sensor on analog pin A0 with an analog
|
||||
# reference voltage of 5.0.
|
||||
sensor = sensorObj.DFRORP(0, 5.0)
|
||||
def main():
|
||||
# Instantiate a DFRobot ORP sensor on analog pin A0 with an analog
|
||||
# reference voltage of 5.0.
|
||||
sensor = sensorObj.DFRORP(0, 5.0)
|
||||
|
||||
# To calibrate:
|
||||
#
|
||||
# Disconnect the sensor probe (but leave the sensor interface board
|
||||
# connected). Then run one of the examples while holding down the
|
||||
# 'calibrate' button on the device. Read the ORP value reported
|
||||
# (it should be fairly small).
|
||||
#
|
||||
# This value is what you should supply to setCalibrationOffset().
|
||||
# Then reconnect the probe to the interface board and you should be
|
||||
# ready to go.
|
||||
#
|
||||
# DO NOT press the calibrate button on the interface board while
|
||||
# the probe is attached or you can permanently damage the probe.
|
||||
sensor.setCalibrationOffset(0.97);
|
||||
# To calibrate:
|
||||
#
|
||||
# Disconnect the sensor probe (but leave the sensor interface board
|
||||
# connected). Then run one of the examples while holding down the
|
||||
# 'calibrate' button on the device. Read the ORP value reported
|
||||
# (it should be fairly small).
|
||||
#
|
||||
# This value is what you should supply to setCalibrationOffset().
|
||||
# Then reconnect the probe to the interface board and you should be
|
||||
# ready to go.
|
||||
#
|
||||
# DO NOT press the calibrate button on the interface board while
|
||||
# the probe is attached or you can permanently damage the probe.
|
||||
sensor.setCalibrationOffset(0.97);
|
||||
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
# This function lets you run code on exit
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
# This function lets you run code on exit
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
# Every second, update and print values
|
||||
while (True):
|
||||
# Every second, update and print values
|
||||
while (True):
|
||||
sensor.update()
|
||||
|
||||
print "ORP:", sensor.getORP(), "mV"
|
||||
|
||||
print
|
||||
|
||||
time.sleep(1)
|
||||
time.sleep(1)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
48
examples/python/dfrph.py
Normal file → Executable file
48
examples/python/dfrph.py
Normal file → Executable file
@ -24,33 +24,37 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_dfrph as sensorObj
|
||||
|
||||
# Instantiate a DFRPH sensor on analog pin A0, with an analog
|
||||
# reference voltage of 5.0
|
||||
sensor = sensorObj.DFRPH(0, 5.0)
|
||||
def main():
|
||||
# Instantiate a DFRPH sensor on analog pin A0, with an analog
|
||||
# reference voltage of 5.0
|
||||
sensor = sensorObj.DFRPH(0, 5.0)
|
||||
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
# This function lets you run code on exit
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
# This function lets you run code on exit
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
# After calibration, set the offset (based on calibration with a pH
|
||||
# 7.0 buffer solution). See the UPM sensor documentation for
|
||||
# calibrations instructions.
|
||||
sensor.setOffset(0.065);
|
||||
# After calibration, set the offset (based on calibration with a pH
|
||||
# 7.0 buffer solution). See the UPM sensor documentation for
|
||||
# calibrations instructions.
|
||||
sensor.setOffset(0.065);
|
||||
|
||||
# Every second, sample the pH and output it's corresponding
|
||||
# analog voltage.
|
||||
# Every second, sample the pH and output it's corresponding
|
||||
# analog voltage.
|
||||
|
||||
while (1):
|
||||
while (1):
|
||||
print "Detected volts: ", sensor.volts()
|
||||
print "pH value: ", sensor.pH()
|
||||
time.sleep(1)
|
||||
time.sleep(1)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
53
examples/python/ds1307.py
Normal file → Executable file
53
examples/python/ds1307.py
Normal file → Executable file
@ -24,37 +24,40 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_ds1307 as upmDs1307
|
||||
|
||||
# load RTC clock on i2c bus 0
|
||||
myRTCClock = upmDs1307.DS1307(0)
|
||||
def main():
|
||||
# load RTC clock on i2c bus 0
|
||||
myRTCClock = upmDs1307.DS1307(0)
|
||||
|
||||
def printTime(RTCObj):
|
||||
timeStr = "The time is: {0}/{1}/{2} {3}:{4}:{5}".format(
|
||||
RTCObj.month, RTCObj.dayOfMonth, RTCObj.year,
|
||||
RTCObj.hours, RTCObj.minutes, RTCObj.seconds)
|
||||
def printTime(RTCObj):
|
||||
timeStr = "The time is: {0}/{1}/{2} {3}:{4}:{5}".format(
|
||||
RTCObj.month, RTCObj.dayOfMonth, RTCObj.year,
|
||||
RTCObj.hours, RTCObj.minutes, RTCObj.seconds)
|
||||
|
||||
if (RTCObj.amPmMode):
|
||||
timeStr += (" PM " if RTCObj.pm else " AM ")
|
||||
if (RTCObj.amPmMode):
|
||||
timeStr += (" PM " if RTCObj.pm else " AM ")
|
||||
|
||||
print timeStr
|
||||
print timeStr
|
||||
|
||||
print "Clock is in", ("AM/PM mode"
|
||||
if RTCObj.amPmMode else "24hr mode")
|
||||
print "Clock is in", ("AM/PM mode"
|
||||
if RTCObj.amPmMode else "24hr mode")
|
||||
|
||||
# always do this first
|
||||
print "Loading the current time... "
|
||||
result = myRTCClock.loadTime()
|
||||
if (not result):
|
||||
print "myRTCClock.loadTime() failed."
|
||||
sys.exit(0)
|
||||
|
||||
# always do this first
|
||||
print "Loading the current time... "
|
||||
result = myRTCClock.loadTime()
|
||||
if (not result):
|
||||
print "myRTCClock.loadTime() failed."
|
||||
sys.exit(0)
|
||||
printTime(myRTCClock);
|
||||
|
||||
printTime(myRTCClock);
|
||||
# set the year as an example
|
||||
print "setting the year to 50"
|
||||
myRTCClock.year = 50
|
||||
myRTCClock.setTime()
|
||||
|
||||
# set the year as an example
|
||||
print "setting the year to 50"
|
||||
myRTCClock.year = 50
|
||||
myRTCClock.setTime()
|
||||
# reload the time and print it
|
||||
myRTCClock.loadTime()
|
||||
printTime(myRTCClock)
|
||||
|
||||
# reload the time and print it
|
||||
myRTCClock.loadTime()
|
||||
printTime(myRTCClock)
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
48
examples/python/ds18b20.py
Normal file → Executable file
48
examples/python/ds18b20.py
Normal file → Executable file
@ -24,36 +24,37 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_ds18b20 as sensorObj
|
||||
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
def main():
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
# This function lets you run code on exit
|
||||
def exitHandler():
|
||||
print "Exiting..."
|
||||
sys.exit(0)
|
||||
# This function lets you run code on exit
|
||||
def exitHandler():
|
||||
print "Exiting..."
|
||||
sys.exit(0)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
print "Initializing..."
|
||||
print "Initializing..."
|
||||
|
||||
# Instantiate an DS18B20 instance using the default values (uart 0)
|
||||
sensor = sensorObj.DS18B20(0)
|
||||
# Instantiate an DS18B20 instance using the default values (uart 0)
|
||||
sensor = sensorObj.DS18B20(0)
|
||||
|
||||
# locate and setup our devices
|
||||
sensor.init()
|
||||
# locate and setup our devices
|
||||
sensor.init()
|
||||
|
||||
print "Found", sensor.devicesFound(), "device(s)"
|
||||
print
|
||||
print "Found", sensor.devicesFound(), "device(s)"
|
||||
print
|
||||
|
||||
if (not sensor.devicesFound()):
|
||||
if (not sensor.devicesFound()):
|
||||
sys.exit(1);
|
||||
|
||||
# update and print available values every second
|
||||
while (1):
|
||||
# update and print available values every second
|
||||
while (1):
|
||||
# update our values for the first sensor
|
||||
sensor.update(0)
|
||||
|
||||
@ -61,4 +62,7 @@ while (1):
|
||||
print "Temperature:", sensor.getTemperature(0), "C /",
|
||||
print sensor.getTemperature(0, True), "F"
|
||||
|
||||
time.sleep(1)
|
||||
time.sleep(1)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
52
examples/python/ds2413.py
Normal file → Executable file
52
examples/python/ds2413.py
Normal file → Executable file
@ -24,34 +24,38 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_ds2413 as sensorObj
|
||||
|
||||
# Instantiate a DS2413 Module on a Dallas 1-wire bus connected to UART 0
|
||||
sensor = sensorObj.DS2413(0)
|
||||
def main():
|
||||
# Instantiate a DS2413 Module on a Dallas 1-wire bus connected to UART 0
|
||||
sensor = sensorObj.DS2413(0)
|
||||
|
||||
## Exit handlers ##
|
||||
# This stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
## Exit handlers ##
|
||||
# This stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
# This function lets you run code on exit
|
||||
def exitHandler():
|
||||
print "Exiting..."
|
||||
sys.exit(0)
|
||||
# This function lets you run code on exit
|
||||
def exitHandler():
|
||||
print "Exiting..."
|
||||
sys.exit(0)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
# find all of the DS2413 devices present on the bus
|
||||
sensor.init();
|
||||
# find all of the DS2413 devices present on the bus
|
||||
sensor.init();
|
||||
|
||||
# how many devices were found?
|
||||
print "Found", sensor.devicesFound(), "device(s)"
|
||||
# how many devices were found?
|
||||
print "Found", sensor.devicesFound(), "device(s)"
|
||||
|
||||
# read the gpio and latch values from the first device
|
||||
# the lower 4 bits are of the form:
|
||||
# <gpioB latch> <gpioB value> <gpioA latch> <gpioA value>
|
||||
print "GPIO device 0 values:", sensor.readGpios(0)
|
||||
# read the gpio and latch values from the first device
|
||||
# the lower 4 bits are of the form:
|
||||
# <gpioB latch> <gpioB value> <gpioA latch> <gpioA value>
|
||||
print "GPIO device 0 values:", sensor.readGpios(0)
|
||||
|
||||
# set the gpio latch values of the first device
|
||||
print "Setting GPIO latches to on"
|
||||
sensor.writeGpios(0, 0x03);
|
||||
# set the gpio latch values of the first device
|
||||
print "Setting GPIO latches to on"
|
||||
sensor.writeGpios(0, 0x03);
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
84
examples/python/e50hx.py
Normal file → Executable file
84
examples/python/e50hx.py
Normal file → Executable file
@ -24,57 +24,58 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_e50hx as sensorObj
|
||||
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
def main():
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
# This function lets you run code on exit
|
||||
def exitHandler():
|
||||
print "Exiting..."
|
||||
sys.exit(0)
|
||||
# This function lets you run code on exit
|
||||
def exitHandler():
|
||||
print "Exiting..."
|
||||
sys.exit(0)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
# You will need to edit this example to conform to your site and your
|
||||
# devices, specifically the Device Object Instance ID passed to the
|
||||
# constructor, and the arguments to initMaster() that are
|
||||
# appropriate for your BACnet network.
|
||||
# You will need to edit this example to conform to your site and your
|
||||
# devices, specifically the Device Object Instance ID passed to the
|
||||
# constructor, and the arguments to initMaster() that are
|
||||
# appropriate for your BACnet network.
|
||||
|
||||
defaultDev = "/dev/ttyUSB0"
|
||||
defaultDev = "/dev/ttyUSB0"
|
||||
|
||||
# if an argument was specified, use it as the device instead
|
||||
if (len(sys.argv) > 1):
|
||||
# if an argument was specified, use it as the device instead
|
||||
if (len(sys.argv) > 1):
|
||||
defaultDev = sys.argv[1]
|
||||
|
||||
print "Using device", defaultDev
|
||||
print "Initializing..."
|
||||
print "Using device", defaultDev
|
||||
print "Initializing..."
|
||||
|
||||
# Instantiate an E50HX object for an E50HX device that has 1075425
|
||||
# as it's unique Device Object Instance ID. NOTE: You will
|
||||
# certainly want to change this to the correct value for your
|
||||
# device(s).
|
||||
sensor = sensorObj.E50HX(1075425)
|
||||
# Instantiate an E50HX object for an E50HX device that has 1075425
|
||||
# as it's unique Device Object Instance ID. NOTE: You will
|
||||
# certainly want to change this to the correct value for your
|
||||
# device(s).
|
||||
sensor = sensorObj.E50HX(1075425)
|
||||
|
||||
# Initialize our BACnet master, if it has not already been
|
||||
# initialized, with the device and baudrate, choosing 1000001 as
|
||||
# our unique Device Object Instance ID, 2 as our MAC address and
|
||||
# using default values for maxMaster and maxInfoFrames
|
||||
sensor.initMaster(defaultDev, 38400, 1000001, 2)
|
||||
# Initialize our BACnet master, if it has not already been
|
||||
# initialized, with the device and baudrate, choosing 1000001 as
|
||||
# our unique Device Object Instance ID, 2 as our MAC address and
|
||||
# using default values for maxMaster and maxInfoFrames
|
||||
sensor.initMaster(defaultDev, 38400, 1000001, 2)
|
||||
|
||||
# Uncomment to enable debugging output
|
||||
# sensor.setDebug(True);
|
||||
# Uncomment to enable debugging output
|
||||
# sensor.setDebug(True);
|
||||
|
||||
# output the serial number and firmware revision
|
||||
print
|
||||
print "Device Description:", sensor.getDeviceDescription()
|
||||
print "Device Location:", sensor.getDeviceLocation()
|
||||
print
|
||||
# output the serial number and firmware revision
|
||||
print
|
||||
print "Device Description:", sensor.getDeviceDescription()
|
||||
print "Device Location:", sensor.getDeviceLocation()
|
||||
print
|
||||
|
||||
# update and print available values every second
|
||||
while (1):
|
||||
# update and print available values every second
|
||||
while (1):
|
||||
print "System Voltage:",
|
||||
print sensor.getAnalogValue(sensorObj.E50HX.AV_System_Voltage),
|
||||
print " ",
|
||||
@ -92,4 +93,7 @@ while (1):
|
||||
print sensor.getAnalogInput(sensorObj.E50HX.AI_Power_Up_Count)
|
||||
|
||||
print
|
||||
time.sleep(5)
|
||||
time.sleep(5)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
25
examples/python/eboled.py
Normal file → Executable file
25
examples/python/eboled.py
Normal file → Executable file
@ -25,17 +25,18 @@ import time, sys
|
||||
|
||||
import pyupm_i2clcd as lcdObj
|
||||
|
||||
# setup with default values
|
||||
lcd = lcdObj.EBOLED();
|
||||
|
||||
lcd.clear();
|
||||
lcd.setCursor(10, 15);
|
||||
lcd.write("Hello");
|
||||
lcd.setCursor(30, 15);
|
||||
lcd.write("World!");
|
||||
lcd.refresh();
|
||||
print "Sleeping for 5 seconds..."
|
||||
time.sleep(5)
|
||||
|
||||
def main():
|
||||
# setup with default values
|
||||
lcd = lcdObj.EBOLED();
|
||||
|
||||
lcd.clear();
|
||||
lcd.setCursor(10, 15);
|
||||
lcd.write("Hello");
|
||||
lcd.setCursor(30, 15);
|
||||
lcd.write("World!");
|
||||
lcd.refresh();
|
||||
print "Sleeping for 5 seconds..."
|
||||
time.sleep(5)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
69
examples/python/ehr.py
Normal file → Executable file
69
examples/python/ehr.py
Normal file → Executable file
@ -21,48 +21,49 @@
|
||||
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_ehr as upmehr
|
||||
|
||||
# Instantiate a Ear-clip Heart Rate sensor on digital pin D2
|
||||
myHeartRateSensor = upmehr.EHR(2)
|
||||
def main():
|
||||
# Instantiate a Ear-clip Heart Rate sensor on digital pin D2
|
||||
myHeartRateSensor = upmehr.EHR(2)
|
||||
|
||||
## Exit handlers ##
|
||||
# This stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
## Exit handlers ##
|
||||
# This stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
# This lets you run code on exit,
|
||||
# including functions from myHeartRateSensor
|
||||
def exitHandler():
|
||||
myHeartRateSensor.stopBeatCounter()
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# This lets you run code on exit,
|
||||
# including functions from myHeartRateSensor
|
||||
def exitHandler():
|
||||
myHeartRateSensor.stopBeatCounter()
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
# set the beat counter to 0, init the clock and start counting beats
|
||||
myHeartRateSensor.clearBeatCounter()
|
||||
myHeartRateSensor.initClock()
|
||||
myHeartRateSensor.startBeatCounter()
|
||||
|
||||
while(1):
|
||||
# we grab these (millis and flowCount) just for display
|
||||
# purposes in this example
|
||||
millis = myHeartRateSensor.getMillis()
|
||||
beats = myHeartRateSensor.beatCounter()
|
||||
|
||||
# set the beat counter to 0, init the clock and start counting beats
|
||||
myHeartRateSensor.clearBeatCounter()
|
||||
myHeartRateSensor.initClock()
|
||||
myHeartRateSensor.startBeatCounter()
|
||||
# heartRate() requires that at least 5 seconds pass before
|
||||
# returning anything other than 0
|
||||
fr = myHeartRateSensor.heartRate()
|
||||
|
||||
while(1):
|
||||
# we grab these (millis and flowCount) just for display
|
||||
# purposes in this example
|
||||
millis = myHeartRateSensor.getMillis()
|
||||
beats = myHeartRateSensor.beatCounter()
|
||||
# output milliseconds passed, beat count, and computed heart rate
|
||||
outputStr = "Millis: {0} Beats: {1} Heart Rate: {2}".format(
|
||||
millis, beats, fr)
|
||||
print outputStr
|
||||
time.sleep(1)
|
||||
|
||||
# heartRate() requires that at least 5 seconds pass before
|
||||
# returning anything other than 0
|
||||
fr = myHeartRateSensor.heartRate()
|
||||
|
||||
# output milliseconds passed, beat count, and computed heart rate
|
||||
outputStr = "Millis: {0} Beats: {1} Heart Rate: {2}".format(
|
||||
millis, beats, fr)
|
||||
print outputStr
|
||||
time.sleep(1)
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
50
examples/python/eldriver.py
Normal file → Executable file
50
examples/python/eldriver.py
Normal file → Executable file
@ -24,34 +24,36 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_eldriver as upmeldriver
|
||||
|
||||
# The was tested with the El Driver Module
|
||||
# Instantiate a El Driver on digital pin D2
|
||||
myEldriver = upmeldriver.ElDriver(2)
|
||||
def main():
|
||||
# The was tested with the El Driver Module
|
||||
# Instantiate a El Driver on digital pin D2
|
||||
myEldriver = upmeldriver.ElDriver(2)
|
||||
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
# This function lets you run code on exit, including functions from myEldriver
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
myEldriver.off()
|
||||
sys.exit(0)
|
||||
|
||||
# This function lets you run code on exit, including functions from myEldriver
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
myEldriver.off()
|
||||
sys.exit(0)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
lightState = True
|
||||
|
||||
while(1):
|
||||
if (lightState):
|
||||
myEldriver.on()
|
||||
else:
|
||||
myEldriver.off()
|
||||
lightState = not lightState
|
||||
|
||||
lightState = True
|
||||
time.sleep(1)
|
||||
|
||||
while(1):
|
||||
if (lightState):
|
||||
myEldriver.on()
|
||||
else:
|
||||
myEldriver.off()
|
||||
lightState = not lightState
|
||||
|
||||
time.sleep(1)
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
56
examples/python/electromagnet.py
Normal file → Executable file
56
examples/python/electromagnet.py
Normal file → Executable file
@ -24,37 +24,39 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_electromagnet as upmelectromagnet
|
||||
|
||||
# This was tested with the Electromagnetic Module
|
||||
# Instantiate a Electromagnet on digital pin D2
|
||||
myElectromagnet = upmelectromagnet.Electromagnet(2)
|
||||
def main():
|
||||
# This was tested with the Electromagnetic Module
|
||||
# Instantiate a Electromagnet on digital pin D2
|
||||
myElectromagnet = upmelectromagnet.Electromagnet(2)
|
||||
|
||||
## Exit handlers ##
|
||||
# This stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
## Exit handlers ##
|
||||
# This stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
# This lets you run code on exit,
|
||||
# including functions from myElectromagnet
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
myElectromagnet.off()
|
||||
sys.exit(0)
|
||||
|
||||
# This lets you run code on exit,
|
||||
# including functions from myElectromagnet
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
myElectromagnet.off()
|
||||
sys.exit(0)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
magnetState = False
|
||||
|
||||
# Turn magnet on and off every 5 seconds
|
||||
while(1):
|
||||
magnetState = not magnetState
|
||||
if (magnetState):
|
||||
myElectromagnet.on()
|
||||
else:
|
||||
myElectromagnet.off()
|
||||
print "Turning magnet", ("on" if magnetState else "off")
|
||||
|
||||
magnetState = False
|
||||
time.sleep(5)
|
||||
|
||||
# Turn magnet on and off every 5 seconds
|
||||
while(1):
|
||||
magnetState = not magnetState
|
||||
if (magnetState):
|
||||
myElectromagnet.on()
|
||||
else:
|
||||
myElectromagnet.off()
|
||||
print "Turning magnet", ("on" if magnetState else "off")
|
||||
|
||||
time.sleep(5)
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
42
examples/python/emg.py
Normal file → Executable file
42
examples/python/emg.py
Normal file → Executable file
@ -24,29 +24,31 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_emg as upmEmg
|
||||
|
||||
# Tested with the EMG Muscle Signal Reader Sensor Module
|
||||
# Instantiate a EMG on analog pin A0
|
||||
myEMG = upmEmg.EMG(0)
|
||||
def main():
|
||||
# Tested with the EMG Muscle Signal Reader Sensor Module
|
||||
# Instantiate a EMG on analog pin A0
|
||||
myEMG = upmEmg.EMG(0)
|
||||
|
||||
## Exit handlers ##
|
||||
# This stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
## Exit handlers ##
|
||||
# This stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
# This lets you run code on exit, including functions from myEMG
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# This lets you run code on exit, including functions from myEMG
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
print "Calibrating...."
|
||||
myEMG.calibrate()
|
||||
|
||||
while (1):
|
||||
print myEMG.value()
|
||||
time.sleep(.1)
|
||||
|
||||
print "Calibrating...."
|
||||
myEMG.calibrate()
|
||||
|
||||
while (1):
|
||||
print myEMG.value()
|
||||
time.sleep(.1)
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
60
examples/python/enc03r.py
Normal file → Executable file
60
examples/python/enc03r.py
Normal file → Executable file
@ -24,41 +24,43 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_enc03r as upmEnc03r
|
||||
|
||||
# Instantiate an ENC03R on analog pin A0
|
||||
myAnalogGyro = upmEnc03r.ENC03R(0)
|
||||
def main():
|
||||
# Instantiate an ENC03R on analog pin A0
|
||||
myAnalogGyro = upmEnc03r.ENC03R(0)
|
||||
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
# This function lets you run code on exit,
|
||||
# including functions from myAnalogGyro
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# This function lets you run code on exit,
|
||||
# including functions from myAnalogGyro
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
CALIBRATION_SAMPLES = 1000
|
||||
|
||||
print ("Please place the sensor in a stable location,\n"
|
||||
"and do not move it while calibration takes place.\n"
|
||||
"This may take a couple of minutes.")
|
||||
|
||||
CALIBRATION_SAMPLES = 1000
|
||||
myAnalogGyro.calibrate(CALIBRATION_SAMPLES)
|
||||
print "Calibration complete. "
|
||||
print "Reference value: ", myAnalogGyro.calibrationValue()
|
||||
|
||||
print ("Please place the sensor in a stable location,\n"
|
||||
"and do not move it while calibration takes place.\n"
|
||||
"This may take a couple of minutes.")
|
||||
while(1):
|
||||
gyroVal = myAnalogGyro.value();
|
||||
outputStr = ("Raw value: {0}, "
|
||||
"angular velocity: {1}"
|
||||
" deg/s".format(gyroVal, myAnalogGyro.angularVelocity(gyroVal)))
|
||||
print outputStr
|
||||
|
||||
myAnalogGyro.calibrate(CALIBRATION_SAMPLES)
|
||||
print "Calibration complete. "
|
||||
print "Reference value: ", myAnalogGyro.calibrationValue()
|
||||
time.sleep(.1)
|
||||
|
||||
while(1):
|
||||
gyroVal = myAnalogGyro.value();
|
||||
outputStr = ("Raw value: {0}, "
|
||||
"angular velocity: {1}"
|
||||
" deg/s".format(gyroVal, myAnalogGyro.angularVelocity(gyroVal)))
|
||||
print outputStr
|
||||
|
||||
time.sleep(.1)
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
42
examples/python/es08a.py
Normal file → Executable file
42
examples/python/es08a.py
Normal file → Executable file
@ -1,4 +1,4 @@
|
||||
# Author: John Van Drasek <john.r.van.drasek@intel.com>
|
||||
# Author: John Van Drasek <john.r.van.drasek@intel.com>
|
||||
# Copyright (c) 2015 Intel Corporation.
|
||||
#
|
||||
# Permission is hereby granted, free of charge, to any person obtaining
|
||||
@ -21,26 +21,30 @@
|
||||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
import time
|
||||
import pyupm_servo as servo
|
||||
import pyupm_servo as servo
|
||||
|
||||
# Create the servo object using D5
|
||||
gServo = servo.ES08A(5)
|
||||
def main():
|
||||
# Create the servo object using D5
|
||||
gServo = servo.ES08A(5)
|
||||
|
||||
for i in range(0,10):
|
||||
# Set the servo arm to 0 degrees
|
||||
gServo.setAngle(0)
|
||||
print 'Set angle to 0'
|
||||
time.sleep(1)
|
||||
for i in range(0,10):
|
||||
# Set the servo arm to 0 degrees
|
||||
gServo.setAngle(0)
|
||||
print 'Set angle to 0'
|
||||
time.sleep(1)
|
||||
|
||||
# Set the servo arm to 90 degrees
|
||||
gServo.setAngle(90)
|
||||
print 'Set angle to 90'
|
||||
time.sleep(1)
|
||||
# Set the servo arm to 90 degrees
|
||||
gServo.setAngle(90)
|
||||
print 'Set angle to 90'
|
||||
time.sleep(1)
|
||||
|
||||
# Set the servo arm to 180 degrees
|
||||
gServo.setAngle(180)
|
||||
print 'Set angle to 180'
|
||||
time.sleep(1)
|
||||
# Set the servo arm to 180 degrees
|
||||
gServo.setAngle(180)
|
||||
print 'Set angle to 180'
|
||||
time.sleep(1)
|
||||
|
||||
# Delete the servo object
|
||||
del gServo
|
||||
# Delete the servo object
|
||||
del gServo
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
62
examples/python/gp2y0a.py
Normal file → Executable file
62
examples/python/gp2y0a.py
Normal file → Executable file
@ -24,39 +24,41 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_gp2y0a as upmGp2y0a
|
||||
|
||||
# Note, for the Grove 80cm version of this sensor, due to the way it is wired,
|
||||
# you need to plug this into the A0 port, where it will use the available
|
||||
# A1 pin for data.
|
||||
# Instantiate a GP2Y0A on analog pin A1
|
||||
myIRProximity = upmGp2y0a.GP2Y0A(1)
|
||||
def main():
|
||||
# Note, for the Grove 80cm version of this sensor, due to the way it is wired,
|
||||
# you need to plug this into the A0 port, where it will use the available
|
||||
# A1 pin for data.
|
||||
# Instantiate a GP2Y0A on analog pin A1
|
||||
myIRProximity = upmGp2y0a.GP2Y0A(1)
|
||||
|
||||
## Exit handlers ##
|
||||
# This stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
## Exit handlers ##
|
||||
# This stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
# This lets you run code on exit,
|
||||
# including functions from myIRProximity
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# This lets you run code on exit,
|
||||
# including functions from myIRProximity
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
# analog voltage, usually 3.3 or 5.0
|
||||
GP2Y0A_AREF = 5.0;
|
||||
SAMPLES_PER_QUERY = 20;
|
||||
|
||||
# The higher the voltage (closer to AREF) the closer the object is.
|
||||
# NOTE: The measured voltage will probably not exceed 3.3 volts.
|
||||
# Every second, print the averaged voltage value
|
||||
# (averaged over 20 samples).
|
||||
while (1):
|
||||
print "AREF: {0}, Voltage value (higher means closer): {1}".format(
|
||||
GP2Y0A_AREF,
|
||||
myIRProximity.value(GP2Y0A_AREF, SAMPLES_PER_QUERY))
|
||||
time.sleep(1)
|
||||
|
||||
# analog voltage, usually 3.3 or 5.0
|
||||
GP2Y0A_AREF = 5.0;
|
||||
SAMPLES_PER_QUERY = 20;
|
||||
|
||||
# The higher the voltage (closer to AREF) the closer the object is.
|
||||
# NOTE: The measured voltage will probably not exceed 3.3 volts.
|
||||
# Every second, print the averaged voltage value
|
||||
# (averaged over 20 samples).
|
||||
while (1):
|
||||
print "AREF: {0}, Voltage value (higher means closer): {1}".format(
|
||||
GP2Y0A_AREF,
|
||||
myIRProximity.value(GP2Y0A_AREF, SAMPLES_PER_QUERY))
|
||||
time.sleep(1)
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
78
examples/python/gprs.py
Normal file → Executable file
78
examples/python/gprs.py
Normal file → Executable file
@ -24,54 +24,53 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_gprs as sensorObj
|
||||
|
||||
# Instantiate a GPRS Module on UART 0
|
||||
sensor = sensorObj.GPRS(0)
|
||||
def main():
|
||||
# Instantiate a GPRS Module on UART 0
|
||||
sensor = sensorObj.GPRS(0)
|
||||
|
||||
## Exit handlers ##
|
||||
# This stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
## Exit handlers ##
|
||||
# This stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
# This function lets you run code on exit
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
# This function lets you run code on exit
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
# Set the baud rate, 19200 baud is the default.
|
||||
if (sensor.setBaudRate(19200)):
|
||||
print "Failed to set baud rate"
|
||||
sys.exit(0)
|
||||
# Set the baud rate, 19200 baud is the default.
|
||||
if (sensor.setBaudRate(19200)):
|
||||
print "Failed to set baud rate"
|
||||
sys.exit(0)
|
||||
|
||||
usageStr = ("Usage:\n"
|
||||
"If an argument is supplied on the command line, that argument is\n"
|
||||
"sent to the module and the response is printed out.\n\n"
|
||||
"If no argument is used, then the manufacturer and the current\n"
|
||||
"saved profiles are queried and the results printed out.\n\n")
|
||||
print usageStr
|
||||
|
||||
usageStr = ("Usage:\n"
|
||||
"If an argument is supplied on the command line, that argument is\n"
|
||||
"sent to the module and the response is printed out.\n\n"
|
||||
"If no argument is used, then the manufacturer and the current\n"
|
||||
"saved profiles are queried and the results printed out.\n\n")
|
||||
print usageStr
|
||||
|
||||
# simple helper function to send a command and wait for a response
|
||||
def sendCommand(sensor, cmd):
|
||||
# simple helper function to send a command and wait for a response
|
||||
def sendCommand(sensor, cmd):
|
||||
# commands need to be terminated with a carriage return
|
||||
cmd += "\r";
|
||||
sensor.writeDataStr(cmd)
|
||||
sensor.writeDataStr(cmd)
|
||||
|
||||
# wait up to 1 second
|
||||
if (sensor.dataAvailable(1000)):
|
||||
print "Returned: ",
|
||||
print sensor.readDataStr(1024)
|
||||
else:
|
||||
print "Timed out waiting for response"
|
||||
# wait up to 1 second
|
||||
if (sensor.dataAvailable(1000)):
|
||||
print "Returned: ",
|
||||
print sensor.readDataStr(1024)
|
||||
else:
|
||||
print "Timed out waiting for response"
|
||||
|
||||
|
||||
if (len(sys.argv) > 1):
|
||||
print "Sending command line argument (" + sys.argv[1] + ")..."
|
||||
sendCommand(sensor, sys.argv[1])
|
||||
else:
|
||||
if (len(sys.argv) > 1):
|
||||
print "Sending command line argument (" + sys.argv[1] + ")..."
|
||||
sendCommand(sensor, sys.argv[1])
|
||||
else:
|
||||
# query the module manufacturer
|
||||
print "Querying module manufacturer (AT+CGMI)..."
|
||||
sendCommand(sensor, "AT+CGMI");
|
||||
@ -84,3 +83,6 @@ else:
|
||||
|
||||
# A comprehensive list is available from the datasheet at:
|
||||
# http://www.seeedstudio.com/wiki/images/7/72/AT_Commands_v1.11.pdf
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
20
examples/python/grovebutton.py
Normal file → Executable file
20
examples/python/grovebutton.py
Normal file → Executable file
@ -23,13 +23,17 @@
|
||||
import time
|
||||
import pyupm_grove as grove
|
||||
|
||||
# Create the button object using GPIO pin 0
|
||||
button = grove.GroveButton(0)
|
||||
def main():
|
||||
# Create the button object using GPIO pin 0
|
||||
button = grove.GroveButton(0)
|
||||
|
||||
# Read the input and print, waiting one second between readings
|
||||
while 1:
|
||||
print button.name(), ' value is ', button.value()
|
||||
time.sleep(1)
|
||||
# Read the input and print, waiting one second between readings
|
||||
while 1:
|
||||
print button.name(), ' value is ', button.value()
|
||||
time.sleep(1)
|
||||
|
||||
# Delete the button object
|
||||
del button
|
||||
# Delete the button object
|
||||
del button
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
36
examples/python/grovecircularled.py
Normal file → Executable file
36
examples/python/grovecircularled.py
Normal file → Executable file
@ -25,26 +25,30 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_my9221 as upmGroveCircularLED
|
||||
|
||||
# Exit handlers
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
def main():
|
||||
# Exit handlers
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
def exitHandler():
|
||||
circle.setLevel(0, True)
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
def exitHandler():
|
||||
circle.setLevel(0, True)
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# This function lets you run code on exit
|
||||
atexit.register(exitHandler)
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
# This function lets you run code on exit
|
||||
atexit.register(exitHandler)
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
# Instantiate a Grove Circular LED on gpio pins 9 and 8
|
||||
circle = upmGroveCircularLED.GroveCircularLED(9, 8)
|
||||
# Instantiate a Grove Circular LED on gpio pins 9 and 8
|
||||
circle = upmGroveCircularLED.GroveCircularLED(9, 8)
|
||||
|
||||
level = 0
|
||||
level = 0
|
||||
|
||||
while(1):
|
||||
while(1):
|
||||
circle.setSpinner(level)
|
||||
level = (level + 1) % 24
|
||||
time.sleep(.1)
|
||||
time.sleep(.1)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
52
examples/python/grovecollision.py
Normal file → Executable file
52
examples/python/grovecollision.py
Normal file → Executable file
@ -24,34 +24,36 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_grovecollision as upmGrovecollision
|
||||
|
||||
# The was tested with the Grove Collision Sensor
|
||||
# Instantiate a Grove Collision on digital pin D2
|
||||
myGrovecollision = upmGrovecollision.GroveCollision(2)
|
||||
def main():
|
||||
# The was tested with the Grove Collision Sensor
|
||||
# Instantiate a Grove Collision on digital pin D2
|
||||
myGrovecollision = upmGrovecollision.GroveCollision(2)
|
||||
|
||||
## Exit handlers ##
|
||||
# This stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
## Exit handlers ##
|
||||
# This stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
# This lets you run code on exit,
|
||||
# including functions from myGrovecollision
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# This lets you run code on exit,
|
||||
# including functions from myGrovecollision
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
collisionState = False
|
||||
print "No collision"
|
||||
|
||||
while(1):
|
||||
if (myGrovecollision.isColliding() and not collisionState):
|
||||
print "Collision!"
|
||||
collisionState = True
|
||||
elif (not myGrovecollision.isColliding() and collisionState):
|
||||
print "No collision"
|
||||
collisionState = False
|
||||
|
||||
collisionState = False
|
||||
print "No collision"
|
||||
|
||||
while(1):
|
||||
if (myGrovecollision.isColliding() and not collisionState):
|
||||
print "Collision!"
|
||||
collisionState = True
|
||||
elif (not myGrovecollision.isColliding() and collisionState):
|
||||
print "No collision"
|
||||
collisionState = False
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
69
examples/python/groveehr.py
Normal file → Executable file
69
examples/python/groveehr.py
Normal file → Executable file
@ -21,48 +21,49 @@
|
||||
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_groveehr as upmGroveehr
|
||||
|
||||
# Instantiate a Grove Ear-clip Heart Rate sensor on digital pin D2
|
||||
myHeartRateSensor = upmGroveehr.GroveEHR(2)
|
||||
def main():
|
||||
# Instantiate a Grove Ear-clip Heart Rate sensor on digital pin D2
|
||||
myHeartRateSensor = upmGroveehr.GroveEHR(2)
|
||||
|
||||
## Exit handlers ##
|
||||
# This stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
## Exit handlers ##
|
||||
# This stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
# This lets you run code on exit,
|
||||
# including functions from myHeartRateSensor
|
||||
def exitHandler():
|
||||
myHeartRateSensor.stopBeatCounter()
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# This lets you run code on exit,
|
||||
# including functions from myHeartRateSensor
|
||||
def exitHandler():
|
||||
myHeartRateSensor.stopBeatCounter()
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
# set the beat counter to 0, init the clock and start counting beats
|
||||
myHeartRateSensor.clearBeatCounter()
|
||||
myHeartRateSensor.initClock()
|
||||
myHeartRateSensor.startBeatCounter()
|
||||
|
||||
while(1):
|
||||
# we grab these (millis and flowCount) just for display
|
||||
# purposes in this example
|
||||
millis = myHeartRateSensor.getMillis()
|
||||
beats = myHeartRateSensor.beatCounter()
|
||||
|
||||
# set the beat counter to 0, init the clock and start counting beats
|
||||
myHeartRateSensor.clearBeatCounter()
|
||||
myHeartRateSensor.initClock()
|
||||
myHeartRateSensor.startBeatCounter()
|
||||
# heartRate() requires that at least 5 seconds pass before
|
||||
# returning anything other than 0
|
||||
fr = myHeartRateSensor.heartRate()
|
||||
|
||||
while(1):
|
||||
# we grab these (millis and flowCount) just for display
|
||||
# purposes in this example
|
||||
millis = myHeartRateSensor.getMillis()
|
||||
beats = myHeartRateSensor.beatCounter()
|
||||
# output milliseconds passed, beat count, and computed heart rate
|
||||
outputStr = "Millis: {0} Beats: {1} Heart Rate: {2}".format(
|
||||
millis, beats, fr)
|
||||
print outputStr
|
||||
time.sleep(1)
|
||||
|
||||
# heartRate() requires that at least 5 seconds pass before
|
||||
# returning anything other than 0
|
||||
fr = myHeartRateSensor.heartRate()
|
||||
|
||||
# output milliseconds passed, beat count, and computed heart rate
|
||||
outputStr = "Millis: {0} Beats: {1} Heart Rate: {2}".format(
|
||||
millis, beats, fr)
|
||||
print outputStr
|
||||
time.sleep(1)
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
50
examples/python/groveeldriver.py
Normal file → Executable file
50
examples/python/groveeldriver.py
Normal file → Executable file
@ -24,34 +24,36 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_groveeldriver as upmGroveeldriver
|
||||
|
||||
# The was tested with the Grove El Driver Module
|
||||
# Instantiate a Grove El Driver on digital pin D2
|
||||
myEldriver = upmGroveeldriver.GroveElDriver(2)
|
||||
def main():
|
||||
# The was tested with the Grove El Driver Module
|
||||
# Instantiate a Grove El Driver on digital pin D2
|
||||
myEldriver = upmGroveeldriver.GroveElDriver(2)
|
||||
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
# This function lets you run code on exit, including functions from myEldriver
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
myEldriver.off()
|
||||
sys.exit(0)
|
||||
|
||||
# This function lets you run code on exit, including functions from myEldriver
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
myEldriver.off()
|
||||
sys.exit(0)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
lightState = True
|
||||
|
||||
while(1):
|
||||
if (lightState):
|
||||
myEldriver.on()
|
||||
else:
|
||||
myEldriver.off()
|
||||
lightState = not lightState
|
||||
|
||||
lightState = True
|
||||
time.sleep(1)
|
||||
|
||||
while(1):
|
||||
if (lightState):
|
||||
myEldriver.on()
|
||||
else:
|
||||
myEldriver.off()
|
||||
lightState = not lightState
|
||||
|
||||
time.sleep(1)
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
56
examples/python/groveelectromagnet.py
Normal file → Executable file
56
examples/python/groveelectromagnet.py
Normal file → Executable file
@ -24,37 +24,39 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_groveelectromagnet as upmGroveelectromagnet
|
||||
|
||||
# This was tested with the Grove Electromagnetic Module
|
||||
# Instantiate a Grove Electromagnet on digital pin D2
|
||||
myElectromagnet = upmGroveelectromagnet.GroveElectromagnet(2)
|
||||
def main():
|
||||
# This was tested with the Grove Electromagnetic Module
|
||||
# Instantiate a Grove Electromagnet on digital pin D2
|
||||
myElectromagnet = upmGroveelectromagnet.GroveElectromagnet(2)
|
||||
|
||||
## Exit handlers ##
|
||||
# This stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
## Exit handlers ##
|
||||
# This stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
# This lets you run code on exit,
|
||||
# including functions from myElectromagnet
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
myElectromagnet.off()
|
||||
sys.exit(0)
|
||||
|
||||
# This lets you run code on exit,
|
||||
# including functions from myElectromagnet
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
myElectromagnet.off()
|
||||
sys.exit(0)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
magnetState = False
|
||||
|
||||
# Turn magnet on and off every 5 seconds
|
||||
while(1):
|
||||
magnetState = not magnetState
|
||||
if (magnetState):
|
||||
myElectromagnet.on()
|
||||
else:
|
||||
myElectromagnet.off()
|
||||
print "Turning magnet", ("on" if magnetState else "off")
|
||||
|
||||
magnetState = False
|
||||
time.sleep(5)
|
||||
|
||||
# Turn magnet on and off every 5 seconds
|
||||
while(1):
|
||||
magnetState = not magnetState
|
||||
if (magnetState):
|
||||
myElectromagnet.on()
|
||||
else:
|
||||
myElectromagnet.off()
|
||||
print "Turning magnet", ("on" if magnetState else "off")
|
||||
|
||||
time.sleep(5)
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
42
examples/python/groveemg.py
Normal file → Executable file
42
examples/python/groveemg.py
Normal file → Executable file
@ -24,29 +24,31 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_groveemg as upmGroveemg
|
||||
|
||||
# Tested with the GroveEMG Muscle Signal Reader Sensor Module
|
||||
# Instantiate a GroveEMG on analog pin A0
|
||||
myEMG = upmGroveemg.GroveEMG(0)
|
||||
def main():
|
||||
# Tested with the GroveEMG Muscle Signal Reader Sensor Module
|
||||
# Instantiate a GroveEMG on analog pin A0
|
||||
myEMG = upmGroveemg.GroveEMG(0)
|
||||
|
||||
## Exit handlers ##
|
||||
# This stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
## Exit handlers ##
|
||||
# This stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
# This lets you run code on exit, including functions from myEMG
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# This lets you run code on exit, including functions from myEMG
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
print "Calibrating...."
|
||||
myEMG.calibrate()
|
||||
|
||||
while (1):
|
||||
print myEMG.value()
|
||||
time.sleep(.1)
|
||||
|
||||
print "Calibrating...."
|
||||
myEMG.calibrate()
|
||||
|
||||
while (1):
|
||||
print myEMG.value()
|
||||
time.sleep(.1)
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
78
examples/python/grovegprs.py
Normal file → Executable file
78
examples/python/grovegprs.py
Normal file → Executable file
@ -24,54 +24,53 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_grovegprs as sensorObj
|
||||
|
||||
# Instantiate a GroveGPRS Module on UART 0
|
||||
sensor = sensorObj.GroveGPRS(0)
|
||||
def main():
|
||||
# Instantiate a GroveGPRS Module on UART 0
|
||||
sensor = sensorObj.GroveGPRS(0)
|
||||
|
||||
## Exit handlers ##
|
||||
# This stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
## Exit handlers ##
|
||||
# This stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
# This function lets you run code on exit
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
# This function lets you run code on exit
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
# Set the baud rate, 19200 baud is the default.
|
||||
if (sensor.setBaudRate(19200)):
|
||||
print "Failed to set baud rate"
|
||||
sys.exit(0)
|
||||
# Set the baud rate, 19200 baud is the default.
|
||||
if (sensor.setBaudRate(19200)):
|
||||
print "Failed to set baud rate"
|
||||
sys.exit(0)
|
||||
|
||||
usageStr = ("Usage:\n"
|
||||
"If an argument is supplied on the command line, that argument is\n"
|
||||
"sent to the module and the response is printed out.\n\n"
|
||||
"If no argument is used, then the manufacturer and the current\n"
|
||||
"saved profiles are queried and the results printed out.\n\n")
|
||||
print usageStr
|
||||
|
||||
usageStr = ("Usage:\n"
|
||||
"If an argument is supplied on the command line, that argument is\n"
|
||||
"sent to the module and the response is printed out.\n\n"
|
||||
"If no argument is used, then the manufacturer and the current\n"
|
||||
"saved profiles are queried and the results printed out.\n\n")
|
||||
print usageStr
|
||||
|
||||
# simple helper function to send a command and wait for a response
|
||||
def sendCommand(sensor, cmd):
|
||||
# simple helper function to send a command and wait for a response
|
||||
def sendCommand(sensor, cmd):
|
||||
# commands need to be terminated with a carriage return
|
||||
cmd += "\r";
|
||||
sensor.writeDataStr(cmd)
|
||||
sensor.writeDataStr(cmd)
|
||||
|
||||
# wait up to 1 second
|
||||
if (sensor.dataAvailable(1000)):
|
||||
print "Returned: ",
|
||||
print sensor.readDataStr(1024)
|
||||
else:
|
||||
print "Timed out waiting for response"
|
||||
# wait up to 1 second
|
||||
if (sensor.dataAvailable(1000)):
|
||||
print "Returned: ",
|
||||
print sensor.readDataStr(1024)
|
||||
else:
|
||||
print "Timed out waiting for response"
|
||||
|
||||
|
||||
if (len(sys.argv) > 1):
|
||||
print "Sending command line argument (" + sys.argv[1] + ")..."
|
||||
sendCommand(sensor, sys.argv[1])
|
||||
else:
|
||||
if (len(sys.argv) > 1):
|
||||
print "Sending command line argument (" + sys.argv[1] + ")..."
|
||||
sendCommand(sensor, sys.argv[1])
|
||||
else:
|
||||
# query the module manufacturer
|
||||
print "Querying module manufacturer (AT+CGMI)..."
|
||||
sendCommand(sensor, "AT+CGMI");
|
||||
@ -84,3 +83,6 @@ else:
|
||||
|
||||
# A comprehensive list is available from the datasheet at:
|
||||
# http://www.seeedstudio.com/wiki/images/7/72/AT_Commands_v1.11.pdf
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
42
examples/python/grovegsr.py
Normal file → Executable file
42
examples/python/grovegsr.py
Normal file → Executable file
@ -24,30 +24,32 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_grovegsr as upmGrovegsr
|
||||
|
||||
# Tested with the GroveGSR Galvanic Skin Response Sensor module.
|
||||
def main():
|
||||
# Tested with the GroveGSR Galvanic Skin Response Sensor module.
|
||||
|
||||
# Instantiate a GroveGSR on analog pin A0
|
||||
myGSR = upmGrovegsr.GroveGSR(0)
|
||||
# Instantiate a GroveGSR on analog pin A0
|
||||
myGSR = upmGrovegsr.GroveGSR(0)
|
||||
|
||||
## Exit handlers ##
|
||||
# This stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
## Exit handlers ##
|
||||
# This stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
# This lets you run code on exit, including functions from myGSR
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# This lets you run code on exit, including functions from myGSR
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
print "Calibrating...."
|
||||
myGSR.calibrate()
|
||||
|
||||
while (1):
|
||||
print myGSR.value()
|
||||
time.sleep(.5)
|
||||
|
||||
print "Calibrating...."
|
||||
myGSR.calibrate()
|
||||
|
||||
while (1):
|
||||
print myGSR.value()
|
||||
time.sleep(.5)
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
30
examples/python/groveled.py
Normal file → Executable file
30
examples/python/groveled.py
Normal file → Executable file
@ -23,19 +23,23 @@
|
||||
import time
|
||||
import pyupm_grove as grove
|
||||
|
||||
# Create the Grove LED object using GPIO pin 2
|
||||
led = grove.GroveLed(2)
|
||||
def main():
|
||||
# Create the Grove LED object using GPIO pin 2
|
||||
led = grove.GroveLed(2)
|
||||
|
||||
# Print the name
|
||||
print led.name()
|
||||
# Print the name
|
||||
print led.name()
|
||||
|
||||
# Turn the LED on and off 10 times, pausing one second
|
||||
# between transitions
|
||||
for i in range (0,10):
|
||||
led.on()
|
||||
time.sleep(1)
|
||||
led.off()
|
||||
time.sleep(1)
|
||||
# Turn the LED on and off 10 times, pausing one second
|
||||
# between transitions
|
||||
for i in range (0,10):
|
||||
led.on()
|
||||
time.sleep(1)
|
||||
led.off()
|
||||
time.sleep(1)
|
||||
|
||||
# Delete the Grove LED object
|
||||
del led
|
||||
# Delete the Grove LED object
|
||||
del led
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
66
examples/python/groveledbar.py
Normal file → Executable file
66
examples/python/groveledbar.py
Normal file → Executable file
@ -24,41 +24,43 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_my9221 as upmMy9221
|
||||
|
||||
# Instantiate a MY9221, we use D8 for the data, and D9 for the
|
||||
# data clock. This was tested with a Grove LED bar.
|
||||
myLEDBar = upmMy9221.GroveLEDBar(8, 9)
|
||||
def main():
|
||||
# Instantiate a MY9221, we use D8 for the data, and D9 for the
|
||||
# data clock. This was tested with a Grove LED bar.
|
||||
myLEDBar = upmMy9221.GroveLEDBar(8, 9)
|
||||
|
||||
# Exit handlers
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
# Exit handlers
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
def exitHandler():
|
||||
myLEDBar.setBarLevel(0, True)
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
def exitHandler():
|
||||
myLEDBar.setBarLevel(0, True)
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
# This function lets you run code on exit
|
||||
atexit.register(exitHandler)
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
# This function lets you run code on exit
|
||||
atexit.register(exitHandler)
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
directionBool = True
|
||||
level = 1
|
||||
|
||||
x = 0
|
||||
while(1):
|
||||
# If it's less than 10
|
||||
# light up the LED now
|
||||
# call show_LED again in 50 ms
|
||||
if (level <= 10):
|
||||
myLEDBar.setBarLevel(level, directionBool)
|
||||
level += 1
|
||||
# Switch LED lighting directions between lighting cycles
|
||||
else:
|
||||
directionBool = not directionBool
|
||||
level = 1
|
||||
time.sleep(1)
|
||||
time.sleep(.05)
|
||||
x += 1
|
||||
|
||||
directionBool = True
|
||||
level = 1
|
||||
|
||||
x = 0
|
||||
while(1):
|
||||
# If it's less than 10
|
||||
# light up the LED now
|
||||
# call show_LED again in 50 ms
|
||||
if (level <= 10):
|
||||
myLEDBar.setBarLevel(level, directionBool)
|
||||
level += 1
|
||||
# Switch LED lighting directions between lighting cycles
|
||||
else:
|
||||
directionBool = not directionBool
|
||||
level = 1
|
||||
time.sleep(1)
|
||||
time.sleep(.05)
|
||||
x += 1
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
24
examples/python/grovelight.py
Normal file → Executable file
24
examples/python/grovelight.py
Normal file → Executable file
@ -23,15 +23,19 @@
|
||||
import time
|
||||
import pyupm_grove as grove
|
||||
|
||||
# Create the light sensor object using AIO pin 0
|
||||
light = grove.GroveLight(0)
|
||||
def main():
|
||||
# Create the light sensor object using AIO pin 0
|
||||
light = grove.GroveLight(0)
|
||||
|
||||
# Read the input and print both the raw value and a rough lux value,
|
||||
# waiting one second between readings
|
||||
while 1:
|
||||
print light.name() + " raw value is %d" % light.raw_value() + \
|
||||
", which is roughly %d" % light.value() + " lux";
|
||||
time.sleep(1)
|
||||
# Read the input and print both the raw value and a rough lux value,
|
||||
# waiting one second between readings
|
||||
while 1:
|
||||
print light.name() + " raw value is %d" % light.raw_value() + \
|
||||
", which is roughly %d" % light.value() + " lux";
|
||||
time.sleep(1)
|
||||
|
||||
# Delete the light sensor object
|
||||
del light
|
||||
# Delete the light sensor object
|
||||
del light
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
42
examples/python/grovelinefinder.py
Normal file → Executable file
42
examples/python/grovelinefinder.py
Normal file → Executable file
@ -24,28 +24,30 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_grovelinefinder as upmGrovelinefinder
|
||||
|
||||
# Instantiate a Grove line finder sensor on digital pin D2
|
||||
myLineFinder = upmGrovelinefinder.GroveLineFinder(2)
|
||||
def main():
|
||||
# Instantiate a Grove line finder sensor on digital pin D2
|
||||
myLineFinder = upmGrovelinefinder.GroveLineFinder(2)
|
||||
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
# This function lets you run code on exit, including functions from myLineFinder
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# This function lets you run code on exit, including functions from myLineFinder
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
while(1):
|
||||
if (myLineFinder.whiteDetected()):
|
||||
print "White detected."
|
||||
else:
|
||||
print "Black detected."
|
||||
time.sleep(1)
|
||||
|
||||
|
||||
while(1):
|
||||
if (myLineFinder.whiteDetected()):
|
||||
print "White detected."
|
||||
else:
|
||||
print "Black detected."
|
||||
time.sleep(1)
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
37
examples/python/grovemd-stepper.py
Normal file → Executable file
37
examples/python/grovemd-stepper.py
Normal file → Executable file
@ -24,29 +24,32 @@
|
||||
import time
|
||||
import pyupm_grovemd as upmGrovemd
|
||||
|
||||
I2C_BUS = upmGrovemd.GROVEMD_I2C_BUS
|
||||
I2C_ADDR = upmGrovemd.GROVEMD_DEFAULT_I2C_ADDR
|
||||
def main():
|
||||
I2C_BUS = upmGrovemd.GROVEMD_I2C_BUS
|
||||
I2C_ADDR = upmGrovemd.GROVEMD_DEFAULT_I2C_ADDR
|
||||
|
||||
# Instantiate an I2C Grove Motor Driver on I2C bus 0
|
||||
myMotorDriver = upmGrovemd.GroveMD(I2C_BUS, I2C_ADDR)
|
||||
# Instantiate an I2C Grove Motor Driver on I2C bus 0
|
||||
myMotorDriver = upmGrovemd.GroveMD(I2C_BUS, I2C_ADDR)
|
||||
|
||||
# This example demonstrates using the GroveMD to drive a stepper motor
|
||||
# This example demonstrates using the GroveMD to drive a stepper motor
|
||||
|
||||
# configure it, for this example, we'll assume 200 steps per rev
|
||||
myMotorDriver.configStepper(200)
|
||||
# configure it, for this example, we'll assume 200 steps per rev
|
||||
myMotorDriver.configStepper(200)
|
||||
|
||||
# set for half a rotation
|
||||
myMotorDriver.setStepperSteps(100)
|
||||
# set for half a rotation
|
||||
myMotorDriver.setStepperSteps(100)
|
||||
|
||||
# let it go - clockwise rotation, 10 RPM speed
|
||||
myMotorDriver.enableStepper(upmGrovemd.GroveMD.STEP_DIR_CW, 10)
|
||||
# let it go - clockwise rotation, 10 RPM speed
|
||||
myMotorDriver.enableStepper(upmGrovemd.GroveMD.STEP_DIR_CW, 10)
|
||||
|
||||
time.sleep(3)
|
||||
time.sleep(3)
|
||||
|
||||
# Now do it backwards...
|
||||
myMotorDriver.setStepperSteps(100)
|
||||
myMotorDriver.enableStepper(upmGrovemd.GroveMD.STEP_DIR_CCW, 10)
|
||||
# Now do it backwards...
|
||||
myMotorDriver.setStepperSteps(100)
|
||||
myMotorDriver.enableStepper(upmGrovemd.GroveMD.STEP_DIR_CCW, 10)
|
||||
|
||||
# now disable
|
||||
myMotorDriver.disableStepper()
|
||||
# now disable
|
||||
myMotorDriver.disableStepper()
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
35
examples/python/grovemd.py
Normal file → Executable file
35
examples/python/grovemd.py
Normal file → Executable file
@ -24,24 +24,27 @@
|
||||
import time
|
||||
import pyupm_grovemd as upmGrovemd
|
||||
|
||||
I2C_BUS = upmGrovemd.GROVEMD_I2C_BUS
|
||||
I2C_ADDR = upmGrovemd.GROVEMD_DEFAULT_I2C_ADDR
|
||||
def main():
|
||||
I2C_BUS = upmGrovemd.GROVEMD_I2C_BUS
|
||||
I2C_ADDR = upmGrovemd.GROVEMD_DEFAULT_I2C_ADDR
|
||||
|
||||
# Instantiate an I2C Grove Motor Driver on I2C bus 0
|
||||
myMotorDriver = upmGrovemd.GroveMD(I2C_BUS, I2C_ADDR)
|
||||
# Instantiate an I2C Grove Motor Driver on I2C bus 0
|
||||
myMotorDriver = upmGrovemd.GroveMD(I2C_BUS, I2C_ADDR)
|
||||
|
||||
# set direction to CW and set speed to 50%
|
||||
print "Spin M1 and M2 at half speed for 3 seconds"
|
||||
myMotorDriver.setMotorDirections(upmGrovemd.GroveMD.DIR_CW, upmGrovemd.GroveMD.DIR_CW)
|
||||
myMotorDriver.setMotorSpeeds(127, 127)
|
||||
|
||||
# set direction to CW and set speed to 50%
|
||||
print "Spin M1 and M2 at half speed for 3 seconds"
|
||||
myMotorDriver.setMotorDirections(upmGrovemd.GroveMD.DIR_CW, upmGrovemd.GroveMD.DIR_CW)
|
||||
myMotorDriver.setMotorSpeeds(127, 127)
|
||||
time.sleep(3)
|
||||
# counter clockwise
|
||||
print "Reversing M1 and M2 for 3 seconds"
|
||||
myMotorDriver.setMotorDirections(upmGrovemd.GroveMD.DIR_CCW,
|
||||
upmGrovemd.GroveMD.DIR_CCW)
|
||||
time.sleep(3)
|
||||
|
||||
time.sleep(3)
|
||||
# counter clockwise
|
||||
print "Reversing M1 and M2 for 3 seconds"
|
||||
myMotorDriver.setMotorDirections(upmGrovemd.GroveMD.DIR_CCW,
|
||||
upmGrovemd.GroveMD.DIR_CCW)
|
||||
time.sleep(3)
|
||||
print "Stopping motors"
|
||||
myMotorDriver.setMotorSpeeds(0, 0)
|
||||
|
||||
print "Stopping motors"
|
||||
myMotorDriver.setMotorSpeeds(0, 0)
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
60
examples/python/grovemoisture.py
Normal file → Executable file
60
examples/python/grovemoisture.py
Normal file → Executable file
@ -24,38 +24,40 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_grovemoisture as upmMoisture
|
||||
|
||||
# Instantiate a Grove Moisture sensor on analog pin A0
|
||||
myMoisture = upmMoisture.GroveMoisture(0)
|
||||
def main():
|
||||
# Instantiate a Grove Moisture sensor on analog pin A0
|
||||
myMoisture = upmMoisture.GroveMoisture(0)
|
||||
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
# This function lets you run code on exit, including functions from myMoisture
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# This function lets you run code on exit, including functions from myMoisture
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
# Values (approximate):
|
||||
# 0-300, sensor in air or dry soil
|
||||
# 300-600, sensor in humid soil
|
||||
# 600+, sensor in wet soil or submerged in water
|
||||
|
||||
# Read the value every second and print the corresponding moisture level
|
||||
while(1):
|
||||
moisture_val = myMoisture.value()
|
||||
if (moisture_val >= 0 and moisture_val < 300):
|
||||
result = "Dry"
|
||||
elif (moisture_val >= 300 and moisture_val < 600):
|
||||
result = "Moist"
|
||||
else:
|
||||
result = "Wet"
|
||||
print "Moisture value: {0}, {1}".format(moisture_val, result)
|
||||
time.sleep(1)
|
||||
|
||||
# Values (approximate):
|
||||
# 0-300, sensor in air or dry soil
|
||||
# 300-600, sensor in humid soil
|
||||
# 600+, sensor in wet soil or submerged in water
|
||||
|
||||
# Read the value every second and print the corresponding moisture level
|
||||
while(1):
|
||||
moisture_val = myMoisture.value()
|
||||
if (moisture_val >= 0 and moisture_val < 300):
|
||||
result = "Dry"
|
||||
elif (moisture_val >= 300 and moisture_val < 600):
|
||||
result = "Moist"
|
||||
else:
|
||||
result = "Wet"
|
||||
print "Moisture value: {0}, {1}".format(moisture_val, result)
|
||||
time.sleep(1)
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
40
examples/python/groveo2.py
Normal file → Executable file
40
examples/python/groveo2.py
Normal file → Executable file
@ -24,28 +24,30 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_groveo2 as upmGroveo2
|
||||
|
||||
# This was tested with the O2 Oxygen Concentration Sensor Module
|
||||
# Instantiate a GroveO2 on analog pin A0
|
||||
myGroveO2 = upmGroveo2.GroveO2(0)
|
||||
def main():
|
||||
# This was tested with the O2 Oxygen Concentration Sensor Module
|
||||
# Instantiate a GroveO2 on analog pin A0
|
||||
myGroveO2 = upmGroveo2.GroveO2(0)
|
||||
|
||||
## Exit handlers ##
|
||||
# This stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
## Exit handlers ##
|
||||
# This stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
# This lets you run code on exit, including functions from myGroveO2
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# This lets you run code on exit, including functions from myGroveO2
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
while(1):
|
||||
print "The output voltage is: {0}mV".format(
|
||||
myGroveO2.voltageValue())
|
||||
|
||||
time.sleep(.1)
|
||||
|
||||
while(1):
|
||||
print "The output voltage is: {0}mV".format(
|
||||
myGroveO2.voltageValue())
|
||||
|
||||
time.sleep(.1)
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
38
examples/python/groverelay.py
Normal file → Executable file
38
examples/python/groverelay.py
Normal file → Executable file
@ -23,22 +23,26 @@
|
||||
import time
|
||||
import pyupm_grove as grove
|
||||
|
||||
# Create the relay switch object using GPIO pin 0
|
||||
relay = grove.GroveRelay(0)
|
||||
def main():
|
||||
# Create the relay switch object using GPIO pin 0
|
||||
relay = grove.GroveRelay(0)
|
||||
|
||||
# Close and then open the relay switch 3 times,
|
||||
# waiting one second each time. The LED on the relay switch
|
||||
# will light up when the switch is on (closed).
|
||||
# The switch will also make a noise between transitions.
|
||||
for i in range (0,3):
|
||||
relay.on()
|
||||
if relay.isOn():
|
||||
print relay.name(), 'is on'
|
||||
time.sleep(1)
|
||||
relay.off()
|
||||
if relay.isOff():
|
||||
print relay.name(), 'is off'
|
||||
time.sleep(1)
|
||||
# Close and then open the relay switch 3 times,
|
||||
# waiting one second each time. The LED on the relay switch
|
||||
# will light up when the switch is on (closed).
|
||||
# The switch will also make a noise between transitions.
|
||||
for i in range (0,3):
|
||||
relay.on()
|
||||
if relay.isOn():
|
||||
print relay.name(), 'is on'
|
||||
time.sleep(1)
|
||||
relay.off()
|
||||
if relay.isOff():
|
||||
print relay.name(), 'is off'
|
||||
time.sleep(1)
|
||||
|
||||
# Delete the relay switch object
|
||||
del relay
|
||||
# Delete the relay switch object
|
||||
del relay
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
33
examples/python/groverotary.py
Normal file → Executable file
33
examples/python/groverotary.py
Normal file → Executable file
@ -23,23 +23,26 @@
|
||||
from time import sleep
|
||||
import pyupm_grove as grove
|
||||
|
||||
# New knob on AIO pin 0
|
||||
knob = grove.GroveRotary(0)
|
||||
def main():
|
||||
# New knob on AIO pin 0
|
||||
knob = grove.GroveRotary(0)
|
||||
|
||||
# Loop indefinitely
|
||||
while True:
|
||||
# Loop indefinitely
|
||||
while True:
|
||||
# Read values
|
||||
abs = knob.abs_value()
|
||||
absdeg = knob.abs_deg()
|
||||
absrad = knob.abs_rad()
|
||||
|
||||
# Read values
|
||||
abs = knob.abs_value()
|
||||
absdeg = knob.abs_deg()
|
||||
absrad = knob.abs_rad()
|
||||
rel = knob.rel_value()
|
||||
reldeg = knob.rel_deg()
|
||||
relrad = knob.rel_rad()
|
||||
|
||||
rel = knob.rel_value()
|
||||
reldeg = knob.rel_deg()
|
||||
relrad = knob.rel_rad()
|
||||
print "Abs values: %4d" % int(abs) , " raw %4d" % int(absdeg), "deg = %5.2f" % absrad , " rad ",
|
||||
print "Rel values: %4d" % int(rel) , " raw %4d" % int(reldeg), "deg = %5.2f" % relrad , " rad"
|
||||
|
||||
print "Abs values: %4d" % int(abs) , " raw %4d" % int(absdeg), "deg = %5.2f" % absrad , " rad ",
|
||||
print "Rel values: %4d" % int(rel) , " raw %4d" % int(reldeg), "deg = %5.2f" % relrad , " rad"
|
||||
# Sleep for 2.5 s
|
||||
sleep(2.5)
|
||||
|
||||
# Sleep for 2.5 s
|
||||
sleep(2.5)
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
40
examples/python/grovescam.py
Normal file → Executable file
40
examples/python/grovescam.py
Normal file → Executable file
@ -25,37 +25,41 @@
|
||||
import sys
|
||||
import pyupm_grovescam as upmGrovescam
|
||||
|
||||
# Instantiate a Grove Serial Camera on UART 0
|
||||
camera = upmGrovescam.GROVESCAM(0)
|
||||
def main():
|
||||
# Instantiate a Grove Serial Camera on UART 0
|
||||
camera = upmGrovescam.GROVESCAM(0)
|
||||
|
||||
# make sure port is initialized properly. 115200 baud is the default.
|
||||
if (not camera.setupTty()):
|
||||
print "Failed to setup tty port parameters"
|
||||
sys.exit(1)
|
||||
# make sure port is initialized properly. 115200 baud is the default.
|
||||
if (not camera.setupTty()):
|
||||
print "Failed to setup tty port parameters"
|
||||
sys.exit(1)
|
||||
|
||||
if (camera.init()):
|
||||
if (camera.init()):
|
||||
print "Initialized..."
|
||||
else:
|
||||
else:
|
||||
print "init() failed"
|
||||
|
||||
if (camera.preCapture()):
|
||||
if (camera.preCapture()):
|
||||
print "preCapture succeeded..."
|
||||
else:
|
||||
else:
|
||||
print "preCapture failed."
|
||||
|
||||
if (camera.doCapture()):
|
||||
if (camera.doCapture()):
|
||||
print "doCapture succeeded..."
|
||||
else:
|
||||
else:
|
||||
print "doCapture failed."
|
||||
|
||||
print "Image size is", camera.getImageSize(), "bytes"
|
||||
print "Image size is", camera.getImageSize(), "bytes"
|
||||
|
||||
if (camera.getImageSize() > 0):
|
||||
if (camera.getImageSize() > 0):
|
||||
print "Storing image.jpg..."
|
||||
if (camera.storeImage("image.jpg")):
|
||||
print "storeImage succeeded..."
|
||||
print "storeImage succeeded..."
|
||||
else:
|
||||
print "storeImage failed."
|
||||
print "storeImage failed."
|
||||
|
||||
print "Exiting."
|
||||
sys.exit(0)
|
||||
print "Exiting."
|
||||
sys.exit(0)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
23
examples/python/groveslide.py
Normal file → Executable file
23
examples/python/groveslide.py
Normal file → Executable file
@ -23,17 +23,20 @@
|
||||
from time import sleep
|
||||
import pyupm_grove as grove
|
||||
|
||||
# New Grove Slider on AIO pin 0
|
||||
slider = grove.GroveSlide(0)
|
||||
def main():
|
||||
# New Grove Slider on AIO pin 0
|
||||
slider = grove.GroveSlide(0)
|
||||
|
||||
# Loop indefinitely
|
||||
while True:
|
||||
# Loop indefinitely
|
||||
while True:
|
||||
# Read values
|
||||
raw = slider.raw_value()
|
||||
volts = slider.voltage_value()
|
||||
|
||||
# Read values
|
||||
raw = slider.raw_value()
|
||||
volts = slider.voltage_value()
|
||||
print "Slider value: ", raw , " = %.2f" % volts , " V"
|
||||
|
||||
print "Slider value: ", raw , " = %.2f" % volts , " V"
|
||||
# Sleep for 2.5 s
|
||||
sleep(2.5)
|
||||
|
||||
# Sleep for 2.5 s
|
||||
sleep(2.5)
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
16
examples/python/grovespeaker.py
Normal file → Executable file
16
examples/python/grovespeaker.py
Normal file → Executable file
@ -24,11 +24,15 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_grovespeaker as upmGrovespeaker
|
||||
|
||||
# Instantiate a Grove Speaker on digital pin D2
|
||||
mySpeaker = upmGrovespeaker.GroveSpeaker(2)
|
||||
def main():
|
||||
# Instantiate a Grove Speaker on digital pin D2
|
||||
mySpeaker = upmGrovespeaker.GroveSpeaker(2)
|
||||
|
||||
# Play all 7 of the lowest notes
|
||||
mySpeaker.playAll()
|
||||
# Play all 7 of the lowest notes
|
||||
mySpeaker.playAll()
|
||||
|
||||
# Play a medium C-sharp
|
||||
mySpeaker.playSound('c', True, "med")
|
||||
# Play a medium C-sharp
|
||||
mySpeaker.playSound('c', True, "med")
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
30
examples/python/grovetemp.py
Normal file → Executable file
30
examples/python/grovetemp.py
Normal file → Executable file
@ -24,18 +24,22 @@
|
||||
import time
|
||||
import pyupm_grove as grove
|
||||
|
||||
# Create the temperature sensor object using AIO pin 0
|
||||
temp = grove.GroveTemp(0)
|
||||
print temp.name()
|
||||
def main():
|
||||
# Create the temperature sensor object using AIO pin 0
|
||||
temp = grove.GroveTemp(0)
|
||||
print temp.name()
|
||||
|
||||
# Read the temperature ten times, printing both the Celsius and
|
||||
# equivalent Fahrenheit temperature, waiting one second between readings
|
||||
for i in range(0, 10):
|
||||
celsius = temp.value()
|
||||
fahrenheit = celsius * 9.0/5.0 + 32.0;
|
||||
print "%d degrees Celsius, or %d degrees Fahrenheit" \
|
||||
% (celsius, fahrenheit)
|
||||
time.sleep(1)
|
||||
# Read the temperature ten times, printing both the Celsius and
|
||||
# equivalent Fahrenheit temperature, waiting one second between readings
|
||||
for i in range(0, 10):
|
||||
celsius = temp.value()
|
||||
fahrenheit = celsius * 9.0/5.0 + 32.0;
|
||||
print "%d degrees Celsius, or %d degrees Fahrenheit" \
|
||||
% (celsius, fahrenheit)
|
||||
time.sleep(1)
|
||||
|
||||
# Delete the temperature sensor object
|
||||
del temp
|
||||
# Delete the temperature sensor object
|
||||
del temp
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
46
examples/python/grovevdiv.py
Normal file → Executable file
46
examples/python/grovevdiv.py
Normal file → Executable file
@ -24,31 +24,33 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_grovevdiv as upmGrovevdiv
|
||||
|
||||
# Instantiate a Grove Voltage Divider sensor on analog pin A0
|
||||
myVoltageDivider = upmGrovevdiv.GroveVDiv(0)
|
||||
def main():
|
||||
# Instantiate a Grove Voltage Divider sensor on analog pin A0
|
||||
myVoltageDivider = upmGrovevdiv.GroveVDiv(0)
|
||||
|
||||
## Exit handlers ##
|
||||
# This stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
## Exit handlers ##
|
||||
# This stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
# This function lets you run code on exit,
|
||||
# including functions from myVoltageDivider
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# This function lets you run code on exit,
|
||||
# including functions from myVoltageDivider
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
while(1):
|
||||
val = myVoltageDivider.value(100)
|
||||
gain3val = myVoltageDivider.computedValue(3, val)
|
||||
gain10val = myVoltageDivider.computedValue(10, val)
|
||||
print "ADC value: {0} Gain 3: {1}v Gain 10: {2}v".format(
|
||||
val, gain3val, gain10val)
|
||||
|
||||
time.sleep(1)
|
||||
|
||||
while(1):
|
||||
val = myVoltageDivider.value(100)
|
||||
gain3val = myVoltageDivider.computedValue(3, val)
|
||||
gain10val = myVoltageDivider.computedValue(10, val)
|
||||
print "ADC value: {0} Gain 3: {1}v Gain 10: {2}v".format(
|
||||
val, gain3val, gain10val)
|
||||
|
||||
time.sleep(1)
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
42
examples/python/grovewater.py
Normal file → Executable file
42
examples/python/grovewater.py
Normal file → Executable file
@ -24,28 +24,30 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_grovewater as upmGrovewater
|
||||
|
||||
# Instantiate a Grove Water sensor on digital pin D2
|
||||
myWaterSensor = upmGrovewater.GroveWater(2)
|
||||
def main():
|
||||
# Instantiate a Grove Water sensor on digital pin D2
|
||||
myWaterSensor = upmGrovewater.GroveWater(2)
|
||||
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
# This function lets you run code on exit, including functions from myWaterSensor
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# This function lets you run code on exit, including functions from myWaterSensor
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
while(1):
|
||||
if (myWaterSensor.isWet()):
|
||||
print "Sensor is wet"
|
||||
else:
|
||||
print "Sensor is dry"
|
||||
time.sleep(1)
|
||||
|
||||
|
||||
while(1):
|
||||
if (myWaterSensor.isWet()):
|
||||
print "Sensor is wet"
|
||||
else:
|
||||
print "Sensor is dry"
|
||||
time.sleep(1)
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
62
examples/python/grovewfs.py
Normal file → Executable file
62
examples/python/grovewfs.py
Normal file → Executable file
@ -24,41 +24,43 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_grovewfs as upmGrovewfs
|
||||
|
||||
# Instantiate a Grove Water Flow Sensor on digital pin D2
|
||||
myWaterFlow = upmGrovewfs.GroveWFS(2)
|
||||
def main():
|
||||
# Instantiate a Grove Water Flow Sensor on digital pin D2
|
||||
myWaterFlow = upmGrovewfs.GroveWFS(2)
|
||||
|
||||
## Exit handlers ##
|
||||
# This stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
## Exit handlers ##
|
||||
# This stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
# This function lets you run code on exit,
|
||||
# including functions from myWaterFlow
|
||||
def exitHandler():
|
||||
myWaterFlow.stopFlowCounter()
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# This function lets you run code on exit,
|
||||
# including functions from myWaterFlow
|
||||
def exitHandler():
|
||||
myWaterFlow.stopFlowCounter()
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
# set the flow counter to 0 and start counting
|
||||
myWaterFlow.clearFlowCounter()
|
||||
myWaterFlow.startFlowCounter()
|
||||
|
||||
while (1):
|
||||
# we grab these (millis and flowCount) just for display
|
||||
# purposes in this example
|
||||
millis = myWaterFlow.getMillis()
|
||||
flowCount = myWaterFlow.flowCounter()
|
||||
|
||||
# set the flow counter to 0 and start counting
|
||||
myWaterFlow.clearFlowCounter()
|
||||
myWaterFlow.startFlowCounter()
|
||||
fr = myWaterFlow.flowRate()
|
||||
|
||||
while (1):
|
||||
# we grab these (millis and flowCount) just for display
|
||||
# purposes in this example
|
||||
millis = myWaterFlow.getMillis()
|
||||
flowCount = myWaterFlow.flowCounter()
|
||||
# output milliseconds passed, flow count, and computed flow rate
|
||||
outputStr = "Millis: {0} Flow Count: {1} Flow Rate: {2} LPM".format(
|
||||
millis, flowCount, fr)
|
||||
print outputStr
|
||||
time.sleep(2)
|
||||
|
||||
fr = myWaterFlow.flowRate()
|
||||
|
||||
# output milliseconds passed, flow count, and computed flow rate
|
||||
outputStr = "Millis: {0} Flow Count: {1} Flow Rate: {2} LPM".format(
|
||||
millis, flowCount, fr)
|
||||
print outputStr
|
||||
time.sleep(2)
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
42
examples/python/gsr.py
Normal file → Executable file
42
examples/python/gsr.py
Normal file → Executable file
@ -24,30 +24,32 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_gsr as upmGsr
|
||||
|
||||
# Tested with the GSR Galvanic Skin Response Sensor module.
|
||||
def main():
|
||||
# Tested with the GSR Galvanic Skin Response Sensor module.
|
||||
|
||||
# Instantiate a GSR on analog pin A0
|
||||
myGSR = upmGsr.GSR(0)
|
||||
# Instantiate a GSR on analog pin A0
|
||||
myGSR = upmGsr.GSR(0)
|
||||
|
||||
## Exit handlers ##
|
||||
# This stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
## Exit handlers ##
|
||||
# This stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
# This lets you run code on exit, including functions from myGSR
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# This lets you run code on exit, including functions from myGSR
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
print "Calibrating...."
|
||||
myGSR.calibrate()
|
||||
|
||||
while (1):
|
||||
print myGSR.value()
|
||||
time.sleep(.5)
|
||||
|
||||
print "Calibrating...."
|
||||
myGSR.calibrate()
|
||||
|
||||
while (1):
|
||||
print myGSR.value()
|
||||
time.sleep(.5)
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
50
examples/python/guvas12d.py
Normal file → Executable file
50
examples/python/guvas12d.py
Normal file → Executable file
@ -24,33 +24,35 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_guvas12d as upmUV
|
||||
|
||||
# Instantiate a UV sensor on analog pin A0
|
||||
myUVSensor = upmUV.GUVAS12D(0);
|
||||
def main():
|
||||
# Instantiate a UV sensor on analog pin A0
|
||||
myUVSensor = upmUV.GUVAS12D(0);
|
||||
|
||||
# analog voltage, usually 3.3 or 5.0
|
||||
GUVAS12D_AREF = 5.0;
|
||||
SAMPLES_PER_QUERY = 1024;
|
||||
# analog voltage, usually 3.3 or 5.0
|
||||
GUVAS12D_AREF = 5.0;
|
||||
SAMPLES_PER_QUERY = 1024;
|
||||
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
# This function lets you run code on exit, including functions from myUVSensor
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# This function lets you run code on exit, including functions from myUVSensor
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
while(1):
|
||||
s = ("AREF: {0}, "
|
||||
"Voltage value (higher means more UV): "
|
||||
"{1}".format(GUVAS12D_AREF,
|
||||
myUVSensor.value(GUVAS12D_AREF, SAMPLES_PER_QUERY)))
|
||||
print s
|
||||
time.sleep(1)
|
||||
|
||||
|
||||
while(1):
|
||||
s = ("AREF: {0}, "
|
||||
"Voltage value (higher means more UV): "
|
||||
"{1}".format(GUVAS12D_AREF,
|
||||
myUVSensor.value(GUVAS12D_AREF, SAMPLES_PER_QUERY)))
|
||||
print s
|
||||
time.sleep(1)
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
84
examples/python/h3lis331dl.py
Normal file → Executable file
84
examples/python/h3lis331dl.py
Normal file → Executable file
@ -24,53 +24,55 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_h3lis331dl as upmH3LIS331DL
|
||||
|
||||
# Instantiate an H3LIS331DL on I2C bus 0
|
||||
myDigitalAccelerometer = upmH3LIS331DL.H3LIS331DL(
|
||||
upmH3LIS331DL.H3LIS331DL_I2C_BUS,
|
||||
upmH3LIS331DL.H3LIS331DL_DEFAULT_I2C_ADDR);
|
||||
def main():
|
||||
# Instantiate an H3LIS331DL on I2C bus 0
|
||||
myDigitalAccelerometer = upmH3LIS331DL.H3LIS331DL(
|
||||
upmH3LIS331DL.H3LIS331DL_I2C_BUS,
|
||||
upmH3LIS331DL.H3LIS331DL_DEFAULT_I2C_ADDR);
|
||||
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
# This function lets you run code on exit, including functions from myDigitalAccelerometer
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# This function lets you run code on exit, including functions from myDigitalAccelerometer
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
# Initialize the device with default values
|
||||
myDigitalAccelerometer.init()
|
||||
|
||||
x = upmH3LIS331DL.new_intp()
|
||||
y = upmH3LIS331DL.new_intp()
|
||||
z = upmH3LIS331DL.new_intp()
|
||||
|
||||
# Initialize the device with default values
|
||||
myDigitalAccelerometer.init()
|
||||
ax = upmH3LIS331DL.new_floatp()
|
||||
ay = upmH3LIS331DL.new_floatp()
|
||||
az = upmH3LIS331DL.new_floatp()
|
||||
|
||||
x = upmH3LIS331DL.new_intp()
|
||||
y = upmH3LIS331DL.new_intp()
|
||||
z = upmH3LIS331DL.new_intp()
|
||||
while (1):
|
||||
myDigitalAccelerometer.update()
|
||||
myDigitalAccelerometer.getRawXYZ(x, y, z)
|
||||
outputStr = ("Raw: X = {0}"
|
||||
" Y = {1}"
|
||||
" Z = {2}").format(upmH3LIS331DL.intp_value(x),
|
||||
upmH3LIS331DL.intp_value(y),
|
||||
upmH3LIS331DL.intp_value(z))
|
||||
print outputStr
|
||||
|
||||
ax = upmH3LIS331DL.new_floatp()
|
||||
ay = upmH3LIS331DL.new_floatp()
|
||||
az = upmH3LIS331DL.new_floatp()
|
||||
myDigitalAccelerometer.getAcceleration(ax, ay, az)
|
||||
outputStr = ("Acceleration: AX = {0}"
|
||||
" AY = {1}"
|
||||
" AZ = {2}").format(upmH3LIS331DL.floatp_value(ax),
|
||||
upmH3LIS331DL.floatp_value(ay),
|
||||
upmH3LIS331DL.floatp_value(az))
|
||||
print outputStr
|
||||
time.sleep(.5)
|
||||
|
||||
while (1):
|
||||
myDigitalAccelerometer.update()
|
||||
myDigitalAccelerometer.getRawXYZ(x, y, z)
|
||||
outputStr = ("Raw: X = {0}"
|
||||
" Y = {1}"
|
||||
" Z = {2}").format(upmH3LIS331DL.intp_value(x),
|
||||
upmH3LIS331DL.intp_value(y),
|
||||
upmH3LIS331DL.intp_value(z))
|
||||
print outputStr
|
||||
|
||||
myDigitalAccelerometer.getAcceleration(ax, ay, az)
|
||||
outputStr = ("Acceleration: AX = {0}"
|
||||
" AY = {1}"
|
||||
" AZ = {2}").format(upmH3LIS331DL.floatp_value(ax),
|
||||
upmH3LIS331DL.floatp_value(ay),
|
||||
upmH3LIS331DL.floatp_value(az))
|
||||
print outputStr
|
||||
time.sleep(.5)
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
110
examples/python/h803x.py
Normal file → Executable file
110
examples/python/h803x.py
Normal file → Executable file
@ -24,40 +24,41 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_h803x as sensorObj
|
||||
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
def main():
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
# This function lets you run code on exit
|
||||
def exitHandler():
|
||||
print "Exiting..."
|
||||
sys.exit(0)
|
||||
# This function lets you run code on exit
|
||||
def exitHandler():
|
||||
print "Exiting..."
|
||||
sys.exit(0)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
defaultDev = "/dev/ttyUSB0"
|
||||
defaultDev = "/dev/ttyUSB0"
|
||||
|
||||
# if an argument was specified, use it as the device instead
|
||||
if (len(sys.argv) > 1):
|
||||
# if an argument was specified, use it as the device instead
|
||||
if (len(sys.argv) > 1):
|
||||
defaultDev = sys.argv[1]
|
||||
|
||||
print "Using device", defaultDev
|
||||
print "Initializing..."
|
||||
print "Using device", defaultDev
|
||||
print "Initializing..."
|
||||
|
||||
# Instantiate an H803X instance, using MODBUS slave address 1, and
|
||||
# default comm parameters (9600, 8, N, 2)
|
||||
sensor = sensorObj.H803X(defaultDev, 1)
|
||||
# Instantiate an H803X instance, using MODBUS slave address 1, and
|
||||
# default comm parameters (9600, 8, N, 2)
|
||||
sensor = sensorObj.H803X(defaultDev, 1)
|
||||
|
||||
# output the serial number and firmware revision
|
||||
print "Slave ID:", sensor.getSlaveID()
|
||||
# output the serial number and firmware revision
|
||||
print "Slave ID:", sensor.getSlaveID()
|
||||
|
||||
print
|
||||
print
|
||||
|
||||
# update and print available values every second
|
||||
while (1):
|
||||
# update and print available values every second
|
||||
while (1):
|
||||
# update our values from the sensor
|
||||
sensor.update()
|
||||
|
||||
@ -66,41 +67,44 @@ while (1):
|
||||
print "Real Power (kW):", sensor.getRealPower()
|
||||
|
||||
if (sensor.isH8036()):
|
||||
# The H8036 has much more data available...
|
||||
# The H8036 has much more data available...
|
||||
|
||||
print "Reactive Power (kVAR):", sensor.getReactivePower()
|
||||
print "Apparent Power (kVA):", sensor.getApparentPower()
|
||||
print "Power Factor:", sensor.getPowerFactor()
|
||||
print "Volts Line to Line:", sensor.getVoltsLineToLine()
|
||||
print "Volts Line to Neutral:", sensor.getVoltsLineToNeutral()
|
||||
print "Reactive Power (kVAR):", sensor.getReactivePower()
|
||||
print "Apparent Power (kVA):", sensor.getApparentPower()
|
||||
print "Power Factor:", sensor.getPowerFactor()
|
||||
print "Volts Line to Line:", sensor.getVoltsLineToLine()
|
||||
print "Volts Line to Neutral:", sensor.getVoltsLineToNeutral()
|
||||
|
||||
print "Current:", sensor.getCurrent()
|
||||
print "Current:", sensor.getCurrent()
|
||||
|
||||
print "Real Power Phase A (kW):", sensor.getRealPowerPhaseA()
|
||||
print "Real Power Phase B (kW):", sensor.getRealPowerPhaseB()
|
||||
print "Real Power Phase C (kW):", sensor.getRealPowerPhaseC()
|
||||
print "Real Power Phase A (kW):", sensor.getRealPowerPhaseA()
|
||||
print "Real Power Phase B (kW):", sensor.getRealPowerPhaseB()
|
||||
print "Real Power Phase C (kW):", sensor.getRealPowerPhaseC()
|
||||
|
||||
print "Power Factor Phase A:", sensor.getPowerFactorPhaseA()
|
||||
print "Power Factor Phase B:", sensor.getPowerFactorPhaseB()
|
||||
print "Power Factor Phase C:", sensor.getPowerFactorPhaseC()
|
||||
print "Power Factor Phase A:", sensor.getPowerFactorPhaseA()
|
||||
print "Power Factor Phase B:", sensor.getPowerFactorPhaseB()
|
||||
print "Power Factor Phase C:", sensor.getPowerFactorPhaseC()
|
||||
|
||||
print "Volts Phase A to B:", sensor.getVoltsPhaseAToB()
|
||||
print "Volts Phase B to C:", sensor.getVoltsPhaseBToC()
|
||||
print "Volts Phase A to C:", sensor.getVoltsPhaseAToC()
|
||||
print "Volts Phase A to Neutral: ",
|
||||
print sensor.getVoltsPhaseAToNeutral()
|
||||
print "Volts Phase B to Neutral: ",
|
||||
print sensor.getVoltsPhaseBToNeutral()
|
||||
print "Volts Phase C to Neutral: ",
|
||||
print sensor.getVoltsPhaseCToNeutral()
|
||||
print "Volts Phase A to B:", sensor.getVoltsPhaseAToB()
|
||||
print "Volts Phase B to C:", sensor.getVoltsPhaseBToC()
|
||||
print "Volts Phase A to C:", sensor.getVoltsPhaseAToC()
|
||||
print "Volts Phase A to Neutral: ",
|
||||
print sensor.getVoltsPhaseAToNeutral()
|
||||
print "Volts Phase B to Neutral: ",
|
||||
print sensor.getVoltsPhaseBToNeutral()
|
||||
print "Volts Phase C to Neutral: ",
|
||||
print sensor.getVoltsPhaseCToNeutral()
|
||||
|
||||
print "Current Phase A:", sensor.getCurrentPhaseA()
|
||||
print "Current Phase B:", sensor.getCurrentPhaseB()
|
||||
print "Current Phase C:", sensor.getCurrentPhaseC()
|
||||
print "Current Phase A:", sensor.getCurrentPhaseA()
|
||||
print "Current Phase B:", sensor.getCurrentPhaseB()
|
||||
print "Current Phase C:", sensor.getCurrentPhaseC()
|
||||
|
||||
print "Avg Real Power (kW):", sensor.getAvgRealPower()
|
||||
print "Min Real Power (kW):", sensor.getMinRealPower()
|
||||
print "Max Real Power (kW):", sensor.getMaxRealPower()
|
||||
print "Avg Real Power (kW):", sensor.getAvgRealPower()
|
||||
print "Min Real Power (kW):", sensor.getMinRealPower()
|
||||
print "Max Real Power (kW):", sensor.getMaxRealPower()
|
||||
|
||||
print
|
||||
time.sleep(2)
|
||||
time.sleep(2)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
40
examples/python/hdxxvxta.py
Normal file → Executable file
40
examples/python/hdxxvxta.py
Normal file → Executable file
@ -24,28 +24,29 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_hdxxvxta as sensorObj
|
||||
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
def main():
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
# This function lets you run code on exit
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
# This function lets you run code on exit
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
print "Initializing..."
|
||||
print "Initializing..."
|
||||
|
||||
# Instantiate an HDXXVXTA instance, using A1 for humidity and A0
|
||||
# for temperature
|
||||
sensor = sensorObj.HDXXVXTA(1, 0)
|
||||
# Instantiate an HDXXVXTA instance, using A1 for humidity and A0
|
||||
# for temperature
|
||||
sensor = sensorObj.HDXXVXTA(1, 0)
|
||||
|
||||
# update and print available values every second
|
||||
while (1):
|
||||
# update and print available values every second
|
||||
while (1):
|
||||
# update our values from the sensor
|
||||
sensor.update()
|
||||
|
||||
@ -56,4 +57,7 @@ while (1):
|
||||
print "Humidity:", sensor.getHumidity(), "%"
|
||||
|
||||
print
|
||||
time.sleep(1)
|
||||
time.sleep(1)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
36
examples/python/hka5.py
Normal file → Executable file
36
examples/python/hka5.py
Normal file → Executable file
@ -24,26 +24,27 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_hka5 as sensorObj
|
||||
|
||||
# Instantiate a HKA5 sensor on uart 0. We don't use the set or
|
||||
# reset pins, so we pass -1 for them.
|
||||
sensor = sensorObj.HKA5(0, -1, -1)
|
||||
def main():
|
||||
# Instantiate a HKA5 sensor on uart 0. We don't use the set or
|
||||
# reset pins, so we pass -1 for them.
|
||||
sensor = sensorObj.HKA5(0, -1, -1)
|
||||
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
# This function lets you run code on exit
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
# This function lets you run code on exit
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
# update once every 2 seconds and output data
|
||||
while (True):
|
||||
# update once every 2 seconds and output data
|
||||
while (True):
|
||||
sensor.update()
|
||||
|
||||
print "PM 1 :",
|
||||
@ -60,3 +61,6 @@ while (True):
|
||||
|
||||
print
|
||||
time.sleep(2)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
143
examples/python/hm11.py
Normal file → Executable file
143
examples/python/hm11.py
Normal file → Executable file
@ -24,87 +24,86 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_hm11 as upmHm11
|
||||
|
||||
# Instantiate a HM11 BLE Module on UART 0
|
||||
my_ble_obj = upmHm11.HM11(0)
|
||||
def main():
|
||||
# Instantiate a HM11 BLE Module on UART 0
|
||||
my_ble_obj = upmHm11.HM11(0)
|
||||
|
||||
## Exit handlers ##
|
||||
# This stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
## Exit handlers ##
|
||||
# This stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
# This function lets you run code on exit,
|
||||
# including functions from my_ble_obj
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# This function lets you run code on exit,
|
||||
# including functions from my_ble_obj
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
bufferLength = 256
|
||||
|
||||
# make sure port is initialized properly. 9600 baud is the default.
|
||||
if (not my_ble_obj.setupTty(upmHm11.cvar.int_B9600)):
|
||||
print "Failed to setup tty port parameters"
|
||||
sys.exit(0)
|
||||
|
||||
bufferLength = 256
|
||||
usageStr = ("Usage:\n"
|
||||
"Pass a commandline argument (any argument) to this program\n"
|
||||
"to query the radio configuration and output it. NOTE: the\n"
|
||||
"radio must be in CONFIG mode for this to work.\n\n"
|
||||
"Running this program without arguments will simply transmit\n"
|
||||
"'Hello World!' every second, and output any data received from\n"
|
||||
"another radio.\n\n")
|
||||
print usageStr
|
||||
|
||||
# make sure port is initialized properly. 9600 baud is the default.
|
||||
if (not my_ble_obj.setupTty(upmHm11.cvar.int_B9600)):
|
||||
print "Failed to setup tty port parameters"
|
||||
sys.exit(0)
|
||||
# simple helper function to send a command and wait for a response
|
||||
def sendCommand(bleObj, cmd):
|
||||
bleBuffer = upmHm11.charArray(bufferLength)
|
||||
bleObj.writeData(cmd, len(cmd))
|
||||
|
||||
# wait up to 1 second
|
||||
if (bleObj.dataAvailable(1000)):
|
||||
bleObj.readData(bleBuffer, bufferLength)
|
||||
bleData = ""
|
||||
# read only the number of characters
|
||||
# specified by myGPSSensor.readData
|
||||
for x in range(0, bufferLength):
|
||||
if (bleBuffer.__getitem__(x) == '\0'):
|
||||
break
|
||||
else:
|
||||
bleData += bleBuffer.__getitem__(x)
|
||||
print bleData
|
||||
else:
|
||||
print "Timed out waiting for response"
|
||||
|
||||
usageStr = ("Usage:\n"
|
||||
"Pass a commandline argument (any argument) to this program\n"
|
||||
"to query the radio configuration and output it. NOTE: the\n"
|
||||
"radio must be in CONFIG mode for this to work.\n\n"
|
||||
"Running this program without arguments will simply transmit\n"
|
||||
"'Hello World!' every second, and output any data received from\n"
|
||||
"another radio.\n\n")
|
||||
print usageStr
|
||||
if (len(sys.argv) > 1):
|
||||
print "Sending command line argument (" + sys.argv[1] + ")..."
|
||||
sendCommand(my_ble_obj, sys.argv[1])
|
||||
else:
|
||||
# query the module address
|
||||
addr = "AT+ADDR?";
|
||||
print "Querying module address (" + addr + ")..."
|
||||
|
||||
# simple helper function to send a command and wait for a response
|
||||
def sendCommand(bleObj, cmd):
|
||||
bleBuffer = upmHm11.charArray(bufferLength)
|
||||
bleObj.writeData(cmd, len(cmd))
|
||||
sendCommand(my_ble_obj, addr)
|
||||
time.sleep(1)
|
||||
# query the module address
|
||||
pin = "AT+PASS?";
|
||||
print "Querying module PIN (" + pin + ")..."
|
||||
sendCommand(my_ble_obj, pin)
|
||||
|
||||
# wait up to 1 second
|
||||
if (bleObj.dataAvailable(1000)):
|
||||
bleObj.readData(bleBuffer, bufferLength)
|
||||
bleData = ""
|
||||
# read only the number of characters
|
||||
# specified by myGPSSensor.readData
|
||||
for x in range(0, bufferLength):
|
||||
if (bleBuffer.__getitem__(x) == '\0'):
|
||||
break
|
||||
else:
|
||||
bleData += bleBuffer.__getitem__(x)
|
||||
print bleData
|
||||
else:
|
||||
print "Timed out waiting for response"
|
||||
|
||||
|
||||
if (len(sys.argv) > 1):
|
||||
print "Sending command line argument (" + sys.argv[1] + ")..."
|
||||
sendCommand(my_ble_obj, sys.argv[1])
|
||||
else:
|
||||
# query the module address
|
||||
addr = "AT+ADDR?";
|
||||
print "Querying module address (" + addr + ")..."
|
||||
|
||||
sendCommand(my_ble_obj, addr)
|
||||
time.sleep(1)
|
||||
# query the module address
|
||||
pin = "AT+PASS?";
|
||||
print "Querying module PIN (" + pin + ")..."
|
||||
sendCommand(my_ble_obj, pin)
|
||||
|
||||
# Other potentially useful commands are:
|
||||
#
|
||||
# AT+VERS? - query module version
|
||||
# AT+ROLE0 - set as slave
|
||||
# AT+ROLE1 - set as master
|
||||
# AT+CLEAR - clear all previous settings
|
||||
# AT+RESET - restart the device
|
||||
#
|
||||
# A comprehensive list is available from the datasheet at:
|
||||
# http://www.seeedstudio.com/wiki/images/c/cd/Bluetooth4_en.pdf
|
||||
# Other potentially useful commands are:
|
||||
#
|
||||
# AT+VERS? - query module version
|
||||
# AT+ROLE0 - set as slave
|
||||
# AT+ROLE1 - set as master
|
||||
# AT+CLEAR - clear all previous settings
|
||||
# AT+RESET - restart the device
|
||||
#
|
||||
# A comprehensive list is available from the datasheet at:
|
||||
# http://www.seeedstudio.com/wiki/images/c/cd/Bluetooth4_en.pdf
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
33
examples/python/hmc5883l.py
Normal file → Executable file
33
examples/python/hmc5883l.py
Normal file → Executable file
@ -23,22 +23,25 @@
|
||||
from time import sleep
|
||||
import pyupm_hmc5883l as hmc5883l
|
||||
|
||||
# Create an I2C compass object and set declination
|
||||
hmc = hmc5883l.Hmc5883l(0)
|
||||
hmc.set_declination(0.2749)
|
||||
def main():
|
||||
# Create an I2C compass object and set declination
|
||||
hmc = hmc5883l.Hmc5883l(0)
|
||||
hmc.set_declination(0.2749)
|
||||
|
||||
# Loop indefinitely
|
||||
while True:
|
||||
# Loop indefinitely
|
||||
while True:
|
||||
hmc.update() # Update the data
|
||||
pos = hmc.coordinates() # Read raw coordinates
|
||||
hdg = hmc.heading() # Read heading
|
||||
dir = hmc.direction() # Read direction
|
||||
|
||||
hmc.update() # Update the data
|
||||
pos = hmc.coordinates() # Read raw coordinates
|
||||
hdg = hmc.heading() # Read heading
|
||||
dir = hmc.direction() # Read direction
|
||||
# Print values
|
||||
print "Coor: %5d %5d %5d" % (pos[0], pos[1], pos[2])
|
||||
print "Heading: %5.2f" % (hdg)
|
||||
print "Direction: %3.2f\n" % (dir)
|
||||
|
||||
# Print values
|
||||
print "Coor: %5d %5d %5d" % (pos[0], pos[1], pos[2])
|
||||
print "Heading: %5.2f" % (hdg)
|
||||
print "Direction: %3.2f\n" % (dir)
|
||||
# Sleep for 1 s
|
||||
sleep(1)
|
||||
|
||||
# Sleep for 1 s
|
||||
sleep(1)
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
198
examples/python/hmtrp.py
Normal file → Executable file
198
examples/python/hmtrp.py
Normal file → Executable file
@ -24,120 +24,120 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_hmtrp as upmHmtrp
|
||||
|
||||
# Instantiate a HMTRP radio device on uart 0
|
||||
my_HMTRP_Radio = upmHmtrp.HMTRP(0)
|
||||
def main():
|
||||
# Instantiate a HMTRP radio device on uart 0
|
||||
my_HMTRP_Radio = upmHmtrp.HMTRP(0)
|
||||
|
||||
## Exit handlers ##
|
||||
# This stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
## Exit handlers ##
|
||||
# This stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
# This function lets you run code on exit,
|
||||
# including functions from my_HMTRP_Radio
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# This function lets you run code on exit,
|
||||
# including functions from my_HMTRP_Radio
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
myCounter = 0
|
||||
|
||||
# normal read/write mode
|
||||
bufferLength = 256
|
||||
radioBuffer = upmHmtrp.charArray(bufferLength)
|
||||
|
||||
myCounter = 0
|
||||
# make sure port is initialized properly. 9600 baud is the default.
|
||||
if (not my_HMTRP_Radio.setupTty(upmHmtrp.cvar.int_B9600)):
|
||||
print "Failed to setup tty port parameters"
|
||||
sys.exit(0)
|
||||
|
||||
# normal read/write mode
|
||||
bufferLength = 256
|
||||
radioBuffer = upmHmtrp.charArray(bufferLength)
|
||||
usageStr = ("Usage:\n"
|
||||
"Pass a commandline argument (any argument) to this program\n"
|
||||
"to query the radio configuration and output it. NOTE: the\n"
|
||||
"radio must be in CONFIG mode for this to work.\n\n"
|
||||
"Running this program without arguments will simply transmit\n"
|
||||
"'Hello World!' every second, and output any data received from\n"
|
||||
"another radio.\n\n")
|
||||
print usageStr
|
||||
|
||||
# make sure port is initialized properly. 9600 baud is the default.
|
||||
if (not my_HMTRP_Radio.setupTty(upmHmtrp.cvar.int_B9600)):
|
||||
print "Failed to setup tty port parameters"
|
||||
sys.exit(0)
|
||||
'''
|
||||
By default, this radio simply transmits data sent via writeData()
|
||||
and reads any available data via readData().
|
||||
|
||||
It can be placed into a configuration mode by grounding the
|
||||
CONFIG pin on the module. When this is done, the various
|
||||
configuration query and config methods can be used. In this
|
||||
example, by default, we just read any data available fom the
|
||||
device, and periodically transmit "Hello World".
|
||||
|
||||
usageStr = ("Usage:\n"
|
||||
"Pass a commandline argument (any argument) to this program\n"
|
||||
"to query the radio configuration and output it. NOTE: the\n"
|
||||
"radio must be in CONFIG mode for this to work.\n\n"
|
||||
"Running this program without arguments will simply transmit\n"
|
||||
"'Hello World!' every second, and output any data received from\n"
|
||||
"another radio.\n\n")
|
||||
print usageStr
|
||||
If any argument was specified on the command line, do a simple
|
||||
configuration query and output the results. The radio must be in
|
||||
CONFIG mode for this to work.
|
||||
|
||||
'''
|
||||
By default, this radio simply transmits data sent via writeData()
|
||||
and reads any available data via readData().
|
||||
Note that the first command-line argument should be "hmtry.py"
|
||||
The data we want would be the second... if it exists
|
||||
'''
|
||||
if (len(sys.argv) > 1):
|
||||
# config mode
|
||||
freq = upmHmtrp.uint32Array(0)
|
||||
dataRate = upmHmtrp.uint32Array(0)
|
||||
rxBandwidth = upmHmtrp.uint16Array(0)
|
||||
modulation = upmHmtrp.uint8Array(0)
|
||||
txPower = upmHmtrp.uint8Array(0)
|
||||
uartBaud = upmHmtrp.uint32Array(0)
|
||||
|
||||
It can be placed into a configuration mode by grounding the
|
||||
CONFIG pin on the module. When this is done, the various
|
||||
configuration query and config methods can be used. In this
|
||||
example, by default, we just read any data available fom the
|
||||
device, and periodically transmit "Hello World".
|
||||
if (my_HMTRP_Radio.getConfig(freq, dataRate, rxBandwidth,
|
||||
modulation, txPower, uartBaud)):
|
||||
print "Radio configuration:"
|
||||
outputStr = ("freq: {0} dataRate: {1} "
|
||||
"rxBandwidth: {2}Khz").format(freq.__getitem__(0),
|
||||
dataRate.__getitem__(0),
|
||||
rxBandwidth.__getitem__(0))
|
||||
print outputStr
|
||||
|
||||
If any argument was specified on the command line, do a simple
|
||||
configuration query and output the results. The radio must be in
|
||||
CONFIG mode for this to work.
|
||||
outputStr = "modulation: %d Khz txPower: %d uartBaud: %d" % (
|
||||
modulation.__getitem__(0), txPower.__getitem__(0),
|
||||
uartBaud.__getitem__(0))
|
||||
print outputStr
|
||||
else:
|
||||
errString = ("getConfig() failed. Make sure the radio "
|
||||
"is in CONFIG mode.")
|
||||
print errString
|
||||
else:
|
||||
print "Running in normal read/write mode."
|
||||
while (1):
|
||||
# we don't want the read to block in this example, so always
|
||||
# check to see if data is available first.
|
||||
if (my_HMTRP_Radio.dataAvailable()):
|
||||
rv = my_HMTRP_Radio.readData(radioBuffer, bufferLength)
|
||||
|
||||
if (rv > 0):
|
||||
resultStr = "";
|
||||
for x in range(rv):
|
||||
resultStr += radioBuffer.__getitem__(x)
|
||||
print "Received:", resultStr
|
||||
|
||||
Note that the first command-line argument should be "hmtry.py"
|
||||
The data we want would be the second... if it exists
|
||||
'''
|
||||
if (len(sys.argv) > 1):
|
||||
# config mode
|
||||
freq = upmHmtrp.uint32Array(0)
|
||||
dataRate = upmHmtrp.uint32Array(0)
|
||||
rxBandwidth = upmHmtrp.uint16Array(0)
|
||||
modulation = upmHmtrp.uint8Array(0)
|
||||
txPower = upmHmtrp.uint8Array(0)
|
||||
uartBaud = upmHmtrp.uint32Array(0)
|
||||
if (rv < 0): # some sort of read error occurred
|
||||
print "Port read error."
|
||||
sys.exit(0)
|
||||
myCounter += 1
|
||||
# every second, transmit "Hello World"
|
||||
if (myCounter > 10):
|
||||
msg = "Hello World!"
|
||||
|
||||
if (my_HMTRP_Radio.getConfig(freq, dataRate, rxBandwidth,
|
||||
modulation, txPower, uartBaud)):
|
||||
print "Radio configuration:"
|
||||
outputStr = ("freq: {0} dataRate: {1} "
|
||||
"rxBandwidth: {2}Khz").format(freq.__getitem__(0),
|
||||
dataRate.__getitem__(0),
|
||||
rxBandwidth.__getitem__(0))
|
||||
print outputStr
|
||||
print "Transmitting %s..." % msg
|
||||
|
||||
outputStr = "modulation: %d Khz txPower: %d uartBaud: %d" % (
|
||||
modulation.__getitem__(0), txPower.__getitem__(0),
|
||||
uartBaud.__getitem__(0))
|
||||
print outputStr
|
||||
else:
|
||||
errString = ("getConfig() failed. Make sure the radio "
|
||||
"is in CONFIG mode.")
|
||||
print errString
|
||||
else:
|
||||
print "Running in normal read/write mode."
|
||||
while (1):
|
||||
# we don't want the read to block in this example, so always
|
||||
# check to see if data is available first.
|
||||
if (my_HMTRP_Radio.dataAvailable()):
|
||||
rv = my_HMTRP_Radio.readData(radioBuffer, bufferLength)
|
||||
# Adding 1 for NULL terminator.
|
||||
# Note that SWIG automatically adds a NULL terminator,
|
||||
# so no need to NULL-terminate ourselves.
|
||||
# Just increment the message length to include
|
||||
# the NULL that's already there
|
||||
my_HMTRP_Radio.writeData(msg, (len(msg) + 1))
|
||||
myCounter = 0
|
||||
time.sleep(.1)
|
||||
|
||||
if (rv > 0):
|
||||
resultStr = "";
|
||||
for x in range(rv):
|
||||
resultStr += radioBuffer.__getitem__(x)
|
||||
print "Received:", resultStr
|
||||
|
||||
if (rv < 0): # some sort of read error occurred
|
||||
print "Port read error."
|
||||
sys.exit(0)
|
||||
myCounter += 1
|
||||
# every second, transmit "Hello World"
|
||||
if (myCounter > 10):
|
||||
msg = "Hello World!"
|
||||
|
||||
print "Transmitting %s..." % msg
|
||||
|
||||
# Adding 1 for NULL terminator.
|
||||
# Note that SWIG automatically adds a NULL terminator,
|
||||
# so no need to NULL-terminate ourselves.
|
||||
# Just increment the message length to include
|
||||
# the NULL that's already there
|
||||
my_HMTRP_Radio.writeData(msg, (len(msg) + 1))
|
||||
myCounter = 0
|
||||
time.sleep(.1)
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
47
examples/python/hp20x.py
Normal file → Executable file
47
examples/python/hp20x.py
Normal file → Executable file
@ -24,31 +24,34 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_hp20x as barometerObj
|
||||
|
||||
## Exit handlers ##
|
||||
# This stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
def main():
|
||||
## Exit handlers ##
|
||||
# This stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
# This function lets you run code on exit,
|
||||
# including functions from ringCoder
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
# This function lets you run code on exit,
|
||||
# including functions from ringCoder
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
# Instantiate an HP20X on default I2C bus and address
|
||||
bar = barometerObj.HP20X()
|
||||
# Instantiate an HP20X on default I2C bus and address
|
||||
bar = barometerObj.HP20X()
|
||||
|
||||
# Initialize the device with default values
|
||||
bar.init()
|
||||
# Initialize the device with default values
|
||||
bar.init()
|
||||
|
||||
while(1):
|
||||
print "Temperature:", bar.getTemperature(), "Celsius"
|
||||
print "Pressure: ", bar.getPressure(), "Millibars"
|
||||
print "Altitude: ", bar.getAltitude(), "Meters"
|
||||
print
|
||||
time.sleep(1)
|
||||
while(1):
|
||||
print "Temperature:", bar.getTemperature(), "Celsius"
|
||||
print "Pressure: ", bar.getPressure(), "Millibars"
|
||||
print "Altitude: ", bar.getAltitude(), "Meters"
|
||||
print
|
||||
time.sleep(1)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
49
examples/python/ht9170.py
Normal file → Executable file
49
examples/python/ht9170.py
Normal file → Executable file
@ -24,31 +24,34 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_ht9170 as upmHt9170
|
||||
|
||||
# Instantiate a DTMF decoder
|
||||
myDTMF = upmHt9170.HT9170(12, 11, 10, 9, 8)
|
||||
def main():
|
||||
# Instantiate a DTMF decoder
|
||||
myDTMF = upmHt9170.HT9170(12, 11, 10, 9, 8)
|
||||
|
||||
## Exit handlers ##
|
||||
# This stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
## Exit handlers ##
|
||||
# This stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
# This lets you run code on exit, including functions from myDTMF
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
# This lets you run code on exit, including functions from myDTMF
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
# Now we just spin in a loop, sleeping every 100ms, checking to see
|
||||
# if a digit is available. If so, we decode and print the digit,
|
||||
# and continue looping.
|
||||
while (1):
|
||||
if (dtmf_obj.digitReady()):
|
||||
print "Got DTMF code:", dtmf_obj.decodeDigit()
|
||||
# now spin until digitReady() goes false again
|
||||
while (dtmf.digitReady()):
|
||||
pass
|
||||
time.sleep(.1)
|
||||
|
||||
# Now we just spin in a loop, sleeping every 100ms, checking to see
|
||||
# if a digit is available. If so, we decode and print the digit,
|
||||
# and continue looping.
|
||||
while (1):
|
||||
if (dtmf_obj.digitReady()):
|
||||
print "Got DTMF code:", dtmf_obj.decodeDigit()
|
||||
# now spin until digitReady() goes false again
|
||||
while (dtmf.digitReady()):
|
||||
pass
|
||||
time.sleep(.1)
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
60
examples/python/hwxpxx.py
Normal file → Executable file
60
examples/python/hwxpxx.py
Normal file → Executable file
@ -24,44 +24,45 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_hwxpxx as sensorObj
|
||||
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
def main():
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
# This function lets you run code on exit
|
||||
def exitHandler():
|
||||
print "Exiting..."
|
||||
sys.exit(0)
|
||||
# This function lets you run code on exit
|
||||
def exitHandler():
|
||||
print "Exiting..."
|
||||
sys.exit(0)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
defaultDev = "/dev/ttyUSB0"
|
||||
defaultDev = "/dev/ttyUSB0"
|
||||
|
||||
# if an argument was specified, use it as the device instead
|
||||
if (len(sys.argv) > 1):
|
||||
# if an argument was specified, use it as the device instead
|
||||
if (len(sys.argv) > 1):
|
||||
defaultDev = sys.argv[1]
|
||||
|
||||
print "Using device", defaultDev
|
||||
print "Initializing..."
|
||||
print "Using device", defaultDev
|
||||
print "Initializing..."
|
||||
|
||||
# Instantiate an HWXPXX instance, using MODBUS slave address 3, and
|
||||
# default comm parameters (19200, 8, N, 2)
|
||||
sensor = sensorObj.HWXPXX(defaultDev, 3)
|
||||
# Instantiate an HWXPXX instance, using MODBUS slave address 3, and
|
||||
# default comm parameters (19200, 8, N, 2)
|
||||
sensor = sensorObj.HWXPXX(defaultDev, 3)
|
||||
|
||||
# output the serial number and firmware revision
|
||||
print "Slave ID:", sensor.getSlaveID()
|
||||
# output the serial number and firmware revision
|
||||
print "Slave ID:", sensor.getSlaveID()
|
||||
|
||||
# stored temperature and humidity offsets
|
||||
print "Temperature Offset:", sensor.getTemperatureOffset()
|
||||
print "Humidity Offset:", sensor.getHumidityOffset()
|
||||
# stored temperature and humidity offsets
|
||||
print "Temperature Offset:", sensor.getTemperatureOffset()
|
||||
print "Humidity Offset:", sensor.getHumidityOffset()
|
||||
|
||||
print
|
||||
print
|
||||
|
||||
# update and print available values every second
|
||||
while (1):
|
||||
# update and print available values every second
|
||||
while (1):
|
||||
# update our values from the sensor
|
||||
sensor.update()
|
||||
|
||||
@ -76,4 +77,7 @@ while (1):
|
||||
print "Override Switch Status:", sensor.getOverrideSwitchStatus()
|
||||
|
||||
print
|
||||
time.sleep(1)
|
||||
time.sleep(1)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
92
examples/python/ili9341.py
Normal file → Executable file
92
examples/python/ili9341.py
Normal file → Executable file
@ -24,52 +24,56 @@
|
||||
import time
|
||||
import pyupm_ili9341 as ili9341
|
||||
|
||||
# Pins (Edison)
|
||||
# CS_LCD GP44 (MRAA 31)
|
||||
# CS_SD GP43 (MRAA 38) unused
|
||||
# DC GP12 (MRAA 20)
|
||||
# RESEST GP13 (MRAA 14)
|
||||
lcd = ili9341.ILI9341(31, 38, 20, 14)
|
||||
def main():
|
||||
# Pins (Edison)
|
||||
# CS_LCD GP44 (MRAA 31)
|
||||
# CS_SD GP43 (MRAA 38) unused
|
||||
# DC GP12 (MRAA 20)
|
||||
# RESEST GP13 (MRAA 14)
|
||||
lcd = ili9341.ILI9341(31, 38, 20, 14)
|
||||
|
||||
# Fill the screen with a solid color
|
||||
lcd.fillScreen(lcd.color565(0, 40, 16))
|
||||
# Fill the screen with a solid color
|
||||
lcd.fillScreen(lcd.color565(0, 40, 16))
|
||||
|
||||
# Draw some shapes
|
||||
lcd.drawFastVLine(10, 10, 100, ili9341.ILI9341_RED)
|
||||
lcd.drawFastHLine(20, 10, 50, ili9341.ILI9341_CYAN)
|
||||
lcd.drawLine(160, 30, 200, 60, ili9341.ILI9341_GREEN)
|
||||
lcd.fillRect(20, 30, 75, 60, ili9341.ILI9341_ORANGE)
|
||||
lcd.drawCircle(70, 50, 20, ili9341.ILI9341_PURPLE)
|
||||
lcd.fillCircle(120, 50, 20, ili9341.ILI9341_PURPLE)
|
||||
lcd.drawTriangle(50, 100, 10, 140, 90, 140, ili9341.ILI9341_YELLOW)
|
||||
lcd.fillTriangle(150, 100, 110, 140, 190, 140, ili9341.ILI9341_YELLOW)
|
||||
lcd.drawRoundRect(20, 150, 50, 30, 10, ili9341.ILI9341_RED)
|
||||
lcd.drawRoundRect(130, 150, 50, 30, 10, ili9341.ILI9341_RED)
|
||||
lcd.fillRoundRect(75, 150, 50, 30, 10, ili9341.ILI9341_RED)
|
||||
# Draw some shapes
|
||||
lcd.drawFastVLine(10, 10, 100, ili9341.ILI9341_RED)
|
||||
lcd.drawFastHLine(20, 10, 50, ili9341.ILI9341_CYAN)
|
||||
lcd.drawLine(160, 30, 200, 60, ili9341.ILI9341_GREEN)
|
||||
lcd.fillRect(20, 30, 75, 60, ili9341.ILI9341_ORANGE)
|
||||
lcd.drawCircle(70, 50, 20, ili9341.ILI9341_PURPLE)
|
||||
lcd.fillCircle(120, 50, 20, ili9341.ILI9341_PURPLE)
|
||||
lcd.drawTriangle(50, 100, 10, 140, 90, 140, ili9341.ILI9341_YELLOW)
|
||||
lcd.fillTriangle(150, 100, 110, 140, 190, 140, ili9341.ILI9341_YELLOW)
|
||||
lcd.drawRoundRect(20, 150, 50, 30, 10, ili9341.ILI9341_RED)
|
||||
lcd.drawRoundRect(130, 150, 50, 30, 10, ili9341.ILI9341_RED)
|
||||
lcd.fillRoundRect(75, 150, 50, 30, 10, ili9341.ILI9341_RED)
|
||||
|
||||
# Write some text
|
||||
lcd.setCursor(0, 200)
|
||||
lcd.setTextColor(ili9341.ILI9341_LIGHTGREY)
|
||||
lcd.setTextWrap(True)
|
||||
lcd.setTextSize(1)
|
||||
lcd._print("Text 1\n")
|
||||
lcd.setTextSize(2)
|
||||
lcd._print("Text 2\n")
|
||||
lcd.setTextSize(3)
|
||||
lcd._print("Text 3\n")
|
||||
lcd.setTextSize(4)
|
||||
lcd._print("Text 4\n")
|
||||
# Write some text
|
||||
lcd.setCursor(0, 200)
|
||||
lcd.setTextColor(ili9341.ILI9341_LIGHTGREY)
|
||||
lcd.setTextWrap(True)
|
||||
lcd.setTextSize(1)
|
||||
lcd._print("Text 1\n")
|
||||
lcd.setTextSize(2)
|
||||
lcd._print("Text 2\n")
|
||||
lcd.setTextSize(3)
|
||||
lcd._print("Text 3\n")
|
||||
lcd.setTextSize(4)
|
||||
lcd._print("Text 4\n")
|
||||
|
||||
# Test screen rotation
|
||||
for r in range(0, 4):
|
||||
lcd.setRotation(r)
|
||||
lcd.fillRect(0, 0, 5, 5, ili9341.ILI9341_WHITE)
|
||||
time.sleep(1)
|
||||
|
||||
# Invert colors, wait, then revert back
|
||||
lcd.invertDisplay(True)
|
||||
time.sleep(2)
|
||||
lcd.invertDisplay(False)
|
||||
# Test screen rotation
|
||||
for r in range(0, 4):
|
||||
lcd.setRotation(r)
|
||||
lcd.fillRect(0, 0, 5, 5, ili9341.ILI9341_WHITE)
|
||||
time.sleep(1)
|
||||
|
||||
# Don't forget to free up that memory!
|
||||
del lcd
|
||||
# Invert colors, wait, then revert back
|
||||
lcd.invertDisplay(True)
|
||||
time.sleep(2)
|
||||
lcd.invertDisplay(False)
|
||||
|
||||
# Don't forget to free up that memory!
|
||||
del lcd
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
41
examples/python/ina132.py
Normal file → Executable file
41
examples/python/ina132.py
Normal file → Executable file
@ -21,31 +21,32 @@
|
||||
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_ina132 as upmIna132
|
||||
|
||||
# Tested with the INA132 Differential Amplifier Sensor module.
|
||||
# Instantiate an INA132 on analog pin A0
|
||||
myDifferentialAmplifier = upmIna132.INA132(0)
|
||||
def main():
|
||||
# Tested with the INA132 Differential Amplifier Sensor module.
|
||||
# Instantiate an INA132 on analog pin A0
|
||||
myDifferentialAmplifier = upmIna132.INA132(0)
|
||||
|
||||
## Exit handlers ##
|
||||
# This stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
## Exit handlers ##
|
||||
# This stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
# This lets you run code on exit,
|
||||
# including functions from myDifferentialAmplifier
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# This lets you run code on exit,
|
||||
# including functions from myDifferentialAmplifier
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
while(1):
|
||||
print myDifferentialAmplifier.value()
|
||||
time.sleep(1)
|
||||
|
||||
|
||||
while(1):
|
||||
print myDifferentialAmplifier.value()
|
||||
time.sleep(1)
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
75
examples/python/isd1820.py
Normal file → Executable file
75
examples/python/isd1820.py
Normal file → Executable file
@ -24,51 +24,50 @@
|
||||
import time, sys, atexit
|
||||
import pyupm_isd1820 as upmIsd1820
|
||||
|
||||
# Instantiate a ISD1820 on digital pins 2 (play) and 3 (record)
|
||||
# This example was tested on the Grove Recorder.
|
||||
myRecorder = upmIsd1820.ISD1820(2, 3)
|
||||
def main():
|
||||
# Instantiate a ISD1820 on digital pins 2 (play) and 3 (record)
|
||||
# This example was tested on the Grove Recorder.
|
||||
myRecorder = upmIsd1820.ISD1820(2, 3)
|
||||
|
||||
doRecord = False
|
||||
|
||||
doRecord = False
|
||||
if len(sys.argv) > 1:
|
||||
doRecord = True
|
||||
|
||||
if len(sys.argv) > 1:
|
||||
doRecord = True
|
||||
# This lets you run code on exit,
|
||||
# including functions from myRecorder
|
||||
def exitHandler():
|
||||
# turn off whatever we were doing.
|
||||
if (doRecord):
|
||||
myRecorder.record(False)
|
||||
else:
|
||||
myRecorder.play(False)
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
|
||||
# This lets you run code on exit,
|
||||
# including functions from myRecorder
|
||||
def exitHandler():
|
||||
# turn off whatever we were doing.
|
||||
if (doRecord):
|
||||
myRecorder.record(False)
|
||||
else:
|
||||
myRecorder.play(False)
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
# if an argument was specified (any argument), go into record mode,
|
||||
# else playback a previously recorded sample
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
print "Supply any argument to the command line to record."
|
||||
print "Running this example without arguments will play back any "
|
||||
print "previously recorded sound."
|
||||
print "There is approximately 10 seconds of recording time.\n"
|
||||
|
||||
# depending on what was selected, do it, and sleep for 15 seconds
|
||||
if (doRecord):
|
||||
myRecorder.record(True)
|
||||
else:
|
||||
myRecorder.play(True)
|
||||
|
||||
# if an argument was specified (any argument), go into record mode,
|
||||
# else playback a previously recorded sample
|
||||
# There are about 10 seconds of recording/playback time, so we will
|
||||
# sleep for a little extra time.
|
||||
print "Sleeping for 15 seconds..."
|
||||
time.sleep(15)
|
||||
|
||||
print "Supply any argument to the command line to record."
|
||||
print "Running this example without arguments will play back any "
|
||||
print "previously recorded sound."
|
||||
print "There is approximately 10 seconds of recording time.\n"
|
||||
# exitHandler runs automatically
|
||||
|
||||
|
||||
# depending on what was selected, do it, and sleep for 15 seconds
|
||||
if (doRecord):
|
||||
myRecorder.record(True)
|
||||
else:
|
||||
myRecorder.play(True)
|
||||
|
||||
# There are about 10 seconds of recording/playback time, so we will
|
||||
# sleep for a little extra time.
|
||||
print "Sleeping for 15 seconds..."
|
||||
time.sleep(15)
|
||||
|
||||
|
||||
# exitHandler runs automatically
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
34
examples/python/itg3200.py
Normal file → Executable file
34
examples/python/itg3200.py
Normal file → Executable file
@ -23,20 +23,24 @@
|
||||
import time
|
||||
import pyupm_itg3200 as itg3200
|
||||
|
||||
# Create an I2C gyro object
|
||||
gyro = itg3200.Itg3200(0)
|
||||
def main():
|
||||
# Create an I2C gyro object
|
||||
gyro = itg3200.Itg3200(0)
|
||||
|
||||
while(1):
|
||||
gyro.update() # Update the data
|
||||
rot = gyro.getRawValues() # Read raw sensor data
|
||||
ang = gyro.getRotation() # Read rotational speed (deg/sec)
|
||||
print "Raw: %6d %6d %6d" % (rot[0], rot[1], rot[2])
|
||||
print "AngX: %5.2f" % (ang[0])
|
||||
print "AngY: %5.2f" % (ang[1])
|
||||
print "AngZ: %5.2f" % (ang[2])
|
||||
print "Temp: %5.2f Raw: %6d" % (gyro.getTemperature(), gyro.getRawTemp())
|
||||
print ' '
|
||||
time.sleep(1)
|
||||
while(1):
|
||||
gyro.update() # Update the data
|
||||
rot = gyro.getRawValues() # Read raw sensor data
|
||||
ang = gyro.getRotation() # Read rotational speed (deg/sec)
|
||||
print "Raw: %6d %6d %6d" % (rot[0], rot[1], rot[2])
|
||||
print "AngX: %5.2f" % (ang[0])
|
||||
print "AngY: %5.2f" % (ang[1])
|
||||
print "AngZ: %5.2f" % (ang[2])
|
||||
print "Temp: %5.2f Raw: %6d" % (gyro.getTemperature(), gyro.getRawTemp())
|
||||
print ' '
|
||||
time.sleep(1)
|
||||
|
||||
# Delete the gyro object
|
||||
del gyro
|
||||
# Delete the gyro object
|
||||
del gyro
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
24
examples/python/jhd1313m1-lcd.py
Normal file → Executable file
24
examples/python/jhd1313m1-lcd.py
Normal file → Executable file
@ -23,16 +23,20 @@
|
||||
|
||||
import pyupm_i2clcd as lcd
|
||||
|
||||
# Initialize Jhd1313m1 at 0x3E (LCD_ADDRESS) and 0x62 (RGB_ADDRESS)
|
||||
myLcd = lcd.Jhd1313m1(0, 0x3E, 0x62)
|
||||
def main():
|
||||
# Initialize Jhd1313m1 at 0x3E (LCD_ADDRESS) and 0x62 (RGB_ADDRESS)
|
||||
myLcd = lcd.Jhd1313m1(0, 0x3E, 0x62)
|
||||
|
||||
myLcd.setCursor(0,0)
|
||||
# RGB Blue
|
||||
#myLcd.setColor(53, 39, 249)
|
||||
myLcd.setCursor(0,0)
|
||||
# RGB Blue
|
||||
#myLcd.setColor(53, 39, 249)
|
||||
|
||||
# RGB Red
|
||||
myLcd.setColor(255, 0, 0)
|
||||
# RGB Red
|
||||
myLcd.setColor(255, 0, 0)
|
||||
|
||||
myLcd.write('Hello World')
|
||||
myLcd.setCursor(1,2)
|
||||
myLcd.write('Hello World')
|
||||
myLcd.write('Hello World')
|
||||
myLcd.setCursor(1,2)
|
||||
myLcd.write('Hello World')
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
42
examples/python/joystick12.py
Normal file → Executable file
42
examples/python/joystick12.py
Normal file → Executable file
@ -24,29 +24,31 @@
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_joystick12 as upmJoystick12
|
||||
|
||||
# Instantiate a joystick on analog pins A0 and A1
|
||||
myJoystick = upmJoystick12.Joystick12(0, 1)
|
||||
def main():
|
||||
# Instantiate a joystick on analog pins A0 and A1
|
||||
myJoystick = upmJoystick12.Joystick12(0, 1)
|
||||
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
## Exit handlers ##
|
||||
# This function stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
# This function lets you run code on exit, including functions from myJoystick
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# This function lets you run code on exit, including functions from myJoystick
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
# Print the X and Y input values every second
|
||||
while(1):
|
||||
XString = "Driving X:" + str(myJoystick.getXInput())
|
||||
YString = ": and Y:" + str(myJoystick.getYInput())
|
||||
print XString + YString
|
||||
|
||||
time.sleep(1)
|
||||
|
||||
# Print the X and Y input values every second
|
||||
while(1):
|
||||
XString = "Driving X:" + str(myJoystick.getXInput())
|
||||
YString = ": and Y:" + str(myJoystick.getYInput())
|
||||
print XString + YString
|
||||
|
||||
time.sleep(1)
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
63
examples/python/l298-stepper.py
Normal file → Executable file
63
examples/python/l298-stepper.py
Normal file → Executable file
@ -21,47 +21,48 @@
|
||||
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_l298 as upmL298
|
||||
|
||||
# Instantiate a Stepper motor on a L298 Dual H-Bridge.
|
||||
# This was tested with the NEMA-17 12V, 350mA, with 200 steps per rev.
|
||||
myHBridge = upmL298.L298(200, 3, 4, 7, 8, 9)
|
||||
def main():
|
||||
# Instantiate a Stepper motor on a L298 Dual H-Bridge.
|
||||
# This was tested with the NEMA-17 12V, 350mA, with 200 steps per rev.
|
||||
myHBridge = upmL298.L298(200, 3, 4, 7, 8, 9)
|
||||
|
||||
## Exit handlers ##
|
||||
# This stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
## Exit handlers ##
|
||||
# This stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
# This lets you run code on exit,
|
||||
# including functions from myHBridge
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# This lets you run code on exit,
|
||||
# including functions from myHBridge
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
myHBridge.setSpeed(10) # 10 RPMs
|
||||
myHBridge.setDirection(upmL298.L298.DIR_CW)
|
||||
myHBridge.enable(True)
|
||||
|
||||
print "Rotating 1 full revolution at 10 RPM speed."
|
||||
# move 200 steps, a full rev
|
||||
myHBridge.stepperSteps(200)
|
||||
|
||||
myHBridge.setSpeed(10) # 10 RPMs
|
||||
myHBridge.setDirection(upmL298.L298.DIR_CW)
|
||||
myHBridge.enable(True)
|
||||
print "Sleeping for 2 seconds..."
|
||||
time.sleep(2)
|
||||
|
||||
print "Rotating 1 full revolution at 10 RPM speed."
|
||||
# move 200 steps, a full rev
|
||||
myHBridge.stepperSteps(200)
|
||||
print "Rotating 1/2 revolution in opposite direction at 10 RPM speed."
|
||||
myHBridge.setDirection(upmL298.L298.DIR_CCW)
|
||||
myHBridge.stepperSteps(100)
|
||||
|
||||
print "Sleeping for 2 seconds..."
|
||||
time.sleep(2)
|
||||
# release
|
||||
myHBridge.enable(False)
|
||||
|
||||
print "Rotating 1/2 revolution in opposite direction at 10 RPM speed."
|
||||
myHBridge.setDirection(upmL298.L298.DIR_CCW)
|
||||
myHBridge.stepperSteps(100)
|
||||
# exitHandler is called automatically
|
||||
|
||||
# release
|
||||
myHBridge.enable(False)
|
||||
|
||||
# exitHandler is called automatically
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
61
examples/python/l298.py
Normal file → Executable file
61
examples/python/l298.py
Normal file → Executable file
@ -21,45 +21,46 @@
|
||||
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
|
||||
import time, sys, signal, atexit
|
||||
import pyupm_l298 as upmL298
|
||||
|
||||
# Instantiate one of the 2 possible DC motors on a L298 Dual
|
||||
# H-Bridge. For controlling a stepper motor, see the l298-stepper
|
||||
# example.
|
||||
myHBridge = upmL298.L298(3, 4, 7)
|
||||
def main():
|
||||
# Instantiate one of the 2 possible DC motors on a L298 Dual
|
||||
# H-Bridge. For controlling a stepper motor, see the l298-stepper
|
||||
# example.
|
||||
myHBridge = upmL298.L298(3, 4, 7)
|
||||
|
||||
## Exit handlers ##
|
||||
# This stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
|
||||
## Exit handlers ##
|
||||
# This stops python from printing a stacktrace when you hit control-C
|
||||
def SIGINTHandler(signum, frame):
|
||||
raise SystemExit
|
||||
# This lets you run code on exit,
|
||||
# including functions from myHBridge
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
|
||||
# This lets you run code on exit,
|
||||
# including functions from myHBridge
|
||||
def exitHandler():
|
||||
print "Exiting"
|
||||
sys.exit(0)
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
|
||||
# Register exit handlers
|
||||
atexit.register(exitHandler)
|
||||
signal.signal(signal.SIGINT, SIGINTHandler)
|
||||
print "Starting motor at 50% for 3 seconds..."
|
||||
myHBridge.setSpeed(50)
|
||||
myHBridge.setDirection(upmL298.L298.DIR_CW)
|
||||
myHBridge.enable(True)
|
||||
|
||||
time.sleep(3)
|
||||
|
||||
print "Starting motor at 50% for 3 seconds..."
|
||||
myHBridge.setSpeed(50)
|
||||
myHBridge.setDirection(upmL298.L298.DIR_CW)
|
||||
myHBridge.enable(True)
|
||||
print "Reversing direction..."
|
||||
myHBridge.setDirection(upmL298.L298.DIR_NONE) # fast stop
|
||||
myHBridge.setDirection(upmL298.L298.DIR_CCW)
|
||||
time.sleep(3);
|
||||
|
||||
time.sleep(3)
|
||||
myHBridge.setSpeed(0)
|
||||
myHBridge.enable(False)
|
||||
|
||||
print "Reversing direction..."
|
||||
myHBridge.setDirection(upmL298.L298.DIR_NONE) # fast stop
|
||||
myHBridge.setDirection(upmL298.L298.DIR_CCW)
|
||||
time.sleep(3);
|
||||
# exitHandler is called automatically
|
||||
|
||||
myHBridge.setSpeed(0)
|
||||
myHBridge.enable(False)
|
||||
|
||||
# exitHandler is called automatically
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user