Fully Printable Rc Car
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
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
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
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
I haven't posted the instructions for the remote yet but I have one in progress.