2014-05-20 15:39:58 +01:00
|
|
|
#######
|
|
|
|
|
Example
|
|
|
|
|
#######
|
2014-08-05 10:58:16 +01:00
|
|
|
Here are some examples of how to use mraa, common convention is to import mraa
|
|
|
|
|
as mraa to keep it short but feel free to import it globally! As a general rule
|
|
|
|
|
the API is very similar to the C++ API so there are only basic examples to show
|
|
|
|
|
quick usage. The mraa module can be built with python3 or python2. All examples
|
|
|
|
|
may not run on python3 as this is not tested.
|
2014-05-20 15:39:58 +01:00
|
|
|
|
|
|
|
|
Hello GPIO
|
|
|
|
|
==========
|
|
|
|
|
|
2014-07-31 10:25:24 +02:00
|
|
|
Here is the simplest Gpio program in mraa.
|
2014-05-20 15:39:58 +01:00
|
|
|
|
|
|
|
|
.. literalinclude:: ../../../examples/python/hello_gpio.py
|
2014-07-31 10:25:24 +02:00
|
|
|
:prepend: import mraa
|
|
|
|
|
:start-after: import mraa
|
2014-05-20 15:39:58 +01:00
|
|
|
|
|
|
|
|
GPIO Interupt (isr)
|
|
|
|
|
===================
|
|
|
|
|
|
2014-08-05 10:58:16 +01:00
|
|
|
The GPIO module allows you to set an interupt on a GPIO. This interupt is
|
2014-10-03 10:18:13 +01:00
|
|
|
controlled by the mode that the 'edge' is in. Before setting another isr please
|
|
|
|
|
remove the first one, multiple isrs on one pin are not supported. Some
|
|
|
|
|
platforms will not support interupts on all pins so please check your return
|
|
|
|
|
values.
|
2014-05-20 15:39:58 +01:00
|
|
|
|
|
|
|
|
**Note:** Galileo Gen1 only supports EDGE_BOTH
|
|
|
|
|
|
|
|
|
|
.. literalinclude:: ../../../examples/python/hello_isr.py
|
2014-07-31 10:25:24 +02:00
|
|
|
:prepend: import mraa
|
|
|
|
|
:start-after: import mraa
|
2014-05-20 15:39:58 +01:00
|
|
|
|
2014-09-19 01:06:59 +01:00
|
|
|
**Note:** If the python script is ended the destructors will run meaning that
|
|
|
|
|
the ISR will not run. The sleep call is there for that function.
|
|
|
|
|
|
2014-10-03 10:18:13 +01:00
|
|
|
**Note:** The python isr module treats only objects. This means that int
|
|
|
|
|
counters will not work inside your isr. Please use the different edge modes.
|
|
|
|
|
|
2014-08-05 10:58:16 +01:00
|
|
|
I2c
|
|
|
|
|
===
|
|
|
|
|
|
|
|
|
|
The I2c module module has a number of different ways of interacting with the
|
|
|
|
|
i2c bus, including a number of overloaded read() calls and the writeReg()
|
|
|
|
|
helper function.
|
|
|
|
|
|
2015-04-03 19:41:52 +01:00
|
|
|
.. literalinclude:: ../../../examples/python/bmp85.py
|
|
|
|
|
:prepend: x = m.I2c(0)
|
|
|
|
|
:start-after: x = m.I2c(0)
|
2014-08-05 10:58:16 +01:00
|
|
|
|
2014-09-07 21:20:06 +01:00
|
|
|
.. literalinclude:: ../../../docs/i2c.txt
|
|
|
|
|
|
2014-08-05 10:58:16 +01:00
|
|
|
Pwm
|
|
|
|
|
===
|
|
|
|
|
|
|
|
|
|
The PWM module is rather simple, note that different hardware support PWM
|
|
|
|
|
generation is various different ways so results may vary.
|
|
|
|
|
|
|
|
|
|
.. literalinclude:: ../../../examples/python/cycle-pwm3.py
|
|
|
|
|
:prepend: import mraa
|
|
|
|
|
:start-after: import mraa
|
|
|
|
|
|
|
|
|
|
Aio
|
|
|
|
|
===
|
|
|
|
|
|
|
|
|
|
The ADC is typically provided on a dedicated or shared SPI bus, this is
|
|
|
|
|
abstracted by the Linux kernel as spidev and abstracted again by mraa. It is
|
|
|
|
|
fairly simple in use.
|
|
|
|
|
|
|
|
|
|
.. literalinclude:: ../../../examples/python/aio.py
|
|
|
|
|
:prepend: import mraa
|
|
|
|
|
:start-after: import mraa
|
|
|
|
|
|