Introduction: 3D Printed Screw-propelled Robot With Video Feed
A screw-propelled vehicle is a type of land or amphibious vehicle that uses one or more auger-like cylinders fitted with a helical flange to move. The cylinders are rotated by an engine, and the flange engages with the ground or water to propel the vehicle forward. Screw-propelled vehicles are often used in areas with difficult terrain, such as snow, ice, mud, and swamps. They are also used in some military applications.
So in this instructables we are going to make a fully 3d printed simple version of a screw-propelled vehicle, i tried my best to make it as simple as possible build, so anyone with a 3d printed can build it, i also tried to reduce the number of parts in it like ball bearing which is totally unnecessary for this small light robot. it is based on Seeed Studio XIAO ESP32S3 Sense, we can control this robot with a smartphone through wifi, also we can also get a low-latency video feed from the robot so let's get into it
Supplies
Parts
- 2*N20 motor 3v 50 rpm
- 25mm 5v fan
- TP4056 BMS
- 2*Red LED
- Heat sink for camera
- Heat sink for Xiao
- DRV8833 motor controller
- Slide ON-OFF switch
- Seeed Studio XIAO ESP32S3 Sense
- 2*18650 battery ( I am using a battery from an old laptop )
- 12*CSK Allen M3 x 10mm
- 2*Socket Botton Head Cap Screw M3 x 20 mm
- heat sink compound
- connecting wires kit
- Kapton tape
Tools
- Allen key
- Sandpaper
- 3d printer
- Soldering kit
- Glue gun
Step 1: History of Screw Propelled Vehicles
The concept of a screw-propelled vehicle (SPV) was first proposed by Leonardo da Vinci in the early 1500s. However, it was not until the 19th century that the first practical SPVs were built. These early SPVs were used for a variety of purposes, including agriculture, transportation, and military applications. In 1868, Jacob Morath, a Swiss immigrant to the United States, patented a twin-screw plowing machine. This machine was one of the first examples of a practical SPV. In 1899, the Peavey brothers of Maine built one of the first screw-propelled vehicles that was actually used for transportation. Their vehicle was used to transport goods between their farm and a nearby railroad station. In the early 1900s, SPVs began to be used for military applications. The British Army used SPVs to transport troops and supplies during the Boer War. The German Army used SPVs to transport troops and supplies during World War I. Today, SPVs are used for a variety of specialized applications, such as search and rescue, oil and gas exploration, and military applications.
(Source Wikipedia)
Step 2: Modeling in Autodesk Fusion 360
I used Fusion 360 for planning and designing this robot, but I am not fully getting into how I modeled it, but we will look at how I designed the screw wheels of this robot, and we will discuss it in the next step, you can skip this step if you need. all design files are given below
Step 3: Modeling the Screw Wheels
let's start with creating a cylinder
- make a coil from the top side of the cylinder we are going to choose a diameter of 20mm, and I choose these parameters
- Revolution: 2
- Height : -120mm
- Section: Triangular
- Section size: 9mm
- Operation: Join
you can play with this parameter as you like
- Rotate the cylinder to 180° and again create a coil in it and use the same parameter that was used previously
- Now we need to make the cylinder sides pointy for that I created a sketch and used the Revolve tool with cut operation
yep, we made it.
Step 4: 3D Printing
I used my Anet a8 for 3d printing these parts, it is like 6 years old, sorry for the print quality, I will update to Anyubic Karbo 2 Neo soon !!. 3d printing screw wheels were hard because of the difficulty of removing the supports, I just attached all the.STL files and.STEP files in step 2
Step 5: Uploading Code to XIAO
I always like to upload the code to the microcontroller before assembly. Here we are using a tiny Xiao esp32s3 sense from the Seeedstudio. It is a highly integrated, Xtensa processor ESP32-S3R8 SoC, which supports 2.4GHz WiFi and low-power Bluetooth BLE 5.0, As the advanced version of Seeed Studio XIAO ESP32S3, this board comes with a plug-in OV2640 camera sensor for displaying full 1600*1200 resolution.
I am using Arduino IDE for flashing the code follow these tutorials for setting up IDE for XIAO ESP32S3 and learn more about this board
https://www.youtube.com/watch?v=qNzlytUdB_Q&t=944s
and thanks techiesms for the code and inspiration for this project
Step 6: Testing the Xiao
After flashing the Xiao will start a wifi hotspot
SSID : ROBO
Password: PASSPASS
const char* ssid = "ROBO"; //Enter SSID WIFI Name
const char* password = "PASSPASS"; //Enter WIFI Password
you can change this if you need from Code.ino
After Xiao has created a hotspot successfully it will show an IP address in the serial monitor
AP IP address: http://192.168.4.1
Starting web server on port: '80'Starting stream server on port: '81'
after connecting wifi with your smartphone open your browser and enter this 192.168.4.1 IP address, wait for the connection establishment. if everything works you can see your face in it 😅
Step 7: Wiring Diagram
The brain of this robot is Xiao, there are signal 4 wires from the Xiao going to the DRV8833 motor controller, and the main power source is two 3.7v 18650 batteries connected in parallel, we are using a TP4056 Battery Charging Module for recharging the batteries. we have a small 5v fan for cooling the xiao, We have two N20 3v 50rpm motors which are controlled by the DRV8833, We also have two LEDs for the illumination, all of which can be switched on with an ON/OFF slide switch
Step 8: Assembly and Wiring
I tried my best to make the assembly simple, most of the components are fixed with a hot glue
now we can start with LEDs
Step 1
After cutting the terminals of the LED, I connected two LEDs in parallel,
Step 2
attach the LED to the main body with a glue gun
Step 3
solder all GPIO pins with a long wire also tag all the wires with corresponding GPIO numbers
Step 4
covered all exposed copper pads under the xiao with Kapton tape, I am including a heat sink behind it for dissipating heat from the xiao, Kapton tape will help to prevent copper pads from touching the aluminum heat-sink
Step 5
Put some heat sink compound to the big heat sink
Step 6
Put that heat sink to the back of Xiao
Step 7
glued Xiao to the main body and also put the small heat sink to the camera module
Step 8
Make sure that the camera module is visible through the front hole
Step 9
Remove the sticker on the back of the antenna and past it to the main body
Step 10
connected two batteries in parallel. and connected bms to it, everything is attached together with hot glue
Step 11
Glued the battery to the main body
Step 12
Attach the ON-OFF switch to the main body
Step 13
Attach the small fan for the main body
Step 14
Glued the DRV8833 on top of the battery and connected all wires according to the circuit diagram
Step 15
Run the motor wires through two small holes in the back of the main body and connect the wires to two motors
Step 16
Insert the motors in the square holes in the motor holder
Step 17
Attach the back support with four M3 10mm screws
Step 18
Attach the motor holder to the back support two M3 10mm screws
Step 19
Attach the left and right wheels to the motor shaft
Step 20
Attach the font wheel support to the main body with two M3 10mm screws, and attach the left and right wheels with two M3 20mm screws to the front wheel support
Step 21
Attach the top plate with four M3 10mm screws
Assembly completed, mission successful🔥🔥
Step 9: Testing the Motor Direction
Connect the robot with the smartphone wifi ( step 6)
flip the robot upside down and observe the motor rotation direction, make sure it is rotating as shown below when you press the left and right button
forward and backward test
you can also test LEDs with LED on and off button
if not all motor is turning in the direction you intended, please check the wiring or you can change the motor turning direction within this code line of app_httpd.cpp, change the values in the WheelAct (high/low)
static esp_err_t go_handler(httpd_req_t *req){
WheelAct(HIGH, LOW, HIGH, LOW);
Serial.println("Go");
httpd_resp_set_type(req, "text/html");
return httpd_resp_send(req, "OK", 2);
}
static esp_err_t back_handler(httpd_req_t *req){
WheelAct(LOW, HIGH, LOW, HIGH);
Serial.println("Back");
httpd_resp_set_type(req, "text/html");
return httpd_resp_send(req, "OK", 2);
}
static esp_err_t left_handler(httpd_req_t *req){
WheelAct(HIGH, LOW, LOW, LOW);
Serial.println("Left");
httpd_resp_set_type(req, "text/html");
return httpd_resp_send(req, "OK", 2);
}
static esp_err_t right_handler(httpd_req_t *req){
WheelAct(LOW, LOW, LOW, HIGH);
Serial.println("Right");
httpd_resp_set_type(req, "text/html");
return httpd_resp_send(req, "OK", 2);
}
static esp_err_t stop_handler(httpd_req_t *req){
WheelAct(LOW, LOW, LOW, LOW);
Serial.println("Stop");
httpd_resp_set_type(req, "text/html");
return httpd_resp_send(req, "OK", 2);
}
Step 10: Final Thoughts
thank you for going along with this project, i still like to improve this project I am planning for a second version of this robot, a more powerful full motor and fully weather-sealed body, i still couldn't test this on snow because of the geographical limitations, there is still room for improvement, let me know your suggestion
Grand Prize in the
Robotics Contest
14 Comments
10 days ago
This is awesome! Thank you for posting this!
We have some pet rabbits we keep outside that have burrowed under the burrows I made for them 🤦♂️This will be perfect for going in there and checking out their construction project haha
13 days ago
Nice! Congrats on a great Instructable.
And for those who are looking for more info, have quick look at some early implementations.
If you google "fordson snowmotor" you will find lots of info.
15 days ago
Brilliant design, you certainly documented everything very well. Lot of ideas with this, I look forward to seeing your next version. The SPV has great possibilities with robots in swampy, muddy areas. Well done on your project.
Reply 15 days ago
It looks like Colin Furze thing see him on YouTube:
https://youtu.be/4hI22E9LcY0?si=9euZBvNBbJ0P-vxG
Reply 15 days ago
thanks, leethayer8 <3
16 days ago
What a neat design! and I ADMIRE how well documented and well photographed the instructable is :DD. I wonder what 90-degree turn wormgears could do for the back of the bot. I could imagine you being able to fit a larger motor and not sacrifice form. + the system could be non-back drivable (if that is desireable)
Also- As a fellow instructable creator I was wondering whether you had any tips regarding you photoshoot set-up. Particularly the gear and methods you used to take part images with the grey cut/grid mat in the background. (they look super crisp)
Reply 16 days ago
Thanks for your comment, I completed this project and documentation in just 4 days. I didn't have much time to do this project, I did it with the things that I already had. My plan was to put that 90° motor in but it didn't arrive on time after ordering it. So I had to use the N20 motor I have. I will be building a second version of this for sure, the new version will require the motor to be repositioned, thanks again for your comments,
The cutting mat I use is bought from India. I don't know if this same item is available in the US or Canada
speaking of the photography. The camera I use is not a photography camera, I use Black Magic Design 4k and Sigma 18-35mm f1.8 lens, and the light I use is nothing professional, I cut a cardboard box in half and stick aluminum foil inside it. A standard LED strip is glued on top and then the open mouth of the cardboard box is covered with a shower curtain.although the setup is not pretty to look at, it's all about the output, Black Magic's camera is a video camera, technically you can't take photos inside it. That 4K video screenshot is what I use to take the photo. This is an unconventional method. Because I don't have any other camera, this is the only way. After taking the photo, I will put it in Lightroom and edit it. If win this contest, I will buy a new camera. Then I can deliver content with a little more quality. Now the process I use to take photos is very laborious and time consuming. But after reading your comment I realized that the content I create from my limited situation is very good
Reply 15 days ago
That looks a great light! I might have to make one like it :)
15 days ago
I'd never heard of or seen SPV before - and wow, what a surprise, I thought you'd invented the idea! Anyway, I'm very impressed. Really well written and clear instructions, and an awesome little machine. Totally cool!
Reply 15 days ago
thanks ;)
15 days ago
This is an awesome idea. Love it!
Reply 15 days ago
Glad you liked it thanks,
19 days ago
Wonderful Project!
If you can waterproof the chassis and pontoons you can run it on a pond too! Fun!
Congratulations!
Reply 19 days ago
thanks for the suggestion there will be a V2 of this project with weather weather-sealed build