Raspi GPIO Flutter Plugin
A Flutter plugin for controlling Raspberry Pi GPIO pins on Android Things OS. This plugin provides an easy-to-use interface for controlling LEDs, motors, and reading button inputs on a Raspberry Pi.
Features
- Control LEDs (turn on/off)
- Control motors with PWM speed control
- Read button input states
- Support for multiple GPIO pins
- Event-based button state monitoring
Getting Started
Prerequisites
- Flutter SDK
- Android Things OS on Raspberry Pi
- Android Studio or VS Code with Flutter extensions
Installation
Add the following to your pubspec.yaml
:
dependencies:
raspi_gpio: ^0.0.1
Usage
- Initialize the GPIO:
await RaspiGpio.initialize();
- Control an LED:
await RaspiGpio.setLedState(18, true); // Turn on LED on pin 18
- Control a motor:
await RaspiGpio.controlMotor(
in1Pin: 22,
in2Pin: 23,
enPin: 24,
speed: 50, // 0-100
direction: true, // true for forward, false for backward
);
- Listen to button presses:
RaspiGpio.listenToButton(17).listen((state) {
print('Button state: $state');
});
Example
See the example
directory for a complete example app demonstrating all features.
Pin Configuration
The example app uses the following pin configuration:
- LED: GPIO 18
- Motor IN1: GPIO 22
- Motor IN2: GPIO 23
- Motor EN (PWM): GPIO 24
- Button: GPIO 17
You can modify these pin numbers according to your hardware setup.
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
This project is licensed under the MIT License - see the LICENSE file for details.