- Notifications
You must be signed in to change notification settings - Fork0
RaspberryPi-Sharp/raspberrypi-sharp-io
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
See theRaspberry# IO Wiki for full documentation and samples.
Raspberry# IO is a .NET/Mono IO Library for Raspberry Pi. This project is an initiative of theRaspberry# Community.
Current release is an early public release. Some features may not have been extensively tested.Raspberry# IO currently supports low- and high-level GPIO input/output, support for SPI and I2C peripherals.
Samples for SPI (for MCP3008 ADC or MCP4822 DAC), I2C (for MCP23017 I/O Expander), HD44780 LCD display and HC-SR04 distance sensor are provided.
Support for extended I/O (such as SDI, or PWM for motor control) is planned for future releases.
Programs using Raspberry# IO must be run with elevated privileges, for example the Test.Gpio.Chaser program included in solution:
sudo mono Test.Gpio.Chaser.exe -loopRaspberry.IO.GeneralPurpose provides a convenient way to use Raspberry Pi GPIO pins, while using .NET concepts, syntax and case.You can easily add a reference to it in your Visual Studio projects using theRaspberry.IO.GeneralPurpose Nuget.
It currently support the following features:
Low-level:
- Access to GPIO pins through in 3 flavors: basic (using files), through memory, and full (memory with support for edge detection through "pseudo-interrupt"). By default, full driver is used.
- Addressing throughprocessor pin number or connector pin number
- Pin assignment of various Raspberry Pi revisions (as of 2013-09,Raspberry Pi model B rev1 and rev2 as well as Raspberry Pi model A, including rev2 P5 connector)
- Controlled use of resources using a IDisposable component and ability to use edge detection instead of polling
- Support sub-millisecond polling of input pins
High-level:
- Giving custom name to pins for more readable code
- Easy-to-use, declarative configuration of pins. Ability to revert the polarity (1/0) of pins; ability touse an input pin as a switch button
- Firing ofevents when pin status change (input as well as output), using polling
- High-level behaviors for output pins, includingblink,pattern andchaser
- Preliminary support for SPI through Raspberry.IO.SerialPeripheralInterface assembly
- Includes SPI samples for MCP3008 ADC and MCP4822 DAC
- Includes support for Linux's kernel SPI module driver spi-bcm2708 (/dev/spidev0.0)
- Preliminary support for I2C through Raspberry.IO.InterIntegratedCircuit assembly
- Includes I2C sample for MCP23017 I/O expander
- Preliminary support for various components through Raspberry.IO.Components assembly
- Includes samples for
- HD44780 LCD display
- HC-SR04 distance detector
- Pca9685 PWM LED Controller (as used in theAdafruit 16-Channel 12-bit PWM/Servo Driver)
- TLC59711 PWM LED Controller (as used in theAdafruit 12-Channel 16-bit PWM LED Driver)
Parts of Raspberry# IO are inspired byBCM2835 C Library and Gordon Henderson'sWiringPi.
About
A .NET/Mono IO Library for Raspberry Pi
Resources
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Releases
Packages0
Languages
- C#99.5%
- Other0.5%