Giter Site home page Giter Site logo

simplegpio's People

Contributors

dependabot[bot] avatar stevedesmond-ca 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  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  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

simplegpio's Issues

Windows support

Right now this is Linux-only. I'm not sure if UWP is the only way to access GPIO on the Windows side, but if not, create a new WindowsPinInterface class implementing IPinInterface with the Windows mappings.

If Windows support is UWP only, feel free to create a new SimpleGPIO.Windows project in the solution that references SimpleGPIO and have the WindowsPinInterface live there.

Add SPI/I2C/UART compatibility

As of v1.0, only GPIO is supported out-of-the-box, though SPI/I2C/UART could be implemented at the consumer-level. It'd be great to have that built into the library, especially since some of the components from #2 will probably require it.

Add reactivity

When input pin X changes, do something to output pin Y.

Pulse Width Modulation

Being able to dim / slow components would be cool. I have no idea how to go about doing it.

Fix input caching

I think power/voltage values will be cached in memory and never updated from the filesystem. Comment here and I can help talk you through this!

Add new boards

I only have a Raspberry Pi, so if you have something else and want to map the GPIO pins, that would be awesome!

Support more complex hardware wanted? (e.g. MFRC522 RFID Reader)

As a developer, I want to integrate my MFRC522 RFID Reader, so that the lib would provide a nice and clean API to this device.

First I would like to thank you for this lib, my examples are not fully working, but at least it looks promising. Are you willing to extend it to support more complex stuff? Or should this be implemented in another lib?

I'm currently trying to implement support for the MFRC522 RFID Reader, would you like me to submit a PR, if I'm done?

For more information see:

Add register-backed components

#2 provides components where all pins are directly mapped to inputs on the component. To reduce wiring to the device for some components, shift registers can be used.

  • 7-segment display
  • LED matrix

This could be done as a distinct class from the direct one, abstracting a common base class with 2 implementation, or perhaps use a strategy pattern to call an internal implementation. Regardless, the public API should be consistent between both.

Add advanced bus components

#2 handles simpler components, but some more advanced ones will need a non-trivial protocol from #6 implemented first.

  • LCD panel (UART, requires #6)
  • accelerometer (I2C, requires #6)

Add GPIO components

Create high-level objects for:

  • RGB LED
  • rotary encoder
  • 7-segment display (8-pin direct)
  • motor driver
  • bit shift register
  • timer
  • LED matrix (16-pin direct)

The pins required should be passed in as parameters, and the classes should contain high-level helper methods and/or properties.

Requests for additional components should be created as their own issues.

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.