Requirements:
- Python 2.7 or 3.4
- cffi
Python package on FreeBSD 11 have problem when using python source that needed to compile thing, so the easiest way is to use the binary packages uploaded to pypi:
pip install --only-binary freebsd-11 fbsd_gpio
The fbsd_gpio module expose two classes, GpioController and GpioPin
Use gpio controller unit 0 (/dev/gpioc0) and list all the pins name:
from fbsd_gpio import GpioController
gpioc = GpioController(0)
for pin in gpioc:
print(pin)
Set pin 127 to output and logical value 1
from fbsd_gpio import GpioController, GPIO_VALUE_HIGH
gpioc = GpioController(0)
gpioc.pin_output(127)
# The two following lines are equivalent
gpioc.pin_set(127, GPIO_VALUE_HIGH)
gpioc.pin_high(127)
Alternativelly you can use the GpioPin class:
from fbsd_gpio import GpioPin, GPIO_VALUE_HIGH
pin = GpioPin(127, unit=0)
pin.ouput = True
# The following lines are equivalent
pin.set(GPIO_VALUE_HIGH)
pin.high()
pin(GPIO_VALUE_HIGH)
Or use the name of the pin directly:
from fbsd_gpio import GpioController, GPIO_VALUE_HIGH
gpioc = GpioController(0)
gpioc.gpioled0.output = True
# The three following lines are equivalent
gpioc.gpioled.set(GPIO_VALUE_HIGH)
gpioc.gpioled0.high()
gpioc.gpioled0(GPIO_VALUE_HIGH)
Get the value of a pin:
from fbsd_gpio import GpioPin
pin = GpioPin(128, unit=0)
if pin.input:
print('Pin is input mode')
else
print('Pin is output mode')
# The two following lines are equivalent
value = pin.get()
value = pin()
Toggle the value of a pin:
from fbsd_gpio import GpioPin
pin = GpioPin(128, unit=0)
pin.toggle()
Change the name of a pin:
from fbsd_gpio import GpioPin
pin = GpioPin(128, unit=0)
pin.name = 'green_led'