Overall Status Update for 03/28
We apologize for the lateness … but a lot was accomplished. We had originally planned to use an RPI 4, but these past two weeks gave us a lot issues with making it all work in a feasible amount of time, so we switched to using an Arduino two days ago. Kayla finished a substantial amount of the firmware for the bearbot (connecting the buttons, menu navigation, setting up various displays on the OLED, connecting the touch sensor and light sensor). Taylor implemented new hardware components such as the DF Mini Player and LED strip, as well as 3D printing the entire body out of clear plastic.
We also got the sound working on both the webapp and the physical robot (disjointly though). Taylor found that the audio files have to be hardcoded into a micro-sd chip that the audio hardware component takes in to play the sounds. But on the webapp, we can make it such that the user can customize the options to their own files (if time permits).
Web App – Sounds:
https://drive.google.com/file/d/1rIvQWLmf-6h9_M7VHkTipe82wJZLvGFQ/view?usp=sharing
Kayla’s Update
This past week, I really tried to make it work with the Raspberry Pi (in terms of setting it up with SSH, WiFi, running my python scripts), but it was just giving me a lot of issues. And then when I could run my scripts, nothing was displaying at all on the OLED. So I switched to using an Arduino on Friday night and was able to write a lot of the code for it.
In a file called bearbot_main.ino, I implemented:
- The core functionality for the OLED display showing different eye animations (default, sleepy, and annoyed eyes)
Default Eyes:
Sleepy Eyes (moving animation):
https://drive.google.com/file/d/1yzrWnpKdaIxOxYurgMPtZ5k5ALGkajMr/view?usp=sharing
Annoyed Eyes:
(this wasn’t originally in the plan, but I accidently made this when I was configuring the code for the sleepy eyes, and we thought it was a bit funny)
- A (nearly) complete menu system that allows the user to navigate between options like Timer, Aroma, Light, Volume, and Settings
https://drive.google.com/file/d/1GlbGQCahZQw6x5p4ZuEtskixrMZbn3tJ/view?usp=sharing
- Button handling for all four buttons (big, middle, left, and right)
- Two operational modes – Study and Fidget – that change the bearbot’s behavior <– triggered by pressing the big button
- Toggle functionality for the Light and Aroma features:
https://drive.google.com/file/d/19GEEQFPjHW6okkG3prW7vE0puPjNi-6G/view?usp=drive_link
- Photoresistor integration to detect ambient light levels and change the eyes accordingly (Though I am still debugging since it is hard to determine what the threshold for “low light” should be in any environment it’s placed in).
Despite facing multiple challenges with display initialization, button wiring, and memory constraints, I was able to get a stable version working. I’ve also properly structured the code with separate functions for different behaviors, making it easier to extend with more features in the coming days.
Also, link to all code I have written so far this semester:
https://drive.google.com/drive/folders/1YMBtVDyDXiFJBQUqS6z7jvntlGbxzi0N?usp=sharing
Next Steps:
I plan to finish up the menu navigation system to make it functional for the timer. The aromatherapy (aka turning on the diffuser), should work once it is hooked up. I also have to connect the timer to the webapp (if time permits)
Taylor’s Update
A lot of progress was made on the hardware front:
- OLED fits the frame of the face
- Speakers are mounted inside of the bearbot’s head
- Entire body has been printed out of clear material
- New parts were sourced : DF Mini Player and new LED strip
- Switched from Raspberry Pi to Arduino
I was able to pass off the hardware to Kayla for the firmware aspect
Final hardware tasks are better wire management, prototyping a better encasement for humidifier, re-adding voltage regulator for battery power, and allotting more space for motors.