This project is specifically designed for use with the ftSwarm, if you don't own some of them yet, you can order them here.
The goal of the ftSwarm project is to build small networked controllers for DIY and toy applications. Since they are networked with each other, they can act like a swarm.
For example, they can act as several independent robots to solve a task together. In larger models, the controllers can be installed at different positions close to actuators and sensors - together they control the complete model.
Originally, the project was designed to use with fischertechnik. Since the mounting grooves are compatible with Makerbeam profiles, ftSwarms could be used in many DIY projects.
For controlling the ftSwarm, you have two options: Embed your code into the ftSwarm firmware or use the ftSwarm as a dumb device and control it from a central computer. This repository is an implementation of the second option.
There's already a Python implementation of the ftSwarm protocol, but I wanted to have a Rust implementation, so here it is.
The project is in an early stage of development. The following features are already implemented:
- Connect to the ftSwarm
- Send commands to the ftSwarm
- Receive data from the ftSwarm
- Recover on errors
- Emulate the ftSwarm for testing purposes
The following features are not yet implemented:
- Implement joystick support
- Implement stepper motor support
- Implement I2C Subscriptions
If you're here, you're probably already familiar with Rust. If not, you can find a good introduction to Rust
here. To use ftswarm-rs, you can add it as a dependency to your Cargo.toml
:
[dependencies]
ftswarm = "0.2.5"
To use it in your code, look at the examples in the crates/ftswarm/examples directory.
If you want to test without an actual ftSwarm, you can use the ftswarm-emulator
crate. It provides a simple emulator
that can be used to test your code without having a real ftSwarm. To use it, add it as a dependency to your
Cargo.toml
:
[dependencies]
ftswarm_emulator = "0.2.5"
Contributions are welcome! If you are interested in the project, you can help by testing the software, writing documentation, or by contributing code. If you are interested in contributing, feel free to open an issue or a pull request. If you plan to add a new feature, it is a good idea to open an issue first to check back with me first, to avoid that you are working on something that is already in development.
ftswarm-rs is licensed under the MIT license. You can find the license text in the file LICENSE
in the root of the
repository.
Contact: [email protected]