summaryrefslogtreecommitdiffstatshomepage
path: root/esp8266/tests
diff options
context:
space:
mode:
Diffstat (limited to 'esp8266/tests')
-rw-r--r--esp8266/tests/neopixel.py64
-rw-r--r--esp8266/tests/onewire.py143
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()