BeagleBone For Dummies (2015)
Appendix B
Controlling BeagleBone’s GPIOs
This appendix offers a handy reference to controlling and accessing your BeagleBone’s general purpose input/output (GPIOs) with the file system, BoneScript, and Python.
Controlling the GPIO with the File System
You can use the following commands to control the GPIO with the file system.
· Exporting a pin:
echo 40 > /sys/class/gpio/export
· Setting a pin OUTPUT:
echo out > /sys/class/gpio/gpio40/direction
· Writing a pin HIGH:
echo 1 > /sys/class/gpio/gpio40/value
· Writing a pin LOW:
echo 0 > /sys/class/gpio/gpio40/value
· Setting a pin INPUT:
echo in > /sys/class/gpio/gpio40/direction
· Reading the value from an INPUT pin (returns 1 for HIGH and 0 for LOW):
cat /sys/class/gpio/gpio40/value
Controlling the GPIO with BoneScript
You can use the following BoneScript commands to control the GPIO.
· Loading a BoneScript module:
var b = require('bonescript');
· Setting a pin OUTPUT:
b.pinMode("P9_14", b.OUTPUT);
· Writing a pin HIGH:
b.digitalWrite("P9_14", b.HIGH);
· Writing a pin LOW:
b.digitalWrite("P9_14", b.LOW);
· Setting a pin INPUT:
b.pinMode("P8_11", b.INPUT);
· Reading the value from a digital INPUT pin (returns HIGH or LOW):
b.digitalRead("P8_11");
· Setting a pin for pulse-width modulation (PWM) with 50 percent duty cycle:
b.pinMode('P9_14', b.OUTPUT);
b.analogWrite('P9_14', 0.5);
· Reading the value from an analog INPUT pin (returns a value between 0 and 1):
b.analogRead('P9_40');
Controlling the GPIO with Python
You can use the following Python commands to control the GPIO.
· Importing Adafruit’s BeagleBone Input Output Library:
import Adafruit_BBIO.GPIO as GPIO
· Setting a pin OUTPUT:
GPIO.setup("P9_14", GPIO.OUT)
· Writing a pin HIGH:
GPIO.output("P9_14", GPIO.HIGH)
· Writing a pin LOW:
GPIO.output("P9_14", GPIO.LOW)
· Setting a pin INPUT:
GPIO.setup("P8_11", GPIO.IN)
· Reading the value from a digital INPUT pin (returns HIGH or LOW):
GPIO.input("P8_11")
· Setting a pin for PWM with 50 percent duty cycle:
import Adafruit_BBIO.PWM as PWM
PWM.start("P9_14", 50)
· Setting an analog INPUT:
import Adafruit_BBIO.ADC as ADC
ADC.setup()
· Reading the value from an analog INPUT pin (returns a value between 0 and 1):
analogReading = ADC.read("P9_40")