Table of Contents

Preface

Chapter 1: Getting Started with TinyML

Technical requirements

Introducing TinyML

What is TinyML?

Why ML on microcontrollers?

Why run ML locally?

The opportunities and challenges for TinyML

Deployment environments for TinyML

tinyML Foundation

Summary of DL

Deep neural networks

Convolutional neural networks

Quantization

Learning the difference between power and energy

Voltage versus current

Power versus energy

Programming microcontrollers

Memory architecture

Peripherals

Presenting Arduino Nano 33 BLE Sense and Raspberry Pi Pico

Setting up Arduino Web Editor, TensorFlow, and Edge Impulse

Getting ready with Arduino Web Editor

Getting ready with TensorFlow

Getting ready with Edge Impulse

How to do it…

Running a sketch on Arduino Nano and Raspberry Pi Pico

Getting ready

How to do it…

Chapter 2: Prototyping with Microcontrollers

Technical requirements

Code debugging 101

Getting ready

How to do it...

There's more

Implementing an LED status indicator on the breadboard

Getting ready

How to do it...

Controlling an external LED with the GPIO

Getting ready

How to do it...

Turning an LED on and off with a push-button

Getting ready

How to do it...

Using interrupts to read the push-button state

Getting ready

How to do it...

Powering microcontrollers with batteries

Getting started

How to do it...

There's more

Chapter 3: Building a Weather Station with TensorFlow Lite for Microcontrollers

Technical requirements

Importing weather data from WorldWeatherOnline

Getting ready

How to do it…

Preparing the dataset

Getting ready

How to do it…

Training the ML model with TF

Getting ready

How to do it…

Evaluating the model's effectiveness

Getting ready

How to do it…

Quantizing the model with the TFLite converter

Getting ready

How to do it…

Using the built-in temperature and humidity sensor on Arduino Nano

Getting ready

How to do it…

Using the DHT22 sensor with the Raspberry Pi Pico

Getting ready

How to do it…

Preparing the input features for the model inference

Getting ready

How to do it…

On-device inference with TFLu

Getting ready

How to do it…

Chapter 4: Voice Controlling LEDs with Edge Impulse

Technical requirements

Acquiring audio data with a smartphone

Getting ready

How to do it…

Extracting MFCC features from audio samples

Getting ready

How to do it…

There's more…

Designing and training a NN model

Getting ready

How to do it…

Tuning model performance with EON Tuner

Getting ready

How to do it…

Live classifications with a smartphone

Getting ready

How to do it…

Live classifications with the Arduino Nano

Getting ready

How to do it…

Continuous inferencing on the Arduino Nano

Getting ready

How to do it…

Building the circuit with the Raspberry Pi Pico to voice control LEDs

Getting ready

How to do it…

Audio sampling with ADC and timer interrupts on the Raspberry Pi Pico

Getting ready

How to do it…

There's more…

Chapter 5: Indoor Scene Classification with TensorFlow Lite for Microcontrollers and the Arduino Nano

Technical requirements

Taking pictures with the OV7670 camera module

Getting ready

How to do it...

Grabbing camera frames from the serial port with Python

Getting ready

How to do it...

Converting QQVGA images from YCbCr422 to RGB888

Getting ready

How to do it...

Building the dataset for indoor scene classification

Getting ready

How to do it...

Transfer learning with Keras

Getting ready

How to do it...

Preparing and testing the quantized TFLite model

Getting ready

How to do it...

Reducing RAM usage by fusing crop, resize, rescale, and quantize

Getting ready

How to do it...

Chapter 6: Building a Gesture-Based Interface for YouTube Playback

Technical requirements

Communicating with the MPU-6050 IMU through I2C

Getting ready

How to do it…

Acquiring accelerometer data

Getting ready

How to do it…

Building the dataset with the Edge Impulse data forwarder tool

Getting ready

How to do it…

Designing and training the ML model

Getting ready

How to do it…

Live classifications with the Edge Impulse data forwarder tool

Getting ready

How to do it…

Gesture recognition on Raspberry Pi Pico with Arm Mbed OS

Getting ready

How to do it…

Building a gesture-based interface with PyAutoGUI

Getting ready

How to do it…

Chapter 7: Running a Tiny CIFAR-10 Model on a Virtual Platform with the Zephyr OS

Technical requirements

Getting started with the Zephyr OS

Getting ready

How to do it…

Designing and training a tiny CIFAR-10 model

Getting ready

How to do it…

Evaluating the accuracy of the TFLite model

Getting ready

How to do it…

Converting a NumPy image to a C-byte array

Getting ready

How to do it…

Preparing the skeleton of the TFLu project

Getting ready

How to do it…

Building and running the TFLu application on QEMU

Getting ready

How to do it…

Chapter 8: Toward the Next TinyML Generation with microNPU

Technical requirements

Setting up Arm Corstone-300 FVP

Getting ready

How to do it…

Installing TVM with Arm Ethos-U support

Getting ready

How to do it…

Installing the Arm toolchain and Ethos-U driver stack

Getting ready

How to do it…

Generating C code with TVM

Getting ready

How to do it…

Generating C-byte arrays for input, output, and labels

Getting ready

How to do it…

Building and running the model on Ethos-U55

Getting ready

How to do it…

Other Books You May Enjoy

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
44.220.184.63