All Projects → googlecreativelab → air-snare

googlecreativelab / air-snare

Licence: Apache-2.0 license
Play drums in the air.

Programming Languages

Svelte
593 projects
javascript
184084 projects - #8 most used programming language
SCSS
7915 projects
HTML
75241 projects
shell
77523 projects

Projects that are alternatives of or similar to air-snare

ersatz80
Z80+ARM=BUGS
Stars: ✭ 13 (-59.37%)
Mutual labels:  microcontroller
risc8
Mostly AVR compatible FPGA soft-core
Stars: ✭ 19 (-40.62%)
Mutual labels:  microcontroller
nrf52832-pac
Peripheral Access Crate for the nRF52832 microcontroller
Stars: ✭ 21 (-34.37%)
Mutual labels:  microcontroller
microflo-example-arduino
Quick start for MicroFlo on Arduino - clone and go!
Stars: ✭ 15 (-53.12%)
Mutual labels:  microcontroller
lwjson
Lightweight JSON parser for embedded systems
Stars: ✭ 66 (+106.25%)
Mutual labels:  microcontroller
uDevkit-SDK
Embedded systems SDK for Uniswarm boards and others (dsPIC33, dsPIC30, PIC24 and PIC32 compatible)
Stars: ✭ 14 (-56.25%)
Mutual labels:  microcontroller
pikascript
Ultralightweight Python engine that can run with 4KB of RAM and 32KB of Flash (such as STM32G030C8 and STM32F103C8), and is very easy to deploy and expand.
Stars: ✭ 855 (+2571.88%)
Mutual labels:  microcontroller
LameUI
A very lame UI library for embedded systems.
Stars: ✭ 35 (+9.38%)
Mutual labels:  microcontroller
nsec-badge
Software from the NorthSec badge
Stars: ✭ 34 (+6.25%)
Mutual labels:  microcontroller
circuitpython
CircuitPython - a Python implementation for teaching coding with microcontrollers
Stars: ✭ 3,097 (+9578.13%)
Mutual labels:  microcontroller
Embedded UKF Library
A compact Unscented Kalman Filter (UKF) library for Teensy4/Arduino system (or any real time embedded system in general)
Stars: ✭ 31 (-3.12%)
Mutual labels:  microcontroller
pumbaa
Python on Simba.
Stars: ✭ 61 (+90.63%)
Mutual labels:  microcontroller
xForth
Experimental Forth cross compiler for tiny devices
Stars: ✭ 53 (+65.63%)
Mutual labels:  microcontroller
ewok-kernel
A secure and high performances microkernel for building secure MCU-based IoTs
Stars: ✭ 69 (+115.63%)
Mutual labels:  microcontroller
AutomationShield
Arduino library and MATLAB/Simulink API for the AutomationShield Arduino expansion boards for control engineering education.
Stars: ✭ 22 (-31.25%)
Mutual labels:  microcontroller
ML-MCU
Code for IoT Journal paper title 'ML-MCU: A Framework to Train ML Classifiers on MCU-based IoT Edge Devices'
Stars: ✭ 28 (-12.5%)
Mutual labels:  microcontroller
DigiOS
Mini OS emulator for Digispark (an Attiny85 based microcontroller).
Stars: ✭ 46 (+43.75%)
Mutual labels:  microcontroller
smartsilo
Hardware-integrated system composed by a desktop app and a Node.js server able to control an Arduino and manipulate the temperature of grains within storage silos
Stars: ✭ 33 (+3.13%)
Mutual labels:  microcontroller
StratifyOS
A Powerful embedded RTOS for ARM Cortex M microcontrollers
Stars: ✭ 94 (+193.75%)
Mutual labels:  microcontroller
HIGH-TO-LOW
in this repository you will find codes in C and their equivalence in MIPS Assembly
Stars: ✭ 20 (-37.5%)
Mutual labels:  microcontroller

Air Snare

Lets you play the drums in the air.

Overview

Since 2009, coders have created thousands of experiments using Chrome, Android, AI, WebVR, AR and more. We showcase these projects and a variety of helpful tools and resources to inspire a diverse community of makers to explore, create, and share what’s possible with these technologies.

Air Snare is a part of the TensorFlow Lite for Microcontroller Experiments, a collection of open source, interactive projects designed to demonstrate some fun ways to combine Arduino and TensorFlow Lite for Microcontrollers.

These projects were built with the Arduino Sense 33 BLE, TensorFlow Lite for Microcontrollers, standard web technologies ( HTML, CSS & Javascript).


Experiment Description

Air Snare lets you play drums in the air.

Other experiments to explore:


Tools


Install and Run

Flashing: Using the Arduino Nano Sense 33 BLE

  1. Install the Arduino IDE

  2. Setup Arduino board:

  • Plug in the board

  • Install the board by navigating to Tools > Board > Boards Manager and search for Arduino Mbed OS Nano Boards. Full instructions (including drivers required for Windows) here.

  • FAQ for connection problems can be found here.

  • After the board is installed, select it under to Tools > Board > Arduino Mbed OS Nano Boards > Arduino Nano 33 BLE Arduino board

  • Select the port by navigating to Tools -> Port -> dev/cu... (Arduino Nano 33 BLE) Arduino Port

  1. Install Arduino libraries
  • Navigate to Tools > Manage Libraries
  • Search for and install:
  • Arduino_LSM9DS1
  • ArduinoBLE
  • Arduino_TensorFlowLite Manage libraries TensorFlow Lite Library
  1. Open the sketch and flash
  • Download the latest relase of tf4micro motion kit here

  • Open the arduino/tf4micro-motion-kit and double click on <tf4micro-motion-kit.ino> file

  • Click the Right arrow in the top left corner to build and upload the sketch.
    Arduino Port

  • Warning: This process may take a few minutes. Also, warnings may populate but the upload should still succeed in spite of them.

  • If the sketch is installed, the LED on the board should flash red and green.

  1. Go to the URL related to the experiment. The URL can be found below and play!

Using the TensorFlow Lite for Microcontrollers Challenge Kit by SparkFun

The board that comes with the TensorFlow Lite for Microcontrollers Challenge Kit by SparkFun comes preflashed with a sketch that will work with some of the experiments right out of the box. If you are using one of the “TensorFlow Lite for Microcontrollers” kits and you just want to jump right into playing with the experiments then you can simply connect your arduino to a power source (USB or Battery) and connect to one of the following experiment URLs:


FAQ & Common Errors

What exactly is being transferred when I “connect”?
When you’re connecting the board to your computer, a pre-trained TensorFlow Lite machine learning model gets transferred over BLE onto the device. The sketches that are uploaded to the Arduino include a common TensorFlow Lite for Microcontrollers model architecture. The different experiment websites change the behavior of the sketch by changing the model to one specifically made for the experience.

What if I’m having issues connecting via bluetooth?
If you are having issues connecting try the following:

  1. Make sure your browser (Chrome or Edge) supports Bluetooth and it is enabled.
  2. Make sure your device (laptop, phone, etc) supports Bluetooth and that it is working and enabled.
  3. Refresh the web page, unplug the Arduino power cable and then plug it back in to reset, then try connecting again.

NOTE: If you’re using a managed device, like a computer from school or work, your device policy may prevent BLE pairing.

My board isn’t showing up on my computer, even though it’s plugged in. What should I do?
Try unplugging the Arduino power cable and then plug it back in to reset. Make sure you see the RGB LED blink red, green, blue in a sequential order.

The model isn’t getting my movements right. What do I do?
The way you move may be different from the data we used to pre-train the model. Different people move differently. That’s why we created Air Snare, which lets you train a custom model based on the way you move.

Do you have plans to support other boards?
We made these projects to work specifically with the Arduino Nano, and we currently don’t have plans to expand support. However, all of the code is open sourced, so you can remix or modify as needed.

Where should I go from here if I want to make my own model or project?
You can create your own model in several different ways. Check out these links:

"What sensors do the experiments use?"
The IMU is a LSM9DS1. It is a 3-axis accelerometer, 3-axis gyroscope and 3-axis magnetometer. This chip, made by ST Microelectronics, is a standard component supported by our library ArduinoLSM9DS1. Read more here: https://www.arduino.cc/en/Guide/NANO33BLESense

How do you shrink a TensorFlow model to fit on a microcontroller?
Post-training quantization is a conversion technique that can reduce model size while also improving CPU and hardware accelerator latency, with little degradation in model accuracy. You can quantize an already-trained float TensorFlow model when you convert it to TensorFlow Lite format using the TensorFlow Lite Converter. Read more here: https://www.tensorflow.org/lite/performance/post_training_quantization


Note

This is not an official Google product, but a collection of experiments that were developed at the Google Creative Lab. This is not a library or code repository that intends to evolve. Instead, it is a snapshot alluding to what’s possible at this moment in time.

We encourage open sourcing projects as a way of learning from each other. Please respect our and other creators’ rights, including copyright and trademark rights when present, when sharing these works and creating derivative work. If you want more info on Google's policy, you can find that here.


Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].