Git Product home page Git Product logo

wiring-x86's Introduction

Wiring-x86

Wiring-x86 is a Python module that lets you use Arduino like functionality on Intel® Arduino capable boards such as:

It provides a simple and unified API (similar to the WiringPi module) to talk to the GPIO pins on the board.

https://raw.githubusercontent.com/emutex/wiring-x86/master/docs/source/_images/galileo1.jpg

At the moment the Wiring-x86 library provides support to:

  • Writing to a GPIO pin configured as output.
  • Reading from a GPIO pin configured as high impedance input.
  • Reading from a GPIO pin configured as pullup input.
  • Reading from a GPIO pin configured as pulldown input.
  • Reading from a GPIO pin configured as analog input (ADC).
  • Writing to a GPIO pin configured as analog output (PWM).

Here is a simple example:

# Import the time module enable sleeps between turning the led on and off.
import time

# Import the GPIOEdison class from the wiringx86 module.
# In case you want to use a different board, simply the import right class
# below. The API is unified for all supported boards.
from wiringx86 import GPIOEdison as GPIO

# Create a new instance of the GPIOEdison class.
# Setting debug=True gives information about the interaction with sysfs.
gpio = GPIO(debug=False)
pin = 13
state = gpio.HIGH

# Set pin 13 to be used as an output GPIO pin.
print 'Setting up pin %d' % pin
gpio.pinMode(pin, gpio.OUTPUT)


print 'Blinking pin %d now...' % pin
try:
    while(True):
        # Write a state to the pin. ON or OFF.
        gpio.digitalWrite(pin, state)

        # Toggle the state.
        state = gpio.LOW if state == gpio.HIGH else gpio.HIGH

        # Sleep for a while.
        time.sleep(0.5)

# When you get tired of seeing the led blinking kill the loop with Ctrl-C.
except KeyboardInterrupt:
    # Leave the led turned off.
    print '\nCleaning up...'
    gpio.digitalWrite(pin, gpio.LOW)

    # Do a general cleanup. Calling this function is not mandatory.
    gpio.cleanup()

Full documentation can be found at wiring-x86 site on Read the Docs.

The original YOCTO Linux OS provided by Intel® must be used. For more information on how to get this software go to Intel® Makers site. This module will only work with that combination of boards and OS since it uses specific Intel® GPIO driver sysfs interface.

wiring-x86's People

Contributors

climberhunt avatar johnm-emutex avatar nicopernas avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

wiring-x86's Issues

setPWMPeriod accepts argumets in reverse order

Got
cmd = 'echo %d > /sys/class/pwm/pwmchip0/pwm%d/period' % (period, channel) TypeError: %d format: a number is required, not NoneType
for gpio.setPWMPeriod(10, 20000000)

Thus I reversed argument order and got success.
Seems it has broken somewhere inside the lib, not in Edison wrapper.
However, I don't mind.

git version of wiring-x86: commit 74e15c7
Hardware: Intel Edison v2 with Arduino breakout

On-board led (pin 13) not working on Galileo board

On Arduino compatible boards the on-board general purpose led (GP) is connected to GPIO pin 13. On Galileo board the on-board pin is not currently working due to a known issue on the board itself. On Galileo GP led is not really connected to pin 13 but 20. A workaround needs to be put in place to write to GPIO pin 20 every time pin 13 is written. Extra muxing might be needed as well.

Edison: ADC input does not work without setting Pin13 as output.

The SPI pins come up in an invalid state, and need some tweaking before the ADC can be read. The ADC example works because it uses Pin13 to output, but if you have a simpler sketch, then the muxing is incorrect for successful ADC reading.
Platform: Intel Edison.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.