Virtual Pet Game Development on ESP32
Budget: $30 – $250 USD
I'm looking for a talented and experienced freelance developer to create a virtual pet game for an ESP32 microcontroller with an OLED display and sensor integration. The goal is to develop a fun and engaging interactive experience, with a focus on clean, maintainable code that allows for future expansion.
Ideal Skills and Experience
Required:
- Expert proficiency in Arduino programming and ESP32 development.
- Proven experience with OLED screen control and animation (specifically SSD1306).
- Experience with SD card interface and file handling in embedded systems.
- Understanding of class-based software design principles.
- Experience with menu creation and user interface development.
- Experience integrating sound effects.
Preferred:
- Experience working with the specific sensors (SW-18015P, VEML7700, DS3231) mentioned.
- Experience with power optimization techniques for battery-powered devices.
Key Features:
- Pet Interactions: The virtual pet should be able to interact with the user through actions like feeding, playing, and cleaning. These actions should visibly affect the pet's status and mood.
- OLED Animations: The OLED screen will display animated sprites representing the pet, its actions, and the environment. Smooth and visually appealing animations are crucial.
- Sound Effects: Basic sound effects will be integrated to enhance gameplay and provide feedback to the user.
- Class-Based Architecture: The code must be designed using a class-based architecture to facilitate future feature additions, modifications, and code reuse. This includes clear separation of concerns.
- SD Card Support: Sprites and boot animation will be loaded from an SD card.
- Power Management: Deep sleep mode is essential for battery life. Waking the device via interrupt from the SW-18015P vibration sensor is required, with robust software debouncing to prevent false wakes.
- Menu System: Implement a user-friendly menu system for navigation and configuration.
Hardware (proto):
- Microcontroller: ESP32-WROOM-32
- Display: SSD1306 OLED Screen
- Storage: SD Card (for sprites and animations)
- Input: 3 Buttons (For menu navigation and actions)
Sensors:
- SW-18015P Vibration Sensor (Wake-up interrupt)
- DS3231 Real-Time Clock (RTC) (For timekeeping and scheduling event)
- Few others in next phase
Prototype Deliverables (First Phase)
The first prototype should demonstrate the core functionality and include the following features:
- SD Card Loading: Successful loading of monochrome sprites from the SD card.
- Boot Animation: Display of a boot animation loaded from the SD card on startup.
- Deep Sleep and Wake-up: Implementation of deep sleep mode with wake-up triggered by the SW-18015P vibration sensor. Includes software debouncing to prevent accidental wake-ups by disabling it when not needed.
- Button Handling: Reliable button press detection and execution of corresponding actions.
- Core Pet Stats: Implementation of core pet stats, including sleep, hunger, happiness (play), and cleanliness. Display these stats from a 'menu - icon' available from main pet screen.
- Main Pet Screen Actions: MAin pet screen 'menu - icon' to trigger actions like feed, play, clean, and sleep, which modify the core pet stats accordingly. (Phase 2 will include more interaction)
Menu System:
- Main Screen Menu: A menu system that presents icons along the edges of the main pet screen. Selecting an icon should shake it briefly and add a border line around the selected icon.
- Sub-Menus: Creation of sub-menus for configuration settings, such as:
- - Sound level adjustment (Not implemented)
- - Date/Time setting (using the DS3231)
- - A debug menu to display raw sensor values (VEML7700, SW-18015P state) for testing purposes.
Please provide examples of similar projects you've completed.
Ideal Skills and Experience
Required:
- Expert proficiency in Arduino programming and ESP32 development.
- Proven experience with OLED screen control and animation (specifically SSD1306).
- Experience with SD card interface and file handling in embedded systems.
- Understanding of class-based software design principles.
- Experience with menu creation and user interface development.
- Experience integrating sound effects.
Preferred:
- Experience working with the specific sensors (SW-18015P, VEML7700, DS3231) mentioned.
- Experience with power optimization techniques for battery-powered devices.
Key Features:
- Pet Interactions: The virtual pet should be able to interact with the user through actions like feeding, playing, and cleaning. These actions should visibly affect the pet's status and mood.
- OLED Animations: The OLED screen will display animated sprites representing the pet, its actions, and the environment. Smooth and visually appealing animations are crucial.
- Sound Effects: Basic sound effects will be integrated to enhance gameplay and provide feedback to the user.
- Class-Based Architecture: The code must be designed using a class-based architecture to facilitate future feature additions, modifications, and code reuse. This includes clear separation of concerns.
- SD Card Support: Sprites and boot animation will be loaded from an SD card.
- Power Management: Deep sleep mode is essential for battery life. Waking the device via interrupt from the SW-18015P vibration sensor is required, with robust software debouncing to prevent false wakes.
- Menu System: Implement a user-friendly menu system for navigation and configuration.
Hardware (proto):
- Microcontroller: ESP32-WROOM-32
- Display: SSD1306 OLED Screen
- Storage: SD Card (for sprites and animations)
- Input: 3 Buttons (For menu navigation and actions)
Sensors:
- SW-18015P Vibration Sensor (Wake-up interrupt)
- DS3231 Real-Time Clock (RTC) (For timekeeping and scheduling event)
- Few others in next phase
Prototype Deliverables (First Phase)
The first prototype should demonstrate the core functionality and include the following features:
- SD Card Loading: Successful loading of monochrome sprites from the SD card.
- Boot Animation: Display of a boot animation loaded from the SD card on startup.
- Deep Sleep and Wake-up: Implementation of deep sleep mode with wake-up triggered by the SW-18015P vibration sensor. Includes software debouncing to prevent accidental wake-ups by disabling it when not needed.
- Button Handling: Reliable button press detection and execution of corresponding actions.
- Core Pet Stats: Implementation of core pet stats, including sleep, hunger, happiness (play), and cleanliness. Display these stats from a 'menu - icon' available from main pet screen.
- Main Pet Screen Actions: MAin pet screen 'menu - icon' to trigger actions like feed, play, clean, and sleep, which modify the core pet stats accordingly. (Phase 2 will include more interaction)
Menu System:
- Main Screen Menu: A menu system that presents icons along the edges of the main pet screen. Selecting an icon should shake it briefly and add a border line around the selected icon.
- Sub-Menus: Creation of sub-menus for configuration settings, such as:
- - Sound level adjustment (Not implemented)
- - Date/Time setting (using the DS3231)
- - A debug menu to display raw sensor values (VEML7700, SW-18015P state) for testing purposes.
Please provide examples of similar projects you've completed.