diff options
Diffstat (limited to 'esp8266/tests')
-rw-r--r-- | esp8266/tests/neopixel.py | 64 | ||||
-rw-r--r-- | esp8266/tests/onewire.py | 143 |
2 files changed, 0 insertions, 207 deletions
diff --git a/esp8266/tests/neopixel.py b/esp8266/tests/neopixel.py deleted file mode 100644 index 7717bb496b..0000000000 --- a/esp8266/tests/neopixel.py +++ /dev/null @@ -1,64 +0,0 @@ -import time -import machine -from esp import neopixel_write - -class NeoPixel: - def __init__(self, pin, n): - self.pin = pin - self.n = n - self.buf = bytearray(n * 3) - - def __setitem__(self, index, val): - r, g, b = val - self.buf[index * 3] = g - self.buf[index * 3 + 1] = r - self.buf[index * 3 + 2] = b - - def __getitem__(self, index): - i = index * 3 - return self.buf[i], self.buf[i + 1], self.buf[i + 2] - - def write(self): - neopixel_write(self.pin, self.buf, True) - -def test(): - # put a neopixel strip on GPIO4 - p = machine.Pin(4, machine.Pin.OUT) - np = NeoPixel(p, 8) - n = np.n - - # cycle - for i in range(4 * n): - for j in range(n): - np[j] = (0, 0, 0) - np[i % n] = (255, 255, 255) - np.write() - time.sleep_ms(25) - - # bounce - for i in range(4 * n): - for j in range(n): - np[j] = (0, 0, 128) - if (i // n) % 2 == 0: - np[i % n] = (0, 0, 0) - else: - np[n - 1 - (i % n)] = (0, 0, 0) - np.write() - time.sleep_ms(60) - - # fade in/out - for i in range(0, 4 * 256, 8): - for j in range(n): - if (i // 256) % 2 == 0: - val = i & 0xff - else: - val = 255 - (i & 0xff) - np[j] = (val, 0, 0) - np.write() - - # clear - for i in range(n): - np[i] = (0, 0, 0) - np.write() - -test() diff --git a/esp8266/tests/onewire.py b/esp8266/tests/onewire.py deleted file mode 100644 index 95d16c6689..0000000000 --- a/esp8266/tests/onewire.py +++ /dev/null @@ -1,143 +0,0 @@ -import _onewire as _ow - -class OneWire: - CMD_SEARCHROM = const(0xf0) - CMD_READROM = const(0x33) - CMD_MATCHROM = const(0x55) - CMD_SKIPROM = const(0xcc) - - def __init__(self, pin): - self.pin = pin - self.pin.init(pin.OPEN_DRAIN, pin.PULL_NONE) - - def reset(self): - return _ow.reset(self.pin) - - def read_bit(self): - return _ow.readbit(self.pin) - - def read_byte(self): - return _ow.readbyte(self.pin) - - def read_bytes(self, count): - buf = bytearray(count) - for i in range(count): - buf[i] = _ow.readbyte(self.pin) - return buf - - def write_bit(self, value): - return _ow.writebit(self.pin, value) - - def write_byte(self, value): - return _ow.writebyte(self.pin, value) - - def write_bytes(self, buf): - for b in buf: - _ow.writebyte(self.pin, b) - - def select_rom(self, rom): - self.reset() - self.write_byte(CMD_MATCHROM) - self.write_bytes(rom) - - def scan(self): - devices = [] - diff = 65 - rom = False - for i in range(0xff): - rom, diff = self._search_rom(rom, diff) - if rom: - devices += [rom] - if diff == 0: - break - return devices - - def _search_rom(self, l_rom, diff): - if not self.reset(): - return None, 0 - self.write_byte(CMD_SEARCHROM) - if not l_rom: - l_rom = bytearray(8) - rom = bytearray(8) - next_diff = 0 - i = 64 - for byte in range(8): - r_b = 0 - for bit in range(8): - b = self.read_bit() - if self.read_bit(): - if b: # there are no devices or there is an error on the bus - return None, 0 - else: - if not b: # collision, two devices with different bit meaning - if diff > i or ((l_rom[byte] & (1 << bit)) and diff != i): - b = 1 - next_diff = i - self.write_bit(b) - if b: - r_b |= 1 << bit - i -= 1 - rom[byte] = r_b - return rom, next_diff - - def crc8(self, data): - return _ow.crc8(data) - -class DS18B20: - THERM_CMD_CONVERTTEMP = const(0x44) - THERM_CMD_RSCRATCHPAD = const(0xbe) - - def __init__(self, onewire): - self.ow = onewire - self.roms = [] - - def scan(self): - self.roms = [] - for rom in self.ow.scan(): - if rom[0] == 0x28: - self.roms += [rom] - return self.roms - - def start_measure(self): - if not self.ow.reset(): - return False - self.ow.write_byte(CMD_SKIPROM) - self.ow.write_byte(THERM_CMD_CONVERTTEMP) - return True - - def get_temp(self, rom): - if not self.ow.reset(): - return None - - self.ow.select_rom(rom) - self.ow.write_byte(THERM_CMD_RSCRATCHPAD) - - buf = self.ow.read_bytes(9) - if self.ow.crc8(buf): - return None - - return self._convert_temp(buf) - - def _convert_temp(self, data): - temp_lsb = data[0] - temp_msb = data[1] - return (temp_msb << 8 | temp_lsb) / 16 - -# connect 1-wire temp sensors to GPIO12 for this test -def test(): - import time - import machine - dat = machine.Pin(12) - ow = OneWire(dat) - - ds = DS18B20(ow) - roms = ow.scan() - print('found devices:', roms) - - for i in range(4): - print('temperatures:', end=' ') - ds.start_measure() - time.sleep_ms(750) - for rom in roms: - print(ds.get_temp(rom), end=' ') - print() |