Introduction: Behavior Doggo
This instructable was created in fulfillment of the project requirement of the Makecourse at the University of South Florida (www.makecourse.com). The objective of this project was to create a robotic dog that would help children with cognitive disabilities understand how to play with dogs. To achieve this, Behavior Doggo has three strain gages, two located in the ears and one in the tail, that read the amount of pressure being applied through resistances. This pressure is then read by the Arduino and determined whether the pressure is too hard or not. Simultaneously, there are distance sensors located in the front and the back of the Behavior Doggo reading how far away the user is from the dog. If a high enough pressure is applied to the pressure sensors and the user is less than 20 cm from the Behavior Doggo, then the Behavior Doggo will roll away from from the user to show that was not a good way to play with the dog. On the other hand, if the pressure is light enough and the user is far enough away then the dog will stay, indicating that it was a good way to play with the dog.
- 3 x Force Sensitive Resistor 0.5" by Sparkfun
- 1 x L298N H-Bridge
- 2 x HC-SR04 Ultrasonic Senors
- 2 x KEYESTUDIO DC Motor Wheel Parts Kit for Arduino Robot Smart Car
- 1 x Smaller Bread Board
- 1 x Arduino Uno
- 4 x AA Batteries
- Male to Female Jumper Wires
- Male to Male Jumper Wires
- Breadboard Jumper Wires
- 3 x 10000 ohms resistors
- One 4 x AA Battery Holder
For Behavior Doggo Assembly:
- PLA for 3D printed parts
- M3 Screws (at least 50)
- M3 Lock Nuts (at least 50)
- 16 x M3 Threaded Inserts
- 4 x M4 Screws
- 4 x M4 Lock Nuts
- 2 x #10 Cap nuts
- 2 x # Lock Nuts
- #10 Threaded Rod (at least 1 foot long)
- 4 x 1.24 inch diameter rubber wheels
- Electrical Tape
- Double Sided Tape
- Zip Ties
Step 1: Print All 3D Printed Parts
Some suggestions for best quality prints:
- The Butt, Neck, and Tail Sensor should be printed with the sensor holes on the bed
- The legs should be printed with the motor mounting holes on the bed
- The Ears should be printed on the flat side of the sensor opposite of the sensor holes on the bed
- Other than the Tail and Ear, I printed at 0.20 mm infill. The Tail and Ears I printed at 0.12 mm infill
All parts are located in a google folder with the link below:
Step 2: Add Threaded Inserts
You will need the M3 threaded inserts, the two back railings, needle nose pliers, and a soldering iron. Grab the threaded inserts with needle nose pliers and heat it up with the soldering iron for a couple of seconds. Once heated put the threaded inserts into there respective holes of the back railing located in the middle of back railing. Repeat this for all 16 holes on the back railing. Note: it is best to practice with the metal inserts if you are not comfortable with it. If not inserted accurately tolerances might be messed up
Step 3: Electrical Tape Installation
Once the back railings are done, screw the 3 plates to mount the electronics on one of the back railings. This should be done with M3 screws. After the plates have been placed on the board cover the Metal screws with Electrical Tape to make sure that the metal will not touch any electronics.
Step 4: Preparing the Pressure Sensors
Take off the plastic to reveal the sticky side of one pressure sensor and insert the sensor into one of the Ears. The best way I found to do this is insert the connections through the round hole for the sensor and push them through that way. Repeat for the other Ear and Tail. After all three sensors are placed in the respected locations, place jumper wires on the sensors. This can be done by using female to male jumper wires and placing electrical tape around the two to make sure a secure connection is made. Another way, which is a little more risky, is solder two wires to the connection. The reason I say it may be risky is the pressure sensors can be affected by the heat of the solder, which I found out, so make sure to buy extra sensors if second method is chosen. The pressure sensors are polar, so make sure to have the sensor facing up and connect the right lead to ground. Also in my final assembly I had to extend the jumper wires so the picture attached shows the wiring from the pressure sensor to the bread board. The black wire is connected to the right terminal of the pressure sensor and is then connected to ground on the bread board.
Step 5: Assembly of Electronics
Look at the pictures, located in a google folder, to understand the exact wiring of Behavior Doggo. The Arduino sketch also has detailed comments on how to connect the wiring. I found that it was best to completely set up the circuit test it, and just take off the component that you needed one at a time to assemble the doggo. This will be elaborated on more in the next couple of steps.
Photos of control system:
Step 6: Back Legs Preparation
Since I bought the DC motor kit with wheels, I used that kit and rubber wheels I bought from the local Hardware store to mount my DC motors. I took the wheels in the kit, since they perfectly fit the motor, and took off the rubber from the yellow rim. Then I used plyer to cut the rim down to only have the small cylinder that the motor directly connects to. To insure for no rough edges on the end, you can sand down the sides very carefully. I drilled a hole inside the 1 1/4 rubber wheels I bought and slide the small cylinder into the wheel. Make sure to not drill the hole too big because you want the cylinder to fit very snug in the hole to prevent slipping. Next attach the the wheels to the motors.
Step 7: Neck and Butt Assembly
These two pieces are built almost identical so the assembly is fairly similar. Grab the Neck piece, the two front Legs, M3 screws, and lock nuts. With these components you will attach the Legs to Neck Piece. The legs should be pointing towards the front, meaning that the section cut out for the wheels to rotate should be facing towards the back of the doggo and the sold face should be facing towards the front.
Next, Take the threaded rod add a lock nut an a cap nut to one free end. Place the threaded rod through bigger holes of the Legs and then mark the other end where it pokes out the leg, opposite of where you inserted the rod. By adding the extra lock nut you are giving enough clearance to put the other cap nut on and you are making sure that once the threaded rod is cut you can unscrew the lock nut through to salvage the threads. Next, cut the threaded rod and unscrew the lock off the side without the cap nut. Now place the threaded back through the legs, add the wheels, 2 lock nuts, and the other cap nut to finish preparing the Neck piece.
For the Butt, mount the DC motors to the two back legs using long screws provided in the kit and the M3 lock nuts. Then attach the Legs, DC motors, and Wheels to the Butt like you did in the Neck piece
Step 8: Full Assembly
Now that all the preparations are made, its time to start fully assembling Behavior Doggo. I found it the easiest to start from the Butt and work upwards. It is also recommended, if you have access to a vice to place in a vice and build up. Like I said in a previous step, it is easiest to detach the electrical component one at a time to assemble the doggo. For example, for the Butt I detached the Tail pressure sensor inserted it into the assembly then I reattached directly after. This will prevent wiring mistakes. Also, if long enough wires are used then there should be no issue in keeping the control system completely plugged in while assembly to make sure all the components are working and nothing has been messed up.