πŸ”¬
EIM Academy
  • πŸ‘Welcome to EIM Learning Center
  • Electronics Engineering
    • Electronics Enegineering
    • πŸ‘01-Basic Electricity
      • Before Your First Circuit
      • Measure electricity
      • Electromagnetic Induction
    • πŸ‘02-Electrical Circuits
      • Ohm's Law
      • Series and Parallel Circuits
      • Voltage and Current Divider
      • Watt’s Law
      • Kirchhoff's laws
    • πŸ‘03-Analog Circuits and Semiconductors
    • πŸ‘04-Digital Circuits and FPGA
      • Chapter 3 Code
      • Chapter 4 Code
      • Chapter 5 Code
      • Chapter 6 Code
      • Design for Simulations
    • ✍️05-Engineering Signals and Analog Filters
  • Skill Development
    • πŸ‘01-Breadboarding Skills
      • Tools & Accessories
      • Breadboard Projects
    • πŸ‘‰02-Electronics Soldering
      • Practice Projects
    • ✍️03-Perfboard Prototyping
  • Project-based Learning
    • πŸ‘Green Electrical Energy
    • πŸ‘Smart Traffic Light
      • Board Design
      • STEPico & Micropython
      • STEPFPGA & Verilog
      • Demos
    • ✍️Electronic Pinao with FPGA
    • ✍️Semiconductor Cooler
      • What You'll Learn
      • Technical Docs
      • Project Demo
    • πŸ‘Smart Greenhouse
      • Irrigation System
      • Lighting System
      • Temperature Control System
      • Humidity Control System
    • πŸ‘AI with Hardware
      • Finger Detection
      • LCD control by Hand Gesture
      • Robotic Hand
      • Facial Recognition Security System
      • Common Questions
      • Video Tutorial
  • ✍️Bio-medical Applications
    • Blood Oximeter
    • Electrocardiogram
    • Electromyography
  • Educational Development
    • πŸ‘‰Educational Development
    • Educators' Repository
    • Basic Electronics Lesson Plan
      • Electronics Components
      • Ohm's Law
      • Series & Parallel Circuit
      • Watt's Law
      • Kirchhoff's Law
Powered by GitBook
On this page
  • Project Overview
  • Hardware
  • Tutorial
  • The Learning Part
  • Hardware
  • Video Walkthrough

Was this helpful?

  1. Project-based Learning
  2. AI with Hardware

LCD control by Hand Gesture

PreviousFinger DetectionNextRobotic Hand

Last updated 1 month ago

Was this helpful?

Project Overview

In this project, we build on the finger detection system to create a practical screen control interface. By enhancing how hand landmark data is processed and utilized, we’ve evolved from basic finger counting to a robust system capable of sending precise commands to external displays. The original finger detection project focused on identifying the number of extended fingers using MediaPipe hand landmarks, providing a solid framework for accurate gesture recognition and real-time analysis. These advancements take that foundation further, enabling seamless and intuitive screen control.

Hardware

The following components will be prepared in the kit for this project:

  • A breadboard

  • A STEPico microcontroller

  • Multiple dupont wires

  • A ST7789 LCD display

  • A USB cable

Tutorial

The key advancement in this project lies in data processing and output formatting. Instead of simply counting extended fingers, we now track each finger's state individually and convert this information into binary signals. This modification enables our system to interface with external devices through serial communication, making it suitable for screen control applications.

The Learning Part

Output Processing

  • Individual finger state tracking

  • Binary signal conversion

  • Structured data formatting for serial communication

System Integration

  • Serial communication protocol implementation

  • Hardware interface configuration

Hardware

The display for this and following projects is ST7789. This display is a type of thin-film-transistor liquid-crystal display (TFT-LCD) controller driver developed by Sitronix.

To wire your STEPico to your ST7789, follow the steps to connect them on breadboard:

  1. Power Connections:

  • Connect the VCC pin of the display to the 3.3V power pin on STEPico.

  • Connect the GND pin of the display to any GND pin on the STEPico.

  1. SPI Interface:

  • Connect the SCL pin on the display to GP18.

  • Connect the SDA pin on the display to GP19.

  1. Control Pins:

  • Connect the RES pin on the display to GP16.

  • Connect the DC pin to GP21.

  • Connect the CS pin to GP17.

  1. Backlight:

  • Connect the BL pin to GP20.

System Dependencies and Library Integration

To implement hardware control and display management, various libraries are needed:

from machine import Pin, SPI
import framebuf
import st7789
from sys import stdin
import uselect

Here's a brief overview of the required libraries:

  • machine: Provides Pin and SPI for hardware control.

  • framebuf: Manages display buffers for rendering.

  • st7789: Offers display-specific commands.

  • sys (stdin) and uselect: Facilitate data reception.

Note: The ST7789 driver isn't built into MicroPython by default. Use compatible external libraries like Russ Hughes’ fork of the st7789py_mpy module for enhanced performance and flexibility. Access it here:

After you complete the project, it looks like following:

Video Walkthrough

πŸ‘
https://github.com/russhughes/st7789py_mpy/blob/master/lib/st7789py.py
Project data flow
A ST7789 display
Cover

The Artificial Intelligence Learning (AI) + Machine Learning Kit

Cover

Instruction and resources

Breadboard, STEPico, ST7789 display, jumper wires, and USB cable

Available Now
GitHub
Discord