SHOW:
|
|
- or go back to the newest paste.
1 | - | from microbit import * |
1 | + | from microbit import * |
2 | - | |
2 | + | |
3 | - | sleep_time = 200 |
3 | + | sleep_time = 200 |
4 | - | warning_time = 5000 |
4 | + | warning_time = 5000 |
5 | - | |
5 | + | |
6 | - | class Pinger: |
6 | + | class Pinger: |
7 | - | |
7 | + | |
8 | - | def __init__(self): |
8 | + | def __init__(self): |
9 | - | self.direction = 1 |
9 | + | self.direction = 1 |
10 | - | self.x = 2 |
10 | + | self.x = 2 |
11 | - | self.y = 2 |
11 | + | self.y = 2 |
12 | - | |
12 | + | |
13 | - | def update(self): |
13 | + | def update(self): |
14 | - | display.set_pixel(self.x, self.y, 0) |
14 | + | display.set_pixel(self.x, self.y, 0) |
15 | - | if self.x >= 4: |
15 | + | if self.x >= 4: |
16 | - | self.x = 4 |
16 | + | self.x = 4 |
17 | - | self.direction = -self.direction |
17 | + | self.direction = -self.direction |
18 | - | elif self.x <= 0: |
18 | + | elif self.x <= 0: |
19 | - | self.x = 0 |
19 | + | self.x = 0 |
20 | - | self.direction = -self.direction |
20 | + | self.direction = -self.direction |
21 | - | |
21 | + | |
22 | - | self.x += self.direction |
22 | + | self.x += self.direction |
23 | - | display.set_pixel(self.x, self.y, 9) |
23 | + | display.set_pixel(self.x, self.y, 9) |
24 | - | |
24 | + | |
25 | - | |
25 | + | |
26 | - | class DinosaurDetector: |
26 | + | class DinosaurDetector: |
27 | - | |
27 | + | |
28 | - | def __init__(self): |
28 | + | def __init__(self): |
29 | - | self.horizontal_start = 0 |
29 | + | self.horizontal_start = 0 |
30 | - | self.vertical_start = 0 |
30 | + | self.vertical_start = 0 |
31 | - | self.reset() |
31 | + | self.reset() |
32 | - | |
32 | + | |
33 | - | def dinosaur_detected(self): |
33 | + | def dinosaur_detected(self): |
34 | - | horizontal_now = accelerometer.get_x() |
34 | + | horizontal_now = accelerometer.get_x() |
35 | - | vertical_now = accelerometer.get_y() |
35 | + | vertical_now = accelerometer.get_y() |
36 | - | |
36 | + | |
37 | - | return self.horizontal_start != horizontal_now or self.vertical_start != vertical_now |
37 | + | return self.horizontal_start != horizontal_now or self.vertical_start != vertical_now |
38 | - | |
38 | + | |
39 | - | def reset(self): |
39 | + | def reset(self): |
40 | - | self.horizontal_start = accelerometer.get_x() |
40 | + | self.horizontal_start = accelerometer.get_x() |
41 | - | self.vertical_start = accelerometer.get_y() |
41 | + | self.vertical_start = accelerometer.get_y() |
42 | - | |
42 | + | |
43 | - | |
43 | + | |
44 | - | display.scroll('Dino Detector', delay=100) |
44 | + | display.scroll('Dino Detector', delay=100) |
45 | - | |
45 | + | |
46 | - | detector = DinosaurDetector() |
46 | + | detector = DinosaurDetector() |
47 | - | pinger = Pinger() |
47 | + | pinger = Pinger() |
48 | - | |
48 | + | |
49 | - | glass1 = Image("00000:00000:00900:00000:00000") |
49 | + | glass1 = Image("00000:00000:00900:00000:00000") |
50 | - | glass2 = Image("00000:00900:09090:00900:00000") |
50 | + | glass2 = Image("00000:00900:09090:00900:00000") |
51 | - | glass3 = Image("09990:90009:90009:90009:09990") |
51 | + | glass3 = Image("09990:90009:90009:90009:09990") |
52 | - | glass4 = Image("09090:90009:00000:90009:09090") |
52 | + | glass4 = Image("09090:90009:00000:90009:09090") |
53 | - | ripple_animation = [glass1, glass2, glass3, glass4, glass3, glass2, glass1] |
53 | + | ripple_animation = [glass1, glass2, glass3, glass4, glass3, glass2, glass1] |
54 | - | |
54 | + | |
55 | - | while True: |
55 | + | while True: |
56 | - | |
56 | + | |
57 | - | pinger.update() |
57 | + | pinger.update() |
58 | - | sleep(sleep_time) |
58 | + | sleep(sleep_time) |
59 | - | |
59 | + | |
60 | - | if detector.dinosaur_detected(): |
60 | + | if detector.dinosaur_detected(): |
61 | - | detector.reset() |
61 | + | detector.reset() |
62 | - | display.show(ripple_animation, delay=100) |
62 | + | display.show(ripple_animation, delay=100) |
63 | - | display.show(Image.GIRAFFE) |
63 | + | display.show(Image.GIRAFFE) |
64 | - | sleep(warning_time) |
64 | + | sleep(warning_time) |
65 | display.clear() |