Project Name | Stars | Downloads | Repos Using This | Packages Using This | Most Recent Commit | Total Releases | Latest Release | Open Issues | License | Language |
---|---|---|---|---|---|---|---|---|---|---|
Rpi Gpio.js | 547 | 303 | 71 | 3 years ago | 32 | May 25, 2020 | 12 | mit | JavaScript | |
Control Raspberry Pi GPIO pins with node.js | ||||||||||
Mqtt Io | 395 | 2 months ago | 40 | January 19, 2021 | 45 | mit | Python | |||
Expose GPIO modules (Raspberry Pi, Beaglebone, PCF8754, PiFace2 etc.) and digital sensors (LM75 etc.) to an MQTT server for remote control and monitoring. | ||||||||||
Unicorn Hat | 351 | 16 | 1 | a year ago | 19 | September 11, 2017 | 11 | mit | C | |
Python library for Unicorn pHAT and HAT. 32 or 64 blinding ws2812 pixels for your Raspberry Pi | ||||||||||
Rpi Rf | 297 | 7 | 3 years ago | 8 | December 03, 2018 | 24 | other | Python | ||
Sending and receiving 433MHz signals with cheap GPIO RF modules on a Raspberry Pi | ||||||||||
Homebridge Rpi | 286 | 10 days ago | 98 | November 27, 2022 | apache-2.0 | JavaScript | ||||
Homebridge plugin for Raspberry Pi. | ||||||||||
Awesome Latticefpgas | 210 | 5 months ago | ||||||||
:book: List of FPGA Lattice boards using open tools | ||||||||||
Mk_arcade_joystick_rpi | 189 | 2 months ago | 49 | gpl-2.0 | C | |||||
Raspberry PI kernel module for arcade joystick on GPIO and MCP23017 | ||||||||||
Rpi_gpio | 167 | 18 | 7 | 3 years ago | 11 | August 09, 2020 | 7 | mit | C | |
Ruby conversion of RPi.GPIO Python module | ||||||||||
Gumcp | 137 | a year ago | 4 | mit | PHP | |||||
Web Control Panel for Raspberry Pi | ||||||||||
Rpisoft Uart | 120 | 4 months ago | gpl-2.0 | C | ||||||
A Raspberry Pi / BCM2835 Software-based UART Linux device driver |
Rpi-hw (short for "Raspberry Pi Hardware") is a free C++ library designed to manage the Raspberry Pi's GPIO connector and its other buses. It allows you to connect several devices to the board (including displays, keypads, stepper motors, and sensors) as you would with Arduino's libraries.
.
Accessing to the GPIO connector:
// Get the GPIO controller
gpio &io = gpio::get();
// Set the mode of GPIO #11
io.setup( 25, OUTPUT );
// Write on GPIO #11
io.write( 25, HIGH );
Reading from 16-keys keypad:
// Define the keymap
std::vector< uint8_t > keymap = {
'1', '2', '3', 'A',
'4', '5', '6', 'B',
'7', '8', '9', 'C',
'*', '0', '#', 'D'
};
// Matrix keypad controller
keypad::matrix dev( { 14, 15, 18, 23 }, { 24, 25, 8, 7 }, keymap );
// Main loop
for ( ;; ) {
// Check the button state
if ( dev.keyPressed('2') || dev.keyPressed('3') )
std::cout << "You have pressed keys '2' or '3'!\n";
// Wait some time
time::msleep( 100 );
}
Writing texts on a Hitachi HD44780-based LCD:
// Display controller
display::hd44780 dev( 14, 18, 4, 17, 21, 22 );
// Initialize the 16x2 display
dev.init( 16, 2 );
// Move the cursor position
dev.move( 2, 0 );
// Write a string at cursor position
dev.write( "Hello World!" );
Detailed documentation of Rpi-hw's features and usage can be found on the official wiki.
Also you can find some articles about the library on http://hackyourmind.org/.
The library is released under terms of the GNU LGPL v3.
Rpi-hw is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation version 3 of the License.
Rpi-hw is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
See COPYING file for more details.
Have a bug? Please create an issue on GitHub at https://github.com/Wicker25/Rpi-hw/issues.