Library C++ for raspberrypi and orangepi, GPIO interfaces compatible with openframeworks.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
example-apa102-ledstrip
example-compass-HMC5883L
example-gpio-pindescription
example-gps-breakout
example-gtk2-client
example-gtk2-led
example-gtk2-ui
example-i2c-scanner
example-i2c
example-led-matrix8x8
example-mcp-simple-syntax
example-mpr121 Remove obj and libs Sep 21, 2017
example-mpu6050-simple Update: add zenity tiny gui for controll application and bcm2835 supp… Jul 13, 2017
example-mpu6050
example-read-write
example-relay
example-rf24
example-server-led Update Dec 24, 2017
example-servo
example-simple-button
example-simple-led
example-simple-syntax-gpio
example-spi
example-without-OF-gps-breakout
example-without-OF-i2c-scanner
example-without-OF-mcp Update: LED apa102 solved bug [debian stretch] and add example MCP si… Dec 27, 2017
example-without-OF-mpu6050-simple
example-without-OF-oled128x64 Update: add zenity tiny gui for controll application and bcm2835 supp… Jul 13, 2017
example-without-OF-rf24-scanner
example-without-OF-simple-led
example-without-OF-spi-speed
example-zenity-led
example-zenity-ui
screen
src
tools
.gitignore
LICENSE
README.md
addon_config.mk
ofxaddons_thumbnail.png manifest Mar 29, 2016

README.md

ofxGPIO

A small library in C++ for the use of GPIO raspberrypi (A/B/2/3/Zero) orangepi (one/zero/plus) this library is compatible with the toolkit for creative coding Openframeworks. Interface GPIO: SPI (Serial Peripheral Interface), I2C (Inter Integrated Circuit), IO Pin read/write. With utilities such as: graphical gui (Gtk+ / Zenity) and TCP Unix socket implementation.

Documentation

/* define for activated more functionality */

-D COMPILE_WITHOUT_OPENFRAMEWORKS /* if = 1 work pure c++ without openframeworks toolkit */
-D GTK_UI 			  /* if = 1 activated c++ simple bridge for UI gtk+ */
-D ENABLE_BCM2835		  /* if = 1 activated c header BCM2835 */
-D ENABLE_ZENITY                  /* if = 1 activated zenity for UI debug */

Sample simple syntax ofxGPIO I/O

#include <iostream>
#include "ofxGPIO.h"

int main() 
{
        GPIO gpio;
        string state;
        int i = 0;

        gpio.setup(GPIO17,OUT,LOW);

        while(i<100)
        {
            gpio.set(HIGH);
            state = "State pin17: "+to_string(gpio.get());
            Log(state,FG_RED,BG_WHITE) <<"\n";
            sleep(2);

            gpio.set(LOW);
            state = "State pin17: "+to_string(gpio.get());
            Log(state,FG_BLUE,BG_WHITE) <<"\n";
            sleep(2);

            i++;
        }

        gpio.close();
        return 0;
}

GPIO support

Simple Gtk+ UI Utility

Sample syntax ofxGPIO i2c

I2c * bus;

bus = new I2c("/dev/i2c-1");
bus->addressSet(0x04);

while(1) 
{
	bus->writeByte(0x04,1);
	usleep(500000);
	bus->writeByte(0x04,0);
	usleep(500000);
}

Zenity UI Utility

Sample

Sample syntax ofxGPIO SPI

SPI2 spi;
char data[2];

data[0] = 1;
data[1] = 2;

spi.setup("/dev/spidev0.0",1000000);
spi.readWrite(1, (unsigned char *)data, 2);

Example ofxGPIO

Example scanner with nRF24L01:

  • Raspberry pi (2/3/Zero/A/A+/B+)
  • nRF24L01
fritzing example:

alt tag

Example simple Button Read state:

  • Raspberry pi (2/3/Zero/A/A+/B+)
  • Button
fritzing example:

alt tag

Example simple Led Blink:

  • Raspberry pi (2/3/Zero/A/A+/B+)
  • Led
fritzing example:

alt tag

Example simple Relay on / off Light:

  • Raspberry pi (2/3/Zero/A/A+/B+)
  • Relay 5v
  • Lamp
fritzing example:

alt tag

Example GPS UART: http://aprs.gids.nl/nmea/

  • Raspberry pi (2/3/Zero/A/A+/B+)
  • GPS breakout v3
fritzing example:

alt tag

Example i2c multiple byte read MPU6050:

  • Raspberry pi (2/3/Zero/A/A+/B+)
  • MPU6050
fritzing example:

alt tag

Example Led Matrix8x8:

  • Raspberry pi (2/3/Zero/A/A+/B+)
  • Led Matrix
fritzing example:

alt tag

Example Servo motor(Attention raspberry not to have pin PWM, for this we use a CLK pin, advice integrated pwm):

  • Raspberry pi (2/3/Zero/A/A+/B+)
  • Servo Motor
fritzing example:

alt tag

Example GPIO read/write stepper rotation:

  • Raspberry PI
  • Stepper Motor bipolar
  • sn754410ne H-Bridge
  • Button
  • wiring

fritzing example:

alt tag

sn754410ne H-Bridge:

alt tag


video: http://www.youtube.com/watch?v=lwRd5D9EuU0 video

Example GPIO I2C communication:

  • Raspberry PI
  • Arduino
  • LED
  • Resistor 75 ohm
  • wiring

fritzing example:

alt tag


video: http://www.youtube.com/watch?v=SRz750EdjfY video

Example GPIO SPI add Analog pin MCP3008 potentiometer:

  • Raspberry
  • MCP3008
  • Potentiometer
  • wiring

fritzing example:

alt tag

MCP3008 8-Channel 10-Bit ADC

alt tag


video: http://www.youtube.com/watch?v=PkDkCJyZ2go video


for i2c and SPI configuration visit this page:

https://learn.adafruit.com/adafruits-raspberry-pi-lesson-4-gpio-setup/configuring-spi
https://learn.adafruit.com/adafruits-raspberry-pi-lesson-4-gpio-setup/configuring-i2c



Datasheet integrated list:

Drive motor:
http://www.ti.com/lit/ds/symlink/l293.pdf
http://www.ti.com/lit/ds/symlink/sn754410.pdf
http://www.ti.com/lit/ds/symlink/uln2003a.pdf
http://www.st.com/content/ccc/resource/technical/document/datasheet/f3/6e/c8/64/4d/b3/4e/38/CD00001244.pdf/files/CD00001244.pdf/jcr:content/translations/en.CD00001244.pdf

Motor stepper Bipolar / Unipolar:
http://motion.schneider-electric.com/downloads/datasheets/14_mtr.pdf
http://www.mitsumi.co.jp/latest/Catalog/pdf/motor_m35sp_9_e.pdf

A/D Converters:
https://cdn-shop.adafruit.com/datasheets/MCP3008.pdf
http://ww1.microchip.com/downloads/en/DeviceDoc/21295C.pdf

ATmega48A/PA/88A/PA/168A/PA/328/P:
http://www.atmel.com/images/Atmel-8271-8-bit-AVR-Microcontroller-ATmega48A-48PA-88A-88PA-168A-168PA-328-328P_datasheet_Complete.pdf

MPU-6000 / MPU-6050:
https://www.cdiweb.com/datasheets/invensense/MPU-6050_DataSheet_V3%204.pdf

Adafruit Ultimate GPS:
https://cdn-learn.adafruit.com/downloads/pdf/adafruit-ultimate-gps.pdf

Adafruit LED Backpacks:
https://cdn-learn.adafruit.com/downloads/pdf/adafruit-led-backpack.pdf

EEPROM
http://www.bucek.name/pdf/24c16.pdf http://www.st.com/content/ccc/resource/technical/document/datasheet/5c/df/52/a5/15/f2/48/bd/CD00259166.pdf/files/CD00259166.pdf/jcr:content/translations/en.CD00259166.pdf