Samovar 7.00: the corrections for the 11 servo positions are set in the "Servo corrections (11 numbers)" («Поправки сервопривода (11 чисел)») field on the "Equipment" («Оборудование») tab of the configurator; it writes them to the servoDelta array in the file Samovar_ini.h.
Samovar can divide the whole run into 11 parts, according to the take-off program you have made.
Note.
If you do not need the division into parts, or you will change the containers yourself, this unit is not required. Samovar works without it.
To build it you need a servo of the kind used in Arduino projects.
(Rc Mini Micro 9g 1.6 kg servo SG90 180° For RC 250 450 for Arduino DIY )
Warning!
Samovar uses a servo with a 180° rotation angle; any other will not work correctly (servos can have a rotation angle of 90°, 180°, 360° or continuous rotation).
Choose the servo carefully before buying. If in doubt, it is better to pass and buy from another seller who clearly states the rotation angle.
Wire pinout: red — +5 V, brown — GND, yellow or orange — control signal. The signal input is connected to GPIO25 on ESP32 DevKit or to GPIO10 on ESP32-S3.
To check the servo rotation angle you can use a special sketch. Put the sketch in the same directory as the Samovar files (... Documents\Arduino\...) and install it on the ESP32 instead of Samovar. See the
User Manual for how to install a sketch.
After the sketch is installed on the ESP32, the servo should start moving from the initial position to the extreme one and back, in a loop. After checking the servo, you will need to upload the Samovar sketch to the ESP32 again.
A model of a collection table for 3D printing has been developed for the SG90 servo. The model files are in the 3D directory, which is included in every Samovar release archive.
These are the files Samovar_plate.stl and Samovar_horn.stl.
Print with a plastic resistant to acetone and alcohol, for example PLA.
The SG90 is one of the cheapest and most popular servos. Some users have had problems with its stable operation.
It showed up as the servo struggling to reach the required position or, at some point, the rocker arm starting to "tremble". Experience shows this is related to an unfortunate placement of the product feed tube, its excessive size, stiffness or, on the contrary, floppiness.
The SG90 can be replaced with:
This servo is more expensive than the previous one, but it is also more powerful (and so consumes more energy), can have either a plastic or a metal gearbox (it makes no difference for our purposes), and comes with more accessories.
Samovar uses a servo with a 180° rotation angle; any other will not work correctly.
Wire pinout: red — +5 V, brown, gray or black — GND, yellow or orange — control signal. The signal input is connected to GPIO25 on ESP32 DevKit or to GPIO10 on ESP32-S3.
A collection table model for 3D printing has also been developed for these servos. These are the files plate_996_servo.stl and horn_996_servo.stl. The model files are in the 3D directory, which is in the Samovar release archive. Print with a plastic resistant to acetone and alcohol.
Examples of collection table builds and modifications:
Position correction
Every servo has its own errors and is tuned individually to the table positions.
If the collection table is printed or made from a template, with equal distances between the funnels, the rotation angles will need to be corrected.
these are the lines:
//Correction for the servo rotation angle.
int8_t servoDelta[11] = {0, -2, -3, -4, -3 , -2, 0, 0, 0, 0, -2};
The values in the curly braces are the angle correction for each position. There are 11 in total. The receiving funnels are counted starting from position zero. The correction values are given in degrees. Each position is corrected individually. It does not depend on the correction of neighboring positions.
For the correction, make a test take-off program for the "Rectification" («Ректификация») mode
H;450;0.10;0;0.00;45
H;450;0.10;1;0.00;45
H;450;0.10;2;0.00;45
H;450;0.10;3;0.00;45
H;450;0.10;4;0.00;45
H;450;0.10;5;0.00;45
H;450;0.10;6;0.00;45
H;450;0.10;7;0.00;45
H;450;0.10;8;0.00;45
H;450;0.10;9;0.00;45
H;450;0.10;10;0.00;45
Copy this block of text and paste it into the take-off
program text field on the "Program" («Программа») tab of the Samovar web interface main page, and save.
You can leave the rocker arm off the servo, or install it in a way that lets you remove it easily. Connect the servo and turn on Samovar. At startup Samovar puts the servo in its start position. Install the rocker arm so that it points at funnel zero.
From Samovar give the "Turn heating on" («Включить нагрев») command (the heater must be disconnected) and then the "Start take-off" («Начать отбор») command. The arm stays at funnel zero.
The "Next program" («Следующая программа») command moves the arm to the next position - funnel No. 1. If the arm position coincides with the imaginary line passing through the center of the servo's axis of rotation and the center of the receiving funnel, good. That is zero. No correction is needed. Give the "Next program" command again, and the arm moves to the next position.
If the arm has not reached the required position or has overshot it, a correction is needed. Take funnel No. 3 as an example (remember that funnel numbering starts from zero). For this funnel the correction value in the original sketch is 4 (minus 4)
Suppose the arm has "overshot" and stopped on the red line. Measure the length of the arc (blue arrow) between zero and the actual position.
Say it is 10 mm.
Now you need to find the arc length for a rotation of 1 degree. Find an online
calculator . Enter the radius value (120 in this case) and set the angle = 1.
We find that for a rotation of 1 ° the arc length is 2 mm. Our arm is 10 mm away from the required position.
10/2=5 degrees.
The arm has overshot and must be brought back, so this will be a negative value. The sketch already has - 4 (minus 4)
-4+(-5)= -9
So the rotation angle correction for funnel No. 3, which is position No. 4, is minus 9°
This is true for a particular servo and table, with funnels placed on a circle of 120 mm radius.
In the same way, run through all the arm positions and correct the values in the curly braces of the line
int8_t servoDelta[11] = {0, -2, -3, -9, -3 , -2, 0, 0, 0, 0, -2};
After the correction, upload the sketch to Samovar again, set the test take-off program and check how the arm moves between positions.
Making a collection table yourself
A collection table with fixed funnel positions. A post
on the forum. The template for making it can be downloaded there too.
***
A collection table that needs almost no correction of the servo rotation angle values.
The point is that the centers for drilling the holes are marked according to the actual position of the rocker arm.
Funnels
-
Make on a 3D printer - the funnel file is in the 3D directory.
-
Use
vial caps or medical
syringes. Syringes smaller than 5 ml are not recommended - they may overflow; 10 or 20 ml is better.
If the receiving funnels overflow, the simplest fix is to place the receiving containers as low as possible and raise the table higher. The column of liquid in the tube from the funnel to the container adds extra speed to the flow.
Troubleshooting possible problems.
Assuming the servo is working
-
Samovar reboots while the servo is working - the 12-5 volt converter may not have enough power, or the servo motor draws too much. What you can do:
- As a temporary measure, increase the capacitance of capacitor C4. C3 too, if you like.
- Add a second 12-5 volt converter. Join the grounds and feed +5 to the servo (you can power all the 5 volt consumers from this converter)
-
The rocker arm "trembles" over the funnel, even without the tube attached -
poor horizontal stiffness of the rocker arm.
-
The rocker arm "swings" over the funnel with the liquid feed tube attached.
- The tube is too stiff. It constantly "pulls" the arm back. The servo keeps trying to return it to the position.
- The tube "dangles" above the table and pulls the arm first one way and then the other.
As an option, additionally fix the tube at the center of the axis of rotation of the servo gearbox.