Git Product home page Git Product logo

m5core2-interactive-toy's Introduction

M5Stack Core2 Interactive Toy

An interactive toy that changes the pitch of the user's voice and streams it over Bluetooth A2DP

img

Project description

When I was little I had this parrot toy which repeated my words with a funny voice. I have great memories playing with this toy and I have decied to create a similar one for my kids.

The project uses M5Stack Core2, LVGL 9 for UI, arduino-audio-tools for sound processing and ESP32 A2DP for streaming.

How to connect to a Bluetooth speaker?

Currently the name of the speaker is hardcoded in the audio.h file - #define SPEAKER_NAME "ACTON II" Once the device boots, press the pair button on the Bluetooth speaker and the

Generating character images

The character images were created using Photoshop and exported as transparent PNG. After that using the LVGL 9 image convertor tool, the PNGs were converted to a C Array with RGB565A8 color format to maintain their rounded corners.

How voice change works?

The voice is changed by manipulating the pitch of the sound input using the PitchShift class of arduino-audio-tools. The pitch is adjustable using the pitchShifter.setValue() method. Pitch above 1.0 generates a Mickey Mouse-like voice and pitch below 1.0 generates a Hulk-like vocie.

Further improvements

  • The allocation of resources needs a bit more fine tuning because there is a sligthly audiable buffer underflow in the output sound.
  • Currently, name of the Blueooth receiver is hardcoded. It would be a good idea to implement a GUI for searching and selecting the desired Blueooth receiver.
  • Add a battery indicator.

Credits

m5core2-interactive-toy's People

Contributors

miroslavpetrov avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.