]> Repositories - Adafruit_Blinka-hackapet.git/blob - test/src/testing/universal/i2c.py
0a2d29c0bae0fcff44e5c7b5c2f83b08812ed854
[Adafruit_Blinka-hackapet.git] / test / src / testing / universal / i2c.py
1 import gc
2 from testing import yes_no
3 gc.collect()
4 from unittest import TestCase
5 gc.collect()
6 from testing.board.i2c import I2C
7 gc.collect()
8
9 class TestBME280Interactive(TestCase):
10
11     def test_read_value(self):
12         if not(yes_no("Is BME280 wired to SCL {} SDA {}".format(board.SCL, board.SDA))):
13             return # test trivially passed
14
15         import board
16         gc.collect()
17         import adafruit_bme280
18         gc.collect()
19         i2c = I2C(board.SCL, board.SDA)
20         bme280 = adafruit_bme280.Adafruit_BME280_I2C(i2c)
21         temperature = bme280.temperature
22         humidity = bme280.humidity
23         pressure = bme280.pressure
24         altitude = bme280.altitude
25         self.assertTrue(type(temperature) is float )
26         self.assertTrue(type(humidity) is float )
27         self.assertTrue(type(pressure) is float )
28         self.assertTrue(type(altitude) is float )
29
30         self.assertTrue( -50 <= temperature <= 50)
31         self.assertTrue( 0 <= humidity <= 100)
32         self.assertTrue( 900 <= pressure <= 1100)
33         self.assertTrue( -1000 <= altitude <= 9,848)
34
35
36 class TestMMA8451Interactive(TestCase):
37
38     def test_read_value(self):
39         import math
40         gc.collect()
41         import board
42         gc.collect()
43
44         if not(yes_no("Is MMA8451 wired to SCL {} SDA {} and held still".format(board.SCL, board.SDA))):
45             return # test trivially passed
46         # from https://github.com/adafruit/Adafruit_CircuitPython_MMA8451/blob/29e31a0bb836367bc73763b83513105252b7b264/examples/simpletest.py
47         import adafruit_mma8451
48         i2c = I2C(board.SCL, board.SDA)
49         sensor = adafruit_mma8451.MMA8451(i2c)
50
51         x, y, z = sensor.acceleration
52         absolute = math.sqrt(x**2 + y**2 + z**2)
53         self.assertTrue(9 <=absolute <= 11, "Not earth gravity")
54
55         orientation = sensor.orientation
56         self.assertTrue(orientation in (
57             adafruit_mma8451.PL_PUF,
58             adafruit_mma8451.PL_PUB,
59             adafruit_mma8451.PL_PDF,
60             adafruit_mma8451.PL_PDB,
61             adafruit_mma8451.PL_LRF,
62             adafruit_mma8451.PL_LRB,
63             adafruit_mma8451.PL_LLF,
64             adafruit_mma8451.PL_LLB,
65         ))
66
67 class TestBNO055Interactive(TestCase):
68
69     def test_read_value(self):
70         """
71         Access all sensor values as per
72         https://github.com/adafruit/Adafruit_CircuitPython_BNO055/blob/bdf6ada21e7552c242bc470d4d2619b480b4c574/examples/values.py
73         """
74         import board
75         gc.collect()
76         import adafruit_bno055
77         gc.collect()
78         i2c = I2C(board.SCL, board.SDA)
79         sensor = adafruit_bno055.BNO055(i2c)
80
81         self.assertTrue(9 <= sensor.gravity <= 11)
82         self.assertTrue(sensor.temperature != 0)
83         self.assertTrue(sensor.acceleration != (0,0,0))
84         self.assertTrue(sensor.magnetometer != (0,0,0))
85         self.assertTrue(sensor.gyroscope != (0,0,0))
86         self.assertTrue(sensor.quaternion != (0,0,0,0))
87         sensor.euler
88         sensor.linear_acceleration