willem-pennings / balancing-cube Goto Github PK
View Code? Open in Web Editor NEWA cube that balances itself in a corner or edge using reaction wheels
License: GNU General Public License v3.0
A cube that balances itself in a corner or edge using reaction wheels
License: GNU General Public License v3.0
The schematic for the battery board has pin 1 on the OUT connector floating, I believe this is an error and they should be tied together to pin 1 of the IN connector.
Also based on the switch position the power flows opposite of the indicated ON or OFF labels. I have switched the labels and added pin 1 on the OUT connector to the GND plane on my own board.
I keep getting Overcurrent Error randomly in a few seconds after the cube starts balancing and it causes the cube to fall. The error appears randomly in one of the 3 escon controllers. The error is both visible in the escon studio and with the status led (2 red blinks). I tried regulation tuning as well but it didn't help. Any ideas what might be the problem?
Hello!
First off I want to reiterate how amazing your work here has been to replicate. The design work of the CAD models and electronics are truly world class; the pieces first together beautifully and things are relatively easy to follow.
Some discoveries I've had while building this:
Unclear on Routing Error / Bodge Wire reference: in the website you have a picture showing a mistake made on the routing for the motor controllers and how you corrected it with a bodge wire bridge. It's unclear to me if I need to replicate this, or if you corrected the routing in the final PCB design. Could you help explicitly clarify either way so I know what I should do?
Well-lit / High Res Picture to help with placement: I've struggled to determine if all my placed components are in the correct orientation. I found and followed the schematic in most cases, but I would find it extremely useful to have a well-lit, close-up top-down picture of the board (before placing the dev board). There is one dark picture on the website where I could see my fuses were backward and fix it, and I think the TVS Diodes have the cathode / grey stripe to the right, but I can't quite see.
I noticed there is no description of the steps used to flash the dev board. While I'm capable of bumbling through basic Arduino setup and the trial and error process of installing Expressif plug-ins until I find the right things to target this board, and figuring out which connection to plug into and what port this resolves to in Arduino, having any sort of steps laid out as a template / what worked before would greatly assist me in getting it right sooner and more easily.
I ordered everything in the BOM, and I seem to be missing the battery cable from the power board to the motherboard. Could you provide the reference to that / add to the BOM?
I don't seem to see where I can understand which motor controller board connects to which motor. I'm studying the pictures to try and see, but it's not very clear.
Again this is a beautiful work of art! Thank you for building & sharing.
Hello!
I've set about trying to build this, and ordered all the parts listed in the Article and Readme / in repo.
I've ordered:
I'm currently missing:
A picture of the PCB without the controllers and ESP32 in place would be helpful, especially to see the IMU placement and make sure I have it correct.
Thank you for creating this project! It's enjoyable and inspiring to build.
I suggest to add tags:
robots
pid
pid-controller
Thanks for updating the files and clarifying a few points, this has helped me get closer to a working cube. I have a few questions about axis mapping and calibration.
In the ICM20948.cpp file, why is it necessary to swap the axis? This to me seems as if its driving the wrong motor (y-axis) when I am trying to balance on the Y-axis...shouldn't the z-axis motor be one the driving?
How are you assigning the motors to the axis? does M1=x-axis, M2=y-axis and M3=z-axis?
2.1. With the motherboard flat on the table, the motor directly above it should be the z-axis and the motor closest to the yellow power connector should be the x-axis correct?
Calibrating the gyro is pretty straight forward, the offsets are initially set to 0 while the program is running the active gyro readings shown in the serial monitor are used as the new offset values. Proper calibration of the gyro should result in values close to 0 when the cube is on the table.
Calibrating the accelerometer is where things start to not make sense. If I want to calibrate the Z-axis readings do I set b_acc_z = 0 and f_acc_z = 1 while having the motherboard flat on the table?
I then invert the motherboard and take another reading of the Z-axis.
With both readings I can now calculate the gain and the offset for the axis?
4.1. Or is the offset for all of the axis simply determined when the axis are placed in a 0g field while the gain is determined by the large +/-16xxx readings?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.