对micropython 和C2板卡执行 build:prod
This commit is contained in:
@@ -1,52 +1,52 @@
|
||||
#ADXL345
|
||||
import time
|
||||
import ustruct
|
||||
from micropython import const
|
||||
|
||||
DATA_FORMAT = const(0x31)
|
||||
BW_RATE = const(0x2c)
|
||||
POWER_CTL = const(0x2d)
|
||||
INT_ENABLE = const(0x2E)
|
||||
OFSX = const(0x1e)
|
||||
OFSY = const(0x1f)
|
||||
OFSZ = const(0x20)
|
||||
|
||||
class ADXL345:
|
||||
def __init__(self, i2c, address=0X53):
|
||||
self._device = i2c
|
||||
self._address = address
|
||||
if self._rreg(0x0) != 0xe5:
|
||||
raise AttributeError("Cannot find a ADXL345")
|
||||
|
||||
self._wreg(DATA_FORMAT,0x2B) #16g量程
|
||||
self._wreg(BW_RATE,0x0A) #数据输出速度为100Hz
|
||||
self._wreg(INT_ENABLE,0x00) #不使用中断
|
||||
|
||||
self._wreg(OFSX,0x00)
|
||||
self._wreg(OFSY,0x00)
|
||||
self._wreg(OFSZ,0x00)
|
||||
self._wreg(POWER_CTL,0x08) #链接使能,测量模式
|
||||
time.sleep(0.5)
|
||||
|
||||
def readXYZ(self):
|
||||
x, = ustruct.unpack('<h', self._rreg(0x32,2))
|
||||
y, = ustruct.unpack('<h', self._rreg(0x34,2))
|
||||
z, = ustruct.unpack('<h', self._rreg(0x36,2))
|
||||
return (x/256,y/256,z/256)
|
||||
|
||||
def readX(self):
|
||||
return self.readXYZ()[0]
|
||||
|
||||
def readY(self):
|
||||
return self.readXYZ()[1]
|
||||
|
||||
def readZ(self):
|
||||
return self.readXYZ()[2]
|
||||
|
||||
def _wreg(self, reg, val):
|
||||
'''Write memory address'''
|
||||
self._device.writeto_mem(self._address,reg,val.to_bytes(1, 'little'))
|
||||
|
||||
def _rreg(self, reg,nbytes=1):
|
||||
'''Read memory address'''
|
||||
return self._device.readfrom_mem(self._address, reg, nbytes)[0] if nbytes<=1 else self._device.readfrom_mem(self._address, reg, nbytes)[0:nbytes]
|
||||
#ADXL345
|
||||
import time
|
||||
import ustruct
|
||||
from micropython import const
|
||||
|
||||
DATA_FORMAT = const(0x31)
|
||||
BW_RATE = const(0x2c)
|
||||
POWER_CTL = const(0x2d)
|
||||
INT_ENABLE = const(0x2E)
|
||||
OFSX = const(0x1e)
|
||||
OFSY = const(0x1f)
|
||||
OFSZ = const(0x20)
|
||||
|
||||
class ADXL345:
|
||||
def __init__(self, i2c, address=0X53):
|
||||
self._device = i2c
|
||||
self._address = address
|
||||
if self._rreg(0x0) != 0xe5:
|
||||
raise AttributeError("Cannot find a ADXL345")
|
||||
|
||||
self._wreg(DATA_FORMAT,0x2B) #16g量程
|
||||
self._wreg(BW_RATE,0x0A) #数据输出速度为100Hz
|
||||
self._wreg(INT_ENABLE,0x00) #不使用中断
|
||||
|
||||
self._wreg(OFSX,0x00)
|
||||
self._wreg(OFSY,0x00)
|
||||
self._wreg(OFSZ,0x00)
|
||||
self._wreg(POWER_CTL,0x08) #链接使能,测量模式
|
||||
time.sleep(0.5)
|
||||
|
||||
def readXYZ(self):
|
||||
x, = ustruct.unpack('<h', self._rreg(0x32,2))
|
||||
y, = ustruct.unpack('<h', self._rreg(0x34,2))
|
||||
z, = ustruct.unpack('<h', self._rreg(0x36,2))
|
||||
return (x/256,y/256,z/256)
|
||||
|
||||
def readX(self):
|
||||
return self.readXYZ()[0]
|
||||
|
||||
def readY(self):
|
||||
return self.readXYZ()[1]
|
||||
|
||||
def readZ(self):
|
||||
return self.readXYZ()[2]
|
||||
|
||||
def _wreg(self, reg, val):
|
||||
'''Write memory address'''
|
||||
self._device.writeto_mem(self._address,reg,val.to_bytes(1, 'little'))
|
||||
|
||||
def _rreg(self, reg,nbytes=1):
|
||||
'''Read memory address'''
|
||||
return self._device.readfrom_mem(self._address, reg, nbytes)[0] if nbytes<=1 else self._device.readfrom_mem(self._address, reg, nbytes)[0:nbytes]
|
||||
|
||||
@@ -1,31 +1,31 @@
|
||||
from struct import unpack as unp
|
||||
from time import sleep_ms
|
||||
|
||||
# SHT20 default address
|
||||
SHT20_I2CADDR = 64
|
||||
TRI_T_MEASURE_NO_HOLD = b'\xf3'
|
||||
TRI_RH_MEASURE_NO_HOLD = b'\xf5'
|
||||
READ_USER_REG = b'\xe7'
|
||||
WRITE_USER_REG = b'\xe6'
|
||||
SOFT_RESET = b'\xfe'
|
||||
|
||||
class SHT20(object):
|
||||
def __init__(self, i2c_bus):
|
||||
self._address = SHT20_I2CADDR
|
||||
self._bus = i2c_bus
|
||||
|
||||
def get_SHT_temperature(self):
|
||||
self._bus.writeto(self._address, TRI_T_MEASURE_NO_HOLD)
|
||||
sleep_ms(150)
|
||||
origin_data = self._bus.readfrom(self._address, 2)
|
||||
origin_value = unp('>h', origin_data)[0]
|
||||
value = -46.85 + 175.72 * (origin_value / 65536)
|
||||
return value
|
||||
|
||||
def get_SHT_relative_humidity(self):
|
||||
self._bus.writeto(self._address, TRI_RH_MEASURE_NO_HOLD)
|
||||
sleep_ms(150)
|
||||
origin_data = self._bus.readfrom(self._address, 2)
|
||||
origin_value = unp('>H', origin_data)[0]
|
||||
value = -6 + 125 * (origin_value / 65536)
|
||||
return value
|
||||
from struct import unpack as unp
|
||||
from time import sleep_ms
|
||||
|
||||
# SHT20 default address
|
||||
SHT20_I2CADDR = 64
|
||||
TRI_T_MEASURE_NO_HOLD = b'\xf3'
|
||||
TRI_RH_MEASURE_NO_HOLD = b'\xf5'
|
||||
READ_USER_REG = b'\xe7'
|
||||
WRITE_USER_REG = b'\xe6'
|
||||
SOFT_RESET = b'\xfe'
|
||||
|
||||
class SHT20(object):
|
||||
def __init__(self, i2c_bus):
|
||||
self._address = SHT20_I2CADDR
|
||||
self._bus = i2c_bus
|
||||
|
||||
def get_SHT_temperature(self):
|
||||
self._bus.writeto(self._address, TRI_T_MEASURE_NO_HOLD)
|
||||
sleep_ms(150)
|
||||
origin_data = self._bus.readfrom(self._address, 2)
|
||||
origin_value = unp('>h', origin_data)[0]
|
||||
value = -46.85 + 175.72 * (origin_value / 65536)
|
||||
return value
|
||||
|
||||
def get_SHT_relative_humidity(self):
|
||||
self._bus.writeto(self._address, TRI_RH_MEASURE_NO_HOLD)
|
||||
sleep_ms(150)
|
||||
origin_data = self._bus.readfrom(self._address, 2)
|
||||
origin_value = unp('>H', origin_data)[0]
|
||||
value = -6 + 125 * (origin_value / 65536)
|
||||
return value
|
||||
|
||||
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user