Built a theremin which uses ultrasonic sensors to determine pitch rather than electromagnetic fields.
Wrote driver code for interfacing with a speaker, ultrasonic sensor, joystick, capacitive touch sensor, and 3 x 3 LED display. Some of which are programmed with event-driven architectures.
This repository has applications and board initialization that connects to the build system provided by nrf52x-base.
-
Various tools
- build-essential (make)
- git
- python3
- pyserial (
sudo apt install python3-serial
)
-
ARM cross-compiler toolchain: gcc-arm-none-eabi toolchain
On Ubuntu:
sudo apt install gcc-arm-none-eabi
On MacOS:
brew tap ArmMbed/homebrew-formulae brew update brew install ARMmbed/homebrew-formulate/arm-none-eabi-gcc
-
JTAG programming tools: OpenOCD
On Ubuntu:
sudo apt install openocd
On MacOS:
brew install open-ocd
- Clone the repository
- Change directory into the repository
git submodule update --init --recursive
(this will take a couple minutes to complete)
To build an application, use make
inside of the application's directory.
make flash
uploads the application to the board using JTAG.
The Micro:bit v2 prints information through a serial port at 38400 baud. You can connect with any serial terminal, but miniterm comes with pyserial and works pretty well for this.
$ pyserial-miniterm /dev/ttyACM0 38400