Punda provides a high level, easy to use interface for interacting with the BBC micro:bit, a small, handheld micro-controller designed for teaching and learning computer science, using the Rust Programming Language.
The intention of punda
is to complement the other development environments already available for the micro:bit: the Javascript Blocks editor and MicroPython.
Specifically, punda
brings Rust's static typing, ergonomics, and functional constructs to the table.
In addition to being useful for teaching programming to those unfamiliar, punda
is also a good way to learn Rust: two equivalent micro:bit programs can be compared across Javascript, Blocks, Python, and Rust to highlight the similarities and differences between each.
For examples of using the punda
crate, check the examples/
directory in this repository.
With the correct development environment set up, any example can be run on the micro:bit with cargo run --example [name]
.
Note that this crate's documentation, API, and entire design is still up for determination. As a hobby project, I don't have as much time to work on it as I wish I could.
To develop applications using this library, the following tools must be installed:
- rustup, Rust's toolchain manager
- gdb-arm-none-eabi, a build of gdb compatible with the micro:bit
- OpenOCD, a program to communicate with and flash the micro:bit
When the above tools are installed, perform the following setup to start a new binary crate (application) using easy_microbit
.
First, install the nightly Rust toolchain.
> rustup install nightly-2018-09-27
Next, install the thumbv6m-none-eabi
Rust target.
> rustup target add thumbv6m-none-eabi
Create a new Rust crate.
> cargo new --bin microbit_example