Firework Tolerance Training Toy for Dogs
444 Views, 4 Favorites, 0 Comments
Firework Tolerance Training Toy for Dogs
According to the Kennel Club website, the number of dogs reported missing doubles over the firework season - Clearly, fear of fireworks is a serious issue for many dog owners such as myself and this training toy aims to solve it. This is a dog toy which simulates fireworks and automatically provides treats whenever pushed by your dog, in order to desensitise your dog to fireworks. Over time, as you gradually increase the volume setting, it should train your dog to be completely unfazed by fireworks, improving both your experiences of firework filled festivals!
The first photo used here is a render of the 3d model on fusion 360. You can find the model at: https://a360.co/3X2vJom
You can see a few video snippets of the toy on this youtube video: https://youtu.be/RzN2gZx2WM8
Supplies
Tools:
- A 3d printer
- A bandsaw (optional)
- Metal file (optional)
- Metal vice
- Piercing saw (optional)
- A soldering iron
- A pillar drill (optional)
- A CNC Laser cutter (optional)
- Vernier Caliper
Materials:
- PLA filament
- Acrylic sheet (2mm thick) (optional)
- Aluminium sheet (2mm thick) (optional)
- 14 M4 nuts and bolts
- Epoxy resin
- Disposable gloves
- Solder
- A potentiometer
- An piezo buzzer
- A Genie E18 microcontroller (or arduino)
- A toggle switch
- A vibration dependent switch
- Dual H-bridge motor driver
- 3 10K ohm resistors
- A geared motor
- 2 bearings (5mm inner diameter, 19mm outer diameter, 6mm width)
- Food grade epoxy or polyurethane resin
- Sandpaper / multi sander tool (optional)
- 3 AA battery pack (or 9v block battery)
note: any metal or acrylic parts can be replaced by 3d printed parts if you don't have access to equipment such as a bandsaw or laser cutter needed for them.
A PCB can be made at home with whatever facilities you have, or ordered online from companies such as JLCPCB. Alternatively, this can be made with inexpensive development boards such as arduinos or espresiffs.
3D Design Adjustments
First, measure the diameter of the knob on your potentiometer (this is for volume adjustment) and the dimensions of your toggle switch(the on/off switch), using a vernier caliper. Depending on the size of your potentiometer and toggle switch, adjust the size of the holes on the lid of the product in Autodesk Fusion 360, the 3d modelling software.
The link for the 3d model on fusion 360 is https://a360.co/3X2vJom
Making the Movement Detection Section (optional)
Note: Everything in this section can alternatively be 3d printed, however the consistency will be reduced.
I decided to add a motion detection function to the design so that it only turns on when interacted with by your dog. This saves battery and means the toy can be left out for your dog to play with whenever they want to.
In order to detect motion, vibrations are created by the rolling motion of the product and detected by the vibration dependent switch. there is a small aluminium chamber with plastic flaps along the circumference, which raise up and then drop small steel nuts or other scrap metal to create the vibrations in the metal. two metal circles are used for this, which should be cut from 2mm aluminium sheet using a bandsaw and smoothed off with a metal file. Remember to wear protective eyewear.
The circular holes should be made with a pillar drill and deburred with the metal file. One of the sheets requires a rectangular hole through which a motor will be placed. To make this rectangular hole, use the pillar drill to make holes in each corner before using the piercing saw to connect the four holes. After this, use a metal file to smoothen this down to the accurate dimensions of the motor.
There are also some metal tabs used here. These should be cut out as rectangles using the bandsaw before bending using a vice and hammer.
PCB Creation (optional)
First, you can drill in the mounting holes using a pillar drill. remember to drill with the copper side facing up, as otherwise the copper layer can sometimes be torn, or partially ripped off.
The PCB can either be made using any equipment you have at home, or by purchasing from an online retailer. Once you have the PCB, solder on the on-board components according to the circuit diagram provided above. I would also recommend soldering on the off-board components at this point for easy troubleshooting, although you will have to de-solder these for the final assembly. (Remember to use a solder fume extractor.)
After you finish all of the soldering, you can download the flowchart (image provided), using circuit wizard.
Using Arduino (alternative to PCB)
Although I used a PCB, it is arguably preferable to use an arduino due to its ease of use. I recreated an equivalent circuit using an arduino uno on the TinkerCad software, which works exactly the same as the PCB. The link to this project is: https://www.tinkercad.com/things/jX9IQl1x8sD-dog-training-toy-code .
I recommend soldering on the components for improved stability, however you can also use a breadboard if you wish to have it easily disassembled for re-use in other projects.
After soldering, you can download the code using Arduino IDE and test it by switching the toggle switch on and lightly tapping the vibration dependent switch.
My code is below:
const int vibrationSwitch = 2;
const int toggleSwitch = 3;
const int potPin = A2;
const int buzzerPin = 11;
const int controlPin1 = 4;
const int controlPin2 = 10;
const int enablePin = 9;
int switchState = 0;
int motorEnabled = 0;
int potVal;
void setup()
{
pinMode(vibrationSwitch, INPUT);
pinMode(toggleSwitch, INPUT);
pinMode(potPin, INPUT);
pinMode(buzzerPin, OUTPUT);
pinMode(controlPin1, OUTPUT);
pinMode(controlPin2, OUTPUT);
pinMode(enablePin, OUTPUT);
digitalWrite(enablePin, LOW);
}
void loop()
{
while(digitalRead(toggleSwitch) == HIGH){}
//you should change this to LOW in your real code, I have reversed it for easier simulation in tinkerCad
if(digitalRead(vibrationSwitch)==HIGH){
potVal = map(analogRead(potPin), 0, 1023,0,255);
analogWrite(buzzerPin, potVal);
delay(500);
digitalWrite(enablePin, HIGH);
digitalWrite(controlPin1, HIGH);
delay(2000);
}else{
analogWrite(buzzerPin, LOW);
delay(500);
digitalWrite(enablePin, LOW);
digitalWrite(controlPin1, LOW);
}
}
Making the Lids (optional)
Note: this can all be 3d printed instead if you do not have access to acrylic sheet or a laser cutter.
There are lids either side of the product; one for the food compartment and one for the PCB housing. These are both made from laser-cut acrylic. The two opposite faces of each lid should be converted to whatever file format you use for your CNC laser cutter. I find it useful to first export the projection of each face to adobe illustrator before saving as a different file type.
After this, cut each face out of acrylic. As each lid is made of two separate pieces, these can then be re-attached using epoxy resin, or other adhesives which you have available, such as cyano acrylonitrile or hot glue. Remember to wear gloves to prevent sticking your fingers together.
3D Printing
For all the rest of the parts (apart from the nuts, bolts and bearings), we will use 3d printing. At this point, if you have skipped the metal and acrylic fabrication, you can also 3d print these parts.
The link to the 3d design is https://a360.co/3X2vJom. From this, you can pick out the parts you have not yet made and 3d print them.
note: I recommend using a very low infill density of ~25% on the rings that surround the product, as these can be rather expensive and heavy if made very dense.
Ensuring Food Safety
Before assembly, it is important to use the food grade epoxy or polyurethane resin to coat the interior of the food compartment and the various parts of the food dispensing mechanism that will touch the food. If you do not have access to this, then cling film may be used to coat the interior every time it is used.
-It is very important to follow this step as FDM printed parts are prone to being infested with bacteria, due to the porous surfaces, even if you use a food safe filament such as PLA.
Assembly
For assembly, I used the 3d model and sketches as a guide for assembly of the complete design. Most of the connections are made with adhesives, (I used cyano acrylonitrile - superglue - for small connections and hot glue for connections with a higher surface area) however the bearings and gear shafts should be push to fit. Connect small parts together first, such as the dispenser mechanism. You can then combine all the sub-assemblies. I worked on the PCB storage and food compartment separately, before connecting the two halves with the m4 nuts and bolts.
Note: be very careful when glueing the gear shafts to the bearings, as they are easily jammed.
Extra note: I would recommend glueing in the motor last, as the placement of this is paramount to the gear train. You can fix it temporarily in place with blu tack to test if the placement is correct, before permanently glueing in place.
Another extra note: Remember to place one or two small pieces of scrap metal such as screws or nuts into the motion detection chamber before completing it by glueing on the plastic rim to connect the two circular faces.
Putting in the PCB/Arduino
The first thing to do here is attach the vibration dependent switch to the aluminum backplate with a thin layer of glue for consistent vibration detection. After this, you can attach the PCB/arduino on top. When fitting in your PCB or arduino into the PCB storage compartment, You can either 3d print the supports provided in the 3d model or use premade PCB support pillars. You can use the PCB lid (the grey part) as a guide adjust the potentiometer placement before securing both with glue, as this is quite a difficult part to attach exactly. I would also recommend using hot glue to bundle up the wires and attach them to the side of the compartment, keeping the components unobstructed and easy to replace if needed.
Finishing Touches
I sanded down the exterior of the product, initially with a multi sander tool to level the aluminium and then sanding by hand for a smoother finish. In retrospect, i do not recommend using an electric sanding tool for this, as although it was helpful in smoothing out the aluminium, I accidentally made many scratches on the surface of the plastic parts.
Finally, you can set the food hole cover to just larger than the size of your dog's kibble.
Enjoy!
fill up the product with treats, and let your dog enjoy! You can start off with a low noise setting and gradually move up, till your dog is completely unfazed by noises as loud as fireworks. This should hopefully make both you and your dog calmer and happier during explosive celebrations.
Thanks for reading!
(below is the video of the final assembly)