Adapta-Wheel

by azneher in Workshop > 3D Printing

384 Views, 2 Favorites, 0 Comments

Adapta-Wheel

J4N6X9Z3T8259M4lry7liw.jpg

Tires are expensive, and getting different treads put on tires for different weather situations can be a hassle. Because many people do not bother changing tires, their vehicles are unable to easily adapt to different road conditions.

The goal of this project is to construct a wheel that is capable of extruding blades to increase traction on loose terrains, such as sand, and mount it on a bot.

Downloads

Materials Needed

kqX+u2xDQjWrWLnTYsKviw.jpg

For this project, you will need access to a 3D printer and a soldering iron. We used a laser cutter to fabricate the acrylic chassis, but the chassis can be built with other tools instead.

  • Microservo 9g SG90 x2
  • NodeMCU
  • NodeMCU Motor Shield
  • 1" square base plastic swivel wheel
  • 0.3cm acrylic for laser cutting
  • 1/2" screws x16
  • tiny washers x16
  • 24mm cassette belts x2
  • hobby motors x2
  • Battery Pack
  • AA Batteries x4
  • Velcro Strip
  • 1/4" Rubber Band(size 63) x2

3D Print Files

Screen Shot 2018-12-07 at 4.04.00 PM.png
Screen Shot 2018-12-07 at 4.04.12 PM.png
Screen Shot 2018-12-07 at 4.05.14 PM.png

All of these G-code files are formatted for a .8mm printing head. The files only need to be printed once, as they each contain multiple copies of the labelled components.

Chassis Dimensions

Attached are the pdf's for laser cutting the motor mounts and chassis.

Wiring

DlCjChVjRLCJxzgV42ayhQ.jpg
bpfqXek+S%KQYYlW24kgww.jpg

Please Note: the pin names on the physical NodeMCU do not directly translate to the pins that the computer reads in the code. Each servo was connected with 3 wires. The brown wire connected to ground, the red wire to voltage source, and the yellow wire to the corresponding pin. Servo 1 was connected to D6 and servo 2 was connected to D7. The motors were wired into the A-, A+, B-, B+ ports which corresponded to pins D1 and D2.

Assembling Wheels

tWnXY%VDS6qkaSWtC%SeQQ.jpg
Ga%Sud%8SRqtWDCoV8DF5A.jpg
Ep1QOXuXQc6KeagL6a6XGg.jpg
pTGvd9LxTB6gmBrNfEXmHg.jpg
P1XTSsM2Q4OIouglOCyvNA.jpg
iZ6YD8MAS6uKR%N2nDWLCA.jpg
Y2QLxQyMRXu%RsSzSp25GA.jpg
h8YgVQdoSRG2G2ezwO60%w.jpg
cKNp0jq6QgKjLRr8EWMvsw.jpg
bR1cLUejTaqnQte86mOHCA.jpg
SElZ6UiZSYyK3iXbDF1dkw.jpg

Step 1: Gather/ 3D print the materials. For easier assembly, pre-drill two small holes into the back of the blade carriages.

Step 2: Sand the axle and the outside of the cone. You may also want to sand the inside of the cone and the blade carriage channels for ease of movement.

Step 3: Insert one blade carriage into its blade slot. Carefully turn the wheel to the back, and screw the blade carriage into the carriage channel with 1/2" screws. Make sure the carriage slides smoothly. If it does not slide smoothly, unscrew the carriage and sand the carriage channel.

Step 4: Repeat Step 3 for each blade carriage.

Step 5: Attach 1/4" rubber bands to the sides for extra traction. On each wheel, lay a cassette belt around the 8 pegs on the blade carriages.

Step 6: Place the cone on the axle. Press the cone down and release to make sure the mechanism works properly.

Assembling Vehicle

fPJ8x4FMQOKVcHGq3sGcuQ.jpg
9frdU4kPTRiYO%r6km6ZGg.jpg
1ZzMnilwQHWWWwvboH1WFA.jpg
W7c5dwgSQeqRhZ5cYWSY7g.jpg
XINSe2Y3T%KmvzYTEFe2bg.jpg
sJ0bvCClQ4Cs7hxW%uh8Cg.jpg
jfR+MxqPSEefmSAk3%Tj3Q.jpg
Zi6d1+D8RpubeM5OyZgf6Q.jpg
O6AdSQ0gQ66gBcsYDcVzRg.jpg
EQTr2keaSC25wnaMBoxBTQ.jpg
ulzPNt+1SJGR2GlewipfjA.jpg
SNz6v5VVQE+PdBLyBJLlDA.jpg
09Aw6lWLT%6TdMracy5L%Q.jpg
OT+g5ZIdRCq2pbT8X9bq9Q.jpg
fFN%QJObR8+cOSIsyhZT3Q.jpg
OoLhCpbDSnGYI23sEEkJlA.jpg
ZqPgY1rjR6G%yUoEaRq8sg.jpg
H9p5%X6uTyuPtlGA4fe3lw.jpg
xxEaWXX9TAGgzjioO%6JQw.jpg
7MW2BDC%TxegqOOjJdJKQg.jpg
jkN39g5BRP+uQaQ45BIRBA.jpg

Step 1: Fix two of the small chassis pieces to the parallel slits in the main chassis piece as shown in the first photograph. Screw in the motor with six 1/2" screws.

Step 2: Repeat Step 1 on the other side of the chassis with the other motor. Make sure the motors are oriented correctly. Then, attach the 'hook' (rough) part of the Velcro strip to the chassis.

Step 3: Attach the wires to the motors, and thread the wires through the horizontal slots in the chassis. Attach the back wheel through the four holes in the back of the chassis.

Step 4: Screw the servo into the large gap in the chassis as pictured in the fifth image. Repeat on the other side, and check for proper orientation.

Step 5: Attach the 'loop' (soft) part of the Velcro to the bottom of the NodeMCU Motor Shield, and attach the Motor Shield to the chassis using the Velcro.

Step 6: Wire the servos to the Motor Shield: the right-side motor to physical pin 8, the left-side motor to physical pin 7. Insert the NodeMCU into the Motor Shield.

Step 7: Attach the motor wires to the Motor Shield, with the left-side motor's wires on the left side, as pictured in images 14 and 15.

Step 8: Attach the wheels by lining up the wheel axle to the motor axle and gently pressing them together. Make sure none of the interior pieces dislodge.

Step 9: Attach the battery pack to the Motor Shield and insert batteries. Rotate the battery pack so there are two loops of wire (one in each color) underneath where the battery pack will sit, and then place the battery pack on top of the wire loops. Tape the battery pack and the extra servo wire down.

Code

tYKryisXTZitQtWpx5Qodg.jpg

import machine

import time

import math

s = machine.PWM(machine.Pin(12), freq = 50)

s2 = machine.PWM(machine.Pin(13), freq = 50)

m = machine.PWM(machine.Pin(5), freq = 50)

m2 = machine.PWM(machine.Pin(4), freq = 50)

s = s,s2

m = m,m2

def e(s):

servo.duty(117)

servo2.duty(70)

def r(s):

servo.duty(70)

servo2.duty(135)

def run(m):

motor.duty(1030)

motor2.duty(1030)

def stop(m):

motor.duty(0)

motor2.duty(0)

The code includes a function to make the wheels turn as well as a function to make the wheels stop. Also, there is a function to extend the servo motors as well as retract them.

Controlling With WebREPL

Screen Shot 2018-12-14 at 10.13.27 PM.png
Screen Shot 2018-12-14 at 10.14.15 PM.png
Screen Shot 2018-12-14 at 10.14.25 PM.png
Screen Shot 2018-12-14 at 10.14.37 PM.png
Screen Shot 2018-12-14 at 10.14.54 PM.png

Using WebREPL, the bot is able to be controlled via WiFi to the NodeMCU. In WebREPL, the different functions for the car are able to be controlled. For example, the car can be told to start moving or to stop moving, or it can be told to extrude or retract the tire blades. In order to set this up, the computer must be connected to the NodeMCU's WiFi connection and have WebREPL pulled up. Also, the code must be saved to the computer and then uploaded through WebREPL onto the NodeMCU. After this, functions can be ran and the NodeMCU will read the commands and perform the given task.

Next Steps

There are multiple things that we would've done differently, if we had more time.

  • Include an optical encoder: would allow wheels to automatically deploy spikes when bot detected slippage
  • Make a working turning mechanism for 4 wheels
  • Use a potentiometer with analog input to control the amount of blade extension