Su botón puede ser un pull-up o pull-down en un GPIO. Usted toma las líneas GPIO (configuradas como una entrada en el software) y las conecta a uno de los terminales de botón. Coloca una resistencia (digamos 10K) entre esa línea y el riel de 3.3V.
Luego toma el otro terminal y lo conecta a tierra.
Cuando el botón está abierto (es decir, no presionado), la línea GPIO se lleva a + 3.3V a través de la resistencia y la entrada leerá 1. Cuando se presiona el botón, la línea se conectará a tierra y leerá 0. Puede hacer "eliminación de rebotes" en el software al no leer el botón después de la primera transición de 1 a 0, por un período pequeño, digamos 200 ms.
El punto de la resistencia es tirar de la línea hasta + 3.3V cuando se suelta nuevamente el botón, de lo contrario "flotaría" en algún valor indeterminado. Por lo tanto, se denomina resistencia "pull-up".
Aquí hay un par de ejemplos. La izquierda muestra un interruptor alto activo con una resistencia externa desplegable. El derecho es un interruptor bajo activo con una resistencia de pull-up externa. El Beagleboard también tiene resistencias internas de pull-up y pull-down que pueden habilitarse para este propósito. También puede ser una buena idea poner una pequeña resistencia (100 - 1k) entre el interruptor y el pin para protegerlo.
simular este circuito : esquema creado usando CircuitLab