Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cervm/raspi_dart_led_control
A minimal command-line application demonstrating GPIO control on a Raspberry Pi using Dart's FFI (Foreign Function Interface) to interact with libgpiod.
https://github.com/cervm/raspi_dart_led_control
dartlang ffi gpio raspberry-pi
Last synced: 20 days ago
JSON representation
A minimal command-line application demonstrating GPIO control on a Raspberry Pi using Dart's FFI (Foreign Function Interface) to interact with libgpiod.
- Host: GitHub
- URL: https://github.com/cervm/raspi_dart_led_control
- Owner: cervm
- License: mit
- Created: 2024-08-25T20:50:04.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2024-08-26T21:09:15.000Z (3 months ago)
- Last Synced: 2024-10-16T20:46:31.542Z (about 1 month ago)
- Topics: dartlang, ffi, gpio, raspberry-pi
- Language: Dart
- Homepage:
- Size: 9.77 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Raspberry Pi Dart LED Control
A minimal command-line application demonstrating GPIO control on a Raspberry Pi using Dart's FFI (Foreign Function Interface) to interact with `libgpiod` v2. This project provides an example of controlling an LED with a push button.
Tested on **Raspberry Pi 5** running **Raspberry Pi OS (64-bit)**.
## Demo
[![Video Demo](https://i3.ytimg.com/vi/NhQ8_xI-70U/maxresdefault.jpg)](https://youtu.be/NhQ8_xI-70U)
## Components
- LED
- 220Ω Resistor
- Push Button## Prerequisites
- Dart SDK installed on your Raspberry Pi.
- `libgpiod` v2 pre-installed on your Raspberry Pi (needed for GPIO access).## Limitations
- Only compatible with 64-bit OS.
- Chip name is hard-coded to `gpiochip4` in `gpio_manager.dart`.## Running the Application
1. **Connect the Components:**
- Connect the LED to a GPIO pin (set to 03 (BCM) in `main.dart`).
- Connect the push button to another GPIO pin (set to 21 (BCM) in `main.dart`).2. **Run the Application:**
```bash
dart run bin/main.dart
```## Usage
- The LED will blink continuously when the button is not pressed.
- When the button is pressed, the LED remains lit continuously.## Project Structure
- **`bin/`**: Contains the main entry point of the application.
- **`lib/`**: Contains the library code, including FFI bindings and GPIO management logic.## References
- [Dart FFI Documentation](https://dart.dev/guides/libraries/c-interop)
- [libgpiod Documentation](https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/about/)
- [Raspberry Pi GPIO Documentation](https://www.raspberrypi.com/documentation/computers/os.html#use-gpio-from-python)
- [Raspberry Pi Flutter Installer](https://github.com/Snapp-X/snapp_installer)
- [libgpiod Example](https://github.com/starnight/libgpiod-example)