When I travel with my family, we stay in responsibility to our animal companions opposite and put my cat "Max" (chapter F) together with his water- and food bowl in my carport and leave him the feeding arrangement of the filled up to the top of the bowl. This works well over a weekend, but what longer holiday periods are planned? Try again the neighbors or friends?
Inspired by the project of Malte Müller, I built my own (cat) food dispenser (and got a surprise).
Today we look at a cheap (and even free, compare at www.wish.com) stepper motor, which is controlled via its driver board and connect the control via the Blynk service.
But first a little understanding of the structure is necessary:
- remove the manual impeller from the dispenser (no longer needed)
- to the emerging 8mm wave is a
- shaft coupling with 5mm outlet plugged in at the end
- the 5mm drive of the stepper motor is plugged on.
- The whole is attached to the back (or to a plywood plate at the desired height) by means of 2 screws and a nut (do not tighten too tightly, as the shaft coupling must still move freely with the shaft).
Already during the construction, I would have had to worry about the torque: the stepper motor used was not even as strong as the white wings to drive. So I shortened the wings with a general-purpose pair of scissors so that they had no resistance to the inside.
With the echo, we determine the height of the feed filled into the funnel and let it inform about the fill level via Blynk. If you want, you can use an "HT angle pipe" (preferably 45 degrees) to drop the falling food directly into the bowl from your sanitary needs.
- D6 = IN4, D5 = IN3, D4 = IN2, D3 = IN1 (Photon <> Driver Board)
- A3 = TRIG, A2 = ECHO (Photon <> HC-SR04)
In this semi-automatic solution, the user has to press a button via Blynk services, which activates the motor for the given seconds and moves the impeller forward in a clockwise direction, so that feed falls downwards.
You need 3 Widgets: a button mapped on V0 as "Push" (200 Energy Points), a value display mapped on V1 which shows the tank fill up (in my case in centimeter) and a (optional) value display mapped on V2 which shows the status information (each 200 Energy Points).
The SurpriseDuring the final test, the used stepper motor proved to be unhelpful: this impeller could not be driven when filling with Max's cat food, nor with gummi bears or muesli. The weight could not be controlled by the torque. At this point, the more powerful alternatives are recommended. Basically, this knowledge has moved me to introduce you to my project so that you use the right components right from the start (like Nema 17).
The technical explanation...can be found in the datasheet (specs as remark in the code): the "little one" offers a torque of > 34.3mN.m - but what does that mean compared to the "big brother", which has an OZ*in the datasheet of 76? How can these values be linked and converted?
If we use a converter for this we come to these values:
34,3 Millinewton meter [mNm] = 4,858 356 940 5 Ounce-inches [ozin]
76 Ounce-inches [ozin] = 536,56 Millinewton meter [mNm]
> The "big brother" is more than 15x stronger!
if you have a Nema 17 and a driver board too much, so you can put me one in the post ;-)
PicturesAt the end a word for the animals inserted: I think about whether I get a stronger engine and bring the project into reality or listen to the words of my wife: "the cat signals so much gratitude for a personal feeding" (along with the pats) so that we will continue to rely on the helpfulness of our loving friends. It's probably not all good, which could be solved technically.
Update 28.12.2017With the installation of a Nema 17 stepper motor, I can prove that it actually offers a much higher torque and that the project can be implemented.
In my case, I'll give you the following notes on the way:
- uses an allen wrench (2mm) to fix the (mini) screws from the shaft coupling
- the power supply supplied with me 12V with a maximum of 300mA - the torque is thus still increased (the Nema17 can be up to 1.5A; compare your datasheet of the engine used)
- the food (Purina One is delivered in triangular form and has stuck between the propellers
- I had shortened the 6 white propeller blades in the earlier test setup a little with the scissors, so that the weaker engine ever turned: you should first try it out without cutting the rotor blades!
Bill of materials:
1x StepperDriver A4988 - 2,40 Euro
4x Screws - M4 to fix holder 1
2x Screws - M3 to fix holder 2 on holder 1
Test-Code (used with an Arduino and a breadboard) and wiring:
simple A4988 connection:
- jumper reset and sleep together
- connect VDD to Arduino 3.3v or 5v
- connect GND to Arduino GND (GND near VDD)
- connect 1A and 1B to stepper coil 1
- connect 2A and 2B to stepper coil 2
- connect VMOT to power source (12v)
- connect GRD to power source (12v)
int x;
char user_input;
void setup() {
Serial.begin(9600); //Open Serial connection for debugging
Serial.println("Begin motor control");
Serial.println();
//Print function list for user selection
Serial.println("Enter number for control option:");
Serial.println("1: Clockwise");
Serial.println("2: Anti-Clockwise");
Serial.println();
pinMode(5, OUTPUT); // step
pinMode(4, OUTPUT); // dir
digitalWrite(4, LOW);
digitalWrite(5, LOW);
}
void loop() {
while(Serial.available()){
user_input = Serial.read(); //Read user input and trigger appropriate function
// digitalWrite(EN, LOW); //Pull enable pin low to allow motor control
if (user_input =='1')
{
vor();
}
else if(user_input =='2')
{
zur();
}
else
{
Serial.println("Invalid option entered.");
}
// resetEDPins();
}
}
void vor() {
digitalWrite(4, HIGH);
for(x= 1; x<100; x++)
{
digitalWrite(5, HIGH);
delay(30);
digitalWrite(5, LOW);
delay(30);
}
}
void zur() {
digitalWrite(4, LOW);
for(x= 1; x<100; x++)
{
digitalWrite(5, HIGH);
delay(30);
digitalWrite(5, LOW);
delay(30);
}
}
Comments