Seeed-Studio / wiki-documents

https://wiki.seeedstudio.com/Getting_Started Seeed Studio Wiki source code
https://wiki.seeedstudio.com/Getting_Started
GNU General Public License v3.0
119 stars 138 forks source link

[Real Life Improvement] Develop a three-dimensional Home Assistant display #696

Closed MatthewJeffson closed 8 months ago

MatthewJeffson commented 1 year ago

This assignment has been successfully achieved 🎉

Thanks Tim and the wiki page is: https://wiki.seeedstudio.com/xiao-esp32c3-prism-display/

Overview

Timo614 commented 1 year ago

Hey Matthew,

So what I was thinking here was:

For the device itself I was thinking a 3D printed enclosure that holds the prism and the screen at a slight tilt giving a nice viewing angle similar. Beneath that the gesture sensor will have its camera visible allowing for gesture based controls.

Control capabilities: https://wiki.seeedstudio.com/grove_gesture_paj7660/#gesture-types

Suggested initial controls:

So for an instance if one screen had an arc visible to control a smart home light one could swipe to that screen, pinch to select enabling the arc control, rotate your finger to move the selector, pinch to set the final value.

Initial screens:

Animated browser:

The goal of this page is primarily to allow users the ability to take advantage of the device screen for the purposes of displaying neat animations while still using this firmware.

Cryptocurrency:

Home:

  WEATHER
|         |
 Clock T H

Was thinking in this way the animated weather is given the main focus here.

Configuration:

Subsequent potential followup enhancements:

I'll keep brainstorming. I think these features would make for an initial really cool prism display for a home assistant.

MatthewJeffson commented 1 year ago

Hi @Timo614 Tim! That just amazing! Detailed, vivid, thoughtful, skilled ideas you are sharing here. The best and the specific contents I have ever seen. Let us keep brainstormXD Best Regards, Matthew

Timo614 commented 11 months ago

Hey, just wanted to leave an update. I've put together some 3D models in fusion to represent the various elements and put together a design I'm going to print out and test.

I have a seeed grove shield laying around and thought it may work well here so trying this approach. Going to solder some additional female headers to it and then make the connections to the LCD screen with male to female jumper wires. Will attach the gesture sensor using a grove hy 2.0 cable. The LCD screen is screwed into the top piece.

Need to confirm how well it'll print (I'll need to use some supports). Just my first attempt at it so may need to alter it further if I made any mistakes as well with the measurements.

PrismBuddy v6-2 PrismBuddy v6 PrismBuddy v6-4

Underside of top with screwholes for screen: PrismBuddy v6-3

MatthewJeffson commented 11 months ago

Wow! @Timo614 Tim! This looks very nice! I might know someone who might be able to come up with some thoughts Best Regards, Matthew

Timo614 commented 11 months ago

Sounds great,

I'm in the process of printing things out and adjusting sizes (some of my screw holes were a bit off from my measurements so needing to adjust). Should be able to get started on the firmware soon and will leave some updates in the thread.

Will update the thread once I have it all together for the 3D print, hoping to start on the firmware shortly as well (figured the case was the best call to ensure the alignment with the screen),

Tim

On Tue, Nov 14, 2023 at 2:25 AM Matthew @.***> wrote:

Wow! @Timo614 https://github.com/Timo614 Tim! This looks very nice! I will help you with the process query. Best Regards, Matthew

— Reply to this email directly, view it on GitHub https://github.com/Seeed-Studio/wiki-documents/issues/696#issuecomment-1809668241, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAKCDCF62YPTPIMTSXRWYULYEMMHZAVCNFSM6AAAAAA6KVDIICVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQMBZGY3DQMRUGE . You are receiving this because you were mentioned.Message ID: @.***>

Timo614 commented 11 months ago

Sorry for the delay, I should have a lot more time available in a week or so to focus a bit more intensely here -- it's the Thanksgiving Holiday in the states so have been traveling a bit.

I've worked on a few iterations of the 3D printed component and am mostly set there (I had the sensor upside down which I've since corrected and adjusted a few of the sizes / fit to work better).

20231124_151014

MatthewJeffson commented 11 months ago

Hi @Timo614 Tim! It is really nice work! And no worry about the timeline, you can stick to your time schedule. Hope you had a great and relax trip? haha Best Regards, Matthew

Timo614 commented 10 months ago

Hi there Matthew,

Sorry again for the delay here but I've begun here: https://github.com/Timo614/xiao-prism-buddy

Initially it is just the platform.io setup with associated libraries and I have the starfield demo running on the screen with it mirrored such that it displays properly when it's connected with the prism. I'll be adding the application itself and associated features over the next few days so will update here as I make more progress.

MatthewJeffson commented 10 months ago

Hello Tim! Nice thing you have done here! It is been quite a time that I haven't hear from you and got a little worry haha Thank you for the progress updated! Best Regards, Matthew

Timo614 commented 10 months ago

Sounds good. Sorry about that. Trying to get lvgl working with the esp32c3 but running into a few issues with the drivers and version compatibilities but hoping to resolve those soon and iterate from there.

On Wed, Dec 13, 2023, 5:03 AM Matthew @.***> wrote:

Hello Tim! Nice thing you have done here! It is been quite a time that I haven't hear from you and got a little worry haha Thank you for the progress updated! Best Regards, Matthew

— Reply to this email directly, view it on GitHub https://github.com/Seeed-Studio/wiki-documents/issues/696#issuecomment-1853612255, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAKCDCDZFQPZZ5K2IKWGMUDYJF4NZAVCNFSM6AAAAAA6KVDIICVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQNJTGYYTEMRVGU . You are receiving this because you were mentioned.Message ID: @.***>

Timo614 commented 10 months ago

I've pushed up a revision that adds esp idf support (was originally using arduino as I was struggling a bit with lvgl with esp idf given driver support across versions and some incompatibilities).

Adding support for the gesture sensor triggering view events next and will start adding the views once that's in place.

Timo614 commented 10 months ago

I've forked the main repo and added esp idf support (switching out the Arduino Wire, etc.), tested via the included example app: https://github.com/Cosmic-Bee/Grove_Gesture

I have all the main pieces in place now so it's just a matter of building out the logic.

MatthewJeffson commented 10 months ago

Wow! Nice, So glad it is you doing itXD Thank you very much. Really looking for the outcome! Best Regards, Matthew

Timo614 commented 10 months ago

I have this mostly set now from a UI perspective for the first iteration. I just am working through the last elements of the model (need to hook things up to a few web services, etc) and need to further refine the enclosure.

MatthewJeffson commented 10 months ago

Wow! Nice and thank you for the keep maintaining. So glad that we are getting there closer and closer XD

Timo614 commented 10 months ago

I have the app pretty much setup now for the initial setup. I need to rework the enclosure a bit and make sure it all fits snugly but should be otherwise ready to go. I have the wifi credentials setup as part of menuconfig for the sdkconfig variables there and once it loads it fetches the user's IP address, city, weather, bitcoin information, and updates the display accordingly. It listens for sensor input for changing screens and selecting inputs.

I'll put together a wiki for its install and usage once I have the enclosure set.

Timo614 commented 10 months ago

prism-xiao-v32

Making progress on the enclosure. I'm printing out this version above currently with some adjustments from my earlier iterations (I had to adjust for some minor sizing issues and to give a little more leeway). I'm not an expert with 3D design so may take a few more iterations in case I made some of the tolerances too tight, etc.

Timo614 commented 9 months ago

Sorry again for the delay, been a pretty hectic period here with sick season and with the end of winter break for my kids. I should be able to wrap this up in the next few days (I haven't been able to touch it much lately).

MatthewJeffson commented 9 months ago

Hello @Timo614 ! No worry at all! Yes indeed it is easy getting sick time and hope you and your family are well. Best Regards, Matthew

Timo614 commented 9 months ago

I was able to get everything together here and screwed in with some m2 screws.

One thing I noticed was when the gesture sensor is in place it is unable to detect gestures, however. I think I need to give a lot more room around the sensor camera and IR LEDs so I'll need to print a new version with that but otherwise things seem to be working for me.

20240115_114244 20240115_114248 20240115_114253 20240115_114649 20240115_114700

MatthewJeffson commented 9 months ago

Wow NICE! Perfect!

Timo614 commented 9 months ago

Just tried with a wider window around the camera and IR lights but still running into some issues picking up the gestures with a wider cutout so going to keep at it and adjust it further (some of the gestures were working but not fluidly / the grab and rotate were ignored while in this enclosure). It works outside of the enclosure for those gestures so likely just a matter of getting the positioning right.

MatthewJeffson commented 9 months ago

Ah~ I see, maybe consider let the sensor be exposed?

Timo614 commented 9 months ago

I've gone ahead and switched it, https://www.youtube.com/watch?v=vdHHd5qkkdo

I need to make a few minor modifications to sizing to fit the sensor a bit better, need to flip the display, need to change the default brightness level, and I think I should switch the gestures as the rotation and grab ones sometimes work sporadically (the left and right work consistently). I did notice the 1, 2, 3, 4 fingers worked well from my testing so may use that to designate setting screens and will think of a good rotation replacement for that element.

Timo614 commented 9 months ago

https://youtu.be/wSJa8HP0BkM

I reworked the enclosure a bit to better fit the gesture scanner in front and noticed it seems to be handling the rotation and grab gestures a lot better. I think it may have been an issue with it not aligning correctly from not fitting properly. It still can be a bit finicky but appears to work here.

Do you want me to add a project page associated with this on the wiki? Can include a video for setup in addition to the above video with some information and the steps required to get it up and running.

MatthewJeffson commented 9 months ago

The presentation looks amazingly great! Wow! Nice work! That is beyond my expectation:o!

MatthewJeffson commented 9 months ago

And yes, @Timo614 would you mind adding this into the wiki? This is the template.