OLD | NEW |
1 // Copyright (c) 2015, the Fletch project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, the Fletch project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE.md file. | 3 // BSD-style license that can be found in the LICENSE.md file. |
4 // | 4 // |
5 // A door bell example. Illustrates watching GPIO pin state with events. | 5 // A door bell example. Illustrates watching GPIO pin state with events. |
6 // | 6 // |
7 // For breadboard layout and connections to the Pi, see: | 7 // For breadboard layout and connections to the Pi, see: |
8 // https://storage.googleapis.com/fletch-archive/images/buzzer-schematic.png | 8 // https://storage.googleapis.com/fletch-archive/images/buzzer-schematic.png |
9 | 9 |
10 import 'package:gpio/gpio.dart'; | 10 import 'package:gpio/gpio.dart'; |
| 11 import 'package:raspberry_pi/raspberry_pi.dart'; |
11 import 'package:os/os.dart'; | 12 import 'package:os/os.dart'; |
12 | 13 |
13 main() { | 14 main() { |
14 // GPIO pin constants. | 15 // GPIO pin constants. |
15 const int button = 16; | 16 const int button = 16; |
16 const int speaker = 21; | 17 const int speaker = 21; |
17 | 18 |
18 // Initialize GPIO and speaker pin. | 19 // Initialize Raspberry Pi and configure the pins. |
19 SysfsGPIO gpio = new SysfsGPIO(); | 20 RaspberryPi pi = new RaspberryPi(); |
| 21 SysfsGPIO gpio = pi.sysfsGPIO; |
| 22 |
| 23 // Initialize pins. |
20 gpio.exportPin(speaker); | 24 gpio.exportPin(speaker); |
21 gpio.setMode(speaker, Mode.output); | 25 gpio.setMode(speaker, Mode.output); |
22 | |
23 // Initialize button pin. Enable a button down trigger. | |
24 gpio.exportPin(button); | 26 gpio.exportPin(button); |
25 gpio.setMode(button, Mode.input); | 27 gpio.setMode(button, Mode.input); |
26 gpio.setTrigger(button, Trigger.both); | 28 gpio.setTrigger(button, Trigger.both); |
27 | 29 |
28 // Continuously monitor button. | 30 // Continuously monitor button. |
29 while (true) { | 31 while (true) { |
30 // Wait for button press. | 32 // Wait for button press. |
31 gpio.waitFor(button, true, -1); | 33 gpio.waitFor(button, true, -1); |
32 | 34 |
33 // Sound bell | 35 // Sound bell |
34 for (var i = 1; i <= 3; i++) { | 36 for (var i = 1; i <= 3; i++) { |
35 gpio.setPin(speaker, true); | 37 gpio.setPin(speaker, true); |
36 sleep(100); | 38 sleep(100); |
37 gpio.setPin(speaker, false); | 39 gpio.setPin(speaker, false); |
38 sleep(500); | 40 sleep(500); |
39 } | 41 } |
40 } | 42 } |
41 } | 43 } |
OLD | NEW |