How to wire a Normally Open Button to a BeagleBone Black?
Your button can be a pull-up or pull-down on a GPIO. You take on of the GPIO lines (configured as an input in software) and connect it to one of the button terminals. You place a resistor (say 10K) between that line and the 3.3V rail.

You then take the other terminal and connect it to ground.

When the button is open (i.e. not pressed) the GPIO line is pulled to +3.3V via the resistor and the input will read 1. When the button is pressed the line will be connected to ground and it will read 0. You can do "de-bouncing" in software by not reading the button after the first 1 to 0 transition, for  small period, say 200 ms.

The point of the resistor is to pull the line back up to +3.3V when the button is released again, otherwise it would "float" at some indeterminate value. Hence it is called a "pull-up" resistor.

Here are a couple of examples. The left shows an active high switch with an external pull-down resistor. The right is an active low switch with an external pull-up resistor. The Beagleboard also has internal pull-up and pull-down resistors which can be enabled for this purpose. It may also be a good idea to put a small resistance (100 - 1k) in between the switch and the pin to protect it.







simulate this circuit &ndash; Schematic created using CircuitLab