Controlling BeagleBone’s GPIOs - BeagleBone For Dummies (2015)

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")