8000 GitHub - migueltarga/kiddo: A fun, interactive storytelling device built for kids using an CYD (ESP32 with a touchscreen display) · GitHub
[go: up one dir, main page]

Skip to content
migueltargaPublic

About

A fun, interactive storytelling device built for kids using an CYD (ESP32 with a touchscreen display)

Resources

Stars

6 stars

Watchers

0 watching

Forks

Latest commit

 

History

19 Commits

Folders and files

Repository files navigation

Kiddo - Interactive Story Device

A fun, interactive storytelling device built for kids using an ESP32 with a touchscreen display. Create and explore stories with different paths and choices, all designed to spark imagination and creativity.

kiddo

Screenshots

Captured on the device with the devtools build (scripts/devtools.py shot).

Home Library At the pool In the kitchen
Home screen Story library Story page with Zoe and her friends at the pool Story page with Zoe and grandpa making pancakes
At night Backpack Settings
Night story page in the backyard with a squirrel Backpack with an item and its description Settings screen

Hardware Requirements

This project uses affordable, easily accessible hardware:

Core Components

  • ESP32-2432S028R - ILI9341 device with 2.8" touchscreen (under $20)
  • ESP32-3248S035C - ST7796 device with 3.5" capacitive touchscreen
  • Mini Speaker - 8ohm 1W (optional, for audio feedback)

3D Printed Case

Features

  • Interactive Stories: Choose-your-own-adventure style stories with branching paths
  • Multilingual Support: Stories available in multiple languages (English, Portuguese)
  • Touch Interface: Intuitive touch controls perfect for kids
  • Story Management: Download and sync stories from remote catalogs
  • Animated Scenes: Pages without a picture get a scene that fits the text (bedroom, kitchen, pool, school, forest, beach...), with the people, animals and things the page mentions; tap it and everyone jumps
  • Backpack: Stories can give items and ask the child to pick the right one to solve a puzzle
  • Audio Support: Optional speaker for sound effects and feedback
  • WiFi Connectivity: Download new stories and sync content

Inspiration

This project was inspired by Aura - a similar concept that sparked the idea for creating a personalized storytelling device.

Story Creation

Stories are created using AI tools to generate engaging, age-appropriate content with multiple branching paths. Each story is structured as JSON files with nodes and choices, making it easy to create complex narrative experiences.

Getting Started

Prerequisites

  • PlatformIO IDE or PlatformIO Core
  • ESP32-2432S028R or ESP32-3248S035C board
  • USB cable for programming

Installation

  1. Clone this repository
  2. Open the project in PlatformIO
  3. Build and upload the matching PlatformIO environment to your ESP32 device:
    • 2.8-inch resistive board: pio run -e esp32dev -t upload
    • 3.5-inch capacitive board: pio run -e esp32-3248s035c -t upload Add --upload-port /dev/cu.usbserial-... if PlatformIO cannot select the port.
  4. Configure WiFi settings through the device interface

Configuration

  • Set up WiFi credentials on first boot
  • Choose your preferred language
  • Download initial story content

Technical Stack

Libraries Used

  • LVGL - Modern UI library for embedded systems
  • ArduinoJson - JSON parsing and serialization
  • TFT_eSPI - Display driver for ESP32
  • XPT2046_Touchscreen - Touch input handling
  • HttpClient - Network communication for story downloads

Architecture

  • Modular Design: Separate modules for UI, story engine, network, and storage
  • Story Engine: JSON-based story format with node and choice structure
  • Remote Catalog: Download and sync stories from online sources
  • Local Storage: SPIFFS-based file system for story caching
  • Multilingual: Centralized language filtering and management

Thanks & Credits

Inspiration

  • Aura Project - Original inspiration for using the Cheap Yellow Board

Technical Resources

Hardware Design

Libraries

Personal Note

This project was created as a labor of love for my daughter Zoe, with the goal of building an engaging, educational device that encourages reading and imagination. The use of AI tools in development allowed a non-C++ developer to create something meaningful and functional.

License

This project is open source. Check the LICENSE file for details.

Contributing

Contributions are welcome! Whether it's bug fixes, new features, or additional stories, feel free to open issues or submit pull requests.


Built with ❤️ for Zoe and all the young storytellers out there.

About

A fun, interactive storytelling device built for kids using an CYD (ESP32 with a touchscreen display)

Resources

Stars

6 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages

0