Buddy - the Companion Bot

by Random Creations in Circuits > Assistive Tech

461 Views, 1 Favorites, 0 Comments

Buddy - the Companion Bot

WhatsApp Image 2025-01-12 at 6.45.56 PM.jpeg
WhatsApp Image 2025-01-12 at 6.45.45 PM.jpeg
WhatsApp Image 2025-01-12 at 6.45.43 PM.jpeg

In today’s fast-paced world, managing time can be a significant challenge, especially for individuals with ADHD or other neurodivergent conditions. The constant struggle to stay on task, maintain focus, and track time can lead to frustration and burnout. To address this, I’ve developed Buddy the Companion Bot—a smart assistive companion designed to help those who often feel overwhelmed by time management. Inspired by the Pomodoro technique, Buddy helps break tasks into manageable intervals, with built-in music and timed breaks, creating a gentle structure that encourages focus without the pressure.

Running on the Unihiker Single Board Computer (SBC) and powered by Python, Buddy combines the open-source software with the portability and power of an Unihiker. Whether you need a calming playlist to help you focus, a reminder to take a break, or just a reliable timer to track your work, Buddy is here to guide you through the day. In this article, I’ll walk you through how this works, how it was developed.

Supplies

WhatsApp Image 2025-01-12 at 6.46.15 PM.jpeg
WhatsApp Image 2025-01-12 at 6.46.14 PM (1).jpeg
WhatsApp Image 2025-01-12 at 6.46.13 PM.jpeg
WhatsApp Image 2025-01-12 at 6.46.11 PM (1).jpeg
WhatsApp Image 2025-01-12 at 6.46.09 PM (1).jpeg
WhatsApp Image 2025-01-12 at 6.46.01 PM (1).jpeg
WhatsApp Image 2025-01-12 at 6.46.06 PM.jpeg

Things You'll be In need of:

  1. Unihiker
  2. PAM8403 Amplifier Board
  3. Tp4056 Module
  4. 3.7v 1400 mAH battery
  5. 3d Printed Enclosure
  6. Laptop with VScode

And you will be in need of Soldering Iron, File or sandpaper and wire stripper.

Installing Kivy Framework

Code and Enclosure design Files are available on Github

I developed the GUI in python and used the Kivy framework.

Kivy is an open source framework and is reliable solution for developing cross platform applications. And has a smooth performance.

There are two methods to install kivy on unihiker. The first one is PPA and the second is by using pip. Later one works smoothly without any hinderance. While the first one isn't a friendly option.

First of all we have to be logged into the Unihiker via SSH on VS code. You can follow unihiker wiki guide or my previous project DIY Smart Home using Unihiker.

Next in root shell, or command line terminal run the following command.

pip install kivy[base] kivy_examples --pre --extra-index-url https://kivy.org/downloads/simple/

and it'll take some time to completely install it. Make sure you stay connected to the internet all the time.

Mine is already installed that's why the log looks like this

Mine is already installed that's why the log looks like this

nce the installation is complete you can run the following command,

sudo apt-get update

And again, it'll take some time to update the list. Once it is finished you can check that wether kivy got properly installed or not by importing it.

python
import kivy

Importing Kivy

Importing Kivy

And if no error pops up, then you are good to go.

Required Library imports:

from kivy.app import App
from kivy.uix.screenmanager import ScreenManager, Screen
from kivy.uix.boxlayout import BoxLayout
from kivy.uix.label import Label
from kivy.uix.image import Image
from kivy.uix.button import Button
from kivy.uix.spinner import Spinner
from kivy.clock import Clock
from kivy.core.window import Window
from kivy.animation import Animation
from kivy.uix.filechooser import FileChooserListView
from kivy.core.audio import SoundLoader


Enclosure Design

Unihiker-Case-2025-01-12 190041.png
Unihiker-Case-2025-01-12 190159.png
WhatsApp Image 2025-01-12 at 6.46.22 PM (2).jpeg
WhatsApp Image 2025-01-12 at 6.46.20 PM.jpeg

So I designed the Enclosure in Shapr3D and got it printed by friend of mine.

There are three main parts,

Back Plate

Front Panel and Walls

Button Caps



GUI Design

WhatsApp Image 2025-01-12 at 6.46.18 PM (1).jpeg
WhatsApp Image 2025-01-12 at 6.45.45 PM.jpeg
WhatsApp Image 2025-01-12 at 6.45.43 PM.jpeg

So I have designed this GUI based on three screens.

First is main screen Which displays text Buddy animation in and out.

It has background image from pinterest.


Second screen, this is the main screen. It has the Timer and button to adjust the Time duration, break time, and Music selsction and Start Timer and Reset Timer. And a button to Go back to main screen.


Third screen, It is the screen where we can select the music and Play it. We can select the music available in folder.


Future Goal

Unihiker-Case-2025-01-12 185917.png

I have added the Slots and hole for wires on the opposite side of C-Type Inlet. This Slot will help it to mount it on the Chassis along with wheels. It'll be able to drive around and explore the enviroment using sensors.

I'll be using it as Emote buddy using Self Balancing Chassis. So that it'll be able to interact with the environment. And Listen to commands instead of relying on GUI control.

So that's my future goal for this project.

Demo

Buddy The Companion Bot