It's a box with a switch on it. When you switch it on, the box opens and switches it off. It's very useless. I created this useless box as a friend's Christmas gift.
This box is also able to detect an approaching user's finger and react to it. There is an extra independent hatch allowing you to show something (like a hand with the middle finger up for example).
Watch the video ⬇️
The code allows the creation of various funny and adaptive animations.
This project contains everything allowing you to create your overkill useless box at home. This project uses:
- Kicad for the hardware design
- Platformio as IDE
- Luos as embedded software architecture
- onshape for the mechanical design
Electronics have been based on Luos example electronic design. You can open and modify all of them using Kicad. This design uses the Luos_components library for more information to install and use it read Luos doc. This box is composed of 3 independent boards:
- a servo shield mounted on an l0 board
- a distance shield mounted on an l0 board
- a DC Power Jack board
The software architecture is based on Luos. It's a modular architecture allowing the creation of independent features and sharing them with the community. Here is the Luos view of the software architecture :
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃ ╭────────────────── Node 1 ────────────────── ┃
┃ │ Type Alias ID ┃
┃ ├> Gate gate 1 ┃
┃ ╰> Pipe Pipe 2 ┃
╔■┻━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
║ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
╚════■┫ ╭────────────────── Node 2 ────────────────── ┃
┃ │ Type Alias ID ┃
┃ ├> Angle hatch 3 ┃
┃ ├> Angle finger 4 ┃
┃ ├> Angle bonus_hatch 5 ┃
┃ ├> State button 6 ┃
┃ ╰> Unknown useless_service 7 ┃
╔■┻━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
║ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
╚════■┫ ╭────────────────── Node 3 ────────────────── ┃
┃ │ Type Alias ID ┃
┃ ├> State led 8 ┃
┃ ╰> Distance distance 9 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
- Node 1 is just an extra board with a piece of code allowing to display this architecture, test it, and control it.
- Node 2 is the servo board controlling the 3 servomotors and the button.
- Node 3 is the distance sensor board. We also use the L0 LED on this one.
The useless_service service is the main application managing input and output as well as the animations. This piece of code is completely portable and you can use it in your project with any board or even on a computer if you want to.
If you have any questions about this project, feel free to contact me on discord