Fully Printable Rc Car

by Boothj in Workshop > 3D Printing

1329 Views, 6 Favorites, 0 Comments

Fully Printable Rc Car

20170514_120643203_iOS.jpg
rc6.PNG
RC 1.PNG

A completely 3d printed rc car using a standard drone motor and a available esc. I clocked it going around 25mph and is very maneuverable. Easy printing and assembly. The controller I made is not available yet but the plans will be out soon. Happy Making! Also I put hot glue on the wheels to give it more traction.

Components

RC 2.PNG
20170514_120557407_iOS.jpg
20170514_120609175_iOS.jpg

1.rcx 1804 brushless motor
2 sodial 30 amp esc
3 (1/4)" steel rod

4 Arduino

5 (2) NRF2104 moldules

6 relay(optional).

7 battery pack (anything above 12).

8 Micro 9g servo.

9 Random set screws.

Printing

RC 3.PNG
rc 4.PNG

Files can be found at http://www.thingiverse.com/thing:2284833.
It is a straight forward build and any questions can be sent to maker57@yahoo.com

I recommend using support and rafts, but it is up to you.

Arduino

rc 5.PNG
20170514_120626574_iOS.jpg

I am using a arduino uno and a nrf2104 module for a remote controller. The electronics can be adapted to use a standard rc transmitter and receiver. The arduino goes on top of the electronics on a raised platform. The code I use is below.

#include
#include #include #include #include #include Servo SimonKESC; Servo Steering; #include Servo servo1; #include #include "RF24.h"

RF24 myRadio (7, 8); struct package { int X=0; int Y=0; }; byte addresses[][6] = {"0"}; int OUT1 = 2; int OUT2 = 4; int Speed2 = 9; int Speed1 = 10;

typedef struct package Package; Package data;

void setup(){ Serial.begin(115200); delay(500);

myRadio.begin(); myRadio.setChannel(115); myRadio.setPALevel(RF24_PA_MAX); myRadio.setDataRate( RF24_250KBPS ) ; myRadio.openReadingPipe(1, addresses[0]); myRadio.startListening(); servo1.attach(3, 0, 180); pinMode(OUT1, OUTPUT); pinMode(OUT2, OUTPUT); pinMode(Speed1, OUTPUT); pinMode(Speed2, OUTPUT); digitalWrite(OUT1, 0); digitalWrite(OUT2, 0); digitalWrite(Speed1, 0); digitalWrite(Speed2, 0); SimonKESC.attach(3); Steering.attach(4, 0, 180); delay(5000); Steering.write(90); SimonKESC.write(179); delay(5000); SimonKESC.write(0); delay(5000); }

void loop(){ //SimonKESC if ( myRadio.available()) { while (myRadio.available()) { myRadio.read( &data, sizeof(data) ); } Serial.print("X:"); Serial.print(data.X); Serial.print(" Y:"); Serial.println(data.Y); int X = data.X; int Y = data.Y; int speed3 = map(X,0,1024,-190,190); int turn = map(Y,0,1024,180,70); Steering.write(turn); if(X < 500){ SimonKESC.write(174); } else if(X < 524 && X > 500){ SimonKESC.write(88); }else if(X > 524){ SimonKESC.write(0); } } }

Remote

image.jpg
RC 1.PNG
20170514_120539783_iOS.jpg

I haven't posted the instructions for the remote yet but I have one in progress.